Dynamic execution
First Claim
1. A computer implemented method of providing a plurality of services by a server to a plurality of client devices, each service being based on execution of a plurality of computations, the method comprising:
- receiving, by a processor of an intermediary device coupled with the server and the plurality of client devices, a request for a service of the plurality of services from a first client device of the plurality of client devices;
determining, by the processor, responsive to the request, a currently available capacity for the first client device to execute the plurality of computations based on data indicative of the first client device'"'"'s available capacity obtained therefrom;
determining, by the processor, a portion of the plurality of computations to be executed by the first client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server;
instructing, by the processor, the first client device to execute the determined portion of the plurality of computations to generate a result thereof; and
instructing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the first client device; and
wherein the first client device aggregates the generated result with the result received from the server, and presents the aggregate result to a user of the first client device; and
monitoring, by the processor, during provision of the service responsive to the request, the currently available capacity for the first client device to execute the plurality of computations, and reallocating the plurality of computations as between the first client device and the server based thereon;
the method further comprising;
receiving, by the processor, a request for the service from a second client device of the plurality of client devices;
determining, by the processor, responsive to the request from the second client device, a currently available capacity for the second client device to execute the plurality of computations based on data indicative of the second device'"'"'s available capacity obtained therefrom, the currently available capacity for the second client device being different from the currently available capacity of the first client device;
determining, by the processor, a portion of the plurality of computations to be executed by the second client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server;
instructing, by the processor, the second client device to execute the determined portion of the plurality of computations to generate a result thereof;
instructing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the second client device; and
wherein the second client device aggregates the generated result with the result received from the server, and presents the aggregate result to a user of the second client device; and
monitoring, by the processor, during provision of the service responsive to the request, the currently available capacity for the second client device to execute the plurality of computations, and reallocating the plurality of computations as between the second client device and the server based thereon.
10 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.
57 Citations
20 Claims
-
1. A computer implemented method of providing a plurality of services by a server to a plurality of client devices, each service being based on execution of a plurality of computations, the method comprising:
-
receiving, by a processor of an intermediary device coupled with the server and the plurality of client devices, a request for a service of the plurality of services from a first client device of the plurality of client devices; determining, by the processor, responsive to the request, a currently available capacity for the first client device to execute the plurality of computations based on data indicative of the first client device'"'"'s available capacity obtained therefrom; determining, by the processor, a portion of the plurality of computations to be executed by the first client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server; instructing, by the processor, the first client device to execute the determined portion of the plurality of computations to generate a result thereof; and instructing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the first client device; and wherein the first client device aggregates the generated result with the result received from the server, and presents the aggregate result to a user of the first client device; and monitoring, by the processor, during provision of the service responsive to the request, the currently available capacity for the first client device to execute the plurality of computations, and reallocating the plurality of computations as between the first client device and the server based thereon; the method further comprising; receiving, by the processor, a request for the service from a second client device of the plurality of client devices; determining, by the processor, responsive to the request from the second client device, a currently available capacity for the second client device to execute the plurality of computations based on data indicative of the second device'"'"'s available capacity obtained therefrom, the currently available capacity for the second client device being different from the currently available capacity of the first client device; determining, by the processor, a portion of the plurality of computations to be executed by the second client device based on the determined currently available capacity therefore, the remainder of the plurality of computations to be executed by the server; instructing, by the processor, the second client device to execute the determined portion of the plurality of computations to generate a result thereof; instructing, by the processor, the server to execute the remainder of the plurality of computations and provide the result thereof to the second client device; and wherein the second client device aggregates the generated result with the result received from the server, and presents the aggregate result to a user of the second client device; and monitoring, by the processor, during provision of the service responsive to the request, the currently available capacity for the second client device to execute the plurality of computations, and reallocating the plurality of computations as between the second client device and the server based thereon. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for provision of a plurality of services by a server to a plurality of client devices, the service being based on execution of a plurality of computations, the system comprising:
-
first logic stored in a non-transitory memory and executable by a processor of an intermediary device coupled with the server and the plurality to cause the processor to receive a request for a service of the plurality of services from a first client device of the plurality of client devices; second logic stored in the non-transitory memory and executable by the processor to cause the processor to determine, responsive to the request, a currently available capacity for the first client device to execute the plurality of computations based on data indicative of the first client device'"'"'s available capacity obtained therefrom; third logic stored in the non-transitory memory and executable by the processor to cause the processor to determine a portion of the plurality of computations to be executed by the first 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 non-transitory memory and executable by the processor to cause the processor to instruct the first client device to execute the determined portion of the plurality of computations to generate a result thereof; fifth logic stored in the non-transitory memory and executable by the processor to cause the processor to instruct the server to execute the remainder of the plurality of computations and provide the result thereof to the first client device; and wherein the first client device aggregates the generated result with the result received from the server, and presents the aggregate result to a user of the first client device; and wherein the system is further configured to monitor, during the provision of the service responsive to the request, the currently available capacity for the first client device to execute the plurality of computations, and reallocate the plurality of computations as between the first client device and the server based thereon; and further wherein; the first logic is further executable by the processor to cause the processor to receive a request for the service from a second client device; the second logic is further executable by the processor to cause the processor to determine, responsive to the request from the second client device, a currently available capacity for the second client device to execute the plurality of computations based on data indicative of the second device'"'"'s available capacity obtained therefrom, the currently available capacity for the second client device being different from the currently available capacity of the first 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 second 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 instruct the second client device to execute the determined portion of the plurality of computations to generate a result thereof; the fifth logic is further executable by the processor to cause the processor to instruct the server to execute the remainder of the plurality of computations and provide the result thereof to the second client device; and wherein the second client device aggregates the generated result with the result received from the server, and presents the aggregate result to a user of the second client device; and wherein the system is further configured to monitor, during provision of the service responsive to the request, the currently available capacity for the second client device to execute the plurality of computations, and reallocate the plurality of computations as between the second client device and the server based thereon. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. 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 of an intermediary device 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 reallocate, 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 generated as a result of execution by the server is provided to the one client device as it is generated for aggregation with a result of the portion of the plurality of computations generated as a result of execution 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 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 reallocate, 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 generated as a result of execution by the server is provided to the one client device as it is generated for aggregation with a result of the portion of the plurality of computations generated as a result of execution by the one client device, the aggregate result being presented to a user of the one client device. - View Dependent Claims (20)
- and
Specification