An ArchitectureBased Approach to SelfAdaptive Software - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

An ArchitectureBased Approach to SelfAdaptive Software

Description:

Approach : make a proposal or overtures to with a specific end in view ... Ensuring that changes made to architectural model is consistent with its ... – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 30
Provided by: rajy
Category:

less

Transcript and Presenter's Notes

Title: An ArchitectureBased Approach to SelfAdaptive Software


1
An 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

2
An Architecture Based Approach to Self-Adaptive
Software
  • Architecture
  • Approach
  • Self
  • Adaptive
  • Software

3
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 the microprocessor
  • Approach make a proposal or overtures to with a
    specific end in view

4
Self, 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.

5
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.

6
Question !!!!
  • Does Self-Adaptation mean Adding something like
    INTELLIGENCE!! ? I hope I dont get slain for
    using this word in this class

7
Important 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) !!!!

8
Several Issues to take care of!!
  • When ?
  • Open-adaptive / closed-adaptive ?
  • Fully automatic/ self-contained/ human-in-loop
  • Cost effectiveness
  • Adaptation Policy lazy/opportunistic/continuous

9
Issues contd.
  • Good enough ness of information
  • Frequency of adaptation

10
How to?
  • Online Algorithms
  • Algorithm Selection
  • Evolutionary Programming and machine-learning
    techniques

11
General Purpose Approach to self-adaptive systems
12
Many 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

13
Architectures
  • C2
  • Weaves
  • Commonalities
  • Distinguish Component Connector
  • No restriction on the language to be used
  • Communication via Asynchronous messages
  • Single or multiple threads / component

14
C2
15
Weaves
16
C2 vs. Weaves
  • C2 has been optimized for flexible components
  • Weaves focuses on high-performance, flexible
    connectors

17
Dynamic 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

18
Evolution 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.

19
Methods of implementing Changes
  • Following methods can be used
  • Visual
  • Interactive
  • Architecture editor

20
ADAPTATION 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).

21
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.

22
Life Cycle of Adaptive Software Systems
23
Collecting Observations
  • Embedded assertions (inline observers).
  • Responding to event patterns (Expectation agent).
  • Monitoring events occuring outside of the
    application.
  • Provisions for human observers.

24
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
    inconsistencies.
  • Hybrid Approach.

25
Planning 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.

26
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 annotations.

27
Conclusions
  • 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.

28
Prism 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

29
Prism 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.
Write a Comment
User Comments (0)
About PowerShow.com