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.
- Gul A. Agha. 1985. Actors: A model of concurrent computation in distributed systems. Technical Report. Massachusetts Institute of Technology, Cambridge Artificial Intelligence Lab.Google Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- Tim Berglund and Matthew McCullough. 2011. Building and testing with Gradle. "O'Reilly Media, Inc.", Sebastopol, CA, USA.Google Scholar
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- KubeRT Visual Studio Code Extension. 2022. https://marketplace.visualstudio.com/items?itemName=jahed.kubert-vscode-extensionGoogle Scholar
- 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 ScholarDigital Library
- Eclipse Modeling Framework. 2022. A modeling framework and code generation facility. https://www.eclipse.org/modeling/emf/Google Scholar
- 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 ScholarDigital Library
- Sébastien Goasguen. 2015. Docker Cookbook: Solutions and Examples for Building Distributed Applications. " O'Reilly Media, Inc.", Sebastopol, CA, USA.Google Scholar
- Gradle. 2022. A general-purpose build automation tool. https://gradle.org/Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- David Harel. 1987. Statecharts: A visual formalism for complex systems. Science of Computer Programming 8, 3 (1987), 231--274.Google ScholarDigital Library
- 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 Scholar
- Jeffrey Kephart and D.M. Chess. 2003. The Vision Of Autonomic Computing. Computer 36 (02 2003), 41--50. Google ScholarDigital Library
- 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 ScholarDigital Library
- Kubernetes. 2022. A container orchestration system. https://kubernetes.io/Google Scholar
- KubeRT. 2022. https://github.com/qumase/kubertGoogle Scholar
- 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 Scholar
- Philip K McKinley, Seyed Masoud Sadjadi, Eric P Kasten, and Betty HC Cheng. 2004. Composing adaptive software. Computer 37, 7 (2004), 56--64.Google ScholarDigital Library
- Dirk Merkel. 2014. Docker: lightweight linux containers for consistent development and deployment. Linux journal 2014, 239 (2014), 2.Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Papyrus-RT. 2021. A domain-specific modelling tool. https://www.eclipse.org/papyrus-rt/Google Scholar
- Ernesto Posse and Juergen Dingel. 2016. An executable formal semantics for UML-RT. Software & Systems Modeling 15, 1 (2016), 179--217.Google ScholarDigital Library
- 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 Scholar
- Naomi Ramos, Debashis Panigrahi, and Sujit Dey. 2010. Dynamic adaptation for wireless communications with enhanced quality of service. US Patent 7,808,941.Google Scholar
- RSARTE. 2022. IBM Rational Software Architect RealTime Edition. https://www.ibm.com/support/pages/node/583977Google Scholar
- RTist. 2021. HCL RealTime Software Tooling. https://www.hcltech.com/software/rtistGoogle Scholar
- RTPoet. 2022. UML-RT based plugin. https://github.com/kjahed/rtpoetGoogle Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Kubernetes Metrics Server. 2022. https://github.com/kubernetes-sigs/metrics-serverGoogle Scholar
- 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 ScholarDigital Library
- James Turnbull. 2014. The Docker Book: Containerization is the new virtualization. Turnbull Press, Brooklyn, NY, USA.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Thomas Vogel, Andreas Seibel, and Holger Giese. 2010. Toward Megamodels at Runtime.. In [email protected]. Springer, Berlin, Heidelberg, 13--24.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Dynamic adaptation for distributed systems in model-driven engineering
Recommendations
Model-driven engineering
During the last decade a new trend of approaches has emerged, which considers models not just documentation artefacts, but also central artefacts in the software engineering field, allowing the creation or automatic execution of software systems ...
Model-driven engineering with domain-specific meta-modelling languages
Domain-specific modelling languages are normally defined through general-purpose meta-modelling languages like the MOF. While this is satisfactory for many model-driven engineering (MDE) projects, several researchers have identified the need for domain-...
Managing embedded systems complexity with aspect-oriented model-driven engineering
Model-driven engineering addresses issues of platform heterogeneity and code quality through the use of high-level system models and subsequent automatic transformations. Adoption of the model-driven software engineering paradigm for embedded systems ...
Comments