×

Dynamic execution

  • US 9,992,306 B2
  • Filed: 12/21/2012
  • Issued: 06/05/2018
  • Est. Priority Date: 12/21/2012
  • Status: Active Grant
First Claim
Patent Images

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.

View all claims
  • 11 Assignments
Timeline View
Assignment View
    ×
    ×