WO2005078581A1 - システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体 - Google Patents

システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体 Download PDF

Info

Publication number
WO2005078581A1
WO2005078581A1 PCT/JP2005/002218 JP2005002218W WO2005078581A1 WO 2005078581 A1 WO2005078581 A1 WO 2005078581A1 JP 2005002218 W JP2005002218 W JP 2005002218W WO 2005078581 A1 WO2005078581 A1 WO 2005078581A1
Authority
WO
WIPO (PCT)
Prior art keywords
input data
processing program
server
underwriting
unit
Prior art date
Application number
PCT/JP2005/002218
Other languages
English (en)
French (fr)
Inventor
Akihiro Kaneko
Original Assignee
Ibm Japan, Ltd.
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm Japan, Ltd., International Business Machines Corporation filed Critical Ibm Japan, Ltd.
Priority to BRPI0507844-0A priority Critical patent/BRPI0507844B1/pt
Priority to JP2005518010A priority patent/JP4197701B2/ja
Priority to EP05719120.7A priority patent/EP1722302B1/en
Priority to CA002553416A priority patent/CA2553416A1/en
Priority to US10/597,634 priority patent/US7975268B2/en
Publication of WO2005078581A1 publication Critical patent/WO2005078581A1/ja
Priority to IL177553A priority patent/IL177553A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to a system, a management server, an underwriting server, a control method, a control program, and a recording medium.
  • the present invention relates to a grid computing system, a management server, an underwriting server, a control method, a control program, and a recording medium in which a plurality of underwriting servers managed by a management server cooperate to process a requested job. .
  • grid computing that efficiently executes a job by processing each of a plurality of steps (processing portions) included in a plurality of computer-based jobs connected via a network has attracted attention.
  • a job client sends a set of a program for processing a part of a job and data necessary for processing the job to each of a plurality of computers.
  • each of the plurality of computers executes the received program with the received data as input, and returns an execution result to the requester.
  • the job requester combines each of the returned execution results to obtain the job result.
  • Non-Patent Document 1 describes an example of a grid computing system.
  • Non-Patent Document 1 “Information Processing” Published by Information Processing Society of Japan, 2003, Vol.44, Special Issue “Present and Future of PC Grid”
  • an object of the present invention is to provide a grid computing system, a management server, an underwriting server, a control method, a control program, and a recording medium that can solve the above problems.
  • This object is achieved by a combination of features described in the independent claims.
  • the dependent claims define further advantageous embodiments of the present invention.
  • a plurality of underwriting servers each executing an assigned processing program
  • a management server that manages the underwriting servers of the plurality of processing programs, wherein the management server generates execution instruction information including identification information for identifying each of the plurality of processing programs and an execution order of the plurality of processing programs.
  • an input data transmitting unit that associates the input data with the execution instruction information and transmits the input instruction and the execution instruction information to the underwriting server that executes the processing program to be executed first with the input data as input. Then, each of the plurality of underwriting servers updates the input data by executing the processing program assigned with the received input data as an input.
  • a grid computing system can be constructed by connecting more computers.
  • FIG. 1 is a functional block diagram of the grid computing system 10.
  • the grid computing system 10 includes a management server 20, a user terminal 40, and an underwriting server 50-11N connected to each other by a network such as a LAN, a WAN, or the Internet.
  • the user terminal 40 is, for example, a terminal such as a personal computer, and may be realized by the same configuration as the terminal of a job requester in an existing grid computing system.
  • the underwriting servers 50-1-N among the plurality of processing programs for processing the plurality of processing parts included in the job, the assigned processing program is installed and activated in advance. For example, the same data is stored in advance in each of the databases 55-1-N.
  • the user terminal 40 receives a user instruction and requests a job from the management server 20.
  • the management server 20 sends a set of the input data input to the job and the execution instruction information indicating the execution order of the plurality of processing programs to the underwriting server 50-1 as transmission data 30.
  • the underwriting server 50-1 executes the processing program with the input data received from the management server 20 as an input based on the received execution instruction information, and updates the input data.
  • the underwriting server 50-1 transmits the pair of the updated input data and the execution instruction information to the underwriting server 50-2 as transmission data 30.
  • the underwriting server 50-1 may inquire the management server 20 of the next destination of the input data using the control data. Further, depending on the contents of the processing, the underwriting server 50-1 may access data stored in the database 55-1. Thereafter, similarly, each of the underwriting servers 50-2- (N-1) sequentially executes the processing program with the input data as input. Finally, the underwriting server 50-N completes execution of all processing programs. Send the notification to the management server 20. The management server 20 transfers the received completion notification to the user terminal 40.
  • each underwriting server transmits only data necessary for processing without transmitting a processing program.
  • the jobs can be executed efficiently by executing a part of each job in a pipeline manner. .
  • FIG. 2 is a functional block diagram of the management server 20.
  • the management server 20 includes an execution instruction information generation unit 200, an input data transmission unit 210, an underwriting server information storage unit 220, an inquiry response unit 230, a processing program activation unit 240, a failure occurrence notification transmission unit 250, It has an underwriting server changing unit 260 and a deletion instruction unit 270.
  • the execution instruction information generating unit 200 identifies the plurality of processing programs for processing the plurality of processing parts included in the job, and the plurality of processing programs. And generating execution instruction information including the execution order. Then, the execution instruction information generating section 200 sends the generated execution instruction information to the input data transmitting section 210 together with the input data to be input to the job.
  • the input data transmission unit 210 transmits the input data and the execution instruction information in association with each other to an underwriting server that executes a processing program to be executed first using the input data as an input, for example, the underwriting server 50-1. . At this time, the input data transmission unit 210 selects the bow I receiving server that executes the processing program to be executed first based on the information stored in the bow I receiving server information storage unit 220. Well.
  • the underwriting server information storage unit 220 stores identification information for identifying each of the plurality of processing programs and identification information of the underwriting server that executes the processing program in association with each other. Further, the underwriting server information storage unit 220 associates the underwriting server with the identification information of each underwriting server and indicates whether the underwriting server is in an executable state in which it can newly receive input data and execute the processing program. Stores availability information. The underwriting server information storage unit 220 may further store the time when the underwriting server received the input data in association with the identification information of each underwriting server, or the maximum processing amount of the underwriting server. And total The usage rates of the arithmetic resources may be further stored in association with each other.
  • the inquiry responding unit 230 When the inquiry responding unit 230 receives an inquiry of an underwriting server that executes a predetermined processing program from any of the underwriting servers 50-1-N, the inquiry responding unit 230 adds identification information of the inquired processing program.
  • the identification information of the corresponding underwriting server is acquired from the underwriting server information storage unit 220 and transmitted as a reply to the inquiry.
  • the processing program starting unit 240 receives the input data as an input based on the execution instruction information generated by the execution instruction information generating unit 200, and executes each of the processing programs to be executed for the second time and thereafter. Is detected, and each of the detected processing programs is started in one of the underwriting servers different from the transmission destination of the input data transmission unit 210.
  • the processing program starting unit 240 performs the processing under the condition that the number of underwriting servers that execute the processing program to be executed for the second time or less is less than a predetermined reference number, or the underwriting server power is such that The processing program may be started when the condition that none of the units can be detected is satisfied.
  • the processing program activation unit 240 performs the processing under the condition that the number of underwriting servers that execute the processing program to be executed for the second time or less is less than a predetermined reference number, or the underwriting server power is such that The processing program may be started when the condition that none of the units can be detected is satisfied.
  • the processing program activation unit 240 performs the processing under the condition that the number of underwriting servers that execute the processing program to be executed for the second time or less is less than a predetermined reference number, or the underwriting server power is such that The processing program may be started when the condition that none of the units can be detected is satisfied.
  • the processing program activation unit 240 may update the data in the underwriting server information storage unit 220.
  • the failure occurrence notification transmitting unit 250 determines whether or not the power has received the termination notification from the underwriting server within a predetermined reference processing time after receiving the reception notification from one of the underwriting servers. The determination is made based on the information stored in the server information storage unit 220. Then, when the failure occurrence notification transmission unit 250 fails to receive the data within the reference processing time, the failure generation notification transmission unit 250 transmits the processing program to the underwriting server of the transmission source that transmitted the input data and the like to the underwriting server. A failure notification indicating that a failure has occurred is transmitted.
  • the underwriting server changing unit 260 determines whether the usage rate of the computational resource used by any of the plurality of underwriting servers by executing the processing program is lower than a predetermined reference usage rate. It is determined based on the data stored in the underwriting server information storage unit 220. Then, the underwriting server changing unit 260 performs the underwriting so that, when the usage rate of the computational resource is lower than the reference usage rate in any of the underwriting servers, the underwriting server is executed by another underwriting server whose maximum processing amount is smaller than the underwriting server. Server 50—Set N. Along with this, the underwriting server change section 260 updates the data in the underwriting server information storage section 220.
  • the deletion instruction unit 270 determines that the job has been completed by executing all of the plurality of processing programs when the underwriting server 50-N that has executed the processing program last is also notified of completion. In this case, the deletion instruction unit 270 deletes the input data and the execution instruction information stored in the process of executing the job from each of the plurality of underwriting servers. Alternatively, the deletion instruction unit 270 may simply notify that these input data and execution instruction information are unnecessary. In this case, the underwriting server receiving this notification may periodically detect and delete unnecessary input data and execution instruction information.
  • FIG. 3 shows an example of the data structure of the transmission data 30.
  • (a) shows the outline of the data structure of the transmission data 30.
  • the transmission data 30 includes a main body part and a header part.
  • the transmission data 30 includes input data in a main body portion and execution instruction information 300 in a header portion.
  • the input data transmitting section 210 may store the execution instruction information 300 in the header portion of the input data and transmit the input data and the execution instruction information 300 in association with each other.
  • transmission data 30 includes, in a header portion, a processed flag indicating a processing program that has already been executed among processing programs indicated by execution instruction information 300.
  • the underwriting server 50-1, etc. having received the transmission data 30, can appropriately determine which processing program should be executed next, even if a plurality of processing programs can be executed.
  • the transmission data 30 may store, in addition to the processed flag, information indicating an end status of each processing program, for example, information indicating normal or abnormal termination, an error code, or the like. This makes it easier to investigate the cause of a failure when it occurs.
  • the transmission data 30 contains the identification information of the processing program that has already been executed. Has not been executed yet, and has only the identification information of the processing program! / You can. That is, the underwriting server 50-1 or the like may delete the identification information of the processing program that has already been executed from the transmission data 30. Thus, the data size of the transmission data 30 can be reduced.
  • (B) shows an example of the execution instruction information 300.
  • Execution instruction information 300 includes JOB, which is information for identifying a job, in the first line.
  • the execution instruction information 300 includes, as a first step, an instruction to execute the processing program whose identification information is the program A in the second line.
  • the execution instruction information 300 includes information indicating a file used for executing the program A.
  • the execution instruction information 300 includes, as a second step, an instruction to execute a processing program whose identification information is the program A in the second line. Similarly to the first step, the execution instruction information 300 includes information indicating a file used for executing the program B on the sixth and seventh lines.
  • the execution instruction information 300 is described in a format such as, for example, a workflow script or JCLOob Control Language!
  • the processing program is, for example, a program handled as one executable file by an operating system of a computer.
  • the processing program may be a combination of an executable file and a library file that is dynamically loaded at the time of execution.
  • the processing program may be a process or a thread started by executing a predetermined program, or may be at least one function, procedure, method, or step described in the predetermined program. Yes.
  • the execution instruction information 300 includes the identification information of each processing program, for example, the program A and the program B, and their execution order.
  • the underwriting server receiving the transmission data 30 can appropriately select the processing program to be executed.
  • the execution instruction information 300 may include various kinds of information necessary for completing a job, in addition to the data shown in FIG.
  • the execution instruction information 300 may further include identification information of a database to be referred to by each processing program.
  • a notification destination to be notified of that fact may be specified.
  • the information shown may be further included.
  • FIG. 4 shows an example of the data structure of the underwriting server information storage section 220.
  • the underwriting server information storage unit 220 stores an underwriting server ID, which is identification information of each underwriting server, and identification information (ID) of a processing program installed and executed on the underwriting server in association with each other. Further, the underwriting server information storage unit 220 associates the underwriting server ID with the number of processes indicating the number of input data being processed by the underwriting server, and the underwriting server receives input data from another underwriting server. And the time at which the received notification was last received.
  • the number of input data being processed by the underwriting server means not only the input data actually executed by the underwriting server and input by the processing program but also received by the underwriting server. It also includes the number of input data that have been processed but are waiting to be processed and have not been processed. Further, the last reception time of the reception notification indicates the reception time of the reception notification in a case where the reception notification is received but the end notification corresponding to the reception notification is received. Thereby, the failure notification transmission unit 250 can measure the time elapsed without receiving the end notification after receiving the reception notification from each underwriting server.
  • the underwriting server information storage unit 220 in association with each underwriting server ID, indicates whether or not the underwriting server is in an executable state in which it can newly receive input data and execute the processing program. Stores information.
  • the underwriting server information storage unit 220 can execute each underwriting server based on the number of input data waiting for processing permitted by each underwriting server and the input data being processed by the underwriting server. It may be determined whether the state is strong or not and stored.
  • the underwriting server information storage unit 220 determines that the underwriting server is not in the executable state, and stores the executable information to that effect.
  • the underwriting server information storage unit 220 may further store the maximum processing amount of the underwriting server and the usage rate of the computing resource in association with each underwriting server ID.
  • the maximum processing amount of an underwriting server may be, for example, the operating frequency of the CPU of the underwriting server, the type of the CPU, or an in-trunk that the CPU can process per unit time. It may be the number of chillons.
  • the maximum processing amount may be a value determined by the access speed or capacity of the hard disk drive of the underwriting server or the access speed or capacity of the memory of the underwriting server.
  • the usage rate of the computational resources in a certain underwriting server is, for example, the ratio of the time during which the CPU of the underwriting server executes the processing program within the reference time to a predetermined reference time.
  • the usage rate may be a memory or hard disk occupancy rate.
  • FIG. 5 is a functional block diagram of the underwriting server 50-2.
  • the underwriting server 50-2 includes a processing program execution unit 500, an underwriting server selection unit 510, a cache unit 520, an input data delivery unit 530, a history storage unit 540, a failure occurrence determination unit 550, and a change restoration unit. 560.
  • the underwriting server 50-2 which explains the process in which the underwriting server updates the input data received from another underwriting server and transfers it to another underwriting server, will be described.
  • each of the underwriting server 50-1 and the underwriting server 50-3-N has substantially the same configuration as that of the underwriting server 50-2 shown in FIG.
  • the processing program execution unit 500 When the processing program execution unit 500 receives input data from the underwriting server 50-1 in the executable state, the processing program execution unit 500 acquires the allocated processing program from, for example, the database 55-2, and converts the received input data. Run as input. Then, the processing program execution unit 500 updates the input data by executing the processing program, and sends the updated input data to the input data delivery unit 530. Further, the processing program execution unit 500 may refer to the data of the database 55-2 or update the data of the database 552 by executing the processing program.
  • Each of the databases 55-1-N may store different data, or may be a clone database that stores the same data.
  • the processing program execution unit 500 uses the existing system that maintains the consistency of the database.
  • the update of the data to the database 552 may be reflected in another database, for example, the database 55-1 and the database 55-3-N. As a result, only the updated part that does not need to transmit all the data in the database as input data is transmitted, which is efficient.
  • the processing program execution unit 500 when the processing program execution unit 500 receives the input data from the underwriting server 50-1 in the non-executable state, it determines that it cannot newly receive the input data. Then, the processing program execution unit 500 transmits a rejection notice that the input data is rejected to the underwriting server 50-1, which is the source of the input data and the execution instruction information. In addition, the processing program execution unit 500 sends the last input data to the underwriting server 50-2 when the power does not receive the input data and the execution instruction information within a predetermined reference standby time. The execution of the processing program is stopped, and the management server 20 is notified of this. Further, the processing program execution unit 500 stops the execution of the processing program even when the management server 20 is instructed to stop the execution of the processing program.
  • Underwriting server selecting section 510 receives execution instruction information from underwriting server 50-1 in association with input data. Then, based on the received execution instruction information, underwriting server selecting section 510 selects an underwriting server that executes the next processing program to be executed by using the input data updated by processing program executing section 500 as input. For example, the underwriting server selecting unit 510 queries the management server 20 for identification information of an underwriting server that executes a processing program to be executed next with the updated input data as input, and identifies the identification information based on the identification information of the inquiry result. Select the underwriting server to be used.
  • the cache unit 520 stores the identification information of the underwriting server obtained as a result of the inquiry server selecting unit 510 previously inquiring the inquiry response unit 230 of the management server 20 in the processing program executed by the underwriting server. It is cached in association with the identification information of the RAM.
  • the underwriting server selection unit 510 queries the management server 20 for the underwriting server that executes the processing program. Inquire to the matching section 230.
  • the underwriting server selection unit 510 determines whether the identification information is cached. Select an underwriting server.
  • the underwriting server selection unit 510 uses the updated input data as an input to execute another processing server to be executed next. Select again. In this figure, a case where the underwriting server selection unit 510 selects the underwriting server 50- (N-1) will be described.
  • the input data transfer unit 530 transmits the received execution instruction information and the updated input data to the underwriting server 50 — (N ⁇ 1) selected by the underwriting server selection unit 510 in association with each other. I do. Then, the input data delivery unit 530 stores the transmitted input data and the execution instruction information in the history storage unit 540. Then, when the underwriting server 50- ( ⁇ -1) has also received the rejection notification, the input data delivery unit 530 sends the fact to the failure occurrence determination unit 550. In this case, the input data transfer unit 530 acquires the input data and the execution instruction information from the history storage unit 540, and transmits it to the other bow I receiving server selected by the bow I receiving server selecting unit 510.
  • the history storage unit 540 stores the history of the input data and the execution instruction information transmitted to the underwriting server by the input data delivery unit 530 as described above. Further, the history storage unit 540 stores the history information of the data on the underwriting server 50-2 changed by the execution of the processing program by the processing program execution unit 500, in association with the information capable of restoring the change.
  • the data on the underwriting Sano 50-2 refers to, for example, data stored in the database 55-2. Further, the data on the underwriting server 50-2 includes not only data managed by the underwriting server 50-2 but also data shared with other server devices by a network 'file' system or a shared file system. Includes data from existing storage devices.
  • the input data delivery unit 530 transmits the processing program to the underwriting server of the transmission destination to which the updated input data and the execution instruction information have been transmitted. Is determined to have failed.
  • the failure occurrence determination unit 550 when notified that the underwriting server 50- (II-1) has also received the rejection notification from the input data transfer unit 530, receives the underwriting server 50- (N- In 1), it is determined that a failure has occurred in the execution of the processing program. Then, if the job in which the failure has occurred is of a type that can be retried while avoiding the failure, the failure occurrence determination unit 550 proceeds to another underwriting server.
  • the server selection unit 510 notifies the underwriting server selection unit 510 and, if the type is not the type, notifies the change restoration unit 560 of a restoration instruction to undo the data change by the processing program execution unit 500.
  • the change restoration unit 560 based on the notification from the failure occurrence determination unit 550, converts the data changed by the processing program execution unit 500, for example, the data in the database 55-2, based on the history information of the history storage unit 540. , And restore.
  • the underwriting server 50-2 executes the processing program installed and activated in advance, using the input data received as input, and executes the processing program to be executed next. Select the I receiving server and send the input data to the bow I receiving server. As a result, the load on the management server 20 for transmitting and receiving the processing program and the input data can be reduced.
  • FIG. 6 shows an outline of an operation flow of the grid computing system 10 during a normal operation (first example).
  • the user terminal 40 requests a job from the management server 20 (S600).
  • the management server 20 stores the execution instruction information in the header portion of the input data, and transmits it to the underwriting server 50-1 (S610).
  • the management server 20 detects each of the processing programs to be executed from the second time onward with the input data as input, and stores the detected processing programs in an underwriting server different from the underwriting server 50-1, for example, the underwriting server 50-1. May be started on N.
  • the underwriting server 50-1 Upon receiving the input data, the underwriting server 50-1 transmits a reception notification to the management server 20 (S620). Then, the underwriting server 50-1 updates the input data by executing the processing program (for example, the program A) using the received input data as an input. When the execution of the processing program is completed, the underwriting server 50-1 sends an end notification to the management server 20.
  • the processing program for example, the program A
  • the underwriting server 50-1 executes an underwriting server that executes a processing program to be executed next.
  • Server is selected by querying the management server 20 as necessary.
  • the underwriting server 501 transmits the input data and the execution instruction information to the selected underwriting server 50-2.
  • the management server 20 returns the identification information of the underwriting server corresponding to the identification information of the processing program inquired to the underwriting server 50-1 (S630). .
  • the underwriting server 50-2 When receiving the input data, the underwriting server 50-2 transmits a reception notification to the management server 20 (S640). Then, the underwriting server 50-2 updates the input data by executing the processing program (for example, the program B) with the received input data as an input. When the execution of the processing program ends, the underwriting server 50-2 transmits an end notification to the management server 20.
  • the processing program for example, the program B
  • the underwriting server 50-2 selects the underwriting server that executes the processing program to be executed next by inquiring the management server 20 as necessary.
  • the underwriting server 50-2 transmits the input data and the execution instruction information to the selected underwriting server.
  • the management server 20 receives an inquiry from the underwriting server 50-2, the management server 20 returns the identification information of the bow I receiving server corresponding to the identification information of the inquired processing program to the underwriting server 50-2. (S650).
  • the underwriting server 50-N updates the input data by executing the processing program (for example, the program X) with the received input data as an input (S660).
  • the underwriting server 50-N returns a completion notification to the management server 20 indicating that execution of all the processing programs for processing the job has been completed.
  • the management server 20 transfers the received completion notification to the user terminal 40 (S670). Then, the management server 20 transmits, to each of the underwriting servers 50-1-1N, a deletion instruction for deleting the input data and the execution instruction information from the history storage units in the plurality of underwriting servers. In addition to the data transmission / reception shown in this figure, each of the underwriting servers 50-1-1N stores information indicating the usage rate of using the computational resources by executing the processing program. May be transmitted to the server 20 periodically.
  • FIG. 7 shows an outline of an operation flow of the grid computing system 10 when a failure occurs (column 2f).
  • the processing in S600, S610, S620, and S630 in this drawing is substantially the same as the processing in the steps with the same reference numerals in FIG.
  • S640 when the underwriting server 50-2 is not in the executable state, or when a failure occurs in the execution of the processing program, the underwriting server 50-2 transmits a rejection notice to reject the input data to the underwriting server 50-1. (S640).
  • the underwriting server 50-1 reselects another underwriting server that executes the processing program to be executed next with the input data as input (S700). For example, underwriting server 50-1 selects underwriting server 50-N. Then, the underwriting server 50-1 acquires the input data and the execution instruction information from the history storage unit, and resends them to the underwriting server 50-N. In response, the underwriting server 50-N updates the input data by executing the processing program with the received input data as input (S660). Then, the underwriting server 50-N selects the underwriting server that executes the processing program to be executed next by inquiring the management server 20 as necessary.
  • the processing in S710 is substantially the same as the processing in S630, and thus the description is omitted.
  • FIG. 8 shows an outline of an operation flow of the grid computing system 10 when a failure occurs (third example).
  • the processing in S600, S610, S620, S630, S660, and S700 in this drawing is substantially the same as the processing in the steps with the same reference numerals in FIG. 7, and thus the description is omitted.
  • This figure describes a case where, unlike FIG. 7, a failure occurs in the execution of the processing program in S640, and the underwriting server 50-2 cannot transmit a rejection notification to the underwriting server 50-1.
  • the management server 20 fails to receive the end notification from the underwriting server 50-2 within the reference processing time after receiving the reception notification from the underwriting server 50-2 last, the management server 20-2. It is determined that a failure has occurred in the execution of the processing program in (S800). Then, the management server 20 transmits a failure occurrence notification indicating that to the transmission source that transmitted the input data to the underwriting server 50-2, that is, the underwriting server 50-1.
  • the underwriting server 50-1 receives the input data as an input, and executes a processing program to be executed next. Reselect another underwriting server to be executed (S700). For example, underwriting server 50-1 selects underwriting server 50-N. Then, the underwriting server 50-1 acquires the input data and the execution instruction information from the history storage unit, and resends them to the underwriting server 50-N. Note that the processing in S710 is substantially the same as the processing in S630, and a description thereof will be omitted.
  • FIG. 9 shows an outline of an operation flow of the grid computing system 10 when a failure occurs (fourth example).
  • the processes in S600, S610, S620, S630, S640, and S650 in this drawing are substantially the same as the processes in the steps with the same reference numerals in FIG. 6, and therefore description thereof is omitted.
  • This figure describes a case where a failure has occurred in the execution of the processing program in S660.
  • the management server 20 executes the underwriting server. At 50-N, it is determined that a failure has occurred in the execution of the processing program (S800). If the job being executed is not of a type that can be retried in order to avoid a failure, the management server 20 checks all the bow I servers that have executed the processing program of the job before the underwriting server 50-N. A restoration instruction for restoring the change due to the execution of the processing program.
  • the change restoring unit 560 of the underwriting server 50-1 Upon receiving the restoration instruction, the change restoring unit 560 of the underwriting server 50-1 receives one of the receiving servers, for example, the underwriting server, to which the input data transfer unit 530 has transmitted the updated input data or the like. Judge that a failure has occurred in any of 50—2—N. Then, the change restoring unit 560 restores the data changed by the processing program execution unit 500 based on the history information of the history storage unit 540 (S900).
  • the change restoration unit 560 of the underwriting server 50-2 restores the data changed by the processing program execution unit 500 based on the history information in the history storage unit 540. (S910). As a result, it is possible to prevent a situation in which only a part of the data to be changed is changed, and inconsistency of data in the database 55-1 or the database 55-2 is lost.
  • FIG. 10 shows details of the operation of S610.
  • the management server 20 receives a job request from the user terminal 40, it performs the following processing.
  • the execution instruction information generation unit 200 generates execution instruction information (S1000).
  • the processing program starting unit 240 detects a processing program to be executed for the second time or more based on the input data based on the execution instruction information, and determines whether any of the underwriting servers has already started the processing program. It is determined whether or not it is (S1010).
  • the processing program activation unit 240 sends an instruction to activate the processing program to, for example, the underwriting server 50-N (S1020). .
  • the processing program activation unit 240 stores the identification information of the underwriting server that newly activates the processing program in the underwriting server information storage unit 220 in association with the identification information of the processing program.
  • the processing program starting unit 240 may determine whether or not the processing program can be newly started by the following processing based on the information of the previously executed job. Specifically, the processing program starting unit 240 causes the processing program execution unit 500 of each underwriting server to notify the processing amount required for executing the processing program each time the processing program is executed. Based on this notification, the processing program activation unit 240 determines, based on the type of job request received in the past, the amount of processing required to execute a plurality of processing programs that process a plurality of processing parts included in that type of job. Are managed in association with each other.
  • the processing program starting unit 240 starts the processing program when the type of job is executed in the past and the processing capacity required to execute each processing program has already been started. If the server exceeds the maximum processing capacity that the receiving server can process
  • the processing program starting unit 240 determines the processing capacity S required to execute each processing program and the maximum processing capacity of the underwriting server that has already started the processing program. It may be determined whether the force exceeds the processing amount. Specifically, the processing program starting unit 240 determines based on the processing amount predetermined for each processing program. However, processing for analyzing the execution contents of the processing program may be performed.
  • the execution instruction information generation unit 200 generates transmission data by storing the generated execution instruction information in the header portion of the input data to be input to the job. Transmit to 1 (S1030).
  • FIG. 11 shows details of the operation of S620.
  • the underwriting server 50-1 periodically performs the following processing when the processing program is running. First, the processing program execution unit 500 determines whether or not the transmission data has been received (S1100). If it is received (! NO) (S1100: NO), the processing program execution unit 500 determines whether or not the force has passed the reference waiting time since the last reception of the transmission data (S1110).
  • the program execution unit 500 stops the processing program (S1120), notifies the management server 20 that the processing program has been stopped (S1130), and ends the processing.
  • the processing program execution unit 500 determines whether the underwriting Sano 50-1 is in an executable state (S1140). If it is not in the executable state (S1140: N0), the processing program execution unit 500 returns a rejection notification to the management server 20 (S1150).
  • the state of the executable state includes not only a case where the input data in the processing waiting state is equal to or more than a predetermined value, but also a case where the underwriting server 50-1 has already stopped executing the processing program A.
  • the processing program execution unit 500 may return a rejection notification to the management server 20 by the following processing. Specifically, the processing program execution unit 500 detects a processing program that should be already executed with the received input data as an input, based on the received execution instruction information. Then, the processing program execution unit 500 returns a rejection notification when the detected processing program power S and the power that cannot be executed by the underwriting server that has transmitted the input data are used. For example, if the detected processing program is not currently executable by the underwriting server that has transmitted the input data, the processing program execution unit 500
  • the processing program execution unit 500 may return a rejection notification when the verification of the electronic document name received together with the input data fails. This prevents fraudulent acts in which the sender's bow I receiving server impersonates a legitimate underwriting server.
  • the processing program execution unit 500 transmits a reception notification to the management server 20 (S1160). Then, the processing program execution unit 500 updates the input data by executing the processing program assigned with the input data as input (S1170).
  • the history storage unit 540 stores the history information of the data on the underwriting server 50-1 changed by the execution of the processing program by the processing program execution unit 500 in association with the information capable of restoring the change (S1180). ).
  • FIG. 12 shows details of the operation following FIG. Based on the execution instruction information received from the management server 20, the underwriting server selection unit 510 detects a processing program to be executed next with input data as input (S1200). If such a processing program cannot be detected (S1200: NO), the underwriting server selection unit 510 sends a completion notification to the management server 20 (S1205).
  • the underwriting server selection unit 510 refers to the cache unit 520 to execute the identification information of the bow I receiving server that executes the identification information of the processing program.
  • the identification information is cached, and it is determined whether or not power is available (S1210). If cached (S1220: YES), underwriting server selection section 510 selects a cached underwriting server for the identification information (S1230).
  • the underwriting server selection unit 510 inquires the management server 20 of the identification information of the underwriting server that executes the processing program, and identifies it by the identification information of the query result. Of the underwriting server to be selected (S1240). In this case, the cache unit 520 caches the identification information of the query result in association with the identification information of the processing program to be queried (S1245).
  • the input data transfer unit 530 associates the received execution instruction information with the updated input data with the underwriting server selected by the underwriting server selecting unit 510, and transmits the data for transmission.
  • Data SI 250
  • the input data delivery unit 530 creates an electronic signature for the updated input data and execution instruction information, and transmits the created electronic signature in association with the input data and the execution instruction information. Good.
  • the processing program execution unit 500 transmits an end notification to the management server 20 (S 1260).
  • the processing program execution unit 500 may transmit information indicating the progress of the processing of the processing program prior to the end notification when the execution of the processing program requires a predetermined time or more.
  • the history storage unit 540 stores the history of the input data and the execution instruction information transmitted to the underwriting server by the input data delivery unit 530 (S1270).
  • the underwriting server 50-1 periodically sends information indicating the usage rate of the computational resources used by the processing program execution unit 500 to execute the processing program to the management server. Send it to 20.
  • the source of the transmission data is the underwriting server 50-1 instead of the management server 20, and the destination is the underwriting server 50-N instead of the underwriting server 50-2.
  • the operation is substantially the same as the operation in S620, and a description thereof will be omitted.
  • the operation in S660 is substantially the same as the operation in S620, except that the transmission source of the transmission data is the underwriting server 50-2 instead of the management server 20, and therefore the description thereof is omitted.
  • FIG. 13 shows details of the operation of S630.
  • the management server 20 performs the following processing each time it receives any notification or inquiry from any of the underwriting servers 50-1-1N.
  • the underwriting server information storage unit 220 determines whether the reception notification or the termination notification has been received, for example, from the underwriting server 50-1 (S1300). If received (S1300: YES), the underwriting server information storage unit 220 updates the number of jobs being processed by each underwriting server based on the reception notification or the completion notification, and determines whether the job can be executed based on the update result. The information is updated (S1310).
  • the inquiry handling unit 230 determines whether or not the inquiry about the identification information of the underwriting server that executes the predetermined processing program has been received (S 1320).
  • the processing program starting unit 240 sets the executable state of the processing program queried by the inquiry responding unit 230 among the plurality of underwriting servers that execute the processing program.
  • the underwriting server that does not perform the power determination that exceeds the predetermined reference ratio S1330.
  • the processing program activation unit 240 activates the processing program and renews the processing program in any one of the servers. (S1340).
  • the processing program activation unit 240 stores the identification information of the underwriting server that has newly activated the processing program in the underwriting server information storage unit 220 in association with the identification information of the processing program.
  • the inquiry responding unit 230 obtains the identification information of the underwriting server corresponding to the identification information of the processing program that received the inquiry from the underwriting server information storage unit 220, and transmits it as a reply to the inquiry ( S 1350).
  • the underwriting server information storage unit 220 stores a plurality of underwriting server identification information corresponding to the identification information of the processing program
  • the inquiry handling unit 230 stores all of the underwriting server identification information corresponding to the identification information of the processing program.
  • the identification information may be transmitted !, or a part of the identification information may be selected and transmitted based on a predetermined criterion.
  • the inquiry responding unit 230 determines the identification information of the underwriting server having a higher communication speed with the inquired underwriting server, and the underwriting server having a lower communication speed with the inquiring underwriting server. May be selected and transmitted prior to the identification information. Further, when a processing program is newly started by the processing program starting unit 240 in S1340, the inquiry responding unit 230 transmits only the identification information of the bow I receiving server on which the processing program is started. Good.
  • the underwriting server information storage unit 220 receives, from one of the underwriting servers 50-1-1N, the utilization rate of the computational resources used by executing the processing program (S136: YES). Then, the underwriting server change unit 260 determines whether the usage rate is equal to or lower than the reference usage rate (S1370). If the usage rate is equal to or lower than the reference usage rate (S1370: YES), the underwriting server change unit 260 causes the underwriting server to execute the processing program on another underwriting server whose maximum processing amount is smaller than the underwriting server that transmitted the usage rate (S1380). ).
  • the underwriting server changing unit 260 transmits a stop instruction for stopping the execution of the processing program to the underwriting server that was executing the processing program, and the other underwriting server having the maximum processing amount smaller than that of the underwriting server. Of the processing program is transmitted to the underwriting server.
  • the underwriting server before the change is processed by the processing program The execution of the program is stopped, and the changed underwriting server activates the processing program by the processing program execution unit 500.
  • the processing program activation unit 240 stores the identification information of the underwriting server that has newly activated the processing program in the underwriting server information storage unit 220 in association with the identification information of the processing program.
  • the processing program starting unit 240 deletes the identification information of the underwriting server that has stopped executing the processing program from the underwriting server information storage unit 220.
  • the operation in S650 is substantially the same as the operation in S630, except that the underwriting server of the inquiry source is the underwriting server 50-2 instead of the underwriting server 50-1, and therefore the description is omitted. .
  • FIG. 14 shows details of the operation of S670.
  • the deletion instruction unit 270 determines that the job has been completed by executing all of the plurality of processing programs. The user terminal 40 is determined and notified to that effect (S1410). Then, the deletion instruction unit 270 instructs each of the underwriting servers 50-1-1N, and from the history storage unit 540 in each of the underwriting servers 50-1-1N, the input stored in the process of executing the job. The data, the execution instruction information, and the history information are deleted (S1420).
  • FIG. 15 shows details of the operation of S700.
  • the failure occurrence determination unit 550 determines whether a failure has occurred in the underwriting server to which the input data is transmitted (S1500). For example, the failure occurrence determination unit 550 determines that a failure has occurred when a failure occurrence notification is received from the management server 20 or a rejection notification is received from the underwriting server 50-2.
  • the underwriting server selection unit 510 inquires of the management server 20 about the identification information of another underwriting server that executes the processing program in which a failure has occurred during execution (S1510).
  • the cache unit 520 caches the identification information of the query result in association with the identification information of the processing program to be queried (S1520).
  • the underwriting server selection unit 510 selects the underwriting server identified by the identification information of the inquiry result (S1530). For example, the inquiry handling unit 230 gives priority to the identification information of the underwriting server, such as the communication speed with the underwriting server, and returns the result as an inquiry result. As a result, The underwriting server selection unit 510 receives the updated input data as an input, and among the plurality of underwriting servers executing the processing program to be executed next, the underwriting server having a higher communication speed with the underwriting server. Is selected in preference to the underwriting server whose communication speed is lower. As an example, underwriting server selecting section 510 selects the underwriting server having the highest communication speed, and does not select another underwriting server.
  • the input data delivery unit 530 acquires the already transmitted input data and execution instruction information from the history storage unit 540 (S1540).
  • the input data transfer unit 530 transmits the acquired input data and execution instruction information to the reselected underwriting server, for example, the underwriting server 50-N, as transmission data (S1550).
  • FIG. 16 shows details of the operation of S800.
  • the management server 20 causes the underwriting server 50-11N to execute the job
  • the management server 20 repeats the following processing, for example, periodically.
  • the underwriting server information storage unit 220 determines whether the reference processing time has elapsed since the last reception notification was received from the underwriting server (S1600).
  • the underwriting server information storage unit 220 re-executes the failed job. It is determined whether the type is possible (S1610).
  • the underwriting server information storage unit 220 transmits a failure occurrence notification to the underwriting server 50-1 (S 1620). Further, when a failure occurs in the hardware of the underwriting server to which the input data is transmitted, the underwriting server information storage unit 220 stores the processing program stored in association with the failed underwriting server. May be deleted. On the other hand, if the type cannot be retried (S1610: NO), the underwriting server information storage unit 220 has already processed the instruction to restore the data change by the processing program that executed the part of the job. Send to the underwriting server that executed the program. For example, the underwriting server information storage unit 220 sends the instruction to the underwriting server # 0-1 and the underwriting server 50-2 1630).
  • FIG. 17 shows an example of a hardware configuration of a computer functioning as the management server 20.
  • the management server 20 includes a CPU 1700, a RAM 1720, a graphic controller 1775, and a CPU peripheral having a display device 1780, which are interconnected by a host controller 1782.
  • Interface a communication interface 1730 connected to the host controller 1782 by the I / O controller 1784, a hard disk drive 1740, and a CD-ROM drive 1760, and a BIOS 1710 connected to the I / O controller 1784, flexible A disk drive 1750 and a legacy input / output unit having an input / output chip 1770 are provided.
  • the host controller 1782 connects the RAM 1720 to the CPU 1700 and the graphic controller 1775 that access the RAM 1720 at a high transfer rate.
  • the CPU 1700 operates based on programs stored in the BIOS 1710 and the RAM 1720, and controls each unit.
  • the graphic controller 1775 acquires image data generated on the frame buffer provided in the RAM 1720 by the CPU 1700 and the like, and displays the image data on the display device 1780.
  • the graphic controller 1775 may include a frame buffer for storing image data generated by the CPU 1700 or the like.
  • the input / output controller 1784 connects the host controller 1782 to the communication interface 1730, the hard disk drive 1740, and the CD-ROM drive 1760, which are relatively high-speed input / output devices.
  • the communication interface 1730 communicates with an external device via a network.
  • the hard disk drive 1740 stores programs and data used by the management server 20.
  • the CD-ROM drive 1760 reads a program or data from the CD-ROM 1795 and provides it to the input / output chip 1770 via the RAM 1720.
  • the input / output controller 1784 is connected to the BIOS 1710 and relatively low-speed input / output devices such as the flexible disk drive 1750 and the input / output chip 1770.
  • the BIOS 1710 stores a boot program executed by the CPU 1700 when the management server 20 is started, a program that depends on hardware of the management server 20, and the like.
  • the flexible disk drive 1750 reads a program or data from the flexible disk 1790 and provides it to the input / output chip 1770 via the RAM 1720.
  • the input / output chip 1770 connects various input / output devices via a flexible disk 1790 and, for example, a parallel port, a serial port, a keyboard port, a mouse port, and the like.
  • the program provided to the management server 20 is stored in a recording medium such as the flexible disk 1790, the CD-ROM 1795, or an IC card and provided by the user. Blog
  • the RAM is read out of the recording medium via the input / output chips 1770 and Z or the input / output controller 1784, and is installed in the management server 20 and executed.
  • the control program installed and executed on the management server 20 includes an execution instruction information generation module, an input data transmission module, an underwriting server information storage module, an inquiry response module, and a processing program activation module. , A failure occurrence notification transmission module, an underwriting server change module, and a deletion instruction module.
  • the operation that each module causes the management server 20 to perform is the same as the operation of the corresponding member in the management server 20 described with reference to FIGS.
  • the control program provided to the management server 20 may be installed and executed on each of the underwriting servers 50-1-1N via a network or the like.
  • the underwriting server 50—a control program installed and executed on each of the N servers includes a processing program execution module, an underwriting server selection module, a cache module, an input data delivery module, a history storage module, and a fault.
  • the operation that each module causes each underwriting server 50-1-1N to perform is the same as the operation of the corresponding member in each underwriting server 50-1-1N described with reference to FIGS. Therefore, the description is omitted.
  • an optical recording medium such as a DVD or PD
  • a magneto-optical recording medium such as an MD
  • a tape medium As a storage medium, in addition to the flexible disk 1790 and the CD-ROM 1795, an optical recording medium such as a DVD or PD, a magneto-optical recording medium such as an MD, a tape medium, and a semiconductor memory such as an IC card can be used.
  • a storage device such as a node disk, a RAM, or the like provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium, and the program may be provided to the management server 20 via the network.
  • the management server 20 allows the input data to be sequentially transferred to a plurality of bow I receiving servers without transmitting and receiving the input data every time the underwriting server executes the processing program. Can be. As a result, the load on the management server 20 is reduced, and the network traffic to the management server 20 is reduced. Further, the underwriting server 50 caches the transmission destination of the input data, and inquires the management server 20 of only the non-cached transmission destination. As a result, network traffic to the management server 20 is updated. To decrease.
  • the underwriting server 50 attempts to recover from the failure without inquiring the management server 20 as much as possible.
  • network traffic to the management server 20 can be reduced.
  • the management server 20 installs the processing program to be executed on the underwriting server in advance and starts it.
  • the management server 20 can distribute the load of each underwriting server according to an inquiry from the underwriting server 50 and the like.
  • FIG. 1 is a functional block diagram of a grid computing system 10.
  • FIG. 2 is a functional block diagram of the management server 20.
  • FIG. 3 shows an example of a data structure of transmission data 30.
  • FIG. 4 shows an example of a data structure of an underwriting server information storage section 220.
  • FIG. 5 is a functional block diagram of an underwriting server 50-2.
  • FIG. 6 shows an outline of an operation flow of the grid computing system 10 during a normal operation (first example).
  • FIG. 7 shows an outline of an operation flow of the grid computing system 10 when a failure occurs (second example).
  • FIG. 8 shows an outline of an operation flow of the grid computing system 10 when a failure occurs (third example).
  • FIG. 9 shows an outline of an operation flow of the grid computing system 10 when a failure occurs (fourth example).
  • FIG. 10 shows details of the operation of S610.
  • FIG. 11 shows details of the operation of S620.
  • FIG. 12 shows details of the operation following FIG. 11;
  • FIG. 13 shows details of the operation of S630.
  • FIG. 14 shows details of the operation of S670.
  • FIG. 15 shows details of the operation of S700.
  • FIG. 16 shows details of the operation of S800.
  • FIG. 17 shows an example of a hardware configuration of a computer functioning as the management server 20.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • General Factory Administration (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 より多くのコンピュータを結合してグリッドコンピューティングシステムを構築する。 【解決手段】 管理サーバは、ジョブの一部ずつを実行する各処理プログラムの識別情報と、複数の処理プログラムの実行順序とを含む実行指示情報を生成し、入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、入力データと実行指示情報とを対応付けて送信し、複数の引受サーバの各々は、受信した入力データを入力として処理プログラムを実行することにより入力データを更新し、入力データに対応付けて受信した実行指示情報に基づいて、入力データを入力として次に実行するべき処理プログラムを実行させる引受サーバを選択し、選択された引受サーバに、受信した実行指示情報と更新された入力データとを対応付けて送信するグリッドコンピューティングシステムシステムを提供する。

Description

明 細 書
システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記 録媒体
技術分野
[0001] 本発明は、システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び 記録媒体に関する。特に、本発明は、管理サーバにより管理された複数の引受サー バが協調して、要求されたジョブを処理するグリッドコンピューティングシステム、管理 サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体に関する。
背景技術
[0002] 近年、ネットワークで接続された複数のコンピュータ力 ジョブに含まれる複数のス テツプ (処理部分)の何れかをそれぞれ処理することにより、ジョブを効率的に実行す るグリッドコンピューティングが注目されている。グリッドコンピューティングによると、ジ ヨブの依頼者は、ジョブの一部を処理するプログラムと、ジョブの処理に必要なデータ との組を、複数のコンピュータの各々に送信する。そして、複数のコンピュータの各々 は、受け取ったデータを入力として、受け取ったプログラムを実行し、実行結果を依 頼者に返信する。ジョブの依頼者は、返信された実行結果の各々を結合して、ジョブ の結果を得る。これにより、ジョブに必要な計算処理量が膨大な場合であっても、ジョ ブの一部ずつを並列して複数のコンピュータにより実行させることにより、ジョブを効 率的に完了させることができる。
非特許文献 1には、グリッドコンピューティングシステムの一例が説明されて 、る。 非特許文献 1:「情報処理」 社団法人情報処理学会発行、 2003年発行、 Vol.44,特 集「PCグリッドの現在と展望」
発明の開示
発明が解決しょうとする課題
[0003] し力しながら、上記のグリッドコンピューティングによると、ジョブの依頼者のサーバ のみが、複数のコンピュータの各々にプログラム及びデータを送信する。従って、依 頼先のコンピュータの数に応じて、依頼者のサーバの負荷が増大すると共に、依頼 者のサーバへネットワークトラフィックが集中する。このため、多くのコンピュータにより 効率的にジョブを完了させるには、多くの費用をかけて依頼者のサーバの設備を増 強しなければならなかった。
[0004] そこで本発明は、上記の課題を解決することのできるグリッドコンピューティングシス テム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体を提供 することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の 組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定す る。
課題を解決するための手段
[0005] 上記課題を解決するために、利用者の要求するジョブに含まれる複数のステップを 処理する複数の処理プログラムのうち、割り当てられた処理プログラムをそれぞれ実 行する複数の引受サーバと、複数の引受サーバを管理する管理サーバとを備えたシ ステムであって、管理サーバは、複数の処理プログラムの各々を識別する識別情報と 、複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情 報生成部と、入力データを入力として最初に実行するべき処理プログラムを実行する 引受サーバに、入力データと実行指示情報とを対応付けて送信する入力データ送 信部とを有し、複数の引受サーバの各々は、受信した入力データを入力として割り当 てられた前記処理プログラムを実行することにより入力データを更新する処理プログ ラム実行部と、入力データに対応付けて受信した実行指示情報に基づいて、更新さ れた入力データを入力として次に実行するべき処理プログラムを実行させる弓 I受サ ーバを選択する引受サーバ選択部と、引受サーバ選択部により選択された引受サー バに、受信した実行指示情報と更新された入力データとを対応付けて送信する入力 データ受渡部とを有するシステム、当該システムの引受サーバ及び管理サーノ 、当 該引受サーバ又は管理サーバを制御する制御方法、当該引受サーバ又は管理サ ーバを制御する制御プログラム、及び制御プログラムを記録した記録媒体を提供する なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなぐ これらの特徴群のサブコンビネーションもまた、発明となりうる。 発明の効果
[0006] 本発明によれば、より多くのコンピュータを結合してグリッドコンピューティングシステ ムを構築することができる。
発明を実施するための最良の形態
[0007] 以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請 求の範隨こかかる発明を限定するものではなぐまた実施形態の中で説明されてい る特徴の組み合わせの全てが発明の解決手段に必須であるとは限らな 、。
[0008] 図 1は、グリッドコンピューティングシステム 10の機能ブロック図である。グリッドコン ピューティングシステム 10は、 LAN, WAN,又はインターネット等のネットワークによ り互いに接続された、管理サーバ 20と、利用者端末 40と、引受サーバ 50— 1一 Nとを 備える。利用者端末 40は、例えば、パーソナル 'コンピュータ等の端末であり、既存 のグリッドコンピューティングシステムにおけるジョブの依頼者の端末と同様の構成に より実現されてもよい。そして、引受サーバ 50—1— Nの各々には、ジョブに含まれる 複数の処理部分を処理する複数の処理プログラムのうち、割り当てられた処理プログ ラムが予めインストールされて起動されている。データベース 55—1— Nの各々には、 例えば同一のデータが予め格納されている。
[0009] まず、利用者端末 40は、利用者力もの指示を受けて、管理サーバ 20にジョブを要 求する。管理サーバ 20は、ジョブに入力される入力データと、複数の処理プログラム の実行順序等を示す実行指示情報との組を、送信用データ 30として引受サーバ 50 — 1に送る。引受サーバ 50— 1は、受け取った実行指示情報に基づいて、管理サーバ 20から受け取った入力データを入力として処理プログラムを実行し、入力データを更 新する。引受サーバ 50— 1は、更新した入力データと、実行指示情報との組とを、送 信用データ 30として引受サーバ 50— 2に送信する。
[0010] この際、引受サーバ 50— 1は、入力データの次の送信先を、制御用データにより管 理サーバ 20に問合せてもよい。また、処理の内容によっては、引受サーバ 50—1は、 データベース 55—1に格納されたデータにアクセスしてもよい。以降同様に、引受サ ーバ 50— 2—(N— 1)の各々は、入力データを入力として処理プログラムを順次実行 する。最後に、引受サーバ 50-Nは、全ての処理プログラムの実行が完了した完了 通知を管理サーバ 20に送る。管理サーバ 20は、受け取った完了通知を利用者端末 40に転送する。
[0011] このように、本実施例に係るグリッドコンピューティングシステム 10によると、各引受 サーバは、処理プログラムを送信することなぐ処理に必要なデータのみを送信する 。この結果、多数のジョブが多数の利用者端末 40等力 入力された場合であっても、 各ジョブの一部ずつをパイプライン方式で実行することにより、ジョブを効率的に実行 することができる。
[0012] 図 2は、管理サーバ 20の機能ブロック図である。管理サーバ 20は、実行指示情報 生成部 200と、入力データ送信部 210と、引受サーバ情報格納部 220と、問合対応 部 230と、処理プログラム起動部 240と、障害発生通知送信部 250と、引受サーバ変 更部 260と、削除指示部 270とを有する。実行指示情報生成部 200は、ジョブの要 求を利用者端末 40から受けると、ジョブに含まれる複数の処理部分を処理する複数 の処理プログラムの各々を識別する識別情報と、その複数の処理プログラムの実行 順序とを含む実行指示情報を生成する。そして、実行指示情報生成部 200は、生成 した実行指示情報を、ジョブに入力するべき入力データと共に入力データ送信部 21 0に送る。
[0013] 入力データ送信部 210は、入力データを入力として最初に実行するべき処理プロ グラムを実行する引受サーバ、例えば引受サーバ 50— 1に、入力データと実行指示 情報とを対応付けて送信する。この際、入力データ送信部 210は、最初に実行する べき処理プログラムを実行する弓 I受サーバを、弓 I受サーバ情報格納部 220に格納さ れて 、る情報に基づ 、て選択してもよ 、。
[0014] 引受サーバ情報格納部 220は、複数の処理プログラムの各々を識別する識別情報 と、その処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する。 更に、引受サーバ情報格納部 220は、各引受サーバの識別情報に対応付けて、そ の引受サーバが新たに入力データを受信して処理プログラムを実行可能な実行可 能状態か否かを示す実行可否情報を格納する。また、引受サーバ情報格納部 220 は、各引受サーバの識別情報に対応付けて、その引受サーバが入力データを受信 した時刻を対応付けて更に格納してもよいし、その引受サーバの最大処理量及び計 算資源の使用率を対応付けて更に格納してもよい。
[0015] 問合対応部 230は、引受サーバ 50—1— Nの何れかから、所定の処理プログラムを 実行する引受サーバの問合せを受けた場合に、問合せを受けた処理プログラムの識 別情報に対応する引受サーバの識別情報を引受サーバ情報格納部 220から取得し て、その問合せに対する返信として送信する。処理プログラム起動部 240は、所定の 条件が満たされる場合に、実行指示情報生成部 200により生成された実行指示情報 に基づいて、入力データを入力として 2回目以降に実行するべき処理プログラムの各 々を検出し、検出した処理プログラムの各々を、入力データ送信部 210の送信先とは 異なる引受サーバの何れかにおいて起動する。
[0016] 具体的には、処理プログラム起動部 240は、 2回目以降に実行するべき当該処理 プログラムを実行する引受サーバが所定の基準台数より少ないという条件、又は、そ のような引受サーバ力 ^台も検出できないという条件が満たされる場合に、処理プロ グラムを起動してもよい。また、処理プログラム起動部 240は、問合対応部 230が問
V、合わせを受けた処理プログラムにつ 、て、その処理プログラムを実行する複数の 引受サーバのうち、予め定められた基準割合を超える数の引受サーバが実行可能 状態でない場合に、その処理プログラムを起動していない引受サーバの何れかにお
V、てその処理プログラム起動してもよ!/、。
これにより、次の処理プログラムを予め準備できるので、ジョブの処理を中断されに くくすることができる。なお、これらの処理に伴い、処理プログラム起動部 240は、引 受サーバ情報格納部 220のデータを更新してもよい。
[0017] 障害発生通知送信部 250は、何れかの引受サーバから受信通知を受信してから予 め定められた基準処理時間内に、その引受サーバから終了通知を受信した力否か を、引受サーバ情報格納部 220に格納された情報に基づいて判断する。そして、障 害発生通知送信部 250は、基準処理時間内に受信できなかった場合に、当該引受 サーバに入力データ等を送信した送信元の引受サーバに、当該引受サーバにおい て処理プログラムの実行に障害が発生した旨を示す障害発生通知を送信する。
[0018] 引受サーバ変更部 260は、複数の引受サーバの何れかが処理プログラムを実行す ることにより使用する計算資源の使用率が、予め定められた基準使用率より低いか否 かを、引受サーバ情報格納部 220に格納されたデータに基づいて判断する。そして 、引受サーバ変更部 260は、何れかの引受サーバにおいて計算資源の使用率が基 準使用率より低い場合に、最大処理量がその引受サーバより小さい他の引受サーバ に実行させるように、引受サーバ 50— 1一 Nを設定する。これに伴い、引受サーバ変 更部 260は、引受サーバ情報格納部 220内のデータを更新する。
[0019] 削除指示部 270は、最後に処理プログラムを実行した引受サーノ 50— N力も完了 通知を受けた場合に、複数の処理プログラムの全てが実行されることによりジョブが 完了したと判断する。そしてこの場合、削除指示部 270は、その複数の引き受けサー バの各々から、そのジョブの実行の過程で格納された入力データ及び実行指示情報 を削除させる。これに代えて、削除指示部 270は、これらの入力データ及び実行指示 情報が不要である旨を通知するのみであってもよい。この場合、この通知を受けた引 受サーバは、不要な入力データ及び実行指示情報を定期的に検出して削除してもよ い。
[0020] 図 3は、送信用データ 30のデータ構造の一例を示す。 (a)は、送信用データ 30の データ構造の概要を示す。送信用データ 30は、本体部分と、ヘッダ部分とを含む。 そして、送信用データ 30は、本体部分に入力データを含み、ヘッダ部分に実行指示 情報 300を含む。このように、入力データ送信部 210は、実行指示情報 300を入力 データのヘッダ部分に格納することにより、入力データ及び実行指示情報 300を対 応付けて送信してもよい。
[0021] 更に、好ましくは、送信用データ 30は、実行指示情報 300が示す処理プログラムの うち、既に実行を終えた処理プログラムを示す処理済フラグを、ヘッダ部分に含む。こ れにより、送信用データ 30を受け取った引受サーバ 50— 1等は、複数の処理プログ ラムを実行可能な場合であっても、次にどの処理プログラムを実行するべきかを適切 に判断できる。更に、送信用データ 30は、処理済フラグに加えて、各処理プログラム の終了状態、例えば正常終了若しくは異常終了した旨、又はエラーコード等を示す 情報を格納してもよい。これにより、障害発生時に障害の原因を調査しやすくすること ができる。
[0022] これに代えて、送信用データ 30は、既に実行を終えた処理プログラムの識別情報 を有しておらず、未だ実行されて!、な 、処理プログラムの識別情報のみを有して!/、て もよい。即ち、引受サーバ 50-1等は、既に実行を終えた処理プログラムの識別情報 を送信用データ 30から削除してもよい。これにより、送信用データ 30のデータサイズ を減少、させることができる。
[0023] (b)は、実行指示情報 300の一例を示す。実行指示情報 300は、ジョブを識別する 情報である JOBを 1行目に含む。そして、実行指示情報 300は、第 1のステップとし て、識別情報がプログラム Aである処理プログラムを実行するべき旨の指示を 2行目 に含
む。更に、実行指示情報 300は、プログラム Aの実行に用いるファイルを示す情報を
3行目及び 4行目に含む。これらのファイルは、例えば、データベース 55—1— N等に 格納されて 、るファイルである。
[0024] 実行指示情報 300は、第 2のステップとして、識別情報がプログラム Aである処理プ ログラムを実行するべき旨の指示を 2行目に含む。第 1のステップと同様に、実行指 示情報 300は、プログラム Bの実行に用いるファイルを示す情報を、 6行目及び 7行 目に含
む。なお、実行指示情報 300は、例えば、ワークフロースクリプト又は JCLOob Control Language)等の書式により記述されて!、てもよ!/、。
[0025] ここで、処理プログラムとは、例えば、コンピュータのオペレーティングシステムで 1 つの実行可能ファイルとして取扱われるプログラムである。これに代えて、又はこれに カロえて、処理プログラムとは、実行可能ファイル及び実行時に動的に読み込まれるラ イブラリファイルの組み合わせであってもよい。更に、処理プログラムとは、所定のプロ グラムが実行されることにより起動されるプロセス又はスレッドであってもよいし、所定 のプログラム中に記述された少なくとも 1つの関数、手続、メソッド、又はステップであ つてもよい。
[0026] このように、実行指示情報 300は、処理プログラムの各々の識別情報、例えばプロ グラム A及びプログラム Bと、これらの実行順序とを含んでいる。これにより、送信用デ ータ 30を受け取った引受サーバは、実行するべき処理プログラムを適切に選択でき るのみならず、次に実行するべき処理プログラムを適切に選択することができる。
[0027] なお、実行指示情報 300は、本図に示したデータの他に、ジョブの完了に必要な種 々の情報を含んでいてもよい。例えば、実行指示情報 300は、各処理プログラムが参 照すべきデータベースの識別情報を更に含んで 、てもよ 、し、全ての処理プログラム が実行された場合にその旨を通知するべき通知先を示す情報を更に含んでいてもよ い。
[0028] 図 4は、引受サーバ情報格納部 220のデータ構造の一例を示す。引受サーバ情報 格納部 220は、各引受サーバの識別情報である引受サーバ IDと、その引受サーバ にインストールされて実行される処理プログラムの識別情報 (ID)とを対応付けて格納 する。更に、引受サーバ情報格納部 220は、引受サーバ IDに対応付けて、その引受 サーバで処理中の入力データの数を示す処理数と、その引受サーバが他の引受サ ーバから入力データを受信した受信通知を最後に受信した時刻とを格納する。
[0029] ここで、引受サーバにおいて処理中の入力データの数とは、その引受サーバで実 際に実行されて 、る処理プログラムが入力とする入力データのみならず、その引受サ ーバに受信されたものの処理待ちで未処理である入力データの数をも含む。また、 受信通知を最後に受信した時刻とは、受信通知を受信したものの、その受信通知に 対応する終了通知を受け取って 、な 、場合における受信通知の受信時刻を 、う。こ れにより、障害発生通知送信部 250は、各引受サーバから受信通知を受信してから 終了通知を受信しないまま経過した時間を計測することができる。
[0030] 更に、引受サーバ情報格納部 220は、各引受サーバ IDに対応付けて、その引受 サーバが新たに入力データを受信して処理プログラムを実行可能な実行可能状態 か否かを示す実行可否情報を格納する。ここで、例えば、引受サーバ情報格納部 22 0は、各引受サーバが許容する処理待ちの入力データの数と、その引受サーバで処 理中の入力データとに基づいて、各引受サーバが実行可能状態力否かを判断して 格納してもよい。例えば、ある引受サーバ(例えば、 NodeBB)が許容する処理待ちの 入力データの数が 1つであり、その引受サーバで処理中の入力データの数が 2つで ある場合には、引受サーバ情報格納部 220は、その引受サーバを実行可能状態で ないと判断し、その旨の実行可否情報を格納する。 [0031] また、引受サーバ情報格納部 220は、各引受サーバ IDに対応付けて、その引受サ ーバの最大処理量及び計算資源の使用率を対応付けて更に格納してもよ 、。ある 引受サーバの最大処理量とは、例えば、その引受サーバの CPUの動作周波数であ つてもよいし、その CPUの種類であってもよいし、その CPUが単位時間あたりに処理 可能なインストランクシヨンの数であってもよい。これに加えて、最大処理量とは、その 引受サーバのハードディスクドライブのアクセス速度若しくは容量、又は、その引受サ ーバのメモリのアクセス速度若しくは容量等により定まる値であってもよい。
[0032] また、ある引受サーバにおける計算資源の使用率とは、例えば、所定の基準時間 に対する、その基準時間内にその引受サーバの CPUが処理プログラムを実行してい る時間の割合である。これに代えて、使用率とは、メモリ又はハードディスクの占有率 であってもよい。
[0033] 図 5は、引受サーバ 50— 2の機能ブロック図である。引受サーバ 50— 2は、処理プロ グラム実行部 500と、引受サーバ選択部 510と、キャッシュ部 520と、入力データ受 渡部 530と、履歴格納部 540と、障害発生判断部 550と、変更復元部 560とを有する 。本図においては、引受サーバが、他の引受サーバから受信した入力データを更新 し、更に他の引受サーバに受け渡す処理を説明するべぐ引受サーバ 50— 2につい て説明する。なお、引受サーバ 50— 1及び引受サーバ 50— 3— Nの各々は、本図に 示す引受サーバ 50— 2と略同一の構成を取るので、説明を省略する。
[0034] 処理プログラム実行部 500は、実行可能状態である場合に引受サーバ 50-1から 入力データを受信すると、割り当てられた処理プログラムを例えばデータベース 55— 2から取得して、受信した入力データを入力として実行する。そして、処理プログラム 実行部 500は、処理プログラムの実行により入力データを更新し、更新した入力デー タを入力データ受渡部 530に送る。また、処理プログラム実行部 500は、処理プログ ラムの実行により、データベース 55— 2のデータを参照してもよいし、データベース 55 2のデータを更新してもよ 、。
[0035] なお、データベース 55— 1— Nの各々は、互いに異なるデータを格納してもよいし、 同一のデータを格納するクローンデータベースであってもよい。そしてこの場合、処 理プログラム実行部 500は、データベースの一貫性を保持する既存のシステムにより 、データベース 55 2に対するデータの更新を、他のデータベース、例えばデータべ ース 55—1及びデータベース 55—3— Nに反映してもよい。これにより、データベース の全てのデータを入力データとして送信する必要がなぐ更新した部分のみが送信さ れるので、効率がよい。
[0036] 一方、処理プログラム実行部 500は、実行可能状態でない場合に引受サーバ 50— 1から入力データを受信すると、新たに入力データを受け取れないと判断する。そし て、処理プログラム実行部 500は、入力データを拒絶する旨の拒絶通知を、入力デ ータ及び実行指示情報の送信元の引受サーバ 50— 1に送信する。また、処理プログ ラム実行部 500は、最後に入力データを受信して力も予め定められた基準待機時間 内に、入力データ及び実行指示情報を受信しな力 た場合に、引受サーバ 50-2に おける処理プログラムの実行を中止し、その旨を管理サーバ 20に通知する。更に、 処理プログラム実行部 500は、処理プログラムの実行を中止する旨を管理サーバ 20 力 指示された場合にも、処理プログラムの実行を中止する。
[0037] 引受サーバ選択部 510は、引受サーバ 50—1から実行指示情報を入力データに対 応付けて受信する。そして、引受サーバ選択部 510は、受信したその実行指示情報 に基づいて、処理プログラム実行部 500により更新された入力データを入力として次 に実行するべき処理プログラムを実行させる引受サーバを選択する。例えば、引受サ ーバ選択部 510は、更新された入力データを入力として次に実行するべき処理プロ グラムを実行する引受サーバの識別情報を、管理サーバ 20に問合せ、問合せ結果 の識別情報により識別される引受サーバを選択する。より具体的には、キャッシュ部 5 20は、引受サーバ選択部 510が過去に管理サーバ 20の問合対応部 230に問合せ た結果取得した引受サーバの識別情報を、当該引受サーバが実行する処理プログ ラムの識別情報に対応付けてキャッシュしている。
[0038] そして、引受サーバ選択部 510は、その処理プログラムを実行する引受サーバの 識別情報がキャッシュ部 520によりキャッシュされていない場合に、その処理プロダラ ムを実行する引受サーバを管理サーバ 20の問合対応部 230に問合せる。一方、引 受サーバ選択部 510は、その処理プログラムを実行する引受サーバの識別情報がキ ャッシュ部 520によりキャッシュされている場合に、識別情報のキャッシュされたその 引受サーバを選択する。また、引受サーバ選択部 510は、障害発生判断部 550によ り障害が発生したと判断された場合に、更新された入力データを入力として次に実行 するべき処理プログラムを実行する他の引受サーバを再選択する。本図では、引受 サーバ選択部 510が、引受サーバ 50— (N— 1)を選択した場合について説明する。
[0039] 続いて、入力データ受渡部 530は、引受サーバ選択部 510により選択された引受 サーバ 50— (N— 1)に、受信した実行指示情報と更新された入力データとを対応付け て送信する。そして、入力データ受渡部 530は、送信した入力データ及び実行指示 情報を履歴格納部 540に格納する。そして、入力データ受渡部 530は、引受サーバ 50-(Ν-1)力も拒絶通知を受けた場合に、その旨を障害発生判断部 550に送る。こ の場合、入力データ受渡部 530は、入力データ及び実行指示情報を履歴格納部 54 0から取得して、弓 I受サーバ選択部 510により選択された他の弓 I受サーバに送信す る。
[0040] 履歴格納部 540は、上記のように、入力データ受渡部 530により引受サーバに送 信された入力データ及び実行指示情報の履歴を格納する。更に、履歴格納部 540 は、処理プログラム実行部 500が処理プログラムを実行することにより変更した引受 サーバ 50— 2上のデータの履歴情報を、その変更を復元可能な情報に対応付けて 格納する。ここで、引受サーノ 50— 2上のデータとは、例えば、データベース 55— 2に 格納されているデータをいう。更に、引受サーバ 50— 2上のデータとは、引受サーバ 5 0—2のみにより管理されているデータのみならず、ネットワーク'ファイル'システム又 は共有ファイルシステムにより、他のサーバ装置と共有されている記憶装置のデータ を含む。
[0041] 障害発生判断部 550は、障害発生通知を管理サーバ 20から受けると、入力データ 受渡部 530が更新された入力データ及び実行指示情報を送信した送信先の引受サ ーバにおいて、処理プログラムの実行に障害が発生したと判断する。他の例として、 障害発生判断部 550は、引受サーバ 50-(Ν-1)力も拒絶通知を受けた旨を入力デ ータ受渡部 530から通知された場合に、引受サーバ 50— (N— 1)において、処理プロ グラムの実行に障害が発生したと判断する。そして、障害発生判断部 550は、障害の 発生したジョブが、障害を回避して再試行可能な種類である場合には、他の引受サ ーバを選択する旨を引受サーバ選択部 510に通知し、当該種類でない場合には、 処理プログラム実行部 500によるデータの変更を元に戻す旨の復元指示を変更復 元部 560に通知する。
[0042] 変更復元部 560は、障害発生判断部 550からの通知に基づいて、処理プログラム 実行部 500が変更したデータ、例えばデータベース 55— 2内のデータを、履歴格納 部 540の履歴情報に基づ 、て復元する。
以上、本図に示すように、引受サーバ 50— 2は、受信した入力データを入力として、 予めインストールされ起動されている処理プログラムを実行すると共に、次に実行す るべき処理プログラムを実行する弓 I受サーバを選択し、その弓 I受サーバに入力デー タを送信する。これにより、管理サーバ 20における、処理プログラム及び入力データ を送受信する負荷を軽減することができる。
[0043] 以降、図 6から図 9を用いて、本実施例のグリッドコンピューティングシステム 10にお いて、管理サーバ 20が引受サーバ 50— 1一 Nの各々に処理プログラムを実行させる 4つの例について説明する。なお、図 6から図 9において、入力データ及び実行指示 情報又は完了通知を点線で示し、その他の制御用データを一点破線で示す。
[0044] 図 6は、正常動作時におけるグリッドコンピューティングシステム 10の動作フローの 概要を示す (第 1例)。利用者端末 40は、管理サーバ 20に対してジョブを要求する( S600)。そして、管理サーバ 20は、実行指示情報を入力データのヘッダ部分に格 納して、引受サーバ 50— 1に送信する(S610)。なお、管理サーバ 20は、入力データ を入力として 2回目以降に実行するべき処理プログラムの各々を検出し、検出した処 理プログラムを、引受サーバ 50— 1とは異なる引受サーノ、例えば引受サーバ 50— N において起動してもよい。
[0045] 引受サーバ 50-1は、入力データを受信すると、受信通知を管理サーバ 20に送信 する(S620)。そして、引受サーバ 50— 1は、受信した入力データを入力として処理 プログラム(例えば、プログラム A)を実行することにより入力データを更新する。処理 プログラムの実行が終了すると、引受サーバ 50— 1は、終了通知を管理サーバ 20に 送信する。
[0046] 続いて、引受サーバ 50— 1は、次に実行するべき処理プログラムを実行する引受サ ーバを、必要に応じて管理サーバ 20に問合せることにより選択する。引受サーバ 50 1は、選択した引受サーバ 50 - 2に、入力データ及び実行指示情報を送信する。管 理サーバ 20は、引受サーバ 50— 1から問合せを受けた場合に、問合せを受けた処理 プログラムの識別情報に対応する引受サーバの識別情報を、引受サーバ 50— 1に返 信する(S630)。
[0047] 引受サーバ 50-2は、入力データを受信すると、受信通知を管理サーバ 20に送信 する(S640)。そして、引受サーバ 50— 2は、受信した入力データを入力として処理 プログラム(例えば、プログラム B)を実行することにより入力データを更新する。処理 プログラムの実行が終了すると、引受サーバ 50— 2は、終了通知を管理サーバ 20に 送信する。
[0048] 続いて、引受サーバ 50— 2は、次に実行するべき処理プログラムを実行する引受サ ーバを、必要に応じて管理サーバ 20に問合せることにより選択する。引受サーバ 50 -2は、選択した引受サーバに、入力データ及び実行指示情報を送信する。管理サ ーバ 20は、引受サーバ 50-2から問合せを受けた場合に、問合せを受けた処理プロ グラムの識別情報に対応する弓 I受サーバの識別情報を、引受サーバ 50— 2に返信 する(S650)。
[0049] 続いて、引受サーバ 50— 2により送信された入力データ及び実行指示情報が、複 数の弓 I受サーバを順次経由して、引受サーバ 50— Nに到達した場合にっ 、て説明 する。
引受サーバ 50— Nは、受信した入力データを入力として処理プログラム(例えば、プ ログラム X)を実行することにより入力データを更新する(S660)。引受サーバ 50— N は、ジョブを処理する全ての処理プログラムの実行が完了した旨を示す完了通知を 管理サーバ 20に返信する。
[0050] 管理サーバ 20は、受信した完了通知を利用者端末 40に転送する(S670)。そして 、管理サーバ 20は、複数の引受サーバにおける履歴格納部から、入力データ及び 実行指示情報を削除させる削除指示を、引受サーバ 50— 1一 Nの各々に送信する。 なお、本図で示したデータの送受信の他に、引受サーバ 50— 1一 Nの各々は、処 理プログラムを実行することにより計算資源を使用する使用率を示す情報を、管理サ ーバ 20に定期的に送信してもよい。
[0051] 図 7は、障害発生時におけるグリッドコンピューティングシステム 10の動作フローの 概要を示す(第 2f列)。本図の S600、 S610、 S620、及び S630における処理は、図 6の同一符号のステップにおける処理と略同一であるので説明を省略する。 S640に おいて、引受サーバ 50— 2は、実行可能状態でないか、又は、処理プログラムの実行 に障害が発生した場合に、入力データを拒絶する旨の拒絶通知を引受サーバ 50— 1 に送信する(S640)。
[0052] 引受サーバ 50— 1は、入力データを入力として次に実行するべき処理プログラムを 実行させる他の引受サーバを再選択する(S700)。例えば、引受サーバ 50— 1は、引 受サーバ 50— Nを選択する。そして、引受サーバ 50— 1は、入力データ及び実行指 示情報を履歴格納部から取得して、引受サーバ 50-Nに再送する。これを受けて、 引受サーバ 50— Nは、受信した入力データを入力として処理プログラムを実行するこ とにより入力データを更新する(S660)。そして、引受サーバ 50-Nは、次に実行す るべき処理プログラムを実行する引受サーバを、必要に応じて管理サーバ 20に問合 せることにより選択する。 S710における処理は、 S630における処理と略同一である ので説明を省略する。
[0053] 図 8は、障害発生時におけるグリッドコンピューティングシステム 10の動作フローの 概要を示す(第 3例)。本図の S600、 S610, S620, S630, S660,及び S700にお ける処理は、図 7の同一符号のステップにおける処理と略同一であるので説明を省 略する。本図では、図 7と異なり、 S640において処理プログラムの実行に障害が発 生し、かつ引受サーバ 50— 2が、拒絶通知を引受サーバ 50— 1に送信できなかった 場合について説明する。
[0054] 管理サーバ 20は、引受サーバ 50— 2から最後に受信通知を受信してから基準処理 時間内に、引受サーバ 50— 2から終了通知を受信できなかった場合に、引受サーバ 50— 2において処理プログラムの実行に障害が発生したと判断する(S800)。そして 、管理サーバ 20は、その旨を示す障害発生通知を、引受サーバ 50— 2に入力データ を送信した送信元、即ち引受サーバ 50— 1に送信する。
[0055] 引受サーバ 50— 1は、入力データを入力として次に実行するべき処理プログラムを 実行させる他の引受サーバを再選択する(S700)。例えば、引受サーバ 50— 1は、引 受サーバ 50— Nを選択する。そして、引受サーバ 50— 1は、入力データ及び実行指 示情報を履歴格納部から取得して、引受サーバ 50-Nに再送する。なお、 S710に おける処理は、 S630における処理と略同一であるので説明を省略する。
[0056] 図 9は、障害発生時におけるグリッドコンピューティングシステム 10の動作フローの 概要を示す(第 4例)。本図の S600、 S610, S620, S630, S640,及び S650にお ける処理は、図 6の同一符号のステップにおける処理と略同一であるので説明を省 略する。本図は、 S660における処理プログラムの実行に障害が発生した場合につ いて説明する。
[0057] 管理サーバ 20は、引受サーバ 50— Nから最後に受信通知を受信してから基準処 理時間内に、引受サーバ 50— N力も終了通知を受信できな力つた場合に、引受サー ノ 50— Nにおいて処理プログラムの実行に障害が発生したと判断する(S800)。そし て、管理サーバ 20は、実行中のジョブが、障害を回避して再試行可能な種類でない 場合には、引受サーバ 50— N以前にそのジョブの処理プログラムを実行した全ての 弓 I受サーバに対して、処理プログラムの実行による変更を復元する復元指示を送る。
[0058] 引受サーバ 50— 1の変更復元部 560は、この復元指示を受けると、入力データ受 渡部 530が更新された入力データ等を送信した送信先の何れかの引受サーバ、例 えば引受サーバ 50— 2— Nの何れかに障害が発生したと判断する。そして、変更復 元部 560は、処理プログラム実行部 500が変更したデータを、履歴格納部 540の履 歴情報に基づ 、て復元する(S900)。
[0059] 同様に、引受サーバ 50— 2の変更復元部 560は、この復元指示を受けると、処理プ ログラム実行部 500が変更したデータを、履歴格納部 540の履歴情報に基づ 、て復 元する(S910)。これにより、変更すべきデータの一部のみが変更され、データべ一 ス 55— 1又はデータベース 55— 2等のデータの一貫性が失われる事態を防ぐことがで きる。
[0060] 以降、図 10から図 16を用いて、図 6から図 9において説明した管理サーバ 20及び 引受サーバ 50— 1一 Nの処理の詳細を説明する。なお、図 6から図 9と同様に、入力 データ及び実行指示情報又は完了通知を点線で示し、その他の制御用データを一 点破線で示す。
[0061] 図 10は、 S610の動作の詳細を示す。管理サーバ 20は、利用者端末 40からジョブ の要求を受ける毎に、以下の処理を行う。まず、実行指示情報生成部 200は、実行 指示情報を生成する(S1000)。そして、処理プログラム起動部 240は、実行指示情 報に基づいて、入力データを入力として 2回目以降に実行するべき処理プログラムを 検出し、何れかの引受サーバにおいてその処理プログラムが既に起動されているか 否か判断する(S 1010)。
[0062] 引受サーバが 1台も起動されていない場合に(S1010 :NO)、処理プログラム起動 部 240は、その処理プログラムを起動する旨の指示を、例えば引受サーバ 50— Nに 送る(S1020)。この場合、処理プログラム起動部 240は、新たに処理プログラムを起 動させる引受サーバの識別情報を、その処理プログラムの識別情報に対応付けて、 引受サーバ情報格納部 220に格納する。
[0063] これに代えて、処理プログラム起動部 240は、過去に実行したジョブの情報に更に 基づいて、以下の処理により、処理プログラムを新たに起動する力否か判断してもよ い。具体的には、処理プログラム起動部 240は、各引受サーバの処理プログラム実 行部 500に、処理プログラムを実行させる毎に、その処理プログラムの実行に要した 処理量を通知させる。この通知に基づいて、処理プログラム起動部 240は、過去に受 けたジョブの要求の種類に、その種類のジョブに含まれる複数の処理部分を処理す る複数の処理プログラムの実行に要した処理量を対応付けて管理する。
[0064] そして、処理プログラム起動部 240は、ジョブの要求を受ける毎に、過去にその種 類のジョブが実行された時に各処理プログラムの実行に要した処理量力 既にその 処理プログラムを起動して 、る弓 I受サーバが処理可能な最大処理量を超える場合に
、他の引受サーバにおいて処理プログラムを新たに起動する。これにより、不足する 恐れのある処理プログラムを予め起動し、ジョブを円滑に完了できる。更に他の例とし て、処理プログラム起動部 240は、ジョブの処理内容に基づいて、各処理プログラム の実行に要する処理量力 S、既にその処理プログラムを起動している引受サーバが処 理可能な最大処理量を超える力否かを判断してもよい。具体的には、処理プログラム 起動部 240は、処理プログラム毎に予め定められている処理量に基づいて判断して もよ ヽし、処理プログラムの実行内容を解析する処理を行ってもょ 、。
[0065] 続 、て、実行指示情報生成部 200は、生成した実行指示情報を、ジョブに入力す るべき入力データのヘッダ部分に格納することにより送信用データを生成し、例えば 引受サーバ 50— 1に送信する(S1030)。
[0066] 図 11は、 S620の動作の詳細を示す。引受サーバ 50— 1は、処理プログラムを起動 している場合に、定期的に以下の処理を行う。まず、処理プログラム実行部 500は、 送信用データを受信したカゝ否カゝ判断する(S1100)。受信して!/ヽな ヽ場合に(S1100 : NO)、処理プログラム実行部 500は、最後に送信用データを受信して力も基準待 機時間が経過した力否か判断する (S 1110)。
[0067] 基準待機時間が経過した場合、即ち、最後に送信用データを受信してから基準待 機時間内に次の送信用データを受信できな力つた場合に(S1110 :YES)、処理プ ログラム実行部 500は、処理プログラムを停止し(S 1120)、処理プログラムを停止し た旨を管理サーバ 20に通知し (S1130)、処理を終了する。一方、処理プログラム実 行部 500は、送信用データを受信した場合に(S1100 : YES)、引受サーノ 50— 1が 実行可能状態か否か判断する(S 1140)。実行可能状態でな ヽ場合に(S 1140: N 0)、処理プログラム実行部 500は、拒絶通知を管理サーバ 20に返信する(S 1150) 。ここで、実行可能状態の場合とは、処理待ち状態の入力データが所定以上である 場合のみならず、引受サーバ 50— 1が既に処理プログラム Aの実行を中止した場合も 含む。
[0068] これにカ卩えて、処理プログラム実行部 500は、以下の処理により拒絶通知を管理サ ーバ 20に返信してもよい。具体的には、処理プログラム実行部 500は、受信した実 行指示情報に基づいて、受信した入力データを入力として既に実行されているべき 処理プログラムを検出する。そして、処理プログラム実行部 500は、検出したその処 理プログラム力 S、入力データの送信元の引受サーバにより実行可能でな力つた場合 に、拒絶通知を返信する。例えば、処理プログラム実行部 500は、検出したその処理 プログラムが、入力データの送信元の引受サーバにより現在実行可能でない場合に
、その引受サーバが入力データの送信時にもその処理プログラムを実行可能でなか つたものと判断してもよい。 [0069] 更にこれにカ卩えて、処理プログラム実行部 500は、入力データと共に受け取った電 子書名の検証に失敗した場合に、拒絶通知を返信してもよい。これにより、送信元の 弓 I受サーバが正当な引受サーバに成りすます不正行為を防止することができる。
[0070] 当該引受サーバが実行可能状態であり、検出したその処理プログラムが、入力デ ータの送信元の弓 I受サーバにより実行可能であって、かつ電子署名が正しく検証さ れた場合に(S 1140 : YES)、処理プログラム実行部 500は、受信通知を管理サーバ 20に送信する(S 1160)。そして、処理プログラム実行部 500は、入力データを入力 として割り当てられた処理プログラムを実行することによりその入力データを更新する (S1170)。履歴格納部 540は、処理プログラム実行部 500が処理プログラムを実行 することにより変更した引受サーバ 50— 1上のデータの履歴情報を、その変更を復元 可能な情報に対応付けて格納する(S 1180)。
[0071] 図 12は、図 11に続く動作の詳細を示す。引受サーバ選択部 510は、管理サーバ 2 0から受信した実行指示情報に基づいて、入力データを入力として次に実行するべ き処理プログラムを検出する(S1200)。引受サーバ選択部 510は、そのような処理 プログラムを検出できない場合に(S1200 :NO)、完了通知を管理サーバ 20に送信 する(S1205)。
[0072] 一方、処理プログラムを検出できた場合に(S1200 :YES)、引受サーバ選択部 51 0は、キャッシュ部 520を参照することにより、その処理プログラムの識別情報を実行 する弓 I受サーバの識別情報がキャッシュされて 、る力否か判断する(S 1210)。キヤ ッシュされている場合に(S 1220 : YES)、引受サーバ選択部 510は、キャッシュされ ているその識別情報の引受サーバを選択する(S 1230)。
[0073] 一方、キャッシュされていない場合に(S 1220 : NO)、引受サーバ選択部 510は、 その処理プログラムを実行する引受サーバの識別情報を管理サーバ 20に問合せ、 問合せ結果の識別情報により識別される引受サーバを選択する(S1240)。この場 合、キャッシュ部 520は、問合せ結果の識別情報を、問合せ対象の処理プログラムの 識別情報に対応付けてキャッシュする(S 1245)。
[0074] 続いて、入力データ受渡部 530は、引受サーバ選択部 510により選択された引受 サーバに、受信した実行指示情報と更新された入力データとを対応付けて送信用デ ータとして送信する(SI 250)。なお、入力データ受渡部 530は、この更新された入 力データ及び実行指示情報を対象として電子署名を作成し、作成した電子署名を、 この入力データ及び実行指示情報に対応付けて送信してもよい。
[0075] そして、処理プログラム実行部 500は、終了通知を管理サーバ 20に送信する(S12 60)。なお、処理プログラム実行部 500は、処理プログラムの実行に所定以上の時間 を要する場合等には、処理プログラムの処理経過を示す情報を、終了通知に先だつ て送信してもよい。続いて、履歴格納部 540は、入力データ受渡部 530により引受サ ーバに送信された入力データ及び実行指示情報の履歴を格納する(S1270)。なお 、引受サーバ 50— 1は、本図に示す動作の他、処理プログラム実行部 500が処理プ ログラムを実行することにより使用している計算資源の使用率を示す情報を、定期的 に管理サーバ 20に送ってもょ 、。
[0076] ここで、 S640における動作は、送信用データの送信元が管理サーバ 20に代えて 引受サーバ 50— 1であり、当該送信先が引受サーバ 50— 2に代えて引受サーバ 50— N等である他は、 S620における動作と略同一であるので説明を省略する。同様に、 S660における動作は、送信用データの送信元が管理サーバ 20に代えて引受サー ノ 50— 2である他は、 S620における動作と略同一であるので説明を省略する。
[0077] 図 13は、 S630の動作の詳細を示す。管理サーバ 20は、引受サーバ 50— 1一 Nの 何れ力から何らかの通知又は問合せを受ける毎に、以下の処理を行う。まず、引受 サーバ情報格納部 220は、受信通知又は終了通知を例えば引受サーバ 50— 1から 受信した力否力判断する(S 1300)。受信した場合に(S 1300 : YES)、引受サーバ 情報格納部 220は、受信通知又は終了通知に基づいて、各引受サーバで処理中の ジョブの数を更新して、更新結果に基づいて実行可否情報を更新する(S1310)。
[0078] 続いて、問合対応部 230は、所定の処理プログラムを実行する引受サーバの識別 情報の問合せを受けたカゝ否カゝ判断する(S 1320)。問合せを受けた場合に(S 1320: YES)、処理プログラム起動部 240は、問合対応部 230が問い合わせを受けた処理 プログラムについて、その処理プログラムを実行する複数の引受サーバのうち、実行 可能状態でない引受サーバが、予め定められた基準割合を超える力否力判断する( S1330)。 [0079] 基準割合を超える場合に(SI 330 : YES)、処理プログラム起動部 240は、その処 理プログラムを起動して ヽな ヽ弓 I受サーバの何れかにお 、てその処理プログラムを 新たに起動する(S1340)。この場合、処理プログラム起動部 240は、新たに処理プ ログラムを起動した引受サーバの識別情報を、その処理プログラムの識別情報に対 応付けて、引受サーバ情報格納部 220に格納する。
[0080] そして、問合対応部 230は、問合せを受けた処理プログラムの識別情報に対応す る引受サーバの識別情報を引受サーバ情報格納部 220から取得して、その問合せ に対する返信として送信する(S 1350)。引受サーバ情報格納部 220が、その処理 プログラムの識別情報に対応する引受サーバの識別情報を複数格納している場合 には、問合対応部 230は、その処理プログラムの識別情報に対応する全ての識別情 報を送信してもよ!、し、所定の判断基準に基づ!、て一部の識別情報を選択して送信 してちよい。
[0081] 例えば、問合対応部 230は、問合せた引受サーバとの間の通信速度がより速い引 受サーバの識別情報を、問合せた引受サーバとの間の通信速度がより遅い引受サ ーバの識別情報より優先して選択し、送信してもよい。また、 S1340において処理プ ログラム起動部 240により新たに処理プログラムが起動された場合には、問合対応部 230は、処理プログラムが起動されたその弓 I受サーバの識別情報のみを送信しても よい。
[0082] 更に、引受サーバ情報格納部 220が、引受サーバ 50— 1一 Nの何れかから、処理 プログラムを実行することにより使用する計算資源の使用率を受信した場合に (S13 60 :YES)、引受サーバ変更部 260は、その使用率が基準使用率以下か否か判断 する(S1370)。基準使用率以下の場合に(S1370 :YES)、引受サーバ変更部 260 は、その処理プログラムを、その使用率を送信した引受サーバより最大処理量が少な い他の引受サーバに実行させる(S 1380)。具体的には、引受サーバ変更部 260は 、その処理プログラムを実行していた引受サーバに、その処理プログラムの実行を中 止する中止指示を送信し、その引受サーバより最大処理量が少ない当該他の引受 サーバに、その処理プログラムを起動する起動指示を送信する。
[0083] この結果、変更前の引受サーバは、処理プログラム実行部 500により当該処理プロ グラムの実行を停止し、変更後の引受サーバは、処理プログラム実行部 500により当 該処理プログラムを起動する。そしてこの場合、処理プログラム起動部 240は、新た に処理プログラムを起動した引受サーバの識別情報を、その処理プログラムの識別 情報に対応付けて、引受サーバ情報格納部 220に格納する。一方、処理プログラム 起動部 240は、処理プログラムの実行を中止した引受サーバの識別情報を、引受サ ーバ情報格納部 220から削除する。
[0084] なお、 S650における動作は、問合せ元の引受サーバが引受サーバ 50— 1に代え て引受サーバ 50— 2である事項の他は、 S630における動作と略同一であるので説 明を省略する。
[0085] 図 14は、 S670の動作の詳細を示す。削除指示部 270は、最後に処理プログラム を実行した引受サーバ 50— N力も完了通知を受けた場合に(S 1400 : YES)、複数 の処理プログラムの全てが実行されることによりジョブが完了したと判断し、その旨を 利用者端末 40に通知する(S1410)。そして、削除指示部 270は、引受サーバ 50- 1一 Nの各々に指示して、引受サーバ 50— 1一 Nの各々における履歴格納部 540か ら、そのジョブの実行の過程で格納された入力データ、実行指示情報、及び履歴情 報を削除する(S1420)。
[0086] 図 15は、 S700の動作の詳細を示す。障害発生判断部 550は、入力データの送信 先の引受サーバで障害が発生した力否か判断する(S 1500)。例えば、障害発生判 断部 550は、障害発生通知を管理サーバ 20から受けるか、又は拒絶通知を引受サ ーバ 50-2から受けた場合に、障害が発生したと判断する。
[0087] そして、障害発生判断部 550により障害が発生したと判断された場合に(S1500 :
YES) ,引受サーバ選択部 510は、実行中に障害が発生したその処理プログラムを 実行する他の引受サーバの識別情報を管理サーバ 20に問合せる(S1510)。この場 合、キャッシュ部 520は、問合せ結果の識別情報を、問合せ対象の処理プログラムの 識別情報に対応付けてキャッシュする(S 1520)。
[0088] 引受サーバ選択部 510は、問合せ結果の識別情報により識別される引受サーバを 選択する(S1530)。例えば、問合対応部 230は、当該引受サーバとの通信速度等 力 り速い引受サーバの識別情報を優先して問合せ結果として返信する。この結果、 引受サーバ選択部 510は、更新された入力データを入力として次に実行するべき処 理プログラムを実行している複数の引受サーバのうち、当該引受サーバとの間の通 信速度がより速い引受サーバを、当該通信速度がより遅い引受サーバより優先して 選択する。一例として、引受サーバ選択部 510は、当該通信速度が最も速い引受サ ーバを選択し、他の引受サーバを選択しない。
[0089] 入力データ受渡部 530は、既に送信した入力データ及び実行指示情報を履歴格 納部 540から取得する(S 1540)。入力データ受渡部 530は、取得したこれらの入力 データ及び実行指示情報を、送信用データとして、再選択した引受サーバ、例えば 引受サーバ 50— Nに送信する(S1550)。
[0090] 図 16は、 S800の動作の詳細を示す。管理サーバ 20は、ジョブを引受サーバ 50— 1一 Nに実行させている場合に、例えば定期的に以下の処理を繰り返す。まず、引受 サーバ情報格納部 220は、各引受サーバについて、その引受サーバから最後に受 信通知を受信して力も基準処理時間が経過したか否力判断する(S1600)。基準処 理時間が経過した場合に、即ち、基準処理時間内に終了通知を受信できな力 た場 合に(S1600 :YES)、引受サーバ情報格納部 220は、障害の発生したジョブが再試 行可能な種類であるか否力判断する(S1610)。
[0091] 再試行可能な種類である場合に(SI 610 : YES)、引受サーバ情報格納部 220は 、障害発生通知を引受サーバ 50— 1に送信する(S1620)。更に、引受サーバ情報 格納部 220は、入力データの送信先の引受サーバのハードウェアに障害が発生した 場合等には、障害の発生したその引受サーバに対応付けて格納されて 、た処理プ ログラムの識別情報を削除してもよい。一方、再試行可能でない種類である場合に( S1610 :NO)、引受サーバ情報格納部 220は、そのジョブの一部を実行した処理プ ログラムによるデータの変更を復元する旨の指示を、すでに処理プログラムを実行し た引受サーバに送る。例えば、引受サーバ情報格納部 220は、引受サーノ ¾0— 1及 び引受サーバ 50—2にその指示を送る 1630)。
[0092] 図 17は、管理サーバ 20として機能するコンピュータのハードウェア構成の一例を示 す。管理サーバ 20は、ホストコントローラ 1782により相互に接続される CPU1700、 RAM 1720,グラフィックコントローラ 1775、及び表示装置 1780を有する CPU周辺 部と、入出力コントローラ 1784によりホストコントローラ 1782に接続される通信インタ 一フェイス 1730、ハードディスクドライブ 1740、及び CD— ROMドライブ 1760を有 する入出力部と、入出力コントローラ 1784に接続される BIOS1710、フレキシブル ディスクドライブ 1750、及び入出力チップ 1770を有するレガシー入出力部とを備え る。
[0093] ホストコントローラ 1782は、 RAM1720と、高い転送レートで RAM1720をアクセス する CPU1700及びグラフィックコントローラ 1775とを接続する。 CPU1700は、 BIO S1710及び RAM1720に格納されたプログラムに基づいて動作し、各部の制御を 行う。グラフィックコントローラ 1775は、 CPU 1700等が RAM 1720内に設けたフレ ームバッファ上に生成する画像データを取得し、表示装置 1780上に表示させる。こ れに代えて、グラフィックコントローラ 1775は、 CPU1700等が生成する画像データ を格納するフレームバッファを、内部に含んでもよい。
[0094] 入出力コントローラ 1784は、ホストコントローラ 1782と、比較的高速な入出力装置 である通信インターフェイス 1730、ハードディスクドライブ 1740、及び CD— ROMドラ イブ 1760を接続する。通信インターフェイス 1730は、ネットワークを介して外部の装 置と通信する。ハードディスクドライブ 1740は、管理サーバ 20が使用するプログラム 及びデータを格納する。 CD— ROMドライブ 1760は、 CD— ROM1795からプログラ ム又はデータを読み取り、 RAM1720を介して入出力チップ 1770に提供する。
[0095] また、入出力コントローラ 1784〖こは、 BIOS1710と、フレキシブルディスクドライブ 1 750や入出力チップ 1770等の比較的低速な入出力装置とが接続される。 BIOS 17 10は、管理サーバ 20の起動時に CPU1700が実行するブートプログラムや、管理サ ーバ 20のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドラ イブ 1750は、フレキシブルディスク 1790からプログラム又はデータを読み取り、 RA M1720を介して入出力チップ 1770に提供する。入出力チップ 1770は、フレキシブ ルディスク 1790や、例えばパラレルポート、シリアルポート、キーボードポート、マウス ポート等を介して各種の入出力装置を接続する。
[0096] 管理サーバ 20に提供されるプログラムは、フレキシブルディスク 1790、 CD-ROM 1795、又は ICカード等の記録媒体に格納されて利用者によって提供される。プログ ラムは、入出力チップ 1770及び Z又は入出力コントローラ 1784を介して、記録媒体 力も読み出され管理サーバ 20にインストールされて実行される。
[0097] 管理サーバ 20にインストールされて実行される制御プログラムは、実行指示情報生 成モジュールと、入力データ送信モジュールと、引受サーバ情報格納もジュールと、 問合対応モジュールと、処理プログラム起動モジュールと、障害発生通知送信モジュ ールと、引受サーバ変更モジュールと、削除指示モジュールとを含む。各モジュール が管理サーバ 20に働きかけて行わせる動作は、図 1から図 16において説明した管 理サーバ 20における、対応する部材の動作と同一であるから、説明を省略する。
[0098] また、管理サーバ 20に提供される制御プログラムは、ネットワークなどを介して引受 サーバ 50— 1一 Nの各々にインストールされて実行されてもよい。引受サーバ 50— 1 一 Nの各々〖こインストールされて実行される制御プログラムは、処理プログラム実行 モジュールと、引受サーバ選択モジュールと、キャッシュモジュールと、入力データ受 渡モジュールと、履歴格納モジュールと、障害発生判断モジュールとを含む。各モジ ユールが引受サーバ 50— 1一 Nの各々に働きかけて行わせる動作は、図 1から図 16 において説明した引受サーノ 50— 1一 Nの各々における、対応する部材の動作と同 一であるから、説明を省略する。
[0099] 以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。
記憶媒体としては、フレキシブルディスク 1790、 CD— ROM1795の他に、 DVDや P D等の光学記録媒体、 MD等の光磁気記録媒体、テープ媒体、 ICカード等の半導 体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続 されたサーバシステムに設けたノ、ードディスク又は RAM等の記憶装置を記録媒体と して使用し、ネットワークを介してプログラムを管理サーバ 20に提供してもよい。
[0100] 以上、本実施例に示すように、管理サーバ 20は、処理プログラムを引受サーバに 実行させる毎に入力データを送受信することなく、入力データを複数の弓 I受サーバ に順次受渡しさせることができる。この結果、管理サーバ 20の負荷が軽減されるとと もに、管理サーバ 20へのネットワークトラフィックが減少する。更に、引受サーバ 50は 、入力データの送信先をキャッシュしており、キャッシュされていない送信先のみを管 理サーバ 20に問合せる。この結果、管理サーバ 20へのネットワークトラフィックが更 に減少する。
[0101] 更に、本実施例によると、処理プログラムの実行に障害が発生した場合であっても、 引受サーバ 50は、できるだけ管理サーバ 20に問合せずに障害の復旧を試みる。こ の結果、管理サーバ 20へのネットワークトラフィックを減少できる。また、管理サーバ 2 0は、実行させる処理プログラムを、引受サーバに予めインストールして起動させてお く。これにより、管理サーバ 20のみが、入力データにアクセスすることを許可する引受 サーバを管理して 、ればよぐ弓 I受サーバにそのような管理をさせる負担を軽減でき る。また、管理サーバ 20は、引受サーバ 50からの問合せ等に応じて、各引受サーバ の負荷を分散することができる。
以上、本実施例によると、より多くのコンピュータを結合して適切かつ柔軟なグリッド コンピューティングシステムを構築することができる。
[0102] 以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実 施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または 改良を加えることが可能であることが当業者に明らかである。その様な変更または改 良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載 力 明らかである。
図面の簡単な説明
[0103] [図 1]図 1は、グリッドコンピューティングシステム 10の機能ブロック図である。
[図 2]図 2は、管理サーバ 20の機能ブロック図である。
[図 3]図 3は、送信用データ 30のデータ構造の一例を示す。
[図 4]図 4は、引受サーバ情報格納部 220のデータ構造の一例を示す。
[図 5]図 5は、引受サーバ 50— 2の機能ブロック図である。
[図 6]図 6は、正常動作時におけるグリッドコンピューティングシステム 10の動作フロー の概要を示す (第 1例)。
[図 7]図 7は、障害発生時におけるグリッドコンピューティングシステム 10の動作フロー の概要を示す (第 2例)。
[図 8]図 8は、障害発生時におけるグリッドコンピューティングシステム 10の動作フロー の概要を示す (第 3例)。 [図 9]図 9は、障害発生時におけるグリッドコンピューティングシステム 10の動作フロ、 の概要を示す (第 4例)。
[図 10]図 10は、 S610の動作の詳細を示す。
[図 11]図 11は、 S620の動作の詳細を示す。
[図 12]図 12は、図 11に続く動作の詳細を示す。
[図 13]図 13は、 S630の動作の詳細を示す。
[図 14]図 14は、 S670の動作の詳細を示す。
[図 15]図 15は、 S700の動作の詳細を示す。
[図 16]図 16は、 S800の動作の詳細を示す。
[図 17]図 17は、管理サーバ 20として機能するコンピュータのハードウェア構成の一 例を示す。
符号の説明
10 グリッドコンピューティングシステム
20 管理サーバ
30 送信用データ
40 利用者端末
50 引受サーバ
55 テータベース
200 実行指示情報生成部
210 入力データ送信部
220 引受サーバ情報格納部
230 問合対応部
240 処理プログラム起動部
250 障害発生通知送信部
260 引受サーバ変更部
270 削除指示部
300 実行指示情報
500 処理プログラム実行部 510 引受サーバ選択部 520 キャッシュ部 530 入力データ受渡部 540 履歴格納部 550 障害発生判断部 560 変更復元部

