% $Id: intro.tex,v 1.24 2005/12/01 22:14:56 kitty Exp $
\section{Introduction}
\label{intro}

% Kitty, are we buying anything out of the adjective DRE. Abstract
% says nothing about DRE systems.
% Andy, I have removed the DRE systems usage. - kitty.
Model-driven development (MDD) is emerging as a new paradigm to develop
complex component-based distributed systems.  By promoting models to the
status of a first-class entity in the design and implementation of such
systems, developers can reason about systems at a much higher level of
abstraction than by using purely programmatic techniques.  Reusable
approaches to distributed systems development based on component middleware
technologies, such as CORBA Component Model (CCM)\cite{CorbaComponents:02},
.NET~\cite{DotNet:02} and J2EE~\cite{J2EE:01}, have yielded a paradigm
shift from focusing on building individual components to composition and
integration of systems from a set of pre-built, reusable components.
MDD-based approaches lend themselves well to composition and
integration-related tasks since they emphasize a visual approach to system
development, which is crucial to composition and integration
activities. MDD also permits the description of a system using constraint
languages~\cite{OCL:03}, which can be enforced during design-time to
prevent common errors that may otherwise occur late in the integration
stage. A further benefit of MDD is that it makes the task of system
analysis easier by providing better abstractions and notations that are
closer to the domain of the system.  As such, MDD helps to shield system
developers from changes in the underlying middleware platform.

\subsection{MDD Challenges}

Although MDD approaches are desirable in large-scale component-based
distributed system development, the promotion of models to the status of
first-class entities incurs other challenges, wherein system developers are
exposed to a number of crosscutting concerns at the modeling
level~\cite{Gray:01}.  The crosscutting concerns include activities like
composition of sub-systems from individual components, configuration of the
different components, integration of systems using components from
different vendors, and deployment of such composed systems.  In
Section~\ref{sec:motivation}, we showcase the details of these concerns as
applied to component-based distributed system development.
% Kitty, I gave a flavor of what these challenges are. Make sure it is
% correct - andy
% Kitty, I think we need to qualify what the prior approaches are -
% For example, what does it mean by integration, composition etc at
% the ``implementation level'' - andy
% I have reworded the paragraph, and added some more concrete
% examples. - kitty.
An example of such a concern is that of keeping track of the dependencies
on the run-time environment for every component in a system.  Prior to MDD,
this dependency was captured at the implementation level using scripts, but
often the implications of the dependency were ignored in the
implementation.  If any modification was made at the system level (e.g., if
a component was removed, or a new component was added), the scripts that
manage the run-time dependencies must be updated manually.  This is a
tedious and error-prone task.  In an MDD-based approach, such dependencies
are captured at the modeling level using elements of the language.
Although MDD makes the task of keeping track of the run-time dependencies
easier, it still is error-prone to modify the dependencies manually in a
system that has a large number of components.  Addressing these
crosscutting concerns using conventional MDD approaches can increase the
type and number of elements that need to be manipulated at the modeling
level, which may negate some of the benefits offered by MDD.  What is
desired is an enhanced MDD approach that is scalable (i.e., it should be
easy to perform modifications to the model even in the presence of a large
number of components),
% Kitty, please explain how you are using the term scalable here.
% Kitty, I think the above was a leftover comment from Jeff. I added
% ``consistent'' in the sentence above. Please see if this is OK -
% - andy
% I have fixed this too. - kitty.
and gives assurance that changes to model elements keep the model in a
consistent state.

\subsection{Solution approach $\rightarrow$ Aspect-Oriented Model Weaving.}
A promising approach to address the problems associated with applying MDD
to large-scale distributed systems development is aspect-oriented model
weaving~\cite{Schmidt:03e}, which unites the ideas of aspect-oriented
software development (AOSD)~\cite{AOSD:04} with MDD to provide better
modularization of properties that crosscut multiple layers of a
model~\cite{Gray:01}.

Our approach to improving the scalability of MDD~\cite{Gray-MoDELS05a} for
component-based distributed system development - and subsequently
untangling the crosscutting concerns at the modeling level - relies on
applying aspect-oriented weaving to domain-specific modeling languages
(DSMLs).
% Folks, I tried to make this a generic statement as opposed to a
% narrow-centric viewpoint. The goal being to convey that this is not
% a very ``point solution'' idea, yet I given enough hints below what
% to expect - andy
% Andy, it looks fine. - kitty.
In this paper, we illustrate our ideas in the context of a sample
distributed system scenario by applying the {\em Constraint-Specification
  Aspect Weaver} (C-SAW)~\cite{C-SAW}, which is an aspect-oriented model
weaver, to the {\em Platform-Independent Component Modeling Language}
(PICML)~\cite{Schmidt:04z}.

PICML is an open-source DSML (available for download at
\url{www.dre.vanderbilt.edu/cosmic}) developed using the {\em Generic
  Modeling Environment} (GME)~\cite{GME:01}.  PICML enables developers of
component-based distributed systems to define component interfaces, along
with their properties and system software building rules.  PICML also
provides generative tools to synthesize valid XML descriptor files that
enable automated system deployment.  C-SAW is a model transformation engine
that can be used to describe the essence of a model-based crosscutting
concern and transform a model accordingly.  In C-SAW, aspects are defined
at the modeling level using the {\em Embedded Constraint Language} (ECL).
C-SAW assists model engineers in rapidly inserting and removing new
properties and policies into models without the need for extensive manual
adaptation.  This paper examines the benefits that can be achieved from
combining the aspect-oriented model weaving supported by C-SAW with PICML's
MDD-based approach to distributed systems development.  The primary
combination of this synergy closes a significant gap in developing and
deploying component-based distributed systems.

\paragraph{Paper organization.} The remainder of this paper is
organized as follows: Section~\ref{sec:motivation} evaluates the use of MDD
for distributed component systems by using an unmanned air vehicle (UAV)
application as a running example; Section~\ref{sec:solution} gives an
overview of the aspect-oriented model weaving approach, illustrates how we
have applied it to the UAV example developed using PICML, and showcases the
benefits of this approach; Section~\ref{sec:related} compares our work with
other tools that apply aspect-oriented approaches to distributed component
systems development; and Section~\ref{sec:conclusion} presents concluding
remarks.

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