The present invention relates to a technique to provide a network service.
There is a service, which allows plural users to use applications prepared on a server connected to the Internet. In such a service, the way to combine programs on the server (the way to use when viewed from the user) is previously determined by a provider of the service, and the user cannot freely combine the plural programs on the server to use them.
US-2002-0073145-A discloses a technique to download programs with a small amount of data to a client terminal from a server to cause the programs to execute a desired data processing. Specifically, definition information is inputted by the client terminal, the server reads out setting information corresponding to the definition information and transmits it to the client terminal, and one or plural functional parts are called on the basis of the setting information. The functional part is such that plural data processings are divided into common unit processings, and a processing logic extracted from those is described. The client terminal or the processing server dynamically generates a unit processing program by the processing logic based on one or plural functional parts, and executes the one or plural generated unit processing programs in accordance with conditions based on the setting information. In this technique, there is no viewpoint such as authorization of the unit processing program. Besides, there is no disclosure on a problem in a case where plural kinds of unit processing programs are executed. Further, there is no consideration on an execution entity and a keeping entity of the unit processing program.
In the related art as described above, when the client side combines arbitrary functions prepared on the server side and the client side receives, through a network, the provision of a specific service realized by the combination of the functions, consideration is not given to the judgment as to whether or not the service can be provided, and the discrimination between plural kinds of combinations. Further, when the execution entity and the keeping entity of a program (for example, the aforementioned unit processing program) defined to receive the provision of the specific service realized by the combination of the functions are fixed, there arise a problem in flexibility, a problem in quickness of the service provision, and the like. However, these problems have not been investigated. Accordingly, in the related art, there is a problem in the flexible and quick provision of the network service.
An object of the present invention is therefore to provide a novel technique to enable the flexible and quick provision of a network service.
An information processing method according to a first aspect of the invention is an information processing method relating to a service program in which a combination of functions to be used by a client is defined among functions provided on a network platform side, and comprises: analyzing a service program to judge whether detection of a trigger to activate the service program is performed by the client terminal or the network platform side; if it is judged that the detection of the trigger to activate the service program is performed by the client terminal, judging whether a condition on a relation between the service program and the client terminal is satisfied; and if it is judged that the condition is satisfied, determining an execution entity of the service program to be the client terminal.
As stated above, although the execution entity of the service program is basically set to the detection entity of the trigger, in a case where the client terminal is the detection entity of the trigger, the execution entity is determined from the relation between the service program and the client terminal. By determining the execution entity of the service program as stated above, it becomes possible to flexibly and quickly provide the network service.
For example, the aforementioned condition may include a condition that a processing defined in the service program is relevant to a single client terminal. For example, in a case where a processing relates to a single client terminal, the client terminal is set to the execution entity, and in a case where a processing relates to plural client terminals, the network platform is set to the execution entity.
Besides, for example, the aforementioned condition may include a condition on a relation between a processing load caused for the client terminal by the service program and processing capability of the client terminal. For example, in a case where a relatively high processing load is produced by the service program though the processing power of the client terminal is low, there is a case where the suitable and quick provision of the network service can not be performed by the client terminal. Thus, the network platform is determined to be the execution entity.
Incidentally, the information processing method may further comprise: if it is judged that the detection of the trigger to activate the service program is performed by the network platform side or if it is judged that the condition is not satisfied, determining the execution entity of the service program to be the network platform; and causing the network platform to keep the service program whose execution entity is determined to be the network platform. As stated above, when the execution entity of the service program is the keeping entity, quick execution becomes possible.
An information processing method according to a second aspect of the invention is an information processing method relating to a service program that is defined by a client side for a combination of functions whose uses are authorized for the client side, among functions provided by a network platform side, and whose identification information is registered in the network platform side, and comprises: detecting a specific trigger; identifying a service program corresponding to the specific trigger; judging whether execution of the identified service program has an influence at a predetermined level or higher on the client terminal; and if it is judged that the execution of the identified service program does not have the influence at the predetermined level or higher on the client terminal, causing the identified service program to be executed.
As stated above, in the case where the trigger is detected by the client terminal, the client terminal executes the service program corresponding to the trigger in principle. However, in the case of the client terminal, there is also a case where remaining processing capability is low due to the processing of another program. Accordingly, when the service program is further executed, there is a case where a bad influence is given on the processing execution of the client terminal. Accordingly, as described above, in the case where it is judged that the execution of the service program does not have the influence at the predetermined level or higher on the client terminal, the service program is executed by the client terminal having detected the trigger.
Besides, the information processing method according to the second aspect may further include: if it is judged that the identified service program has the influence at the predetermined level or higher on the client terminal, transmitting an execution request including data concerning the specific trigger and identification information of the service program to the network platform; and receiving a processing result of the service program from the network platform. As stated above, there is also a case where the execution of the service program is entrusted to the network platform. When doing so, the provision of the network service can be received without increasing the processing load in the client terminal.
Besides, the information processing method according to the second aspect may further include: if it is judged that the execution of the identified service program does not have the influence at the predetermined level or higher on the client terminal, judging whether the identified service program is held; and if it is judged that the identified service program is not held, downloading the identified service program from the network platform. For example, in the case where the client uses a client terminal, which is not a client terminal always used, when the service program to be used can be downloaded from the network platform, convenience is improved. That is, the flexible execution of the service program becomes possible.
An information processing method according to a third aspect of the invention is an information processing method relating to a service program that is defined by a client side for a combination of functions whose uses are authorized for the client side, among functions provided by a network platform side, and whose identification information is registered in the network platform side, and comprises: detecting a trigger; judging whether the detected trigger can be handled; if the detected trigger can be handled, specifying a service program corresponding to the detected trigger; and executing the specified service program. When doing so, the trigger can be suitably processed, and the network service can be suitably provided.
Incidentally, the aforementioned judging may include: judging whether the detected trigger is a trigger relevant to the client being capable of using the network platform; and if it is judged that the detected trigger is the trigger relevant to the client being capable of using the network platform, confirming whether a service program associated with the detected trigger is defined.
It is possible to create a program for causing a computer to carry out the information processing method of the invention and a program to realize the wireless communication portable terminal, and the programs are stored in a storage medium or a storage device such as, for example, a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. Besides, the program may be distributed in digital signals through a network. Incidentally, the intermediate data in the processing is temporarily stored in a storage device such as a memory of a computer.
In the network platform 50, as common function modules, there are provided an authentication & authorization function module 501, a billing function module 502, and a CT management function module 503. The authentication & authorization function module 501 performs client authentication, terminal authentication, service authorization and the like. The billing function module 502 collects data necessary for billing, such as the number of times of use of function modules, for example, for each client, and generates billing data, for example, for each client. The CT management function module 503 performs version management for each function module, state management of the client terminal, download control of function modules to the client terminal, registration confirmation of service programs described below, issuance of a service ID and the like.
Besides, the network platform 50 is provided with individual function modules such as a session control function module 504 for performing session control (for example, SIP (Session Initiation Protocol)), a context management function module 505 for managing presence data of clients, and a media conversion function module 506. In
On the other hand, the client terminal is provided with one or plural service programs, one or plural client function modules, and a management program. In the example of
Further, in the network platform 50, an NP-API (Application Program Interface) is defined between the common applications and the individual function modules. Besides, in the client terminal, a CT-API is defined between the service programs and the client function modules. For example, in the client terminal, the service program uses the function module of the client through the CT-API. Further, a service management interface (SMI: Service Management Interface) and a service control interface (SCI: Service Control Interface) are defined between the client terminals and the network platform 50. The service program is defined such that a service desired by the user of the client terminal is provided through the SCI from the network platform 50.
Next, the service management interface SMI will be described. The network platform 50 opens the function modules in the network platform 50 and parameters necessary for execution of the function modules to the public through the SMI. The user of the client terminal or a vendor of the client system acquires necessary information from the network platform 50 through the SMI and performs service program generation.
The format of a packet exchanged through the SMI is, for example, as shown in
Besides, an NP operation management function is also prepared in the service providing network 5, and various managements concerning the network platform 50 are performed by the NP operation management function through an NP operation management interface. Incidentally, since the NP operation management function is not the main part of this embodiment, a further description will not be made.
[Configuration to Execute a Service Program]
The system outline shown in
Then, treatment is made possible as to all of (1) a case where the client terminal keeps the service program and the client terminal executes the service program, (2) a case where the network platform 50 keeps the service program and the client terminal downloads and executes it, (3) a case where the client terminal stores the service program and the network platform 50 downloads and executes it, and (4) a case where the network platform holds the service program and the network platform 50 executes the service program.
For that purpose, with respect to the network platform 50, functions as shown in
When detecting a trigger, the trigger detector 5201 of the service program execution processor 520 outputs data of the trigger to the service program specifying unit 5202. The service program specifying unit 5202 accesses to the service program data storage 5203 storing data concerning the service programs and the service programs themselves to identify a service program, and causes the identified service program to be executed. Incidentally, in the case where the identified service program is not kept in the network platform 50, the service program specifying unit 5202 causes the download unit 5205 to download the necessary service program from a keeping site. In some cases, the service program specifying unit 5202 instructs the execution entity determination unit 5206 to determine the execution entity. The execution entity determination unit 5206 accesses to the service program data storage 5203 to determine the execution entity, and when it is judged that the network platform 50 is the execution entity, it activates the service program. Incidentally, in the case where the service program is not stored, it causes the download unit 5205 to download the service program. When downloading the service program, the download unit 5205 stores the service program into the service program data storage 5203, and activates the service program. In a case where executions entrusted from the client terminal, when the execution of the service program is requested from the client terminal, the execution entrusted processor 5204 reads out the service program from the service program data storage 5203 and causes the service program to be executed. However, when not stored, it causes the download unit 5205 to download the service program and causes the service program to be executed. The execution entrusted processor 5204 receives the processing result of the service program, and if necessary, transmits the processing result to the client terminal.
The keeping entity determination unit 5034, the execution entity determination unit 5035 and the workload analyzer 5037 of the CT management function module 503 accesses to the service program data storage 5203 and execute the processing. Besides, the keeping entity determination unit 5034 stores the service program judged to be kept in the network platform 50 into the service program data storage 5203. Incidentally, the execution entity determination unit 5035 further refers to the processor capability DB 5036 storing data concerning the processing capability of the respective terminals and performs the processing.
On the other hand, also with respect to the client terminal 7 or 9, functions as shown in
When detecting a trigger, the trigger detector 711 of the service program execution processor 710 outputs data of the trigger to the service program specifying unit 712. The service program specifying unit 712 accesses to the service program data storage 717 storing data concerning service programs and the service programs themselves, performs a processing, and identifies the service program to be executed. The service program specifying unit 712 outputs identification information of the identified service program and the data of the trigger to the second execution entity determination unit 713. The CPU utilization ratio acquiring unit 715 acquires data of the CPU activity ratio from an OS (Operating System) or the like in response to the instruction from the service program specifying unit 712, and stores it into the CPU utilization ratio storage 716. The second execution entity determination unit 713 accesses to the CPU utilization ratio storage 716, the service program data storage 717, and the processor capability DB 719 to perform a processing, and determines the execution entity of the identified service program. In the case where the second execution entity determination unit 713 judges that the service program is to be executed by the client terminal 7, the second execution entity determination unit 713 causes the service program to be executed. However, in the case where the service program is not stored in the service program data storage 717, the second execution entity determination unit 713 causes the download unit 714 to download the service program from the network platform 50. The download unit 714 activates the downloaded service program. Incidentally, when determining that the execution entity of the service program corresponding to the detected trigger is the network platform 50, the second execution entity determination unit 713 causes the execution entrusting processor 718 to perform a processing. The execution entrusting processor 718 transmits the data of the trigger and the service ID of the service program to the network platform 50 in accordance with the instruction of the second execution entity determination unit 713. Besides, the execution entrusting processor 718 receives the processing result from the network platform 50, and presents the processing result to the client terminal 7 or causes a necessary function module to perform a processing.
The service program development unit 701 of the management program 71 generates the service program, and carries out a registration processing to the network platform 50. The workload analyzer 702 accesses to the service program data storage 717 to perform a processing, and stores a processing result into the service program data storage 717. The keeping entity determination unit 703 refers to the service program data storage 717 to carry out a processing, and in the case where it is judged that the keeping entity is the client terminal 7, it stores the service program into the service program data storage 717. The service ID manager 705 issues a service ID for the service program, and stores it into the service program data storage 717. The first execution entity determination unit 704 accesses to the service program data storage 717 and the processor capability DB 719 to carry out a processing, and stores the processing result into the service program data storage 717.
The processing contents of the network platform 50 and the client terminal 7 or 9 shown in
[Processing at Time of Generation of Service Program]
The processing at the time of generation of the service program will be described with reference to FIGS. 5 to 14. For example, the service program development unit 701 of the management program 71 in the client terminal 7 transmits a service program generation request to the network platform 50 through the SM1 (step S1). The CT management function module 503 of the network platform 50 receives the service program generation request from the client terminal 7 (step S3), and transmits service program generation element data to the client terminal 7 through the SM1 (step S5). The service program development unit 701 of the management program 71 in the client terminal 7 receives the service program generation element data from the network platform 50 (step S7), and uses the service program generation element data to display a service program generation screen (step S9). For example, a screen as shown in
Incidentally, the service program development unit 701 of the management program 71 in the client terminal 7 confirms whether a necessary function module exists in the client terminal 7 (step S11). In the case where it is judged that the necessary function module do not exist in the client terminal 7, it transmits a function module request for the necessary function module to the network platform 50 through the SMI (step S13). The CT management function module 503 of the network platform 50 receives the function module request from the client terminal 7 (step S15). There is also a case where from the client ID included in packets of the received function module request, the CT management function module 503 of the network platform 50 judges whether or not the function module relating to the request can be transmitted. However, when the function module is a basic function module necessary to use the network platform 50, it is not necessary to particularly carry out a check. The CT management function module 503 reads out the function module relating to the request from the function module storage 511, and transmits it to the client terminal 7 through the SMI (step S17). When receiving the requested function module from the network platform 50, the service program development unit 701 of the management program 71 in the client terminal 7 stores it into the storage device of the client terminal (step S19).
In the case where it is judged at the step S11 that the necessary function module exists in the client terminal 7, or after the step S19, the service program development unit 701 of the management program 71 in the client terminal 7 accepts a service program generation instruction from the user on the screen shown in, for example,
Then, the service program development unit 701 of the management program 71 in the client terminal 7 generates a service program in accordance with the accepted input data, and stores it into the storage device (step S23). The service program development unit 701 of the management program 71 transmits a service program registration request including the service program to the network platform 50 (step S25). The service program check unit 5031 of the CT management function module 503 in the network platform 50 receives the service program registration request including the service program from the client terminal 7, and stores it into the storage device (step S27). Then, the service program check unit 5031 of the CT management function module 503 refers to a client data storage 513, and carries out a check processing to the received service program (step S29).
For example, data as shown in
In the case where an unauthorized function module is defined in the service program, the service program check unit 5031 of the CT management function module 503 transmits a registration rejection notice to the client terminal 7. The service program development unit 701 of the management program 71 in the client terminal 7 receives the registration rejection notice from the network platform 50, and displays it on the display device (step S33). By this processing, it is possible to recognize that there is a problem in the generated service program.
On the other hand, in the case where it is judged that all the function modules defined in the service program received from the client terminal 7 can be used, the service ID manager 5033 of the CT management function module 503 issues the service ID to the service program, and registers it into the client data storage 513 (step S35). For example, as shown in
Next, the execution entity determination unit 5035 analyzes the service program, and further refers to the processor capability DB 5036 to perform an execution entity determination processing (step S37). The execution entity determination processing of the network platform 50 will be described with reference to
On the other hand, in the case where it is judged that the detection of the trigger of the service is carried out by the client terminal, it is judged whether the service program relates to plural client terminals (step S53). The case where the service program relates to the plural client terminals includes, for example, a case where the client terminal of the transmission destination of the data is changed according to the context (i.e. state) of the client. In the case where it is judged that the service program relates to the plural client terminals, the network platform 50 is designated to be the execution entity, and data representing the network platform 50 is the execution entity of the service program is registered into the service program data storage 5203 (step S63).
On the other hand, in the case where it is judged that the service program relates to only single client terminal, the workload analyzer 5037 analyzes the received service program, calculates (e.g. estimates) the workload of the service program, and stores it into the storage device such as, for example, the main memory (step S55). Here, as for the workload of the service program in this embodiment, a value is used, which is obtained by weighting and adding the number Ni of steps in the service program (for example, the number of steps at the assembler language level, however, in the case where the service program is described in language in which the compilation is not carried out, there is also a case where it is the number of steps in the language), the number Ns of state transitions, and the number Nf of kinds of function modules to be used. For example, when the workload is expressed by a function of f(Ni, Ns, Nf), it is expressed as f(Ni, Ns, Nf)=aNi+bNs+cNf. Incidentally, assuming that Ni is a dominant element, the coefficients are determined. As for b and c, there is a case of b=c=0. The workload analyzer 5037 analyzes the service program, and as described above, counts the number Ni of steps of the service program, the number Ns of state transitions and the number Nf of kinds, calculates the workload f(Ni, Ns, Nf) in accordance with the foregoing expression, and stores it into the storage device. Then, the workload analyzer 5037 outputs the data of the calculated workload f(Ni, Ns, Nf) to the execution entity determination unit 5035.
The execution entity determination unit 5035 refers to the processor capability DB 5036, and reads out the data of the processor power Pp of the client terminal. The type of the client terminal may be specified from the terminal ID included in the packet (for example, the type code is included in the terminal ID), or there is also a case where the terminal type data is separately included in the packet transmitted at the step S25. Then, the execution entity determination unit 5035 uses the processor power expressing the performance of the client terminal and the workload of the service program to calculate no-load performance Pu of the client terminal, and stores it into the storage device (step S57). The no-load performance Pu indicates what amount of work can be processed in a unit time under the condition that there is no other program being executed in the client terminal, and only the service program is executed. That is, Pu=Pp/f(Ni, Ns, Nf) is calculated and is stored into the storage device.
The execution entity determination unit 5035 judges whether the no-load performance Pu of the client terminal is equal to a predetermined threshold J1 or more (step S59). In the case where it is judged that the no-load performance Pu of the client terminal is equal to the predetermined threshold J1 or more, the client terminal is designated to be the execution entity, and data representing the client terminal is the execution entity of the service program is stored into the service program storage 5203 (step S61).
As stated above, the execution entity is determined in accordance with the detection place of the trigger and the relation between the client terminal and the service program. At the time of registration of the service program, because the state of the client terminal at the time when the trigger is actually detected is not known, the execution entity is determined according to the judgment reference as described above, so that the execution entity is optimized at the time of registration of the service program.
Returning to the explanation of
On the other hand, in the case where the execution entity of the service program is the client terminal, it inquires the usage state to the client (step S75). When the network platform 50 carries out the keeping entity determination processing, it transmits data to cause the client terminal to display questions “whether this service program is shared with another person?” and “whether accesses to the network platform 50 are frequently performed from the place where you have gone?” and to prompt the client to make an answer. The client terminal receives the data, displays it on the display device, and asks the client for an answer. The client answers to the questions as set forth above by “Yes” or “No”, and the client terminal sends back the answer data to the network platform 50.
The keeping entity determination unit 5034 receives the answer data from the client terminal, and stores it into the storage device. Then, the processing subsequent to step S77 is performed. That is, on the basis of the answer data, it judges whether the service program is shared with another person (step S77). When the answer is such that the service program is shared with another person, it designates the network platform 50 and the client terminal to be the keeping site, and stores data representing the network platform 50 and the client terminal are the keeping entity into the service program data storage 5203 (step S83). Incidentally, in the case where the client terminal is designated to be the keeping site, the network address of the client terminal is also registered. This is because there is also a case where download must be performed from the client terminal in some cases. The service program itself is also stored in the service program data storage 5203.
On the other hand, when the answer is such that the service program is not shared with another person, on the basis of the answer data, it judges whether the client frequently access the network platform 50 from the place where the person has gone (step S79). When the answer is such that the access to the network platform 50 is frequently performed from the place where the person has gone, it designates the network platform 50 and the client terminal to be the keeping site, and stores data representing the network platform 50 and the client terminal into the service program data storage 5203 (step S83). Further, the service program itself is also stored in the service program data storage 5203. On the other hand, when the answer is such that access to the network platform 50 is not frequently performed from the place where the person has gone, it designates the client terminal to be the keeping site, and stores data representing the client terminal is the keeping site into the service program data storage 5203 (step S81).
As stated above, the keeping site is determined according to the execution entity of the service program, so that the quick execution becomes possible, and the highly efficient service processing becomes possible. Further, by determining the keeping site in view of the supposed usage state, convenience is improved. For example, in the case where plural persons share the service program, when the service program is kept in the network platform 50, as compared with the case where it is stored in only a certain terminal, its download becomes easy. Besides, also in the case where the service program is frequently used from the place where the person has gone, when the service program is kept in the network platform 50, it is easily downloaded, and the service program can be executed at that place.
Returning to the explanation of the processing of
The service program development unit 701 of the management program 71 in the client terminal 7 receives the registration completion notice including the designation of the execution entity, the designation of the keeping entity, and the service ID from the network platform 50 (step S43), and stores the designation data of the service ID, the execution entity, and the keeping entity into the service program data storage 717 (step S45).
Then, in the case where the client terminal is designated to be the keeping site, the service program development unit 701 stores the registered service program into the service program data storage 717 in accordance with the data of the keeping entity stored in the service program data storage 717 (step S47).
The execution preparation of the service program is completed by performing the processing as described above. Incidentally, in the case where the execution entity is determined in the network platform 50, because the workload (f(Ni, Ns, Nf)) is not calculated in the client terminal 7, for example, after the step S45, the workload analyzer 702 may calculate the workload (f(Ni, Ns, Nf)) and may store it into the service program data storage 717. This is because when a trigger occurs, it becomes unnecessary to analyze the service program, if such a processing is done.
In the foregoing example, although the example has been described in which the determination of the execution entity and the keeping entity, and the issuance of the service ID are carried out in the network platform 50, this must not be always performed in the network platform 50.
Next, a description will be given to a case where the determination of an execution entity and a keeping entity of a service program, and the issuance of a service ID are carried out in the client terminal. Incidentally, because the processing shown in
The service program development unit 701 of the management program 71 in the client terminal 7 generates the service program in accordance with the received input data, and stores it into the storage device (step S91). The service program development unit 701 of the management program 71 causes the service ID manager 705 to issue the service ID of the service program (step S93). The service ID manager 705 stores the issued service ID into the storage device. Then, the service program development unit 701 transmits a service program registration request including the issued service ID and the generated service program to the network platform 50 (step S95). The service program check unit 5031 of the CT management function module 503 in the network platform 50 receives the service program registration request including the service ID and the service program from the client terminal 7 and stores it into the storage device (step S97). Then, the service program check unit 5031 of the CT management function module 503 refers to the client data storage 513 to carry out a check processing to the received service program (step S99).
For example, data as shown in
In the case where an unauthorized function module is defined in the service program, the service program check unit 5031 of the CT management function module 503 transmits a registration rejection notice to the client terminal 7. The service program development unit 701 of the management program 71 in the client terminal 7 receives the registration rejection notice, and displays it on the display device (step S103). By doing so, it is possible to recognize that there is a problem in the generated service program.
On the other hand, in the case where it is judged that all the function modules defined in the service program received from the client terminal 7 are authorized, the service ID manager 5033 of the CT management function module 503 registers the service ID of the received service program into the client data storage 513 and the service program data storage 5203 (step S105). For example, as shown in
The service program check unit 5031 generates a registration completion notice of the service ID, and transmits it to the client terminal 7 (step S107). The service program development unit 701 of the client terminal 7 receives the registration completion notice of the service ID from the network platform 50, and registers it into the service program data storage 717 (step S109). The data to be registered in the service program data storage 717 is the data as shown in
Next, the service program development unit 701 causes the first execution entity determination unit 704 to carry out an execution entity determination processing (step S111). The execution entity determination processing by the first execution entity determination unit 704 is basically similar to the processing shown in
Further, the keeping entity determination unit 703 carries out a keeping entity determination processing (step S113). Although the keeping entity determination processing by the keeping entity determination unit 703 is basically similar to the processing shown in
Then, the service program development unit 701 accesses to the service program data storage 717, and transmits the designation data of the execution entity and the keeping entity to the network platform 50 (step S115). Incidentally, the service ID is transmitted, so that the service program is identified. The CT management function module 503 in the network platform 50 receives the designation data of the execution entity and the keeping entity, and registers it into the service program data storage 5203 correspondingly to the received service ID (step S117). When the keeping entity is the network platform 50, the CT management function module 503 stores the service program received at the step S97 and stored in the storage device into the service program data storage 5203 on the basis of the designation data of the keeping entity (step S121).
On the other hand, when the keeping entity is the client terminal, the keeping entity determination unit 703 of the management program 71 in the client terminal 7 stores the service program generated at the step S91 and stored in the storage device into the service program data storage 717 on the basis of the designation data of the keeping entity (step S119).
Even if the processing as shown in
As a result, when the service is requested to the network platform 50 through the SCI, the packet as shown in
Incidentally, in the processing flow of
[Execution Processing of Service Program]
Next, a case where a trigger is detected in the client terminal and a processing is started will be described with reference to
Here, in the case where it is judged that the service program corresponding to the detected trigger and to be executed is not registered, the processing is ended. On the other hand, in the case where it is judged that the service program to be executed is registered, the second execution entity determination unit 713 searches the processor capability DB 719 to read the processor power of the client terminal, reads out the number Ni of steps, the number Ns of state transitions and the number Nf of used function modules in the service program to be executed from the service program data storage 717, calculates the no-load performance according to the method as described above, and stores it into the storage device (step S137). In the case where Ni, Ns and Nf have not been counted, it may cause the workload analyzer 702 to count, and may cause the second execution entity determination unit 713 to calculate the no-load performance. Although a value of the no-load performance is not registered in
In the case where it is judged that the no-load performance is equal to the predetermined threshold or less, when the service program is made to be executed in the client terminal 7, there is a possibility that satisfactory performance can not be obtained, for example, a bad influence is given on the normal operation of the client terminal 7, or it takes much time to perform the processing. Thus, at the service program registration stage, the execution is entrusted to the network platform 50. Accordingly, the second execution entity determination unit 713 causes the execution entrusting processor 718 to perform an execution entrustment processing to the network platform 50. That is, the execution entrusting processor 718 generates an execution entrustment request including the data of the detected trigger and the service ID of the service program to be executed, and transmits it to the network platform 50 (step S155).
The processing subsequent to this will be described with reference to
In the case where it is judged after the step S167 or at the step S163 that the service program is held, the execution entrusted processor 5204 causes the service program, the execution of which is entrusted, to be executed (step S169). The service program uses the function modules provided in the network platform 50 to perform the execution, and outputs the processing result of the service program to the execution entrusted processor 5204. The execution entrusted processor 5204 acquires the processing result of the service program (step S171), and transmits the processing result to the client terminal 7 of the execution entrusting source (step S173). Then, the processing returns to the original processing.
As stated above, since the processing of the service program is not performed in the client terminal but can be executed by the network platform 50, the network service can be received without raising the processing load of the client terminal.
Returning to the explanation of
On the other hand, in the case where it is judged at the step S139 that the no-load performance exceeds the predetermined threshold, the second execution entity determination unit 713 causes the CPU utilization ratio acquiring unit 715 to acquire the CPU activity ratio from the OS or the like, and stores it into the CPU utilization ratio storage 716 (step S141). Thereafter, the second execution entity determination unit 713 accesses to the CPU utilization ratio storage 716, the service program data storage 717, and the processor capability DB 719, acquires the CPU utilization ratio, the processor capability (i.e. power) and the data (Ni, Ns, and Nf) as the basis of the calculation of the workload, calculates actual load performance, and stores it into the storage device (step S143). Here, other jobs already executed in the client terminal are taken into consideration, and the influence of the execution of the service program must be analyzed on the basis of the remaining power of the processor. Accordingly, first, the processor remaining power Pr is defined as Pr=processor power Pp×(1−CPU utilization ratio). The actual load performance P1 of the client terminal is defined as Pr/f(Ni, Ns, Nf)=Pr/(aNi+bNs+cNf).
The second execution entity determination unit 713 judges whether the actual load performance P1 is equal to a predetermined threshold or less (there is also a case where it is different from the threshold at step S139) (step S145). In the case where it is judged that the actual load performance P1 is equal to the predetermined threshold or less, the processing proceeds to the step S155, and the execution of the service program is entrusted to the network platform 50. On the other hand, in the case where it is judged that the actual load performance P1 exceeds the predetermined threshold, the second execution entity determination unit 713 accesses to the service program data storage 717, and judges whether the service program to be executed is held (step S147). In the case where it is judged that the service program is not held, the second execution entity determination unit 713 causes the download unit 714 to transmit a service program request including the service ID of the service program to be executed to the network platform 50 (step S149).
When receiving the service program request from the client terminal, the CT management function module 503 of the network platform 50 reads out the service program from the service program data storage 5203, and sends back it to the client terminal as the requester. On the other hand, the download unit 714 receives the service program from the network platform 50, and stores it into the service program data storage 717 (step S151). The second execution entity determination unit 713 or the download unit 714 causes the service program to be executed (step S153). Thereafter, the service program is normally executed.
When the condition as described above is satisfied, the service program can be executed in the client terminal quickly and suitably. Besides, also in the case where the condition is not satisfied, because the execution can be entrusted to the network platform 50, the client can receive the network service, even if there is no remaining processing in the client terminal.
Incidentally, in the case where the client uses a client terminal, which is not usually used, and instructs to execute a specific service program, there is also a case where the data of the specific service program is not registered in the service program data storage 717 of the client terminal. However, in such a case, because the service program is designated by the user, the processing proceeds from the step S135 to the step S137.
Next, a processing in a case where a trigger is detected in the network platform 50 will be described with reference to
On the other hand, in the case where it is judged that the detected trigger is the trigger for the registered client, the service program specifying unit 5202 accesses to the service program data storage 5203, and judges whether the service program relevant to the detected trigger is defined (step S185). For example, in the data table of
In the case where the service program to be executed is held, the processing proceeds to step S193. On the other hand, in the case where the service program to be executed is not held, the service program specifying unit 5202 causes the download unit to download it. That is, the download unit 5205 specifies the keeping site from the data of the keeping entity stored in the service program data storage 5203, and transmits a service program request to the keeping site (step S189). When the client terminal 7 is the keeping site, the management program 71 of the client terminal 7 reads out the requested service program from the service program data storage 717, and transmits it to the network platform 50. The download unit 5205 receives the service program relating to the request from the client terminal 7, and stores it into the service program data storage 5203 (step S191).
In the case where it is judged at the step S187 that the service program to be executed is held, or after step S191, the service program is executed (step S193). As the need arises, the processing result of the service program is transmitted to the client terminal.
When doing so, the service program can be executed in the network platform 50 quickly and suitably. Incidentally, with respect to the execution entity determination unit 5206, the state of a client terminal or a specific server of the network platform 50 may be again checked to judge whether the service program is to be executed in the client terminal or the specific server. However, in general, with respect to the network platform 50, because the margin in processing power is larger than the client terminal, the processing using the execution entity determination unit 5206 may not be performed.
[Specific Processing Mode of Service Program]
(1) Execution of Service Program in Client Terminal (Case Where there is Client Instruction)
Next, a description will be given to a case where execution of a specific service program is instructed by a client in the client terminal 7, and the specific service program is directly executed in the client terminal 7. Incidentally, the assembly, disassembly and distribution method of a message and a packet, as the premise, will be described first with reference to FIGS. 18 to 20.
As shown in
Next, in the network platform 50, a packet disassembly unit 521 receives the packet from the client terminal in accordance with the specific communication protocol, extracts a message (operation data, service ID, terminal ID, and client ID) included in the packet, and outputs it to a message disassembly function module 522 through a communication interface. The message is data as shown in
The authentication and authorization function module 501 refers to the client data storage 513, and uses the client ID and the service ID to perform the service authorization. Incidentally, like the related art, it is judged by the client ID and the terminal ID whether the network platform 50 can be used, and personal authentication is separately performed by the data such as the client ID and password. The billing function module 502 mainly uses the client ID to carry out the billing processing. Incidentally, there is also a case where the service ID and the like are further used to carry out the billing processing. Then, in the case where the fee varies according to each function to be used, the function used is specified from the service ID, the usage state for each function is specified to carry out the billing. Incidentally, with respect to the terminal ID, since the same ID is given to plural terminals, and it is possible to specify from the terminal ID that a terminal belongs to a specific group, there is also a case where the terminal ID is also used for billing at the time when a certain user group shares terminals. Further, in the case of a public terminal or the like, which is assumed to be used by many and unspecified users, it may be judged by using the terminal ID whether the provision of a service defined by a client is authorized.
Incidentally, the authentication and authorization function module 501 further refers to the client data storage 513, and on the basis of the correspondence between the client ID and the IDs of the authorized function modules as shown in
When the service authorization by the client ID and the service ID is obtained, as shown in
Incidentally, the message dispatcher 523 may refer to the client data storage 513 (
In this way, the request of the service program in the client terminal is transmitted to the suitable function module in the network platform 50.
Next, a processing in a case where a response is sent back from the network platform 50 to the client terminal will be described with reference to
In the client terminal, when receiving the packet as shown in
By carrying out the processing as stated above, the operation data is suitably exchanged between the client terminal and the network platform. Incidentally, because the network address and the function module are not directly correlated with each other, there is also a merit that it is unnecessary to take the trouble to notify the client terminals of the addition and modification of the function modules in the network platform 50.
Next, on the premise of the assembly, disassembly and distribution method of the message and the packet shown in FIGS. 18 to 20, with reference to FIGS. 21 to 25, a description will be given to a specific processing flow for the message exchange in a case where a client instructs the client terminal 7 to execute a specific service program as described above. Here, it is assumed that for example, in the service program #1 of the client terminal 7, the logic as shown in
Then, the service program #1 or the like of the client terminal 7 generates a message for an activation request of the function module #c in order to carry out the state understanding for the specific terminal, and stores it into the storage device such as a main memory (step S251). The message for the activation request includes a client ID “#531”, a terminal ID “#936”, a service ID “#0703”, an activation request of the function module #c, and identification information of the specific terminal (or identification information of a specific user). The packet assembly unit 73 of the client terminal 7 generates a packet encapsulating the generated message for the activation request and a destination network address, and transmits it to the network platform 50 (step S253). For example, a packet as shown in
On the other hand, the packet disassembly unit 521 of the network platform 50 receives the packet encapsulating the message for the activation request of the function module #c from the client terminal 7, and stores the message into the storage device (step S255). Then, it extracts the message for the activation request of the function module #c from the packet (step S257). Besides, also as described above, the message disassembly function module 522 extracts the client ID, the terminal ID, and the service ID included in the message for the activation request, and outputs them to the authentication and authorization function module 501 and the billing function module 502. The authentication and authorization function module 501 confirms the client ID and the terminal ID, and the billing function module 502 performs a billing processing (step S259). Further, the authentication and authorization function module 501 uses the service ID and the client ID to confirm whether the activation request of the function module #c can be authorized (step S261). In the case where a problem is detected at the step S259 or S261, a message that the requested processing cannot be carried out is sent back to the client terminal 7. On the other hand, in the case where a problem is not detected at the steps S259 and S261, the operation data (here, the activation request of the function module #c and parameters) or the operation data and the service ID are outputted from the message disassembly function module 522 to the message dispatcher 523. The message dispatcher 523 analyzes the operation data, and dispatches the operation data to the function module #c (step S263). Incidentally, in the case of the activation, necessary parameters are transferred to activate the function module.
Although described above, before the function module #c is activated, a judgment may be made as to whether or not the function module #c itself can be used (i.e. activated). In this case, a judgment may be made by referring to the data as shown in
The function module #c carries out a processing on the basis of the operation data (step S265), generates the operation data including the execution result (here, “function #c execution result: state Y” (for example, user A has a cellular phone and is on a train)), and outputs the operation data or the operation data and the service ID to the message assembly function module 524. The message assembly function module 524 adds the client ID “#531”, the terminal ID “#936” and the service ID “#0703” to generate a message (step S267). The packet assembly unit 525 adds the packet header to the message including the execution result to generate the packet, and transmits it to the client terminal 7 (step S269). The packet transmitted at this step is, for example, a packet as shown in
The packet disassembly unit 74 of the client terminal 7 receives the packet including the execution result message from the network platform 50, and stores it into the storage device such as, for example, the main memory (step S271). The processing proceeds to
The service program #1 analyzes the execution result included in the operation data, and judges the state when it is the service program as shown in
On the other hand, the packet disassembly unit 521 of the network platform 50 receives the packet encapsulating the message for the activation request of the function module #b from the client terminal 7, and stores the message into the storage device (step S281). Then, it extracts the message for the activation request of the function module #b from the packet (step S283). Besides, also as described above, the message disassembly function module 522 extracts the client ID, the terminal ID, and the service ID included in the message for the activation request, and outputs them to the authentication and authorization function module 501 and the billing function module 502. The authentication and authorization function module 501 confirms the client ID and the terminal ID, and the billing function module 502 carries out the billing processing (step S285). Further, the authentication and authorization function module 501 uses the service ID and the client ID, and confirms whether the activation request of the function module #b can be authorized (step S287). In the case where a problem is detected at the step S285 or S287, a message that the requested processing cannot be carried out is sent back to the client terminal 7. On the other hand, in the case where a problem is not detected at the step S285 and S287, the operation data (here, the activation request of the function module #b and parameters) or the operation data and the service ID are outputted from the message disassembly function module 522 to the message dispatcher 523. The message dispatcher 523 analyzes the operation data, and dispatches the operation data to the function module #b (step S289) Incidentally, in the case of the activation, necessary parameters are transferred to activate the function module #b. Also as described above, a judgment may be made at this state as to whether the function can be activated.
The function module #b carries out the processing on the basis of the operation data (step S291), generates the operation data including the execution result (here, “execution result of the function #b”), and outputs the operation data or the operation data and the service ID to the message assembly function module 524. The processing proceeds to the processing of
Then, the message assembly function module 524 adds the client ID “#531”, the terminal ID “#936” and the service ID “#0703” to generate a message (step S293). The packet assembly unit 525 adds a packet header to the message including the execution result to generate a packet, and transmits it to the client terminal 7 (step S295). The packet to be transmitted at this step is, for example, a packet as shown in
The packet disassembly unit 74 of the client terminal 7 receives the packet including the execution result message from the network platform 50, and stores it into the storage device such as, for example, the main memory (step S297). Then, the packet disassembly unit 74 extracts the execution result message portion, and outputs it to the message disassembly function module 75 (step S299). The message disassembly function module 75 extracts the operation data including the execution result or the operation data and the service ID from the message including the execution result, and outputs it to the message dispatcher 76. The message dispatcher 76 outputs the operation data to the service program #1 as the requester of the operation data.
The service program #1 analyzes the execution result included in the operation data (step S301), and performs a necessary processing in accordance with the analysis result (step S303).
As stated above, the message added with the service ID is exchanged, and the processing is performed in accordance with the service program.
(2) Execution of Service Program in Client Terminal (without Instruction of Client)
Next, a processing in a case where the service program execution processor 710 is operated so that the service program is executed in the client terminal 7, will be described with reference to
Next, a flow of a processing of the whole system will be described with reference to
The HTTP (Hyper Text Transfer Protocol) function module 532 of the network platform 50 receives the URL from the PDA as the client terminal, and transmits a GET message to a Web server specified by the URL (step (6)). The Web server receives a GET request from the network platform 50, and sends back an HTML file and the like as a response to the GET request to the network platform 50 (step (7)). The HTTP function module 532 of the network platform 50 receives the response including the HTML file from the Web server, and transmits it to the PDA as the client terminal (step (8)). When receiving the response including the HTML file and the like from the network platform 50, the service program of the PDA as the client terminal activates the function module such as the Web browser, and causes the received HTML file and the like to be displayed.
As stated above, in the case where the trigger occurs in the client terminal, the service program is executed in the client terminal, and the provision of the address resolution and the HTTP function can be received as the network service from the network platform 50.
(3) Execution Entrustment of Service Program from Client Terminal to Network Platform
Next, with reference to
When the RFID reader of the PDA as the client terminal reads the ID, the trigger detector 711 of the service program execution processor 710 detects the occurrence of a trigger, and the service program specifying unit 712 refers to the service program data storage 717 and specifies the service program to be executed. Here, it is assumed that the service program as shown in
When receiving the execution entrustment request including the data of the detected trigger and the service ID of the service program from the PDA as the client terminal, the execution entrusted processor 5204 of the service program execution processor 520 in the network platform 50 refers to the service program data storage 5203, and confirms whether the service program specified by the service ID is held. In the case where the service program specified by the service ID is not held, the execution entrusted processor 5204 causes the download unit 5205 to transmit the service program request including the service ID of the service program to be executed to the PDA as the client terminal of the keeping site (step (2)). When receiving the service program request, the management program 71 of the PDA as the client terminal reads out the service program relating to the request from the service program data storage 717, and sends back it to the network platform 50 (step (3)). The download unit 5205 of the service program execution processor 520 in the network platform 50 receives the service program from the PDA as the client terminal. The execution entrusted processor 5204 causes the service program 533 to be executed, and outputs the data of the trigger previously received for the service program 533 to the service program 533 (step (4)).
The service program 533 activates the address resolution function module 531 in accordance with the logic shown in
The HTTP function module 532 of the network platform 50 receives the URL, and transmits a GET message to a Web server specified by the URL (step (11)) The Web server receives the GET request from the network platform 50, and sends back an HTML file and the like as a response to the GET request to the network platform 50 (step (12)). The HTTP function module 532 receives the response including the HTML file and the like from the Web server, and outputs it to the service program (step (13)). When receiving the response including the HTML file and the like, the service program 533 being executed in the network platform 50 outputs the response including the HTML file and the like as the processing result to the execution entrusted processor 5204 (step (14)).
The execution entrusted processing 5204 transmits the response of the HTML file and the like as the processing result from the service program to the PDA as the client terminal (step (15)). The execution entrusting processor 718 of the PDA as the client terminal receives the response of the HTML file and the like as the processing result, activates the function module such as the Web browser, and causes the received HTML file and the like to be displayed.
As stated above, even in the case where the client terminal such as the PDA does not have a remaining processing capability due to other jobs, the execution can be entrusted to the network platform 50, and the network platform 50 executes the entrusted service program, and can send back the processing result to the client terminal such as the PDA. That is, the processing result similar to the case where the service program is executed in the client terminal can be obtained.
Incidentally, although the configuration is shown in which the URL as the processing result of the address resolution function module 531 is temporarily returned to the service program 533, and the HTTP function module 532 is activated from the service program 533, the transaction may be directly performed between the address resolution function module 531 and the HTTP function module 532 as the function of the address resolution function module 531. The same applies to the case of
(4) Case Where a Trigger is Detected in the Network Platform 50 and a Service Program is Executed
For example, in the case of a service program as shown in
In the example of
In such a case, in the network platform 50, the processing of the service program is completed, and in the client terminal of the specific client, the function module held irrespective of the service program is used to receive the provision of the network service.
As stated above, various APIs are prepared for the provision of network services, and the user of the client terminal or the software developer can generate a service program in which the function modules are combined to use as the need arises. Further, in the case where a specific service is used, it is sufficient if only the service program is prepared. Thus, as compared with a case where the whole of the specific service is systemized, the number of development steps and the period can be decreased. Besides, the update of the service program itself is easy, and when the function module at the network platform 50 side is updated, all clients can use the improved function. Further, because the function module can be downloaded to the client terminal as the need arises, even in the terminal not having many functions originally, various and high-level services can be used.
Besides, the execution entity of the service program is set to the client terminal or the network platform 50 from the relationship between the service program and the client terminal at the time of registration (i.e. definition) of the service program. However, at the time of execution of the service program, it is confirmed again whether the service program can be executed without badly influencing other jobs or the like, and the execution entity is further determined. Thus, the service program can be suitably executed. Besides, the keeping entity is also determined according to the detection place of the trigger, and the usage state of the client terminal or the service program, the flexible and suitable execution become possible.
Incidentally, in the case where the client uses plural client terminals, the service program to be used is kept in a predetermined storage of the network platform 50, and by an instruction of the client, the service program may be made to be executed after it is downloaded to the client terminal currently being used.
Although the embodiment of the invention has been described, the invention is not limited to this. For example, although the generation processing of the service program through the SMI has been described, when the details of function modules provided in the network platform 50 can be separately obtained, the service program may be generated on the basis of the separately obtained information. Besides, also with respect to the registration of the service program, there is also a case where a procedure of separately performing confirmation and registration without using the network is adopted.
Besides, there is also a case where the network platform 50 is not realized by one computer, and the functions are shared by plural computers, or parallel or distributed processing is carried out for portion of the functions.
Besides, with respect to the service authorization, there is also a case where other data (for example, data (hash value or electronic certificate) to prove that alteration of the service program is not made) is added to confirm it in the network platform 50.
Further, clients who can use a function module may be defined for each of the functional modules in the network platform 50, and by using the client ID and the function module ID included in the operation data, a judgment may be made for each of the function modules as to whether or not the function module can be used. Besides, by using only the corresponding table between the client ID and the function module ID as shown in
Further, the functional block diagrams shown in
Incidentally, one or plural computers to achieve the network platform 50 and the client terminal are computer devices shown in
Although the present invention has been described with respect to a specific preferred embodiment thereof, various change and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes and modifications as fall within the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2004-369868 | Dec 2004 | JP | national |