The present invention relates to a method and an apparatus for supporting promotion and management of services to be executed by plural computers and programs to be executed by each computer.
As a conventional service providing system having a computer for providing a service connected in a network, for example, the technology has been disclosed in JP-A-11-102336. Herein, the technology has been disclosed in which through the use of the communication connecting log information in executing a client program, a server computer is determined which performs a maximum number of connections in executing the program and the program is moved to the determined server computer for executing the program.
The foregoing prior art has been concerned with the arrangement in which the load burdened on the server computer is lessened through the disclosed content and the connecting times of the network and the network traffics are reduced.
On the other hand, it is necessary to execute the overall system optimally so that the target service may be provided more quickly in response to the request and the reliability to the response for the request may be enhanced. For this purpose, it is also necessary to distribute the request for the service and determine the scheduling of the services to be executed by the computers. This point of view has not been disclosed in the foregoing prior art.
In the case that the request for the service is distributed and the scheduling of the services to be executed by the computers is carried out, the change of the program is made less frequent. It is an object of the present invention to provide a decentralized system and a method and an program for managing the system which are arranged to carry out the optimal execution in compliance to the distributed service changing day by day.
In carrying out the object, according to an aspect of the invention, a system is arranged to set a plurality of promotion rules for defining promotion of a service and a plurality of conditions for executing each promotion rule, collect log information generated by execution of the service from each computer, and, if the collected log information meets the condition, execute the promotion rule corresponding with this condition.
As described above, the promotion of the service is determined on the log information. Hence, the system enables to correspond with the service request changing day by day so that the system itself may be promoted optimally.
Hereafter, an embodiment of the invention will be described with reference to the appended drawings.
The job executing server is made up of a processing unit such as a CPU, a communicating unit for connecting with a network, a storage unit such as an optical disk or a magnetic disk, a display unit such as a CRT or a liquid crystal display, and an input unit such as a keyboard or a mouse. In addition, the application server or the decentralized management server is made up of the same components as described above.
The log information 201 and the log form information 202 store log information and log form information of the job executing servers 104 and 105 and the application servers 106 and 107. The server address 203 stores addresses of the job executing server and the application server. A numeral 204 denotes an application execution rule which stores the promotion rules of the job executing server or the application server and the promotion rules of the job program or the application program of the job executing server or the application server. A numeral 205 denotes analyzed data, which is the result of analyzing the log information 201. The analyzed data includes the promoting results of the job executing server and the application server and the promoting results of the program.
A log detecting process 206 is a program for obtaining the log information and the log form information from the job executing server and the application server. A log data extracting process 207 is a program for extracting the log information according to the log form information. A working process 208 is a program for editing and working the extracted log data. An analyzing process 209 is a program for analyzing the edited and analyzed result or displaying the analyzed result on a display unit. An execution rule generating process 210 is a program for generating optimization rules (promotion rule) for performing the optimal execution based on the analyzed result presented thereto. An optimization execution process 211 is a program for selecting a control command for controlling the job executing server or the application server according to the generated optimization rules and the log information and then sending the control command. As described above, the decentralized system managing server 108 is served to collect log information from the job executing servers 104, 105 and the application servers 106, 107 and generate the optimization rules for controlling the job program or the application program. Further, the server 108 is also served to send the control command according to the generated optimization rules and the log information for the purpose of directly controlling the promotion of the job executing servers 104, 105 and the application servers 106, 107. This configuration makes it possible for the job executing server or the application server to eliminate a special program for executing the optimization rules.
In place, the special program for executing the optimization rules may be stored in the job executing server or the application server, while the decentralized system managing serer may be served to send the optimization rules. This configuration makes it possible to execute the promotion of the job executing server or the application server within itself, thereby making the process faster.
For example, if the job executing server or the application server requests the fast process, the optimization rules may be sent thereto, while if it does not request the fast process, the decentralized system managing server is served to send the control command. This configuration makes it possible to provide the economical decentralized system circumstances.
Application programs 212 and 213 execute the other processes. In addition, the log detecting process 206, the log data extracting process 207, the working process 208, the analyzing process 209, the execution rule generating process 210, and the optimization executing process 211 may be executed in respective programs as described above or collectively as one program. Each process will be described below.
The application server is served to output the log being processed as the log information according to the predetermined log form information.
A log information 401 stores the log information of the job executing server. A log form information 402 defines the form of the log information. A job execution rule 403 stores the optimization rules sent from the decentralized system managing server 108. As described above, if the control command is directly sent from the decentralized system managing server, the optimization rules are not necessarily required. A job executing process 405 is a program for executing a job based on the request sent from the application server. Concretely, the job to be executed is managed in correspondence with the request sent from the application server so that the corresponding job may be executed in response to the request. A database managing process 408 is a program for storing data in the database, updating the data, and reading the data. A log information obtaining process 406 is a program for storing the commands and the like executed by the job executing server as the log information in the log information or performing a process for sending the log information or the log form information based on the request sent from the decentralized system managing server 108. The communicating process 310 is a program for communicating with another application server, the job executing server, the decentralized system managing server or the like. Jobs 407 and 410 are job programs for executing the process in response to the request sent from the application server. Further, the other data is stored in the unit 404. The job executing server is served to output the log being processed according to the predetermined log output form setting information.
In turn, the description will be oriented to the process of the decentralized system managing server 108.
At first, the log detecting process 206 of obtaining the log information from the server will be described. The log detecting process is composed of two subprocesses of generating the list for obtaining the log information and obtaining the log information according to the list.
A process 511 is executed to accept a name of a program to be obtained as the log information, a specified server where the program is to be executed, and a schedule that indicates a time of collecting the log information. A process 512 is executed to determine whether or not the server is specified. If the server is specified, a process 513 is executed to connect to the specified server, obtain the location of the log information from the server, and then generate the log list (see
In generating the log list in the processes 513 and 517, if the schedule is specified, the location of the log information is written in the log list.
Herein, in the job executing server and the application server, the storage unit stores the program name in correspondence with the log information of the program and the storage location (address or file name) of the log form information. If the request for the program name is accepted from the decentralized system managing server, the list of the program names stored in the storage unit is outputted. Further, in the case of accepting the request for the storage locations of the log information and the log form information from the decentralized system managing server 108, the storage locations of the log information and the log form information are outputted.
As described above, the log information is collected at the time interval of the read time set in the log list. This read time may be changed. In this change, the read time may be inputted as it is or the read time may be determined by the scheduling process indicated below.
An example of presenting to the user is illustrated in
This process is a process of extracting the necessary log data from the log information collected for creating the promotion rule.
The association between the program to be processed in a process 611 and the form of the log to be outputted from this program is read from the log form rule (see
A process 811 is executed to read the content of the log data extracted in the process 203 and then create a multidimensional table (see
A process 812 is executed to determine if any missing data item is in the created multidimensional table. If yes, a process 813 is executed to determine if it is to be supplemented. If yes, a process 814 is executed to perform the data supplementation. For example, if a service identifier is missing in a certain row, the same command and the same object identifier are retrieved by referring to another multidimensional table. If the same command and object identifier are given, the service identifiers thereof are supplemented. By referring to another multidimensional table having executed the same service, it is possible to make sure of whether or not no missing is in a series of processes. Based on the result, the supplementation can be executed.
The multidimensional table created as described above is outputted to and stored in the memory or buffer (815). If no data item is missing or the supplementation is disabled, the process goes to the process 815 as it is.
A process 1011 is executed to read the multidimensional table from the memory or the buffer. Then, a process 1012 is executed to accept the specification of the presentation condition.
In place of accepting the specification, this presentation condition may be preset. If the specified presentation condition is changed (1013), the use of a specified key or service makes it possible to rearrange the multidimensional table, thereby obtaining a view display table (see
FIGS. 13 to 16 show an example of a view displayed in the process 1015.
This operation history indicates the following operations. The user starts the service 1. After a series of operations including “opening a document” and “duplicating a document” is carried out, an error takes place. The operation is stopped for a while. Then, the user starts the service 2.
The display example shown in
This graph indicates that as to the command 3, the user has a high success ratio in the service 1, while as to the command 4, the user has a high success ratio in the service 2.
Herein, the congestion ratio is displayed by the number of persons. The display indicates that the terminal 1 at the Japan branch that provides the service 1 is congested more than the other terminal.
In this example, it is indicated that the terminal 1 at the Japan branch has a higher ratio in abnormal end by communication failure.
For performing the view display, as described above, the application program for the view display is prepared so that the presentation condition given by the user may be associated with the application program. This makes it possible to display various kinds of views.
If any existing optimization rule (see
In turn, the description will be oriented to the creation of the optimization rules with reference to FIGS. 13 to 16 and FIGS. 24 to 27.
In the process shown in
The messages presented as the above to the user are indicated by 1301 and 1302 of
Likewise, in the example shown in
In the example shown in
Based on the optimization rules created as above, the optimization instruction for controlling the promotion of the service is generated and issued.
At first, in a process 1911, the optimization rules are read in the memory. Then, an optimization instruction a (control command) to be executed by the job executing server and the application server is created from each of the optimization rules (1912). For example, the optimization instruction a includes a command for stopping the application, another command for executing a job at a priority, or the like. This control command is associated with the optimization rule. The optimization instruction a is created by reading the command from the selected optimization rule. In addition, the optimization rule and the command may be optionally added.
Then, it is checked if the created optimization instruction a includes a contradictory point (1913). One contradictory point is that if the optimization instruction for executing Job A at a top priority has been already sent to the job executing server, the optimization instruction for executing Job B at a top priority is created. Further, another contradictory point is that the optimization instruction for stopping Job A and the optimization instruction for starting Job A are created at a time. In order to avoid such cases, such a table as shown in
The “server” column of the table corresponds to the server to which the created optimization instruction a is to be sent. The “system” column corresponds to an overall server to be connected with the decentralized system managing server. For example, if the optimization instruction a for “stop Job A” is created, it indicates that this optimization instruction a and the optimization instruction b for “start Job A) are not located in the same server. At a time, it indicates that the optimization instruction b for “start Job A” and the optimization instruction a for “stop Job A” are not located in the overall server to be connected with the decentralized system managing server. It indicates that if the optimization instruction b for “start Job A” is located in any one of the servers included in the system, the optimization instruction a for “stop Job A” is not issued.
On the other hand, the decentralized system managing server stores the optimization instruction sent to each server as shown in
If a contradiction takes place, the instruction is arranged according to the priority weight of the rule (1914). That is, starting Job A or stopping Job A is determined according to the priority weight. The priority weight has been already inputted as shown in FIGS. 13 to 16 and thus is used for that determination. According to the determined priority, a process (1915) is executed to create an instruction for giving the optimization instruction c to the target job executing server and application server. In the previous example, the optimization instruction a for “stop Job A” is created. If the optimization instruction a for “stop Job A” is at a higher priority than the already issued optimization instruction b for “start Job A”, a new optimization instruction c for deleting the optimization instruction b for “start Job A” is created. By sending the new optimization instruction c to the server, the optimization instruction b for “start Job A” is deleted. Afterwards, by sending the already created optimization instruction a for “stop Job A”, Job A can be stopped.
The created optimization instruction a and optimization instruction c are issued to the job executing server and the application server through the network (1916). As to the optimization instruction c, if the optimization instruction b is described in the server column of the table shown in
If it is determined that the created optimization instruction a is contradictory to the optimization instruction b that has been already sent and the created optimization instruction c is at a lower priority than the optimization instruction b, the created optimization instruction c is not issued. Further, the issuing timing can be specified. For example, the decentralized circumstances with a time lag make it possible to issue the instruction within the safe time for the service. Moreover, the overall process of the decentralized system managing server (108) may be carried out by the batch process so that no substantial load may be burdened in the system in managing the servers. As an example, the job executing server has been described. Likewise, the optimization instruction is issued to the application server. As described above, the process of generating an execution rule is executed to issue the control command for controlling the server on the basis of the promotion rule. This makes it possible to efficiently promote the overall system. Further, the decentralized system managing server enables to register the commands that are not allowed to be executed at a time. The process of generating the execution rule is executed to issue the optimization instruction so as to allow the command to be executed to be left. This makes it possible to efficiently promote the server or the overall system.
As set forth above, in this embodiment, if a plurality of promotion rules for defining promotion of the service and an executing condition for each promotion rule are set, the log information created by executing the service is collected from each server, and the collected log information meets the condition, the instruction is outputted for controlling the server based on the promotion rule associated with this condition. This makes it possible to divert the existing log information included by the existing application, analyze the status of the job execution in the decentralized circumstances, and thereby allow the user to grasp the status of the job execution without having to recreate the application.
The collection and the analysis of the log are carried out independently of the operation of the system. Hence, the optimizing process is allowed to be executed without having to give an adverse effect of the network load onto the system.
Further, the method of supporting management of the system is provided for carrying out the analysis of the history accumulated in the past and giving a proposal on improving the system on the analysis.
The present invention provides the circumstances of the efficiently promoted decentralized system.
Number | Date | Country | Kind |
---|---|---|---|
2001-041120 | Feb 2001 | JP | national |
This a continuation application of pending U.S. patent application Ser. No. 10/055,490, filed Oct. 19, 2001, which is herein incorporated by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 10055490 | Oct 2001 | US |
Child | 11235797 | Sep 2005 | US |