Client-side techniques for web server allocation
First Claim
1. A method of processing a client request directed from a client to a service hosted by a pool of servers, the method comprising the steps of:
- intercepting a client request directed to the service hosted by the server pool; and
selecting a particular one ofthe servers in the server pool to which to route the client request based on address information and performance data regarding the servers, wherein at least a portion of the address information and the performance data is gathered by a given client agent associated with the client, the given client agent gathering the portion ofthe address information and the performance data by processing responses to one or more previous client requests generated by the corresponding client and directed by the client agent to servers of the server pool using a routing strategy which ensures that each of the servers in the server pool receives at least one client request, and further wherein the selecting step utilizes additional information received from an entity associated with the server pool such that a plurality of otherwise non-cooperating client agents including the given client agent route their requests in accordance with a target operating point for the server pool.
7 Assignments
0 Petitions
Accused Products
Abstract
A client request directed to a web site or other service hosted by a distributed pool of servers is processed by a client agent associated with the client. The client agent intercepts the client request and routes it to a particular one of the servers in the pool. The client agent bases its routing decision on address information regarding the individual servers of the pool and performance data regarding processing of previous client requests directed to the service. The address information may be retrieved by the client agent from a response to an initial client request directed to the service. The performance data may include response times for servicing previous client requests directed to the service, and the client agent may route the client request such that an average response time of multiple requests to the service is minimized. It may also make use of a probabilistic routing strategy which ensures that each of the servers in the pool receives at least one client request, such that accurate performance data may be maintained for all of the servers. A pricing manager associated with the server pool may be used to establish discount factors or other pricing information for each of the servers in the pool. This pricing information is communicated to the client agents and used in their routing decisions, so as to ensure that otherwise non-cooperating client agents will route their requests in a manner consistent with a target operating point established by the service provider.
456 Citations
47 Claims
-
1. A method of processing a client request directed from a client to a service hosted by a pool of servers, the method comprising the steps of:
-
intercepting a client request directed to the service hosted by the server pool; and
selecting a particular one ofthe servers in the server pool to which to route the client request based on address information and performance data regarding the servers, wherein at least a portion of the address information and the performance data is gathered by a given client agent associated with the client, the given client agent gathering the portion ofthe address information and the performance data by processing responses to one or more previous client requests generated by the corresponding client and directed by the client agent to servers of the server pool using a routing strategy which ensures that each of the servers in the server pool receives at least one client request, and further wherein the selecting step utilizes additional information received from an entity associated with the server pool such that a plurality of otherwise non-cooperating client agents including the given client agent route their requests in accordance with a target operating point for the server pool. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus for processing a client request directed to a service hosted by a pool of servers, the apparatus comprising:
-
a processor for implementing a given client agent which is operative to intercept a client request directed from a corresponding client to the service hosted by the server pool, and to select a particular one of the servers in the server pool to which to route the client request based on address information and performance data regarding the servers, the given client agent gathering at least a portion of the address information and the performance data by processing responses to one or more previous client requests generated by the corresponding client and directed by the client agent to servers of the server pool using a routing strategy which ensures that each of the servers in the server pool receives at least one client request, wherein the server selection operation further utilizes additional information received from an entity associated with the server pool such that a plurality of otherwise non-cooperating client agents including the given client agent route their requests in accordance with a target operating point for the server pool; and
a memory associated with the processor for storing at least a portion of the address information and performance data. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. An apparatus for processing a client request directed to a service hosted by a pool of servers, comprising:
-
means for intercepting a client request directed to the service hosted by the server pool; and
means for selecting a particular one ofthe servers in the server pool to which to route the client request based on address information and performance data regarding the servers, wherein at least a portion of the address information and the performance data is gathered by a given client agent associated with the client, the given client agent gathering the portion of the address information and the performance data by processing responses to one or more previous client requests generated by the corresponding client and directed by the client agent to servers of the server pool using a routing strategy which ensures that each of the servers in the server pool receives at least one client request, and further wherein the selecting means utilizes additional information received from an entity associated with the server pool such that a plurality of otherwise non-cooperating client agents including the given client agent route their requests in accordance with a target operating point for the server pool.
-
-
43. A method of processing a client request directed from a client to a service hosted by a pool of servers, the method comprising the steps of:
-
generating pricing information which establishes a service price associated with each of at least a subset of the servers in the server pool, based on a target operating point for the server pool; and
transmitting the pricing information to the client, such that a client agent associated with the client is enabled to select a particular one of the servers in the server pool to which to route the client request based at least in part on the pricing information, the client agent gathering address information and performance data used in the select operation by processing responses to one or more previous client requests generated by the client and directed by the client agent to servers of the server pool using a routing strategy which ensures that each of the servers in the server pool receives at least one client request. - View Dependent Claims (44, 45, 46)
-
-
47. A method of processing a client request directed from a client to a service hosted by a pool of servers, the method comprising the steps of:
-
intercepting a client request directed to the service hosted by the server pool; and
selecting a particular one of the servers in the server pool to which to route the client request based on address information and performance data regarding the servers, wherein the intercepting and selecting steps are implemented in a client agent associated with the client, the client agent gathering at least a portion of the address information and the performance data by processing responses to one or more previous client requests generated by the corresponding client and directed by the client agent to servers of the server pool using a routing strategy which ensures that each of the servers in the server pool receives at least one client request, and further wherein the selecting step utilizes additional information received from an entity associated with the server pool such that a plurality of otherwise non-cooperating client agents including the given client agent route their requests in accordance with a target operating point for the server pool.
-
Specification