IP Library › Granted Patent US 11,765,123
Granted Patent B1
US 11,765,123 · App. 17/397,654 · Granted Sep 19, 2023

Receiving a data object at a device

Inventors: Richard David Young (Seattle, WA); Rameez Loladia (Seattle, WA); Shyam Krishnamoorthy (Redmond, WA); Nihal Chand Jain (Sammamish, WA)
Assignee: Amazon Technologies, Inc.
H04L51/48H04L51/066H04L51/214H04L51/224H04L51/23H04L51/06H04L51/234
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 11,765,123
App. No.
17/397,654
Granted
Sep 19, 2023
Kind
B1
Abstract

A technology is provided for delivering a data object to a device. Data delivery instructions to distribute a data object to a device may be received at a delivery service and indicate a storage location of the data object, a messaging topic, and a size of data receivable by the device. The data object is then divided into blocks corresponding to the size of data receivable by the device. A messaging topic is identified to which the device is subscribed via a messaging service. The blocks are sent to the device using the messaging topic and a network protocol available to the device.

Claims (47)

1. A computer-implemented method, comprising:

receiving instructions to distribute a data object to a device, wherein the instructions indicate:

a messaging topic; and

a data block size receivable by the device;

dividing the data object into a set of data blocks corresponding to the data block size receivable by the device;

determining that the device is subscribed, via a subscription messaging service, to the messaging topic, wherein the messaging topic corresponds to the data block size;

sending, according to a network protocol established by the device, the set of data blocks to the device using the messaging topic; and

in response to receiving a message from the device indicating that a data block from the set of data blocks was not received, resending a missing block to the device.

2. The computer-implemented method of claim 1 , wherein:

the instructions further indicate a storage location; and

the computer-implemented method further comprises obtaining the data object from the storage location.

3. The computer-implemented method of claim 1 , wherein:

the instructions further indicate a deployment schedule; and

the computer-implemented method further comprises deploying the data object according to the deployment schedule.

4. The computer-implemented method of claim 1 , wherein the network protocol is Message Queue Telemetry Transport (MQTT) or MQTT for Sensor Networks (MQTT-SN).

5. The computer-implemented method of claim 1 , wherein:

the data object is associated with a signature;

the signature is based on the set of data blocks; and

sending the set of data blocks to the device further includes sending the signature.

6. The computer-implemented method of claim 1 , further comprising sending a second data object to the device, the second data object associated with a second messaging topic, the second messaging topic associated with a second data block size.

7. A system, comprising:

one or more processors; and

memory storing computer-executable instructions that, upon execution, cause the one or more processors to:

receive instructions to distribute a data object to a device, wherein the instructions indicate a data size receivable by the device;

divide the data object into data blocks corresponding to the data size receivable by the device;

determine that the device is subscribed, via a subscription messaging service, to a messaging topic, wherein the messaging topic corresponds to the data size; and

send the data blocks to the device using the messaging topic.

8. The system of claim 7 , wherein the computer-executable instructions are received from a job scheduling service in accordance with a delivery schedule for sending the data object to the device.

9. The system of claim 7 , wherein:

the computer-executable instructions further indicate a storage location; and

the system further includes obtaining the data object from the storage location.

10. The system of claim 7 , wherein the system individually encrypts the data blocks before sending.

11. The system of claim 10 , wherein Transport Layer Security (TLS) is used to encrypt the data blocks of the data object being sent using the TLS networking protocol.

12. The system of claim 7 , wherein the system encrypts the data object before dividing the data object into data blocks.

13. The system of claim 7 , wherein the system receives a completion notification from the device.

14. A non-transitory machine-readable storage medium storing executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to:

receive instructions to distribute a data object to a device, the instructions indicating:

a messaging topic; and

a block size receivable by the device;

divide the data object into blocks of the block size receivable by the device;

in accordance with a networking protocol established by the device, send the blocks to the device using the messaging topic, wherein the messaging topic corresponds to the block size; and

as a result of receiving a missing block message from the device, resend a missing block to the device.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions further indicate a storage location from which the data object is obtainable.

16. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions further include deploying the data object according to a deployment schedule.

17. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions are received by a delivery service comprising a plurality of messaging topics.

18. The non-transitory machine-readable storage medium of claim 14 , wherein the instructions are based at least in part on delivery configuration data received at a data deployment manager service from a deployment setup client.

19. The non-transitory machine-readable storage medium of claim 14 , wherein a code signer service places a signature in at least one of the blocks of the data object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2021
From: YOUNG, RICHARD DAVID; LOLADIA, RAMEEZ; KRISHNAMOORTHY, SHYAM; JAIN, NIHAL CHAND
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 057125/0248 →
Continuity (1)
Continuation 15716373 · Sep 26, 2017
Cited By (1)
US 12,314,648