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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend