Distributed software defined networking
The Distributed Software Defined Network (dSDN) disclosed herein is an end to-end architecture that enables secure and flexible programmability across a network with full lifecycle management of services and infrastructure applications (fxDeviceApp). The dSDN also harmonizes application deployment across the network independent of the hardware vendor. As a result, the dSDN simplifies the network deployment lifecycle from concept to design to implementation to decommissioning.
1. A method comprising:
hosting a plurality of network device applications by a programmable network device;
hosting a plurality of cloud applications by a programmable cloud device, wherein the plurality of network device applications and the plurality of cloud applications are in secure communication with each other to form distributed applications; and
programming by a plurality of upper layer application programming interfaces (APIs) the plurality of network device applications and the plurality of cloud applications independent of network device hardware and cloud device hardware to form unified capabilities.
2. The method of claim 1 , further comprising:
sending and receiving communications by access network interface units included in each of the programmable network device and the programmable cloud device, and each of the programmable network device and the programmable cloud device has a processor with a memory associated with the access network interface units.
3. The method of claim 1 further comprising:
managing life cycles of the distributed applications by an application management portal; and
providing tested and certified distributed applications to the application management portal by an infrastructure application marketplace in communication with the application management portal.
4. The method of claim 1 further comprising at least one of the group consisting of:
receiving the distributed applications from an infrastructure application marketplace by an application management portal; testing the distributed applications prior to deployment by the application management portal; provisioning the distributed applications by the application management portal; and deprovisioning the distributed applications by the application management portal.
5. The method of claim 3 , further comprising:
controlling access to a plurality of resources by a distributed resource service (DRS) upon receiving instructions from the application management portal.
6. The method of claim 5 , wherein the plurality of resources include at least one of a group consisting of: a firewall; data and statistics; storage; a load evaluator; general settings; a routing engine; a virtual machine master controller; a power controller; and a wireless engine.
7. The method of claim 5 , further comprising:
monitoring loads on at least one of the plurality of network device applications and at least one of the plurality of cloud applications by a load controller included in the DRS; and
effecting change in accordance with thresholds received from the application management portal by the load controller.
8. The method of claim 3 further comprising:
sending notice of a predetermined event from at least one of the plurality of network device applications to at least one of the plurality of cloud applications by a distributed notification service.
9. The method of claim 1 , wherein at least one of the plurality of network device applications is responsible for a plurality of functional capabilities of the programmable network device and is capable of at least one of the group consisting of: updating firmware of the programmable network device; updating default communication protocols of the programmable network device; initializing programmable network device settings; boot loading the programmable network device; providing security digital certificates; providing operating system (OS) and kernel upgrades; and upgrading and commissioning agents for upgrading at least one of the plurality of network device applications and related procedures.
10. The method of claim 1 , wherein at least one of the plurality of cloud applications is responsible for a plurality of functional capabilities of the programmable cloud device and is capable of at least one of the group consisting of: upgrading and commissioning agents for updating at least one of the plurality of cloud applications; hypervisor upgrades; virtual machine and isolated execution environment lifecycle management; security digital certificate management; operating system (OS) and kernel upgrades; and default communication protocols.
11. The method of claim 1 , wherein the programmable network device is an LTE eNB and the programmable cloud device hosts LTE core network functions in separate virtual machines from at least one of the group consisting of: MME, S-GW, and P-GW.
12. The method of claim 1 , further comprising:
providing a secure communication layer for at least one of the plurality of network device applications and at least one of the plurality of cloud applications by a virtual fabric.
13. The method of claim 1 , further comprising:
communicating directly from at least one of the plurality of network device applications in the programmable network device with a same network device application in a second programmable network device.
14. The method of claim 1 , further comprising at least one service from a group consisting of: exposing application programming interfaces (APIs) to other applications;
configuring and managing platform resources; enforcing policies and authorizing the plurality of network device applications and the plurality of cloud applications to access platform resources;
and resolving policy conflicts by a distributed resource service.
15. The method of claim 1 further comprising:
sharing contents generated by the at least one of the plurality of network device applications with at least one of the plurality of cloud applications by a distributed content service.
16. The method of claim 1 , wherein the programmable network device, at least one of the plurality of network device applications, the programmable cloud device, and the at least one of the plurality of cloud applications each have unique identities.
17. The method of claim 1 further comprising:
giving an access level to at least one of the plurality of network device applications and at least one of the plurality of cloud applications to determine which APIs can be accessed.
18. The method of claim 1 further comprising:
verifying the authenticity and integrity of updates to the plurality of network device applications and the plurality of cloud applications by the at least one programmable network device and the programmable cloud device.
19. A method comprising:
hosting a plurality of network device applications by a programmable network device;
hosting a plurality of cloud applications by a programmable cloud device, wherein the plurality of network device applications and the plurality of cloud applications are in secure communication with each other to form distributed applications;
programming by a plurality of upper layer application programming interfaces (APIs) the plurality of network device applications and the plurality of cloud applications independent of network device hardware and cloud device hardware to form unified capabilities; and
managing life cycles of the plurality of network device applications and plurality of cloud applications by an application management portal.
20. A method comprising:
hosting a plurality of network device applications by a programmable network device;
hosting a plurality of cloud applications by a programmable cloud device, wherein the plurality of network device applications and the plurality of cloud applications are in secure communication with each other to form distributed applications;
programming by a plurality of upper layer application programming interfaces (APIs) the plurality of network device applications and the plurality of cloud applications independent of network device hardware and cloud device hardware to form unified capabilities;
managing life cycles of the plurality of network device applications and plurality of cloud applications by an application management portal; and
providing tested distributed applications to the application management portal by an infrastructure application marketplace in communication with the application management portal.