Patent US6173322B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6173322B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Network request distribution based on static rules and dynamic performance data

Assignee: Morgan Stanley and Co LLC
•
Filing: 1997-06-05
•
Granted: 2001-01-09
•
Expires: 2017-06-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Wei-Ming Hu

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 15:25
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5027; G06F9/505; H; H04; H04L; H04L67/00; H04L67/01; H04L67/10; H04L67/1001; H04L67/1004; H04L67/1008; G06F11/00; G06F11/30; G06F11/34; G06F11/3442; H04L67/1012

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 199 words
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.
Claim 2
Dependent Claim 199 words
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.
Claim 3
Dependent Claim 38 words
The network request manager of claim 1 , wherein said rules module rewrites said client request to indicate said plurality of content servers, and wherein said policy module rewrites said client request to indicate said target content server.
Claim 4
Dependent Claim 56 words
The network request manager of claim 2 , wherein each of said static rules comprises a source string pattern and a substitution rule, and wherein said rules module applies each of said static rules by modifying said client request according to said substitution rule at each occurrence of said source string pattern in said client request.
Claim 5
Dependent Claim 37 words
The network request manager of claim 3 , wherein each of said static rules further comprises a conditional statement, and wherein said rules module only applies each of said static rules when said conditional statement is satisfied.
Claim 6
Dependent Claim 25 words
The network request manager of claim 1 , wherein each content server within said plurality of content servers has access to a common data set.
Claim 7
Dependent Claim 46 words
The network request manager of claim 1 , wherein said client request includes client data, and wherein said rules module is further configured to apply said one or more static rules to said client data and to system information when selecting said plurality of content servers.
Claim 8
Dependent Claim 79 words
The network request manager of claim 1 , 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 policy module selects 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.
Claim 9
Dependent Claim 33 words
The network request manager of claim 7 , wherein said policy module updates said performance characteristic for each content server in said plurality of content servers based on each content server's response time.
Claim 10
Dependent Claim 16 words
The network request manager of claim 1 , wherein the digital network is a TCP/IP network.
Claim 11
Dependent Claim 51 words
The network request manager of claim 9 , wherein at least one content server of said plurality of content servers is coupled to said TCP/IP network, and at least one other content server of said plurality of content servers is coupled to a local network accessible to said network request manager.
Claim 12
Dependent Claim 19 words
The network request manager of claim 10 , wherein said client request includes a Uniform Resource Locator (URL) address.
Claim 13
Dependent Claim 47 words
The network request manager of claim 1 , wherein said rules module is further configured to apply said one or more static rules to said client request in order to determine whether said data retrieved from said target content server will be saved in said data cache.
Claim 14
Dependent Claim 50 words
The network request manager of claim 1 , wherein said connection module further comprises a connection cache configured to store connection data related to said connection, and wherein said connection module is further configured to check said connection cache for said connection data before causing said connection to be established.
Claim 15
Dependent Claim 27 words
The network request manager of claim 13 , wherein said connection cache is further configured to store multiple connections for one or more of said content servers.
Claim 16
Dependent Claim 40 words
The network request manager of claim 1 , wherein said connection module further comprises a proxy module configured to interact with said target content server as a proxy for the client while said target content server services said client request.
Claim 17
Dependent Claim 33 words
The network request manager of claim 15 , wherein said proxy module is further configured to request a new target content server from said policy module when said target content server is inaccessible.
Claim 18
Dependent Claim 39 words
The network request manager of claim 16 , wherein said proxy module is further configured to select a default content server as said target content server whenever said policy module is unable to provide said new target content server.
Claim 19
Dependent Claim 62 words
The network request manager of claim 15 , further comprising a pinger module, coupled to said connection module and to said policy module, configured to monitor the active/inactive status of each of said content servers handled by said redirect module, and further configured to monitor the active/inactive status of each of said content servers determined to be inactive by said proxy module.
Claim 20
Independent Claim 195 words
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.
Claim 21
Independent Claim 195 words
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.
Claim 22
Dependent Claim 91 words
The method of claim 19 , wherein said step of selecting a plurality of content servers comprises a step of rewriting said client request according to said one or more static rules, including: 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.
Claim 23
Dependent Claim 69 words
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.
Claim 24
Dependent Claim 46 words
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.
Claim 25
Dependent Claim 37 words
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.
Claim 26
Dependent Claim 46 words
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.
Claim 27
Dependent Claim 37 words
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.
Claim 28
Dependent Claim 274 words
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.
Claim 29
Dependent Claim 274 words
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.
Claim 30
Dependent Claim 257 words
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.
Claim 31
Dependent Claim 257 words
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.
Claim 32
Dependent Claim 268 words
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.
Claim 33
Dependent Claim 268 words
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.
Claim 34
Dependent Claim 60 words
The computer program product of claim 28 , wherein each of said static rules comprises a source string pattern and a substitution rule, and wherein said second means enables said computer to apply each of said static rules by modifying said client request according to said substitution rule at each occurrence of said source string pattern in said client request.
Claim 35
Dependent Claim 306 words
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.
Claim 36
Dependent Claim 306 words
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.
Claim 37
Dependent Claim 36 words
The computer program product of claim 30 , wherein said selector enables said computer to update said performance characteristic for each content server in said plurality of content servers based on each content server's response time.
Claim 38
Independent Claim 249 words
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.
Claim 39
Independent Claim 249 words
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.
Claim 40
Dependent Claim 13 words
The system of claim 32 , wherein said distribution scheme comprises uniform distribution.

References Cited (Backward Citations)

US5668951A Cited
US5548724A Cited
US5812776A Cited
US5951694A Cited
US5802302A Cited
US5740371A Cited
US5696701A Cited
US5774660A Cited
US5819255A Cited
US5925102A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-01-09 2004-07-10 2005-01-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-01-09 2008-07-10 2009-01-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-01-09 2012-07-10 2013-01-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag