Approach to Self-Adaptive
Authors : [Loads of them but importantly]
Oreizy, Gorlick, Taylor, Heimbigner, Johnson, Qullici, Rosenblum & Wolf
: Chirag Rajyaguru
: Niraj Motwani
An Architecture Based Approach to
Architecture & Approach
Architecture : The overall design or
structure of a computer system, including
the hardware and the software required to
run it, especially the internal structure of
Approach : make a proposal or overtures to
with a specific end in view
Self, Adaptive & Software
• Self : [Here] On one’s own
• Adaptation : Something, such as a device or
mechanism, that is changed or changes so as to
become suitable to a new or special application
• Software : The programs, routines, and
symbolic languages that control the functioning
of the hardware and direct its operation.
What is Self Adaptive Software??
• E. Grishikashvili [CMU] :: The Software which can identify, promote
and evaluate new models of code design and run-time support
which allow software to modify its own behavior or order to adapt, at
runtime, when exact conditions and inputs are known, to discovered
changes in requirements, inputs, and internal/external conditions.
• Paul Robertson [MIT] :: A self-adaptive system is a system that
continually (at runtime) monitors its success in achieving its intended
goal. When the system is found to be doing poorly the systems
modifies itself in an attempt to do better at its assigned task. A self-
adaptive system presupposes that there are multiple ways of
achieving the same task and that in some contexts one method may
be better suited than another.
• Does Self-Adaptation mean Adding something
like “INTELLIGENCE!!” ? [I hope I don’t
get slain for using this word in this class]
* High Dependability * Robustness
* Adaptability * Availability
* Consistency * Correctness
* Safety * Reliability
!!!!!! Other properties are important !!!!!!
depending on the applications requirements; but
these are the basic important properties
according to the author(s) !!!!
Several Issues to take care of!!
Open-adaptive / closed-adaptive ?
Fully automatic/ self-contained/ human-in-
Adaptation Policy :
Good enough ness of information
Frequency of adaptation
Evolutionary Programming and machine-
General Purpose Approach to self-
Many Dependencies &
Software agents that automate the task
within the process
Software components & respective
Environment where the s/w is deployed
Messaging and event services that are
used for various connections
Distinguish Component & Connector
No restriction on the language to be used
Communication via Asynchronous
Single or multiple threads / component
C2 vs. Weaves
C2 has been optimized for flexible
Weaves focuses on high-performance,
Dynamic Code Updating
[a Beginning / an end]
Dynamic Code update / Migration of
Component not more than a big step
Example : Removing Guidance
Component from Missile is Migration of a
component but that will Marr the
functionality of the system
To guard against untoward change : AEM : was
introduced. AEM(architecture evolution
manager) mediates all change operations
directed toward the architectural model. Ensures
ACID properties on Architecture’s structural
Methods of implementing Changes
Following methods can be used :
Adaptation management describes the
life cycle of adaptive software systems.
Collecting observations (Observers).
Monitoring and evaluating the application,
and its operating environment.
Planning adaptations (Planners).
Deploying change descriptions to the
running application (Deployers).
Managing Self Adaptive Software
Requires variety of agents
Observers, planners and deployers.
Infrastructure support to host the agents and
support the various activities of adaptation
management in form of registries.
Registries contain resource descriptions, configurations
and other declarative information.
Registries providing standard interface by which agents
can query and manipulate the contents of registry,
which acts as blackboard for exchanging information.
Eg. Software Dock, University of colorado, Boulder-
infrastructure element for distributed configuration and
deployment of software systems.
Life Cycle of Adaptive Software
Embedded assertions (inline observers).
Responding to event patterns (Expectation
Monitoring events occuring outside of the
Provisions for human observers.
Evaluating & Monitoring
Needed for Consistency Management.
Inconsistencies can occur when some
architecture element behaves in a manner
inconsistent with the behavior required of it.
How to we maintain consistency?
Static Analysis: eg. Attributed graph grammars.
Dynamic Analysis: Runtime checks to detect
Determine which observations are necessary for
deciding when and where adaptations are
Determine which adaptations to make and when to
Deploying Change Descriptions
It is the coordinated conveyance of
change description, components and
possibly new observers or evaluators to
the implementation platform in the field.
Change agents propagate and move out
among sites to carry out their tasks carrying
with them change descriptions.
Change descriptions may include new
components or connectors and their affiliated
Separating concerns of software adaptation from
function facilitates their independent analysis and
Ensuring that changes made to architectural model is
consistent with its implementation- consistency
Change management to ensure system integrity.
Neat categorization of Evolution management and
Adaptation management as two separate processes and
highlighting their activities.
The paper says “architecture based approach” and is
very well confined to its scope.
Prism for Self Adaptive Software
Characterized in terms of external structure, topology
rules, behavior, interaction and data flow.
Architectural requirements to support self
Prism for Self Adaptive Software
Architectural style meets adaptability
Distributability achieved via border connectors.
Meta level components facilitate dynamicity,
awareness, mobility and robustness.
Some meta level component like AEM could be
developed in PRISM to ensure ACID properties.
Traceability ensured via an architectural
Observability and autonomy – can be worked