Client / server application task allocation based upon client resources
First Claim
Patent Images
1. A method for allocating application tasks between a client and a server comprising the steps of:
- detecting client-based computing resources capable of executing at least one application task;
conveying at least one indicator of the detected client-based computing resources to a remotely-located application server; and
the application server determining whether to allocate at least one application task to a client or to a server component by comparing the client-based computing resources indicated by the at least one indicator against at least one previously determined resource threshold associated with the application task, and, when the client-based computing resources favorably compare to the previously determined resource threshold, allocating the at least one application task to the client, otherwise allocating the at least one application task to the server component;
wherein the at least one application server task comprises a speech recognition task, and wherein the determining step is based at least in part upon a size of grammar used in the speech recognition task;
wherein the at least one application server task comprises a text-to-speech conversion task, and wherein the determining step is based at least in part upon a complexity of the text-to-speech conversion task.
3 Assignments
0 Petitions
Accused Products
Abstract
A software method for allocating application tasks between a client and a server can include the step of detecting client-based computing resources for executing at least one application task. At least one indicator of the detected client-based computing resources can be conveyed to a remotely located application server, the application server can determine whether to allocate at least one application task to the client or to a server component based upon at least one indicator.
64 Citations
3 Claims
-
1. A method for allocating application tasks between a client and a server comprising the steps of:
-
detecting client-based computing resources capable of executing at least one application task; conveying at least one indicator of the detected client-based computing resources to a remotely-located application server; and the application server determining whether to allocate at least one application task to a client or to a server component by comparing the client-based computing resources indicated by the at least one indicator against at least one previously determined resource threshold associated with the application task, and, when the client-based computing resources favorably compare to the previously determined resource threshold, allocating the at least one application task to the client, otherwise allocating the at least one application task to the server component; wherein the at least one application server task comprises a speech recognition task, and wherein the determining step is based at least in part upon a size of grammar used in the speech recognition task; wherein the at least one application server task comprises a text-to-speech conversion task, and wherein the determining step is based at least in part upon a complexity of the text-to-speech conversion task.
-
-
2. An application serving system comprising:
-
a server engine located within an application server configured to selectively execute at least one application task for the application server; a client engine located within a client remotely located from said application server configured to selectively execute said at least one application task for the application server; a load analyzer configured to detect computing resources of said client and to convey an indicator of these detected computing resource to a load distributor; and a load distributor configured to selectively allocate application tasks between the server engine and the client engine based upon the indicators received from the load analyzer wherein the computing resources detected by the load analyzer include at least two of a memory capacity of the client, a CPU capability of the client, and a communication throughput level for exchanging data with the client; wherein the application task comprises at least one speech recognition task, and wherein the load distributor selectively allocates the speech recognition task based at least in part upon a size of grammar used in the speech recognition task; wherein the application task comprises at least one text-to-speech conversion task and wherein the load distributor selectively allocates the text-to-speech conversion task based at least in part upon a complexity of the text-to-speech conversion task, wherein complexity is based upon at least one factor selected from the group consisting of a text length to be converted, a sound quality of resulting speech, and a number of languages needed for the text-to-speech conversion task.
-
-
3. A machine-readable storage having stored thereon, a computer program having a plurality of code sections, said code sections executable by a machine for causing the machine to perform the steps of:
-
detecting client-based computing resources capable of executing at least one application task; conveying at least one indicator of the detected client-based computing resources to a remotely located application server; and the application server determining whether to allocate at least one application task to a client or to a server component based by comparing the client-based computing resources indicated by the at least one indicator against at least one previously determined resource threshold associated with the application task, and, if the client-based computing resources compare favorably to the previously determined resource threshold, allocating the at least one application task to the client, otherwise allocating the at least one application task to the server component; wherein the at least one application server task comprises a speech recognition task, and wherein the determining step is based at least in part upon a size of grammar used in the speech recognition task; wherein the at least one application server task comprises a text-to-speech conversion task, and wherein the determining step is based at least in part upon a complexity of the text-to-speech conversion task.
-
Specification