# US 10,503,484 B2 · Virtual replication of physical things for scale-out in an internet of things integrated developer environment

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

- Number: US 10,503,484 B2
- Document ID: US10503484B2
- Status: Granted
- Kind: B2
- Application number: 15/176,877
- Filed: 2016-06-08
- Published: 2016-12-08
- Granted: 2019-12-10
- Earliest claimed: 2015-06-08
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Yajun Zhang; Susie Wee; Ashutosh A. Malegaonkar
- Web page: https://patentgrep.com/patent/US10503484B2

## CPC

- G06F 8/34: Graphical or visual programming
- G06F 8/60: Software deployment
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to one or more embodiments of the disclosure, virtual replication of physical things for scale-out in an Internet of Things (IoT) integrated developer environment (IDE) is shown and described. In particular, in one embodiment, a computer operates an Internet of Things (IoT) integrated developer environment (IDE) that accesses one or more real-world physical devices within a computer network that are configured to participate with the IoT IDE. The IoT IDE may then virtually replicate the one or more real-world physical devices within the IoT IDE into a configuration of virtual devices within the IoT IDE, such that simulating an IoT application within the IoT IDE results in relaying input and/or output (I/O) messages between the IoT IDE and the one or more real-world physical devices, and virtually replicating those I/O messages according to the configuration of virtual devices within the IoT IDE.

## Claims

### Claim 1

A method, comprising:
operating, by a computer, an Internet of Things (IoT) integrated developer environment (IDE);
accessing, by the IoT IDE, one or more real-world physical devices within a computer network that are configured to participate with the IoT IDE;
virtually replicating the one or more real-world physical devices within the IoT IDE into a configuration of virtual devices within the IoT IDE;
simulating, within the IoT IDE, an IoT application that includes one or more graphs of connectivity of real-world physical devices, wherein the simulating a) relays input and/or output (I/O) messages between the IoT IDE and the one or more real-world physical devices, and b) virtually replicates those I/O messages according to the configuration of virtual devices within the IoT IDE; and
scaling-out the IoT application by virtually replicating a real-world physical graph of connected real-world physical devices multiple times until forming a larger virtual graph of virtualized devices that represent a larger scale deployment than the real-world physical devices,
wherein scaling-out the IoT application further comprises: scaling-out the IoT application by virtually replicating individual real-world physical devices within a logical graph of the IoT IDE.

### Claim 2 (depends on 1)

The method as in claim 1, wherein the IoT application further includes one or more virtual devices logically interconnected with the one or more real-world physical devices.

### Claim 3 (depends on 1)

The method as in claim 1, wherein scaling-out the IoT application further comprises:
scaling-out the IoT application by virtually replicating individual real-world physical devices within a plurality of logical sub-graphs of the IoT IDE.

### Claim 4 (depends on 1)

The method as in claim 1, wherein the real-world physical devices are selected from a group consisting of: sensors; actuators; fog nodes; cloud-processing devices; and end-user devices.

### Claim 5

A tangible, non-transitory computer-readable media comprising program instructions, which when executed on a processor are configured to:
operate an Internet of Things (IoT) integrated developer environment (IDE);
access one or more real-world physical devices within a computer network that are configured to participate with the IoT IDE;
virtually replicate the one or more real-world physical devices within the IoT IDE into a configuration of virtual devices within the IoT IDE;
simulate, within the IoT IDE, an IoT application that includes one or more graphs of connectivity of real-world physical devices, wherein the simulating a) relays input and/or output (I/O) messages between the IoT IDE and the one or more real-world physical devices, and b) virtually replicates those I/O messages according to the configuration of virtual devices within the IoT IDE; and
scale-out the IoT application by virtually replicating a real-world physical graph of connected real-world physical devices multiple times until forming a larger virtual graph of virtualized devices that represent a larger scale deployment than the real-world physical devices,
wherein the program instructions when executed to scale-out are further configured to: scale-out the IoT application by virtually replicating individual real-world physical devices within a logical graph of the IoT IDE.

### Claim 6 (depends on 5)

The computer-readable media as in claim 5, wherein the IoT application further comprises one or more virtual devices logically interconnected with the one or more real-world physical devices.

### Claim 7 (depends on 5)

The computer-readable media as in claim 5, wherein the program instructions when executed to scale-out are further configured to:
scale-out the IoT application by virtually replicating individual real-world physical devices within a plurality of logical sub-graphs of the IoT IDE.

### Claim 8 (depends on 5)

The computer-readable media as in claim 5, wherein the real-world physical devices are selected from a group consisting of: sensors; actuators; fog nodes; cloud-processing devices; and end-user devices.

### Claim 9

An apparatus, comprising:
a processor adapted to execute one or more processes; and
a memory configured to store a process executable by the processor, the process when executed operable to:
operate an Internet of Things (IoT) integrated developer environment (IDE);
access one or more real-world physical devices within a computer network that are configured to participate with the IoT IDE;
virtually replicate the one or more real-world physical devices within the IoT IDE into a configuration of virtual devices within the IoT IDE;
simulate, within the IoT IDE, an IoT application that includes one or more graphs of connectivity of real-world physical devices, wherein the simulating a) relays input and/or output (I/O) messages between the IoT IDE and the one or more real-world physical devices, and b) virtually replicates those I/O messages according to the configuration of virtual devices within the IoT IDE; and
scale-out the IoT application by virtually replicating a real-world physical graph of connected real-world physical devices multiple times until forming a larger virtual graph of virtualized devices that represent a larger scale deployment than the real-world physical devices,
wherein the process when executed to scale-out is further operable to: scale-out the IoT application by virtually replicating individual real-world physical devices within a logical graph of the IoT IDE.

### Claim 10 (depends on 9)

The apparatus as in claim 9, wherein the IoT application further comprises one or more virtual devices logically interconnected with the one or more real-world physical devices.

### Claim 11 (depends on 9)

The apparatus as in claim 9, wherein the process when executed to scale-out is further operable to:
scale-out the IoT application by virtually replicating individual real-world physical devices within a plurality of logical sub-graphs of the IoT IDE.
