IP Library Granted Patent US 10,296,301
Granted Patent B2
US 10,296,301 · App. 15/176,912 · Granted May 21, 2019

Thing discovery and configuration for an internet of things integrated developer environment

Inventors: David A. Maluf (Mountain View, CA); Todd M. Baker (Los Altos, CA); Haihua Xiao (Shanghai, CN); Yi Wang (Shanghai, CN); Ashutosh A. Malegaonkar (Milpitas, CA); Yajun Zhang (Santa Clara, CA)
Assignee: Cisco Technology, Inc.
G06F8/34G06F8/30H04L41/0856H04L41/12
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 10,296,301
App. No.
15/176,912
Granted
May 21, 2019
Kind
B2
Abstract

According to one or more embodiments of the disclosure, thing discovery and configuration for an Internet of Things (IoT) integrated developer environment (IDE) is shown and described. In particular, in one embodiment, a computer operates an IoT IDE that discovers real-world physical devices within a computer network that are available to participate with the IoT IDE. The IoT IDE may then determine a respective functionality of each of the real-world physical devices, and virtually represents the real-world physical devices as selectable options within the IoT IDE for an IoT application, where a respective virtual representation of each of the real-world physical devices is configured within the IoT IDE with the corresponding respective functionality of that real-world physical device. Simulating the IoT application within the IoT IDE then relays input and/or output (I/O) between the IoT IDE and a selected set of real-world physical devices according to their corresponding respective functionality.

Claims (57)

1. A method, comprising:

operating, by a computer, an Internet of Things (IoT) integrated developer environment (IDE) to develop a new IoT application;

discovering, by the IoT IDE, one or more network local and network remote real-world physical devices within a computer network that are available to participate with the IoT IDE, wherein discovering the one or more real-world physical devices that are available to participate with the IoT IDE comprises:

automatically discovering, by the IoT IDE, an access device that is configured to interact with one or more hidden devices to provide network connectivity to the one or more hidden devices, wherein the access device is discovered using a different communication protocol than used by the hidden devices and the hidden devices represent otherwise undiscoverable things attached to the access device because the hidden devices are not attached to the computer network themselves; and

automatically creating virtual instances of the automatically discovered one or more hidden devices within the one or more virtually represented real-world physical devices as selectable options within the IoT IDE;

importing, by the IoT IDE, a particular format file used to describe each of the one or more real-world physical devices;

determining, by the IoT IDE, a respective functionality of each of the one or more real-world physical devices based on the imported format file for each of the one or more real-world physical devices;

virtually representing the one or more real-world physical devices as selectable options within the IoT IDE for the IoT application, wherein a respective virtual representation of each of the one or more real-world physical devices is configured within the IoT IDE with the corresponding respective functionality of that real-world physical device; and

based on the virtual representation of the one or more real-world physical devices, simulating the IoT application within the IoT IDE, wherein the simulating relays input and/or output (I/O) between the IoT IDE and a selected set of real-world physical devices according to their corresponding respective functionality identified in the virtual representation.

2. The method as in claim 1 , wherein determining the respective functionality of a particular real-world physical device comprises:

accessing a remote networked database of device functionalities associated with the particular real-world device.

3. The method as in claim 1 , wherein determining the respective functionality of a particular real-world physical device comprises:

accessing a local database of device functionalities within the IoT IDE if the particular real-world physical device functionality is already known by the IDE.

4. The method as in claim 1 , wherein determining the respective functionality of a particular real-world physical device comprises:

obtaining device functionality from the particular real-world physical device.

5. The method as in claim 1 , further comprising:

configuring a library of virtual devices as additional selectable options within the IoT IDE for the IoT application.

6. The method as in claim 1 , discovering real-world physical devices comprises:

participating in a request-response beacon exchange and registration protocol between the IoT IDE and the one or more real-world physical devices.

7. The method as in claim 1 , wherein discovering real-world physical devices is limited by a degree of discoverability.

8. The method as in claim 7 , wherein the degree of discoverability is based on a feature selected from a group consisting of: physical attachment; local network connection; policy control; and security control.

9. 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.

10. 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) to develop a new IoT application;

discover one or more network local and network remote real-world physical devices within a computer network that are available to participate with the IoT IDE, wherein discovering the one or more real-world physical devices that are available to participate with the IoT IDE comprises:

