Information Technology Reference
In-Depth Information
Building Self-adaptive Software Systems with
Component, Services & Agents Technologies: Self -OSGi
Mauro Dragone
University College Dublin (UCD), Ireland
CLARITY Centre for Sensor Web Technologies, Belfield, Dublin, Ireland
mauro.dragone@ucd.ie
http://www.csi.ucd.ie/users/mauro-dragone
Abstract. This paper examines component & service, and agent technologies,
and shows how to build a component & service-based framework with agent-like
features for the construction of software systems with self-configuring,
self-healing, self-optimizing, and self protecting (self-*) properties. This paper
illustrates the design of one such framework, Self -OSGi, built over Java tech-
nology from the Open Service Gateway Initiative (OSGi) and loosely based on
the Belief, Desire, Intention (BDI) agent model. The use of the new framework
is illustrated and benchmarked with a simulated robotic application and with a
dynamic service-selection test.
Keywords: Autonomic software, Self-* software systems, Agent oriented soft-
ware engineering, Component based software engineering.
1
Introduction
Today, autonomic and adaptive software architectures are pursued in a number of re-
search and application strands, including Robotics, cyber-physical systems, wireless
sensor networks, and pervasive and ubiquitous computing.
In order to operate in these highly dynamic, unpredictable, distributed and open
environments, these software systems must exhibit self-configuring, self-healing, self-
optimizing, and self protecting (self-*) properties.
These problems are being addressed by both the Component-Based Software En-
gineering (CBSE) and the Agent-Oriented Software Engineering (AOSE) paradigms,
each offering a modular design by which to encapsulate, integrate and organize the
different systems functionalities
CBSE operates by posing clear boundaries between architectural modules (the com-
ponents ) and guiding the developers in re-using and assembling these components into
applications. This typically involves an unambiguous description of the component's
behavioral properties, and the set of their legitimate mutual relationships, in terms of
provided and required interfaces (the services ).
More recently, in order to adapt to varying resource availability and to increase sys-
tem fault-tolerance, component frameworks are also provided with limited run-time
flexibility through late-binding and dynamic wiring of component's interfaces.
Search WWH ::




Custom Search