Load balancing in a network environment
First Claim
1. A method of distributing requests for an application among a plurality of application instances operating on a plurality of servers, wherein the requests are received at a central server, the method comprising:
- selecting a policy, said policy demonstrating a first server-selection factor for selecting a preferred server to receive a request for the application;
executing a first status module to determine a first status of said first server-selection factor for a first instance of the application;
executing a second status module to determine a second status of said first server-selection factor for a second instance of the application;
receiving said first status at the central server;
receiving said second status at the central server;
examining said first status and said second status to select a preferred server; and
storing an identifier of said preferred server on the central server;
wherein said first server-selection factor comprises an application-specific detail.
2 Assignments
0 Petitions
Accused Products
Abstract
A method is provided for load balancing requests for an application among a plurality of instances of the application operating on a plurality of servers. A policy is selected for choosing a preferred server from the plurality of servers according to a specified status or operational characteristic of the application instances, such as the least-loaded instance or the instance with the fastest response time. The policy is encapsulated within multiple levels of objects or modules that are distributed among the servers offering the application and a central server that receives requests for the application. A first type of object, a status object, gathers or retrieves application-specific information concerning the specified status or operational characteristic of an instance of the application. Status objects interact with instances of the load-balanced application and are configured to store their collected information for retrieval by individual server monitor objects. An individual server monitor object illustratively operates for each server operating an instance of the application and retrieves the application-specific information from one or more status objects. A central replicated monitor object gathers the information from the individual server monitor objects. The information is then analyzed to select the server having the optimal status or operational characteristic. An update object updates the central server, such as a domain name server, to indicate the preferred server. Requests for the application are then directed to the preferred server until a different preferred server is identified.
-
Citations
39 Claims
-
1. A method of distributing requests for an application among a plurality of application instances operating on a plurality of servers, wherein the requests are received at a central server, the method comprising:
-
selecting a policy, said policy demonstrating a first server-selection factor for selecting a preferred server to receive a request for the application;
executing a first status module to determine a first status of said first server-selection factor for a first instance of the application;
executing a second status module to determine a second status of said first server-selection factor for a second instance of the application;
receiving said first status at the central server;
receiving said second status at the central server;
examining said first status and said second status to select a preferred server; and
storing an identifier of said preferred server on the central server;
wherein said first server-selection factor comprises an application-specific detail. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
selecting a local policy for a subset of the plurality of servers, said local policy specifying a local server-selection factor for selecting a server to receive a request for the application.
-
-
13. The method of claim 1, wherein said application-specific detail comprises one of the set of:
- number of accesses to the application, number of requests for access to the application, number of electronic mail messages, size of electronic mailbox, number of electronic mailboxes.
-
14. A method of load balancing requests for an application received at a central server among a set of servers, wherein each server in the set of servers operates an instance of the application, comprising:
-
selecting a policy for directing a request for the application to a preferred server, wherein said policy reflects a server factor for selecting said preferred server from the set of servers;
configuring a first status object to determine a first status of said server factor for a first instance of the application;
configuring a first server monitor object to receive said first status;
configuring a central monitor object to receive multiple statuses of said server factor for multiple instances of the application, including said first status;
examining said multiple statuses to select a preferred server; and
updating the central server to identify said preferred server;
wherein said server factor comprises a performance indicator specific to the application. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
executing said first status object, wherein said first status object resides on said first server;
receiving said first status by said first server monitor object; and
receiving said first status at the central server, by said central monitor object, from said first server monitor object.
-
-
16. The method of claim 15, wherein said executing said first status object comprises operating said first status object to periodically determine a status of said server factor for a first instance of the application.
-
17. The method of claim 15, further comprising maintaining said first server monitor object on said first server.
-
18. The method of claim 14, wherein the set of servers includes a subset, the method further comprising:
-
configuring an intermediate central monitor object to collect one or more statuses of said server factor for one or more members of the subset; and
receiving said one or more statuses at the central server from said intermediate central monitor object.
-
-
19. The method of claim 18, further comprising selecting a local policy for balancing requests for the application among members of the subset according to a local server factor.
-
20. The method of claim 19, wherein said local server policy is different from said policy.
-
21. The method of claim 14, further comprising:
-
executing said first status object, wherein said first status object resides on said central server; and
maintaining said server monitor object on the central server.
-
-
22. The method of claim 21, wherein said executing said first status object comprises operating said first status object to periodically determine a status of said server factor for a first instance of the application.
-
23. The method of claim 14, wherein said central server comprises a lookup table to associate said preferred server with the application, and wherein said updating comprises storing an address of said preferred server.
-
24. A method of distributing requests for an application among a plurality of application instances operating on a plurality of servers, the method comprising:
-
selecting a policy for identifying a preferred server to receive a request for the application, said policy including a first server-selection factor;
determining a status of said first server-selection factor for one or more instances of the application;
storing an identifier of a preferred server on a central server; and
directing a request for the application received after said storing to said preferred server;
wherein said first server-selection factor comprises a performance indicator specific to the application. - View Dependent Claims (25, 26, 27, 28)
examining said status of said first server-selection factor for said one or more instances of the application; and
selecting a preferred server on the basis of said examination, said preferred server being associated with one of said one or more instances of the application.
-
-
26. The method of claim 25, wherein said examining and said selecting are performed on said central server.
-
27. The method of claim 24, wherein said determining comprises executing a first status module to retrieve a first status of said first server-selection factor for a first instance of the application.
-
28. The method of claim 27, wherein said first status module is executed on a server operating said first instance of the application.
-
29. An apparatus for balancing requests for an application among multiple servers operating multiple instances of the application, wherein the requests are received at a central server, comprising:
-
a first server for operating a first instance of the application;
a second server for operating a second instance of the application;
a first status module for determining a first application-specific status of said first instance;
a second status module for determining a second application-specific status of said second instance;
a first server monitor module for receiving said first application-specific status from said first status module;
a second server monitor module for receiving said second application-specific status from said second status module;
a central monitor module for receiving said first application-specific status and said second application-specific status; and
an update module for updating the central server to indicate one of said first server and said second server to receive a request for the application. - View Dependent Claims (30, 31, 32, 33, 34, 35)
one or more servers; and
an intermediate central monitor module for receiving a status of an instance of the application operating on one of said one or more servers and communicating said status to said central monitor module.
-
-
36. An apparatus for load balancing requests for an application received at a central server, comprising:
-
a first status determination means for determining a first application-specific status of a first instance of the application;
a second status determination means for determining a second application-specific status of a second instance of the application;
central monitor means for receiving said first application-specific status and said second application-specific status;
server selection means for selecting a preferred server from one of said first server and said second server; and
updating means for storing an identifier of said preferred server on the central server. - View Dependent Claims (37)
-
-
38. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for balancing requests for an application among a plurality of servers, wherein the requests are received at a central server, the method comprising:
-
selecting a policy for directing a request for the application to a preferred server, wherein said policy reflects a server factor for selecting said preferred server from the set of servers;
configuring a first status object to determine a first status of said server factor for a first instance of the application;
configuring a first server monitor object to receive said first status;
configuring a central monitor object to receive multiple statuses of said server factor for multiple instances of the application, including said first status;
examining said multiple statuses to select a preferred server; and
updating the central server to identify said preferred server;
wherein said first server-selection factor comprises an application-specific detail.
-
-
39. A method of load-balancing multiple requests for an application, wherein instances of the application execute on a plurality of servers, the method comprising:
-
receiving a client request for an application at a first server operating a first instance of the application;
executing a first status module on the first server, wherein said first status module is configured to determine a first status of the first instance;
executing a server monitor module on the first server, wherein said server monitor module is configured to receive a first status of a second instance of the application operating on a second server;
examining said first status of the first instance and said first status of the second instance to select a preferred server from among the plurality of servers; and
routing the client request to said preferred server.
-
Specification