Architecture-Based Behavioral Adaptation with Generated Alternatives and Relaxed Constraints

Software systems are increasingly required to autonomously adapt their architectural structures and/or behaviors to runtime environmental changes. However, existing architecture-based self-adaptation approaches mostly focus on structural adaptations within a predefined space of architectural alternatives (e.g., switching between two alternative services) while merely considering quality constraints (e.g., reliability and performance). In this paper, we propose a new architecture-based self-adaptation approach, which performs behavioral adaptations with automatically generated alternatives and supports relaxed functional constraints from the perspective of business value. Specifically, we propose a technique to automatically generate behavioral alternatives of a software system from the currently-employed architectural behavioral specification. We employ business value to comprehensively evaluate the behavioral alternatives while capturing the trade-offs among relaxed functional and quality constraints. We also introduce a genetic algorithm-based planning technique to efficiently search for the optimal (sometimes a near-optimal) behavioral alternative that can provide the best business value. The experimental study on an online order processing benchmark has shown promising results that the proposed approach can improve adaptation flexibility and business value with acceptable performance overhead.

[1]  Radu Calinescu,et al.  Using quantitative analysis to implement autonomic IT systems , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[2]  Jun Sun,et al.  Model Checking Software Architecture Design , 2012, 2012 IEEE 14th International Symposium on High-Assurance Systems Engineering.

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

[4]  Luciano Baresi,et al.  Adaptive Goals for Self-Adaptive Service Compositions , 2010, 2010 IEEE International Conference on Web Services.

[5]  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).

[6]  Jun Sun,et al.  Model Checking Hierarchical Probabilistic Systems , 2010, ICFEM.

[7]  I-Ling Yen,et al.  QoS-Driven Service Composition with Reconfigurable Services , 2013, IEEE Transactions on Services Computing.

[8]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[9]  Conrado Daws Symbolic and Parametric Model Checking of Discrete-Time Markov Chains , 2004, ICTAC.

[10]  Brice Morin,et al.  Taming Dynamically Adaptive Systems using models and aspects , 2009, 2009 IEEE 31st International Conference on Software Engineering.

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

[12]  Maria Luisa Villani,et al.  An approach for QoS-aware service composition based on genetic algorithms , 2005, GECCO '05.

[13]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[14]  Radu Calinescu,et al.  Formal Methods @ Runtime , 2010, Monterey Workshop.

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

[16]  Nelly Bencomo,et al.  RELAX: a language to address uncertainty in self-adaptive systems requirement , 2010, Requirements Engineering.

[17]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[18]  Bashar Nuseibeh,et al.  Requirements-driven adaptive security: Protecting variable assets at runtime , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[19]  Arnd Poetzsch-Heffter,et al.  Component-based modeling and verification of dynamic adaptation in safety-critical embedded systems , 2011, TECS.

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

[21]  Xin-She Yang,et al.  Nature-Inspired Metaheuristic Algorithms , 2008 .

[22]  Xin Peng,et al.  A Feature-Oriented Adaptive Component Model for Dynamic Evolution , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[23]  Lidia Fuentes,et al.  Run-time adaptation of mobile applications using genetic algorithms , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[24]  John Mylopoulos,et al.  Self-Repair through Reconfiguration: A Requirements Engineering Approach , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[25]  Yijun Yu,et al.  Stateful requirements monitoring for self-repairing socio-technical systems , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[26]  Bradley R. Schmerl,et al.  Proactive self-adaptation under uncertainty: a probabilistic model checking approach , 2015, ESEC/SIGSOFT FSE.

[27]  Xuanzhe Liu,et al.  Measurement and Analysis of Mobile Web Cache Performance , 2015, WWW.

[28]  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.

[29]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[30]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[31]  Carlo Ghezzi,et al.  A journey to highly dynamic, self-adaptive service-based applications , 2008, Automated Software Engineering.

[32]  Luciano Baresi,et al.  Fuzzy Goals for Requirements-Driven Adaptation , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[33]  Lijun Zhang,et al.  Probabilistic reachability for parametric Markov models , 2010, International Journal on Software Tools for Technology Transfer.

[34]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[35]  Tao Xie,et al.  Internetware: A Software Paradigm for Internet Computing , 2012, Computer.

[36]  Lars Grunske,et al.  Lightweight Adaptive Filtering for Efficient Learning and Updating of Probabilistic Models , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[37]  Krishna G. Palepu,et al.  Business Analysis and Valuation , 2010 .

[38]  Jiannong Cao,et al.  Auxo: an architecture-centric framework supporting the online tuning of software adaptivity , 2015, Science China Information Sciences.

[39]  Yijun Yu,et al.  Self-tuning of software systems through dynamic quality tradeoff and value-based feedback control loop , 2012, J. Syst. Softw..

[40]  James Kennedy,et al.  Particle swarm optimization , 2002, Proceedings of ICNN'95 - International Conference on Neural Networks.

[41]  Vincenzo Grassi,et al.  Qos-driven runtime adaptation of service oriented architectures , 2009, ESEC/SIGSOFT FSE.

[42]  Wei-Tek Tsai,et al.  Software-as-a-service (SaaS): perspectives and challenges , 2013, Science China Information Sciences.

[43]  Carlo Ghezzi,et al.  Run-time efficient probabilistic model checking , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[45]  Sam Malek,et al.  FUSION: a framework for engineering self-tuning self-adaptive software systems , 2010, FSE '10.

[46]  Hongyang Qu,et al.  Incremental Runtime Verification of Probabilistic Systems , 2012, RV.

[47]  Nelly Bencomo,et al.  A Goal-Based Modeling Approach to Develop Requirements of an Adaptive System with Environmental Uncertainty , 2009, MoDELS.

[48]  Yijun Yu,et al.  Are your sites down? Requirements-driven self-tuning for the survivability of Web systems , 2011, 2011 IEEE 19th International Requirements Engineering Conference.

[49]  Nelly Bencomo,et al.  Requirements-Aware Systems: A Research Agenda for RE for Self-adaptive Systems , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[50]  John Mylopoulos,et al.  An Architecture for Requirements-Driven Self-reconfiguration , 2009, CAiSE.

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

[52]  Christel Baier,et al.  Principles of model checking , 2008 .

[53]  Michael J. Freedman,et al.  Stronger Semantics for Low-Latency Geo-Replicated Storage , 2013, NSDI.

[54]  Oscar Nierstrasz,et al.  Model-Centric, Context-Aware Software Adaptation , 2009, Software Engineering for Self-Adaptive Systems.

[55]  Barry Boehm,et al.  Value-Based Software Engineering: Reinventing "Earned Value" Monitoring and Control , 2003 .

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

[57]  Jun Sun,et al.  PAT: Towards Flexible Verification under Fairness , 2009, CAV.

[58]  Yijun Yu,et al.  Requirements-Driven Self-Optimization of Composite Services Using Feedback Control , 2015, IEEE Transactions on Services Computing.

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

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

[61]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.