IP Library Granted Patent US 11,025,722
Granted Patent B2
US 11,025,722 · App. 15/488,445 · Granted Jun 1, 2021

IoT device jobs

Inventors: Juan Perez (Redmond, WA); Affan Dar (Redmond, WA); Simon Porter (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/125G06F9/4881H04L67/32
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,025,722
App. No.
15/488,445
Granted
Jun 1, 2021
Kind
B2
Abstract

The disclosed technology is generally directed to communications in an IoT environment. In one example of the technology, device twins for corresponding IoT devices are stored, wherein the device twins include metadata that is associated with the corresponding IoT devices. A schedule job instruction may be received, and at least one candidate IoT device among the IoT devices that is associated with the schedule job instruction may be identified. In some examples, executors associated with the at least one candidate IoT device are created, and jobs are executed via the executors such that the executors are capable of resuming execution after at least one of an outage or a failure.

Claims (45)

1. A method for Internet of Thing (IoT) communications, comprising:

storing device twins for corresponding IoT devices, wherein the device twins include metadata that is associated with the corresponding IoT devices;

receiving a schedule job instruction;

identifying at least one candidate IoT device from amongst the IoT devices that are associated with the schedule job instruction;

using at least one processor to create executors associated with the at least one candidate IoT device, such that the executors include durable state machines; and

executing jobs via the executors such that the executors are capable of resuming execution after at least one of an outage or a failure of at least one of the executors, and such that the jobs include at least one of an update to at least one device twin, a query to at least one device twin, a request to at least one IoT device, or a request to at least one external cloud service, wherein executing the jobs includes performing at least a first sub-activity and re-trying the first sub-activity until the first sub-activity is successful or a time-to-live is reached, and wherein the durable state machines durably store a current state that is associated with the first sub-activity.

2. The method of claim 1 , wherein the metadata includes, for the corresponding IoT devices: tags, reported properties, and desired properties.

3. The method of claim 1 , further comprising:

sending outcomes via the executors.

4. The method of claim 1 , further comprising:

in response to receiving the schedule job instruction, making a call to a job scheduler of an IoT support service.

5. The method of claim 4 , further comprising:

the job scheduler sending scheduling commands to device twins corresponding to the identified candidate IoT devices.

6. The method of claim 4 , further comprising:

in response to the call to the job scheduler, instantiating a job.

7. The method of claim 6 , further comprising, after instantiating the job, running the job.

8. The method of claim 6 , further comprising, after instantiating the job, running the job at a subsequent scheduled time.

9. The method of claim 1 , further comprising:

sending scheduling commands to device twins corresponding to the identified candidate IoT devices.

10. The method of claim 9 , wherein using the at least one processor to create the executors associated with the at least one candidate IoT device is accomplished via the device twins corresponding to the identified candidate IoT devices.

11. An apparatus for Internet of Things (IoT) communications, comprising:

a device including at least one memory adapted to store run-time data for the device, and at least one processor that is adapted to execute processor-executable code that, in response to execution, enables the device to perform actions, including:

storing device twins for corresponding IoT devices, wherein the device twins include metadata that is associated with the corresponding IoT devices;

receiving a schedule job instruction;

identifying at least one candidate IoT device from amongst the IoT devices that are associated with the schedule job instruction;

creating executors associated with the at least one candidate IoT device, such that the executors include durable state machines; and

executing jobs via the executors such that the executors are capable of resuming execution after at least one of an outage or a failure of at least one of the executors, and such that the jobs include at least one of an update to at least one device twin, a query to at least one device twin, a request to at least one IoT device, or a request to at least one external cloud service, wherein executing the jobs includes performing at least a first sub-activity and re-trying the first sub-activity until the first sub-activity is successful or a time-to-live is reached, and wherein the durable state machines durably store a current state that is associated with the first sub-activity.

12. The apparatus of claim 11 , the actions further including:

sending scheduling commands to device twins corresponding to the identified candidate IoT devices.

13. The apparatus of claim 12 , wherein at least one processor is further adapted such that creating the executors associated with the at least one candidate IoT device is accomplished via the device twins corresponding to the identified candidate IoT devices.

14. The apparatus of claim 11 , the actions further including:

in response to receiving the schedule job instruction, making a call to a job scheduler of an IoT support service.

15. The apparatus of claim 14 , the actions further including:

in response to the call to the job scheduler, instantiating a job.

16. A processor-readable storage medium, having stored thereon processor-executable code that, upon execution by at least one processor, enables actions, comprising:

generating device job actors associated with at least one IoT device, such that the device job actors include durable state machines; and

executing jobs via the device job actors such that the device job actors are capable of resuming execution after at least one of an outage or a failure of at least one of the device job actors, and such that the jobs include at least one of an update to at least one device twin, a query to at least one device twin, a request to at least one IoT device, or a request to at least one external cloud service, wherein executing the jobs includes performing at least a first sub-activity and re-trying the first sub-activity until the first sub-activity is successful or a time-to-live is reached, and wherein the durable state machines durably store a current state that is associated with the first sub-activity.

17. The processor-readable storage medium of claim 16 , the actions further comprising:

sending scheduling commands to device twins corresponding to the at least one IoT devices.

18. The processor-readable storage medium of claim 17 , wherein generating device job actors associated with at least one IoT device is accomplished via the device twins corresponding to the identified candidate IoT devices.

19. The processor-readable storage medium of claim 16 , the actions further comprising:

receiving a schedule job instruction; and

identifying at least one candidate IoT device from amongst the IoT devices that are associated with the schedule job instruction such that the at least one IoT device is the identified at least one candidate IoT device.

20. The processor-readable storage medium of claim 19 , the actions further comprising:

in response to receiving the schedule job instruction, making a call to a job scheduler of an IoT support service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2017
From: PEREZ, JUAN; DAR, AFFAN; PORTER, SIMON
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 042022/0440 →
Continuity (1)
Related Publication 20180302476A1 · Oct 18, 2018