Dynamic execution
First Claim
1. A computer implemented method of providing a service by a server to a client device, the service being based on execution of a plurality of computations, the method comprising:
- receiving, by a processor, a request for the service from the client device;
determining, by the processor, responsive to the request, a currently available capacity for the client device to execute the plurality of computations;
determining, by the processor, a portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server;
providing, by the processor, the determined portion of the plurality of computations to the client device for execution thereby;
causing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the client device;
causing, by the processor, the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the client device; and
repeating, during provision of the service responsive to the request, the determining of the currently available capacity for the client device to execute the plurality of computations, the determining of the portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server, the providing of the determined portion of the plurality of computations to the client device for execution thereby, the causing of the server to execute the remainder of the plurality of computations and provide the result thereof to the client device, and the causing of the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and the obtained result with the result received from the server;
the method further comprising;
receiving, by the processor, a request for the service from another client device;
determining, by the processor, responsive to the request from the other client device, a currently available capacity for the other client device to execute the plurality of computations, the currently available capacity for the other client device being different from the currently available capacity of the client device;
determining, by the processor, a portion of the plurality of computations to be executed by the other client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server;
providing, by the processor, the determined portion of the plurality of computations to the other client device for execution thereby;
causing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the other client device; and
causing, by the processor, the other client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the other client device;
the method further comprising;
receiving, by the processor, a subsequent request for the service from the client device;
determining, by the processor, responsive to the subsequent request, a currently available capacity for the client device to execute the plurality of computations, the currently available capacity being different from the currently available capacity determined for the previous request;
determining, by the processor, a portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server;
providing, by the processor, the determined portion of the plurality of computations to the client device for execution thereby;
causing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the client device;
andcausing, by the processor, the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the client device.
11 Assignments
0 Petitions
Accused Products
Abstract
The disclosed embodiments relate to provisioning of a service, such as a financial service, to a device, such as a mobile device operative to access the service wirelessly or otherwise, in a manner which efficiently provides a consistent user experience which meets a user'"'"'s expectations as to the functionality and quality of the service, including the user interface therefore and service delivery, which leverages the available capacities of the devices through which the service is provided so as to maximize the functionality and quality of the provided service without diminishing the experience, i.e. without substantially reducing the quality or functionality.
56 Citations
17 Claims
-
1. A computer implemented method of providing a service by a server to a client device, the service being based on execution of a plurality of computations, the method comprising:
-
receiving, by a processor, a request for the service from the client device; determining, by the processor, responsive to the request, a currently available capacity for the client device to execute the plurality of computations; determining, by the processor, a portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server; providing, by the processor, the determined portion of the plurality of computations to the client device for execution thereby; causing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the client device; causing, by the processor, the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the client device; and repeating, during provision of the service responsive to the request, the determining of the currently available capacity for the client device to execute the plurality of computations, the determining of the portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server, the providing of the determined portion of the plurality of computations to the client device for execution thereby, the causing of the server to execute the remainder of the plurality of computations and provide the result thereof to the client device, and the causing of the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and the obtained result with the result received from the server; the method further comprising; receiving, by the processor, a request for the service from another client device; determining, by the processor, responsive to the request from the other client device, a currently available capacity for the other client device to execute the plurality of computations, the currently available capacity for the other client device being different from the currently available capacity of the client device; determining, by the processor, a portion of the plurality of computations to be executed by the other client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server; providing, by the processor, the determined portion of the plurality of computations to the other client device for execution thereby; causing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the other client device; and causing, by the processor, the other client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the other client device; the method further comprising; receiving, by the processor, a subsequent request for the service from the client device; determining, by the processor, responsive to the subsequent request, a currently available capacity for the client device to execute the plurality of computations, the currently available capacity being different from the currently available capacity determined for the previous request; determining, by the processor, a portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server; providing, by the processor, the determined portion of the plurality of computations to the client device for execution thereby; causing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the client device; and causing, by the processor, the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for provision of a service by a server to a client device, the service being based on execution of a plurality of computations, the system comprising:
-
first logic stored in a memory and executable by a processor to cause the processor to receive a request for the service from the client device; second logic stored in the memory and executable by the processor to cause the processor to determine, responsive to the request , a currently available capacity for the client device to execute the plurality of computations; third logic stored in the memory and executable by the processor to cause the processor to determine a portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server; fourth logic stored in the memory and executable by the processor to cause the processor to provide the determined portion of the plurality of computations to the client device for execution thereby; fifth logic stored in the memory and executable by the processor to cause the processor to cause the server to execute the remainder of the plurality of computations and provide the result thereof to the client device; and sixth logic stored in the memory and executable by the processor to cause the processor to cause the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the client device; wherein the system is further configured to repeat, during the provision of the service responsive to the request, the second, third, fourth, fifth and six logics; and further wherein; the first logic is further executable by the processor to cause the processor to receive a request for the service from another client device; the second logic is further executable by the processor to cause the processor to determine, responsive to the request from the other client device, a currently available capacity for the other client device to execute the plurality of computations, the currently available capacity for the other client device being different from the currently available capacity of the client device; the third logic is further executable by the processor to cause the processor to determine a portion of the plurality of computations to be executed by the other client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server; the fourth logic is further executable by the processor to cause the processor to provide the determined portion of the plurality of computations to the other client device for execution thereby; the fifth logic is further executable by the processor to cause the processor to cause the server to execute the remainder of the plurality of computations and provide the result thereof to the other client device; and the sixth logic is further executable by the processor to cause the processor to cause, the other client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the other client device; and further wherein; the first logic is further executable by the processor to cause the processor to receive a subsequent request for the service from the client device; the second logic is further executable by the processor to cause the processor to determine, responsive to the subsequent request, a currently available capacity for the client device to execute the plurality of computations, the currently available capacity being different from the currently available capacity determined for the previous request;
the third logic is further executable by the processor to cause the processor to determine a portion of the plurality of computations to be executed by the client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server;the fourth logic is further executable by the processor to cause the processor to provide the determined portion of the plurality of computations to the client device for execution thereby; the fifth logic is further executable by the processor to cause the processor to cause the server to execute the remainder of the plurality of computations and provide the result thereof to the client device; and the sixth logic is further executable by the processor to cause the processor to cause the client device to execute the determined portion of the plurality of computations provided thereto to obtain a result therefrom and aggregate the obtained result with the result received from the server, and present the aggregate result to a user of the client device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for provision of a plurality of services by a server to a plurality of client devices, each of the plurality of services being based on execution of a plurality of computations, the system comprising computer executable program code stored in a non-transitory memory and executable by a processor coupled therewith to cause the processor to receive a request from one of the plurality of client devices for one of the plurality of services to be provisioned thereto, continuously determine a currently available capacity for the one client device to execute the plurality of computations and continuously apportion, based on the determined currently available capacity, the plurality of computations among the one client device and the server for execution thereby, wherein a result of the portion of plurality of computations executed by the server is continuously provided to the one client device for aggregation with a result of the portion of the plurality of computations executed by the one client device, the aggregate result being presented to a user of the one client device;
-
the system further comprising computer executable program code stored in a non-transitory memory and executable by a processor coupled therewith to cause the processor to receive a request from the one client device for another of the plurality of services to be provisioned thereto, continuously determine a currently available capacity for the one client device to execute the plurality of computations and continuously apportion, based on the determined currently available capacity, the plurality of computations among the one client device and the server for execution thereby, wherein a result of the portion of plurality of computations executed by the server is continuously provided to the one client device for aggregation with a result of the portion of the plurality of computations executed by the one client device, the aggregate result being presented to a user of the one client device; and the system further comprising computer executable program code stored in a non-transitory memory and executable by a processor coupled therewith to cause the processor to receive a request from another of the plurality of client devices for one of the plurality of services to be provisioned thereto, continuously determine a currently available capacity for the other client device to execute the plurality of computations and continuously apportion, based on the determined currently available capacity, the plurality of computations among the other client device and the server for execution thereby, wherein a result of the portion of plurality of computations executed by the server is continuously provided to the other client device for aggregation with a result of the portion of the plurality of computations executed by the other client device, the aggregate result being presented to a user of the other client device.
-
Specification