# US 10,372,484 B2 · Secured computing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,484 B2
- Document ID: US10372484B2
- Status: Granted
- Kind: B2
- Application number: 15/194,345
- Filed: 2016-06-27
- Published: 2017-12-28
- Granted: 2019-08-06
- Earliest claimed: 2016-06-27
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Jeromy Scott Statia; Brad Turner; George Ringer; Alexandr Tcherniakhovski
- Web page: https://patentgrep.com/patent/US10372484B2

## CPC

- G06F 9/48: Program initiating; Program switching, e.g. by interrupt
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- H04L 63/0442: {wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30)}
- H04L 63/101: {Access control lists [ACL]}
- H04L 63/12: {Applying verification of the received information (cryptographic mechanisms or cryptographic arrangements for data integrity or data verification H04L9/32)}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 63/123: {received data contents, e.g. message integrity}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Examples related to secure computing systems are disclosed. In one example, a method includes, at a local agent computing device, sending to a remote work scheduling computing device a work context of the local agent computing device, the work context describing a set of work that the local agent is configured to execute, and polling a remote work depository for work compatible with the work context. The method further includes receiving a response from the remote work depository identifying a job within the work context, the job being requested by a computing device other than the remote work scheduling computing device, and executing the job.

## Claims

### Claim 1

At a local agent computing device, a method comprising:
sending to a remote work scheduling computing device a work context of the local agent computing device, the work context describing a set of work that the local agent is configured to execute;
sending a polling query to a remote work depository, the polling query querying the remote work depository for work compatible with the work context;
receiving a response to the polling query from the remote work depository identifying a job within the work context, the job being requested by a computing device other than the remote work scheduling computing device; and
executing the job.

### Claim 2 (depends on 1)

The method of claim 1, further comprising, in response to completing the job, sending a status indicating completion of the job to the remote work depository.

### Claim 3 (depends on 1)

The method of claim 1, further comprising, in response to completing the job, sending a result of completing the job to a remote response aggregator.

### Claim 4 (depends on 1)

The method of claim 1, wherein executing the job includes:
attempting to validate one or more parameters specified by the job;
in response to successfully validating the one or more parameters, executing the job; and
in response to failing to validate the one or more parameters, not executing the job and sending a status indicating failure of the job to the remote work depository.

### Claim 5 (depends on 1)

The method of claim 1, wherein the job specifies one or more parameters, and wherein instructions for executing the job are stored at the local agent computing device, the instructions specifying how to execute the job using the one or more parameters as input.

### Claim 6 (depends on 1)

The method of claim 1, wherein the job is encrypted with a first key of a key pair specific to the work context of the local agent computing device, and wherein executing the job includes decrypting the job using a second key of the key pair.

### Claim 7 (depends on 1)

The method of claim 1, wherein executing the job includes dividing the job into a plurality of subtasks each associated with a different work context, and depositing each subtask in a respective depository for the work context of that subtask.

### Claim 8

At a work scheduling computing device, a method, comprising:
receiving a work request from a client device;
validating the work request to determine that the work request is authorized;
in response to determining that the work request is authorized, encrypting the work request to form a signed work request and depositing the signed work request in a work depository for discovery by an authorized local agent;
receiving a polling query from the authorized local agent, the polling query polling for work compatible with a work context of the authorized local agent; and
sending a response to the polling query identifying a job within the work context.

### Claim 9 (depends on 8)

The method of claim 8, wherein the work request includes a security token comprising one or more claims, the one or more claims comprising information regarding one or more user properties and/or one or more encryption keys.

### Claim 10 (depends on 8)

The method of claim 8, further comprising receiving a status from the authorized local agent via the work depository indicating completion of the work request, and sending a notification to the client device indicating completion of the work request, the notification including an identifier indicating a location of a result of completion of the work request.

### Claim 11 (depends on 8)

The method of claim 8, wherein the authorized local agent is a first local agent, and wherein the work depository is a first work depository, the method further comprising receiving a registration request for registration of a second local agent, the registration request including a work context of the second local agent, the work context describing a set of work that the second local agent is configured to execute, and in response to receiving the registration request, establishing a second work depository for work compatible with the work context.

### Claim 12 (depends on 11)

The method of claim 11, wherein the work request is a first work request, the method further comprising receiving a second work request for work compatible with the work context, and in response to receiving the second work request, encrypting the second work request to form a signed second work request, and depositing the signed second work request in the second work depository.

### Claim 13 (depends on 12)

The method of claim 12, wherein the work context is a second work context, wherein the first work request is encrypted with a first key specific to a first work context, and wherein the second work request is encrypted with a second key specific to the second work context.

### Claim 14

A local agent computing device, comprising:
a processor; and
memory holding instructions executable by the processor to:
send to a remote work scheduling computing device a work context of the local agent computing device, the work context describing a set of work that the local agent is configured to execute;
in response to sending the work context, receive a location of a remote work depository;
send a polling query to the location of the remote work depository, the polling query querying the remote work depository for work compatible with the work context;
receive a response to the polling query from the remote work depository identifying a job within the work context, the job being requested by a computing device other than the remote work scheduling computing device; and
execute the job.

### Claim 15 (depends on 14)

The computing device of claim 14, wherein the instructions are further executable to, in response to completing the job, send a status indicating completion of the job to the remote work depository.

### Claim 16 (depends on 14)

The computing device of claim 14, wherein the instructions are further executable to, in response to completing the job, send a result of completing the job to a remote response aggregator.

### Claim 17 (depends on 14)

The computing device of claim 14, wherein the instructions executable to execute the job include instructions executable to:
attempt to validate one or more parameters specified by the job;
in response to successfully validating the one or more parameters, execute the job; and
in response to failing to validate the one or more parameters, not execute the job and send a status indicating failure of the job to the remote work depository.

### Claim 18 (depends on 14)

The computing device of claim 14, wherein the job specifies one or more parameters, and wherein instructions for executing the job are stored at the local agent computing device, the instructions specifying how to execute the job using the one or more parameters as input.

### Claim 19 (depends on 14)

The computing device of claim 14, wherein the job is encrypted with a first key of a key pair specific to the work context of the local agent computing device, and wherein executing the job includes decrypting the job using a second key of the key pair.

### Claim 20 (depends on 14)

The computing device of claim 14, wherein the instructions executable to execute the job include instructions executable to divide the job into a plurality of subtasks each associated with a different work context, and deposit each subtask in a respective depository established for the work context of that subtask for discovery by a downstream local agent computing device configured for the work context of that subtask.
