% $Id: conclusions.tex,v 1.6 2005/02/15 09:47:44 gokhale Exp $

\section{Conclusion and Future Research}
\label{sec:conclusions}

The research in this paper is motivated by the realization that a
growing number of computing and networking resources are being expended
to control large-scale, distributed, high performance software (DHPS)
systems. The next-generation of DHPS systems, such as sensor network
applications, grid-based scientific experiments, and emergency
response systems, evolve rapidly and must collaborate 
with multiple remote sensors, provide on-demand browsing and actuation
capabilities for human operators, and respond flexibly to unanticipated
situational factors that arise at run-time. These characteristics render
earlier static system development and analysis techniques less
effective.  Moreover, the availability of off-the-shelf software,
hardware, and networking building blocks -- compounded by economic and
market forces -- are causing DHPS systems to be assembled rapidly and
tested by composing building block components.  Design-time validation
and verification of end system performance is a necessity for the realm
of next-generation DHPS systems. 

In this paper, we provided an overview of the SRN modeling paradigm 
that may be valuable in developing a methodology for design time 
performance analysis. Further, we presented a model of 
an important software building block called
the Reactor, which is used in many DHPS systems. We then demonstrated how 
the SRN model can be used to obtain estimates of key performance
metrics of the Reactor, as well as to analyze the sensitivity of the 
performance metrics to the values of the input parameters and different
configuration options with relative ease. Such results, obtained earlier
in the system lifecyle ({\em e.g.}, design-time), can enable DHPS 
developers in making informed decisions regarding appropriate 
resource provisioning and schedulability.

In the near term, our future work will involve validating the 
performance metrics of the Reactor obtained from the SRN model using
empirical benchmarking. Empirical benchmarking is relatively
complex owing to the difficulties of testing the Reactor as a standalone
unit without the confounding effects of underlying OS demultiplexing
and queueing mechanisms. For example, in POSIX-compliant operating
systems, there will always be a default buffering capability associated
with the socket handles on which the 
{\tt select()} system call is invoked.  As a result, it is cumbersome
to showcase a Reactor with a configurable queue size for each of its
input event handles. Validating the Reactor model may require 
development and composition of the models for other building blocks
with which the Reactor interacts. Developing performance models for
other versions of the Reactor, including the {\em thread
pool}~\cite{Schmidt:02a} Reactor, is also a topic of future research.

In the long term, we expect to develop and validate a suite of 
performance models for most of the middleware building blocks, as well as
validation of the compositions of these building blocks. 

