IP Library Granted Patent US 9,830,166
Granted Patent B2
US 9,830,166 · App. 14/688,852 · Granted Nov 28, 2017

Software-defined IoT controller

Inventors: Zhi-hong Zhang (Foster City, CA); Jonathan Andrew Banks (Dublin, CA); Laiwah Alice Leung (Danville, CA)
Assignee: Verizon Patent and Licensing Inc.
G06F9/4425G06F8/36G06F9/45508
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 9,830,166
App. No.
14/688,852
Granted
Nov 28, 2017
Kind
B2
Abstract

An Internet of things (IoT) controller may execute a first IoT application, associated with operating an IoT device, and a second IoT application associated with operating the IoT device. The IoT controller may load an IoT application program interface (API) associated with the first IoT application and the second IoT application, and may identify a first set of functions including a first function, associated with the first IoT application, and a second function associated with the second IoT application. The IoT controller may translate, based on the IoT API, the first set of functions to a second set of functions including a third function, associated with the first IoT application, and a fourth function associated with the second IoT application. The IoT controller may cause the IoT device to operate, based on the second set of functions, during the execution of the first IoT application and the second IoT application.

Claims (129)

1. An Internet of things (IoT) controller, comprising:

a memory storing instructions; and

a processor to execute the instructions to:

execute a first IoT application associated with operating an IoT device;

execute a second IoT application associated with operating the IoT device,

the second IoT application being executed during execution of the first IoT application;

load at least one virtual IoT device application program interface (API) associated with the first IoT application and the second IoT application;

identify a first set of functions,

the first set of functions including:

a first functional associated with the first IoT application, and

a second function associated with the second IoT application;

translate the first set of functions to a second set of functions based on the at least one virtual IoT device API,

the second set of functions including:

a third function identifiable for at least one driver API to control the IoT device, and

a fourth function identifiable for the at least one driver API to control the IoT device; and

cause the IoT device to operate, via the at least one driver API, based on the second set of functions,

the IoT device being caused to operate during execution of the first IoT application and the second IoT application.

2. The IoT controller of claim 1 , where the first function is associated with a first high-level programming language, the second function is associated with a second high-level programming language, and the third function and the fourth function are associated with a hardware-dependent programming language.

3. The IoT controller of claim 1 , where the processor is further to:

receive the at least one virtual IoT device API; and

store the at least one virtual IoT device API; and

where the processor, when loading the at least one virtual IoT device API, is to:

load the at least one virtual IoT device API after storing the at least one virtual IoT device API.

4. The IoT controller of claim 1 , where the processor is further to:

determine rules information associated with operating the IoT device,

the rules information identifying a priority associated with the third function and the fourth function; and

where the processor, when causing the IoT device to operate, via the at least one driver API, based on the second set of functions, is to:

cause the IoT device to operate, via the at least one driver API, based on third function and the fourth function, and in accordance with the rules information.

5. The IoT controller of claim 1 , where the processor is further to:

receive the first IoT application via an IoT app store device; and

store the first IoT application; and

where the processor, when executing the first IoT application, is to:

execute the first IoT application after storing the first IoT application.

6. The IoT controller of claim 5 , where the processor is further to:

receive the second IoT application,

the second IoT application being received after the first IoT application is received; and

store the second IoT application; and

where the processor, when executing the second IoT application, is to:

execute the second IoT application after storing the second IoT application.

7. The IoT controller of claim 1 , where the processor is further to:

load a set of driver APIs associated with the IoT device,

the set of driver APIs corresponding to the at least one virtual IoT device API, and

the set of driver APIs including the at least one driver API; and

where the processor, when causing the IoT to operate based on the second set of functions, is to:

cause the IoT device to operate based on loading the set of driver APIs.

8. A method, comprising:

executing, by a controller, a first IoT application associated with operating an IoT device;

executing, by the controller, a second IoT application associated with operating the IoT device,

the second IoT application being executed while the first IoT application is executing;

loading, by the controller, a set of virtual IoT device application program interfaces (APIs) associated with the first IoT application and the second IoT application;

identifying, by the controller, a first set of functions,

the first set of functions including:

a first function associated with the first IoT application, and

a second function associated with the second IoT application;

translating, by the controller, the first set of functions to a second set of functions based on the set of virtual IoT device APIs,

