← Back to Patent Explorer
US6578068B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Load balancer in environment services patterns

Assignee: Accenture Global Services Ltd
•
Filing: 1999-08-31
•
Granted: 2003-06-10
•
Expires: 2019-08-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method are provided for distributing incoming requests from a user interface amongst a client and server components for optimizing usage of resources. Incoming requests are first received and stored by an activity module. The activity module instructs a client to handle a first subset of the requests and passes a second subset of the requests on to a utilization-based load balancer. The second subset of the requests are stored on the load balancer, and an availability of server components is determined and a listing of available server components is compiled. A determination is made as to which server component on the listing of available server components is most appropriate to receive a particular request. Each particular request of the second subset of requests is sent to the selected server component determined to be most appropriate to receive the particular request.

Inventors

  • 👤 Michel K. Bowman-Amuah

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 19:44
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5027; G06F9/505; G06F9/465

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 254 words
A method for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of: (a) receiving incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components; (b) storing the second subset of the requests on the load balancer upon receipt thereof from the activity module; (c) determining an availability of server components from among the plurality of server components; (d) compiling a listing of available server components; (e) determining which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of: current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and (f) sending each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests.
Claim 2
Independent Claim 254 words
A method for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of: (a) receiving incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components; (b) storing the second subset of the requests on the load balancer upon receipt thereof from the activity module; (c) determining an availability of server components from among the plurality of server components; (d) compiling a listing of available server components; (e) determining which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of: current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and (f) sending each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests.
Claim 3
Dependent Claim 46 words
A method as recited in claim 1 , wherein the step of determining which server component is the most appropriate is performed by allocating the request on a round-robin whereby requests are assigned to consecutive server components by traversing along the listing of available server components.
Claim 4
Dependent Claim 30 words
A method as recited in claim 1 , further comprising the step of rerouting a request to a different available server component upon a crash of the selected server component.
Claim 5
Independent Claim 39 words
A method as recited in claim. 1 , further comprising the step of saving the server components in a persistent store, wherein a check is made to determine whether a connection to a server component needs to be reestablished.
Claim 6
Dependent Claim 285 words
A computer program embodied on a computer readable medium for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of: (a) a code segment that receives incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components; (b) a code segment that stores the second subset of the requests on the load balancer upon receipt thereof from the activity module; (c) a code segment that determines an availability of server components from among the plurality of server components; (d) a code segment that compiles a listing of available server components; (e) a code segment that determines which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of: current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and (f) a code segment that sends each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests.
Claim 7
Dependent Claim 285 words
A computer program embodied on a computer readable medium for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of: (a) a code segment that receives incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components; (b) a code segment that stores the second subset of the requests on the load balancer upon receipt thereof from the activity module; (c) a code segment that determines an availability of server components from among the plurality of server components; (d) a code segment that compiles a listing of available server components; (e) a code segment that determines which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of: current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and (f) a code segment that sends each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests.
Claim 8
Dependent Claim 49 words
A computer program as recited in claim 5 , wherein the code segment that determines which server component is the most appropriate is performed by allocating the requests on a round-robin basis whereby requests are assigned to consecutive server components by traversing along the listing of available server components.
Claim 9
Dependent Claim 32 words
A computer program as recited in claim 5 , further comprising a code segment that reroutes a request to a different available server component upon a crash of the selected server component.
Claim 10
Dependent Claim 41 words
A computer program as recited in claim 5 , further comprising a code segment that saves the server components in a persistent store, wherein a check is made to determine whether a connection to a server component needs to be reestablished.
Claim 11
Independent Claim 266 words
A system for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of: (a) logic that receives incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components; (b) logic that stores the second subset of the requests on the load balancer upon receipt thereof from the activity module; (c) logic that determines an availability of server components from among the plurality of server components; (d) logic that compiles a listing of available server components; (e) logic that determines which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of: current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and (f) logic that sends each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests.
Claim 12
Independent Claim 266 words
A system for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of: (a) logic that receives incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components; (b) logic that stores the second subset of the requests on the load balancer upon receipt thereof from the activity module; (c) logic that determines an availability of server components from among the plurality of server components; (d) logic that compiles a listing of available server components; (e) logic that determines which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of: current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and (f) logic that sends each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests.
Claim 13
Dependent Claim 47 words
A system as recited in claim 9 , wherein the logic that determines which server component is the most appropriate is performed by allocating the requests on a round-robin basis whereby requests are assigned to consecutive server components by traversing along the listing of available server components.
Claim 14
Dependent Claim 29 words
A system as recited in claim 9 , further comprising logic that reroutes a request to a different available server component upon a crash of the selected server component.
Claim 15
Dependent Claim 38 words
A system as recited in claim 9 , further comprising logic that saves the server components in a persistent store, wherein a check is made to determine whether a connection to a server component needs to be reestablished.

References Cited (Backward Citations)

EP0123456B1 Cited
US6041365A Cited
US5047918A Cited
US5133075A Cited
US5471629A Cited
US5187787A Cited
US5187787B1 Cited
US5301270A Cited
US5623418A Cited
US5606664A Cited
US5313636A Cited
US5257369A Cited
US5291593A Cited
US5241580A Cited
US5649139A Cited
US5301320A Cited
US5437038A Cited
US5414812A Cited
US5463686A Cited
US5903757A Cited
US5581758A Cited
US5475844A Cited
US5915115A Cited
US5677997A Cited
US5459837A Cited
US5499371A Cited
US5706506A Cited
US5457797A Cited
US5671386A Cited
US5675748A Cited
US5434978A Cited
US5560005A Cited
US5724575A Cited
US5692107A Cited
US5987501A Cited
US5873086A Cited
US5732270A Cited
US5715397A Cited
US5642511A Cited
US5758351A Cited
US5907704A Cited
US5680602A Cited
US5799310A Cited
US5568644A Cited
US5708828A Cited
US5881238A Cited
US5721908A Cited
US5892946A Cited
US5890133A Cited
US5737607A Cited
US5732263A Cited
US5870746A Cited
US5764955A Cited
US5953707A Cited
US5872973A Cited
US5898870A Cited
US5710901A Cited
US5870742A Cited
US5751965A Cited
US5764235A Cited
US5778368A Cited
US5960200A Cited
US5940594A Cited
US5761513A Cited
EP0817020A2 Cited
US5958012A Cited
US5787413A Cited
US6185601B1 Cited
US5774660A Cited
US5892909A Cited
US6057856A Cited
US6018743A Cited
US5987514A Cited
US5867153A Cited
US5933816A Cited
US5995753A Cited
US5909540A Cited
US5878408A Cited
US6023722A Cited
US6081837A Cited
US6006230A Cited
US5905873A Cited
US5920703A Cited
US5966451A Cited
US5905897A Cited
US5946697A Cited
US5896383A Cited
US5987247A Cited
US5987633A Cited
US5995945A Cited
US5999948A Cited
US6016394A Cited
US6125359A Cited
US5946694A Cited
US5940075A Cited
US6223209B1 Cited
US6128279A Cited
US6070191A Cited
US6154212A Cited
US6029177A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-06-09 2006-12-09 2007-06-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-06-09 2010-12-09 2011-06-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-06-09 2014-12-09 2015-06-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag