IP Library › Granted Patent US 10,783,016
Granted Patent B2
US 10,783,016 · App. 15/362,707 · Granted Sep 22, 2020

Remote invocation of code execution in a localized device coordinator

Inventors: Cheng Pan (Bellevue, WA); Calvin Yue-Ren Kuo (Mercer Island, WA); Jonathan I. Turow (Seattle, WA); Marc John Brooker (Seattle, WA); James Christopher Sorenson, III (Seattle, WA); Weili Zhong McClenahan (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F9/547G06F9/5027
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,783,016
App. No.
15/362,707
Granted
Sep 22, 2020
Kind
B2
Abstract

Systems and methods are described for implementing a coordinator within a coordinated environment, which environment includes set of coordinated devices managed by the coordinator. The coordinator can be provisioned with a set of tasks, each task corresponding to a segment of code that can be executed by the coordinator, such as to manage the coordinated devices. To assist in execution of the tasks, the coordinator can include a remote interface that enables retrieval of task calls from an external system, such as an external on-demand code execution environment. The remote interface may periodically retrieve calls from the external system, and generate corresponding call messages on the coordinator to cause executions of called tasks. The remote interface can further obtain outputs of such executions, and report those outputs to the external system.

Claims (55)

1. A coordinator computing device implementing a remote interface enabling remote invocation of tasks on the coordinator computing device, wherein the coordinator computing device is configured to manage coordinated devices within a coordinated environment, and wherein individual tasks correspond to code submitted to an on-demand code execution environment and executable by the coordinator computing device to manage operation of the coordinated devices, the coordinator computing device comprising:

a non-transitory data store including computer executable instructions corresponding to the remote interface that, when executed, enable remote invocation of tasks on the coordinator computing device;

a processor in communication with the non-transitory data store and configured to execute the remote interface, wherein execution of the remote interface causes the processor to:

obtain, from the on-demand code execution environment, code of a task submitted to the on-demand code execution environment and executable by the coordinator computing device to manage operation of a coordinated device of the coordinated devices;

transmit a query, to the on-demand code execution environment remote from the coordinator computing device, to obtain a call to execute the task on the coordinator computing device from a queue of calls to the coordinator computing device to execute tasks, wherein the queue is maintained at the on-demand code execution environment, and wherein the query is addressed to a resource identifier associated with the queue of calls, individual calls within the queue of calls having been submitted to the on-demand code execution environment by one or more client devices;

obtain, from the queue of calls maintained at the on-demand code execution environment, the call to execute the task on the coordinator computing device, wherein the call includes parameters to be passed to an execution of the task;

determine a resource identifier associated with the task and the coordinator computing device;

generate, from at least the call obtained from the queue of calls maintained at the on-demand code execution environment, a call message addressed to the resource identifier of the task on the coordinator computing device, wherein the call message includes the parameters to be passed to the execution of the task, and wherein the call message causes execution of the task on the coordinator computing device; and

report results of the execution of the task to the on-demand code execution environment;

wherein the coordinator computing device manages the coordinated devices over a local network, and wherein execution of the task on the coordinator computing device causes a change in a state of the coordinated device managed by the coordinator computing device.

2. The coordinator computing device of claim 1 , wherein execution of the remote interface further causes the processor to:

obtain an execution identifier corresponding to the execution of the task;

obtain a return message from the execution of the task, wherein the message specifies the execution identifier;

identify the return message as an output of the execution of the task based at least in part on the execution identifier; and

return the output of the execution of the task to on-demand code execution environment.

3. The coordinator computing device of claim 2 , wherein execution of the remote interface causes the processor to obtain the execution identifier by at least one of generating the execution identifier or detecting the execution identifier within the call to execute the task.

4. The coordinator computing device of claim 1 , wherein the call message is a hypertext transport protocol (HTTP) message addressed to the resource identifier associated with the task.

5. Non-transitory computer readable media including instructions executable by a coordinator computing device to implement a remote interface enabling remote invocation of tasks on the coordinator computing device, wherein individual tasks correspond to code executable by the coordinator computing device to manage operation of one or more coordinated devices, and wherein execution of the instructions causes the coordinator computing device to:

obtain code of a task executable to manage operation of a coordinated device managed over a local network by the coordinator computing device;

transmit a query, to an on-demand code execution environment remote from the coordinator computing device, for a call to execute the task on the coordinator computing device from a queue of calls to the coordinator computing device to execute tasks, wherein the query is addressed to a resource identifier associated with the queue of calls, individual calls within the queue of calls having been submitted to the on-demand code execution environment by one or more client devices;

obtain, from the queue of calls maintained at the on-demand code execution environment, the call to execute the task on the coordinator computing device;

determine a resource identifier associated with task and the coordinator computing device;

generate, from at least the call obtained from the queue of calls maintained at the on-demand code execution environment, a call message addressed to the resource identifier of the task;

execute the task, wherein execution of the task on the coordinator computing device causes a change in a state of the coordinated device managed over the local network by the coordinator computing device; and

report results of the execution of the task to the on-demand code execution environment.

6. The non-transitory computer readable media of claim 5 , wherein execution of the instructions further causes the coordinator computing device to:

obtain a return message from the execution of the task, wherein the message specifies an execution identifier corresponding to the execution of the task;

identify the return message as an output of the execution of the task based at least in part on the execution identifier; and

return the output of the execution of the task to on-demand code execution environment.

7. The non-transitory computer readable media of claim 6 , wherein execution of the instructions causes the coordinator computing device to return the output of the execution of the task to on-demand code execution environment at least partly by transmitting the output to a second resource identifier, on the on-demand code execution environment, including the execution identifier.

8. The non-transitory computer readable media of claim 6 , wherein execution of the instructions causes the coordinator computing device to:

generate a return request message specifying the execution identifier corresponding to the execution of the task; and

transmit the return request message to a resource identifier associated with the task.

9. The non-transitory computer readable media of claim 5 , wherein the call message includes a priority to be assigned to the execution of the task.

10. The non-transitory computer readable media of claim 8 , wherein the resource identifier associated with the task and the coordinator computing device includes a domain name associated with the coordinator computing device, a port associated with a communication manager, and a path associated with the task.

11. The non-transitory computer readable media of claim 8 , wherein the resource identifier of the task is a uniform resource identifier.

12. The non-transitory computer readable media of claim 5 , wherein execution of the instructions causes the coordinator computing device to generate an execution environment for execution of the task to execute the task within the execution environment.

13. A computer-implemented method implemented by a coordinator computing device to enable remote invocation of tasks on the coordinator computing device, wherein individual tasks of correspond to code executable by the coordinator computing device, the computer-implemented method comprising:

obtaining code of a task executable to manage operation of a coordinated device managed over a network by the coordinator computing device;

transmitting a query, to an on-demand code execution environment remote from the coordinator computing device, for a call to execute the task on the coordinator computing device from a queue of calls to the coordinator computing device to execute tasks, wherein the query is addressed to a resource identifier associated with the queue of calls, individual calls within the queue of calls having been submitted to the on-demand code execution environment by one or more client devices;

obtaining the call from the queue of calls maintained at the on-demand code execution environment;

determining a resource identifier associated with a task and the coordinator computing device;

generating, from at least the call obtained from the queue of calls maintained at the on-demand code execution environment, a call message addressed to the resource identifier of the task;

execute the task based on the call message, wherein execution of the task on the coordinator computing device causes a change in a state of the coordinated device managed over the network by the coordinator computing device; and

report results of the execution of the task over a network to the on-demand code execution environment.

14. The computer-implemented method of claim 13 further comprising at least one of assigning an execution identifier to an execution of the task or identifying, within the call, the execution identifier.

15. The computer-implemented method of claim 14 , wherein the call message includes the execution identifier.

16. The computer-implemented method of claim 13 , wherein executing the task on the coordinator computing device comprises generating an execution environment for execution of the task on the coordinator computing device.

17. The computer-implemented method of claim 13 further comprising:

obtaining a return message from an execution of the task, wherein the message specifies an execution identifier corresponding to the execution of the task;

identifying the return message as an output of the execution of the task based at least in part on the execution identifier; and

returning the output of the execution of the task to on-demand code execution environment.

18. The computer-implemented method of claim 17 further comprising generating a return request message specifying the execution identifier and transmitting the return request message to a resource identifier corresponding to the task.

19. The computer-implemented method of claim 17 , wherein returning the output of the execution of the task to on-demand code execution environment comprises including the execution identifier as a header field associated with the output.

20. The computer-implemented method of claim 13 , wherein generating the call message comprises decapsulating the call message from to the obtained call.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2017
From: PAN, CHENG; KUO, CALVIN YUE-REN; TUROW, JONATHAN I.; BROOKER, MARC JOHN; SORENSON, JAMES CHRISTOPHER, III; MCCLENAHAN, WEILI ZHONG
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 042498/0718 →
Continuity (1)
Related Publication 20180150341A1 · May 31, 2018