% $Id: Concluding.tex,v 1.19 2005/09/28 12:14:55 arvindk Exp $
\section {Concluding Remarks}
\label{conclusions}

Product-line architectures (PLAs) enable organizations to reconfigure
their software quickly to respond to new missions and new business
opportunities~\cite{Clements:02}.  PLAs are particularly applicable
for large-scale distributed real-time and embedded (DRE) systems since
reusable software families can be built for a domain (such as
avionics, vetronics, or ship-board computing) where applications share
many functional and architectural properties and then customized to
meet the specific needs of product variants.  Standards-based
middleware is a key infrastructure technology for PLAs since it
provides many reusable policies and mechanisms to simplify the
development, customization, and deployment of product variants.  The
stringent demands of DRE systems, however, require conservation of
resources, while simultaneously providing the desired QoS.  It is
therefore essential to optimize standards-based middleware
implementations by eliminating extraneous functionality and
extensibility not needed for particular product variants.

This paper describes an approach for systematically eliminating
excessive generality in standards-based middleware.  In particular, we
show how context-specific specializations can be used to optimize the
TAO Real-time CORBA implementation for the Bold Stroke avionics
mission computing PLA.  The results of our feasibility study reveal a
performance boost of $\sim$30\% in end-to-end latency and a factor of
two improvement in predictability for TAO, which is notable since TAO
has already been tuned via many general-purpose middleware
optimizations~\cite{Schmidt:98v,Schmidt:02r}.  We also
describe languages and tools that was used to automate the specializations
described in the paper.  Our FOCUS approach provides a light weight 
technique for specializing different middleware implementations and also
enables seamless addition of new specializations.

\iffalse
The lessons learned from applying our specialization approach to TAO
in the context of the {\em BasicSP} scenario based on the Bold Stroke
PLA illustrated that: \sqztiny
% Arvind, can you try to ``beef up'' the discussion of the Bold Stroke
% BasicSP scenario to help tie the paper together better?!
\begin{itemize}\crunchlist
\item Specialization is a promising approach for alleviating the
time/\-space overhead stemming from excessive generality in
standards-based middleware implementations and improving its QoS, such
as reducing footprint, jitter, and latency.  The relevance of our
specializations to the {\em BasicSP} scenario,
which brings out several commonalities and variabilities in Bold stroke 
PLA, illustrates the applicability of our approach to 
PLA-based DRE systems 
whose stringent QoS requirements must be met while also preserving
middleware portability and interoperability.

% Arvind, can you add a bullet that summarizes which of the various
% specialization optimizations we've looked at thus far seems like the
% most promising?  Please make sure that the length of this bullet is
% approximately the same as the other three bullets that are already
% here. 
%%%
% Arvind: Added the same.
%%%
\item Among the specializations examined and implemented in this paper,
memoization and layer folding, aspect weaving and code refactoring 
techniques lead to larger gains is end-to-end latencies. Our future
work will examine more of aspect weaving techniques such as eliminating
middleware generality in protocol and concurrency frameworks in 
middleware.

% Arvind, I moved this here since it sounds more like a lesson than a
% summary.  Can you please make a pass and further emphasize the
% lessons from this observation?
%%%
% Arvind: Please let me know if this is enough as I did not want to
% make the bullet too big.
%%%
\item The results in Section~\ref{cumulative} show that the
improvement in QoS by applying the specializations cumulative is
largely {\em additive}, {\em i.e.}, the 30\% improvement is roughly
the sum of the individual specializations.  This property stems from
the fact that these specializations were carefully chosen not to
overlap in the end-to-end code path and have no dependencies.  As 
middleware and system architects develop a catalog of specializations
it will be necessary to document the interplay between the specializations.
This will be necessary as cumulatively applying overlapping optimizations 
that have dependencies might not yield an additive increase in QoS.

\item The context-specific specializations described in
Section~\ref{mw-spl-solution} use TAO implementation artifacts, which
limits their applicability, even though the specializations can
conceptually be applied to other CORBA ORBs.  Our future work
therefore focuses on developing a CORBA \emph{specialization model}
based on~\cite{daugherty:04} that -- independent of a particular CORBA
implementation -- identifies (1) points in an ORB architecture where
specialization is beneficial and (2) API extensions to the
architecture that provide {\em hooks} for achieving effective
specialization.

\item Although our specializations improved TAO's performance and
predictability, the effort required to specify and apply these
specializations was prohibitive for production middleware and PLAs for
DRE systems, {\em e.g.}, manually applying these specializations to
the millions of lines of C++ and thousands of components in Bold
Stroke would be infeasible.  Our future work therefore focuses on
developing languages and tools to automate static and dynamic analysis
to identify opportunities for specialization and to collect
information that can drive the specialization process.  We are also
developing transformation engines that automatically perform the
refactoring, partial evaluation, and code weaving necessary to achieve
specialized middleware implementations.
\end{itemize}
\fi
