Network technology advances have been propelled forward by software engineering and virtualization. Take for example Software Defined Networking (SDN) and Network Function Virtualization (NFV). Connectivity Service Providers (CSP) are seizing the opportunity to enable new features and services while benefiting from a more rapid evolution of network architectures and business services.
We are just starting to explore the benefits of merging networking engineering and software engineering. There’s a great deal of enthusiasm in both communities. My career path has given me the opportunity to bridge the gap between both worlds. The typical reaction I hear is that software engineers want to program networks and network engineers want to develop software applications.
Merging network and software engineering approaches requires collaboration and an understanding of the common goal. This common goal must be to enable business applications to tap into the potential offered by new network paradigms. Whatever new technologies are developed must make it easier for CSP to delight their customers.
Our personal experience of more than 30 years combined leveraging machine intelligence in the telecommunications industry has demonstrated that the challenges in orchestration and optimization of SDN networks offer a fertile ground for the application of advanced software engineering concepts and techniques.
Take for example, natural language processing and declarative programming which when combined provide a powerful foundation for the development of Intent-based interfaces.
An Intent North-Bound Interface (NBI) is a declarative approach to representing interactions between applications. In a typical interaction, an application plays the role of the “service consumer” while another application plays the role of “service provider.” In software terms, a “service consumer” can be thought of as a client application that consumes the services exposed via a North-Bound application Interface. This decomposition is the well-known software design principle of separation of concerns.
In the realm of connectivity services, the network controller plays the role of the “service provider”. Business, orchestration and analytics applications are examples of intent North Bound Interface (NBI) clients that play the role of network “service consumers”.
The distinguishing aspect of an Intent NBI is the use of a declarative interface to construct requests using high levels of abstraction. The semantic overload is minimized and the “client” can state their intents in simple terms. Furthermore, Intent NBI requests need not specify or prescribe any request implementation details. As a result, Intent NBI requests are system-independent and applicable to a variety of platforms, implementations, and network controllers.
So, why should we care about Intent NBIs? The single most important reason is that, intent will enable business units within CSPs, and the applications they use, to focus solely on "What” they need from their networks, with no concern about "How" the network services will implement their Intent.
Now that we have discussed the motivation behind Intent, you may be wondering how exactly an intent NBI request looks like. That’s a fair question. In this series of blog posts, we will discuss how declarative programming simplifies intent specification. We will also develop a formal grammar to model intents. We end this series by applying the grammar we will develop to problems inside and outside the networking space.