System for balancing loads among network servers
DCFirst Claim
Patent Images
1. A method of distributing requests among a plurality of network servers, the method comprising the steps of:
- receiving a request from a remote source at a first one of the network servers;
executing a determining step in the first server, the determining step for determining whether to process the request in the first network server;
processing the request in the first network server in a case that the determining step determines that the request should be processed in the first network server; and
routing the request to another network server in a case that the determining step determines that the request should not be processed in the first network server;
wherein the determining step comprises the steps of;
determining a load currently being processed by the first network server; and
receiving information in the first network server from each of the other network servers, the information from each of the other network servers comprising information concerning a load currently being processed in each network server;
wherein the determining step determines that the first network server should process the request in a case that (i) the load currently being processed in the first network server is below a first predetermined level, or (ii) the load currently being processed in the first network server is above the first predetermined level and is above loads currently being processed by either of the other network servers by less than a second predetermined level; and
wherein the determining step determines that the first network server should not process the request in a case that the load currently being processed in the first network server is above the first predetermined level and a load currently being processed in at least one of the other network servers is below the level of the first network server by at least the second predetermined level.
8 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A system which distributes requests among a plurality of network servers receives a request from a remote source at a first one of the network servers, and determines whether to process the request in the first network server. The request is processed in the first network server in a case that it is determined that the request should be processed in the first network server. On the other hand, the request is routed to another network server in a case that it is determined that the request should not be processed in the first network server.
-
Citations
9 Claims
-
1. A method of distributing requests among a plurality of network servers, the method comprising the steps of:
-
receiving a request from a remote source at a first one of the network servers; executing a determining step in the first server, the determining step for determining whether to process the request in the first network server; processing the request in the first network server in a case that the determining step determines that the request should be processed in the first network server; and routing the request to another network server in a case that the determining step determines that the request should not be processed in the first network server; wherein the determining step comprises the steps of; determining a load currently being processed by the first network server; and receiving information in the first network server from each of the other network servers, the information from each of the other network servers comprising information concerning a load currently being processed in each network server; wherein the determining step determines that the first network server should process the request in a case that (i) the load currently being processed in the first network server is below a first predetermined level, or (ii) the load currently being processed in the first network server is above the first predetermined level and is above loads currently being processed by either of the other network servers by less than a second predetermined level; and wherein the determining step determines that the first network server should not process the request in a case that the load currently being processed in the first network server is above the first predetermined level and a load currently being processed in at least one of the other network servers is below the level of the first network server by at least the second predetermined level.
-
-
2. Computer-executable process steps stored on a computer-readable medium, the computer executable process steps comprising a server module which is installable in a plurality of network servers to distribute requests among the plurality of network servers, the computer-executable process steps comprising:
-
code to receive a request from a remote source at a first one of the network servers; code, executable by the first server, to determine whether to process the request in that server; code to process the request in the first network server in a case that the determining code determines that the request should be processed in the first network server; and code to route the request to another network server in a case that the determining code determines that the request should not be processed in the first network server; wherein the determining code comprises; code to determine a load currently being processed by the first network server; and code to receive information in the first network server from each of the other network servers, the information from each of the other network servers comprising information concerning a load currently being processed in each network server; wherein the determining code determines that the first network server should process the request in a case that (i) the load currently being processed in the first network server is below a first predetermined level, or (ii) the load currently being processed in the first network server is above the first predetermined level and is above loads currently being processed by either of the other network servers by less than a second predetermined level; and wherein the determining code determines that the first network server should not process the request in a case that the load currently being processed in the first network server is above the first predetermined level and a load currently being processed in at least one of the other network servers is below the level of the first network server by at least the second predetermined level.
-
-
3. A network server which is capable of processing requests and of distributing the requests among a plurality of other network servers, the network server comprising:
-
a memory which stores a module comprised of computer-executable process steps; and a processor which executes the process steps stored in the memory so as (i) to receive a request from a remote source at the network server, (ii) to determine whether to process the request in the network server by executing process steps so as (a) to determine a load currently being processed by the first network server, and (b) to receive information in the first network server from each of the other network servers, the information from each of the other network servers comprising information concerning a load currently being processed in each network server; wherein the processor determines that the first network server should process the request in a case that (i) the load currently being processed in the first network server is below a first predetermined level, or (ii) the load currently being processed in the first network server is above the first predetermined level and is above loads currently being processed by either of the other network servers by less than a second predetermined level; and wherein the processor determines that the first network server should not process the request in a case that the load currently being processed in the first network server is above the first predetermined level and a load currently being processed in at least one of the other network servers is below the level of the first network server by at least the second predetermined level; (iii) to process the request in the network server in a case that the processor determines that the request should be processed in the network server, and (iv) to route the request to another one of the plurality of network servers in a case that the processor determines that the request should not be processed in the network server.
-
-
4. A method of distributing requests among a plurality of network servers, the method comprising the steps of:
-
receiving a request from a remote source at a first one of the network servers; executing a determining step in the first server, the determining step for determining whether to process the request in the first network server; processing the request in the first network server in a case that the determining step determines that the request should be processed in the first network server; and routing the request to another network server in a case that the determining step determines that the request should not be processed in the first network server; wherein the determining step comprises determining whether the request is related to a stateful transaction based on a URI in the request; and wherein (i) in a case that the request is related to a stateful transaction, determining that the request should be processed in the first network server, and (ii) in a case that the request is not related to a stateful transaction, determining if the request should be processed in the first network server. - View Dependent Claims (5)
-
-
6. Computer-executable process steps stored on a computer-readable medium, the computer executable process steps comprising a server module which is installable in a plurality of network servers to distribute requests among the plurality of network servers, the computer-executable process steps comprising:
-
code to receive a request from a remote source at a first one of the network servers; code, executable by the first server to determine whether to process the request in that server; code to process the request in the first network server in a case that the determining code determines that the request should be processed in the first network server; and code to route the request to another network server in a case that the determining code determines that the request should not be processed in the first network server; wherein the determining code comprises code to determine whether the request is related to a stateful transaction based on a URI in the request; and wherein (i) in a case that the request is related to a stateful transaction, the determining code determines that the request should be processed in the first network server, and (ii) in a case that the request is not related to a stateful transaction, the determining code determines if the request should be processed in the first network server. - View Dependent Claims (7)
-
-
8. A network server which is capable of processing requests and of distributing the requests among a plurality of other network servers, the network server comprising:
-
a memory which stores a module comprised of computer-executable process steps; and a processor which executes the process steps stored in the memory so as (i) to receive a request from a remote source at the network server, (ii) to determine whether the request should be processed in the network server by determining whether the request is related to a stateful transaction based on a URI in the request; wherein (i) in a case that the request is related to a stateful transaction, the processor determines that the request should be processed in the network server, and (ii) in a case that the request is not related to a stateful transaction, the processor determines if the request should be processed in the network server; (iii) to process the request in the network server in a case that the processor determines that the request should be processed in the network server, and (iv) to route the request to another one of the plurality of network servers in a case that the processor determines that the request should not be processed in the network server. - View Dependent Claims (9)
-
Specification