# US 11,122,023 B2 · Device communication environment

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

- Number: US 11,122,023 B2
- Document ID: US11122023B2
- Status: Granted
- Kind: B2
- Application number: 16/116,719
- Filed: 2018-08-29
- Published: 2019-03-28
- Granted: 2021-09-14
- Earliest claimed: 2015-06-30
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Alan Conrad Rawcliffe; Samuel John Young; Shyam Krishnamoorthy; Marco Argenti; Jonathan I. Turow; Calvin Yue-Ren Kuo; James Christopher Sorenson, III
- Web page: https://patentgrep.com/patent/US11122023B2

## CPC

- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computing environment is disclosed that receives from devices requests directed toward services accessible in the environment, and that forwards communications from services in the environment to devices registered with the environment. During a registration process at the environment, devices are assigned a device identifier that is used to identify and authenticate each particular device and requests communicated from and to the device via the environment. The computing environment maintains state information for each device that has been registered with the system. As the device interacts with the system, the state information is updated to reflect the changes in the device. When requests to perform functions are received from devices, the computing environment determines for the particular device and the particular function requested what processing needs to be performed by the environment in response to the request.

## Claims

### Claim 1

A method, comprising:
registering at a service a plurality of devices comprising an identifier for each of the plurality of devices;
maintaining by the service for each of the plurality of devices data identifying a state;
receiving by the service a state request to update data identifying a state for a device in the plurality of devices, the state request comprising the identifier;
updating by the service for the device in the plurality of devices data identifying the state;
receiving by the service a device request separate from the state request from the device in the plurality of devices, the device request comprising data identifying the device from which the device request was received; and
generating by the service a service request to perform an identified service function for the device request, wherein the identified service function is identified based on the data identifying the device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising generating a request to the device in the plurality of devices to change state to a second state.

### Claim 3 (depends on 2)

The method of claim 2, further comprising wherein generating a request to the device in the plurality of devices to change state to a second state comprises generating the request in response to receiving a request to update a current state of the device in the plurality of devices.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving information associated with the device in the plurality of devices and information for use in authenticating the device in the plurality of devices;
and associating the unique device identifier with the information associated with the device in the plurality of devices and with the information for use in authenticating the device in the plurality of devices,
wherein authenticating the device in the plurality of devices comprises using the information for use in authenticating the device upon receiving the device request from the device in a plurality of devices.

### Claim 5

A computing system, comprising:
one or more computing processors;
computing memory communicatively coupled with the one or more computing processors, the computing memory having stored therein computer instructions that, upon execution by the one or more processors, cause the computing system to perform operations comprising:
registering a plurality of devices comprising an identifier for each of the plurality of devices;
in response to a first request corresponding to one of the plurality of devices, updating data identifying a state for the one of the plurality of devices;
receiving a second request from the one of the plurality of devices, the second request corresponding to the one of the plurality of devices;
determining a requested service function corresponding to the second request, the requested service function being determined based at least in part on received information identifying the one of the plurality of devices; and
requesting the determined service function be executed.

### Claim 6 (depends on 5)

The computing system of claim 5, further comprising computer instructions that cause the computing system to perform operations comprising maintaining for each of the plurality of devices data identifying a state.

### Claim 7 (depends on 5)

The computing system of claim 5, further comprising computer instructions that cause the computing system to perform operations comprising:
receiving the first request to update data identifying the state for the one of the plurality of devices, the first request specifying to change the state for the one of the plurality of devices from a first state to a second state.

### Claim 8 (depends on 7)

The computing system of claim 7, further comprising computer instructions that cause the computing system to perform operations comprising:
sending a request to the one of the plurality of devices to change state to a second state.

### Claim 9 (depends on 8)

The computing system of claim 8, further comprising computer instructions that cause the computing system to perform operations comprising:
sending a request to the one of the plurality of devices to change state to a second state is performed in response to receiving a request to update a current state of the one of the plurality of devices.

