Abstract:
When a client-server system that adopts a Web service featuring dynamic connection among different systems is constructed, an existing priority control device therein disconnects communication with lower priority, at the time of server overload that continues for several hours. Thus, the availability of the system is reduced. A client-server Web service system includes a unit for interpreting communication protocols at a protocol layer 4 used in the system, a unit for receiving requests transmitted from clients to a server, for buffering, a unit for analyzing the protocol type, the destination, and the communication contents of each of the requests, a unit for converting the result of the analysis into a priority, and a unit for transmitting the buffered requests to the server based on the priority and then transmitting to the clients responses from the server.

Description:
INCORPORATION BY REFERENCE 
   This application claims priority based on a Japanese patent application, No. 2004-204059 filed on Jul. 12, 2004, the entire contents of which are incorporated herein by reference. 
   BACKGROUND OF THE INVENTION 
   The present invention relates to a technology that enables high availability of a client-server system at the time of overload, by priority control processing. 
   In recent years, client-server systems using Web services have begun to be constructed for use in business transactions between companies that require high availability. 
   The web service is a new form of application system: by connecting a server to clients of separately-constructed different systems, the web service is constructed. In other order placement and acceptance systems in companies except for the system built as the web service, for example, due to a difference in the communication protocol or the notational method for the contents of communication, dynamic connection to a new trading partner could not be established, so that order placement and acceptance operations could not be automated. The web service solves the problem described above: the web service does not define the type of a communication procedure (which will be hereinafter referred to as a protocol type) at the protocol layer 4 between the server and each of the clients connected through the TCP/IP network, assumes and permits use of a plurality of protocols such as use of both of the HTTP protocol and the SMTP protocol, shares the format for the contents of communication in the XML (extensible Markup Language), and releases the notational method on the Internet, thereby ensuring dynamic connectivity among different systems. 
   On the other hand, in conventional client-server systems, there is known a technology for installing a priority control device between the server and the clients. This technology is disclosed in U.S. Pat. No. 6,415,313, for example. By installing the priority control device, even at the time of server overload, the server can respond to a request from an important client. The request from a client will be referred to as a request message. The priority control device prioritizes request messages from clients, causes the request messages with lower priorities to be waited for transmission, and relays the request messages to the server sequentially in the order of the priorities of the request messages. 
   SUMMARY OF THE INVENTION 
   When a client-server system using the Web service that dynamically connects different systems is constructed, the priority control device described in the above-mentioned U.S. Pat. No. 6,415,313 causes a problem: when server overload continues for several hours, communication with lower priority is disconnected, so that system availability is reduced. 
   Specifically, since relay processing on communication between the clients and the server is managed for each IP packet, priority control can be performed only within the delay time of several minutes allowed for each IP packet. More specifically, the priority control device analyzes a request message from a client and determines the priority of the request message. Then, the priority control device prioritize IP packets constituting the request message, and transmits IP packets with higher priority to the server, with the IP packets with lower priority waited for transmission. In the TCP/IP network, if a response to an IP packet is delayed by about several minutes, the clients or the server determines that there is no response to the IP packet and disconnects communication. Thus, at the time of server overload that continues for several hours, communication of a request message with lower priority is disconnected. 
   Accordingly, a more improved priority control device has been demanded. 
   In some of the protocols such as the SMTP protocol used for electronic mails, once a request message has been received and a receive procedure for protocol processing using the SMTP protocol has been completed (which will be hereinafter referred to as terminated), no problem associated with the protocol is generated even if several hours are used for waiting for a response to the request message. 
   The present invention provides a technique for receiving request messages from clients respectively using a plurality of protocols employed in the Web service or the like, and then temporarily terminating protocol processing on the request messages. 
   The present invention further provides a technique for prioritizing request messages from a plurality of clients collectively, irrespective of protocols used for the request messages, and scheduling relaying of the request messages within the times allowable for the respective protocol types. 
   According to the present invention, the conventional problem of communication disconnection due to a delay in the response to an IP packet is solved. 
   Further, according to the present invention, priority control considering the characteristic of each protocol becomes possible: under the priority control according to the present invention, when request messages using the SMTP protocol and the HTTP protocol, sent from a plurality of clients are received, for example, request messages sent with the SMTP protocol are relayed to the server after several hours of server overload is finished. 
   In the client-server system of the present invention, which employs the Web service that dynamically connects different systems, improvement in the availability of the system at the time of server high load becomes possible. 
   These and other benefits are described throughout the present specification. A further understanding of the nature and advantages of the invention may be realized by reference to the remaining portions of the specification and the attached drawings. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a diagram schematically showing a configuration and an operation of a network system that uses a priority control device  3  according to an embodiment of the present invention; 
       FIG. 2  is a diagram showing a configuration of the priority control device  3 ; 
       FIG. 3  is a table showing a configuration of a request buffer  13  in the priority control device  3  in the embodiment of the present invention; 
       FIG. 4  is a table showing a configuration of a delivery rule table  14  in the priority control device  3  in the embodiment of the present invention; 
       FIG. 5  is a flowchart showing a processing flow of a request receiving unit  10  implemented by the priority control device  3 ; 
       FIG. 6  is a flowchart showing a processing flow of a sorting unit  11  implemented by the priority control device  3 ; 
       FIG. 7  is a flowchart showing a processing flow of a request processing unit  15  implemented by the priority control device  3 ; and 
       FIG. 8  is a diagram showing a flow of messages transmitted and received between a client  1  and the priority control device  3 . 
   

   DETAILED DESCRIPTION OF THE EMBODIMENTS 
   An embodiment of the present invention will be described below with reference to the appended drawings. 
     FIG. 1  shows a schematic configuration of a client-server system to which a priority control device in this embodiment is applied. 
   Client terminals  1   a  and  1   b  are connected to a priority control device  3  through an IP network  2  for the Internet and the like. Each client terminal will be hereinafter referred to as a client. The priority control device  3  is connected to Web service server devices  5   a  and  5   b  through an IP network  4 . 
   In this embodiment, it is assumed that the client  1   a  transmits a request message  20   a  to the Web service server device  5   a  through the IP network  2 , priority control device  3 , and IP network  4 , and receives a response from the Web service server device  5   a  through the IP network  4 , priority control device  3 , and IP network  2 . It is also assumed that the client  1   b  uses the SMTP protocol as the protocol and performs communication, using a request message  20   b  in the same manner as the client  1   b.    
   A following description will be given about the request message  20   a  transmitted from the client  1   a  to the Web service server device  5   a  and the request message  20   b  transmitted from the client  1   b  to the Web service server device  5   b , for convenience. In this system, either of the request messages  20   a  and  20   b  may be employed, and any protocol other than the ones shown in this embodiment may also be employed. 
   The request message  20   a  uses the HTTP protocol as the protocol, and is constituted from an HTTP header  21   a  and a request data substance  22   a . The HTTP header  21   a  stores information required for communication with the HTTP protocol. In the request data substance  22   a , the content requested for processing by the server is written in the XML. Likewise, the request message  20   b  uses the SMTP protocol as the protocol, and is constituted from an SMTP header  21   b  and a request data substance  22   b . The SMTP header  21   b  stores information required for communication with the SMTP protocol. In the request data substance  22   b , the content requested for processing by the server is written in the XML. 
   The priority control device  3  is constituted from a request receiving unit  10 , a sorting unit  11 , a request buffer  13 , a delivery rule table  14 , and a request processing unit  15 . 
     FIG. 2  shows a hardware configuration of an information processing device implementing the priority control device  3 . The information processing device implementing the priority control device  3  is constituted from a processor  100 , a storage device  101 , an input/output circuit interface  106  for establishing connection to the IP networks  2  and  4 , and internal communication lines such as a bus  105  for connection of these devices. The storage device  101  includes regions of a program memory  102  and the request buffer  13 , and stores the delivery rule table  14 . Various programs for implementing processing units in the priority control device  3  by the processor  100  are recorded in the program memory  102 . Request messages received from the clients  1   a  and  1   b  and to be relayed to the Web service server devices  5   a  and  5   b  are stored in the request buffer  13 . The storage device  101  is constituted from a semiconductor memory device or an external memory device such as a hard disk. 
   The programs described above may be stored in the storage device  101  in advance. Alternatively, the programs may be installed in the storage device  101  through a detachable storage medium or a communication medium not shown, as necessary. The communication medium includes a network or a digital signal or a carrier wave which propagates each of the programs. 
   Though the priority control device  3  may include an input device and a display device for enabling data input by a system manager, these devices are omitted in  FIG. 2 . 
     FIG. 3  shows a configuration of the request buffer  13  in the priority control device  3 . 
   The request buffer  13  includes entries  116 - 1 ,  116 - 2 , and  116 - 3 , and so on for respective received request messages. Each entry is constituted from a data identifier  110 , received data  111 , a protocol type  112 , a received time  113 , an allowable delay time  114 , and a used delivery rule identifier  115 . 
   A unique identifier for identifying each entry is given to the data identifier  110 . The request message  20   a  or  20   b  transmitted from the client  1   a  or  1   b , respectively is stored in the received data  111 . The protocol used for the request message  20   a  or  20   b , such as the HTTP protocol or the SMTP protocol is stored in the protocol type  112 . In the received time  113 , the time at which the priority control device  3  has received the request message  20   a  or  20   b  is stored. In the allowable delay time  114 , the allowable latest time for transmission to the Web service server device  5   a  or  5   b  obtained from the result of analysis of the request message  20   a  or  20   b  is recorded. The analysis is performed by referring to the delivery rule table  14  and obtaining an appropriate rule used for priority control. In the used delivery rule identifier  115 , a delivery rule identifier  120  on the delivery rule table  14  for identifying the entry used for calculation of the allowable delay time  114  is recorded. 
     FIG. 4  shows a configuration of the delivery rule table  14  provided for the priority control device  3 . 
   The delivery rule table  14  includes entries  126 - 1 ,  126 - 2 , or  126 - 3  for each protocol, for example. Each entry is constituted from the delivery rule identifier  120 , a priority keyword  121 , a priority protocol type  122 , a maximum allowable delay time  123 , an allowable server load  124 , and delivery destination server addresses  125 . 
   The delivery rule table  14  stores priority control rules used for relaying the request message  20   a  and  20   b  received by the priority control device  3 . The delivery rule table  14  is set by the system manager. 
   A unique identifier for identifying each entry is given to the delivery rule identifier  120 . The priority keyword  121  stores a keyword included in the request data substance  22   a  or  22   b  for which priority should be given. The priority protocol type  122  stores the protocol used for the request message  20   a  or  20   b  for which priority should be given. The maximum allowable delay time  123  stores the maximum delay time allowable when the request message  20   a  or  20   b  that has been determined to include the keyword matching the priority keyword  121  and the protocol matching the priority protocol type  122  is transmitted to the Web service server device. The allowable server load  124  stores the maximum load allowable by the Web service server device  5   a  or  5   b  when the request message  20   a  or  20   b  is transmitted to the Web service server device  5   a  or  5   b . Incidentally, for calculation of the allowable server load  124 , a parameter such as the CPU usage ratio, the number of connections, or the average response time, with which loads can be measured, is used. One or more arbitrary parameters may be combined for use if they can be obtained by the priority control device  3 . The delivery destination addresses  125  stores an IP address for the Web service server device  5   a  or  5   b  to which the request message  20   a  or  20   b  should be transmitted. The IP address for the Web service server device  5   a  or  5   b  is an identifier on the IP network  4 . One IP address or a plurality of IP addresses may be stored in the delivery destination addresses  125  for each Web service server device. When the plurality of IP addresses are used, one of the IP addresses that satisfies the criteria for the allowable server load  124  is finally employed, through an appropriate algorithm such as a round robin algorithm. 
   An operation of the request receiving unit  10  will be described, using a flowchart shown in  FIG. 5 . 
   The request receiving unit  10  of the priority control device  3  receives the request message  20   a  or  20   b  from the client  1   a  or  1   b , respectively, at step  130 . Then, the request receiving unit  10  analyzes the HTTP header  21   a  or SMTP header  21   b  to determine the protocol for the request message  20   a  or  20   b  at step  131 , and performs receive processing according to the protocol at step  132  or  133 . Since specifications for the steps for the receive processing are strictly determined for each protocol, only an overview of the receive processing steps for each protocol will be described. 
   In the HTTP protocol, for example, a request for a TCP/IP connection is transmitted from the client  1   a  to the priority control device  3 . Then, after the connection is established, the TCP/IP connection is held from transmission of the request message  20   a  to the priority control device  3  until return of a response for the request message  20   a  from the priority control device  3  to the client  1   a.    
   On the other hand, in the SMTP protocol, for example, a request for the TCP/IP connection is transmitted from the client  1   b  to the priority control device  3 . Then, after the connection is established, a command shorter than the request message  20   a , transmitter information and transmission destination information included in the SMTP header  21   b , the request data substance  22   b , and the like are transmitted to the priority control device  3  one by one. The priority control device  3  notifies to the client  1   b  that these data and the command could be received. Then, the priority control device  3  disconnects the TCP/IP connection before returning the response for the request message  20   b  to the client  1   b.    
   If other protocol except for the HTTP protocol and the SMTP protocol needs to be used, associated receive processing may be added and installed. 
   As pointed out in the above-mentioned example, if the TCP/IP connection can be disconnected for each communication protocol, by temporarily disconnecting the TCP/IP connection, priority control over a longer period than with the prior art becomes possible. 
   An operation of the sorting unit  11  that prioritizes request messages will be described with reference to a flowchart shown in  FIG. 6 . 
   The sorting unit  11  of the priority control device  3  stores the request messages  20   a  and  20   b  received by the request receiving unit  10  in the request buffer  13 . Since the request data substances  22   a  and  22   b  of the received request messages  20   a  and  20   b  are expressed in the XML, the sorting unit  11  performs syntactic analysis according to the description format of the XML so as to utilize semantic information such as XML element names and XML element values as well, at step  140 . Incidentally, if the priority keyword  121  is not set in the delivery rule table  14 , this processing may be omitted. 
   Next, the sorting unit  11  determines whether the request messages  20   a  and  20   b  match the condition in the entries  126 - 1 ,  126 - 2 ,  126 - 3 , or so on, from top to bottom in the delivery rule table  14 , and selects the delivery rules governing the conditions the request messages  20   a  and  20   b  have matched first, at step  141 . Prioritization of the delivery rules in the delivery rule table  14  may be arbitrarily performed by the system manager. The prioritization may be set in the order of importance of responses to requests, for example. Further, for match determination, it is required that the priority keyword  121  be included in each of the request data substances  22   a  and  22   b  of which syntactic analysis has been performed at step  140 , and that each of the protocols used for the request messages  20   a  and  20   b  match the priority protocol type  122 . For determination of a match between the priority keyword  121  and the keyword included in each of the request data substances  22   a  and  22   b , the semantic information which has undergone the syntactic analysis may also be employed. More specifically, a matching condition as follows may be set, for example: the name of an element in the request data substance should be a certain character string or a pair of the name of an element and the value of the element in the request data substance should match the set value. Further, a plurality of criterion may be stored in the priority keyword  121 , and a matching condition that the request data substance include any one of the criteria, all of the criteria, or none of the criteria may be set. 
   Next, the sorting unit  11  adds the maximum allowable delay time  123  to the current time, thereby calculating the allowable delay time  114  for each of the request messages  20   a  and  20   b , using the delivery rules selected at step  141 . Then, the sorting unit  11  prioritizes the request messages  20   a  and  20   b  in the order in which the allowable delay times of the request messages are closer to the current time, and data on the request messages  20   a  and  20   b  are stored in the corresponding entries in the request buffer. More specifically, the request messages  20   a  and  20   b  are stored in the fields of the received data  111  of the corresponding two of the entries  116 - 1 ,  116 - 2 ,  116 - 3 , the protocol used for each of the request messages  20   a  and  20   b  is stored in the field of the protocol  112 , the current time is stored in the field of the received time  113 , each of the results of the calculation is stored in the field of the allowable delay time  114 , and each of the delivery rule identifiers for the respective delivery rules determined at step  141  is stored in the field of the used delivery rule identifier  115 , at step  142 . 
     FIG. 7  is a flowchart showing the algorithm of the request processing unit  15 . 
   The request processing unit  15  of the priority control device  3  checks all entries in the request buffer  13  sequentially from the highest order, or in the order in which the allowable delay times of the entries are closer to the current time, and determines the request messages to be transmitted to the Web service server device  5   a  or  5   b . Specifically, based on the used delivery rule identifier  115  of the entry in the request buffer  13  corresponding to a request message, the request processing unit  15  obtains the allowable server load  124  and the delivery destination server addresses  125  of the corresponding entry in the delivery rule table  14 . Then, the request processing unit  15  obtains the load on the Web service server device  5   a  or  5   b  specified by the IP address for the Web service server stored in the field of the delivery destination server addresses  125 . If the load on the Web service server is below the allowable server load  124 , the request processing unit  15  determines the request message corresponding to the entry in the request buffer  13  to be transmitted and determines the Web service server with the load obtained as the delivery destination, at step  150 . 
   At this point, if the load obtained is equal to or more than the allowable server load  124 , the request processing unit  15  suspends the delivery. If the allowable delay time  114  is past the current time at this point, the request processing unit  15  discards the entry in the request buffer  13 . Then, the request processing unit  15  checks the entry in the next order in the request buffer  13 . No limitation is imposed on the method of obtaining the load on the Web service server device  5   a  or  5   b . In order to obtain the load on the Web service server device  5   a  or  5   b , the demon program may be run on the Web service server device  5   a  or  5   b , for example, to allow reference to the parameter such as the CPU usage ratio or the like through the IP network, and then the priority control device  3  may refer to the parameter. Alternatively, the load on the Web service server device  5   a  or  5   b  may be estimated from the amount of communication between the priority control device  3  and the Web service server device  5   a  or  5   b.    
   Then, the request processing unit  15  determines the protocol for the request message  20   a  or  20   b  of which transmission has been determined, using the protocol type  112 , at step  151 . Then, the request processing unit  15  transmits the request message  20   a  or  20   b  to the Web service server device  5   a  or  5   b  determined at step  150  according to the determined protocol, and relays the response from the Web service server device  5   a  or  5   b  to the client  1   a  or  1   b  at step  152  or  153 . Since specifications for this relaying procedure are strictly determined for each protocol, details of the relaying procedure will be omitted. If other protocol except for the HTTP protocol and the SMTP protocol needs to be employed, associated receive processing may be additionally installed. 
   The effect of this embodiment will be described with reference to the drawing. 
     FIG. 8  is a message flow diagram showing request messages and responses associated with the request messages transmitted and received between a client  1  and the priority control device  3 . 
   The request message  20   a  from the client  1  is divided into a plurality of IP packets such as a packet  161  and a packet  162  on the IP network  2 , for transmission. First, the client  1  transmits the IP packet  161  to the priority control device  3  as indicated by an arrow  170 . Then, the priority control device  3  transmits to the client  1  a response IP packet indicating that the IP packet  161  has been received, as indicated by an arrow  171 . The client  1  waits for arrival of the response IP packet transmitted as indicated by the arrow  171 , and upon receipt of the response IP packet, transmits the subsequent IP packet  162 , as indicated by an arrow  172 . The client  1  waits for arrival of the response IP packet transmitted as indicated by the arrow  171  for a time period  180  of several minutes, defined in the TCP/IP communication procedure, after transmitting the IP packet  161 . 
   On contrast therewith, a response  163  for the request message  20   a  is divided into IP packets  164  and  165 , and transmitted from the priority control device  3  to the client  1 . The client  1  waits for arrival of the response  163  for a time period  181 , after transmitting the request message  20   a.    
   Though the time period  181  is determined by the protocol used for the request message  20   a , it is sufficiently longer than the time period  180 , in general. The priority control device  3  receives the request message and temporarily terminates its protocol processing, thereby preventing the time period  180  from exceeding the time period defined in the TCP/IP communication procedure. Further, the priority control device  3  uses the protocol type  112  listed in the delivery rule table  14  for the received request message  20   a  to determine whether priority control on the request message  20   a  can be performed using the time period  181  as well as the time period  180 . With these arrangements, the priority control device  3  can schedule delivery of request messages at a time interval longer than with the prior art. Thus, the network system can be made ready for use even at the time of overload on the Web service server device, which continues for a long period of time. 
   The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereto without departing from the spirit and scope of the invention as set forth in the claims.