the second set of functions including:

a third function identifiable for at least one driver API to control the IoT device, and

a fourth function identifiable for the at least one driver API to control the IoT device; and

causing, by the controller, the IoT device to operate, via the at least one driver API, based on the second set of functions,

the IoT device being caused to operate while the first IoT application and the second IoT application are being executed.

9. The method of claim 8 , where the first function is associated with a first high-level programming language, the second function is associated with a second high-level programming language, and the third function and the fourth function are associated with a hardware-dependent programming language.

10. The method of claim 8 , further comprising:

receiving the set of virtual IoT device APIs; and

storing the set of virtual IoT device APIs; and

where loading the set of virtual IoT device APIs for the IoT device comprises:

loading the set of virtual IoT device APIs after storing the set of virtual IoT device APIs.

11. The method of claim 8 , further comprising:

determining rules information associated with operating the IoT device,

the rules information identifying a priority associated with the third function and the fourth function; and

where causing the IoT device to operate, via the at least one driver API, based on the second set of functions comprises:

causing the IoT device to operate, via the at least one driver API, based on third function and the fourth function, and in accordance with the rules information.

12. The method of claim 8 , further comprising:

receiving the first IoT application via an IoT app store device; and

storing the first IoT application; and

where executing the first IoT application comprises:

executing the first IoT application after storing the first IoT application.

13. The method of claim 12 , further comprising:

receiving the second IoT application,

the second IoT application being received after the first IoT application is received; and

storing the second IoT application; and

where executing the second IoT application comprises:

executing the second IoT application after storing the second IoT application.

14. The method of claim 8 , further comprising:

loading a set of driver APIs, associated with the IoT device,

the set of driver APIs corresponding to the set of virtual IoT device APIs, and

the set of driver APIs including the at least one driver API; and

where causing the IoT to operate, via the at least one driver API, based on the second set of functions comprises:

causing the IoT device to operate based on loading the set of driver APIs.

15. A system, comprising:

one or more devices comprising:

a memory to store instructions; and

a processor to execute the instructions to:

execute a first IoT application associated with an IoT device;

execute a second IoT application associated with the IoT device,

the second IoT application being executed during execution of the first IoT application;

load an IoT application program interface (API) associated with the first IoT application and the second IoT application;

receive a first set of functions,

the first set of functions including:

 a first function associated with the first IoT application, and

 a second function associated with the second IoT application;

translate the first set of functions to a second set of functions based on the IoT API,

the second set of functions including:

 a third function identifiable for at least one driver API to control the IoT device, and

 a fourth function identifiable for the at least one driver API to control the IoT device;

load a set of driver API corresponding to the IoT API and associated with the second set of functions; and

control the IoT device, via the at least one driver API, based on the second set of functions and the set of driver APIs,

the IoT device being controlled while the first IoT application is executing and while the second IoT application is executing.

16. The system of claim 15 , where the first function is associated with a first high-level programming language, the second function is associated with a second high-level programming language, and the third function and the fourth function are associated with a hardware-dependent programming language.

17. The system of claim 15 , where the processor is further to:

receive the IoT API; and

store the IoT API; and

where the processor, when loading the IoT API, is to:

load the IoT API based on storing the IoT API.

18. The system of claim 15 , where the processor is further to:

determine rules information associated with operating the IoT device,

the rules information identifying a priority associated with the third function and the fourth function; and

where the processor, when controlling the IoT device, via the at least one driver API, based on the second set of functions, is to:

control the IoT device, via the at least one driver API, based on third function and the fourth function, and in accordance with the rules information.

19. The system of claim 15 , where the processor is further to:

receive the first IoT application via an IoT app store device; and

store the first IoT application; and

where the processor, when executing the first IoT application, is to:

execute the first IoT application after storing the first IoT application.

20. The system of claim 19 , where the processor is further to:

receive the second IoT application,

the second IoT application being received after the first IoT application is received; and

store the second IoT application; and

where the processor, when executing the second IoT application, is to:

execute the second IoT application after storing the second IoT application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: ZHANG, ZHI-HONG; BANKS, JONATHAN ANDREW; LEUNG, LAIWAH ALICE
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 035430/0518 →
Continuity (1)
Related Publication 20160308957A1 · Oct 20, 2016