1 / 32

Architecture-based Adaptivity

Architecture-based Adaptivity. by Amir Taherkordi amirhost@ifi.uio.no INF5360: Seminar on Dependable and Adaptive Distributed Systems Department of Informatics University of Oslo February 12, 2008. This presentation is based on a paper by

damali
Télécharger la présentation

Architecture-based Adaptivity

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architecture-based Adaptivity by Amir Taherkordi amirhost@ifi.uio.no INF5360: Seminar on Dependable and Adaptive Distributed Systems Department of Informatics University of Oslo February 12, 2008

  2. Architecture-based Adaptivity - Feb. 12, 2008 This presentation is based on a paper by P. Oreizy, M. Gorlick, R. Taylor, D. Heimbigner, G. Johnson, N. Medvidovic, A. Quilici, D. Rosenblum, and A. Wolf entitled An Architecture-BasedApproach to Self-Adaptive Software published in IEEE Intelligent Systems. May-June, 1999

  3. Paper contribution Architecture-based Adaptivity - Feb. 12, 2008 • Examines the fundamental role of software architecture in self-adaptive systems • Topics covered: • Self-adaptive software introduction • Degrees of self-adaptability • Dynamic Software architecture definition • Adaptation management

  4. Sample scenario mission: fleet of unmanned air vehicles to disable an enemy airfield replan their mission, dividing into two groups: SAM-suppression and airfield-suppression surface-to-air missile (SAM) launchers now guards the airfield airfield Architecture-based Adaptivity - Feb. 12, 2008

  5. What happened Architecture-based Adaptivity - Feb. 12, 2008 Specialized algorithms for detecting and recognizing SAM launchers Replannning by Analyses that include feedback from new situation New software components are dynamically loaded and integratedwithout requiring restart, or any downtime Taking place autonomously

  6. Self-adaptive software Self-adaptive software is a software thatmodifiesitsownbehavior at run-time in response to changes in its operating environment Architecture-based Adaptivity - Feb. 12, 2008 Definition: Behavior: anything the software is expected to do Run-Time: do not need to be shut down to make the change Changes in operating environment: anythingobservable by thesoftware system, e.g. end-user input, external hardware devices and sensors, or program instrumentation

  7. Questions arising from definition Architecture-based Adaptivity - Feb. 12, 2008 • Whatconditions? • Closed- or open-adapted? • Type ofautonomy? • From fullyautomatic to human-in-the-loop • Cost-effectiveness? • Frequencies? • Information type and accuracy?

  8. Degrees of adaptability Architecture-based Adaptivity - Feb. 12, 2008

  9. Conditional expressions Architecture-based Adaptivity - Feb. 12, 2008 Program evaluates an expression and alters its behavior based on the outcome E. g. if/switch statements

  10. Online algorithms Architecture-based Adaptivity - Feb. 12, 2008 assumefuture events are uncertain leverageknowledgeabout the problem and the input domain to improveefficiency E. g. memory-cachepagingalgorithm

  11. Generic algorithms Architecture-based Adaptivity - Feb. 12, 2008 Provide behaviors that are parameterized E.g. polymorphic type in OOPLs,working with instances of new classes (derived from known classes or implement known interfaces)

  12. Algorithm selection Architecture-based Adaptivity - Feb. 12, 2008 Selectionofthe effective algorithm among a fixed set of available algorithmsbasedonenvironmentproperties E. g. Selfoptimizingcompiler uses program-profiling data collected during program execution to select another optimizationalgorithms

  13. Evolutionary programming Architecture-based Adaptivity - Feb. 12, 2008 Using properties of the operating environment and knowledge gained from previous execution to generate new algorithms

  14. Adaptation methodology Architecture-based Adaptivity - Feb. 12, 2008

  15. Architectural model Architecture-based Adaptivity - Feb. 12, 2008

  16. Architecture-driven development Architecture-based Adaptivity - Feb. 12, 2008 From Architectural model to Implementation Consistencybetweenmodel and Implementation System: network of coarse-grained components bound together by connectors Connectorsaretransport and routing services for messages or objects Components do not know how their inputs and outputs are delivered or transmitted or even what their sources or destinations might be Connectorsknow exactly who is talking to whom and how Separating computation from communication

  17. Dynamic software architecture Architecture-based Adaptivity - Feb. 12, 2008 • In dynamic systems: modification in behaviour at run-time by making the following architectural changes: • Adding new components • Removing existing components • Replacing existing components • Changing the connectivity structure between components • Two approaches to dynamism at the architectural level: • C2 • Weaves

  18. C2 and Weaves Architecture-based Adaptivity - Feb. 12, 2008 • Both • distinguish between components and connectors • norestrictionontheirimplementationlanguage • communicationbetweencomponents by exchangingasynchronous messages (C2) or objects (Weaves) • all communication between components must be via connectors

  19. C2 C1 C2 C3 C4 C5 C6 C7 Architecture-based Adaptivity - Feb. 12, 2008 • System as a hierarchy of concurrent components bound together by connectors • Componentis aware of components “above” it and unaware of components residing at the same level or “beneath” it • Communication between a component and those below it is handled implicitly using events • Whenever a component changes its state, it broadcasts this to all components below it

  20. Weaves C1 Obj1 returns C2 C4 C3 Obj2 Architecture-based Adaptivity - Feb. 12, 2008 Dynamic, objectflow-centric architecture Components consume objects as inputs and produce objects as outputs Components do not knows the semantics of the connectors that delivered its input objects or transmitted its output objects

  21. Maintaining consistency Architecture-based Adaptivity - Feb. 12, 2008

  22. Maintaining consistency and integrity Architecture-based Adaptivity - Feb. 12, 2008 • Preserving an accurate and consistent model of components and connectors • Maintaina strict correspondence between the architectural model and the executing implementation • ArchitectureEvolution Manager (AEM) • maintainstheconsistencybetweenarchitecturalmodel and implementation • preventschanges from violating architecturalconstraints

  23. Enacting changes Architecture-based Adaptivity - Feb. 12, 2008

  24. Enacting changes Architecture-based Adaptivity - Feb. 12, 2008 • Possiblesourcesofarchitecturalchange • Architecture editor • To construct architecture and describe modifications • With analysistoolssuch as design analyzer or domain-dependentanalyzer • Modification interpreter • Tool to interpret change scripts written in a change-descriptionlanguage to primitive actions supported by the AEM

  25. Adaptation methodology Architecture-based Adaptivity - Feb. 12, 2008

  26. Collecting observations Architecture-based Adaptivity - Feb. 12, 2008 • Varieties of observations: event generation, … • Observers for notificationofexceptionalevents • Expectation agent • detecting and noting single events is not enough • responds to theoccurrenceofeventpatterns • New techniques for reducing themonitoring overhead

  27. Evaluate and monitor observations Architecture-based Adaptivity - Feb. 12, 2008 Adaptive demands arise from inconsistencies or suboptimal behavior Evaluating and observing an application’s execution, including, performance monitoring, constraint verification, …

  28. Plan changes Architecture-based Adaptivity - Feb. 12, 2008 • The task of accepting the evaluations, defining an appropriateadaptation, and constructing a blueprint for executingthatadaptation • Two forms • Observation planning: determineswhich observations are necessary for deciding • Adaptation planning: determinesexactlywhich adaptations to make and when

  29. Deploy change descriptions Architecture-based Adaptivity - Feb. 12, 2008 • Changedescriptions • Includedare any new required components or connectors and their affiliated annotations • Interact with the AEM to translates the change in descriptionsintospecificupdatesofimplementation

  30. Summary Architecture-based Adaptivity - Feb. 12, 2008 • Paper main goal • Introducing an architecture-based approach to managing self-adaptive software • To achieve this goal • Describe dynamic software architecture • Explain how architectural model eases software adaptation

  31. Interesting points Architecture-based Adaptivity - Feb. 12, 2008 • Key issues for adaptive software: open-closed, cost effective, ... • Classification of self-adaptability, ranging from conditional expressions to evolutionary programming • Describing two dynamic software architectures: C2 and Weaves • Making effort to connect software development process with adaptation process

  32. Questions and discussion Architecture-based Adaptivity - Feb. 12, 2008 • The authors claim that they have developed an infrastructure for dynamic adaptation • The infrastructure is described at an abstract level • No details of how an implementation of the infrastructure works • How are architectural constraints expressed and checked?

More Related