Component-based execution environments of network elements and a protocol for their configuration
It has been more than a decade since the introduction of programmability in the network elements as the basis for providing rapid deployment and customization of new services across heterogeneous networks. Different fields, research initiatives and fora at different or same points in time have attempted in their own way to give their definition of programmability and how it should be realized to facilitate service deployment. Although these efforts seem, from the outset, as antagonistic to each other, and most of the time heavily dependent on the underlying networking technology, strong evidence points toward common features, that when put together, as pieces of a puzzle, give rise to a common picture which, we believe, is representative of the term "programmable networks." In this paper, we are going to bring out and elaborate on a number of such features, arguing are they are the ingredients that serve as building materials and principles to the next generation network element architecture enabled to realize the yet elusive rapid service deployment. Our analysis will draw from the state of the art and our experiences in working in the future active IP network (FAIN) project. As a result, we will take advantage of these observations and propose a new protocol that allows a programmable network to be configured in such a way that new functionality may be requested and installed, thus, extending the capabilities and the services offered by the network.