# US 12,015,499 B2 · Adaptive deployment of applications

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

- Number: US 12,015,499 B2
- Document ID: US12015499B2
- Status: Granted
- Kind: B2
- Application number: 17/702,264
- Filed: 2022-03-23
- Published: 2022-08-25
- Granted: 2024-06-18
- Earliest claimed: 2017-02-05
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Mark Yarvis; Aaron R. Berck; Sharad K. Garg; Casey Rathbone; Andrew G. Shirtz; Ron Kuruvilla Thomas; Xubo Zhang
- Web page: https://patentgrep.com/patent/US12015499B2

## CPC

- H04L 12/2814: {Exchanging control software or macros for controlling appliance services in a home automation network (arrangements for maintenance or administration involving configuration of the network and network elements H04L41/08)}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 8/60: Software deployment
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/5061: {Partitioning or combining of resources}
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- H04L 12/281: {indicating a format for calling an appliance service function in a home automation network (for remote control or remote monitoring of applications H04L67/025)}
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04W 4/70: Services for machine-to-machine communication [M2M] or machine type communication [MTC]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

An Internet of Things (IoT) system that includes an orchestration device is provided. The orchestration device receives resource requirements and accesses a device/capability map to produce a task deployment map.

## Claims

### Claim 1

An orchestration device to orchestrate an Internet of Things (IoT) network, comprising:
a processor;
a memory device including instructions, which when executed by the processor, cause the processor to:
receive resource requirements for an application to execute on a first plurality of devices in the IoT network;
access a capability graph of a second plurality of devices in the IoT network;
identify a container deployment plan, based on the capability graph, that satisfies the resource requirements; and
communicate with one of the second plurality of devices in the IoT network to deploy containers based on the container deployment plan.

### Claim 2 (depends on 1)

The orchestration device of claim 1, wherein the capability graph comprises attributes and capabilities of a device of the second plurality of devices.

### Claim 3 (depends on 1)

The orchestration device of claim 1, wherein the instructions cause the processor to obtain current device state and metrics from a device.

### Claim 4 (depends on 3)

The orchestration device of claim 3, wherein the instructions cause the processor to provide the current device state and metrics for the device to the capability graph.

### Claim 5 (depends on 1)

The orchestration device of claim 1, comprising a container repository comprising containerized tasks.

### Claim 6 (depends on 1)

The orchestration device of claim 1, comprising instructions, which cause the processor to identify a device and its capabilities, during onboarding, and incorporate the device and its capabilities into the capability graph.

### Claim 7 (depends on 1)

The orchestration device of claim 1, wherein a device of the first plurality of devices includes a containerized task to implement a portion of the application.

### Claim 8

A method for orchestrating an Internet of Things (IoT) network, comprising:
receiving, at an orchestration device, resource requirements for an application to execute on a first plurality of devices in the IoT network;
accessing a capability graph of a second plurality of devices in the IoT network;
identifying a container deployment plan, based on the capability graph, that satisfies the resource requirements; and
communicating with one of the second plurality of devices in the IoT network to deploy containers based on the container deployment plan.

### Claim 9 (depends on 8)

The method of claim 8, wherein the capability graph comprises attributes and capabilities of a device of the second plurality of devices.

### Claim 10 (depends on 8)

The method of claim 8, comprising obtaining current device state and metrics from a device.

### Claim 11 (depends on 10)

The method of claim 10, comprising providing the current device state and metrics for the device to the capability graph.

### Claim 12 (depends on 8)

The method of claim 8, wherein the orchestration device comprises a container repository comprising containerized tasks.

### Claim 13 (depends on 8)

The method of claim 8, comprising identifying a device and its capabilities, during onboarding, and incorporating the device and its capabilities into the capability graph.

### Claim 14 (depends on 8)

The method of claim 8, wherein a device of the first plurality of devices includes a containerized task to implement a portion of the application.

### Claim 15

At least one non-transitory machine-readable medium including instructions for orchestrating a mesh an Internet of Things (IoT) network, which when executed by an orchestrator device, cause the orchestrator device to:
receive resource requirements for an application to execute on a first plurality of devices in the IoT network;
access a capability map of a second plurality of devices in the IoT network;
identify a container deployment plan, based on the capability map, that satisfies the resource requirements; and
communicate with one of the second plurality of devices in the IoT network to coordinate deployment of containers based on the container deployment plan.

### Claim 16 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein the capability map comprises attributes and capabilities of a device of the second plurality of devices.

### Claim 17 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein the instructions cause the orchestrator device to access current device state and metrics from a device.

### Claim 18 (depends on 17)

The non-transitory machine-readable medium of claim 17, wherein the instructions cause the orchestrator device to provide the current device state and metrics for the device to the capability map.

### Claim 19 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein the orchestration device comprises a container repository comprising containerized tasks.

### Claim 20 (depends on 15)

The non-transitory machine-readable medium of claim 15, comprising instructions, which cause the orchestrator device to identify a device and its capabilities, during onboarding, and incorporate the device and its capabilities into the capability map.

### Claim 21 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein a device of the first plurality of devices includes a containerized task to implement a portion of the application.
