skip to main content
10.1145/3550356.3558505acmconferencesArticle/Chapter ViewAbstractPublication PagesmodelsConference Proceedingsconference-collections
research-article

Dynamic adaptation for distributed systems in model-driven engineering

Published:09 November 2022Publication History

ABSTRACT

Modern-day software systems operate within complex, uncertain, and highly dynamic environments. Managing such systems is a significant challenge; developing self-managing autonomic systems is one way to reduce development and maintenance efforts. In the context of distributed systems, achieving this autonomy through dynamic adaptation is particularly challenging due to the volatile host environment. Model-Driven Engineering (MDE) is a software development paradigm that advocates the use of models as the primary artifacts rather than source code. MDE promises higher-quality software at a lower cost through abstractions, automation, and analyses.

The goal of our work is to leverage MDE to facilitate the development and maintenance of distributed applications with dynamic adaptation capabilities. We assume that the structure and behavior of the application has been modeled using the Component-and-Connector (C&C) paradigm and the 'Monitor-Analyze-Plan-Execute with shared Knowledge' (MAPE-K) reference architecture. In the initial work, we have developed a model-level monitoring infrastructure, and adapted existing code generation and deployment support to generate a distributed system from the C&C models and deploy it automatically on a suitable platform. In future work, we plan to investigate how the monitoring and adaptation capabilities of cloud-native containerization and orchestration platforms (i.e., Docker and Kubernetes) can be leveraged for dynamic adaptation, and how this system-level adaptation can be combined effectively with any model-level monitoring, planning, and adaptation capabilities.

