Completely unanticipated dynamic adaptation of software

File Type:
PDFItem Type:
ThesisDoctorate
Doctor of Philosophy (Computer Science)
Date:
2004Author:
Citation:
J. Keeney, 'Completely unanticipated dynamic adaptation of software', Trinity College Dublin, (2004)Download Item:

Abstract:
Dynamic adaptation of software behaviour refers to the act of changing the behaviour of
some part of a software system as it executes, without stopping or restarting it. It is difficult
to dynamically adapt software if the need for adaptation arises while the software is
executing, and especially so if the program is compiled and the source code is unavailable.
Ideally, it would be possible for adaptations to be applied to a running application without
any anticipation of the adaptation itself, preparation of the location for that adaptation, or
even anticipation of the need for some adaptation. Even with the best planning and foresight
it is virtually impossible to anticipate at design and production stages all of the dynamic
behaviour adaptations that may be required for a piece software, especially if the need for
adaptation is triggered by unpredictable and erratic changes in the operating context, the
application's resources and demands, and the users? requirements.
The need for dynamic adaptation arises in various circumstances, from the very simple
desire to dynamically customise a piece of software to suit current needs, through to a
necessity to continually evolve a long-running program as its requirements and operating
context change. These adaptations may simply involve pre- or post-processing of
operations, for example, to support consistency checking, through to dynamically adapting
the core behaviours of an application as its operating context or requirements change, for
example to support dynamic upgrading or repair of the system. While it may be necessary to
adapt the core functional behaviours of an application, it may also be necessary to change or
insert new non-functional behaviours that do not change what the software does, but rather
how it does it. Examples here include dynamically inserting debugging or tracing
statements, through to making some object in an application persistent or remotely
accessible. To perform these changes it should not be necessary to restart the application, or
indeed have access to the source code of the application since the core problem domain
being modelled by the application has not changed.
If dynamic adaptation is to be completely unanticipated, the management and control of the
adaptation process must also be dynamically adaptable. It is unrealistic to expect an
adaptation framework using a hard-coded, static, or inflexible approach to adaptation
management, to perform adequately in a generalised manner. Only by decoupling the
adaptation mechanism from the adaptation control, and dynamically specifying and adapting
the adaptation control strategies, can completely unforeseen dynamic adaptation of running
software become a realistic goal. This thesis provides an in depth discussion of
unanticipated dynamic adaptation, introduces the term ?completely unanticipated dynamic
adaptation? to refer to adaptations where all properties of the adaptation can remain
unanticipated until during runtime, and identifies the set of requirements that must be met to
achieve this.
This thesis presents the Chisel adaptation framework, and demonstrates that a generalpurpose,
context-aware dynamic adaptation framework is achievable. This system can be
used to perform almost any unforeseen behavioural adaptation without stopping the
application, and without changing the application itself. In this system a human-readable,
dynamically updatable policy script was chosen as the favoured approach to drive the
adaptation mechanism in a responsive manner by monitoring changes in the user,
application, and environmental context. The Chisel framework also demonstrates that
behavioural reflection, using the managed but unforeseen dynamic selection of Iguana/J
metatypes, is a valid and powerful technique for completely unanticipated dynamic software
adaptation. In addition, the Chisel framework provides a structured mechanism to allow a
user to inspect and probe the internal operation of compiled software without access to the
software's source code to allow that software to be adapted or extended as appropriate.
To evaluate Chisel and validate our claims, a number of examples and case studies are used,
including the use of the Chisel framework to dynamically adapt an off the shelf network
application, as it ran, to use ALICE, a middleware for mobile computing environments, and
how, using an Iguana/J metatype to implement a snap-on non-functional behaviour to
implement a naming mechanism for individual objects, those named objects can be
individually adapted or queried as context sources.
Sponsor
Grant Number
Microsoft Research Ltd
Author's Homepage:
http://people.tcd.ie/jkeeneyDescription:
PUBLISHED
Author: KEENEY, JOHN
Advisor:
CAHILL, VINNYPublisher:
Trinity College DublinType of material:
ThesisDoctorate
Doctor of Philosophy (Computer Science)
Collections:
Availability:
Full text availableKeywords:
Computer ScienceLicences: