\chapter{Conclusions}
\label{chap:conclusions}

Dependence management is probably the most crucial problem to be resolved
before operating systems and middleware are able to provide automatic
configuration of component-based applications and services. Only then will we
be able to remove the burden of system configuration from users and
administrators.

In this thesis, we presented an integrated architecture for managing
dependencies in component-based distributed systems.  Our experience with the
architecture has been very fruitful, encouraging further enhancements. Future
work in our and other research groups will show whether the architecture is
suitable for complex, distributed, component-based systems developed by other
programmers.



\section{Original Contributions}
\index{contributions}

The novel architecture presented in this thesis provided the first three
original contributions listed below.  The deployment of the architecture in
two example applications provided the two additional contributions.

\begin{enumerate}
\item An Automatic Configuration Service for component-based distributed
systems(described in Chapter \ref{chap:autoconfig-service} and \cite{kon99:autoconf}).

\item A framework for representation and management of dependencies in
component-based distributed systems
(described in Chapter \ref{chap:comp-config} and \cite{kon00:concurrency}).

\item A mobile agent infrastructure for dynamic reconfiguration and code
distribution (described in Chapter \ref{chap:reconfig-agents} and \cite{kon99:agents-TR2}). 

\item \dTAO, a CORBA-compliant reflective ORB \cite{kon00:dtao}.

\item A dynamically configurable, reliable multimedia distribution system
 \cite{kon99:DynamicReflector,kcn:00:communications}.
\end{enumerate}

\section{Perspectives}

Within the next few years, we will witness great changes in our everyday
computing environments, including higher degrees of dynamism, composability,
mobility, heterogeneity, and interactions among heterogeneous computing
devices connected to global networks. Probably, the major change will be that
computers will no longer be heavy boxes on our desks, but instead, will be
everywhere, at home, at the supermarket, at the hospital, on the street, from
our glasses to soda cans.  One of the few things that are clear at this moment
is that conventional middleware and operating system architectures are
inadequate to support these highly dynamic, heterogeneous environments of the
future.
We believe that the contributions presented on this thesis constitute a few
small bricks that will help the construction of the big building of next
century's software technology.

Above all, we scientists must not forget that, while the amazing technology of
the $21^{st}$ century will certainly improve the quality of life of the top 20\%
wealthiest people, we live in a planet where the large majority of the
population live in deep poverty. This is a political problem that cannot be
solved by science and technology alone; but scientists must not forget that
and always have in mind that our role in society is much more than improving
systems performance.
