Network request distribution based on static rules and dynamic performance data
First Claim
1. A network request manager for handling client requests received from clients via a digital network, comprising:
- a server module configured to receive a client request from the digital network;
a rules module configured to apply one or more static rules to said client request to select a plurality of content servers;
a policy module configured to select a target content server from said plurality of content servers according to a dynamic metric;
a connection module configured to cause a connection to be established with said target content server so that said target content server may service said client request; and
a data cache configured to store data retrieved from said target content server according to said client request, said data cache further configured to service said client request whenever said client request seeks data stored in said data cache, thereby enabling the network request manager to respond immediately to said client request without having to select and query said target content server;
wherein said connection module comprises a redirect module configured to respond to said client request with redirection information when redirection criteria are satisfied, thereby allowing the client to directly establish said connection to said target content server.
15 Assignments
0 Petitions
Accused Products
Abstract
A system and method for the distribution of client requests received from a digital computer network provides an intermediary between the client and one or more content servers that actually service the client request. Client requests are distributed amongst groups of content servers according to a one or more static rules. These static rules are applied to determine which group of content servers will service each client request. Content servers may be grouped without regard to hardware configuration and without regard to where the content server resides within the network. Client requests may be distributed amongst the content servers within each group according to a dynamic metric. The dynamic metric includes time-varying measurements of the available processing capacity of each content server within a group. Client requests may then be distributed to those content servers within a group that are best able to handle additional processing burdens. The available processing capacity of each content server is measured without requiring special software to be installed in the content servers, and without unduly increasing network message traffic. Connections may be established with content servers in one of two modes: a proxy mode where the present invention acts on behalf of the client by having the client request serviced, and a redirect mode where the present invention returns to the client whatever information is required to enable the client to establish a direct connection with the content server.
552 Citations
33 Claims
-
1. A network request manager for handling client requests received from clients via a digital network, comprising:
-
a server module configured to receive a client request from the digital network;
a rules module configured to apply one or more static rules to said client request to select a plurality of content servers;
a policy module configured to select a target content server from said plurality of content servers according to a dynamic metric;
a connection module configured to cause a connection to be established with said target content server so that said target content server may service said client request; and
a data cache configured to store data retrieved from said target content server according to said client request, said data cache further configured to service said client request whenever said client request seeks data stored in said data cache, thereby enabling the network request manager to respond immediately to said client request without having to select and query said target content server;
wherein said connection module comprises a redirect module configured to respond to said client request with redirection information when redirection criteria are satisfied, thereby allowing the client to directly establish said connection to said target content server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for handling client requests received from clients via a digital network, comprising the steps of:
-
a. receiving a client request from the digital network;
b. applying one or more static rules to said client request to select a plurality of content servers, wherein each content server within said plurality of content servers has access to a common data set;
c. selecting a target content server from said plurality of content servers according to a dynamic metric;
d. establishing a connection with said target content server so that said target content server may service said client request; and
e. storing data retrieved from said target content server in a data cache, and wherein said step of receiving a client request comprises the steps of servicing said client request whenever said client request seeks data stored in said data cache, and responding immediately to said client request without having to select and query said target content server;
wherein said step of establishing a connection comprises the step of responding to said client request with redirection information when redirection criteria are satisfied, thereby allowing a client to establish said connection to said target content server directly. - View Dependent Claims (20, 21, 22, 23, 24, 25)
i. defining a source string pattern and a substitution rule for each of said static rules; and
ii. for each of said static rules, searching said client request for each occurrence of said source string pattern and modifying said client request according to said substitution rule at each occurrence of said source string pattern in said client request.
-
-
21. The method of claim 19, wherein said dynamic metric comprises a performance characteristic for each content server in said plurality of content servers, and wherein said step of selecting a target content server according to said dynamic metric comprises the step of choosing said target content server from said plurality of content servers where the probability of each content server being chosen is defined by said performance characteristic.
-
22. The method of claim 21, wherein said step of selecting a target content server according to said dynamic metric further comprises the step of updating said performance characteristic for each content server in said plurality of content servers based on each content server'"'"'s response time.
-
23. The method of claim 19, wherein said step of selecting a plurality of content servers comprises the step of determining whether said data retrieved from said target content server will be saved in said data cache.
-
24. The method of claim 19, further comprising the step of saving connection data related to said connection in a connection cache, and wherein said step of establishing a connection comprises the step of checking said connection cache for said connection data before establishing said connection.
-
25. The method of claim 19, wherein said step of establishing a connection comprises the step of requesting a new target content server chosen from said plurality of content servers when said target content server is inaccessible.
-
26. A network request manager for handling a client request received from a client via a digital network, comprising:
-
means for selecting a plurality of content servers by applying one or more static rules to the client request, wherein each content server within said plurality of content servers has access to a common data set;
means for selecting a target content server from said plurality of content servers according to a dynamic metric;
means for establishing a connection with said target content server so that said target content server may service the client request; and
means for storing data retrieved from said target content server according to the client request, said means for storing data further configured to service the client request whenever the client request seeks data stored in said means for storing data, thereby enabling the network request manager to respond immediately to the client request without having to select and query said target content server;
wherein said means for selecting a plurality of content servers comprises a means for rewriting the client request according to each of said static rules, including;
means for defining a source string pattern and a substitution rule for each of said static rules; and
means for searching said client request for each occurrence of said source string pattern and modifying said client request according to said substitution rule at each occurrence of said source string pattern in said client request;
wherein said means for establishing a connection comprises means for responding to the client request with redirection information when redirection criteria are satisfied, thereby allowing the client to directly establish said connection to said target content server.
-
-
27. A network request manager for handling a client request received from a client via a digital network, comprising:
-
means for selecting a plurality of content servers by applying one or more static rules to the client request, wherein each content server within said plurality of content servers has access to a common data set;
means for selecting a target content server from said plurality of content servers according to a dynamic metric;
means for establishing a connection with said target content server so that said target content server may service the client request; and
means for storing data retrieved from said target content server according to the client request, said means for storing data further configured to service the client request whenever the client request seeks data stored in said means for storing data, thereby enabling the network request manager to respond immediately to the client request without having to select and query said target content server;
wherein said dynamic metric comprises a performance characteristic for each content server in said plurality of content servers, and wherein said means for selecting a target content server according to said dynamic metric comprises means for randomly choosing said target content server from said plurality of content servers where the probability of each content server being chosen is defined by said performance characteristic;
wherein said means for establishing a connection comprises means for responding to the client request with redirection information when redirection criteria are satisfied, thereby allowing the client to directly establish said connection to said target content server.
-
-
28. A computer program product, comprising a computer useable medium having computer program logic stored therein, wherein said computer program logic comprises:
-
a receiver that enables a computer to receive a client request from a digital network;
a rules applier that enables said computer to apply one or more static rules to said client request to select a plurality of content servers, wherein each content server within said plurality of content servers has access to a common data set;
a selector that enables said computer to select a target content server from said plurality of content servers according to a dynamic metric;
a connector that enables said computer to establish a connection with said target content server so that said target content server may service said client request; and
a data cache that enables the computer to store data retrieved from said target content server according to said client request, said data cache further configured to service said client request whenever said client request seeks data stored in said data cache, thereby enabling the computer program product to respond immediately to said client request without having to select and query said target content server;
wherein said rules applier enables said computer to rewrite said client request to indicate said plurality of content servers, and wherein said selector enables said computer to rewrite said client request to indicate said target content server;
wherein said connector comprises a redirector that enables said computer to respond to said client request with redirection information when redirection criteria are satisfied, thereby allowing the client to directly establish said connection to said target content server. - View Dependent Claims (29)
-
-
30. A computer program product, comprising a computer useable medium having computer program logic stored therein, wherein said computer program logic comprises:
-
a receiver that enables a computer to receive a client request from a digital network;
a rules applier that enables said computer to apply one or more static rules to said client request to select a plurality of content servers, wherein each content server within said plurality of content servers has access to a common data set;
a selector that enables said computer to select a target content server from said plurality of content servers according to a dynamic metric;
a connector that enables said computer to establish a connection with said target content server so that said target content server may service said client request; and
a data cache that enables the computer to store data retrieved from said target content server according to said client request, said data cache further configured to service said client request whenever said client request seeks data stored in said data cache, thereby enabling the computer program product to respond immediately to said client request without having to select and query said target content server;
wherein said dynamic metric comprises a performance characteristic for each content server in said plurality of content servers, said performance characteristic indicative of each content server'"'"'s available processing bandwidth, and wherein said third means enables said computer to select said target content server according to said dynamic metric by choosing said target content server from said plurality of content servers where the probability of each content server being chosen is defined by said performance characteristic;
wherein said connector comprises a redirector that enables said computer to respond to said client request with redirection information when redirection criteria are satisfied, thereby allowing the client to directly establish said connection to said target content server. - View Dependent Claims (31)
-
-
32. A system for handling client requests received from clients via a digital network, comprising:
-
a plurality of network request managers; and
a conventional load-balancing server coupled to receive a client request from the digital network and configured to distribute said client request to one of said plurality of network request managers according to a distribution scheme, wherein each of said network request managers comprises;
a server module configured to receive said client request from said conventional load-balancing server, a rules module configured to apply one or more static rules to said client request to select a plurality of content servers, a policy module configured to select a target content server from said plurality of content servers according to a dynamic metric, a connection module configured to cause a connection to be established with said target content server so that said target content server may service said client request; and
a data cache configured to store data retrieved from said target content server according to said client request, said data cache further configured to service said client request whenever said client request seeks data stored in said data cache, thereby enabling the corresponding network request manager to respond immediately to said client request without having to select and query said target content server;
wherein said connection module comprises a redirect module configured to respond to said client request with redirection information when redirection criteria are satisfied thereby allowing the client to directly establish said connection to said target content server. - View Dependent Claims (33)
-
Specification