Improving self-adaptation planning through software architecture-based stochastic modeling

We propose a formal automated approach to translate from an ADL to a DTMC.We address issues of today self-adaptive systems.We assessed dynamically the impact of each strategy in the system quality.Our approach presents better results than traditional planning algorithms.Our approach presents good scalability and performance results. The ever-growing complexity of software systems makes it increasingly challenging to foresee at design time all interactions between a system and its environment.Most self-adaptive systems trigger adaptations through operators that are statically configured for specific environment and system conditions. However, in the occurrence of uncertain conditions, self-adaptive decisions may not be effective and might lead to a disruption of the desired non-functional attributes.To address this, we propose an approach that improves the planning stage by predicting the outcome of each strategy. In detail, we automatically derive a stochastic model from a formal architecture description of the managed system with the changes imposed by each strategy. Such information is used to optimize the self-adaptation decisions to fulfill the desired quality goals.To assess the effectiveness of our approach we apply it to a cloud-based news system and predicted the reliability for each possible adaptation strategy. The results obtained from our approach are compared to a representative static planning algorithm as well as to an oracle that always makes the ideal decision. Experiments show that our method improves both availability and cost when compared to the static planning algorithm, while being close to the oracle.Our approach may therefore be used to optimize self-adaptation planning.

[1]  Bradley R. Schmerl,et al.  Evaluating the effectiveness of the Rainbow self-adaptive system , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[2]  Jim Gray,et al.  Why Do Computers Stop and What Can Be Done About It? , 1986, Symposium on Reliability in Distributed Software and Database Systems.

[3]  Marta Z. Kwiatkowska,et al.  PRISM: probabilistic model checking for performance and reliability analysis , 2009, PERV.

[4]  Rogério de Lemos,et al.  Evaluation of resilience in self-adaptive systems using probabilistic model-checking , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[5]  Carlo Ghezzi,et al.  Managing non-functional uncertainty via model-driven adaptivity , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[6]  D. Parker Verification of Probabilistic Real-time Systems , 2013 .

[7]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[8]  Marin Litoiu,et al.  Performance Model Estimation and Tracking Using Optimal Filters , 2008, IEEE Transactions on Software Engineering.

[9]  Gary Herrin,et al.  A guide to practical human reliability assessment , 1996 .

[10]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[11]  Carlo Ghezzi,et al.  Quality Prediction of Service Compositions through Probabilistic Model Checking , 2008, QoSA.

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

[13]  Hausi A. Müller,et al.  A framework for evaluating quality-driven self-adaptive software systems , 2011, SEAMS '11.

[14]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[15]  Jesper Andersson,et al.  FORMS: Unifying reference model for formal specification of distributed self-adaptive systems , 2012, TAAS.

[16]  Bradley R. Schmerl,et al.  Impact Models for Architecture-Based Self-adaptive Systems , 2014, FACS.

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

[18]  David Garlan,et al.  Rainbow: cost-effective software architecture-based self-adaptation , 2008 .

[19]  Neil R. Storey,et al.  Safety-critical computer systems , 1996 .

[20]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[21]  Marta Z. Kwiatkowska,et al.  PRISM 4.0: Verification of Probabilistic Real-Time Systems , 2011, CAV.

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

[23]  Mário Zenha Rela,et al.  Automated Reliability Prediction from Formal Architectural Descriptions , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[24]  Tariq M. King,et al.  An Integrated Self-Testing Framework for Autonomic Computing Systems , 2007, J. Comput..

[25]  Carlo Ghezzi,et al.  Model evolution by run-time parameter adaptation , 2009, 2009 IEEE 31st International Conference on Software Engineering.

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

[27]  Bradley R. Schmerl,et al.  Optimal planning for architecture-based self-adaptation via model checking of stochastic games , 2015, SAC.

[28]  Valérie Issarny,et al.  Dynamic decision networks for decision-making in self-adaptive systems: A case study , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[29]  Andres J. Ramirez,et al.  Towards run-time testing of dynamic adaptive systems , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[30]  Marta Z. Kwiatkowska,et al.  Stochastic Model Checking , 2007, SFM.

[31]  Bradley R. Schmerl,et al.  Architecture-based self-protection: composing and reasoning about denial-of-service mitigations , 2014, HotSoS '14.

[32]  David Garlan,et al.  Acme: an architecture description interchange language , 2010, CASCON.

[33]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[34]  David Garlan,et al.  Stitch: A language for architecture-based self-adaptation , 2012, J. Syst. Softw..

[35]  Katerina Goseva-Popstojanova,et al.  Architecture-based approach to reliability assessment of software systems , 2001, Perform. Evaluation.

[36]  Carlo Ghezzi,et al.  Self-adaptive software meets control theory: A preliminary approach supporting reliability requirements , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

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

[38]  Radu Calinescu,et al.  Dynamic QoS Management and Optimization in Service-Based Systems , 2011, IEEE Transactions on Software Engineering.

[39]  MirandolaRaffaela,et al.  Self-adaptive software needs quantitative verification at runtime , 2012 .

[40]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[41]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[42]  Rodolfo E. Haber,et al.  Self-adaptive systems: A survey of current approaches, research challenges and applications , 2013, Expert Syst. Appl..