### Claim 10 (depends on 5)

The computing system of claim 5, further comprising computer instructions that cause the computing system to perform operations comprising:
receiving a request for a device identifier, the request for a device identifier comprising information associated with the one of the plurality of devices and information for use in authenticating the one of the plurality of devices;
identifying for the request for a device identifier a unique device identifier;
associating the identified unique device identifier with the information associated with the one of the plurality of devices and with the information for use in authenticating the one of the plurality of devices; and
upon receiving a request from the one of the plurality of devices, authenticating the request from the one of the plurality of devices using the information for use in authenticating the one of the plurality of devices.

### Claim 11 (depends on 5)

The computing system of claim 5, further comprising computer instructions that cause the computing system to perform operations comprising:
receiving requests to associate information identifying an organization with the one of the plurality of devices, the requests to associate information comprising information identifying an organization and a device identifier; and
storing data associating the information identifying an organization and the device identifier.

### Claim 12 (depends on 11)

The computing system of claim 11, further comprising computer instructions that cause the computing system to perform operations comprising:
receiving a request to control the one of the plurality of devices, the request to control the one of the plurality of devices comprising the information identifying the organization and the device identifier;
determining using the information identifying the organization that the request to control the one of the plurality of devices is valid; and
upon determining the request to control the one of the plurality of devices is valid updating data identifying a state for the device.

### Claim 13 (depends on 5)

The computing system of claim 5,
wherein determining a requested service function corresponding to the second request comprises querying a data store for a function corresponding to the device identifier and information specified in a payload of the second request.

### Claim 14

A non-transitory computer readable medium comprising computer readable instructions that upon execution on a computing device cause a system to perform the operations comprising:
receiving a device request from a device in a plurality of devices, the device request comprising a device identifier identifying the device from which the device request was received;
identifying for the device request and using the device identifier, a service function corresponding to the request;
generating for the identified service function a service request to perform the identified service function on a service system;
maintaining for each of the plurality of devices, data identifying a state;
receiving a state request to update data identifying a state for the device in the plurality of devices; and
updating for the device in the plurality of devices, data identifying the state.

### Claim 15 (depends on 14)

The non-transitory computer readable medium of claim 14,
wherein receiving the state request to update data identifying the state for the device in the plurality of devices comprises receiving a state request to change the state for the device from a first state to a second state; and
wherein updating for the device in the plurality of devices, data identifying the state comprises updating data identifying the state for the device to identify a second state.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, further comprising:
generating a request to communicate to the device in the plurality of devices an instruction to change state to a second state; and
generating a request to the device in the plurality of devices to change state to a second state.

### Claim 17 (depends on 16)

The non-transitory computer readable medium of claim 16, further comprising:
receiving a request to communicate a current state of the device in the plurality of devices,
wherein generating a request to communicate to the device in the plurality of devices an instruction change state to a second state is performed in response to receiving the request to communicate a current state of the device in the plurality of devices.

### Claim 18 (depends on 14)

The non-transitory computer readable medium of claim 14, further comprising:
receiving a request for a device identifier, the request for a device identifier comprising information associated with the device and information for use in authenticating the device;
identifying for the request for a device identifier a unique device identifier;
associating the identified unique device identifier with the information associated with the device and with the information for use in authenticating the device; and
upon receiving the device request from the device in the plurality of devices, authenticating the device request using the information for use in authenticating the device.

### Claim 19 (depends on 14)

The non-transitory computer readable medium of claim 14, further comprising:
receiving requests to associate information identifying an organization with the device, the requests to associate information comprising information identifying an organization and a device identifier; and
storing data associating the information identifying an organization and the device identifier.

### Claim 20 (depends on 19)

The non-transitory computer readable medium claim 19, further comprising:
receiving a request to control the device, the request to control the device comprising the information identifying the organization and the device identifier;
determining using the information identifying the organization that the request to control the device is valid; and
upon determining the request to control the device is valid updating data identifying the state for the device.
