Advertisement

Automated Software Engineering

, Volume 25, Issue 3, pp 595–626 | Cite as

MOSAICO: offline synthesis of adaptation strategy repertoires with flexible trade-offs

  • Javier Cámara
  • Bradley Schmerl
  • Gabriel A. Moreno
  • David Garlan
Article

Abstract

Self-adaptation improves the resilience of software-intensive systems, enabling them to adapt their structure and behavior to run-time changes (e.g., in workload and resource availability). Many of these approaches reason about the best way of adapting by synthesizing adaptation plans online via planning or model checking tools. This method enables the exploration of a rich solution space, but optimal solutions and other guarantees (e.g., constraint satisfaction) are computationally costly, resulting in long planning times during which changes may invalidate plans. An alternative to online planning involves selecting at run time the adaptation best suited to the current system and environment conditions from among a predefined repertoire of adaptation strategies that capture repair and optimization tasks. This method does not incur run-time overhead but requires additional effort from engineers, who have to specify strategies and lack support to systematically assess their quality. In this article, we present MOSAICO, an approach for offline synthesis of adaptation strategy repertoires that makes a novel use of discrete abstractions of the state space to flexibly adapt extra-functional behavior in a scalable manner. The approach supports making trade-offs: (i) among multiple extra-functional concerns, and (ii) between computation time and adaptation quality (varying abstraction resolution). Our results show a remarkable improvement on system qualities in contrast to manually-specified repertoires. More interestingly, moderate increments in abstraction resolution can lead to pronounced quality improvements, whereas high resolutions yield only negligible improvement over medium resolutions.

Keywords

Self-Adaptation Resilience Synthesis Model checking 

Notes

Acknowledgements