Claims

請求の範囲
[1] 利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プロダラ ムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の弓 I受サーバと、 前記複数の弓 I受サーバを管理する管理サーバとを備えたシステムであって、 前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログ ラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、 前記ジョブに入力される入力データを入力として最初に実行するべき処理プロダラ ムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送 信する入力データ送信部と
を有し、
前記複数の引受サーバの各々は、
受信した前記入力データを入力として割り当てられた前記処理プログラムを実行す ることにより前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づ 、て、更新された前 記入力データを入力として次に実行するべき処理プログラムを実行させる弓 I受サー バを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指 示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と を有するシステム。
[2] 前記引受サーバ選択部は、更新された前記入力データを入力として次に実行する べき処理プログラムを実行する引受サーバの識別情報を、前記管理サーバに問合せ 、問合せ結果の識別情報により識別される引受サーバを選択し、
前記管理サーバは、
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行す る引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部と、 前記引受サーバ選択部から問合せを受けた場合に、問合せを受けた処理プロダラ ムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部か ら取得して、前記問合せに対する返信として送信する問合対応部と
を更に有する請求項 1記載のシステム。
[3] 前記複数の引受サーバの各々は、前記引受サーバ選択部が過去に前記問合対応 部に問合せた結果取得した引受サーバの識別情報を、当該引受サーバが実行する 処理プログラムの識別情報に対応付けてキャッシュするキャッシュ部を更に備え、 前記引受サーバ選択部は、実行するべき処理プログラムの識別情報が、前記キヤ ッシュ部によりキャッシュされて ヽる場合に、当該処理プログラムに対応する引受サー バを選択し、実行するべき処理プログラムの識別情報が、前記キャッシュ部によりキヤ ッシュされていない場合に、当該処理プログラムを実行する引受サーバを前記問合 対応部に問合せる 請求項 2記載のシステム。
[4] 前記処理プログラム実行部は、前記入力データを受信した場合に、入力データを 受信した旨を示す受信通知を前記管理サーバに送信し、前記処理プログラムの実行 が終了した場合に、当該処理プログラムの実行が終了した旨を示す終了通知を前記 管理サーバに送信し、
前記引受サーバ情報格納部は、前記複数の引受サーバの各々が新たに入力デー タを受信して処理プログラムを実行可能か否かを、前記受信通知及び前記終了通知 に基づいて判断した判断結果を実行可否情報として更に格納し、
前記問合対応部は、問合せを受けた処理プログラムについて、当該処理プログラム を実行する複数の引受サーバのうち、新たに入力データを受信して処理プログラムを 実行可能な引受サーバを、前記実行可否情報に基づいて選択し、選択した当該引 受サーバの識別情報を前記問合せに対する返信として送信する
請求項 2記載のシステム。
[5] 前記管理サーバは、前記問合対応部が問合せを受けた処理プログラムについて、 当該処理プログラムを実行する複数の引受サーバのうち、予め定められた基準割合 を超える数の引受サーバ力 新たに入力データを受信して処理プログラムを実行可 能でな!、場合に、当該処理プログラムを起動して!/、な 、引受サーバの何れかにお!/ヽ て当該処理プログラムを起動する処理プログラム起動部を更に備え、
前記問合対応部は、前記処理プログラム起動部により当該処理プログラムが起動さ れた引受サーバの識別情報を、前記問合せに対する返信として送信する 請求項 4記載のシステム。
[6] 前記複数の引受サーバの各々は、
前記入力データ受渡部により引受サーバに送信された入力データ及び実行指示 情報の履歴を格納する履歴格納部と、
前記入力データ受渡部が更新された前記入力データ及び実行指示情報を送信し た送信先の引受サーバにおいて、処理プログラムの実行に障害が発生した力否力判 断する障害発生判断部と
を更に有し、
前記障害発生判断部により障害が発生したと判断された場合において、 前記引受サーバ選択部は、更新された前記入力データを入力として次に実行する べき処理プログラムを実行する他の弓 I受サーバを選択し、
前記入力データ受渡部は、前記履歴格納部から入力データ及び実行指示情報を 取得して、前記引受サーバ選択部により選択された前記他の引受サーバに送信する 請求項 1記載のシステム。
[7] 前記処理プログラム実行部は、前記入力データを受信した場合に、入力データを 受信した旨を示す受信通知を前記管理サーバに送信し、前記処理プログラムの実行 が終了した場合に、当該処理プログラムの実行が終了した旨を示す終了通知を前記 管理サーバに送信し、
前記管理サーバは、何れかの引受サーバから前記受信通知を受信してから予め定 められた基準処理時間内に、当該引受サーバから前記終了通知を受信できなかつ た場合に、当該引受サーバに入力データを送信した送信元の引受サーバに、当該 弓 I受サーバにお 、て処理プログラムの実行に障害が発生した旨を示す障害発生通 知を送信する障害発生通知送信部を更に備え、
前記障害発生判断部は、前記障害発生通知を受信した場合に、前記入力データ 受渡部が更新された前記入力データ及び実行指示情報を送信した送信先の引受サ ーバにおいて処理プログラムの実行に障害が発生したと判断する
請求項 6記載のシステム。 [8] 入力データ及び実行指示情報を送信した送信先の引受サーバにおいて、 前記処理プログラム実行部は、新たに入力データを受信して処理プログラムを実行 可能でないと判断した場合に、入力データを拒絶する旨を示す拒絶通知を当該入力 データ及び当該実行指示情報の送信元の引受サーバに送信し、
当該送信元の引受サーバにおける前記障害発生判断部は、当該送信先の引受サ ーバから前記拒絶通知を受信した場合に、当該送信先の引受サーバにおいて処理 プログラムの実行に障害が発生したと判断する
請求項 6記載のシステム。
[9] 前記管理サーバは、前記複数の処理プログラムが実行されることにより前記ジョブ が完了した場合に、前記複数の引受サーバの各々における前記履歴格納部から、 入力データ及び実行指示情報を削除させる削除指示部を更に備える
請求項 6記載のシステム。
[10] 前記複数の引受サーバの各々において、
前記引受サーバ選択部は、更新された前記入力データを入力として次に実行する べき処理プログラムを起動して 、る複数の弓 I受サーバのうち、当該引受サーバとの間 の通信速度がより速い引受サーバを、当該通信速度がより遅い引受サーバより優先 して、前記他の引受サーバとして選択する
請求項 6記載のシステム。
[11] 前記複数の引受サーバの各々は、
前記処理プログラム実行部が前記処理プログラムを実行することにより変更した当 該引受サーバ上のデータの履歴情報を、当該変更を復元可能な情報に対応付けて 格納する履歴格納部と、
前記入力データ受渡部が更新された前記入力データ及び実行指示情報を送信し た送信先の引受サーバにおいて、処理プログラムの実行に障害が発生した場合に、 前記処理プログラム実行部が変更したデータを、前記履歴格納部の前記履歴情報 に基づ!/、て復元する変更復元部と
を更に有する
請求項 1記載のシステム。 [12] 前記管理サーバは、生成した前記実行指示情報に基づいて、前記ジョブに入力さ れる前記入力データを入力として 2回目以降に実行するべき処理プログラムの各々 を検出し、検出した処理プログラムの各々を、前記入力データ送信部の送信先とは 異なる引受サーバの何れかにおいて起動する処理プログラム起動部を更に備える 請求項 1記載のシステム。
[13] 前記複数の引受サーバの各々において、
前記処理プログラム実行部は、過去に処理プログラムの実行に要した処理量を前 記管理サーバに通知し、
前記管理サーバにおいて、
前記処理プログラム起動部は、前記処理プログラム実行部から通知された処理プロ グラムの過去の処理量力 S、既に当該処理プログラムを起動している引受サーバが処 理可能な最大処理量を超える場合に、前記入力データ送信部の送信先とは異なる I受サーバの何れかにお 、て、当該処理プログラムを起動する
請求項 12記載のシステム。
[14] 前記管理サーバは、前記ジョブに入力される前記入力データを入力として実行す るべき複数の処理プログラムの各々を検出し、検出した処理プログラムの各々につい て、当該入力データを入力として実行する当該処理プログラムに必要な処理量が、 既に当該処理プログラムを起動して!、る弓 I受サーバが処理可能な最大処理量を超 える場合に、当該処理プログラムを、前記入力データ送信部の送信先とは異なる引 受サーバの何れかにおいて起動する処理プログラム起動部
を更に備える請求項 1記載のシステム。
[15] 前記処理プログラム実行部は、最後に入力データ及び実行指示情報を受信してか ら予め定められた基準待機時間内に、入力データ及び実行指示情報を受信しなか つた場合に、当該引受サーバの処理プログラムの実行を中止する
請求項 1記載のシステム。
[16] 前記管理サーバは、前記複数の引受サーバの何れかにおいて、前記処理プロダラ ム実行部が処理プログラムを実行することにより使用する計算資源の使用率が、予め 定められた基準使用率より低い場合に、当該処理プログラムを、最大処理量が当該 I受サーバより少な 、他の弓 I受サーバに実行させる弓 I受サーバ変更部を更に備え る
請求項 1記載のシステム。
[17] 入力データ及び実行指示情報を送信した送信先の引受サーバにおいて、
前記処理プログラム実行部は、受信した実行指示情報に基づいて、受信した入力 データに既に実行されて ヽるべき処理プログラムを検出し、検出した当該処理プログ ラムが送信元の引受サーバにより実行可能であった場合に、処理プログラムを実行 する
請求項 1記載のシステム。
[18] 前記複数の引受サーバの各々において、
前記入力データ受渡部は、更新された前記入力データ又は前記実行指示情報の 電子署名を作成し、作成した当該電子署名を、電子署名の対象である当該入力デ ータ及び当該実行指示情報に更に対応付けて送信し、
入力データ、実行指示情報、及び電子署名を受信した引受サーバにおいて、 前記処理プログラム実行部は、前記電子署名が正しく検証された場合に処理プロ グラムを実行する
請求項 1記載のシステム。
[19] 利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プロダラ ムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバを管 理する管理サーバであって、
前記複数の引受サーバの各々は、
受信した入力データを入力として、割り当てられた前記処理プログラムを実行するこ とにより、前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づ 、て、更新された前 記入力データを入力として次に実行するべき処理プログラムを実行させる他の弓 I受 サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指 示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と を有し、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログ ラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、 前記ジョブに入力される入力データを入力として最初に実行するべき処理プロダラ ムを実行する引受サーバに、当該入力データと前記実行指示情報とを対応付けて送 信する入力データ送信部と
を備える管理サーバ。
[20] 管理サーバにより管理され、利用者の要求するジョブに含まれる複数のステップを 処理する複数の処理プログラムのうち、割り当てられた処理プログラムを実行する弓 I 受サーバであって、
前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログ ラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、 前記ジョブに入力される入力データを入力として最初に実行するべき処理プロダラ ムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送 信する入力データ送信部と
を有し、
受信した前記入力データを入力として、割り当てられた前記処理プログラムを実行 することにより前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づ 、て、更新された前 記入力データを入力として次に実行するべき処理プログラムを実行させる他の弓 I受 サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指 示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と を備える引受サーバ。
[21] 利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プロダラ ムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバを管 理する管理サーバを制御する制御方法であって、 前記複数の弓 I受サーバの各々 は、
受信した入力データを入力として、割り当てられた前記処理プログラムを実行するこ とにより、前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づ 、て、更新された前 記入力データを入力として次に実行するべき処理プログラムを実行させる他の弓 I受 サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指 示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と を有し、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログ ラムの実行順序とを含む実行指示情報を生成する実行指示情報生成段階と、 前記ジョブに入力される入力データを入力として最初に実行するべき処理プロダラ ムを実行する引受サーバに、当該入力データと前記実行指示情報とを対応付けて送 信する入力データ送信段階と
を備える制御方法。
管理サーバにより管理され、利用者の要求するジョブに含まれる複数のステップを 処理する複数の処理プログラムのうち、割り当てられた処理プログラムを実行する弓 I 受サーバを制御する制御方法であって、
前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログ ラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プロダラ ムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送 信する入力データ送信部と
を有し、
受信した前記入力データを入力として、割り当てられた前記処理プログラムを実行 することにより前記入力データを更新する処理プログラム実行段階と、
前記入力データに対応付けて受信した実行指示情報に基づ 、て、更新された前 記入力データを入力として次に実行するべき処理プログラムを実行させる他の弓 I受 サーバを選択する引受サーバ選択段階と、
前記引受サーバ選択段階において選択された前記引受サーバに、受信した前記 実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受 渡段階と
を備える制御方法。
[23] 利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プロダラ ムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバを管 理する管理サーバとして、コンピュータを機能させる制御プログラムであって、 前記複数の引受サーバの各々は、
受信した入力データを入力として、割り当てられた前記処理プログラムを実行するこ とにより、前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づ 、て、更新された前 記入力データを入力として次に実行するべき処理プログラムを実行させる他の弓 I受 サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指 示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と を有し、
前記コンピュータを、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログ ラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プロダラ ムを実行する引受サーバに、当該入力データと前記実行指示情報とを対応付けて送 信する入力データ送信部と
して機能させる制御プログラム。
[24] 管理サーバにより管理され、利用者の要求するジョブに含まれる複数のステップを 処理する複数の処理プログラムのうち、割り当てられた処理プログラムを実行する弓 I 受サーバとして、コンピュータを機能させる制御プログラムであって、 前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログ ラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、 前記ジョブに入力される入力データを入力として最初に実行するべき処理プロダラ ムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送 信する入力データ送信部と
を有し、
前記コンピュータを、
受信した前記入力データを入力として、割り当てられた前記処理プログラムを実行 することにより前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づ 、て、更新された前 記入力データを入力として次に実行するべき処理プログラムを実行させる他の弓 I受 サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指 示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と して機能させる制御プログラム。
請求項 23又は請求項 24記載の制御プログラムを記録した記録媒体。
PCT/JP2005/002218 2004-02-18 2005-02-15 システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体 WO2005078581A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
BRPI0507844-0A BRPI0507844B1 (pt) 2004-02-18 2005-02-15 Sistema de computação distribuída, servidor de gerenciamento e método para executar um trabalho
JP2005518010A JP4197701B2 (ja) 2004-02-18 2005-02-15 システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体
EP05719120.7A EP1722302B1 (en) 2004-02-18 2005-02-15 System, management server, reception server, control method, control program, and recording medium
CA002553416A CA2553416A1 (en) 2004-02-18 2005-02-15 System, management server, reception server, control method, control program, and recording medium
US10/597,634 US7975268B2 (en) 2004-02-18 2005-02-15 Grid computing system, management server, processing server, control method, control program and recording medium
IL177553A IL177553A (en) 2004-02-18 2006-08-17 System, management server, reception server, control method, control program and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-041611 2004-02-18
JP2004041611 2004-02-18

