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.