ABSTRACT
This article introduces Mon4Aware, a multi-objective and context-aware approach to decompose monolithic applications. Mon4Aware stands out for: (1) using optimization based on multiple objective to allow monolithic applications to be modularized in different ways, making its decomposition process flexible; and (2) to propose a context meta-model to allow the decomposed modules of the monolithic application to be able to adapt under certain contextual situations. Software developers can use Mon4Aware as a guide to modernization activities for monolithic applications, making them less error-prone. The approach was evaluated through a case study, in which the conceptual viability of Mon4Aware was demonstrated, as well as promising initial results in generating recommendations for the decomposition of monolithic applications.
- Luciano Baresi, Martin Garriga, and Alan De Renzis. 2017. Microservices identification through interface analysis. In European Conference on Service-Oriented and Cloud Computing. Springer, 19–33.Google ScholarCross Ref
- Albert Brouillette, Devraj Sarmah, and Jugal Kalita. 2012. Multi-objective optimization for efficient brahmic keyboards. In Proceedings of the Second Workshop on Advances in Text Input Methods. 29–44.Google Scholar
- Rafael Capilla, Óscar Ortiz, and Mike Hinchey. 2014. Context variability for context-aware systems. Computer2(2014), 85–87.Google Scholar
- R. Chen, S. Li, and Z. Li. 2017. From Monolith to Microservices: A Dataflow-Driven Approach. In 2017 24th Asia-Pacific Software Engineering Conference (APSEC). 466–475.Google Scholar
- Anind K Dey. 2001. Understanding and using context. Personal and ubiquitous computing 5, 1 (2001), 4–7.Google Scholar
- Paolo Di Francesco, Patricia Lago, and Ivano Malavolta. 2019. Architecting with microservices: A systematic mapping study. Journal of Systems and Software 150 (2019), 77–97.Google ScholarCross Ref
- Nicola Dragoni, Schahram Dustdar, Stephan T Larsen, and Manuel Mazzara. 2017. Microservices: Migration of a mission critical system. arXiv preprint arXiv:1704.04173(2017).Google Scholar
- Benoît Duhoux, Kim Mens, and Bruno Dumas. 2019. Implementation of a feature-based context-oriented programming language. In Proceedings of the Workshop on Context-oriented Programming. 9–16.Google ScholarDigital Library
- Daniel Escobar, Diana Cárdenas, Rolando Amarillo, Eddie Castro, Kelly Garcés, Carlos Parra, and Rubby Casallas. 2016. Towards the understanding and evolution of monolithic applications as microservices. In 2016 XLII Latin American Computing Conference (CLEI). 1–11.Google ScholarCross Ref
- Sinan Eski and Feza Buzluca. 2018. An Automatic Extraction Approach: Transition to Microservices Architecture from Monolithic Application. In Proceedings of the 19th International Conference on Agile Software Development: Companion(XP ’18). Association for Computing Machinery, New York, NY, USA, Article 25, 6 pages.Google ScholarDigital Library
- Jonas Fritzsch, Justus Bogner, Alfred Zimmermann, and Stefan Wagner. 2018. From monolith to microservices: a classification of refactoring approaches. In International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment. Springer, 128–141.Google Scholar
- Michael Gysel, Lukas Kölbener, Wolfgang Giersche, and Olaf Zimmermann. 2016. Service Cutter: A Systematic Approach to Service Decomposition. In Service-Oriented and Cloud Computing, Marco Aiello, Einar Broch Johnsen, Schahram Dustdar, and Ilche Georgievski (Eds.). Springer International Publishing, Cham, 185–200.Google Scholar
- Antonia Hadjimichael, David Gold, David Hadka, and Patrick Reed. 2020. Rhodium: Python library for many-objective robust decision making and exploratory modeling. Journal of Open Research Software 8, 1 (2020).Google ScholarCross Ref
- H. Knoche and W. Hasselbring. 2018. Using Microservices for Legacy Software Modernization. IEEE Software 35, 3 (May 2018), 44–49.Google ScholarCross Ref
- Alessandra Levcovitz, Ricardo Terra, and Marco Tulio Valente. 2016. Towards a technique for extracting microservices from monolithic enterprise systems. arXiv preprint arXiv:1605.03175(2016).Google Scholar
- Seng Loke. 2006. Context-aware pervasive systems: architectures for a new breed of applications. CRC Press.Google Scholar
- G. Mazlami, J. Cito, and P. Leitner. 2017. Extraction of Microservices from Monolithic Software Architectures. In 2017 IEEE International Conference on Web Services (ICWS). 524–531.Google Scholar
- Kim Mens, Rafael Capilla, Nicolás Cardozo, and Bruno Dumas. 2016. A taxonomy of context-aware software variability approaches. In Companion Proceedings of the 15th International Conference on Modularity. 119–124.Google ScholarDigital Library
- Kim Mens, Rafael Capilla, Herman Hartmann, and Thomas Kropf. 2017. Modeling and managing context-aware systems’ variability. IEEE Software6(2017), 58–63.Google Scholar
- Kaisa Miettinen. 2012. Nonlinear multiobjective optimization. Vol. 12. Springer Science & Business Media.Google Scholar
- Seyedali Mirjalili and Jin Song Dong. 2020. Multi-objective optimization using artificial intelligence techniques. Springer.Google Scholar
- Hausi Müller and Norha Villegas. 2014. Runtime Evolution of Highly Dynamic Software. In Evolving Software Systems. Springer Berlin Heidelberg, Berlin, Heidelberg, 229–264.Google Scholar
- Claus Pahl and Pooyan Jamshidi. 2016. Microservices: A Systematic Mapping Study. In Proceedings of the 6th International Conference on Cloud Computing and Services Science - Volume 1 and 2(CLOSER 2016). SCITEPRESS - Science and Technology Publications, Lda, Portugal, 137–146.Google ScholarDigital Library
- Zhongshan Ren, Wei Wang, Guoquan Wu, Chushu Gao, Wei Chen, Jun Wei, and Tao Huang. 2018. Migrating web applications from monolithic structure to microservices architecture. In Proceedings of the Tenth Asia-Pacific Symposium on Internetware. 1–10.Google ScholarDigital Library
Index Terms
- Mon4Aware: A multi-objective and context-aware approach to decompose monolithic applications
Recommendations
Adaptive weights generation for decomposition-based multi-objective optimization using Gaussian process regression
GECCO '17: Proceedings of the Genetic and Evolutionary Computation ConferenceBy transforming a multi-objective optimization problem into a number of single-objective optimization problems and optimizing them simultaneously, decomposition-based evolutionary multi-objective optimization algorithms have attracted much attention in ...
A multi-objective Chaos Game Optimization algorithm based on decomposition and random learning mechanisms for numerical optimization
AbstractChaos Game Optimization (CGO) is a heuristic optimization approach that estimates global optima for optimization problems using operators based on chaos theory. This paper first proposes a multi-objective variant of this recent ...
Highlights- This work proposed the Multi-objective Optimization Algorithm called MOCGO/DR.
- ...
A comprehensive survey on NSGA-II for multi-objective optimization and applications
AbstractIn the last two decades, the fast and elitist non-dominated sorting genetic algorithm (NSGA-II) has attracted extensive research interests, and it is still one of the hottest research methods to deal with multi-objective optimization problems. ...
Comments