Information Technology Reference
In-Depth Information
element execution environment, middleware/orchestration, and application
code. The latter can be subdivided in two sub layers, namely the programming
environment providing reusable components such as programming libraries,
and the application program. The result is a four-layer architecture ( Figure 3 ) .
Clearly, the architecture resulting from the application point of view is similar
to programmable network architectures [6]. However, the functional
components between the application and programmable network need to be
further defined to support network control from the application domain and is
described next.
The orchestration layer (2) facilitates the interworking of software objects
and ACs located on individual NEs (1). The orchestration layer may also
supports basic mechanisms, such as discovery services, brokers, billing
services, authorization, etc. The usefulness of these services depends on the
network environment and application. In sensor networks, for example, there
just may not be enough computational and storage resources to support an
elaborate set of services.
The programming environment, layer (3), provides the NC implementation
and reusable components, such as a Distributed Transaction Monitor (DTM)
or breadth-first search algorithm, to support programming of a collection of
NCs. Depending on the network environment, some abstractions can be
implemented in the ACs, as a library in the programming environment or
both. For example, the application developer might want to program network
element interactions in a non-blocking manner. Hence, either the
programming environment or the orchestration layer must facilitate non-
blocking interaction mechanisms between ACs and NCs. In our
implementation (Section 3) we use message passing in the orchestration layer
and implemented (an easier to program) blocking interface to the application
(Section 5).
Because network control is now part of the application domain (layer 4),
developers can benefit from a large amount of existing software to implement
network control programs. A characteristic of the control applications is that
they operate on data structures that represent the network state. Therefore, the
programming environment (3) explicitly contains a model of the network and
the orchestration layer must supply the data with which the model can be
updated. In Section 6, we discuss issues related to the accuracy of the network
model.
Some applications support the construction of a network model that is close
to mathematical concepts, such as graphs. The Mathematica [37]
environment, for example, contains a graph data structure, which can be used
as a basis for control applications that require graph algorithms. By enabling
dynamic updates of network state into the Mathematica graph data structure,
Search WWH ::




Custom Search