Abstract
Ph.D.
Information technology (IT) system development faces increasing challenges
as a result of the complexity involved in the large number of
interacting, distributed and concurrently executing components of systems.
These components range from operating systems and virtual machines,
through to the various frameworks, servers and libraries. To continue
delivering on the current trend in resource requirements, hardware is increasingly
parallel. The parallelisation of hardware indicates that software
systems must be enabled to exploit these multicore, symmetric multiprocessing
and distributed architectures as they become more mainstream.
Parallelisation of IT systems adds to the number, distribution and concurrency
of interacting components. In addition, dynamic self-optimising, selfhealing,
self-configuring and self-protecting characteristics are required if
systems are to continue operating effectively. The environment into which
a system is eventually deployed is often either unknown or dynamic. An
unknown environment is one where the exact details of resource availability,
along with knowledge or control over concurrently executing systems,
is not available beforehand. Added to this is a lack of foreknowledge
surrounding the system’s environment, which may be dynamic, meaning
it is likely to change during the system’s lifetime. Changes to the system’s
environment include new infrastructure, different architectures, replacing
old hardware and installing or upgrading software.
The current approaches to overcoming unknown and dynamic environments
tend to be top-down and centralised as is seen in the use of control
theory by autonomic computing. There is, however, a growing realisation
that centralised approaches add to the brittleness and complexity of the
systems. What is needed is the self-adaptivity of an agent based approach,
which is able to overcome these challenges relating to unknown and
dynamic environments.
Nature has dealt with the same challenges in a far more robust way
by employing the principles of self-organising systems underpinning the
control of complex adaptive systems. An example of nature’s solution is the
self-organising system presented by the gene regulatory system coupled
to cell fate and the cell cycle in multicellular organisms. Organisms are
self-healing, self-protecting, self-optimising and self-configuring. They are
also able, through ontogenesis, to self-adapt to their environments and
grow to maximise their performance whilst still maintaining function.