IoT network controller / server
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-modifiedWhat 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.