automatically discovering, by the IoT IDE, an access device that is configured to interact with one or more hidden devices to provide network connectivity to the one or more hidden devices, wherein the access device is discovered using a different communication protocol than used by the hidden devices and the hidden devices represent otherwise undiscoverable things attached to the access device because the hidden devices are not attached to the computer network themselves; and

automatically creating virtual instances of the automatically discovered one or more hidden devices within the one or more virtually represented real-world physical devices as selectable options within the IoT IDE;

import a particular format file used to describe each of the one or more real-world physical devices;

determine a respective functionality of each of the one or more real-world physical devices based on the imported format file for each of the one or more real-world physical devices;

virtually represent the one or more real-world physical devices as selectable options within the IoT IDE for an IoT application, wherein a respective virtual representation of each of the one or more real-world physical devices is configured within the IoT IDE with the corresponding respective functionality of that real-world physical device; and

based on the virtual representation of the one or more real-world physical devices, simulate the IoT application within the IoT IDE, wherein the simulating relays input and/or output (I/O) between the IoT IDE and a selected set of real-world physical devices according to their corresponding respective functionality identified in the virtual representation.

11. The computer-readable media as in claim 10 , wherein the program instructions when executed to determining the respective functionality of a particular real-world physical device are configured to either:

a) access a remote networked database of device functionalities associated with the particular real-world device;

b) access a local database of device functionalities within the IoT IDE if the particular real-world physical device functionality is already known by the IDE; or

c) obtain device functionality from the particular real-world physical device.

12. The computer-readable media as in claim 10 , wherein the program instructions when executed are configured to:

configure a library of virtual devices as additional selectable options within the IoT IDE for the IoT application.

13. The computer-readable media as in claim 10 , wherein the program instructions when executed to discover real-world physical devices are configured to:

participate in a request-response beacon exchange and registration protocol between the IoT IDE and the one or more real-world physical devices.

14. The computer-readable media as in claim 10 , wherein discovering real-world physical devices is limited by a degree of discoverability.

15. 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) to develop a new IoT application;

discover one or more network local and network remote real-world physical devices within a computer network that are available to participate with the IoT IDE, wherein discovering the one or more real-world physical devices that are available to participate with the IoT IDE comprises:

automatically discovering, by the IoT IDE, an access device that is configured to interact with one or more hidden devices to provide network connectivity to the one or more hidden devices, wherein the access device is discovered using a different communication protocol than used by the hidden devices and the hidden devices represent otherwise undiscoverable things attached to the access device because the hidden devices are not attached to the computer network themselves; and

automatically creating virtual instances of the automatically discovered one or more hidden devices within the one or more virtually represented real-world physical devices as selectable options within the IoT IDE;

import a particular format file used to describe each of the one or more real-world physical devices;

determine a respective functionality of each of the one or more real-world physical devices based on the imported format file for each of the one or more real-world physical devices;

virtually represent the one or more real-world physical devices as selectable options within the IoT IDE for an IoT application, wherein a respective virtual representation of each of the one or more real-world physical devices is configured within the IoT IDE with the corresponding respective functionality of that real-world physical device; and

based on the virtual representation of the one or more real-world physical devices, simulate the IoT application within the IoT IDE, wherein the simulating relays input and/or output (I/O) between the IoT IDE and a selected set of real-world physical devices according to their corresponding respective functionality identified in the virtual representation.

16. The apparatus as in claim 15 , wherein the process when executed to determining the respective functionality of a particular real-world physical device is operable to either:

a) access a remote networked database of device functionalities associated with the particular real-world device;

b) access a local database of device functionalities within the IoT IDE if the particular real-world physical device functionality is already known by the IDE; or

c) obtain device functionality from the particular real-world physical device.

17. The apparatus as in claim 15 , wherein the process when executed is further operable to:

configure a library of virtual devices as additional selectable options within the IoT IDE for the IoT application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2016
From: MALUF, DAVID A.; BAKER, TODD M.; XIAO, HAIHUA; WANG, YI; MALEGAONKAR, ASHUTOSH A.; ZHANG, YAJUN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 039510/0001 →
Continuity (2)
Provisional Application 62172476 · Jun 8, 2015
Related Publication 20160357524A1 · Dec 8, 2016