References

  1. Gul A. Agha. 1985. Actors: A model of concurrent computation in distributed systems. Technical Report. Massachusetts Institute of Technology, Cambridge Artificial Intelligence Lab.Google ScholarGoogle Scholar
  2. Iván Alfonso, Kelly Garcés, Harold Castro, and Jordi Cabot. 2021. Self-adaptive architectures in IoT systems: a systematic literature review. Journal of Internet Services and Applications 12, 1 (2021), 1--28.Google ScholarGoogle ScholarCross RefCross Ref
  3. Mojtaba Bagherzadeh, Karim Jahed, Benoit Combemale, and Juergen Dingel. 2021. Live modeling in the context of state machine models and code generation. Software and Systems Modeling 20, 3 (2021), 795--819.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Tim Berglund and Matthew McCullough. 2011. Building and testing with Gradle. "O'Reilly Media, Inc.", Sebastopol, CA, USA.Google ScholarGoogle Scholar
  5. Aaron B Brown, Joseph Hellerstein, Matt Hogstrom, Tony Lau, Sam Lightstone, Peter Shum, and Mary Peterson Yost. 2004. Benchmarking autonomic capabilities: Promises and pitfalls. In International Conference on Autonomic Computing, 2004. Proceedings. IEEE, New York, NY, USA, 266--267.Google ScholarGoogle ScholarCross RefCross Ref
  6. Brendan Burns, Joe Beda, and Kelsey Hightower. 2019. Kubernetes: up and running: dive into the future of infrastructure. O'Reilly Media, Sebastopol, CA, USA.Google ScholarGoogle Scholar
  7. Everton Cavalcante, Thais Batista, Frederico Lopes, André Almeida, Ana Lúcia de Moura, Noemi Rodriguez, Gustavo Alves, Flavia Delicato, and Paulo Pires. 2013. Autonomous adaptation of cloud applications. In IFIP International Conference on Distributed Applications and Interoperable Systems. Springer, Berlin, Heidelberg, 175--180.Google ScholarGoogle ScholarCross RefCross Ref
  8. Betty HC Cheng, Pete Sawyer, Nelly Bencomo, and Jon Whittle. 2009. A goal-based modeling approach to develop requirements of an adaptive system with environmental uncertainty. In International Conference on Model Driven Engineering Languages and Systems. Springer, Denver, CO, USA, 468--483.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Shang-Wen Cheng, David Garlan, and Bradley Schmerl. 2006. Architecture-based self-adaptation in the presence of multiple objectives. In Proceedings of the International Workshop on Self-adaptation and Self-managing Systems. ACM, Shanghai, China., 2--8.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Tom De Wolf and Tom Holvoet. 2018. A Taxonomy for Self-Properties in Decentralized Autonomic Computing. In Autonomic Computing. CRC Press, Boca Raton, FL, USA, 125--144.Google ScholarGoogle Scholar
  11. George Edwards, Joshua Garcia, Hossein Tajalli, Daniel Popescu, Nenad Medvidovic, Gaurav Sukhatme, and Brad Petrus. 2009. Architecture-driven self-adaptation and self-management in robotics systems. In 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems. IEEE, Vancouver, BC, Canada, 142--151.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Ahmed Elkhodary, Naeem Esfahani, and Sam Malek. 2010. FUSION: A framework for engineering self-tuning self-adaptive software systems. In Proceedings of the eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, Santa Fe, NM, USA, 7--16.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ilenia Epifani, Carlo Ghezzi, Raffaela Mirandola, and Giordano Tamburrelli. 2009. Model evolution by run-time parameter adaptation. In 2009 IEEE 31st International Conference on Software Engineering. IEEE, Vancouver, BC, Canada, 111--121.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. KubeRT Visual Studio Code Extension. 2022. https://marketplace.visualstudio.com/items?itemName=jahed.kubert-vscode-extensionGoogle ScholarGoogle Scholar
  15. Jorge Fox and Siobhán Clarke. 2009. Exploring approaches to dynamic adaptation. In Proceedings of the 3rd International DiscCoTec Workshop on Middleware-Application Interaction. ACM, Lisbon, Portugal, 19--24.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Eclipse Modeling Framework. 2022. A modeling framework and code generation facility. https://www.eclipse.org/modeling/emf/Google ScholarGoogle Scholar
  17. David Garlan, S-W Cheng, A-C Huang, Bradley Schmerl, and Peter Steenkiste. 2004. Rainbow: Architecture-based self-adaptation with reusable infrastructure. Computer 37, 10 (2004), 46--54.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sébastien Goasguen. 2015. Docker Cookbook: Solutions and Examples for Building Distributed Applications. " O'Reilly Media, Inc.", Sebastopol, CA, USA.Google ScholarGoogle Scholar
  19. Gradle. 2022. A general-purpose build automation tool. https://gradle.org/Google ScholarGoogle Scholar
  20. Brent Hailpern and Peri Tarr. 2006. Model-driven development: The good, the bad, and the ugly. IBM Systems Journal 45, 3 (2006), 451--461.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Marcus Handte, Gregor Schiele, Verena Matjuntke, Christian Becker, and Pedro José Marrón. 2012. 3PC: System support for adaptive peer-to-peer pervasive computing. ACM Transactions on Autonomous and Adaptive Systems (TAAS) 7, 1 (2012), 1--19.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. David Harel. 1987. Statecharts: A visual formalism for complex systems. Science of Computer Programming 8, 3 (1987), 231--274.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Matthias Hölzl, Nora Koch, Mariachiara Puviani, Martin Wirsing, and Franco Zambonelli. 2015. The ensemble development life cycle and best practices for collective autonomic systems. In Software Engineering for Collective Autonomic Systems. Springer, Denver, CO, USA, 325--354.Google ScholarGoogle Scholar
  24. Jeffrey Kephart and D.M. Chess. 2003. The Vision Of Autonomic Computing. Computer 36 (02 2003), 41--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Christian Krupitzer, Felix Maximilian Roth, Sebastian VanSyckel, Gregor Schiele, and Christian Becker. 2015. A survey on engineering approaches for self-adaptive systems. Pervasive and Mobile Computing 17 (2015), 184--206.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Kubernetes. 2022. A container orchestration system. https://kubernetes.io/Google ScholarGoogle Scholar
  27. KubeRT. 2022. https://github.com/qumase/kubertGoogle ScholarGoogle Scholar
  28. Sam Lightstone. 2003. Towards benchmarking autonomic computing maturity. In IEEE Workshop on Autonomic Computing Principles and Architectures (AU-COPA'03)(Aug.). IEEE, Banff, AB, Canada, 51--59.Google ScholarGoogle Scholar
  29. Philip K McKinley, Seyed Masoud Sadjadi, Eric P Kasten, and Betty HC Cheng. 2004. Composing adaptive software. Computer 37, 7 (2004), 56--64.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Dirk Merkel. 2014. Docker: lightweight linux containers for consistent development and deployment. Linux journal 2014, 239 (2014), 2.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Gabriel Moreno, Cody Kinneer, Ashutosh Pandey, and David Garlan. 2019. DART-Sim: An exemplar for evaluation and comparison of self-adaptation approaches for smart cyber-physical systems. In 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS). IEEE, Montreal, QC, Canada, 181--187.Google ScholarGoogle Scholar
  32. Gabriel A Moreno, Bradley Schmerl, and David Garlan. 2018. SWIM: an exemplar for evaluation and comparison of self-adaptation approaches for web applications. In 2018 IEEE/ACM 13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS). IEEE, Gothenburg, Sweden, 137--143.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Hiroyuki Nakagawa, Akihiko Ohsuga, and Shinichi Honiden. 2012. Towards dynamic evolution of self-adaptive systems based on dynamic updating of control loops. In 2012 IEEE Sixth International Conference on Self-Adaptive and Self-Organizing Systems. IEEE, Lyon, France, 59--68.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Jose Ignacio Panach Navarrete, Oscar Dieste, Beatriz Marin, Sergio España, Sira Vegas, Oscar Pastor, and Natalia Juristo. 2018. Evaluating model-driven development claims with respect to quality: a family of experiments. IEEE Transactions on Software Engineering 47, 1 (2018), 130--145.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Papyrus-RT. 2021. A domain-specific modelling tool. https://www.eclipse.org/papyrus-rt/Google ScholarGoogle Scholar
  36. Ernesto Posse and Juergen Dingel. 2016. An executable formal semantics for UML-RT. Software & Systems Modeling 15, 1 (2016), 179--217.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Rahul Raheja, Shang-Wen Cheng, David Garlan, and Bradley Schmerl. 2009. Improving architecture-based self-adaptation using preemption. In International Workshop on Self-Organizing Architectures. Springer, Berlin, Heidelberg, 21--37.Google ScholarGoogle Scholar
  38. Naomi Ramos, Debashis Panigrahi, and Sujit Dey. 2010. Dynamic adaptation for wireless communications with enhanced quality of service. US Patent 7,808,941.Google ScholarGoogle Scholar
  39. RSARTE. 2022. IBM Rational Software Architect RealTime Edition. https://www.ibm.com/support/pages/node/583977Google ScholarGoogle Scholar
  40. RTist. 2021. HCL RealTime Software Tooling. https://www.hcltech.com/software/rtistGoogle ScholarGoogle Scholar
  41. RTPoet. 2022. UML-RT based plugin. https://github.com/kjahed/rtpoetGoogle ScholarGoogle Scholar
  42. Mazeiar Salehie and Ladan Tahvildari. 2009. Self-adaptive software: Landscape and research challenges. ACM Transactions on Autonomous and Adaptive Systems (TAAS) 4, 2 (2009), 1--42.Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Bran Selic. 1998. Using UML for modeling complex real-time systems. In Languages, compilers, and tools for embedded systems. Springer, Berlin, Heidelberg, 250--260.Google ScholarGoogle Scholar
  44. Kubernetes Metrics Server. 2022. https://github.com/kubernetes-sigs/metrics-serverGoogle ScholarGoogle Scholar
  45. Hossein Tajalli, Joshua Garcia, George Edwards, and Nenad Medvidovic. 2010. PLASMA: a plan-based layered architecture for software model-driven adaptation. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. ACM, Antwerp, Belgium, 467--476.Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. James Turnbull. 2014. The Docker Book: Containerization is the new virtualization. Turnbull Press, Brooklyn, NY, USA.Google ScholarGoogle Scholar
  47. Thomas Vogel and Holger Giese. 2013. Model-driven engineering of adaptation engines for self-adaptive software: executable runtime megamodels. Universitätsverlag Potsdam, Potsdam, Germany.Google ScholarGoogle Scholar
  48. Thomas Vogel and Holger Giese. 2014. Model-driven engineering of self-adaptive software with EUREMA. ACM Transactions on Autonomous and Adaptive Systems (TAAS) 8, 4 (2014), 1--33.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Thomas Vogel, Andreas Seibel, and Holger Giese. 2010. The role of models and megamodels at runtime. In International Conference on Model Driven Engineering Languages and Systems. Springer, Oslo, Norway, 224--238.Google ScholarGoogle Scholar
  50. Thomas Vogel, Andreas Seibel, and Holger Giese. 2010. Toward Megamodels at Runtime.. In [email protected]. Springer, Berlin, Heidelberg, 13--24.Google ScholarGoogle Scholar
  51. Jon Whittle, Pete Sawyer, Nelly Bencomo, Betty HC Cheng, and Jean-Michel Bruel. 2010. RELAX: A language to address uncertainty in self-adaptive systems requirement. Requirements Engineering 15, 2 (2010), 177--196.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Jian Yu, Quan Z Sheng, Joshua KY Swee, Jun Han, Chengfei Liu, and Talal H Noor. 2015. Model-driven development of adaptive web service processes with aspects and rules. J. Comput. System Sci. 81, 3 (2015), 533--552.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic adaptation for distributed systems in model-driven engineering

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        MODELS '22: Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings
        October 2022
        1003 pages
        ISBN:9781450394673
        DOI:10.1145/3550356
        • Conference Chairs:
        • Thomas Kühn,
        • Vasco Sousa

        Copyright © 2022 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 9 November 2022

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate118of382submissions,31%
      • Article Metrics

        • Downloads (Last 12 months)58
        • Downloads (Last 6 weeks)4

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader