Data anonymity and separation for user computation
First Claim
1. A computer-implemented method comprising:
- receiving, by one or more computing devices, a request from a computing device for a webpage;
determining, by at least one computing device of the one or more computing devices, a computing capability of the computing device;
transmitting, by at least one computing device of the one or more computing devices, the webpage to the computing device, the webpage including one or more commands in a scripting language that are selected based at least in part on the computing capability of the computing device;
receiving, by at least one computing device of the one or more computing devices, duration data representing a duration that the webpage has been open on the computing device and interaction data representing a level of user interaction with the webpage on the computing device;
based at least in part on the duration data and the interaction data, transmitting, by at least one computing device of the one or more computing devices, a computational problem to the computing device; and
receiving, by at least one computing device of the one or more computing devices, a result derived from processing the computational problem by the computing device according to the one or more commands in the scripting language.
1 Assignment
0 Petitions
Accused Products
Abstract
This disclosure includes techniques for using distributed computing over a network to resolve difficult computational problems. Anonymization of the data allows computing devices in the distributed computing system to solve the computational problem without exposing private aspects of the data. Individual computing devices receive instructions and data that correspond to a piece of a larger computational problem. In one implementation, a user may request a webpage from a web server and receive the webpage along with commands in a scripting language that instructs the user'"'"'s computer to process a piece of the larger computational problem. The web server may assign the piece of the problem to the user'"'"'s computer based on processing capabilities of the user'"'"'s computer. Combining solutions received from multiple distributed computing devices and reversing the anonymization process yields a solution to the computational problem.
-
Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving, by one or more computing devices, a request from a computing device for a webpage; determining, by at least one computing device of the one or more computing devices, a computing capability of the computing device; transmitting, by at least one computing device of the one or more computing devices, the webpage to the computing device, the webpage including one or more commands in a scripting language that are selected based at least in part on the computing capability of the computing device; receiving, by at least one computing device of the one or more computing devices, duration data representing a duration that the webpage has been open on the computing device and interaction data representing a level of user interaction with the webpage on the computing device; based at least in part on the duration data and the interaction data, transmitting, by at least one computing device of the one or more computing devices, a computational problem to the computing device; and receiving, by at least one computing device of the one or more computing devices, a result derived from processing the computational problem by the computing device according to the one or more commands in the scripting language. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. One or more non-transitory computer-readable storage media storing computer-executable instructions to perform acts comprising:
-
accessing a request from a computing device to obtain a webpage; causing the webpage to be sent to the computing device; determining a computing capability of the computing device; assigning, based at least in part on the computing capability, a computing task to the computing device; causing data representing the computing task and commands in a scripting language to be sent to the computing device for processing the computing task; determining whether a response received from the computing device is an accurate or inaccurate solution to the computing task; in response to determining that the response is an accurate solution to the computing task, assigning an additional computing task to the computing device; and in response to determining that the response is an inaccurate solution or corrupted, reassigning the computing task to a different computing device. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
one or more processors; and one or more memories coupled to the one or more processors, the one or more memories including instructions that, upon execution, cause the system to; receive a request from a computing device for a webpage; determine a computing capability of the computing device; transmit the webpage to the computing device, the webpage including one or more commands in a scripting language that are selected based at least in part on the computing capability of the computing device; receive duration data representing a duration that the webpage has been open on the computing device and interaction data representing a level of user interaction with the webpage on the computing device; based at least in part on the duration data and the interaction data, transmit a computational problem to the computing device; and receive a result derived from processing the computational problem by the computing device according to the one or more commands in the scripting language. - View Dependent Claims (15, 16)
-
-
17. A computer-implemented method comprising:
-
accessing a request from a computing device to obtain a webpage; causing the webpage to be sent to the computing device; determining a computing capability of the computing device; assigning, based at least in part on the computing capability, a computing task to the computing device; causing data representing the computing task and commands in a scripting language to be sent to the computing device for processing the computing task; determining whether a response received from the computing device is an accurate or inaccurate solution to the computing task; in response to determining that the response is an accurate solution to the computing task, assigning an additional computing task to the computing device; and in response to determining that the response is an inaccurate solution or corrupted, reassigning the computing task to a different computing device. - View Dependent Claims (18, 19, 20)
-
Specification