%% $Id: intro.tex,v 1.37 2004/12/31 16:06:41 schmidt Exp $

\section{Introduction}
\label{intro}

\paragraph{Emerging trends.}
\sqztiny Developers of mission-critical distributed real-time and
embedded (DRE) \index{DRE} systems face a number of challenges,
including (1) {\em alleviating complexity} -- both inherent and
accidental, (2) {\em reducing total ownership costs} -- both initial
and recurring costs, and (3) {\em ensuring correct end-to-end system
behavior} -- both functional and quality of service (QoS)
requirements.  Promising technologies that address various aspects of
these challenges are {\em QoS-enabled component middleware} and {\em
model-driven development} (MDD) with {\em model checking}
capabilities, as we discuss below.

\subparagraph{QoS-enabled component middleware.}  A 
key enabler in recent successes~\cite{Wendy:03,Sharp:03} with DRE
systems has been {\em middleware}~\cite{Schmidt:01o},
\index{QoS-enabled middleware} which is software that provides
reusable services that coordinate how application components are
composed and interoperate.  QoS-enabled component middleware
technologies enhance conventional middleware by offering (1) explicit
support for configuring of policies and mechanisms for systemic
aspects, such as real-time QoS and security, and (2) a programming
model that decouples these systemic aspects from application
functionality.  These capabilities help address complexity, cost, and
correctness by making the QoS-enabled component middleware responsible
for (pre)allocating CPU resources, reserving network
bandwidth/\-connections, and monitoring/\-enforcing the proper use of
system resources at run-time to meet DRE system QoS requirements.

Our work on QoS-enabled component middleware has focused on the {\em
Component-Integrated ACE ORB} (CIAO)~\cite{Schmidt:03m}\index{CIAO},
which is open-source (\url{www.dre.vanderbilt.edu/CIAO}) middleware
that enhances {\em The ACE ORB} (TAO)~\cite{Schmidt:97q} to provide
Real-time CORBA~\cite{CORBA:02c} \index{RTCORBA} enhancements to the
CORBA Component Model (CCM)~\cite{CorbaComponents:02}\index{CCM}.
CIAO's CCM components are interconnected via the following types of
standard {\em ports}:
\begin{itemize}%\crunchlist
\item {\em Facets}, which define an interface that accepts
point-to-point method invocations from other components and {\em
receptacles}, which indicate a dependency on point-to-point method
interfaces provided by other components.  A receptacle is connected to
a facet to provide {\em synchronous remote method invocation}
communication between a pair of components.
\item {\em Event sources and sinks}, which indicate a willingness to
exchange typed messages with one or more components.  Event sources
can be connected to event sinks for {\em asynchronous
point-to-multi\-point message-passing} communication between
components.
\end{itemize}
CIAO abstracts component QoS requirements into metadata that can be
specified in a CCM {\em component assembly} after a component has been
implemented~\cite{Wang:03b}.  Decoupling the specification of QoS
requirements from component implementations greatly simplifies the
configuration and evaluation of DRE systems with multiple QoS
requirements~\cite{Schmidt:04w}.

\subparagraph{Model-driven development (MDD).}  MDD software processes
and tools are a promising approach for addressing the challenges of
developing, evolving, validating large-scale DRE system maintenance
and modification~\cite{MDA:01,Janos:03,Greenfield:04}.  The MDD
paradigm systematically applies {\em domain-specific modeling
languages} (DSMLs) \index{DSML} to direct the understanding, design,
construction, deployment, and operation of computing systems, ranging
from small-scale real-time and embedded systems to large-scale
business applications distributed across an enterprise.  MDD tools
address complexity, cost, and correctness by helping to automate (1)
{\em analysis} and {\em verification} of characteristics of system
behavior, such as predictability, safety, and security, and (2) {\em
synthesis} of code that is customized for DRE system properties, such
as isolation levels of a transaction, recovery strategies to handle
various runtime failures, and authentication and authorization
strategies modeled at higher levels of abstraction.

