Information Technology Reference
In-Depth Information
on both the client and the server. In addition, if methods are not at the correct
level of granularity, for example too coarse or too fine grained, then distribution
cannot be applied eciently or effectively or at all. For these reasons, we believe
distribution transparency is neither desirable nor achievable in all circumstances.
Autonomic Computing
The vision of autonomic computing [52, 56] is to reduce the configuration, op-
erational and maintenance costs of distributed systems by enabling systems to
self-manage, self-heal and self-optimise [121].
However, a key challenge limiting the use of autonomic features in appli-
cations is the lack of tools and frameworks that can alleviate the complexities
stemming from the use of manual development methods [56].
This is evident in current distributed systems development techniques, which
require the manual use of tools and frameworks and therefore cannot meet the
challenges posed by the autonomic computing vision. Consequently, alternative
methods of distributed systems development are needed to meet these challenges.
To meet the autonomic computing vision of self-managing, self-healing and
self-optimising systems requires a system to be able to dynamically adapt to its
environment and the majority of adaptions that are used in autonomic systems,
such as caching, security, persistence, distribution etc., tend to be crosscutting in
nature [44, 69].
Aspect-oriented programming, by allowing crosscutting concerns to be mod-
ularised and added to existing code, has long been realised as a viable method for
developing adaptive autonomic systems [69].
1.1 Research Goal
The primary goal of our research is to provide a contribution to the development
of autonomic systems by exploring an alternative approach to the development of
distributed applications which allows:
• An application, written with distribution in mind, to be made distributed
using any one of a number of distribution frameworks interchangeably.
• Distributed versions of an application to participate in distribution recov-
ery scenarios without the underlying application code having to be aware of
recovery.
• The same application to be used either distributed or non-distributed,
thereby improving software reuse and simplifying testing.
Search WWH ::




Custom Search