\iffalse
% Jai, isn't part or most of this done by PICML i.e., making sure the
% right ports are getting connected.  This IMO has not much to do with
% raising the level of network QoS provisioning. Rather, what is
% needed is the need to associate QoS to these connections.
which involves keeping track of the types of each
component's ports and ensuring that components which must be
interconnected have matching ports defined. In the UAV example, this
involves connecting the different components that comprise a single
stream in the correct order since some components (such as {\tt
DeCompressQosket}) do the reverse of an operation performed by another
component (such as {\tt CompressQosket}).  The manager components need
to be connected to receive monitoring information about the existing
QoS in each stream of image data. 
\fi

Traditionally, network level Quality of Service (QoS) provisioning for
QoS-aware applications is done using third generation system
programming languages. Programs written in these third generation
programming languages predominantly use low level functional API for
QoS provisioning exposed by the underlying operating system. A handful
of QoS enabled middleware solutions such as The ACE ORB (TAO)~\cite{},
Quality Objects (QuO)~\cite{} raise the level of abstraction and allow
development of the systems using portable, object oriented
APIs. Although the use of object oriented paradigm in this context
solves some issues, it does not take away manual programming effort
requied to build the systems. Component middleware solutions further
raise the level of abstraction wherein manual programming effort of
the common tasks is minimized. Although component-based middleware
takes away much of the manual task of programming common technical
aspects from the programmer, it introduces its own new problems.

\begin{itemize}
 \item \textbf{Generation of metadata.} Component-based middleware
 depend heavily on application metadata, which is typically described
 in the form of XML documents (a.k.a. XML descriptors.)  Standard
 component specifications such as LwCCM~\cite{} define standard XML
 descriptors, which are amenable to computer processing but
 unintuitive and incomprehesible for humans. Standards such as LwCCM
 does not try to standardize XML descriptors for the wide variety of
 applications QoS possible and leaves the problem open for middleware
 developers to be solved later as they find suitable. For example,
 standards-based, QoS-enabled middlewares such as CIAO~\cite{} depend
 on non-standard XML descriptors to capture the variety of differnt
 QoS requirements. Generating these XML descriptors manually is an
 extremenly error-prone, tedious and time-consuming task. 

 \item \textbf{Validation of generated metadata.} Even though
 programmers develop a skill of writing mountainous descriptors by
 hand, validating whether those descriptors are correct or not is
 unmanageably complex task for humans. Validating metadata typically
 involves complex algorithmic analysis of application requirements and
 available resources. An automated process which generates metadata
 automatically would be ideal in such situations. 

\item \textbf{Network QoS requirements validation} In component-based
applications, which require network level QoS provisioning, typically
rely on bandwidth reservation between pairs of hosts. Eash host in the
pair hosts one or more application components making up one or more
application strings. The mechanisms necessary to honor bandwidth
reservation requiremetns are present at the network level and are
typically implemented in the routers. These mechanims are completely
oblivious to application-level component-to-component network QoS
requirements. For example, in the UAV scenario, 
%(Andy, I am making this up )
multiple sender components share a pipe of bandwidth of XYZ Mbps to
send data to the receiver component. Changes in the deployment
decisions of such an application also require corresponding changes in
the network level QoS requirements. For example, splitting previously
collocated components across two separate hosts require the previous
aggregate pipe of the bandwidth to be split across the respective two
hosts. Failure to make the corresponding changes in the network QoS
requirements will result into degraded performance and lengthen the
development cycle unnecessarily due to troubleshooting.

\end{itemize}

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