# US 12,113,862 B2 · IoT licensing platform and architecture

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

- Number: US 12,113,862 B2
- Document ID: US12113862B2
- Status: Granted
- Kind: B2
- Application number: 18/223,666
- Filed: 2023-07-19
- Published: 2023-11-09
- Granted: 2024-10-08
- Earliest claimed: 2021-07-26
- Assignees: Schneider Electric USA, Inc.
- Applicants: Schneider Electric USA, Inc.
- Inventors: Victor Danilchenko; Daniel Cohen
- Web page: https://patentgrep.com/patent/US12113862B2

## CPC

- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- G06F 21/10: Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]}
- G06F 21/105: {Arrangements for software license management or administration, e.g. for managing licenses at corporate level}
- G16Y 40/10: Detection; Monitoring
- G16Y 40/35: Management of things, i.e. controlling in accordance with a policy or in order to achieve specified objectives
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- 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)
- G16Y: INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]

## Abstract

Techniques are described for managing licenses of Internet of Things devices. One embodiment includes receiving, at a network management system, a request to allocate a license to a first endpoint device. Real-time device metadata and state data for the first endpoint device are accessed. Embodiments select a license instance, from a plurality of license instances, to allocate to the first endpoint device, based at least in part on the real-time device metadata and state data for the first endpoint device. The selected license instance is assigned to the first endpoint device and at least an indication that a valid license has been assigned to the first endpoint device is transmitted to the first endpoint device.

## Claims

### Claim 1

A method, comprising:
receiving, at a network management system, a request to allocate a license to a first endpoint device, wherein the first endpoint device further comprises a first Internet of Things (IoT) device;
selecting a license instance, from a plurality of license instances, to allocate to the first endpoint device, based at least in part on one or more of:
real-time device metadata for the first endpoint device,
state data for the first endpoint device,
additional real-time device metadata for one or more other endpoint devices within an IoT environment including the first endpoint device, and
additional state data for the one or more other endpoint devices within the IoT environment;
identifying a digital twin maintained by the network management system and corresponding to the first endpoint device, wherein the digital twin comprises a digital representation of a current state of the first endpoint device; and
assigning the selected license instance to the first endpoint device comprising setting a value in the digital twin indicating that a valid license has been assigned to the first endpoint device,
wherein a digital twin synchronization operation is performed to provide, to the first endpoint device, an indication that the valid license has been assigned to the first endpoint device.

### Claim 2 (depends on 1)

The method of claim 1, wherein selecting the license instance further comprises:
determining a task to perform within the IoT environment;
identifying a plurality of IoT devices, inclusive of the first IoT device, that are suitable for assisting in performing the determined task;
selecting the first IoT device, from the plurality of IOT devices, based on the real-time device metadata and state data corresponding to the first IoT device and one or more predefined requirements associated with the determined task.

### Claim 3 (depends on 2)

The method of claim 2, wherein selecting the license instance and assigning the selected license instance to the first IOT device are further based on the selection of the first IoT device, and further comprising:
upon providing, to the first endpoint device, the at least an indication that the valid license has been assigned to the first endpoint device, transmitting one or more instructions to the first endpoint device instructing the first endpoint device to perform one or more actions involved in the performance of the determined task.

### Claim 4 (depends on 1)

The method of claim 1, wherein the value in the digital twin indicating that a valid license has been assigned to the first endpoint device is a Boolean value,
wherein performing a digital twin synchronization operation to provide, to the first endpoint device, an indication that the valid license has been assigned to the first endpoint device further comprises transmitting the Boolean value from the digital twin to the first endpoint device,
and wherein the first endpoint device further comprises computer logic configured to determine that the valid license has been assigned to the first endpoint device based on the received Boolean value.

### Claim 5 (depends on 1)

The method of claim 1, wherein selecting the license instance, from the plurality of license instances, to allocate to the first endpoint device, further comprises:
transmitting one or more requests to at least one of an entitlement management system and a licensing platform, external to the network management system, to determine the plurality of license instances.

### Claim 6 (depends on 1)

The method of claim 1, wherein the digital twin synchronization operation further comprises at least one of:
pushing data from the digital twin to the first endpoint device whenever a state change event occurs for a variable of the digital twin,
periodically transmit a set of changes values from the digital twin to the first endpoint device, and
transmitting one or more values from the digital twin to the first endpoint device upon receiving a request from the first endpoint device.

### Claim 7 (depends on 1)