Publications (1)

Publication Number Publication Date
WO2005078581A1 true WO2005078581A1 (ja) 2005-08-25

Family

ID=34857940

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/002218 WO2005078581A1 (ja) 2004-02-18 2005-02-15 システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体

Country Status (10)

Country Link
US (1) US7975268B2 (ja)
EP (1) EP1722302B1 (ja)
JP (1) JP4197701B2 (ja)
KR (1) KR100810015B1 (ja)
CN (1) CN100424649C (ja)
BR (1) BRPI0507844B1 (ja)
CA (1) CA2553416A1 (ja)
IL (1) IL177553A (ja)
TW (1) TWI335541B (ja)
WO (1) WO2005078581A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077187A (ja) * 2006-09-19 2008-04-03 Denso Corp ネットワークシステム,ネットワークデバイスおよびプログラム
WO2009110953A2 (en) * 2008-02-29 2009-09-11 Evident Software, Inc. System and method for metering and analyzing usage and performance data of a virtualized compute and network infrastructure
JP2010113688A (ja) * 2008-11-10 2010-05-20 Fujitsu Ltd ジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置
JP2011070318A (ja) * 2009-09-24 2011-04-07 Hitachi Information Systems Ltd バッチ処理実行方法及びバッチ処理実行システム
WO2012042555A1 (ja) * 2010-09-27 2012-04-05 株式会社日立製作所 計算機システム及びその管理方法
JP2012173826A (ja) * 2011-02-18 2012-09-10 Hitachi Ltd バッチ処理の実行管理方法
JP2013012014A (ja) * 2011-06-29 2013-01-17 Yahoo Japan Corp アプリケーションプラットフォーム装置、アプリケーションプラットフォームシステム及びアプリケーションプラットフォーム装置の動作方法
CN105874433A (zh) * 2013-12-27 2016-08-17 甲骨文国际公司 用于支持分布式数据网格中的异步调用的系统和方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4751265B2 (ja) * 2006-08-01 2011-08-17 株式会社日立製作所 リソース管理システム及びその方法
JP4757175B2 (ja) * 2006-11-24 2011-08-24 キヤノン株式会社 情報処理装置及びアプリケーション管理方法
KR100847461B1 (ko) * 2007-06-01 2008-07-18 코아인텍주식회사 입출력 공유 장치를 이용하여 구축된 서버 시스템 및 상기서버 시스템을 구축하는 방법
KR100919475B1 (ko) * 2007-11-27 2009-09-28 인하대학교 산학협력단 퍼지로직기반 그리드데이터 전송제어장치 및 전송제어방법
JP2009217405A (ja) * 2008-03-07 2009-09-24 Nec Corp ジョブネットワーク自動生成方式及びプログラム
JP5236352B2 (ja) * 2008-05-15 2013-07-17 株式会社日立製作所 アプリケーション配信制御システム、アプリケーション配信制御方法、情報処理装置、およびクライアント端末
US8656419B2 (en) * 2009-07-02 2014-02-18 Ca, Inc. Dynamic distributed evaluator
JP5655286B2 (ja) * 2009-09-24 2015-01-21 ソニー株式会社 通信方法、通信システム、サーバおよびプログラム
JP5146520B2 (ja) * 2010-11-16 2013-02-20 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム及び画像処理方法
JP5321569B2 (ja) * 2010-12-02 2013-10-23 コニカミノルタ株式会社 画像処理システム、画像処理方法、画像処理サーバ及び画像形成装置並びに画像処理プログラム
US9547575B2 (en) 2011-08-30 2017-01-17 Amazon Technologies, Inc. Managing host computing devices
US9494924B2 (en) 2012-05-18 2016-11-15 Kabushiki Kaisha Toshiba Social infrastructure control system, control method, control apparatus, and server
US10282782B2 (en) * 2012-11-13 2019-05-07 Trading Technologies International, Inc. Distributed spreading tools and methods
JP6303300B2 (ja) * 2013-06-25 2018-04-04 富士通株式会社 制御依頼方法、情報処理装置、システム、およびプログラム
JP5467172B1 (ja) * 2013-09-18 2014-04-09 オリバー カルトシュタイン 情報処理システム、および情報処理方法
JP2016045930A (ja) * 2014-08-22 2016-04-04 キヤノン株式会社 管理システム、及び、管理システムの制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204035A (ja) * 1989-12-29 1991-09-05 Nec Corp ネットワークジョブステップ実行制御方式
JP2001325041A (ja) * 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム
US20020019844A1 (en) 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing
JP2002073576A (ja) * 2000-08-31 2002-03-12 Toshiba Corp バッチジョブ制御システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
JP2002073596A (ja) * 2000-08-29 2002-03-12 Nec System Technologies Ltd 外字を含むテキストのコード変換方法
US6996548B2 (en) * 2001-05-11 2006-02-07 Hemisphere Ii Investment Lp Method and apparatus for providing a reward for the use of a processor in a parallel processing environment
KR100447869B1 (ko) 2001-12-27 2004-09-08 삼성전자주식회사 다핀 적층 반도체 칩 패키지 및 이에 사용되는 리드 프레임
US20030220960A1 (en) * 2002-05-21 2003-11-27 Demoff Jeff S. System and method for processing data over a distributed network
US8020162B2 (en) * 2002-07-19 2011-09-13 International Business Machines Corporation Employing a resource broker in managing workloads of a peer-to-peer computing environment
DE60309286T2 (de) * 2003-04-23 2007-05-31 Comptel Corp. Ereignisvermittlung
US20040225711A1 (en) * 2003-05-08 2004-11-11 Spotware Technologies, Inc. System for administering computers on a computing grid
US7464159B2 (en) * 2004-01-14 2008-12-09 International Business Machines Corporation Managing analysis of a degraded service in a grid environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204035A (ja) * 1989-12-29 1991-09-05 Nec Corp ネットワークジョブステップ実行制御方式
JP2001325041A (ja) * 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム
US20020019844A1 (en) 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing
JP2002073576A (ja) * 2000-08-31 2002-03-12 Toshiba Corp バッチジョブ制御システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"The Present and Prospect of PC Grid", vol. 44, 2003, article "Information Processing"
MIMORI H. ET AL: "Fukusu Computer o 1 System to shite Shuchu Seigyo.", NIKKEI INTERNET TECHNOLOGY., vol. 59, 22 May 2002 (2002-05-22), pages 14 - 15, XP002991812 *
See also references of EP1722302A4

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077187A (ja) * 2006-09-19 2008-04-03 Denso Corp ネットワークシステム,ネットワークデバイスおよびプログラム
WO2009110953A2 (en) * 2008-02-29 2009-09-11 Evident Software, Inc. System and method for metering and analyzing usage and performance data of a virtualized compute and network infrastructure
WO2009110953A3 (en) * 2008-02-29 2009-10-29 Evident Software, Inc. System and method for metering and analyzing usage and performance data of a virtualized compute and network infrastructure
JP2010113688A (ja) * 2008-11-10 2010-05-20 Fujitsu Ltd ジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置
JP2011070318A (ja) * 2009-09-24 2011-04-07 Hitachi Information Systems Ltd バッチ処理実行方法及びバッチ処理実行システム
WO2012042555A1 (ja) * 2010-09-27 2012-04-05 株式会社日立製作所 計算機システム及びその管理方法
JP5309263B2 (ja) * 2010-09-27 2013-10-09 株式会社日立製作所 計算機システム及びその管理方法
JP2012173826A (ja) * 2011-02-18 2012-09-10 Hitachi Ltd バッチ処理の実行管理方法
JP2013012014A (ja) * 2011-06-29 2013-01-17 Yahoo Japan Corp アプリケーションプラットフォーム装置、アプリケーションプラットフォームシステム及びアプリケーションプラットフォーム装置の動作方法
CN105874433A (zh) * 2013-12-27 2016-08-17 甲骨文国际公司 用于支持分布式数据网格中的异步调用的系统和方法
JP2017502414A (ja) * 2013-12-27 2017-01-19 オラクル・インターナショナル・コーポレイション 分散データグリッドにおいて非同期呼出をサポートするためのシステムおよび方法

