Abstract
Self-adaptation is a widely accepted approach to deal with uncertainties that are difficult to anticipate before deployment. We focus on architecture-based adaptation that relies on a feedback loop that reasons over architectural models of the system at runtime to make adaptation decisions. In particular, we study decentralized self-adaptive systems where self-adaptation is realized through multiple coordinating feedback loops. Such decentralization is crucial for systems where adaptation decisions cannot be made in a centralized way, such as in large scale Internet of Things (IoT). State of the art in this area is limited to either conceptual ideas or solutions dedicated to particular settings. This paper outlines a research project targeting the research question: “how to model and realize decentralized feedback loops that are capable to guarantee compliance of system goals in an efficient way despite uncertainties the system faces?” We plan to answer this question in two stage. First, we study commonalities and variability of decentralized self-adaptive systems leveraging on patterns and coordination mechanisms, and reify our insights in a framework. Second, we study language support for the design and implementation of decentralized self-adaptation, capitalizing on the outcome of the first stage. To ensure guarantees for the qualities we will found our work on formal techniques. To ensure efficiency, we will combine statistical techniques with machine learning. We plan to validate the research results in two domains: IoT and multi-cloud systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Alvares, F., Rutten, E., Seinturier, L.: High-level language support for reconfiguration control in component-based architectures. In: Weyns, D., Mirandola, R., Crnkovic, I. (eds.) ECSA 2015. LNCS, vol. 9278, pp. 3–19. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23727-5_1
Arcaini, P., Riccobene, E., Scandurra, P.: Formal design and verification of self-adaptive systems with decentralized control. ACM Trans. Auton. Adapt. Syst. 11(4), 1–35 (2017)
Calinescu, R., Gerasimou, S., Banks, A.: Self-adaptive software with decentralised control loops. In: Egyed, A., Schaefer, I. (eds.) FASE 2015. LNCS, vol. 9033, pp. 235–251. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-46675-9_16
Calinescu, R., Ghezzi, C., Kwiatkowska, M., Mirandola, R.: Self-adaptive software needs quantitative verification at runtime. Commun. ACM 55(9), 69–77 (2012)
Calinescu, R., Grunske, L., Kwiatkowska, M., Mirandola, R., Tamburrelli, G.: Dynamic QoS management and optimization in service-based systems. IEEE Trans. Softw. Eng. 37(3), 387–409 (2011)
Calinescu, R., Rafiq, Y., Johnson, K., Bakundefinedr, M.E.: Adaptive model learning for continual verification of non-functional properties. In: 5th ACM/SPEC International Conference on Performance Engineering (2014)
Caporuscio, M., Grassi, V., Marzolla, M., Mirandola, R.: GoPrime: a fully decentralized middleware for utility-aware service assembly. IEEE Trans. Softw. Eng. 42(2), 136–152 (2016)
Dowling, J., Cahill, V.: The k-component architecture meta-model for self-adaptive software. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 81–88. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45429-2_6
Epifani, I., Ghezzi, C., Mirandola, R., Tamburrelli, G.: Model evolution by run-time parameter adaptation. In: 31st International Conference on Software Engineering. IEEE, USA (2009)
Esfahani, N., Kouroshfar, E., Malek, S.: Taming uncertainty in self-adaptive software. In: 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM (2011)
Filieri, A., Tamburrelli, G., Ghezzi, C.: Supporting self-adaptation via quantitative verification and sensitivity analysis at run time. IEEE Trans. Softw. Eng. 42(1), 75–99 (2016)
Florio, L., Nitto, E.D.: Gru: an approach to introduce decentralized autonomic behavior in microservices architectures. In: 2016 IEEE International Conference on Autonomic Computing (ICAC) (2016)
Fotrousi, F.: Combining user feedback and monitoring data to support evidence-based software evolution. Ph.D. thesis, Blekinge Institute of Technology, Karlskrona, Sweden, April 2020
Garlan, D., Cheng, S.W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10), 46–54 (2004)
Georgiadis, I., Magee, J., Kramer, J.: Self-organising software architectures for distributed systems. In: 1st Workshop on Self-Healing Systems. ACM (2002)
Ghezzi, C., Pinto, L.S., Spoletini, P., Tamburrelli, G.: Managing non-functional uncertainty via model-driven adaptivity. In: 2013 35th International Conference on Software Engineering (ICSE) (2013)
Hebig, R., Giese, H., Becker, B.: Making control loops explicit when architecting self-adaptive systems. In: 2nd International Workshop on Self-Organizing Architectures. ACM (2010)
Iftikhar, M.U., Weyns, D.: Activforms: active formal models for self-adaptation. In: 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM (2014)
Keele, S., et al.: Guidelines for performing systematic literature reviews in software engineering. Technical report, Ver. 2.3 EBSE Technical Report. EBSE (2007)
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)
Kluge, T.: A role-based architecture for self-adaptive cyber-physical systems. In: 15th International Conference on Software Engineering for Adaptive and Self-Managing Systems (2020)
Kota, R., Gibbins, N., Jennings, N.R.: Decentralized approaches for self-adaptation in agent organizations. ACM Trans. Auton. Adapt. Syst. 7(1), 1–28 (2012)
Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Future of Software Engineering (FOSE 2007), pp. 259–268 (2007)
Mahdavi Hezavehi, S., Durelli, V., Weyns, D., Avgeriou, P.: A systematic literature review onmethods that handle multiple quality attributes in architecture-based self-adaptive systems. Inf. Softw. Technol. 90, 1–26 (2017)
Malek, S., Mikic-Rakic, M., Medvidovic, N.: A decentralized redeployment algorithm for improving the availability of distributed systems. In: Dearle, A., Eisenbach, S. (eds.) CD 2005. LNCS, vol. 3798, pp. 99–114. Springer, Heidelberg (2005). https://doi.org/10.1007/11590712_8
Mellor, S.J., Balcer, M., Jacoboson, I.: Executable UML: A Foundation for Model-Driven Architectures. Addison-Wesley Longman Publishing Co. Inc., USA (2002)
Minsky, N.H., Ungureanu, V.: Law-governed interaction: a coordination and control mechanism for heterogeneous distributed systems. ACM Trans. Softw. Eng. Methodol. 9(3), 273–305 (2000)
Nallur, V., Cardozo, N., Clarke, S.: Clonal plasticity: a method for decentralized adaptation in multi-agent systems. In: 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM (2016)
Papamartzivanos, D., Gómez Mármol, F., Kambourakis, G.: Introducing deep learning self-adaptive misuse network intrusion detection systems. IEEE Access 7, 13546–13560 (2019)
Perez-Palacin, D., Mirandola, R.: Uncertainties in the modeling of self-adaptive systems: a taxonomy and an example of availability evaluation. In: ACM/SPEC International Conference on Performance Engineering (2014)
Porter, B., Filho, R.R.: Losing control: the case for emergent software systems using autonomous assembly, perception, and learning. In: 2016 IEEE 10th International Conference on Self-Adaptive and Self-Organizing Systems (SASO) (2016)
Blair, G., Bencomo, N., France, R.: Models@ run.time. Computer 42, 22–27 (2009)
Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adap. Syst. 4(2), 1–42 (2009)
Shmelkin, I.: Monitoring for control in role-oriented self-adaptive systems. In: 15th International Conference on Software Engineering for Adaptive and Self-Managing Systems (2020)
Stack, P., Xiong, H., Mersel, D., Makhloufi, M., Terpend, G., Dong, D.: Self-healing in a decentralised cloud management system. In: 1st International Workshop on Next Generation of Cloud Architectures. ACM (2017)
Sykes, D., Magee, J., Kramer, J.: FlashMob: distributed adaptive self-assembly. In: 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2011, pp. 100–109. ACM (2011)
Van Der Donckt, J., Weyns, D., Quin, F., Van Der Donckt, J., Michiels, S.: Applying deep learning to reduce large adaptation spaces of self-adaptive systems with multiple types of goals. In: 15th International Conference on Software Engineering for Adaptive and Self-Managing Systems (2020)
Vogel, T., Giese, H.: Model-driven engineering of self-adaptive software with EUREMA. ACM Trans. Auton. Adapt. Syst. 8(4), 1–33 (2014)
Vromant, P., Weyns, D., Malek, S., Andersson, J.: On interacting control loops in self-adaptive systems. In: 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM (2011)
Weyns, D., Georgeff, M.: Self-adaptation using multiagent systems. IEEE Softw. 27(1), 86–91 (2010)
Weyns, D.: Software engineering of self-adaptive systems. In: Cha, S., Taylor, R., Kang, K. (eds.) Handbook of Software Engineering, pp. 399–443. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-00262-6_11
Weyns, D., Malek, S., Andersson, J.: Forms: a formal reference model for self-adaptation. In: 7th International Conference on Autonomic Computing. ACM (2010)
Weyns, D., Malek, S., Andersson, J.: On decentralized self-adaptation: lessons from the trenches and challenges for the future. In: Software Engineering for Adaptive and Self-Managing Systems, pp. 84–93. ACM (2010)
Weyns, D., et al.: On patterns for decentralized control in self-adaptive systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 76–107. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35813-5_4
Zhang, J., Cheng, B.H.C.: Model-based development of dynamically adaptive software. In: 28th International Conference on Software Engineering. ACM (2006)
Zhang, J., Goldsby, H.J., Cheng, B.H.: Modular verification of dynamically adaptive systems. In: 8th ACM International Conference on Aspect-Oriented Software Development. ACM (2009)
Acknowledgements
This research project is supported by the KU Leuven C1 grant “Trustworthy Decentralized Self-Adaptive Systems”.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Quin, F. (2020). Systematic Approach to Engineer Decentralized Self-adaptive Systems. In: Muccini, H., et al. Software Architecture. ECSA 2020. Communications in Computer and Information Science, vol 1269. Springer, Cham. https://doi.org/10.1007/978-3-030-59155-7_4
Download citation
DOI: https://doi.org/10.1007/978-3-030-59155-7_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-59154-0
Online ISBN: 978-3-030-59155-7
eBook Packages: Computer ScienceComputer Science (R0)