Title: An ArchitectureBased Approach to SelfAdaptive Software
1An Architecture-Based Approach to Self-Adaptive
Software
Authors Loads of them but importantlyNenad
MedvidovicOthersOreizy, Gorlick, Taylor,
Heimbigner, Johnson, Qullici, Rosenblum Wolf
- Presented by
- Chirag Rajyaguru
- Niraj Motwani
2An Architecture Based Approach to Self-Adaptive
Software
- Architecture
- Approach
- Self
- Adaptive
- Software
3Architecture 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 the microprocessor - Approach make a proposal or overtures to with a
specific end in view
4Self, Adaptive Software
- Self Here On ones 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
or situation - Software The programs, routines, and symbolic
languages that control the functioning of the
hardware and direct its operation.
5What 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.
6Question !!!!
- Does Self-Adaptation mean Adding something like
INTELLIGENCE!! ? I hope I dont get slain for
using this word in this class
7Important Properties
- 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) !!!!
8Several Issues to take care of!!
- When ?
- Open-adaptive / closed-adaptive ?
- Fully automatic/ self-contained/ human-in-loop
- Cost effectiveness
- Adaptation Policy lazy/opportunistic/continuous
9Issues contd.
- Good enough ness of information
- Frequency of adaptation
-
10How to?
- Online Algorithms
- Algorithm Selection
- Evolutionary Programming and machine-learning
techniques
11General Purpose Approach to self-adaptive systems
12Many Dependencies Interdependencies
- Software agents that automate the task within the
process - Software components respective environmental
assumptions - Environment where the s/w is deployed
- Messaging and event services that are used for
various connections
13Architectures
- C2
- Weaves
- Commonalities
- Distinguish Component Connector
- No restriction on the language to be used
- Communication via Asynchronous messages
- Single or multiple threads / component
14C2
15Weaves
16C2 vs. Weaves
- C2 has been optimized for flexible components
- Weaves focuses on high-performance, flexible
connectors
17Dynamic Code Updatinga 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
18Evolution Management
- Safety
- Reliability
- Correctness
- 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 Architectures structural changes.
19Methods of implementing Changes
- Following methods can be used
- Visual
- Interactive
- Architecture editor
20ADAPTATION MANAGEMENT
- 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).
21Managing 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.
22Life Cycle of Adaptive Software Systems
23Collecting Observations
- Embedded assertions (inline observers).
- Responding to event patterns (Expectation agent).
- Monitoring events occuring outside of the
application. - Provisions for human observers.
24Evaluating 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
inconsistencies. - Hybrid Approach.
25Planning Changes
- Observation planning
- Determine which observations are necessary for
deciding when and where adaptations are required. - Adaptation planning
- Determine which adaptations to make and when to
make.
26Deploying 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 annotations.
27Conclusions
- Separating concerns of software adaptation from
function facilitates their independent analysis
and evolution. - Ensuring that changes made to architectural model
is consistent with its implementation-
consistency maintenance. - 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.
28Prism for Self Adaptive Software
- Architectural Styles
- Characterized in terms of external structure,
topology rules, behavior, interaction and data
flow. - Architectural requirements to support self
healing behavior. - Adaptability
- Dynamicity
- Awareness
- Observability
- Autonomy
- Robustness
- Distributability
- Mobility
- Traceability
29Prism for Self Adaptive Software
- Architectural style meets adaptability
requirement. - 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
middleware implementation. - Observability and autonomy can be worked on.