Also Published As

Publication number Publication date
US20090204694A1 (en) 2009-08-13
BRPI0507844A (pt) 2007-07-10
JPWO2005078581A1 (ja) 2008-02-21
IL177553A0 (en) 2006-12-10
EP1722302B1 (en) 2013-11-27
US7975268B2 (en) 2011-07-05
BRPI0507844B1 (pt) 2022-05-17
CN100424649C (zh) 2008-10-08
TW200606719A (en) 2006-02-16
TWI335541B (en) 2011-01-01
KR20060121962A (ko) 2006-11-29
EP1722302A4 (en) 2008-04-16
EP1722302A1 (en) 2006-11-15
IL177553A (en) 2013-03-24
KR100810015B1 (ko) 2008-03-10
CN1922578A (zh) 2007-02-28
JP4197701B2 (ja) 2008-12-17
CA2553416A1 (en) 2005-08-25

Similar Documents

Publication Publication Date Title
WO2005078581A1 (ja) システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体
US11836135B1 (en) Method and system for transparent database query caching
US7290086B2 (en) Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system
US8584244B2 (en) Computer system and method for scanning computer virus
US8489612B2 (en) Identifying similar files in an environment having multiple client computers
US20070220323A1 (en) System and method for highly available data processing in cluster system
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
JPH10143381A (ja) 遊休ワークステーションを共用するための装置および方法
WO2021164163A1 (zh) 一种请求处理方法、装置、设备及存储介质
US7191275B2 (en) System and method for the management of hardware triggered hotplug operations of input/output cards
CN116501783A (zh) 一种分布式数据库数据导入方法及系统
WO2024017274A1 (zh) 一种虚拟机克隆方法、装置及存储介质
US11456919B2 (en) Input and output for target device communication
US7266543B2 (en) System and method for accessing resources in a database
JP4222065B2 (ja) 情報システムにおけるデータアクセス方法および情報システム
US11340964B2 (en) Systems and methods for efficient management of advanced functions in software defined storage systems
US9201809B2 (en) Accidental shared volume erasure prevention
US7861242B2 (en) Mobile application morphing system and method
JP4089506B2 (ja) ファイル共有システム及びサーバー並びにプログラム
JP4336763B2 (ja) ジョブ管理システム
MXPA06009343A (es) Sistema de computacion en red, servidor de administracion, servidor de procesamiento, metodo de control, programa de control y medios de registro
JPH05265955A (ja) 計算機システムとジョブ実行方法
JP3314665B2 (ja) 分散ファイルシステム
CN116308404A (zh) 服务系统、数据处理方法、电子设备及存储介质
US20150215395A1 (en) System and control method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2005518010

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2553416

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 1020067016136

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 200580005241.4

Country of ref document: CN

Ref document number: 177553

Country of ref document: IL

Ref document number: PA/a/2006/009343

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWE Wipo information: entry into national phase

Ref document number: 2005719120

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 5357/DELNP/2006

Country of ref document: IN

WWP Wipo information: published in national office

Ref document number: 2005719120

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020067016136

Country of ref document: KR

ENP Entry into the national phase

Ref document number: PI0507844

Country of ref document: BR

WWE Wipo information: entry into national phase

Ref document number: 10597634

Country of ref document: US