## 5 Architectural Design  
In this section we present the functional architecture of a NFV orchestrator with SDN network control capabilities and describe the main functional entities (FEs) involved in the proposed VNF orchestration approach. As shown in Figure 4, we distinguish two main functional network control layers, _i.e._, the \"Network Service Provisioning and Control\" and the \"Infrastructure Control and Management\" layer. The former interacts with an \"Application Layer\", while the latter interacts with the VNF instances and the underlying resource infrastructure (_i.e._, the ETSI NFVI). The \"Application Layer\" includes instantiation and lifecycle management functions of applications, including network operation support applications. Typically, these functions provide service control and delivery capabilities and are operated at service delivery platforms, e.g., NGSON, or at network service operation systems, e.g., NMS/OSS. The \"Network Service Provisioning and Control\" layer supports the dynamic establishment of composite network services on behalf of applications while addressing adequate connectivity requirements. From a SOA perspective, it covers the role of service broker by interfacing with service consumers residing at the \"Application Layer\", while handling the interactions with VNF instances by leveraging the control and management features provided by the underlying layer. The \"Service Control\" Functional Entity (FE) is in charge of coordinating the provision of network services implemented as a chain of VNFs, according to pre-defined \"Abstract Service Chain\" specifications. It offers a north-bound interface to applications (e.g., NGSON and NMS/OSS) to request the setup of \"Composite Services\" (e.g., flow with custom data treatment and VN service, respectively). It leverages the \"Service Orchestrator\" FE capabilities for instantiating a service chain according to the specifications of the selected \"Abstract Service Chain\". The \"Service Orchestrator\" FE maps the \"Abstract Service Chain\" into a \"Concrete Service Chain\", thereby selecting the proper VNF instances. Moreover, it coordinates the instantiation, operation and connection of VNFs to satisfy the requirements of instantiated services and to manage adaptation mechanisms for coping with service requirement changes or service degradations. It also instructs the \"Network Resource Control\" FE for enforcing the proper forwarding rules to establish the delivery path through the specified chain of VNF instances. This process runs transparently to the \"Application Layer\". The \"Service and Functions Registry\" FE maintains the information base required by the \"Service Orchestrator\" for performing its decision and orchestration tasks. Thus, it handles descriptive and operational information on individual VNFs and on links connecting them (Table 1). Such information is collected through the \"VNF Management and Network Context Server\" functions of the \"Infrastructure Control and Management\" layer, described below. If some performance degradation at either VNFs or link is detected, the \"Service Orchestrator\" is notified. The \"Service Orchestrator\" performs the appropriate actions for modifying the network service implementation (e.g. substituting VNF instances or the path interconnecting them), otherwise it informs the \"Service Control\" about the need of cooperative renegotiation with the \"Application Layer\" functions to reconsider service requirements. The \"Infrastructure Control and Management\" functions are responsible for the proper transfer of data across network nodes and VNF management. The \"VNF Management\" FE is in charge of managing the lifecycle of individual VNFs and underlying virtual resources.