focus
distributed systems
0740-7459/04/$20.00 © 2004 IEEE Published by the IEEE Computer Society IEEE SOFTWARE 49
increases, which means a greater number of
required fixes. Studies have found that nearly
half the software development effort in com-
plex distributed systems is devoted to mainte-
nance.
1
Furthermore, the industry currently
favors iterative and incremental development
approaches over the traditional waterfall ap-
proach in software engineering to flexibly
handle requirements
2
and reduce project risks
by deploying smaller changes.
3
These changes
are regular and predictable.
So, how can we build distributed systems to
handle these kinds of changes? The answer, we
argue, is dynamic evolution. From a business
perspective, dynamic evolution permits frequent
upgrades, which reduces the time between re-
leases. Dynamic evolution also enhances flexi-
bility in implementing changes to unforeseen
and fluctuating business requirements.
Many specialized distributed systems, in-
cluding the kind listed in Table 1, will benefit
from factoring dynamic evolution into their
designs. We can easily achieve dynamic evolu-
tion in a component-based distributed system
(see the related sidebar). The abstraction of
components and their connectors facilitates
system structures to accommodate changes.
Perspectives on dynamic evolution
We can trace the most popular definition of
the term “evolution” to Darwin’s study of species
as “the process of developing from a rudimen-
Embracing Dynamic
Evolution in
Distributed Systems
D
istributed systems aren’t only more widespread than they used to
be, but they’ve become more critical than ever, having moved
from client-server systems to multitier heterogeneous systems.
Many of these applications—such as telephone exchange sys-
tems—must be operational 24 hours a day, so shutting them down isn’t a
viable option for administrators who must make systemwide changes.
As a system becomes larger and more complex, the likelihood of defects
The ability to evolve dynamically is an important element of
distributed systems that must undergo changes without being
shut down. Various technologies exist that support such
dynamic evolution.
Kam Hay Fung, Graham Low, and Pradeep Kumar Ray,
University of New South Wales, Australia