Centralized applications to control the proper functioning of networks have been available for years. These applications cobbled together various mechanisms to control networking devices. Each networking vendor required a custom plugin for the application to work, and—in some cases—multiple plugins for a vendor were required, due to differences within vendors’ product lines. New software releases from a networking vendor generally broke the application, requiring updates to the application. These applications were expensive to purchase, due to the heavy cost of development and maintenance.
Software-Defined Networking (SDN) resolves this issue by defining interfaces between the centralized controller and the networking devices. Regardless of any software change on either side, as long as the updates remain true to the defined interface specification, they are transparent. This enables faster development of reliable, long-lived applications, agnostic to the devices on the network. The impact is an emergence of a new set of cost-effective SDN applications that fine-tune network resources to meet the demands of 21st-century users and their applications.