Reference Guide

Table Of Contents
3 Developing Applications
Internal applications (“Native” Applications / Modules) are ideal to exert relatively fine-grained,
frequent and low-latency control interactions with the environment, for example, handling packet-in
events. Some key points to consider when developing internal applications:
Authored in Java or a byte-code compatible language, e.g. Scala, or Scala DSL.
Deployed on the SDN Controller platform as collections of OSGi bundles.
Built atop services (Java APIs) exported and advertised by the platform and by other
applications.
Export and advertise services (Java APIs) to allow interactions with other applications.
Dynamically extend SDN Controller REST API surface.
Dynamically extend SDN Controller GUI by adding navigation categories, items, views, and
so on.
Integrate with the SDN Controller authentication & authorization framework.
Integrate with the SDN Controller Persistency & Distributed Coordination API.
Internal applications are deployed on the HP VAN SDN Controller and they interact with it by
consuming business services (Java APIs) published by the controller in the SDK.
Introduction
Figure 8 illustrates the various classes of software modules categorized by the nature of their
responsibilities and capabilities and the categories of the software layers to which they belong.
Also shown are the permitted dependencies among the classes of such modules. Note the explicit
separation of the implementations from interfaces (APIs). This separation principle is strictly
enforced in order to maintain modularity and elasticity of the application. Also note that these
represent categories, not necessarily the actual modules or components. This diagram only aims to
highlight the classes of software modules.
10