Our work on MDD technologies has focused on CoSMIC~\cite{Schmidt:04a}
and Cadena \cite{Hatcliff:03}:
\begin{itemize}
\item CoSMIC (\url{www.dre.vanderbilt.edu/cosmic}) \index{CoSMIC} is
  an open-source MDD toolsuite that address key lifecycle development
  challenges of DRE middleware and applications, such as modeling of
  DRE system deployment and configuration
  capabilities~\cite{Schmidt:04z} and their QoS
  requirements~\cite{Schmidt:04y}.  The CoSMIC MDD tools enable
  developers of DRE systems to specify, develop, compose, and
  integrate application and middleware software.

\item Cadena (\url{cadena.projects.cis.ksu.edu}) \index{Cadena} is an
  open-source MDD toolsuite that supports various aspects of
  component-based DRE systems, including definition of component
  interfaces, deployment and configuration capabilities, and
  configuration of underlying middleware services.  In contrast to
  CoSMIC (which focuses on providing various forms of support for QoS
  management and configuration of particular component middleware
  frameworks, such as CIAO~\cite{Schmidt:03m}), Cadena focuses on
  providing various forms of visualization and model-level analysis of
  system configurations, including architectural slicing, simulation,
  and model checking of abstract descriptions of system
  behaviors~\cite{Deng-al:FMCO02}.
\end{itemize}

\sqztiny\paragraph{Gaps in MDD Technologies for DRE Systems.}
\sqztiny The QoS-enabled component middleware and MDD toolsuites
described above have largely evolved independently in separate R\&D
communities.  Due to the complexity and mission-criticality of
large-scale DRE systems, however, there is a need to combine (1)
lightweight specification and analysis capabilities that capture
functional and QoS specifications for component-based DRE systems with
(2) capabilities for QoS management and middleware configuration to
achieve an integrated collection of tools that can verifyfor DRE
system behavior early in the development lifecycle and enhance
reliability.  Such an integrated approach can help increase
productivity and reduce the risk of mistakes caused by DRE system
developers, who would otherwise need to port models from MDD tools
manually into representations used by other tools every time a model
changes.

This chapter is organized into the following three thrusts that
describe our experience developing and evaluating an integrated
model-driven development and analysis environment for QoS-enabled
component middleware and DRE systems: \sqztiny
\begin{itemize}%\crunchlist
\item Section~\ref{overview} describes how CoSMIC has been combined
with Cadena to provide an integrated MDD environment that accelerates
the development and validation of DRE systems by addressing key
production stages and providing powerful analysis capabilities for
tracking errors early in the development lifecycle.  This integrated
environment foreshadows the types of capabilties needed in future DRE
development environments to improve the creation and validation of DRE
systems.

\item Section~\ref{approach} discusses R\&D issues associated with
implementing algorithms for integrating MDD tools for DRE systems,
including coping with export-import cycles, storing and transferring
supersets and subsets of captured information, merging and preserving
information, and addressing future extensibility of the integration.

\item Section~\ref{casestudy} presents a case study of a robot
assembly\footnote{``{\em Assembly}'' is used here as in ``{\em
assembly line},'' which is a different use of the term than the
concept of a {\em ``CCM component assembly"} mentioned above.}  DRE
system that illustrates the technical difficulties encountered when
integrating CoSMIC and Cadena tools, highlighting how the choice of an
effective communication protocol, data interchange format, and a
framework for semantic translators helped enable smoother tool
integration.
\end{itemize}

This chapter shows how our integrated CoSMIC and Cadena MDD
technologies enable developers to specify DRE system requirements at
higher levels of abstraction than those provided by low-level
mechanisms, such as conventional third-generation programming
languages, operating systems, and middleware platforms.  Our case
study shows how these higher-level specifications express constraints
that are transformed into running lower-level code that preserves and
enforces the semantics of the specifications.  These ``correct by
construction'' MDD techniques are in contrast to the ``construct by
correction'' techniques commonly used today by post-construction
tools, such as compilers, source-level debuggers, and XML descriptor
validators.