The method of claim 1, wherein providing, to the first endpoint device, at least an indication that the valid license has been assigned to the first endpoint device further comprises transmitting license metadata describing expiration attributes corresponding to the assigned license, wherein the expiration attributes further comprise at least one of a duration of the valid license, a point in time at which the valid license will expire, and a number of operations that can be performed before the valid license will expire.

### Claim 8

A system, comprising:
one or more computer processors; and
a memory containing computer program code that, when executed by operation of the one or more computer processors, performs an operation comprising:
receiving, at a network management system, a request to allocate a license to a first endpoint device, wherein the first endpoint device further comprises a first Internet of Things (IOT) device;
selecting a license instance, from a plurality of license instances, to allocate to the first endpoint device, based at least in part on one or more of:
real-time device metadata for the first endpoint device,
state data for the first endpoint device,
additional real-time device metadata for one or more other endpoint devices within an IoT environment including the first endpoint device, and
additional state data for the one or more other endpoint devices within the IoT environment;
assigning the selected license instance to the first endpoint device; and
providing, to the first endpoint device, at least an indication that a valid license has been assigned to the first endpoint device.

### Claim 9 (depends on 8)

The system of claim 8, wherein selecting the license instance further comprises:
determining a task to perform within the IoT environment;
identifying a plurality of IoT devices, inclusive of the first IoT device, that are suitable for assisting in performing the determined task;
selecting the first IoT device, from the plurality of IoT devices, based on the real-time device metadata and state data corresponding to the first IOT device and one or more predefined requirements associated with the determined task.

### Claim 10 (depends on 9)

The system of claim 9, wherein selecting the license instance and assigning the selected license instance to the first IOT device are further based on the selection of the first IoT device, and further comprising:
upon providing, to the first endpoint device, the at least an indication that the valid license has been assigned to the first endpoint device, transmitting one or more instructions to the first endpoint device instructing the first endpoint device to perform one or more actions involved in the performance of the determined task.

### Claim 11 (depends on 8)

The system of claim 8, wherein providing, to the first endpoint device, the at least an indication that the valid license has been assigned to the first endpoint device further comprises transmitting a Boolean value to the first endpoint device, and wherein the first endpoint device comprises computer logic configured to determine that the valid license has been assigned to the first endpoint device based on the received Boolean value.

### Claim 12 (depends on 8)

The system of claim 8, wherein selecting the license instance, from the plurality of license instances, to allocate to the first endpoint device, further comprises:
transmitting one or more requests to at least one of an entitlement management system and a licensing platform, external to the network management system, to determine the plurality of license instances.

### Claim 13 (depends on 8)

The system of claim 8, further comprising:
maintaining, by the network management system, a digital twin comprising a data model that digitally represents the first endpoint device,
wherein assigning the selected license instance to the first endpoint device further comprises setting a value in the digital twin representing that a valid license instance has been assigned to the first endpoint device, and
wherein once the at least an indication that a valid license has been assigned to the first endpoint device is provided to the digital twin, the set value in the digital twin is transmitted to the first endpoint device using a digital twin synchronization process.

### Claim 14 (depends on 13)

The system of claim 13, wherein the digital twin synchronization process further comprises at least one of:
pushing data from the digital twin to the first endpoint device whenever a state change event occurs for a variable of the digital twin,
periodically transmit a set of changes values from the digital twin to the first endpoint device, and
transmitting one or more values from the digital twin to the first endpoint device upon receiving a request from the first endpoint device.

### Claim 15 (depends on 8)

The system of claim 8, wherein providing, to the first endpoint device, at least an indication that the valid license has been assigned to the first endpoint device further comprises transmitting license metadata describing expiration attributes corresponding to the assigned license.

### Claim 16

A non-transitory computer-readable medium containing computer program code that, when executed by operation of one or more computer processors, performs an operation comprising:
receiving, at a network management system, a request for a first endpoint device to perform a predefined operation, wherein the first endpoint device further comprises a first Internet of Things (IOT) device;
determining a plurality of licenses that are required for the first endpoint device to be authorized to perform the predefined operation;
selecting two or more license instances, from a plurality of license instances, to allocate to the first endpoint device, based on the determined plurality of licenses that are required for the first endpoint device to be authorized to perform the predefined operation and further based on one or more of:
real-time device metadata for the first endpoint device,
state data for the first endpoint device,
additional real-time device metadata for one or more other endpoint devices within an IoT environment including the first endpoint device, and
additional state data for the one or more other endpoint devices within the IoT environment;
assigning the selected two or more license instances to the first endpoint device; and
providing, to the first endpoint device, at least an indication that valid licenses have been assigned to the first endpoint device.