This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. [Distribution Statement A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution (DM-0004612).

References

  1. Andova, S., Hermanns, H., Katoen, J.: Discrete-time rewards model-checked. In: Larsen, K.G., Niebert, P. (eds.) Formal Modeling and Analysis of Timed Systems: First International Workshop, FORMATS 2003, Marseille, France, 6–7 September 2003. Revised Papers, Volume 2791 of Lecture Notes in Computer Science, pp. 88–104. Springer, Berlin (2003)Google Scholar
  2. Beheshti, S.M.R.S., Liatsis, P.: Captcha usability and performance, how to measure the usability level of human interactive applications quantitatively and qualitatively? In: 2015 International Conference on Developments of E-Systems Engineering (DeSE), pp. 131–136 (2015)Google Scholar
  3. Bulletin Board Benchmark. http://jmob.ow2.org/rubbos.html
  4. Calinescu, R., Kwiatkowska, M.Z.: Using quantitative analysis to implement autonomic IT systems. In: Atlee, J.M., Inverardi, P. (eds.) Proceedings of the 31st International Conference on Software Engineering, ICSE 2009, 16–24 May 2009, Vancouver, Canada, pp. 100–110. IEEE (2009)Google Scholar
  5. Calinescu, R., et al.: Dynamic QoS management and optimization in service-based systems. IEEE Trans. Softw. Eng. 37(3), 387–409 (2011)CrossRefGoogle Scholar
  6. Cámara, J., Correia, P., de Lemos, R., Garlan, D., Gomes, P., Schmerl, B. R., Ventura, R.: Evolving an adaptive industrial software system to use architecture-based self-adaptation. In: Litoiu and Mylopoulos (2013), pp. 13–22 (2013)Google Scholar
  7. Cámara, J., Lopes, A., Garlan, D., Schmerl, B.R.: Impact models for architecture-based self-adaptive systems. In: Lanese, I., Madelaine, E. (eds.) Formal Aspects of Component Software—11th International Symposium, FACS 2014, Bertinoro, Italy, 10–12 September 2014, Revised Selected Papers, Volume 8997 of Lecture Notes in Computer Science, pp. 89–107. Springer, Berlin (2014)Google Scholar
  8. Cámara, J., Garlan, D., Schmerl, B.R., Pandey, A.: Optimal planning for architecture-based self-adaptation via model checking of stochastic games. In: Wainwright, R.L., Corchado, J.M., Bechini, A., Hong, J. (eds.) Proceedings of the 30th Annual ACM Symposium on Applied Computing, pp. 428–435. ACM (2015)Google Scholar
  9. Cámara, J., Correia, P., de Lemos, R., Garlan, D., Gomes, P., Schmerl, B.R., Ventura, R.: Incorporating architecture-based self-adaptation into an adaptive industrial software system. J. Syst. Softw. 122, 507–523 (2016)CrossRefGoogle Scholar
  10. Carzaniga, A., Gorla, A., Mattavelli, A., Perino, N., Pezzè, M.: Automatic recovery from runtime failures. In: Notkin, D., Cheng, B.H.C., Pohl, K. (eds.) 35th International Conference on Software Engineering, ICSE ’13, San Francisco, CA, USA, 18–26 May 2013, pp. 782–791. IEEE/ACM (2013)Google Scholar
  11. Cheng, S.-W.: Rainbow: Cost-Effective Software Architecture-Based Self-Adaptation. PhD thesis, CMU (2008)Google Scholar
  12. Cheng, S.-W., Garlan, D.: Stitch: a language for architecture-based self-adaptation. J. Syst. Softw. 85(12), 2860–2875 (2012)CrossRefGoogle Scholar
  13. Cheng, B.H.C. et al.: Software engineering for self-adaptive systems: a research roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems, Volume 5525 of Lecture Notes in Computer Science, pp. 1–26. Springer, Berlin (2009)Google Scholar
  14. Cheng, S., Garlan, D., Schmerl, B.R.: Evaluating the effectiveness of the rainbow self-adaptive system. In: 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2009, Vancouver, BC, Canada, 18–19 May 2009, pp. 132–141. IEEE Computer Society (2009)Google Scholar
  15. da Silva, C.E., de Lemos, R.: Dynamic plans for integration testing of self-adaptive software systems. In: Giese, H., Cheng, B.H.C. (eds.) 2011 ICSE Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2011, Waikiki, Honolulu , HI, USA, 23–24 May 2011, pp. 148–157. ACM (2011)Google Scholar
  16. Didona, D., Romano, P.: Using analytical models to bootstrap machine learning performance predictors. In: 2015 IEEE 21st International Conference on Parallel and Distributed Systems (ICPADS), pp. 405–413 (2015)Google Scholar
  17. D’Ippolito, N., Braberman, V. A., Kramer, J., Magee, J., Sykes, D., Uchitel, S.: Hope for the best, prepare for the worst: multi-tier control for adaptive systems. In: Jalote et al. (2014), pp. 688–699 (2014)Google Scholar
  18. Epifani, I., Ghezzi, C., Mirandola, R., Tamburrelli, G.: Model evolution by run-time parameter adaptation. In: Atlee, J.M., Inverardi, P. (eds.) Proceedings of the 31st International Conference on Software Engineering, ICSE 2009, 16–24 May 2009, Vancouver, Canada, pp. 111–121. IEEE (2009)Google Scholar
  19. Filieri, A., Hoffmann, H., Maggio, M.: Automated design of self-adaptive software with control-theoretical formal guarantees. In: Jalote et al. (2014), pp. 299–310Google Scholar
  20. Filieri, A., Hoffmann, H., Maggio, M.: Automated multi-objective control for self-adaptive software design. In: Nitto et al. (2015), pp. 13–24Google Scholar
  21. Forejt, V., Kwiatkowska, M.Z., Parker, D.: Pareto curves for probabilistic model checking. In: Chakraborty, S., Mukund, M. (eds.) Automated Technology for Verification and Analysis—Proceedings of the 10th International Symposium, ATVA 2012, Thiruvananthapuram, India, 3–6 October 2012, Volume 7561 of Lecture Notes in Computer Science, pp. 317–332. Springer, Berlin (2012)Google Scholar
  22. Garlan, D., Cheng, S.-W., Huang, A., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. IEEE Comput. 37(10), 46–54 (2004)CrossRefGoogle Scholar
  23. Giunchiglia, F. et al.: Planning as model checking. In: ECP, Volume 1809 of LNAI. Springer, Berlin (1999)Google Scholar
  24. Huber, N., van Hoorn, A., Koziolek, A., Brosig, F., Kounev, S.: Modeling run-time adaptation at the system architecture level in dynamic service-oriented environments. Serv. Oriented Comput. Appl. 8(1), 73–89 (2014)CrossRefGoogle Scholar
  25. Huebscher, M.C., McCann, J.A.: A survey of autonomic computing—degrees, models, and applications. ACM Comput. Surv. 40(3), 7 (2008)CrossRefGoogle Scholar
  26. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Comput. 36(1), 41–50 (2003)CrossRefGoogle Scholar
  27. Klein, C., Maggio, M., Årzén, K., Hernández-Rodriguez, F.: Brownout: building more robust cloud applications. In: Jalote et al. (2014), pp. 700–711 (2014)Google Scholar
  28. Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Briand, L.C., Wolf, A.L. (eds.) International Conference on Software Engineering, ISCE 2007, Workshop on the Future of Software Engineering, FOSE 2007, 23–25 May 2007, Minneapolis, MN, USA, pp. 259–268 (2007)Google Scholar
  29. Kwiatkowska, M.Z., Parker, D.: Automated verification and strategy synthesis for probabilistic systems. In: Hung, D.V., Ogawa, M. (eds.) Automated Technology for Verification and Analysis—Proceedings of the 11th International Symposium, ATVA 2013, Hanoi, Vietnam, 15–18 October 2013, Volume 8172 of Lecture Notes in Computer Science, pp. 5–22. Springer, Berlin (2013)Google Scholar
  30. Kwiatkowska, M.Z., Norman, G., Parker, D.: Stochastic model checking. In: Bernardo, M., Hillston, J. (eds.) Formal Methods for Performance Evaluation, 7th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFM 2007, Bertinoro, Italy, May 28–June 2 2007, Advanced Lectures, Volume 4486 of Lecture Notes in Computer Science, pp. 220–270. Springer, Berlin (2007)Google Scholar
  31. Kwiatkowska, M.Z., Norman, G., Parker, D.: PRISM 4.0: Verification of probabilistic real-time systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) Computer Aided Verification—Proceedings of the 23rd International Conference, CAV 2011, Snowbird, UT, USA, 14–20 July 2011, Volume 6806 of Lecture Notes in Computer Science, pp. 585–591. Springer, Berlin (2011)Google Scholar
  32. Laprie, J.-C.: From Dependability to Resilience. In: DSN Fast Abstracts. IEEE CS (2008)Google Scholar
  33. Li, W., Sadigh, D., Sastry, S., Seshia, S.: Synthesis for human-in-the-loop control systems. In: Abraham, E., Havelund, K. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, Volume 8413 of Lecture Notes in Computer Science, pp. 470–484. Springer, Berlin (2014)Google Scholar
  34. Marco, A.D., Inverardi, P., Spalazzese, R.: Synthesizing self-adaptive connectors meeting functional and performance concerns. In: Litoiu and Mylopoulos (2013), pp. 133–142 (2013)Google Scholar
  35. Moreno, G.A., Cámara, J., Garlan, D., Schmerl, B.R.: Proactive self-adaptation under uncertainty: a probabilistic model checking approach. In: Nitto et al. (2015), pp. 1–12 (2015)Google Scholar
  36. Moreno, G.A., Cámara, J., Garlan, D., Schmerl, B.R.: Efficient decision-making under uncertainty for proactive self-adaptation. In: Kounev, S., Giese, H., Liu, J. (eds.) 2016 IEEE International Conference on Autonomic Computing, ICAC 2016, Wuerzburg, Germany, 17–22 July 2016, pp. 147–156. IEEE Computer Society (2016)Google Scholar
  37. Mukhija, A., Dingwall-Smith, A., Rosenblum, D.S.: Qos-aware service composition in dino. In: Fifth IEEE European Conference on Web Services (ECOWS 2007), 26–28 November 2007, Halle (Saale), Germany, pp. 3–12. IEEE Computer Society (2007)Google Scholar
  38. Nou, R., Kounev, S., Julià, F., Torres, J.: Autonomic Qos control in enterprise grid environments using online simulation. J. Syst. Softw. 82(3), 486–502 (2009)CrossRefGoogle Scholar
  39. Piterman, N., Pnueli, A., Sa’ar, Y.: Synthesis of reactive(1) designs. In: Emerson, E.A., Namjoshi, K.S. (eds.) Verification, Model Checking, and Abstract Interpretation, Proceedings of the 7th International Conference, VMCAI 2006, Charleston, SC, USA, 8–10 January 2006, Volume 3855 of Lecture Notes in Computer Science, pp. 364–380. Springer, Berlin (2006)Google Scholar
  40. Pressman, R.S.: Software Engineering: A Practitioner’s Approach, 5th edn. McGraw-Hill Higher Education, New York City (2001)zbMATHGoogle Scholar
  41. Ramadge, P.J.G., Wonham, W.M.: Supervisory control of a class of discrete event processes. SIAM J. Control Optim. 25(1), 206–230 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  42. Rice University Bidding System. http://rubis.ow2.org
  43. Schmerl, B.R., Cámara, J., Gennari, J., Garlan, D., Casanova, P., Moreno, G.A., Glazier, T.J., Barnes, J.M.: Architecture-based self-protection: composing and reasoning about denial-of-service mitigations. In: Williams, L.A., Nicol, D.M., Singh, M.P. (eds.) Proceedings of the 2014 Symposium and Bootcamp on the Science of Security, HotSoS 2014, Raleigh, NC, USA, 08–09 April 2014, p. 2. ACM (2014)Google Scholar
  44. Schoppers, M.: Universal plans for reactive robots in unpredictable environments. In: McDermott, J.P. (ed.) Proceedings of the 10th International Joint Conference on Artificial Intelligence. Milan, Italy, August 1987, pp. 1039–1046. Morgan Kaufmann (1987)Google Scholar
  45. Sykes, D., Heaven, W., Magee, J., Kramer, J.: Exploiting non-functional preferences in architectural adaptation for self-managed systems. In: Shin, S.Y., Ossowski, S., Schumacher, M., Palakal, M.J., Hung, C. (eds.) Proceedings of the 2010 ACM Symposium on Applied Computing (SAC), Sierre, Switzerland, 22–26 March 2010, pp. 431–438. ACM (2010)Google Scholar
  46. Tajalli, H., Garcia, J., Edwards, G., Medvidovic, N.: PLASMA: a plan-based layered architecture for software model-driven adaptation. In: Pecheur, C., Andrews, J., Nitto, E.D. (eds.) ASE 2010, 25th IEEE/ACM International Conference on Automated Software Engineering, Antwerp, Belgium, 20–24 September 2010, pp. 467–476. ACM (2010)Google Scholar
  47. Turner, A., Fox, A., Payne, J.I., Kim, H.S.: C-MART: benchmarking the cloud. IEEE Trans. Parallel Distrib. Syst. 24(6), 1256–1266 (2013)CrossRefGoogle Scholar
  48. Whittle, J., Sawyer, P., Bencomo, N., Cheng, B.H.C., Bruel, J.: RELAX: a language to address uncertainty in self-adaptive systems requirement. Requir. Eng. 15(2), 177–196 (2010)CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2018

Authors and Affiliations

  • Javier Cámara
    • 1
  • Bradley Schmerl
    • 1
  • Gabriel A. Moreno
    • 2
  • David Garlan
    • 1
  1. 1.School of Computer ScienceCarnegie Mellon UniversityPittsburghUSA
  2. 2.Software Engineering InstituteCarnegie Mellon UniversityPittsburghUSA

Personalised recommendations