23
An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

  • View
    217

  • Download
    1

Embed Size (px)

Citation preview

Page 1: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

An Architecture-Based Approach to Self-Adaptive Software

Presenters

Douglas Yu-cheng Su

Ajit G. Sonawane

Page 2: 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”

Page 3: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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!

Page 4: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

What issues to keep in mind?

Condition Open-adaptive or Close-adaptive Cost-Effectiveness Frequency Information type and accuracy

Page 5: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Software Adaptation In-The-Large I

Goals

Develop a comprehensive adaptation methodology that supports the entire range of adaptation process or life-cycle.

Page 6: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Software Adaptation In-The-Large II

Adaptation Life-Cycle

Page 7: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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

Page 8: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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

Page 9: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Dynamic Software Architecture I- Weaves & C2

C2

Hierarchy of concurrent components

Service request Broadcast notification Flexible component (no

inter-dependent component thread)

Page 10: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Dynamic Software Architecture II- Weaves & C2

Weaves

Object as input and output

Laws of blind communication

Flexible connectors

Page 11: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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

Page 12: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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.

Page 13: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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)

Page 14: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Adaptation Management

Functions

Collect Changes Monitors and Evaluates the application and its

operational environment Plans Adaptations Deploys change descriptions to running application

Page 15: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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)

Page 16: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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

Page 17: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Evaluation and Monitoring

Use of Attributed graph grammers

Page 18: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

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

Page 19: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Deploying Change Descriptors

Use of Mobile Agents

Page 20: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Strength

Fine-grain architectural-based approach to supports the entire range of adaptive software

OthersCRM ERP Workflow Automation

Methodology

Page 21: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Weakness

Fine-grain architectural-based approach to supports the entire range of adaptive software. Too Fine-grain???

Domain specific ontology/framework for adaptive software?

Page 22: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Weakness cont.

Example: Workflow AutomationProcessContext

createProcess()removeProcess()getProcess()startProcess()stopProcess()

IProcess

Process

addProcessStep()removeProcessStep()getProcessStep() IProcessSte

p

ProcessStep

addProperty()removeProperty()getProperty()

Property

getValue()registerEvent()

Page 23: An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane

Thank You.Question or Comments?