% $Id: overview.tex 4522 2006-11-29 03:53:05Z gokhale $


\subsection{Overview of Enabling Technologies}
\label{sec:current}

This section provides an overview of the enabling technologies we
have developed in prior R\&D, which we leverage.

\subsubsection{Model-driven Component Middleware}
\label{sec:mdm}

The DOC group at Vanderbilt University has developed a framework for
the developmental and operational lifecycle management of distributed,
real-time and embedded (DRE) systems.  Our solution illustrated in
Figure~\ref{fig:arch} is an open source tool chain\footnote{All
  elements of our tool chain are available for download from
  \url{www.dre.vanderbilt.edu}.} that uses model-driven 
engineering (MDE)~\cite{Schmidt:06a} tools to capture application
structural and behavioral characteristics converting it into metadata
that are used by resource planners to determine resource 
allocations and component deployments.  This information is then used
by a deployment and configuration tool to host the application
components in a QoS-enabled component middleware framework.  We
briefly describe individual artifacts of our existing framework
below.  Subsequent sections describe how we have enhanced each element
of this tool chain to realize the network QoS provisioning goals.

%\begin{floatingfigure}{0.6\columnwidth}
\begin{wrapfigure}{r}{0.6\columnwidth}
%\begin{figure}[htb]
  \centering
  \includegraphics[width=0.58\columnwidth]{figs/wider-PICML_DAnCE_Architecture}
  \caption{Model-driven Component Middleware Framework}
  \label{fig:arch}
%\end{figure}
\end{wrapfigure}
%\end{floatingfigure}

\paragraph*{CoSMIC Model-Driven Engineering Toolsuite.}
\label{core}

To simplify the development of component-based applications, we have
developed the {\em Component Synthesis with Model Integrated Computing}
(CoSMIC), which is an open-source set of
model-driven engineering (MDE) tools that support the deployment,
configuration, and validation of component-based DRE systems.  A key
capability supported by CoSMIC is the definition and implementation of
{\em domain-specific modeling languages}
(DSMLs)~\cite{Gokhale_DSML_chap:06}, which use concrete and abstract
syntax to define the concepts, relationships, and constraints used to
express domain entities~\cite{Janos:03}. 

A key CoSMIC DSML called {\em Platform Independent Component Modeling
  Language} (PICML)~\cite{Schmidt:04z} enables graphical manipulation
of modeling elements and performs various types of generative actions,
such as synthesizing XML-based deployment plan descriptors defined in
the OMG Deployment and Configuration (D\&C)
specification~\cite{DandC:03}.  CoSMIC has been developed using a DSML
metaprogramming environment called Generic Modeling Environment
(GME)~\cite{GME:01}.

\paragraph*{Resource and Control Engine (RACE).}
\label{overview-race}

The Resource and Control Engine (RACE)~\cite{Schmidt:05u} is an
adaptive resource management framework that provides  (1) {\em
  resource monitor} components that track  utilization of various
system resources, such as CPU, memory, and network bandwidth, (2) {\em
  QoS monitor} components that track application QoS, such as
end-to-end delay, (3) {\em resource allocator} components that
allocate resources to components based on their resource requirements
and current availability of system resources, (4) {\em configurator}
components that configure QoS parameters of application components, 
(5) {\em controller} components that compute end-to-end adaptation
decisions to ensure that QoS requirements of applications are met, and
(6) {\em effector} components that perform controller-recommended
adaptations. 

\paragraph*{Deployment and Configuration Engine (DAnCE).}
\label{overview-dance}

DRE system application component assemblies developed using CIAO are
deployed and configured via DAnCE~\cite{Schmidt:05y}, which implements
the OMG {\em Deployment and Configuration} (D\&C)
specification~\cite{DandC:03}.  DAnCE manages the mapping of DRE
application components onto nodes in the target environment.  The
information about the component assemblies and the target environment
in which the components will be deployed are captured in the form of
standard XML assembly descriptors and deployment plans generated by
CoSMIC tools and enhanced by RACE.  DAnCE's runtime framework parses
these descriptors to extract connection and deployment information,
deploys the assemblies onto the CIAO component middleware platform
described below, and establishes the connections between component
ports.

\paragraph*{Component Integrated ACE ORB (CIAO).}
\label{overview-ciao}

CIAO is an open-source implementation of the OMG Lightweight CORBA
Component Model (LwCCM)~\cite{LWCCM}  and Real-time
CORBA~\cite{RTCorba:02} specifications built atop
TAO~\cite{Schmidt:97q}, which is our real-time CORBA ORB.  CIAO's
architecture is designed based on (1) patterns for composing
component-based middleware~\cite{Markus:02} and (2) reflective
middleware techniques to enable mechanisms within the component-based
middleware to support different QoS aspects~\cite{Schmidt:04w}.

\subsubsection{Network QoS Provisioning Tools}
\label{sec:bb}

The Telcordia authors have developed a network management solution for
QoS provisioning called the Bandwidth Broker (BB)~\cite{Das:2005}.
The BB leverages widely  available vendor mechanisms that support 
layer-3 DiffServ (Differentiated Services) and layer-2 CoS (Class of
Service) features in commercial routers and switches.  These two
features by themselves are insufficient to guarantee end-to-end
network QoS because the traffic presented to the network must be made
to match the network capacity.  What is also needed is an adaptive
admission control entity that ensures there are adequate network
resources for a given traffic flow on any given link that the flow may
traverse.  The admission control entity should be aware of the path
being traversed by each flow, track how much bandwidth is being
committed on each link for each traffic class, and estimate whether
the traffic demands of new flows can be accomodated.   

The BB provides these capabilities. In Layer-3 network, it is the
shortest path that is used for communication between any two hosts.
We employ Djkstra's allpair shortest path algorithms.  We employ
Djkstra's all pair shortest path algorithms to discover all the paths
between all pairs of hosts.  In Layer-2 network, we discover the VLAN
tree to find the path between any two hosts.  

The BB provides the following mechanisms: 
\begin{itemize}
\item {\bf Flow Admission Functions --} to reserve, commit, modify, and
delete flows. 
\item {\bf Queries --} for bandwidth availability in different classes
among pairs of pools and subnets.
\item {\bf Bandwidth Allocation Policy Changes --} to support mission-mode changes.
\item {\bf Feedback/Monitoring Services --} for feedback on flow
performance using metrics such as average delay.
\end{itemize}

The Bandwidth Broker admission decision for a flow is not based solely on 
requested capacity or bandwidth on each link traversed by the flow, but it is 
also based on delay bounds requested for the flow.  The delay bounds for new 
flows need to be guaranteed without damaging the delay guarantees for previously 
admitted flows and without redoing the expensive job of readmitting every 
previously admitted flow.  We have developed computational techniques to provide 
both deterministic and statistical delay-bound
guarantees~\cite{Das:2006}. 

\iffalse
% removed per Das' suggestions
Delay guarantees raise the level of abstraction of the Bandwidth
Broker to application or higher-
level resource management components
and enable these components to provide better end-to-end mission
guarantees. The basic framework we have developed is capable of
dealing with any number of priority classes and, within a priority
class, any number of weighted fair queuing subclasses.  These
guarantees are based on relatively expensive computations of occupancy
or utilization bounds for various classes of traffic, performed only at the 
time of network configuration/reconfiguration, and relatively inexpensive 
checking for a violation of these bounds at the time of admission of a new 
flow. 
\fi

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "icdcs07"
%%% End: 
