IP Library › Granted Patent US 10,735,521
Granted Patent B1
US 10,735,521 · App. 16/196,011 · Granted Aug 4, 2020

IoT network controller / server

Inventors: Jamie R. Woodhead (Pelham, NH); David L. Kjendal (Durham, NH)
Assignee: Senet, Inc.
H04L67/12H04L67/02H04L67/1002H04L67/2842
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,735,521
App. No.
16/196,011
Granted
Aug 4, 2020
Kind
B1
Abstract

A system and method for a software defined Internet of Things (IoT) Network Controller/Server including Network Controller Instances, a Network Controller Cluster, Application Controller Instances, Northbound and Southbound APIs, Uplink and Downlink Processor instances, and a Network Database. The invention leverages web-oriented technologies for a large horizontally scalable and highly available system. Horizontal scaling is accomplished by Network Controller instances which dynamically increases throughput for uplink and downlink processing. The event-driven architecture is coordinated through a distributed cache. Only Critical events are persisted as part of event processing; all others are stored in a cache and scheduled for persistence.

Claims (76)

1. A system for an Internet of Things (IoT) Network Controller/Server comprising:

at least one Application Controller (AC) Instance ( 305 );

a network ( 225 ) comprising a Network Controller Cluster (NCC) ( 320 ) interfacing through Load Balancers ( 335 , 340 );

said Network Controller Cluster (NCC) ( 320 ) comprising at least one Network Controller (NC) Instance ( 325 );

a network database memory comprising a Network Database ( 345 );

a Northbound API ( 375 ) through which said at least one Application Controller Instance ( 305 ) communicates with said at least one Network Controller Cluster ( 320 );

at least one Gateway (GW) device ( 205 , 365 );

a Southbound API ( 380 ) through which said at least one Gateway (GW) device ( 365 ) communicates with said Network Controller Cluster ( 320 );

at least one IoT Device ( 210 , 350 ) in communication with said at least one Gateway (GW) device ( 205 , 365 ); and

at least one Uplink Processor ( 425 ) comprising a processor device, wherein said at least one Uplink Processor ( 425 ) comprises at least one UpLink Processor (ULP) Instance ( 430 ), wherein said processor device of said at least one Uplink Processor ( 425 ) executes functions of said at least one ULP Instance ( 430 ) comprising:

handling messages from said GW device ( 205 , 365 ) to said NC, said messages containing application data and/or session management information;

establishing at least one session;

managing security keys between said AC, said NC, and said IoT Device ( 210 , 350 );

managing session parameters with said IoT Device ( 210 , 350 ) to optimize communication on an RF network;

deduplication of said messages from said IoT Devices ( 210 , 350 ) for delivery to said AC;

nomination of one of said at least one GW device ( 205 , 365 ) to be used by a Downlink Processor (DLP) for one of said at least one IoT Devices ( 210 , 350 ); and

discovery of Application Controller Services.

2. The system of claim 1 , wherein at least one said NC Instance ( 325 ) comprises highly available storage to persist network session information.

3. The system of claim 1 , wherein at least one said NC Instance ( 325 ) comprises highly available storage comprising a Mongo Cluster to persist network session information.

4. The system of claim 1 , comprising a Key Management Service ( 315 ) interfaced with said at least one Application Controller ( 305 ).

5. The system of claim 4 , wherein said Key Management Service ( 315 ) is external.

6. The system of claim 1 , wherein only critical events are persisted as part of event processing, all others are stored in a cache and scheduled for persistence.

7. The system of claim 1 , wherein at least one of said NC Instances ( 325 ) and said AC Instances ( 305 ) comprises a Representational State Transfer (REST) ( 420 ) web services interface.

8. The system of claim 1 , wherein at least one of said AC Instances ( 305 , 310 . . . ) is deployed internally to said NC ( 325 ).

9. The system of claim 1 , wherein at least one of said AC Instances ( 305 , 310 . . . ) is deployed as an external system.

10. The system of claim 1 , wherein at least one of said AC Instances ( 305 ) decrypts application uplink messages and encrypts application downlink messages.

11. The system of claim 1 , wherein said network database memory comprising Network Database ( 345 ) comprises storing IoT Device network session information, IoT Device profiles, and Gateway configuration parameters of said at least one Gateway (GW) device ( 205 , 365 ).

12. The system of claim 1 , wherein Messages are sent from said at least one NC Instance ( 325 ) to at least one of said GW devices ( 205 , 365 ) by a state-full Web Socket connection.

13. The system of claim 11 , wherein at least one of said AC instances ( 305 ) persists session information on at least one of a Key Management Service ( 315 ) and locally in an Application Database.

14. A method for an Internet of Things (IoT) Network Controller/Server comprising:

providing at least one Application Controller (AC) Instance ( 305 );

providing a Network Controller Cluster (NCC) ( 320 ) interfacing through Load Balancers ( 335 , 340 );

said Network Controller Cluster ( 320 ) comprising at least one Network Controller (NC) Instance ( 325 );

providing a Network Database ( 345 );

providing a Northbound API ( 375 ) through which said at least one Application Controller Instance ( 305 ) communicates with said at least one Network Controller Cluster ( 320 );

providing at least one Gateway (GW) device ( 205 , 365 );

providing a Southbound API ( 380 ) through which said at least one Gateway device ( 205 , 365 ) communicates with said Network Controller Cluster ( 320 );

providing at least one IoT Device ( 210 , 350 ) in communication with said at least one Gateway (GW) device ( 205 , 365 ); and

providing at least one Uplink Processor (ULP) Instance ( 430 ), functions of said at least one ULP Instance ( 430 ) comprising:

handling messages from said GW device ( 205 , 365 ) to said NC, said messages containing application data and/or session management information;

establishing at least one session;

managing security keys between said AC, said NC, and said IoT Device ( 210 , 350 );

managing session parameters with said IoT Device ( 210 , 350 ) to optimize communication on an RF network;

deduplication of said messages from said IoT Devices ( 210 , 350 ) for delivery to said AC;

nomination of one of said at least one GW device ( 205 , 365 ) to be used by a Downlink Processor (DLP) for one of said at least one IoT Devices ( 210 , 350 ); and

discovery of Application Controller Services.

15. The method of claim 14 , comprising:

providing at least one Downlink Processor (DLP) Instance ( 450 ), functions of said at least one DLP Instance ( 450 ) comprising:

queuing messages from said NC or said AC to said GWs/Devices;

delivering messages from said NC or said AC to said GWs/Devices;

wherein said messages from said NC contain session configuration information and said messages from said AC contain application data.

16. The method of claim 14 , wherein said Southbound API ( 380 ) communications comprise:

load-balanced messages across said NC Instances ( 325 ) based on IoT Device ID; and

wherein said messages are sent from said NC to said GW device ( 205 , 365 ) via a state-full Web Socket connection to one of said NC instances.

17. The method of claim 14 , wherein said Northbound API ( 380 ) communications comprise:

load-balanced requests across said NC Instances ( 325 ).

18. The method of claim 14 , wherein each said NC Instance ( 325 ) comprises at least one of:

service discovery ( 445 ) and

network session management ( 435 ).

19. An apparatus for an Internet of Things (IoT) Network Controller/Server comprising:

at least one Application Controller (AC) Instance ( 305 );

a network ( 225 ) comprising a Network Controller Cluster (NCC) ( 320 ) interfacing through Load Balancers ( 335 , 340 );

said Network Controller Cluster (NCC) ( 320 ) comprising at least one Network Controller (NC) Instance ( 325 );

a network database memory comprising a Network Database ( 345 );

a Northbound API ( 375 ) through which said at least one Application Controller Instance ( 305 ) communicates with said at least one Network Controller Cluster ( 320 );

at least one Gateway (GW) device ( 205 , 365 ) device;

a Southbound API ( 380 ) through which said at least one Gateway (GW) device ( 205 , 350 ) communicates with said Network Controller Cluster ( 320 );

at least one Internet of Things (IoT) Device ( 210 , 350 ) in communication with said at least one Gateway (GW) device ( 205 , 350 ); and

at least one Uplink Processor ( 425 ) comprising a processor device, wherein said at least one Uplink Processor ( 425 ) comprises at least one Uplink Processor (ULP) Instance ( 430 ), wherein said processor device of said at least one Uplink Processor ( 425 ) executes functions of said at least one ULP Instance ( 430 ) comprising:

handling messages from said GW device ( 205 , 365 ) to said NC, said messages containing application data and/or session management information;

establishing at least one session;

managing security keys between said AC, said NC, and said IoT Device ( 210 , 350 );

managing session parameters with said IoT Device ( 210 , 350 ) to optimize communication on an RF network;

deduplication of said messages from said IoT Devices ( 210 , 350 ) for delivery to said AC;

nomination of one of said at least one GW device ( 205 , 365 ) to be used by a Downlink Processor (DLP) for one of said at least one IoT Devices ( 210 , 350 ); and

discovery of Application Controller Services.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2020
From: WOODHEAD, JAMIE R.; HOUDE, RANDY ALEX
To: SENET, INC.
Reel/Frame 054136/0259 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2018
From: KJENDAL, DAVID L; WOODHEAD, JAIME R
To: SENET, INC.
Reel/Frame 047853/0299 →
Continuity (1)
Provisional Application 62588595 · Nov 20, 2017
Cited By (1)
US 12,301,516