% $Id: Experiments.tex,v 1.2 2005/05/16 17:35:33 arvindk Exp $

\section {Empirical Results}
\label{results}

In this section we quantitatively describe the predictability and end-to-end
latency and throughput improvements accrued by the application of our 
specializations. To showcase our results, we use the ACE+TAO~\cite{TAO} 
CORBA ORB, which is a mature highly tuned and optimized implementation. The
motivation being to quantify the benefits of specialization over existing
well tuned general-purpose ORB implementations rather than an un-optimized
implementation. Although ACE+TAO support a variety of options we make
the following assumptions for this analysis: 
(1) Portable interceptors are not considered in request processing, (2)
Servants are normal CORBA servants that inherit from 
\url{org::omg::PortableServer::Servant}, {\em i.e.}, we do not consider
DII and DSI, and (3) Exceptions support was enabled and no proprietary 
policies were used in the ORB. These assumptions are representative of ways 
in which DRE applications commonly apply ORB middleware.

\paragraph {Hardware Software Test bed.}
All the experiments in this section were
performed on an Intel Pentium III 851 Mhz processor with 512 MB of
main memory running on Linux 2.4.7-timesys-3.1.214 kernel. For all the
experiments ACE version 5.4 and TAO version 1.4 was compiled and executed
with gcc version XXXXXX. 

\paragraph {Experimentation Description.}
To showcase our results we perform the following three types of experiments.
For each specialization presented in Section~\ref{} we present:
(1) {\bf end-to-end latency metrics}, that illustrates the differences
in end-to-end latency/throughput between general-purpose and specialized
version. (2) {\bf path specialization metrics}, that compares latency
measures for a specialized path versus the general-purpose path.
To showcase the cumulative effect of applying all the specializations
we present {\bf cumulative metrics}, that discuss latency and 
predictability improvements, and (4) 
{\bf Scenario metrics}, that illustrates the specialization improvements
to the {\em BasicSP} scenario. 

The term predictability has different connotations.
For example, in real-time scheduling theory, a predictable system means that
each task always meets its deadline. For DRE applications,
jitter measures determine predictability.  We thus define {\em predictability}
as the measure of standard deviation of the data points. For all the
experiments a sample size of 100,000 data points was used to generate 
results.

\subsection {Specialize for Target Object Location}
\label{spl-location-results}

\subsection {Request Creation Specialization}
\label{spl-request-creation}

\subsection {Dispatch Resolution Specialization}
\label{spl-dispatch-results}

\subsection {Request Demarshaling Specialization}
\label{spl-demarshal-results}

\subsection {Middleware Component Specialization}
\label{spl-reactor-results}

\subsection {BasicSP Scenario Specialization}

\subsection {Summary}
