View
217
Download
1
Tags:
Embed Size (px)
Citation preview
An Architecture-Based Approach to Self-Adaptive Software
Presenters
Douglas Yu-cheng Su
Ajit G. Sonawane
What is Self-adaptive software?
“A software that modifies its own behavior in response to the changes in its operating environment such as end-user input, external hardware devices and sensors”
Why Adaptive Software?
Software’s original promise:
‘application that retain full plasticity throughout their lifecycle and that are as easy to modify in the field as they are on the drawing board’
High-level programming languages, Object Oriented analysis and design etc falls short of keeping the promise.
Self-adaptive software – provides to keep the promise!
What issues to keep in mind?
Condition Open-adaptive or Close-adaptive Cost-Effectiveness Frequency Information type and accuracy
Software Adaptation In-The-Large I
Goals
Develop a comprehensive adaptation methodology that supports the entire range of adaptation process or life-cycle.
Software Adaptation In-The-Large II
Adaptation Life-Cycle
Software Adaptation In-The-Large III
Important Features of Adaptation Life-Cycle: Change Management (Adaptation Management)
- Identify and Specify Changes
- Plan Changes
- Correctness and Coordination of Changes (Software Agents, Explicit Representation of Environment to deploy)
Change Mechanism (Evolution Management)
- Approaches (Architectural Based)
- Maintain Consistency and Enact Change Plan
An Ontology for self-adaptive software
Evolution Management
Dynamic Software Architecture- Components, Connectors, and Topology
- Reliable Manner with Architectural Formalisms
Maintaining Consistency & System Integrity - Facilities for guiding and checking modifications
- Manager to coordinate changes
Enact Changes- Architecture editor
Dynamic Software Architecture I- Weaves & C2
C2
Hierarchy of concurrent components
Service request Broadcast notification Flexible component (no
inter-dependent component thread)
Dynamic Software Architecture II- Weaves & C2
Weaves
Object as input and output
Laws of blind communication
Flexible connectors
Dynamic Software Architecture III- Weaves & C2
Similarities between Weaves & C2:
Distinguish between components and connectors No restrictions on the granularity of the components or
implementation language Asynchronous messages for inter-component
communication Component encapsulates functionalities and controls
Maintaining Consistency & System Integrity
Need to integrate facilities for guiding and checking modifications
Need to provide maintenance for strict correspondence between architectural model and implementation
Solution: Architecture Evolution Manager (AEM) Maintain “change transaction” (single, basic, and atomic operation)
Maintain consistency between architectural model and executing implementation
Reify changes in architectural model Prevent changes from violating architectural constraints.
Enacting Changes
Architecture Editor(To construct architectures and describe modifications)
Design Wizard (To prevent semantic errors)
Modification Interpreter(To interpret change scripts written by AEM)
Adaptation Management
Functions
Collect Changes Monitors and Evaluates the application and its
operational environment Plans Adaptations Deploys change descriptions to running application
Adaptation Management cont
Requirement for Self-Adaptive Software
Observers
Evaluates the behavior of the self-adaptive application and monitors its operating environment.
Planners
Utilizes the observations to plan adaptive responses.
Deployers
Enact the responses within the application
Requires infrastructure support in the form of “registry” (e.g. Software Dock)
Collecting Observation
Embedded Assertions (inline observers) Use of ‘Expectation Agent’ Monitor events that occur outside of
Application e.g. availability of network connection, dynamic architectural change
Human Observers in cooperation with automated changes
Evaluation and Monitoring
Use of Attributed graph grammers
Planning Changes
Two distinct forms of planning Observation Planning Which observations are necessary for deciding when and
where adaptations are required
Classic Planning Problem
Adaptation Planning Exactly which adaptations to make and when
Deploying Change Descriptors
Use of Mobile Agents
Strength
Fine-grain architectural-based approach to supports the entire range of adaptive software
OthersCRM ERP Workflow Automation
Methodology
Weakness
Fine-grain architectural-based approach to supports the entire range of adaptive software. Too Fine-grain???
Domain specific ontology/framework for adaptive software?
Weakness cont.
Example: Workflow AutomationProcessContext
createProcess()removeProcess()getProcess()startProcess()stopProcess()
IProcess
Process
addProcessStep()removeProcessStep()getProcessStep() IProcessSte
p
ProcessStep
addProperty()removeProperty()getProperty()
Property
getValue()registerEvent()
Thank You.Question or Comments?