% $Id: intro.tex 5108 2007-01-07 23:52:29Z gokhale $
\section{Introduction}
\label{sec:intro}

Dependability is a crucial design consideration for mission-critical
distributed real-time and embedded (DRE) systems, such as avionics
mission computing, and supervisory control and data acquisition
(SCADA) systems.  DRE systems development processes are increasingly
adopting the service oriented architecture (SOA) design
principles due in large part to the availability of real-time
component middleware platforms, such as the Lightweight CORBA
Component Model (LwCCM)~\cite{LWCCM-2004}.  The SOA approach when
applied to DRE systems gives rise to what we term \emph{enterprise DRE
  systems}, which are a loose coupling of interacting real-time and
embedded services that are composed, assembled, deployed and
configured on the underlying platforms to realize the end-to-end
functionality.

With the newer SOA-style design, however, new challenges emerge in the
design of dependability management solutions for enterprise DRE
systems, which stem from the following limitations of contemporary
mechanisms: 

\paragraph{Limitations of existing dependability mechanisms.}
% add citations - andy
A substantial amount of research in dependable distributed computing
has predominantly concentrated on providing fault tolerance solutions
to intrinsically homogeneous, two-tier client-server systems with
mostly request-response semantics or cluster-based server systems with
transactional semantics.  These research artifacts most often assume
single language and single platform systems, which when incorporated
in middleware platforms form point solutions, limit reuse, and are too
restrictive for enterprise DRE systems.

\paragraph{Lack of support for mixed-mode dependability semantics.}
DRE systems of interest to us require mix mode dependability wherein
parts of the system may require ultra high availability calling for
solutions that require active replication schemes while other parts of
the systems may demand passive forms of replication to overcome issues
with non-determinism.  

\paragraph{Lack of support for variable failover granularity and
  failure risk management.}
In enterprise DRE systems, traditional approaches to fault tolerance
that rely on replication and recovery of a single server process or a
single host are not sufficient since the fault management schemes must
now account for the timely and simultaneous failover of groups of
entities while also improving the system availability by minimizing
the risk of simultaneous failures of groups of replicated entities.  

\paragraph{Lack of intuitive and scalable dependability provisioning
  tools.} 
Standardized middleware solutions to dependability, such as
FT-CORBA~\cite{CORBAService:99c}, provide a {\em one-size-fits-all}
approach, which do not support the different properties, such as
mixed-mode dependability semantics, required by enterprise DRE
systems.  Moreover, dependability provisioning in DRE systems tend to
use imperative, programmatic mechanisms which are tedious, inflexible,
non reusable and error prone, and cannot scale to large enterprise DRE
systems, where heterogeneity of the underlying platforms is the norm.

To address the challenges outlined above, design-time tools that can
automate the dependability provisioning problem for enterprise DRE
systems are needed.  This paper describes \emph{MDDPro} (Model Driven
Dependability Provisioning), which is a Model-driven Engineering
(MDE)~\cite{Schmidt:06a} tool for design-time dependability
provisioning in enterprise DRE systems.  We demonstrate 

\begin{BulletList}
\item how the intuitive modeling capabilities in our tool can model
      fault tolerance elements in DRE systems at different
      granularities,  
\item how system availability can be enhanced by applying replica
      placement decision algorithms on the models, and  
\item how generative programming capabilities in the tool can be used
      to rapidly and reliably provision dependability in DRE systems.
\end{BulletList}

The rest of the paper is organized as follows:
Section~\ref{sec:challenges} describes the challenges in designing the
dependability provisioning tool for enterprise DRE systems;
Section~\ref{sec:soln} describes the design and implementation of our
dependability provisioning tool;  Section~\ref{sec:relwork} describes 
related research; and Section~\ref{sec:conclusions} provides
concluding remarks and directions for future research. 

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