An Architecture-Based Approach to Self-Adaptive Software

Document Sample
An Architecture-Based Approach to Self-Adaptive Software Powered By Docstoc
					         An Architecture-Based
        Approach to Self-Adaptive
                 Authors : [Loads of them but importantly]
                            Nenad Medvidovic
Oreizy, Gorlick, Taylor, Heimbigner, Johnson, Qullici, Rosenblum & Wolf

                              Presented by
                                : Chirag Rajyaguru
                                : Niraj Motwani
An Architecture Based Approach to
     Self-Adaptive Software

        Architecture
        Approach
        Self
        Adaptive
        Software
     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
     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
  or situation

• 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.
              Question !!!!

• Does Self-Adaptation mean Adding something
  like “INTELLIGENCE!!” ? [I hope I don’t
  get slain for using this word in this class]
          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) !!!!
 Several Issues to take care of!!
When ?
Open-adaptive / closed-adaptive ?
Fully automatic/ self-contained/ human-in-
Cost effectiveness
Adaptation Policy :
          Issues contd….
Good enough ness of information
Frequency of adaptation
             How to…?
Online Algorithms
Algorithm Selection
Evolutionary Programming and machine-
 learning techniques
General Purpose Approach to self-
        adaptive systems
       Many Dependencies &
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
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,
 flexible connectors
      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
       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 Architecture’s structural
Methods of implementing Changes
Following methods can be used :
     Architecture editor
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
     Collecting Observations

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
     Hybrid Approach.
         Planning Changes
Observation planning
    Determine which observations are necessary for
     deciding when and where adaptations are
Adaptation planning
    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
 Architectural Styles
     Characterized in terms of external structure, topology
      rules, behavior, interaction and data flow.
 Architectural requirements to support self
  healing behavior.
  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
  middleware implementation.
 Observability and autonomy – can be worked

Shared By: