Claims Analysis
Total Claims: 52
Claim 1
Independent Claim
199 words
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.
Claim 2
Independent Claim
199 words
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.
Claim 3
Dependent Claim
21 words
The method of claim 1 wherein the intercepting and selecting steps are implemented in the client agent associated with the client.
Claim 4
Dependent Claim
41 words
The method of claim 1 wherein upon an initial client request to the service hosted by the server pool, the client agent retrieves the address information from a response to the initial request received from a server in the server pool.
Claim 5
Dependent Claim
35 words
The method of claim 1 wherein the selecting step includes selecting a particular one of the servers based on performance data which includes performance data regarding a network over which the client requests are sent.
Claim 6
Dependent Claim
34 words
The method of claim 1 wherein the selecting step includes selecting a particular one of the servers based on performance data which includes average response times for at least a subset of the servers.
Claim 7
Dependent Claim
21 words
The method of claim 5 wherein the average response times are determined by monitoring previous client requests directed to the service.
Claim 8
Dependent Claim
35 words
The method of claim 6 wherein the average response time for at least one of the servers includes a weighted average response time, wherein more recent responses are weighted more heavily than less recent responses.
Claim 9
Dependent Claim
24 words
The method of claim 5 wherein the average response times are determined by utilizing probe messages sent by the client agent to the servers.
Claim 10
Dependent Claim
59 words
The method of claim 1 wherein the selecting step includes selecting a server in the server pool in accordance with a probabilistic routing strategy which routes client requests such that a server in the pool which provides the fastest response is more likely to receive subsequent client requests than a server in the pool which provides a slower response.
Claim 11
Dependent Claim
31 words
The method of claim 9 wherein the probabilistic routing strategy routes multiple client requests such that at least one client request is directed to each of the servers in the pool.
Claim 12
Dependent Claim
32 words
The method of claim 1 further including the step of delivering the address information and other server-site specific information to the client agent by a server agent associated with the server pool.
Claim 13
Dependent Claim
39 words
The method of claim 11 wherein the server agent determines whether the address information used by the client agent to route the client request is outdated by examining a timestamp transmitted by the client agent with the client request.
Claim 14
Dependent Claim
38 words
The method of claim 11 wherein the server agent provides updated address information in its response to the client request if it determines that the address information used by the client agent to route the request is outdated.
Claim 15
Dependent Claim
62 words
The method of claim 1 further including the step of transmitting at least a portion of the additional information in the form of pricing information to the client agent, wherein the pricing information establishes a service price associated with each of at least a subset of the servers in the server pool, based on the target operating point for the server pool.
Claim 16
Dependent Claim
39 words
The method of claim 14 wherein at least a portion of the pricing information is generated by a pricing manager and transmitted from the pricing manager to a server agent and from the server agent to the client agent.
Claim 17
Dependent Claim
33 words
The method of claim 14 wherein at least a portion of the pricing information is generated by server agents associated with the servers and transmitted from the server agents to the client agent.
Claim 18
Dependent Claim
43 words
The method of claim 14 wherein the pricing information includes a discount factor for each of the servers in the pool, and the discount factor for a given server reflects the relative sensitivity of the client agent to the responsiveness of that server.
Claim 19
Dependent Claim
34 words
The method of claim 17 wherein the selecting step includes selecting one of the servers based on performance data which includes an average response time of each server multiplied by its corresponding discount factor.
Claim 20
Dependent Claim
20 words
The method of claim 17 further including the step of updating the discount factors in accordance with an adaptive algorithm.
Claim 21
Dependent Claim
34 words
The method of claim 17 wherein a single set of discount factors are supplied to each of a plurality of client agents processing client requests directed to the service hosted by the server pool.
Claim 22
Independent Claim
210 words
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.
Claim 23
Independent Claim
210 words
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.
Claim 24
Dependent Claim
20 words
The apparatus of claim 21 wherein at least a portion of the performance data is gathered by the client agent.
Claim 25
Dependent Claim
17 words
The apparatus of claim 21 wherein the processor is implemented at least in part within the client.
Claim 26
Dependent Claim
13 words
The apparatus of claim 21 wherein the processor is co-located with the client.
Claim 27
Dependent Claim
14 words
The apparatus of claim 21 wherein the processor is directly coupled to the client.
Claim 28
Dependent Claim
41 words
The apparatus of claim 21 wherein upon an initial client request to the service hosted by the server pool, the client agent retrieves the address information from a response to the initial request received from a server in the server pool.
Claim 29
Dependent Claim
36 words
The apparatus of claim 21 wherein the processor is operative to select a particular one of the servers based on performance data which includes performance data regarding a network over which the client requests are sent.
Claim 30
Dependent Claim
35 words
The apparatus of claim 21 wherein the processor is operative to select a particular one of the servers based on performance data which includes average response times for at least a subset of the servers.
Claim 31
Dependent Claim
21 words
The apparatus of claim 28 wherein the average response times are determined by monitoring previous client requests directed to the service.
Claim 32
Dependent Claim
35 words
The apparatus of claim 29 wherein the average response time for at least one of the servers includes a weighted average response time, wherein more recent responses are weighted more heavily than less recent responses.
Claim 33
Dependent Claim
24 words
The apparatus of claim 28 wherein the average response times are determined by utilizing probe messages sent by the client agent to the servers.
Claim 34
Dependent Claim
61 words
The apparatus of claim 21 wherein the client agent is operative to select a server in the server pool in accordance with a probabilistic routing strategy which routes client requests such that a server in the pool which provides the fastest response is more likely to receive subsequent client requests than a server in the pool which provides a slower response.
Claim 35
Dependent Claim
31 words
The apparatus of claim 32 wherein the probabilistic routing strategy routes multiple client requests such that at least one client request is directed to each of the servers in the pool.
Claim 36
Dependent Claim
29 words
The apparatus of claim 21 wherein the address information and other server-site specific information are delivered to the client agent by a server agent associated with the server pool.
Claim 37
Dependent Claim
43 words
The apparatus of claim 21 wherein client agent transmits a timestamp with the client request, such that a server agent associated with the server pool can determine whether the address information used by the client agent to route the client request is outdated.
Claim 38
Dependent Claim
30 words
The apparatus of claim 21 wherein the client agent is operative to retrieve updated address information for the servers of the server pool from a response to the client request.
Claim 39
Dependent Claim
66 words
The apparatus of claim 21 wherein the client agent is further operative to receive at least a portion of the additional information in the form of pricing information associated with the server pool, wherein the pricing information establishes a service price associated with each of at least a subset of the servers in the server pool, based on the target operating point for the server pool.
Claim 40
Dependent Claim
39 words
The apparatus of claim 37 wherein at least a portion of the pricing information is generated by a pricing manager and transmitted from the pricing manager to a server agent and from the server agent to the client agent.
Claim 41
Dependent Claim
33 words
The apparatus of claim 37 wherein at least a portion of the pricing information is generated by server agents associated with the servers and transmitted from the server agents to the client agent.
Claim 42
Dependent Claim
43 words
The apparatus of claim 37 wherein the pricing information includes a discount factor for each of the servers in the pool, wherein the discount factor for a given server reflects the relative sensitivity of the client agent to the responsiveness of that server.
Claim 43
Dependent Claim
33 words
The apparatus of claim 40 wherein the client agent selects one of the servers based on performance data which includes an average response time of each server multiplied by its corresponding discount factor.
Claim 44
Independent Claim
196 words
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.
Claim 45
Independent Claim
196 words
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.
Claim 46
Independent Claim
167 words
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.
Claim 47
Independent Claim
167 words
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.
Claim 48
Dependent Claim
39 words
The method of claim 43 wherein at least a portion of the pricing information is generated by a pricing manager associated with the server pool and transmitted from the pricing manager to a client agent associated with the client.
Claim 49
Dependent Claim
37 words
The method of claim 43 wherein at least a portion of the pricing information is generated by server agents associated with the servers and transmitted from the server agents to a client agent associated with the client.
Claim 50
Dependent Claim
43 words
The method of claim 43 wherein the pricing information includes a discount factor for each of the servers in the pool, wherein the discount factor for a given server reflects the relative sensitivity of the client agent to the responsiveness of that server.
Claim 51
Independent Claim
194 words
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.
Claim 52
Independent Claim
194 words
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.