a language for feedback loops in self adaptive systems
play

A Language for Feedback Loops in Self-Adaptive Systems: Executable - PowerPoint PPT Presentation

A Language for Feedback Loops in Self-Adaptive Systems: Executable Runtime Megamodels 7th Intl. Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2012) Zurich, Switzerland, June 4-5, 2012 Thomas Vogel and Holger


  1. A Language for Feedback Loops in Self-Adaptive Systems: Executable Runtime Megamodels 7th Intl. Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2012) Zurich, Switzerland, June 4-5, 2012 Thomas Vogel and Holger Giese System Analysis and Modeling Group Hasso Plattner Institute University of Potsdam, Germany

  2. Engineering Self-Adaptive Software • Internal vs. external approach [Salehie and Tahvildari, 2009] Adaptation Engine • Feedback Loop (MAPE-K) [Kephart and Chess, 2003] • Multiple, flexible feedback loops • Different concerns [Vogel et al., 2010a, Vogel and Giese, 2010] • Hierarchical structures [Hestermeyer et al., 2004, Kramer and Magee, 2007] Adaptable Software • Uncertainty [Esfahani and Malek, 2012] • Models@run.time for K and MAPE T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 2

  3. Interplay of Runtime Models? ? c:Component corr 1 : CorrEjbModule provides m:EjbModule ⇒ ++ enterpriseBeans ++ i:Interface f 1 : sb:SessionBean Failure ++ ++ corr 2 : uid := ib.uid CorrEjbInterface type name = InvalidTX ++ ++ ++ ejbInterfaces t:InterfaceType ++ failures ib:EjbInterface c 2 :Component c 1 :Component CorrEjbInterfaceType corr 3 : ejbInterfaceType i 2 :Interface name = Warehousing uid := i.uid ++ tb:EjbInterfaceType name = Shop provides failures f 2 : name = IWarehousing Failure requires -- i 2 :Interface failures name = InvalidTX co 1 :Connector -- i 1 :Interface -- f 3 : name = IWarehousing Failure name = c1 name = IWarehousing name = InvalidTX ++ ++ i 3 :Interface co 2 :Connector ++ name = IWarehousing name = c2 provides if self.name = ’TShop’ c 3 :Component then self.components.size() <= 1 name = Warehousing2 else true endif T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 3

  4. Specifying and Executing Feedback Loops Specification — Modeling language • Capturing the interplay of multiple runtime models [Vogel et al., 2010b, Vogel et al., 2011] • Making feedback loops explicit in the design of self-adaptive systems [Müller et al., 2008, Brun et al., 2009] Execution — Model interpreter • Coordinated execution/usage of multiple runtime models • Flexible solutions and structures for feedback loops � Adaptable feedback loops T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 4

  5. Specifying and Executing Feedback Loops Specification — Modeling language • Capturing the interplay of multiple runtime models [Vogel et al., 2010b, Vogel et al., 2011] • Making feedback loops explicit in the design of self-adaptive systems [Müller et al., 2008, Brun et al., 2009] Execution — Model interpreter • Coordinated execution/usage of multiple runtime models • Flexible solutions and structures for feedback loops � Adaptable feedback loops Executable Runtime Megamodels T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 4

  6. Megamodels Definition (Megamodel) A megamodel is a model that contains models and relations by means of model operations between those models. • Research on model-driven software development (MDA, MDE) [Favre, 2005, Bézivin et al., 2003, Bézivin et al., 2004, Barbero et al., 2007] • “Toward Megamodels at Runtime” [Vogel et al., 2010b] T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 5

  7. An Example: Self-repair Analyzed Effected Start Legend Initial state Final state (concrete syntax) T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 6

  8. An Example: Self-repair <<Analyze>> detailed Deep check <<Analyze>> failures results Check for for failures no failures failures Analyzed <<Plan>> Repair repaired <<Monitor>> up- <<Execute>> Update dated model Effect done Effected Start Legend Initial state Model t1 Operation t2 Final state (concrete syntax) T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 6

  9. An Example: Self-repair [else] [c since <<Analyze>> 'no failures' > 5] detailed Deep check <<Analyze>> failures results Check for for failures no failures failures Analyzed <<Plan>> Repair repaired <<Monitor>> up- <<Execute>> Update dated model Effect done Effected Start Control flow Legend Initial state [else] Model t1 Operation t2 Final state (concrete syntax) [condition] T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 6

  10. An Example: Self-repair [else] <<EvaluationModel>> <<EvaluationModel>> Failure analysis rules Deep analysis rules [c since <<ChangeModel>> <<Analyze>> 'no failures' > 5] detailed Repair Deep check <<Analyze>> failures results strategies Check for for failures no failures failures Analyzed <<Plan>> Repair repaired <<ReflectionModel>> Architectural Model <<Monitor>> up- <<Execute>> Update dated model Effect done <<MonitoringModel>> <<ExecutionModel>> TGG Rules Effected Start Control flow Legend Initial state [else] Model t1 Model Operation t2 Final state (concrete syntax) [condition] T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 6

  11. An Example: Self-repair [else] <<EvaluationModel>> <<EvaluationModel>> Failure analysis rules Deep analysis rules r r [c since <<ChangeModel>> <<Analyze>> 'no failures' > 5] detailed Repair Deep check <<Analyze>> failures results strategies Check for for failures no failures r failures r Analyzed <<Plan>> a a r Repair repaired r <<ReflectionModel>> w Architectural Model <<Monitor>> up- <<Execute>> Update dated model Effect done w r <<MonitoringModel>> r r <<ExecutionModel>> TGG Rules Effected Start Control flow Model Legend Initial state [else] Model t1 usage Model Operation t2 Final state (concrete syntax) [condition] T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 6

  12. Modularity and Composition <<EvaluationModel>> [else] <<EvaluationModel>> Failure analysis rules Deep analysis rules r Analysis step r [c since <<Analyze>> <<Analyze>> failures 'no failures' > 5] for self-repair Check for Deep check detailed no results failures for failures failures OK r a r a <<ReflectionModel>> Failures Architectural Model Analyze <<ChangeModel>> Repair strategies r Failures Self-repair. <<Plan>> Analyze OK repaired Repair Self-repair a Analyzed r r <<ReflectionModel>> w <<Execute>> Architectural Model <<Monitor>> up- Effect done Update dated r model w <<MonitoringModel>> r r <<ExecutionModel>> TGG Rules Effected Start T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 7

  13. Modularity and Composition <<EvaluationModel>> [else] <<EvaluationModel>> Failure analysis rules Deep analysis rules r Analysis step r [c since <<Analyze>> <<Analyze>> failures 'no failures' > 5] for self-repair Check for Deep check detailed no results failures for failures failures OK r a r a <<ReflectionModel>> Failures Architectural Model Analyze Complex model operations <<ChangeModel>> Repair strategies r Failures Self-repair. <<Plan>> Analyze OK repaired Repair Self-repair a Analyzed r r <<ReflectionModel>> w <<Execute>> Architectural Model <<Monitor>> up- Effect done Update dated r model w <<MonitoringModel>> r r <<ExecutionModel>> TGG Rules Effected Start T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 7

  14. Modularity and Composition <<EvaluationModel>> [else] <<EvaluationModel>> Failure analysis rules Deep analysis rules r Analysis step r [c since <<Analyze>> <<Analyze>> failures 'no failures' > 5] for self-repair Check for Deep check detailed no results failures for failures failures OK r a r a <<ReflectionModel>> Failures Architectural Model Analyze Complex model operations <<ChangeModel>> Repair strategies r Failures Self-repair. <<Plan>> Analyze OK repaired Repair Self-repair a Analyzed r r <<ReflectionModel>> w <<Execute>> Architectural Model <<Monitor>> up- Effect done Update dated r model w <<MonitoringModel>> r r <<ExecutionModel>> TGG Rules Effected Start T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012 7

Recommend


More recommend