% $Id: relwork.tex 3807 2006-09-12 20:14:53Z gokhale $


\section{Related Work}
\label{sec:relwork}

With the growing complexity of component-based systems, composing 
system-level performance and dependability attributes using component
attributes and system architecture is gaining attention.  Crnkovic
{\em et al.}~\cite{crnkovic05} classify the quality attributes 
according to the possibility of predicting the attributes of the
compositions based on the attributes of the components and the 
influence of other factors within the architecture and the 
environment.  However, they do not propose any methods for composing 
the system-level attributes. 

At the model and program transformation level, 
the work by Shen and Petriu~\cite{Petriu_MODELS05} investigated the use
of aspect-oriented modeling techniques to address performance concerns
that are weaved into a primary UML model of functional behavior.  It has 
been observed that an improved separation of the performance description
from the core behavior enables various design alternatives to be considered
more readily (i.e., after separation, a specific performance concern can be
represented as a variability measure that can be modified to examine the
overall systemic effect).  The performance concerns are specified in the 
UML profile for Schedulability, Performance, and Time (SPT) with underlying 
analysis performed by a Layered Queuing Network (LQN) solver.  

A disadvantage of the approach is that UML forces a specific modeling
language.  The SPT profile also forces performance concerns to be 
specified in a manner than limits the ability to be tailored to a
specific performance analysis methodology.  As an alternative,
domain-specific modeling supports the ability to provide a model
engineer with a notation that fits the domain of interest, which
improves the level of abstraction of the performance modeling
process.

There have been efforts to evaluate the performance of middleware
patterns analytically by various
researchers~\cite{Gokhale_NGS_IPDPS:05,ramani00}. A drawback of using 
analytical models is that it is difficult to predict the behavior of a
complex system based on analytical methods alone.  Harkema, {\em{et
    al}}~\cite{Harkema-SPECTS:04} have worked on the 
performance evaluation of the CORBA method invocation and threading
models. However, they have not focused on the pattern-based approach
towards performance analysis of middleware. Model-driven techniques
are increasingly being used for middleware development, but converting
static pattern-based middleware models into simulation or empirical
models for the purpose of performance evaluation has not yet been a
focus in the research community.   

There are various middleware specialization techniques described in
the literature, which can be leveraged to customize middleware.  For
example, Feature-Oriented Programming (FOP)~\cite{Batory:06} is an
appropriate technique to design and implement program families, which
uses incremental and stepwise refinement 
approaches~\cite{Batory:04}.  FOP aims to cope with the increasing
complexity and lack of reusability and customizability of contemporary
software systems.  Aspect-Oriented Programming (AOP)~\cite{gregor:97}
is another related programming paradigm and has similar goals: It
focuses primarily on separating and encapsulating crosscutting
concerns to increase maintainability, understandability, and
customizability.

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