% $Id: challenges.tex 3797 2006-09-10 12:56:58Z gokhale $

\section{Designing Visual Tools for Middleware Provisioning}
\label{sec:challenges}

Section~\ref{sec:intro} defined middleware provisioning as the
activity that comprises the configuration and customization of the
middleware platform and validating that these meet the QoS needs of
the application under expected workloads.  The motivation for visual
tools in middleware provisioning stem from the non intuitive, non
reusable and error-prone nature of traditional approaches.  For visual
tools to be effective, they must meet a set of criteria and resolve
the challenges arising in meeting these criteria.  The remainder of
this section outlines these criteria and the challenges that arise in
meeting these criteria.  

\subsubsection*{Criterion 1: Accounting for Variability}
\label{sec:plop}

Figure~\ref{fig:mw-stack} illustrates the structure of contemporary
middleware technologies.  It depicts multiple layers of middleware
each of which addresses specific requirements and provides reusable
functional capabilities.  For example, the host infrastructure
middleware provides a uniform layer of abstraction to mask the
heterogeneity arising from different operating systems, hardware and
networks; the distributed middleware provides location transparency;
common services include directory services, messaging services, and
transaction services among others; and domain-specific services
include additional reusable capabilities that are specific to a domain
e.g., avionics or telecom.

\begin{figure}[htb]
\centering
\vspace{-.7in}
\includegraphics[width=\columnwidth]{mw-stack.eps}
\vspace{-1in}
\caption{Middleware Structure}
\label{fig:mw-stack}
\end{figure}

Distributed applications are typically hosted on multiple
heterogeneous middleware platforms in a networked environment.  For
each host in the deployment environment, the middleware stacks on
which an application is hosted may need to be fine tuned in different
ways to meet the different QoS requirements of applications.
To support a wide range of application QoS needs, contemporary
middleware technologies provide several different reusable
capabilities that can be individually configured and composed with
each other.  This flexibility offered by middleware technologies gives
rise to variability that a middleware provisioner faces when
provisioning applications on the platforms. 

The visual tool used for middleware provisioning must handle this
variability in the context of application QoS needs, and provide
an intuitive user interface to the middleware provisioner to eliminate
provisioning errors.  Our approach to resolve these challenges is
based on abstracting away the implementation- and technology-specific
details of contemporary middleware solutions and focus on the patterns
of reuse~\cite{Vlissides:94} that form the building blocks of the
different layers of middleware.  Section~\ref{sec:posaml-variability}
describes how we leverage these insights to design and implement the
POSAML visual tool for middleware provisioning.

\subsubsection*{Criterion 2: Need for a Unified Framework}
\label{sec:framework}

Middleware provisioning needs to be guided by the application QoS
needs.  This requires that the QoS validation must be performed based
on decisions made in the configuration and customization phase.
Thus, the  QoS validation phase needs to have complete knowledge of
the configuration decisions.  The QoS validation phase requires
systems developers to develop appropriate application testing and
middleware benchmarking code in accordance to the configuration
decisions.  

This requirement adds a new dimension of variability and dependability
to the challenges described in Criterion 1.  To address both these
criteria, visual mechanisms should provide a unified framework that
can address both the configuration and QoS validation concerns that
arise in middleware provisioning.   Such a framework must provide the
means to capture the configuration decisions and make them available
in the QoS validation phase.  Section~\ref{sec:posaml-framework}
describes how POSAML provides intuitive abstractions of the middleware
stacks to the system integrators, which eases the task of
configuration and customization.  Additionally, it enables the QoS
validation of the configured system using the same visual capability.

\subsubsection*{Criterion 3: Separation of Concerns}
\label{sec:soc}

As noted earlier, provisioning involves both the configuration and the
validation phases.  Criterion 1 discussed above illustrates the
variability demonstrated by contemporary middleware technologies and
calls for a visual mechanism that provides intuitive user interfaces
to middleware provisioners.  Criterion 2 discussed the need for a
unified framework since the QoS validation phase is dependent on the
configuration phase.  Addressing these two criteria requires careful
design since any ad hoc design decisions may tangle the QoS validation
activities with the configuration activities defeating the goals of
providing intuitive mechanisms for middleware provisioning.  

Although traditional approaches to middleware provisioning decouple
the configuration and validation phases, such a decoupling is not
useful since the QoS validation activities do not have any knowledge
of the configuration decisions, and these activities are carried out
by different actors.  To address the need to decouple the two phases
yet meet the earlier two criteria requires that the visual tool
provide a clean separation of the QoS validation phase from the
configuration phase so that the two concerns do not tangle with 
each other.  Section~\ref{sec:posaml-soc} describes how POSAML provides these
separation of concerns at the user interface level yet provides a
unified framework. 


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "hicss07-visa"
%%% End: 
