Abstract:
There is provided a method of managing an organization of a computer system including a plurality of servers each capable of executing requested services, the services belonging to a service group defined based on data necessary for executing the services. Service groups are assigned to the plurality of servers. The method including: selecting, when a load imposed on a server exceeds a predetermined upper limit, a server of transfer destination for executing some of the services to be executed on the server having the load exceeding the upper limit; selecting at least one service group out of service groups assigned to the server having the load exceeding the upper limit; assigning the selected service group to the server of transfer destination; and transferring data necessary for executing services belonging to the selected service group from the server having the load exceeding the upper limit to the server of transfer destination.

Description:
CLAIM OF PRIORITY 
       [0001]    The present application claims priority from Japanese patent application JP 2008-307203 filed on Dec. 2, 2008, the content of which is hereby incorporated by reference into this application. 
       BACKGROUND OF THE INVENTION 
       [0002]    This invention relates to a technology for managing an organization of a computer system including a plurality of computers. 
         [0003]    In a server system which executes application processing such as payment settlement in response to a request from a client, real time property is important. The real time property means executing application processing and returning a response in a short period of time in the server system. 
         [0004]    In order to realize the real time property, in addition to an increase in processing performance of a computer, a processing method for increasing processing efficiency by means of load distribution and the like is necessary. Specifically, a cluster is constructed by a plurality of servers, and requests from clients are processed in parallel by the plurality of servers sharing the load of the processing, thereby decreasing the processing load imposed on the respective servers, and increasing the amount of requests which can be processed. 
         [0005]    Moreover, in a case where requests from clients are concentrated within a short period of time, in order to realize the real time property, processing such as dynamically changing the assignment of servers which process the requests according to variation in load imposed on the servers is necessary. 
         [0006]    However, requests from clients may include a request for access to data held by individual servers. In a case where the assignment of a server which processes a request is reorganized, management of data held by the server and management of relationships between a client and the server are complex, and thus, it is difficult for an ordinary client and servers to realize the reorganization. 
         [0007]    To address this problem, JP 2000-187632 A discloses a technology in which respective servers constituting a cluster receive a packet transmitted to a logical network address assigned to the entire cluster, and, based on parameters of the received packet, whether the packet is valid or invalid is selected. With the technology disclosed in JP 2000-187632 A, without necessity of modification of clients and setting of a name server, it is possible to change a server which actually receives a packet addressed to the logical network. 
         [0008]    Moreover, JP 2001-216282 A discloses a technology in which, in a case where a client transmits a request for a service to a server, a physical address request is transmitted to a virtual network address assigned to a cluster. In the technology disclosed in JP 2001-216282 A, a server determines priorities of servers according to information on loads imposed on the respective servers, and, based on the determined priorities, determines whether to respond to the physical address request. A client, upon reception of a physical address, transmits a service request to the received physical address. As a result, without the necessity for setting a name server, it is possible to change a server which provides a service. 
       SUMMARY OF THE INVENTION 
       [0009]    In the technology disclosed in JP 2001-187632 A, a server which receives a packet selects, based on parameters representing a status of the server, a logical network address, and an address of a client which is the transmission source, whether or not to discard the packet. However, in a case where processing of accessing data held by individual servers is requested and a server which is to receive packets is changed, a server of the destination of the change does not hold data necessary for the processing, and hence the server cannot process the request. 
         [0010]    Moreover, in the technology disclosed in JP 2001-216282 A, a server for processing a service request is changed according to the priorities determined based on the processing loads imposed on the respective servers. On this occasion, it is assumed that a server holds data in a large quantity, and carries out a plurality of services requiring access thereto. In this case, in order to distribute the load by carrying out reorganization so that some of the services is to be processed by another server, data necessary for processing the some of the services needs be stored in the other server selected as a result of the reorganization. However, the technology disclosed in JP 2001-216282 A does not hold information used for specifying data necessary for processing a request, and thus, it is necessary for the server selected as the result of the reorganization to hold all data. However, in a case where all the data is copied to the server selected as the result of the reorganization, a processing period and a processing load necessary for copying the data are enormous, a performance of processing requests received from clients during the data copy decreases, and hence it is hard to maintain the real time property. 
         [0011]    The representative aspects of this invention are as follows. That is, there is provided a method of managing an organization of a computer system comprising a plurality of servers each capable of executing requested services, the plurality of servers each comprising: an interface for coupling with another one of the plurality of servers; a processor coupled to the interface; and a memory device for storing data necessary for providing the requested services, the each of plurality of servers being assigned services that refer to the same data, the method including the steps of: selecting, by one of the plurality of servers, in a case where a load imposed on the one of the plurality of servers exceeds a predetermined upper limit, a server of transfer destination for executing some of the services to be executed on the one of the plurality of servers having the load imposed thereon exceeding the predetermined upper limit; selecting, by the one of the plurality of servers, at least one service from the services assigned to the one of the plurality of servers having the load imposed thereon exceeding the predetermined upper limit; assigning, by the one of the plurality of servers, the selected at least one service to the server of transfer destination; and transferring, by the one of the plurality of servers, data necessary for executing the selected at least one service from the one of the plurality of servers having the load imposed thereon exceeding the predetermined upper limit to the server of transfer destination. 
         [0012]    According to one embodiment of this invention, it is possible to distribute a load while the real time property is maintained. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The present invention can be appreciated by the description which follows in conjunction with the following figures, wherein: 
           [0014]      FIG. 1  is a block diagram illustrating an example of a configuration of a computer system according to a first embodiment of this invention; 
           [0015]      FIG. 2  is a block diagram illustrating a hardware configuration of the server  110  according to the first embodiment of this invention; 
           [0016]      FIG. 3  is an explanatory diagram illustrating an overview of steps of reorganizing the computer system according to the first embodiment of this invention; 
           [0017]      FIG. 4  is an explanatory diagram illustrating an example of a processing request message according to the first embodiment of this invention; 
           [0018]      FIG. 5  is an explanatory diagram illustrating an example of a configuration of a processing request queue according to the first embodiment of this invention; 
           [0019]      FIG. 6  is an explanatory diagram illustrating an example of a configuration of processing result information according to the first embodiment of this invention; 
           [0020]      FIG. 7  is an explanatory diagram illustrating an example of a processing serial number according to the first embodiment of this invention; 
           [0021]      FIG. 8  is an explanatory diagram illustrating an example of a configuration of the cluster information table according to the first embodiment of this invention; 
           [0022]      FIG. 9  is an explanatory diagram illustrating an example of a configuration of a service group information table according to the first embodiment of this invention; 
           [0023]      FIG. 10  is an explanatory diagram illustrating an example of a configuration of a service information table according to the first embodiment of this invention; 
           [0024]      FIG. 11  is an explanatory diagram illustrating an example of a processing service group ID according to the first embodiment of this invention; 
           [0025]      FIG. 12  is an explanatory diagram illustrating an example of a configuration of an added server response request message according to the first embodiment of this invention; 
           [0026]      FIG. 13  is an explanatory diagram illustrating an example of a configuration of a load quantity threshold table according to the first embodiment of this invention; 
           [0027]      FIGS. 14A and 14B  are sequence diagrams illustrating steps of processing carried out on servers in response to processing requests transmitted from a client according to the first embodiment of this invention; 
           [0028]      FIGS. 15A and 15B  are sequence diagrams illustrating steps of adding the server in the status of “ACTIVE SYSTEM” to a cluster (scale-out) according to the first embodiment of this invention; 
           [0029]      FIG. 16  is a sequence diagram illustrating steps of the service reorganization processing according to the first embodiment of this invention; 
           [0030]      FIGS. 17A and 17B  are sequence diagrams illustrating the steps of transferring the processing data to the server in the status of “ADDED SYSTEM” according to the first embodiment of this invention; 
           [0031]      FIG. 18  is a flowchart illustrating steps of reflecting processing result information to processing data according to the first embodiment of this invention; 
           [0032]      FIG. 19  is a flowchart illustrating steps of receiving a processing request message according to the first embodiment of this invention; 
           [0033]      FIG. 20  is a flowchart illustrating steps of creating the service group information table according to the first embodiment of this invention; 
           [0034]      FIG. 21  illustrates contents of the cluster information table for the existing systems after the scale-out according to the first embodiment of this invention; 
           [0035]      FIG. 22  is an explanatory diagram illustrating contents of the cluster information table for the added systems after the scale-out according to the first embodiment of this invention; 
           [0036]      FIG. 23  is an explanatory diagram illustrating contents of the service information table for the existing systems after the scale-out according to the first embodiment of this invention; 
           [0037]      FIG. 24  is an explanatory diagram illustrating contents of the service information table for the added systems after the scale-out according to the first embodiment of this invention; 
           [0038]      FIG. 25  is an explanatory diagram illustrating contents of the service group information table for the existing systems after the scale-out according to the first embodiment of this invention; 
           [0039]      FIG. 26  is an explanatory diagram illustrating contents of the service group information table for the added systems after the scale-out according to the first embodiment of this invention; 
           [0040]      FIG. 27  is an explanatory diagram illustrating contents of the processing service group ID for the existing systems after the scale-out according to the first embodiment of this invention; 
           [0041]      FIG. 28  is an explanatory diagram illustrating contents of the processing service group ID for the added systems after the scale-out according to the first embodiment of this invention; 
           [0042]      FIGS. 29A and 29B  are sequence diagrams illustrating steps of preparation processing for the scale-in according to the second embodiment of this invention; 
           [0043]      FIG. 30  is an explanatory diagram illustrating contents of the cluster information table of the server which is to be merged according to the second embodiment of this invention; 
           [0044]      FIG. 31  is an explanatory diagram illustrating contents of the cluster information table of the server which is a destination of the merge according to the second embodiment of this invention; 
           [0045]      FIG. 32  is an explanatory diagram illustrating contents of the cluster information table of the server which is to be merged according to the second embodiment of this invention; 
           [0046]      FIG. 33  is an explanatory diagram illustrating an example of a configuration of the service group information table according to the third embodiment of this invention; and 
           [0047]      FIG. 34  is an explanatory diagram illustrating an example of a configuration of the service information table according to the third embodiment of this invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0048]    A description is now given of embodiments of this invention with reference to drawings. 
       First Embodiment 
       [0049]      FIG. 1  is a block diagram illustrating an example of a configuration of a computer system according to a first embodiment of this invention. 
         [0050]    The computer system according to the first embodiment of this invention includes at least one client  101  and at least one server  110 .  FIG. 1  illustrates an example of a configuration including m clients  101  and n servers  110  where m and n denote numbers equal to or more than one. 
         [0051]    The client  101  and the server  110  are computers which can communicate with each other. The server  110  carries out processing requested by the client  101 . 
         [0052]    Each client  101  includes a processing request transmission module  102 . The processing request transmission module  102  transmits a processing request message input by a user to the server  110 . The processing request transmission module  102  is realized as a program executed on the client  101 , or a dedicated hardware device for providing the same functions. 
         [0053]    The clients  101  and the servers  110  are coupled with each other via a network  103 . The network  103  carries out multicast communication which is a transmission by a client  101  directed to a plurality of servers  110 , and transmits/receives data to/from the plurality of servers  110 . 
         [0054]    The servers  110  include servers in a status of “ACTIVE SYSTEM” and servers in a status of “STANDBY SYSTEM”. Moreover, the server  110  in the status of “ACTIVE SYSTEM” and the server  110  in the status of “STANDBY SYSTEM” have the same configuration. A server  110  in the status of “ACTIVE SYSTEM” executes processing requested by a client  101 . A server  110  in the status of “STANDBY SYSTEM”, when a server  110  in the status of “ACTIVE SYSTEM” fails, takes over requested processing from the server  110  in the status of “ACTIVE SYSTEM”. 
         [0055]    Each server  110  includes a processing data management module  111 , a cluster information management module  118 , and a service information management module  121 . The processing data management module  111 , the cluster information management module  118 , and the service information management module  121  are respectively realized as programs executed on the server  110 , or dedicated hardware devices for providing the same functions. 
         [0056]    The processing data management module  111  includes a processing request reception module  112 , a processing execution module  113 , a data transfer module  114 , processing data  115 , a processing request queue  116 , and a processing result information buffer  117 . 
         [0057]    The processing request reception module  112  receives a processing request message transmitted from a client  101 , and transmits the processing request message to the processing execution module  113 . 
         [0058]    The processing execution module  113 , based on the processing request message transmitted from the processing request reception module  112 , carries out requested processing. 
         [0059]    The data transfer module  114  transfers processing data  115  and processing result information stored in the processing result information buffer  117  to another server  110 . 
         [0060]    The processing data  115  includes data necessary for processing executed by the processing execution module  113 . Moreover, the processing data  115  is stored in a volatile storage medium (memory) for high-speed access. 
         [0061]    The processing request queue  116  stores information included in processing request messages transmitted by clients  101 . 
         [0062]    The processing result information buffer  117  temporarily stores results of processing carried out by the processing execution module  113 . 
         [0063]    The cluster information management module  118  includes a cluster information processing module  119  and a cluster information table  120 . 
         [0064]    The cluster information processing module  119  updates the cluster information table  120 , and transmits/receives information stored in the cluster information table  120 . Moreover, the cluster information processing module  119 , by transmitting/receiving a processing data transfer request to/from another server  110 , copies data between servers  110 . Further, the cluster information processing module  119  transmits/receives an added server response request message and a response to the added server response request message. 
         [0065]    The cluster information table  120  holds a multicast address to which the servers  110  belong, addresses of the respective servers  110 , and statuses of the respective servers  110 . 
         [0066]    The service information management module  121  includes a service information determination module  122 , a service information transfer module  123 , a service information table  124 , a service group information table  125 , a processing service group ID  126 , and a load quantity threshold table  127 . 
         [0067]    The service information determination module  122  detects an increase/decrease in load imposed on the server  110 . 
         [0068]    The service information transfer module  123  updates the service information table  124 , the service group information table  125 , and the processing service group ID  126 , and transmits/receives information to another server  110 . 
         [0069]    The service information table  124  stores identifiers of respective services, identifiers of tables storing data used for the respective services, and load quantities of the respective services. The service group information table  125  stores identifiers of respective service groups, identifiers of services belonging to the respective service groups, and sums of load quantities of the services belonging to the respective service groups. 
         [0070]    The processing service group ID  126  is an identifier for identifying a service group processed by the respective servers  110 . The load quantity threshold table  127  stores thresholds of load quantities serving as references for reorganizing a service group. 
         [0071]      FIG. 2  is a block diagram illustrating a hardware configuration of the server  110  according to the first embodiment of this invention. 
         [0072]    As described above, the server  110 , regardless of whether the server  110  is in the status of “ACTIVE SYSTEM” or in the status of “STANDBY SYSTEM”, has the same configuration. Each server  110  includes a CPU  21 , a display device  22 , a keyboard  23 , a mouse  24 , a network interface card (NIC)  25 , a hard disk drive  26 , and a memory  27 . The CPU  21 , the display device  22 , the keyboard  23 , the mouse  24 , the NIC  25 , the hard disk drive  26 , and the memory  27  are coupled with each other via a bus  28 . 
         [0073]    The respective servers  110  in the statuses of “ACTIVE SYSTEM” and “STANDBY SYSTEM” couple via the NIC  25  to the network  103 , and communicate with other servers  110 . 
         [0074]    The CPU  21  executes a program stored in the memory  27 . The memory  27  temporarily stores the programs executed by the CPU  21 , and data necessary for the execution of these programs. According to the first embodiment of this invention, the memory  27  is configured by a volatile medium. 
         [0075]    The memory  27  stores a processing management module  100 , an operating system  30 , the processing data management module  111 , the cluster information management module  118 , the service information management module  121 , the processing data  115 , the processing request queue  116 , the processing result information buffer  117 , the cluster information table  120 , the service information table  124 , the service group information table  125 , and the processing service group ID  126 . 
         [0076]    The processing management module  100  is a program executed by the operating system  30 . The processing data management module  111 , the cluster information management module  118 , and the service information management module  121  are programs executed by the processing management module  100 . The processing data management module  111 , the cluster information management module  118 , and the service information management module  121  execute the processing described referring to  FIG. 1 . 
         [0077]    The processing data  115  is data used by various services. The processing data  115  may be managed by an application program such as a database management system, which is different from the processing data management module  111 . In this case, the database management system is stored in the memory  27 . 
         [0078]    The processing request queue  116 , as described referring to  FIG. 1 , is an area for storing processing contents included in a processing request message  200 . The processing result information buffer  117 , as described referring to  FIG. 1 , is an area for temporarily storing a result of a requested processing. Specifically, the processing result information buffer  117 , on a server  110  in the status of “STANDBY SYSTEM”, temporarily stores a processing result transmitted by the server  110  in the status of “ACTIVE SYSTEM” until the result is reflected to the processing data  115 . 
         [0079]    The cluster information table  120 , as described referring to  FIG. 1 , stores the addresses of the servers  110  of the transmission destination by means of the multicast communication and operating statuses of the servers  110 . The service information table  124  stores, as described referring to  FIG. 1 , tables used for the respective services and load quantities. The service group information table  125 , as described referring to  FIG. 1 , stores services belonging to service groups. As described referring to  FIG. 1 , the processing service group ID  126  holds identifiers of service groups assigned to the respective servers  110 . 
         [0080]    The display device  22  displays various information such as a result of processing a service. The keyboard  23  and the mouse  24  receive an input from the user. The NIC  25  is an interface used for connection to the network  103 . The hard disk drive  26  stores processing data  115  to be stored in the memory  27  and various programs to be loaded on the memory  27 . 
         [0081]    Moreover, the hardware configuration of the client  101  is similar to the hardware configuration of the server  110  illustrated in  FIG. 2 , and the client  101  includes a CPU, a memory, an NIC, an input/output device, and the like. Moreover, the client  101  may be realized by a program executed on a virtual computer. 
         [0082]    A description is now given of an overview of processing carried out according to the first embodiment of this invention. 
         [0083]      FIG. 3  is a diagram for describing the overview of steps of reorganizing the computer system according to the first embodiment of this invention. 
         [0084]    According to the first embodiment of this invention, when a load imposed on a server  110  increases, services are separated according to a service group as a unit, thereby distributing the load to other servers  110 . The distribution of a load by separating a system in this way is referred to as scale-out. 
         [0085]    First, a description is now given of ordinary processing before execution of scale-out. 
         [0086]    When servers  110  receive a service request transmitted via multicast from a client  101  (S 3401 ), only a server  110  in the status of “ACTIVE SYSTEM” processes the received service request. The server  110 , upon completion of the processing the requested service, records the load quantity of the processed service to the service information table  124 . Each time the server  110  has processed a requested service, the server  110  determines whether the sum of the load quantities of services imposed on the server  110  which has processed the requested service has exceeded an upper limit of a load quantity threshold (S 3402 ). 
         [0087]    The server  110 , upon detecting that the sum of the load quantities has exceeded the upper limit of the load quantity threshold in the processing in S 3402 , starts the scale-out. 
         [0088]    The server  110  first classifies services so that data pieces used for resultant classified services do not mutually interfere with each other, and separates the classes of services from each other (S 3403 ). For example, in  FIG. 3 , the services are classified into services S 1  and S 2 , and services S 3  and S 4 . Moreover, when a plurality of service groups are defined, the service groups may be selected. 
         [0089]    The server  110  selects, out of the servers  110  included in the computer system, a plurality of servers  110  to be used for processing the services separated in the processing in S 3403 . On this occasion, a status of the selected servers  110  is set to “ADDED SYSTEM”. Moreover, data pieces used for the separated services (S 3  and S 4 ) are copied to the servers  110  in the status of “ADDED SYSTEM” (S 3404 ). On this occasion, the server  110  in the status of “ACTIVE SYSTEM” may further receive requests for processing services, and thus, in order to prevent the load imposed on the server  110  in the status of “ACTIVE SYSTEM” from increasing, data is copied from a server  110  in the status of “STANDBY SYSTEM”. 
         [0090]    When the separated service which uses the data has been processed while the data used for the separated services is being copied, processing result information of the process is transmitted via multicast. On this occasion, when the service is assigned to a server  110  which has received the information, the result of the processing is reflected, otherwise the received result of the processing is discarded. Moreover, when the data is being copied on the servers  110  in the status of “ADDED SYSTEM”, the result of the processing is reflected after the copy is completed. The above-mentioned processing can maintain the consistency of the data. 
         [0091]    When the copy of the data in the processing in S 3404  has been completed (S 3405 ), one of the plurality of servers  110  in the status of “ADDED SYSTEM” is set to the status of “ACTIVE SYSTEM”, and the rest thereof are set to the status of “STANDBY SYSTEM”. Then, the added server  110  in the status of “ACTIVE SYSTEM” (server  4 ) starts receiving the separated services (S 3406 ). Moreover, on the server  110  (server  1 ) from which the services have been separated, the processing for the separated services S 3  and S 4  is stopped. When the above-mentioned processing has been ended, the scale-out has been completed. 
         [0092]    A description is now given of processing after the scale-out. 
         [0093]    After the scale-out has been carried out, thereby separating the system through the processing from S 3401  to S 3406 , the client  101 , as before the scale-out, transmits a service request via multicast (S 3407 ). The service request is transmitted via multicast, and hence the client  101  is not influenced by the scale-out of the servers  110 . According to the first embodiment of this invention, all the servers  110  receive a service request, and a server  110  in the status of “ACTIVE SYSTEM”, upon receiving the assigned service request, processes the received service request, otherwise the server  110  discards the received service request. 
         [0094]    A detailed description is now given of the first embodiment of this invention. First, referring to  FIGS. 4 to 13 , a description is given of contents of tables and a queue according to the first embodiment of this invention. 
         [0095]      FIG. 4  illustrates an example of the processing request message  200  according to the first embodiment of this invention. 
         [0096]    The processing request message  200  is information transmitted when a client  101  requests a server  110  to process a service. The processing request message  200  includes a service ID  201  and a processing content  202 . 
         [0097]    The service ID  201  is an identifier for uniquely identifying a service for which the client  101  requests processing. The processing content  202  is information indicating contents of the processing of the service identified by the service ID  201 . Specifically, the processing content  202  includes parameters necessary for processing the service. 
         [0098]    The service ID  201  and the processing content  202  included in the processing request message  200  are to be registered to the processing request queue  116  of the server  110  which has received the processing request message  200 . 
         [0099]      FIG. 5  illustrates an example of a configuration of the processing request queue  116  according to the first embodiment of this invention. 
         [0100]    The processing request queue  116  stores the information included in the processing request message  200  received by the server  110 . The processing request queue  116  includes a service ID  301  and a processing content  302 . 
         [0101]    The service ID  301  includes a value of the service ID  201  included in the processing request message  200 . The processing content  302  includes values of the processing content  202  included in the processing request message  200 . 
         [0102]      FIG. 6  illustrates an example of a configuration of processing result information  400  according to the first embodiment of this invention. 
         [0103]    The processing result information  400  is a result of processing, which is performed by a server  110 , of a processing request stored in the processing request queue  116 . The processing result information  400  includes a processing serial number  401 , a service ID  404 , a table ID  402 , and a processing result  403 . 
         [0104]    The processing serial number  401  is an identifier assigned to processing carried out for a processing request stored in the processing request queue  116  for uniquely identifying the completed processing. 
         [0105]    The service ID  404  is an identifier of the processed service. The service ID  404  corresponds to the service ID  301  in the processing request queue  116 . The table ID  402  is an identifier of a table used for processing the service identified by the service ID  404 . 
         [0106]    The processing result  403  stores a result of processing the service. Specifically, the processing result  403  is a result of processing data stored in the table corresponding to the table ID  402  the data being used for the service corresponding to the service ID  404 . The processing in the service includes “UPDATING TABLE”, “PARTIALLY DELETING TABLE”, and “PARTIALLY ADDING TABLE”. 
         [0107]      FIG. 7  illustrates an example of a processing serial number  500  according to the first embodiment of this invention. 
         [0108]    The processing serial number  500  is incremented each time a server  110  processes a service, and is used to uniquely identify the processing carried out for the service. The processing serial number  500  is stored in the processing serial number  401  of the processing result information  400  illustrated in  FIG. 4 . 
         [0109]      FIG. 8  illustrates an example of a configuration of the cluster information table  120  according to the first embodiment of this invention. 
         [0110]    The cluster information table  120  holds relationships between a cluster and servers  110 . The cluster information table  120  includes a multicast address  601 , a server, address  602 , and a status  603 . 
         [0111]    The multicast address  601  is a multicast address shared in a cluster including servers  110 . This means that the plurality of servers  110  in the cluster are participating in a membership of the multicast address. 
         [0112]    The server address  602  is an address used for transmitting information to a server  110 . To the server address  602 , an address unique to each server  110  such as an IP address is assigned. 
         [0113]    The status  603  represents a status of the server  110 . Specifically, to the status, values such as “ACTIVE SYSTEM”, “STANDBY SYSTEM”, and “ADDED SYSTEM” are assigned. 
         [0114]      FIG. 9  illustrates an example of a configuration of the service group information table  125  according to the first embodiment of this invention. 
         [0115]    The service group information table  125  holds relationships between a service group and services constituting the service group. A service group is created by grouping services which use common tables for their processing so that the sums of loads imposed by respective groups of the services are equivalent. According to the first embodiment of this invention, a group of services using common tables for their processing is defined as a service group, and service groups are assigned to the respective servers, but the individual services may be directly assigned to the respective servers instead of the service groups. 
         [0116]    The service group information table  125  includes a service group ID  701 , a service ID  702 , and a load sum  703 . 
         [0117]    The service group ID  701  is an identifier for uniquely identifying a service group. The service ID  702  represents a service constituting the service group. The load sum  703  is a value obtained by summing load quantities imposed by the respective services constituting the service group. 
         [0118]      FIG. 10  illustrates an example of a configuration of the service information table  124  according to the first embodiment of this invention. 
         [0119]    The service information table  124  holds relationships between a service and tables used for the service. The service information table  124  includes a service ID  801 , a used table ID  802 , and a load quantity  803 . 
         [0120]    The service ID  801  is an identifier for uniquely identifying a service. The used table ID  802  is an identifier of a table storing data used for the service. 
         [0121]    The load quantity  803  is information on a load imposed by processing the service. The load quantity  803  is calculated according to information available from a server  110 , such as a CPU usage, a memory usage, a frequency of input/output processing, and a frequency of lock processing during the service processing. 
         [0122]      FIG. 11  illustrates an example of the processing service group ID  126  according to the first embodiment of this invention. 
         [0123]    The processing service group ID  126  is a list of service groups processed by a server  110 . 
         [0124]      FIG. 12  illustrates an example of a configuration of an added server response request message  1000  according to the first embodiment of this invention. 
         [0125]    The added server response request message  1000  includes a message type  1001  and a message content  1002 . The message type  1001  is information indicating whether the message is “RESPONSE REQUEST” or “RESPONSE”. The message content  1002  stores, when the message is the “RESPONSE” type, an address of a server  110  to which the message is transmitted. 
         [0126]      FIG. 13  illustrates an example of a configuration of the load quantity threshold table  127  according to the first embodiment of this invention. 
         [0127]    The load quantity threshold table  127  includes a threshold name  2901  and a load quantity  2902 . 
         [0128]    The threshold name  2901  represents a type of load quantity threshold such as “UPPER LIMIT” and “LOWER LIMIT”. 
         [0129]    The load quantity  2902  represents a load quantity corresponding to the threshold name  2901 . In  FIG. 13 , a load quantity  2902  of a threshold name  2901  of “UPPER LIMIT” is 80, and a load quantity  2902  of a threshold name  2901  of “LOWER LIMIT” is 10. 
         [0130]    A description is now given of steps of processing according to the first embodiment of this invention referring to  FIGS. 14A to 20 . 
         [0131]      FIGS. 14A and 14B  describe steps of processing carried out on servers  110  in response to processing requests transmitted from a client  101  according to the first embodiment of this invention. 
         [0132]      FIGS. 14A and 14B  illustrate steps in which the client  101  requests a cluster including a server  110 A and a server  110 B for processing. Moreover, in the requested processing, a service which belongs to a service group having the service group ID of SG_A, and has the service ID of S 1  is carried out. 
         [0133]    The client  101  transmits a processing request message  211 A in order to request execution of the service having the service ID of S 1  to servers  110  (S 1101 ). The processing request message  211 A includes a value “S 1 ” in the service ID  301 . A transmission destination of the processing request message  211 A is a multicast address assigned to the cluster including the server  110 A and the server  110 B. 
         [0134]    A processing request reception module  112 A of the server  110 A receives the processing request message  211 A, and transmits a processing request message to a processing execution module  113 A (S 1102 A). 
         [0135]    The processing execution module  113 A refers to the service ID  301  and the processing content  302  stored in the processing request message transmitted from the processing request reception module  112 A (S 1103 A). Further, the processing execution module  113 A, as described later referring to  FIG. 20 , when the received processing request message  200  is to be processed, executes the requested processing, otherwise the processing execution module  113 A discards the received processing request message  200 . 
         [0136]    In the example illustrated in  FIGS. 14A and 14B , to the server  11 A, the service group having the service group ID of SG_A is assigned, and the service having the service ID of S 1  belongs to the service group SG_A. Hence, the server  110 A processes the service based on the received processing request message  200 . The processing execution module  113 A, in the processing in S 1103 A, executes the service S 1  based on the processing content  302  included in the processing request message  200 , and creates processing result information  400 . 
         [0137]    The processing execution module  113 A transmits the processing result information  400  to a data transfer module  114 A. The data transfer module  114 A refers to the multicast address  601  in the cluster information table  120 , and transmits the processing result information  400  transmitted by the processing execution module  113 A via multicast. 
         [0138]    Moreover, a processing request reception module  112 B of the server  110 B, upon receiving the processing request message  200  from the client  101  as a result of the processing in S 1101 , carries out processing in the same manner as the processing in S 1102 A performed by the processing request reception module  112 A of the server  110 A (S 1102 B). The server  110 B is in the status of “STANDBY SYSTEM”, and hence the processing request message  200  received by the server  110 B is discarded in processing in S 1103 B. 
         [0139]    A data transfer module  114 B of the server  110 B receives the processing result information  400  transmitted by the data transfer module  114 A of the server  110 A as a result of the processing in S 1105  (S 1106 ). Then, the data transfer module  114 B determines, as described later referring to  FIG. 18 , whether to update processing data  115  based on the received processing result information  400 . When the processing data  115  is to be updated, the data transfer module  114 B updates the processing data  115  based on the processing result  403  included in the processing result information  400 , thereby causing the processing data  115  to coincide with processing data in the server  110 A. When the processing data  115  is not to be updated, the data transfer module  114 B discards the received processing result information  400 . 
         [0140]    In the example illustrated in  FIGS. 14A and 14B , the server  110 B is in the state of “STANDBY SYSTEM” for the server  110 A, and, in order to store the identical data, based on the processing result  403 , updates the processing data  115 . 
         [0141]    A description is now given of a case in which a processing request message  200  for requesting execution of a service having the service ID of S 3 , which does not belong to the service group having the service group ID of SG_A, is received. 
         [0142]    The client  101 , in the same manner as the processing in S 1101 , transmits the processing request message  200  (S 1107 ). On this occasion, to the service ID  301  of the transmitted processing request message  200 , “S 3 ” is set. 
         [0143]    The processing request reception module  112 A of the server  110 A receives the processing request message  200  transmitted by the client  101  (S 1108 A). On this occasion, S 3  is set to the service ID included in the processing request message  200 , and this service is not included in the service group SG_A assigned to the server  11 A. Hence, the processing execution module  113 A discards the received processing request message  200 . 
         [0144]    The processing request reception module  112 B of the server  110 B, as in S 1108 A and S 1109 A, receives the processing request message  200  (S 1108 B), and, as in S 1103 B, the data transfer module  114 B discards the received processing request message  200  (S 1109 B). 
         [0145]    A description is now given of steps of distributing a load exceeding an upper limit on a server  110  in the status of “ACTIVE SYSTEM” by carrying out the scale-out for adding a server  110  in the status of “ACTIVE SYSTEM”. 
         [0146]      FIGS. 15A and 15B  describe steps of adding the server  110  in the status of “ACTIVE SYSTEM” to a cluster (scale-out) according to the first embodiment of this invention. 
         [0147]    Before the description of the processing steps illustrated in  FIGS. 15A and 15B , a description is given of a configuration of the subject cluster. In  FIGS. 15A and 15B , a server  110 A in the status of “ACTIVE SYSTEM” and a server  110 C in the status of “STANDBY SYSTEM” are included in the same cluster, and both of the servers  110 A and  110 C process a service group SG_A. It should be noted that, on this occasion, all services processed by the server  110 A belong to the service group SG_A. 
         [0148]    A description is now given of steps of, when a load imposed on the server  110 A in the status of “ACTIVE SYSTEM” increases, carrying out reorganization such that the service group SG_A is separated to create a service group SG_B, and services included in the service group SG_B are processed by the server  110 B. 
         [0149]    A service information determination module  122 A of the server  110 A in the status of “ACTIVE SYSTEM”, upon detecting that the load imposed on the server  110 A has exceeded the predetermined threshold (upper limit), notifies a cluster information processing module  119 A of the excessive load (S 1201 ). Specifically, the service information determination module  122 A calculates the load quantity based on the CPU usage, the memory usage, an input/output processing quantity, and the like included in a system log of the server  110 A and the like, and compares the load quantity with the threshold (upper limit in this case) set to the load quantity threshold table  127 . 
         [0150]    The cluster information processing module  119 A, upon receiving the notification that the load has exceeded the upper limit from the service information determination module  122 A, transmits an added server response request message  1000  to all the servers  110  in the cluster via multicast (S 1202 ). 
         [0151]    The server  110 C, on this occasion, is in the status of “STANDBY SYSTEM”, and is to process the service group SG_A before the separation. Thus, the processing service group ID  126  of the server  110 C includes the service group SG_A. 
         [0152]    A cluster information processing module  119 C included in a cluster information management module  118 C of the server  110 C receives the added server response request message  1000  transmitted from the server  110 A via multicast (S 1203 ). The own server  110 C is not in the status of “ADDED SYSTEM”, and hence the cluster information processing module  119 C discards the message. 
         [0153]    The server  110 B has started receiving the information transmitted via multicast (S 1200 ). On this occasion, the server  110 B is not to process the service groups SG_A and SG_B. In other words, the processing service group ID  126  of the server  110 B does not include the service group SG_A. When the load exceeding the threshold is detected in S 1201 , for example, the server  110 B may be added to the membership of the multicast address, and the multicast communication may start. On this occasion, servers  110  to be added may be pooled in the computer system in advance, and when the scale-out is carried out, a server  110  may be added to the cluster. 
         [0154]    The server  110 B receives, from the server  110 A, the added server response request message  1000  transmitted via multicast (S 1204 ). A cluster information processing module  119 B transmits a response to the server  110 A, which is the source of transmission of the added server response request message  1000 , in the processing in S 1204 . On this occasion, in the response to be transmitted, an address of the own server (server  110 B) is stored. 
         [0155]    When the server  110 A receives the response transmitted from the server  110 B, the server  110 A updates, based on the received response, the cluster information table  120 , and transmits the updated information to all the servers  110  in the cluster (S 1205 ). Specifically, the server  110 A adds the address of the server  110 B included in the response to the cluster information table  120 , and sets the status of the added server  110 B to “ADDED SYSTEM”. 
         [0156]    The cluster information processing module  119  of the server  110 , upon receiving the cluster information, updates contents of the cluster information table  120  of the own server based on the transmitted cluster information so that the contents are identical to those of the cluster information table  120  of the server  110 A (S 1206 B and S 1206 C). After the update of the cluster information table  120 , the cluster information processing module  119  notifies the server  110 A of the completion of the update of the cluster information. 
         [0157]    After the server  110 A has received the notification of the completion of the cluster information update from all the servers  110  to which the cluster information has been transmitted, the server  110 A transmits a service reorganization request to a service information transfer module  123 A of the own server  110 A. 
         [0158]    On this occasion, as described later referring to  FIG. 20 , based on the service information table  124 , the services are grouped according to tables used for executing the services. On this occasion, the grouping is carried out so that the sums of load quantities of the respective service groups are as equivalent as possible. Then, new service groups are defined, and the service group information table  125  is updated. According to the first embodiment of this invention, from the service group SG_A, the service group SG_B is created, and, to the service group information table  125 , records corresponding to the service groups SG_A and SG_B are registered. 
         [0159]    When the service groups SG_A and SG_B are separately registered on the server  110 A in advance, and a difference between the load sum  703  of the service group SG_A and the load sum  703  of the service group SG_B is small, it is possible to carry out subsequent processing without creating a new service group. 
         [0160]    The service information transfer module  123 A, upon receiving the service reorganization request from the cluster information processing module  119 A, carries out the service reorganization processing (S 1207 ), and transmits a notification of completion of the reorganization to the cluster information processing module  119 A. 
         [0161]    A description is later given of the service reorganization processing in S 1207  referring to  FIG. 16 . When the service reorganization processing is carried out, in the respective processing service group IDs  126  of the servers  110 A and  110 C, SG_A and SG_B are stored, and in the processing service group ID  126  of the server  110 B, SG_B is stored. Further, the service information tables  124  of the respective servers  110  are reorganized so as to store the service IDs  801  belonging to the processing service group ID  126 . 
         [0162]    Thus, as a result of the processing in S 1207 , the service group information table  125 , the service information table  124 , and the processing service group ID  126  of the servers  110 A and  110 C are updated respectively as illustrated in  FIGS. 9 ,  10 , and  11 . Moreover, those of the server  110 B are updated respectively as illustrated in  FIGS. 26 ,  24 , and  28 . The cluster information processing module  119 A receives the notification of completion from the service information transfer module  123 A, and the addition of server  110  is completed (S 1208 ). 
         [0163]    On this occasion, the server  110 A repeats the above-mentioned processing of adding a server  110  (S 1202  to S 1208 ) as many times as the number of servers  110  to be added set in advance. The number of servers  110  to be added may be one or more. According to the first embodiment of this invention, the number of servers  110  to be added is three, and, in the following description, three servers  110  are added as servers in the status of “ADDED SYSTEM”. 
         [0164]      FIG. 16  describes steps of the service reorganization processing (S 1207 ) according to the first embodiment of this invention. 
         [0165]    The service reorganization processing, as described above, is carried out by the service information transfer module  123 A of a service information management module  121 A. 
         [0166]    The service information transfer module  123 A, based on the received service reorganization request, reorganizes the service information table  124 , the service group information table  125 , and the processing service group ID  126  (S 1301 ). 
         [0167]    Then, the service information transfer module  123 A transmits the service information table  124 , the service group information table  125 , and the processing service group ID  126  to all the servers  110  in the cluster. On this occasion, the service information transfer module  123 A may transmit the same contents, or select and transmit information necessary for update in the respective servers  110 . 
         [0168]    A service information transfer module  123 B included in a service information management module  121 B of the server  110 B receives the service information table  124 , the service group information table  125 , and the processing service group ID  126  transmitted from the service information transfer module  123 A. Then, the service information transfer module  123 B, based on the received information, updates the respective tables of the own server  110 B, and notifies the service information transfer module  123 A of the completion of the update (S 1302 B). 
         [0169]    A service information transfer module  123 C included in a service information management module  121 C of the server  110 C, in the same manner as the processing in S 1302 B, updates the respective tables of the own server  110 C, and notifies the service information transfer module  123 A of the completion of the update (S 1302 C). 
         [0170]    The service information transfer module  123 A, upon having received the notification of completion from the respective servers  110 B and  110 C, ends the service reorganization. 
         [0171]    A description is now given of steps of transferring processing data to a server  110  in the status of “ADDED SYSTEM”, and steps of transferring a processing result when a service is processed while the processing data is being transferred referring to  FIGS. 17A and 17B . 
         [0172]      FIGS. 17A and 17B  describe the steps of transferring the processing data to the server  110 B in the status of “ADDED SYSTEM” according to the first embodiment of this invention. 
         [0173]    Before the processing illustrated in  FIGS. 17A and 17B  are carried out, it is assumed that the processing of adding the server  110  described referring to  FIGS. 15A and 15B  has been completed, and the same cluster includes the server  110 A in the status of “ACTIVE SYSTEM”, the server  110 B in the status of “ADDED SYSTEM”, and the server  110 C in the status of “STANDBY SYSTEM”. In  FIGS. 17A and 17B , a description is given of a case in which, from the server  110 A or  110 C, processing data used for a service belonging to the service group SG_B is transferred. 
         [0174]    A cluster information management module  118 A of the server  110 A first transmits a processing data transfer request for requesting one of the servers  110 C in the status of “STANDBY SYSTEM” to transfer the processing data to the server  110 B. It should be noted that the server  110 A in the status of “ACTIVE SYSTEM” may transfer the processing data to the server  110 B. In this case, the server  110 A does not transmit the processing data transfer request to the server  110 C, and processing starting from S 1401  is carried out by the server  110 A. 
         [0175]    The cluster information management module  118 C of the server  110 C receives the processing data transfer request transmitted by the cluster information management module  118 A, and instructs a processing data management module  111 C of the server  110 C to transfer the processing data. 
         [0176]    The processing data management module  111 C of the server  110 C, upon receiving the instruction to transfer the processing data, starts transmitting the processing data  115  to the server  110 B (S 1401 ). Then, the status of the server  110 C is set to “TRANSFERRING PROCESSING DATA”. 
         [0177]    A processing data management module  111 B of the server  110 B starts receiving the processing data  115  transmitted from the server  110 C (S 1402 ). Then, the status of the server  110 B is set to “TRANSFERRING PROCESSING DATA”. 
         [0178]    A processing data management module  111 A of the server  110 A, upon receiving a processing request message  200  transmitted by a client  101 , in the same manner as the processing in S 1103 A of  FIG. 14A , carries out requested processing. The cluster information management module  118 A of the server  110 A transmits processing result information  400  to the servers  110  in the same cluster via multicast. 
         [0179]    When the servers  110 B and  110 C in the status of “TRANSFERRING PROCESSING DATA” receive the processing result information  400  from the server  110 A, the servers  110 B and  110 C store the received processing result information  400  in the processing result information buffer  117 , and suspend reflection of the processing result (S 1403 ). 
         [0180]    The processing data management module  111 B of the server  110 B, upon having completed the reception of the processing data transmitted from the processing data management module  111 C of the server  110 C, notifies the server  110 C of the completion of the reception of the processing data (S 1404 ). 
         [0181]    The processing data management module  111 C of the server  110 C, upon receiving the notification of the processing data reception completion from the processing data management module  111 B, ends the transmission of the processing data (S 1405 ). On this occasion, by deleting the transmitted processing data from the memory  27 , a used memory resource may be reduced. 
         [0182]    The processing data management module  111 B and the processing data management module  111 C, upon the completion of the transfer of the processing data, cancel the status of “TRANSFERRING PROCESSING DATA”. When the status of “TRANSFERRING PROCESSING DATA” is canceled, the status of the server  110 B is set to “ADDED SYSTEM”, and the status of the server  110 C is set to “STANDBY SYSTEM”. Further, in the same manner as the processing in S 1106  of  FIG. 14B , the processing data management modules  111 B and  111 C reflect the processing result information  400  stored in the processing result information buffer  117  to the processing data  115 , and notify the processing data management module  111 A of the completion of the reflection (S 1406 B, S 1406 C). 
         [0183]    The processing data management module  111 A of the server  110 A receives the notification that the processing result information has been reflected from the server  110 B in the status of “ADDED SYSTEM” and the server  110 C which is the destination of the transmission of the processing data transfer request, and thus, confirms that the processing data has been transferred, and the result of the processing has been reflected (S 1408 ). 
         [0184]    The cluster information management module  118 A of the server  110 A creates and updates cluster information tables  120  (S 1409 ). Specifically, the cluster information management module  118 A refers to the statuses  603  of the cluster information table  120 , and creates the cluster information tables  120  respectively for the servers  110  in the status of “ADDED SYSTEM” and for the servers  110  in the other statuses (statuses of the existing system). The created cluster information tables  120  are as illustrated in  FIG. 21  for the existing systems, and as illustrated in  FIG. 22  for “ADDED SYSTEM”. Moreover, when the cluster information table  120  for “ADDED SYSTEM” is created, one server  110  is set to “ACTIVE SYSTEM”, and the other servers  110  are set to “STANDBY SYSTEM”. 
         [0185]    The cluster information management module  118 A of the server  110 A, as illustrated in  FIG. 21 , updates the cluster information table  120 , and further, transfers the created cluster information tables  120  to the servers  110 B and  110 C. The server  110 B updates the cluster information table  120  as illustrated in  FIG. 22  (S 1410 B). The server  110 C updates the cluster information table  120  as illustrated in  FIG. 21  (S 1410 C). 
         [0186]    The cluster information management module  118 A of the server  110 A transmits a service reorganization request to the service information transfer module  123 A of the service information management module  121 A. 
         [0187]    The service information transfer module  123 A carries out the service reorganization processing illustrated in  FIG. 16 , and notifies the cluster information management module  118 A of the completion thereof (S 1411 ). 
         [0188]    In the service reorganization processing, the processing service group ID  126 , the service information table  124 , and the service group information table  125  are reorganized so that the server  110 A and the server  110 C process only the services belonging to the service group SG_A. 
         [0189]    Specifically, on the server  110 A and the server  110 C, to the processing service group ID  126 , SG_A is set ( FIG. 27 ), to the service information table  124 , the services belonging to the service group SG_A are set ( FIG. 23 ), and to the service group information table  125 , SG_A is set ( FIG. 25 ). 
         [0190]    It should be noted that, for the server  110 B, it is not necessary to reorganize the service group ID  126 , the service information table  124 , and the service group information table  125 . On this occasion, on the server  110 B, to the processing service group ID  126 , SG_B is set ( FIG. 28 ), to the service information table  124 , the services belonging to the service group SG_B are set ( FIG. 24 ), and to the service group information table  125 , SB_B is set ( FIG. 26 ). 
         [0191]    Finally, the cluster information management module  118 A, upon receiving a notification of the completion of the service reorganization, completes the migration of the service group SG_B to the server  110 B. 
         [0192]    A description is now given of processing after the migration of the service group SG_B has been completed. 
         [0193]    After the scale-out, base on the cluster information table  120 , the respective servers  110  operate as the servers  110  in the statuses of “ACTIVE SYSTEM” and “STANDBY SYSTEM”. When a server  110  in the status of “ACTIVE SYSTEM” receives a processing request message  200  from a client  101 , and, as in the description of the processing in S 1103 A of  FIG. 14A , a service is to be processed, the server  110  processes the service, and transfers processing result information  400  to the other servers  110  via multicast. When the server  110  in the status of “STANDBY SYSTEM” receives the processing result information  400  transmitted via multicast, and, as in the description of the processing in S 1106  of  FIG. 14B , the received processing result information  400  needs to be reflected to the processing data  115 , the server  110  updates, based on the received processing result information  400 , the processing data  115 . When the received processing result information  400  does not need to be reflected to the processing data  115 , the server  110  discards the received processing result information  400 . Moreover, the processing request message  200  received by the server  110  in the status of “ACTIVE SYSTEM” does not include a service to be processed, as in the description of S 1108 A of FIG.  14 B, the server  110  discards the received processing request message  200 . 
         [0194]      FIG. 18  is a flowchart illustrating steps of reflecting processing result information to processing data according to the first embodiment of this invention. This processing corresponds to the processing in S 1106  of  FIG. 14B . 
         [0195]    The data transfer module  114  of the server  110 , upon receiving the processing result information  400 , requests the service information transfer module  123  of the service information management module  121  to acquire the service group information table  125  (S 1601 ). By referring to the service group information table  125  acquired by the processing in S 1601 , a service group to be processed by the server  110  which has received the processing result information  400  can be identified. 
         [0196]    Then, the processing execution module  113  of the server  110  searches the service group information table  125 , thereby determining whether a service ID  404  included in the processing result information  400  coincides with the service ID  702  included in the service group information table  125  (S  1602 ). When the service ID  404  included in the processing result information  400  coincides with the service ID  702  included in the service group information table  125  (“Yes” in S 1602 ), the processing execution module  113  reflects a processing result  403  included in the processing result information  400  to the processing data  115  (S 1603 ). When the service ID  404  included in the processing result information  400  does not coincide with the service ID  702  included in the service group information table  125  (“No” in S 1602 ), the processing execution module  113  discards the received processing result information  400  (S 1604 ). 
         [0197]      FIG. 19  is a flowchart illustrating steps of receiving a processing request message according to the first embodiment of this invention. This processing corresponds to the processing in S 1103 A of  FIG. 14A . 
         [0198]    The data transfer module  114  of the server  110 , upon receiving the processing request message  200 , requests the service information transfer module  123  of the service information management module  121  to acquire the service group information table  125  (S 1701 ). By referring to the service group information table  125  acquired by the processing in S 1701 , a service group to be processed by the server  110  which has received the processing request message  200  can be identified. 
         [0199]    Then, the processing execution module  113  of the server  110  searches the service group information table  125 , and determines whether the service requested for processing is included in the service group information table  125  (S 1702 ). When the services requested for processing is included in the service group information table  125  (“Yes” in S 1702 ), the processing execution module  113 , based on the received processing request message  200 , executes the requested processing (S 1703 ). When the services requested for processing is not included in the service group information table  125  (“No” in S 1702 ), the processing execution module  113  discards the received processing request message  200  (S 1704 ). 
         [0200]      FIG. 20  is a flowchart illustrating steps of creating the service group information table  125  according to the first embodiment of this invention. This processing corresponds to the processing in S 1201  of  FIG. 15A . 
         [0201]    The service information determination module  122  of the server  110 , upon detecting that the load imposed on a server  110  has exceeded a threshold, executes processing of creating a service group information table  125 . First, the service information determination module  122  groups service IDs having the same value of the used table IDs  802  in the service information table  124  (S 1801 ). The processing in S 1801  can divide the services into the plurality of groups of services using tables which interfere with each other, that is, using common tables. 
         [0202]    Then, the service information determination module  122  of the server  110  creates as many service group IDs  701  as the number of the newly created service groups. The number of service group IDs  701  to be created is set in advance. Further, the services grouped by the processing in S 1801  are distributed so that the sums of loads are made even as much as possible between the respective service groups (S 1802 ). For example, groups of services are distributed in a descending order of the sum of load quantities to a service group having a smaller load sum  703 . In this way, the service group information table  125  is created so that the tables used by the services do not interfere with each other, and the respective load sums  703  are more even. 
         [0203]      FIG. 21  illustrates contents of the cluster information table  120  for the existing systems after the scale-out according to the first embodiment of this invention. 
         [0204]    The configuration of the cluster information table  120  illustrated in  FIG. 21  is the same as that of the cluster information table  120  illustrated in  FIG. 8 . Moreover, data stored in the cluster information table  120  illustrated in  FIG. 21  is as described in the processing in S 1409  of  FIG. 17B . 
         [0205]      FIG. 22  illustrates contents of the cluster information table  120  for the added systems after the scale-out according to the first embodiment of this invention. 
         [0206]    The configuration of the cluster information table  120  illustrated in  FIG. 22  is the same as that of the cluster information table  120  illustrated in  FIG. 8 . Moreover, data stored in the cluster information table  120  illustrated in  FIG. 22  is as described in the processing in S 1409  of  FIG. 17B . 
         [0207]      FIG. 23  illustrates contents of the service information table  124  for the existing systems after the scale-out according to the first embodiment of this invention. 
         [0208]    The configuration of the service information table  124  illustrated in  FIG. 23  is the same as that of the service information table  124  illustrated in  FIG. 10 . Moreover, data stored in the service information table  124  illustrated in  FIG. 23  is as described in the processing in S 1411  of  FIG. 17B . 
         [0209]      FIG. 24  illustrates contents of the service information table  124  for the added systems after the scale-out according to the first embodiment of this invention. 
         [0210]    The configuration of the service information table  124  illustrated in  FIG. 24  is the same as that of the service information table  124  illustrated in  FIG. 10 . Moreover, data stored in the service information table  124  illustrated in  FIG. 24  is as described in the processing in S 1411  of  FIG. 17B . 
         [0211]      FIG. 25  illustrates contents of the service group information table  125  for the existing systems after the scale-out according to the first embodiment of this invention. 
         [0212]    The configuration of the service group information table  125  illustrated in  FIG. 25  is the same as that of the service group information table  125  illustrated in  FIG. 9 . Moreover, data stored in the service group information table  125  illustrated in  FIG. 25  is as described in the processing in S 1411  of  FIG. 17B . 
         [0213]      FIG. 26  illustrates contents of the service group information table  125  for the added systems after the scale-out according to the first embodiment of this invention. 
         [0214]    The configuration of the service group information table  125  illustrated in  FIG. 26  is the same as that of the service group information table  125  illustrated in  FIG. 9 . Moreover, data stored in the service group information table  125  illustrated in  FIG. 26  is as described in the processing in S 1411  of  FIG. 17B . 
         [0215]      FIG. 27  illustrates contents of the processing service group ID  126  for the existing systems after the scale-out according to the first embodiment of this invention. 
         [0216]    The configuration of the processing service group ID  126  illustrated in  FIG. 27  is the same as that of the processing service group ID  126  illustrated in  FIG. 27 . Moreover, data stored in the processing service group ID  126  illustrated in  FIG. 27  is as described in the processing in S 1411  of  FIG. 17B . 
         [0217]      FIG. 28  illustrates contents of the processing service group ID  126  for the added systems after the scale-out according to the first embodiment of this invention. 
         [0218]    The configuration of the processing service group ID  126  illustrated in  FIG. 28  is the same as that of the processing service group ID  126  illustrated in  FIG. 11 . Moreover, data stored in the processing service group ID  126  illustrated in  FIG. 28  is as described in the processing in S 1411  of  FIG. 17B . 
         [0219]    According to the first embodiment of this invention, by separating a server  110  for processing the services while held data is taken over by the server  110 , the load can be distributed. 
         [0220]    Moreover, according to the first embodiment of this invention, by limiting the quantity of data to be copied at the time of taking over the data to thereby restrain the load imposed upon servers  110  from increasing, services requested by clients  101  can be processed while the real time property is maintained. 
         [0221]    Further, according to the first embodiment of this invention, because a request for processing a service is transmitted from a client  101  via multicast, even when servers  110  are reorganized, without reorganizing settings of the client  101 , the request for processing the service can be maintained. 
       Second Embodiment 
       [0222]    While, according the first embodiment of this invention, a load is distributed by distributing services to be carried out on a server  110  having the load quantity exceeding a predetermined upper limit to other servers  110 , according to the second embodiment of this invention, by merging servers  110  having small loads, computer resources are efficiently utilized. The merge of the servers  110  in this way is referred to as scale-in. 
         [0223]    It should be noted that, in the second embodiment, a description of parts and components common to the first embodiment is properly omitted. 
         [0224]    The system configuration of the second embodiment is the same as that of the first embodiment illustrated in  FIGS. 1 and 2 . Moreover, the configurations of the tables and the messages are the same as those of the first embodiment illustrated in  FIGS. 4 to 12 . 
         [0225]    A description is now given of processing steps according to the second embodiment. Steps of carrying out a service by the server  110  based on a processing request transmitted from a client  101  are the same as the steps illustrated in  FIGS. 14A and 14B  according to the first embodiment. 
         [0226]    On this occasion, before the description is given of the processing steps, a description is given of a configuration of a computer system according to the second embodiment, and, in the computer system, a server  110 D in the status of “ACTIVE SYSTEM” and a server  110 F in the status of “STANDBY SYSTEM” are included in the same cluster and process a service group SG_A. Moreover, a server  110 E in the status of “ACTIVE SYSTEM” which receives the multicast communication at the same multicast address is included the computer system, and processes a service group SG_B. A description is now given of steps of, when the load imposed on the server  110 D decreases, migrating a processing subject of the service group SG_A to the server  110 E with reference to  FIGS. 29A and 29B . 
         [0227]      FIGS. 29A and 29B  describe steps of preparation processing for the scale-in according to the second embodiment of this invention. 
         [0228]    A service information determination module  122 D of the server  110 D in the status of “ACTIVE SYSTEM”, upon detecting that the load imposed on the server  110 D has exceeded the predetermined threshold (lower limit), notifies a cluster information processing module  119 D of the excessive load (S 30101 ). Specifically, the service information determination module  122 D calculates the load quantity based on the CPU usage, the memory usage, an input/output processing quantity, and the like included in a system log of the server  110 D and the like, and compares the load quantity with the threshold (lower limit in this case) set to the load quantity threshold table  127 . 
         [0229]    The cluster information processing module  119 D, upon receiving, from the service information determination module  122 D, a notification that the load quantity has fallen below the lower limit, transmits a mergeability response request message via multicast (S 30102 ). The mergeability response request message has the same configuration as the added server response request message  1000  of  FIG. 12 , and the message type  1001  is “MERGEABILITY RESPONSE REQUEST”, and, in the message content  1002 , the address of the own server (server  110 D) is stored. 
         [0230]    The server  110 F is in the status of “STANDBY SYSTEM”, and is to process the service group SG_A. Thus, the processing service group ID  126  of the server  110 F includes the service group SG_A. 
         [0231]    A cluster information processing module  119 F included in the cluster information management module  118 F of the server  110 F receives the mergeability response request message transmitted from the server  110 D via multicast (S 30103 ). The own server is in the status of “STANDBY SYSTEM”, and hence the cluster information processing module  119 F discards the mergeability response request message. 
         [0232]    Moreover, the server  110 E receives the same multicast message, and is responsible for processing the service group SG_B. The processing service group ID  126  of the server  110 E includes the service group SG_B, but does not include the service group SG_A. 
         [0233]    When the cluster information processing module  119 E of the server  110 E receives the mergeability response request message transmitted via multicast from the server  110 D, the own server  110  is in the status of “ACTIVE SERVER”, and hence the cluster information processing module  119 E transmits a response to the server  110 D which has transmitted the mergeability response request message (S 30104 ). This response has the same configuration as the added server response request message  1000  of  FIG. 12 , and the message type  1001  is set to “MERGEABLE STATUS RESPONSE”, and, in the message content  1002 , the load sum of all the services of the own server  110  and the cluster information table  120 E are stored. The cluster information table  120 E to be stored is illustrated in  FIG. 31 . 
         [0234]      FIG. 31  illustrates contents of the cluster information table  120  of the server  110 E which is the destination of the merge according to the second embodiment of this invention. The configuration of the cluster information table  120  illustrated in  FIG. 31  is the same as that of the cluster information table  120  according to the first embodiment illustrated in  FIG. 8 . 
         [0235]    The server  110 D receives the response transmitted by the server  110 E. When the server  110 D receives the same response from a plurality of servers  110 , the server  110 D selects a server  110  which has the smallest load sum stored in the response. On this occasion, it is assumed that the server  110 D selects the response of the server  110 E, and a description is given of subsequent steps. 
         [0236]    The server  110 D, based on the cluster information table  120 E included in the response, updates the cluster information table  120 D of the server  110 D, and transmits the updated cluster information table  120 D to the multicast address (S 30105 ). Specifically, to the cluster information table  120 D, all server addresses  602  and statuses  603  included in the cluster information table  120 E are added. Moreover, the status of the added server  110 E is updated to “ADDED SYSTEM FOR SG_A AND ACTIVE SYSTEM FOR SG_B”, and the status of the other added servers  110  is updated to “ADDED SYSTEM FOR SG_A AND STANDBY SYSTEM FOR SG_B”. The cluster information table  120 D before the update is illustrated in  FIG. 30 , and the cluster information table  120 E after the update is illustrated in  FIG. 32   
         [0237]      FIG. 30  illustrates contents of the cluster information table  120 D of the server  110 D which is to be merged according to the second embodiment of this invention. The configuration of the cluster information table  120  illustrated in  FIG. 30  is the same as that of the cluster information table  120  according to the first embodiment illustrated in  FIG. 8 . 
         [0238]      FIG. 32  illustrates contents of the cluster information table  120 E of the server  110 E which is to be merged according to the second embodiment of this invention. The configuration of the cluster information table  120  illustrated in  FIG. 32  is the same as that of the cluster information table  120  according to the first embodiment illustrated in  FIG. 8 . 
         [0239]    The status of “ADDED SYSTEM FOR SG_A AND ACTIVE SYSTEM FOR SG_B” implies that the subject of processing the service group SG_A is shifting to this server, and that this server is the subject of processing the service group SG_B, for which the status of this server is “ACTIVE SYSTEM”. Moreover, the status of “ADDED SYSTEM FOR SG_A AND STANDBY SYSTEM FOR SG_B” implies that the subject of processing the service group SG_A is shifting to this server, and that this server  110  is the subject of processing the service group SG_B, for which the status of this server is “STANDBY SYSTEM”. 
         [0240]    The cluster information processing module  119  of the server  110 , which has received the updated cluster information table  120 D, updates the cluster information table  120  of the own server  110  so that the contents are the same as contents of the received cluster information table  120 D (S 30106 E, S 30106 F). After the update, the cluster information processing module  119  notifies the server  110 D of the completion of the cluster information update. 
         [0241]    After the server  110 D has received the notification of the completion of the cluster information update from all the servers  110  to which the cluster information has been transmitted, the server  110 D transmits a service reorganization request to the service information transfer module  123 D. 
         [0242]    The service information transfer module  123 D receives the service reorganization request from the cluster information processing module  119 D, and carries out the service reorganization processing (S 30107 ). After the completion of the service reorganization processing, the service information transfer module  123 D notifies the cluster information processing module  119 D of the completion. On this occasion, in the service reorganization processing of S 30107 , based on the processing described referring to  FIG. 16 , the respective processing service group IDs  901  of the servers  110 D,  110 E, and  110 F are changed to SG_A and SG_B. 
         [0243]    The cluster information processing module  119 D, upon receiving the notification that the service reorganization processing has been completed from the service information transfer module  123 D, completes the merge preparation processing (S 30108 ). 
         [0244]    A description is now given of processing of actually merging service groups after the merge has been prepared. Though the merge processing has the same steps as those in  FIGS. 17A and 17B , servers  110  constituting the cluster are different. In this case, in the same cluster, the server  110 D in the status of “ACTIVE SYSTEM”, the server  110 E in the status of “ADDED SYSTEM FOR SG_A AND ACTIVE SYSTEM FOR SG_B”, and the server  110 F in the status of “STANDBY SYSTEM” are included, and, from the server  110 D or  110 F to the server  110 E, processing data relating to the service group SG_A is transferred. Specifically, the differences in processing are as follows. 
         [0245]    The cluster information management module  118 D of the server  110 D, in the processing in S 1409 , updates the cluster information table  120 D as described below. The cluster information management module  118 D refers to the statuses  603  of the cluster information table  120 D, and creates a table including only the entry of “ADDED SYSTEM FOR SG_A AND ACTIVE SYSTEM FOR SG_B”, or “ADDED SYSTEM FOR SG_A AND STANDBY SYSTEM FOR SG_B”. Then, one of the servers  110  is set to the status of “ACTIVE SYSTEM”, and the other servers  110  are set to the status of “STANDBY SYSTEM”. For example, the server  110  in the status of “ADDED SYSTEM FOR SG_A AND ACTIVE SYSTEM FOR SG_B” is set to the status of “ACTIVE SYSTEM”, and the servers  110  in the status of “ADDED SYSTEM FOR SG_A AND STANDBY SYSTEM FOR SG_B” are set to the status of “STANDBY SYSTEM”. When the status  603  in the cluster information table  120 D is “ADDED SYSTEM FOR SG_A AND ACTIVE SYSTEM FOR SG_B”, and a processing request for a service has been received from a client  101 , only a service belonging to the service group SG_B is processed. 
         [0246]    Moreover, the service information transfer module  123 D carries out the service reorganization processing illustrated in  FIG. 16 , thereby notifying of the completion. On this occasion, in the service reorganization processing, the service information transfer module  123 D sets the respective processing service group IDs  126  of the servers  110 D and  110 F to “NONE”, and changes the service information table  124  to a vacant matrix. Moreover, on the server  110 E, the reorganization is carried out such that, in the processing service group ID  126 , SG_A and SG_B are stored, and in the service information table  124 , the services belonging to the service groups SG_A and SG_B are stored. As a result of the above-mentioned processing, the services belonging to the service group SG_A processed by the server  110 D have been migrated to the server  110 E. 
         [0247]    According to the second embodiment of this invention, when a load imposed on servers  110  falls below a predetermined lower limit, by carrying out the scale-in to thereby remove the unnecessary servers  110 , limited computer resources can be efficiently used. 
         [0248]    Moreover, according to the second embodiment of this invention, a request for processing a service is transmitted from a client  101  via multicast, and hence, as in the first embodiment, even when servers  110  are reorganized, without reorganizing settings of the client  101 , the request for processing the service can be maintained. 
         [0249]    Moreover, by applying the second embodiment of this invention along with the first embodiment to a computer system, reorganization can be dynamically carried out according to loads on servers. 
       Third Embodiment 
       [0250]    According to a third embodiment of this invention, reliability levels are set in advance to respective services, and, based on the reliability levels, the number of servers to be increased/decreased is determined when a scale-out or scale-in is carried out. 
         [0251]    It should be noted that, in the third embodiment, a description of parts and components common to the first and second embodiments is properly omitted. 
         [0252]    The system organization of the third embodiment is the same as that of the first embodiment illustrated in  FIGS. 1 and 2 . 
         [0253]    A description is now given of the third embodiment mainly emphasizing points different from the first embodiment. 
         [0254]      FIG. 33  illustrates an example of a configuration of the service group information table  125  according to the third embodiment of this invention. 
         [0255]    The service group information table  125  includes, in addition to the configuration of the first embodiment, a maximum reliability level  2704 . 
         [0256]    The maximum reliability level  2704  stores the maximum value of reliability levels set to services belonging to a service group identified by the service group ID  701 . In other words, the maximum value is the number of servers  110  necessary for the scale-out, which is set for each service group. 
         [0257]      FIG. 34  illustrates an example of a configuration of the service information table  124  according to the third embodiment of this invention. 
         [0258]    The service group information table  124  includes, in addition to the configuration of the first embodiment, a reliability level  2804 . A service having the reliability level  2804  of “1” requires only one server  110  in the status of “ACTIVE SYSTEM”, a service having the reliability level  2804  of “2” requires one server  110  in the status of “ACTIVE SYSTEM” and one server  110  in the status of “STANDBY SYSTEM”, and a service having the reliability level  2804  of “3” requires one server  110  in the status of “ACTIVE SYSTEM” and two servers  110  in the status of “STANDBY SYSTEM”. 
         [0259]    A description is now given of processing to be carried out for scaling out the system according to the reliability levels  2804  when a load imposed on a server  110  has exceeded the upper limit. 
         [0260]    First, in the processing in S 1201  of  FIG. 15A , services are grouped so as to make the maximum reliability level  2704  of a resulting service group as small as possible. By making the maximum reliability level  2704 , the number of servers  110  to be added can be reduced. 
         [0261]    As an example of a method for making the maximum reliability level  2704  smaller, when the grouped services are distributed to a plurality of service group information tables  125  in the processing in S 1802  of  FIG. 20 , and the load sums of the respective service groups are the same, the grouped services are respectively distributed to a service group having the maximum reliability level  2704  equal to or more than the maximum value of the reliability levels of the grouped services. 
         [0262]    Further, while the number of servers  110  to be added in the processing in S 1208  of  FIG. 12  is set in advance according to the first embodiment, the number of the servers  110  to be added according to the third embodiment is the smallest value of the maximum reliability levels  2704  in the service group information table  125  created in the processing in S  1201 . According to the third embodiment, in the service group information table  125  of  FIG. 33 , an entry having the service group ID  701  of SG_B has the smallest value “2” in the maximum reliability level  2704 . Thus, the number of servers  110  to be added is two. 
         [0263]    Subsequently, in the scale out processing, the system is scaled out such that services of the service group having the smallest maximum reliability level  2704  is processed by the added servers  110 . 
         [0264]    A description is now given of points different from the second embodiment. 
         [0265]    When the data is transferred, to a response to a mergeability response request message, the largest value of the maximum reliability levels  2704  in the service group information table  125  of the own server  110  is added. The server  110 D which is a source of the transmission of the mergeability response request message determines a destination of the merge, then compares the maximum reliability levels of the own server  110 D and the server of the destination of the merge with each other, and sets the server  110  having the smaller value of the maximum reliability level  2704  as the source of transfer of the data. As a result of this processing, the services and the data are merged to the server  110  having the larger value of the maximum reliability level  2704 . 
         [0266]    According to the third embodiment of this invention, based on the reliability necessary for each service, the number of servers to be added or removed is determined, and hence it is possible to reorganize the computer system based on, in addition to the load status, the reliabilities of the services to be processed. 
         [0267]    While the present invention has been described in detail and pictorially in the accompanying drawings, the present invention is not limited to such detail but covers various obvious modifications and equivalent arrangements, which fall within the purview of the appended claims.