SDN Controller Programming Guide

11
Web Layer
Components in this layer are responsible for receiving and consuming appropriate external
representations (XML, JSON, binary...) suitable for communicating with various external entities
and, if applicable, for utilizing the APIs from the business logic layer to appropriately interact with
the business logic services to achieve the desired tasks and/or to obtain or process the desired
information.
User Interface End-Point (REST API) and end-point resources for handling inbound requests
providing control and data access capabilities to the administrative GUI.
External Interface End-Point (REST API) are end-point resources for handling inbound requests
providing control and data access capabilities to external applications, including other
orchestration and administrative tools (for example IMC, OpenStack , etc.)
Business Logic Layer
Components in this layer fall into two fundamental categories: model control services and
outbound communications services, and each of these are further subdivided into public APIs and
private implementations.
The public APIs comprise of interfaces and passive POJOs [20], which provide the domain model
and services, while the private implementations contain the modules that implement the various
domain model and service interfaces. All interactions between different components must occur
solely using the public API mechanisms.
Model APIInterfaces & objects comprising the domain model. For example: the devices, ports,
network topology and related information about the discovered network environment.
Control APIInterfaces to access the modeled entities, control their life-cycles and in general to
provide the basis for the product features to interact with each other.
Communications APIInterfaces which define the outbound forms of interactions to control,
monitor and discover the network environment.
Control ImplementationsImplementations of the control API services and domain model.
Communications ImplementationsImplementations of the outbound communications API
services. They are responsible for encoding / transmitting requests and receiving / decoding
responses.
Persistence Layer
Data Access APIInterfaces, which prescribe how to persist and retrieve the domain model
information, such as locations, devices, topology, etc. This can also include any prescribed routing
and flow control policies.
Data Access ImplementationsImplementations of the persistence services to store and
retrieve the SDN-related information in a database or other non-volatile form.