Realizing self-adaptive systems via online reinforcement learning and feature-model-guided exploration

A self-adaptive system can modify its own structure and behavior at runtime based on its perception of the environment, of itself and of its requirements. To develop a self-adaptive system, software developers codify knowledge about the system and its environment, as well as how adaptation actions impact on the system. However, the codified knowledge may be insufficient due to design time uncertainty, and thus a self-adaptive system may execute adaptation actions that do not have the desired effect. Online learning is an emerging approach to address design time uncertainty by employing machine learning at runtime. Online learning accumulates knowledge at runtime by, for instance, exploring not-yet executed adaptation actions. We address two specific problems with respect to online learning for self-adaptive systems. First, the number of possible adaptation actions can be very large. Existing online learning techniques randomly explore the possible adaptation actions, but this can lead to slow convergence of the learning process. Second, the possible adaptation actions can change as a result of system evolution. Existing online learning techniques are unaware of these changes and thus do not explore new adaptation actions, but explore adaptation actions that are no longer valid. We propose using feature models to give structure to the set of adaptation actions and thereby guide the exploration process during online learning. Experimental results involving four real-world systems suggest that considering the hierarchical structure of feature models may speed up convergence by 7.2% on average. Considering the differences between feature models before and after an evolution step may speed up convergence by 64.6% on average. [...]

[1]  Zibin Zheng,et al.  Integrating Reinforcement Learning with Multi-Agent Techniques for Adaptive Service Composition , 2017, ACM Trans. Auton. Adapt. Syst..

[2]  Frank Eliassen,et al.  Using architecture models for runtime adaptability , 2006, IEEE Software.

[3]  Ladan Tahvildari,et al.  Adaptive Action Selection in Autonomic Software Using Reinforcement Learning , 2008, Fourth International Conference on Autonomic and Autonomous Systems (ICAS'08).

[4]  Sebastian Erdweg,et al.  Abstract Features in Feature Modeling , 2011, 2011 15th International Software Product Line Conference.

[5]  Jacques Klein,et al.  Towards flexible evolution of Dynamically Adaptive Systems , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[6]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[7]  Jan Bosch,et al.  Data-Driven Continuous Evolution of Smart Systems , 2016, 2016 IEEE/ACM 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[8]  Claus Pahl,et al.  Managing Uncertainty in Autonomic Cloud Elasticity Controllers , 2016, IEEE Cloud Computing.

[9]  Cheng-Zhong Xu,et al.  Coordinated Self-Configuration of Virtual Machines and Appliances Using a Model-Free Learning Approach , 2013, IEEE Transactions on Parallel and Distributed Systems.

[10]  Claus Pahl,et al.  Fuzzy Self-Learning Controllers for Elasticity Management in Dynamic Cloud Architectures , 2016, 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[11]  Vincenzo Grassi,et al.  Reinforcement Learning Techniques for Decentralized Self-adaptive Service Assembly , 2016, ESOCC.

[12]  Luciano Baresi,et al.  Evolution in dynamic software product lines: challenges and perspectives , 2015, SPLC.

[13]  Katsumi Inoue,et al.  Learning revised models for planning in adaptive systems , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[14]  Vicente Pelechano,et al.  Dynamic adaptation of service compositions with variability models , 2014, J. Syst. Softw..

[15]  Luciano Baresi,et al.  Toward Open-World Software: Issue and Challenges , 2006, Computer.

[16]  Betty H. C. Cheng,et al.  AutoRELAX: automatically RELAXing a goal model to address uncertainty , 2014, Empirical Software Engineering.

[17]  Andreas Metzger,et al.  Addressing Highly Dynamic Changes in Service-Oriented Systems: Towards Agile Evolution and Adaptation , 2013 .

[18]  Gunter Saake,et al.  Predicting performance via automated feature-interaction detection , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[19]  Danny Weyns,et al.  Efficient Analysis of Large Adaptation Spaces in Self-Adaptive Systems using Machine Learning , 2019, 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[20]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[21]  Minjie Zhang,et al.  Learning Efficient Compositions for QoS-Aware Service Provisioning , 2014, 2014 IEEE International Conference on Web Services.

[22]  Rami Bahsoon,et al.  Self-Adaptive and Online QoS Modeling for Cloud-Based Software Services , 2017, IEEE Transactions on Software Engineering.

[23]  Luciano Baresi,et al.  Learning and Evolution in Dynamic Software Product Lines , 2016, 2016 IEEE/ACM 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[24]  Karl-Erik Årzén,et al.  Brownout: building more robust cloud applications , 2014, ICSE.

[25]  Sooyong Park,et al.  Building Dynamic Software Product Lines , 2012, Computer.

[26]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[27]  Barry Porter,et al.  Defining Emergent Software Using Continuous Self-Assembly, Perception, and Learning , 2017, ACM Trans. Auton. Adapt. Syst..

[28]  Danny Weyns,et al.  Applying Architecture-Based Adaptation to Automate the Management of Internet-of-Things , 2018, ECSA.

[29]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[30]  Bradley Schmerl,et al.  Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Autonomous Robots , 2019, 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[31]  Pedro M. Domingos A few useful things to know about machine learning , 2012, Commun. ACM.

[32]  Jaime Font,et al.  Achieving Knowledge Evolution in Dynamic Software Product Lines , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[33]  Rajarshi Das,et al.  On the use of hybrid reinforcement learning for autonomic resource allocation , 2007, Cluster Computing.

[34]  Sooyong Park,et al.  Reinforcement learning-based dynamic adaptation planning method for architecture-based self-managed software , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[35]  Christian Kästner,et al.  Transfer Learning for Improving Model Predictions in Highly Configurable Software , 2017, 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[36]  Zoltán Ádám Mann,et al.  Resource Optimization Across the Cloud Stack , 2018, IEEE Transactions on Parallel and Distributed Systems.

[37]  Bradley R. Schmerl,et al.  Flexible and Efficient Decision-Making for Proactive Latency-Aware Self-Adaptation , 2018, ACM Trans. Auton. Adapt. Syst..

[38]  Carlo Ghezzi,et al.  Of software and change , 2017, J. Softw. Evol. Process..

[39]  Raffaela Mirandola,et al.  Adaptation space exploration for service-oriented applications , 2014, Sci. Comput. Program..

[40]  Andres J. Ramirez,et al.  A taxonomy of uncertainty for dynamically adaptive systems , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[41]  Isis Truck,et al.  Using Reinforcement Learning for Autonomic Resource Allocation in Clouds: towards a fully automated workflow , 2011 .

[42]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[43]  Klaus Pohl,et al.  Software product line engineering and variability management: achievements and challenges , 2014, FOSE.

[44]  Carlo Ghezzi,et al.  Dealing with Non-Functional Requirements for Adaptive Systems via Dynamic Software Product-Lines , 2010, Software Engineering for Self-Adaptive Systems.

[45]  Enda Barrett,et al.  Applying reinforcement learning towards automating resource allocation and application scalability in the cloud , 2013, Concurr. Comput. Pract. Exp..

[46]  Alexander Frömmgen,et al.  Fossa: Learning ECA Rules for Adaptive Distributed Systems , 2015, 2015 IEEE International Conference on Autonomic Computing.

[47]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[48]  Motoaki Kawanabe,et al.  Machine Learning in Non-Stationary Environments - Introduction to Covariate Shift Adaptation , 2012, Adaptive computation and machine learning.

[49]  Sam Malek,et al.  Taming uncertainty in self-adaptive software , 2011, ESEC/FSE '11.

[50]  Danny Weyns,et al.  MAPE-K Formal Templates to Rigorously Design Behaviors for Self-Adaptive Systems , 2015, ACM Trans. Auton. Adapt. Syst..

[51]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[52]  Nenad Medvidovic,et al.  PLASMA: a plan-based layered architecture for software model-driven adaptation , 2010, ASE '10.

[53]  Andrew W. Moore,et al.  Reinforcement Learning: A Survey , 1996, J. Artif. Intell. Res..

[54]  Hassan Gomaa,et al.  Model-Based Software Design and Adaptation , 2007, International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07).

