US10735521B1ActiveUtility

IoT network controller / server

81
Assignee: SENET INCPriority: Nov 20, 2017Filed: Nov 20, 2018Granted: Aug 4, 2020
Est. expiryNov 20, 2037(~11.4 yrs left)· nominal 20-yr term from priority
H04L 67/125H04L 67/1097H04L 67/12H04L 67/02H04L 67/568H04L 67/1001H04L 67/142H04L 67/1002H04L 67/2842
81
PatentIndex Score
5
Cited by
9
References
19
Claims

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

exact text as granted — not AI-modified
What is claimed is: 
     
       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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.