[55]  Sebastián Uchitel,et al.  Hope for the best, prepare for the worst: multi-tier control for adaptive systems , 2014, ICSE.

[56]  Andreas Metzger,et al.  Optimized Cloud Deployment of Multi-tenant Software Considering Data Protection Concerns , 2017, 2017 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID).

[57]  Richard S. Sutton,et al.  Reinforcement Learning: An Introduction , 2005, IEEE Transactions on Neural Networks.

[58]  Bashar Nuseibeh,et al.  Self-adaptation through incremental generative model transformations at runtime , 2014, ICSE.

[59]  Thomas G. Dietterich What is machine learning? , 2020, Archives of Disease in Childhood.

[60]  David Garlan,et al.  Managing Uncertainty in Self-Adaptive Systems with Plan Reuse and Stochastic Search , 2018, 2018 IEEE/ACM 13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[61]  Carlo Ghezzi,et al.  Self-adaptive software needs quantitative verification at runtime , 2012, CACM.

[62]  Wei Zhang,et al.  A Reinforcement Learning-Based Framework for the Generation and Evolution of Adaptation Rules , 2017, 2017 IEEE International Conference on Autonomic Computing (ICAC).

[63]  2014 IEEE International Conference on Web Services, ICWS, 2014, Anchorage, AK, USA, June 27 - July 2, 2014 , 2014, ICWS.

[64]  Andres J. Ramirez,et al.  Automatically generating adaptive logic to balance non-functional tradeoffs during reconfiguration , 2010, ICAC '10.

[65]  John Mylopoulos,et al.  Rationalism with a dose of empiricism: combining goal reasoning and case-based reasoning for self-adaptive software systems , 2015, Requirements Engineering.

[66]  Sam Malek,et al.  Ieee Transactions on Software Engineering 1 a Learning-based Framework for Engineering Feature-oriented Self-adaptive Software Systems , 2022 .

[67]  Cheng-Zhong Xu,et al.  URL: A unified reinforcement learning approach for autonomic cloud management , 2012, J. Parallel Distributed Comput..

[68]  Klaus Pohl,et al.  Considering Feature Interactions in Product Lines: Towards the Automatic Derivation of Dependencies between Product Variants , 2005, FIW.

[69]  Antonio Bucchiarone,et al.  A Framework for Rule-Based Dynamic Adaptation , 2010, TGC.

[70]  Gerald Tesauro,et al.  Reinforcement Learning in Autonomic Computing: A Manifesto and Case Studies , 2007, IEEE Internet Computing.

[71]  Claus Pahl,et al.  A Comparison of Reinforcement Learning Techniques for Fuzzy Cloud Auto-Scaling , 2017, 2017 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID).

[72]  Pierre-Yves Schobbens,et al.  Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization and Automated Analysis , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[73]  Guigang Zhang,et al.  Deep Learning , 2016, Int. J. Semantic Comput..

[74]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.