Abstract
The microservice architecture has gained remarkable attention in recent years. Microservices allow developers to implement and deploy independent services, so they are a naturally effective architecture for continuously deployed systems. Because of this, several organizations are undertaking the costly process of manually migrating their traditional software architectures to microservices. The research in this paper aims at facilitating the migration from monolithic software architectures to microservices. We propose a framework which enables software developers/architects to migrate their software systems more efficiently by helping them remodularize the source code of their systems. The framework leverages model-driven reverse engineering to obtain a model of the legacy system and reinforcement learning to propose a mapping of this model toward a set of microservices.
This is a preview of subscription content, access via your institution.

















Notes
As we will see in the next section, the general approach depends on the number of MSs of the system. The closest general NNET in terms of the number of MSs can be used as a starting point for the individual approach training.
References
Abdullah, M., Iqbal, W., Erradi, A.: Unsupervised learning approach for web application auto-decomposition into microservices. J. Syst. Softw. 151, 243–257 (2019). https://doi.org/10.1016/j.jss.2019.02.031
Babur, Ö., Cleophas, L.: Using n-grams for the automated clustering of structural models. In: International Conference on Current Trends in Theory and Practice of Informatics, pp. 510–524. Springer (2017)
Balalaie, A., Heydarnoori, A., Jamshidi, P., Tamburri, D.A., Lynn, T.: Microservices migration patterns. Softw. Pract. Exp. 48(11), 2019–2042 (2018). https://doi.org/10.1002/spe.2608
Baresi, L., Garriga, M., De Renzis, A.: Microservices identification through interface analysis. In: De Paoli, F., Schulte, S., Broch Johnsen, E. (eds.) Service-Oriented and Cloud Computing, pp. 19–33. Springer, Cham (2017)
Barriga, A., Rutle, A., Heldal, R.: Personalized and automatic model repairing using reinforcement learning. In: 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C), pp. 175–181. IEEE (2019)
Bruneliere, H., Cabot, J., Dupé, G., Madiot, F.: Modisco: a model driven reverse engineering framework. Inf. Softw. Technol. 56(8), 1012–1032 (2014)
Bucchiarone, A., Soysal, K., Guidi, C.: A model-driven approach towards automatic migration to microservices. In: Bruel, J.M., Mazzara, M., Meyer, B. (eds.) Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment, pp. 15–36. Springer, Cham (2020)
Burgueño, L., Cabot, J., Gérard, S.: An lstm-based neural network architecture for model transformations. In: 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 294–299. IEEE (2019)
Clarisó, R., Cabot, J.: Applying graph kernels to model-driven engineering problems. In: Proceedings of the 1st International Workshop on Machine Learning and Software Engineering in Symbiosis, pp. 1–5 (2018)
De Alwis, A.A.C., Barros, A., Fidge, C., Polyvyanyy, A.: Remodularization analysis for microservice discovery using syntactic and semantic clustering. In: Dustdar, S., Yu, E., Salinesi, C., Rieu, D., Pant, V. (eds.) Advanced Information Systems Engineering, pp. 3–19. Springer, Cham (2020)
Dragoni, N., Giallorenzo, S., Lafuente, A.L., Mazzara, M., Montesi, F., Mustafin, R., Safina, L.: Microservices: yesterday, today, and tomorrow. In: Present and Ulterior Software Engineering, pp. 195–216. Springer (2017)
Escobar, D., Cárdenas, D., Amarillo, R., Castro, E., Garcés, K., Parra, C., Casallas, R.: Towards the understanding and evolution of monolithic applications as microservices. In: 2016 XLII Latin American Computing Conference (CLEI), pp. 1–11. IEEE (2016)
Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, Boston (2003)
Fowler, S.J.: Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization. O’Reilly Media Inc., Newton (2016)
Gouigoux, J.P., Tamzalit, D.: From monolith to microservices: Lessons learned on an industrial migration to a web oriented architecture. In: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), pp. 62–65. IEEE (2017)
Gouigoux, J.P., Tamzalit, D.: “Functional-first” recommendations for beneficial microservices migration and integration lessons learned from an industrial experience. In: 2019 IEEE International Conference on Software Architecture Companion (ICSA-C), pp. 182–186. IEEE (2019)
Gysel, M., Kölbener, L., Giersche, W., Zimmermann, O.: Service cutter: a systematic approach to service decomposition. In: European Conference on Service-Oriented and Cloud Computing, pp. 185–200. Springer (2016)
Gysel, M., Kölbener, L.: Service cutter: a structured way to service decomposition. Bachelor’s thesis, Department of Computer Science, University of Applied Sciences of Eastern Switzerland (HSR FHO), Rapperswil (2015)
Kapferer, S.: A Modeling Framework for Strategic Domain-driven Design and Service Decomposition. Master’s thesis, Department of Computer Science, University of Applied Sciences of Eastern Switzerland (HSR FHO), Rapperswil (2020)
Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term. https://martinfowler.com/articles/microservices.html (2014). Accessed 24 Oct 2020
Namiot, D., Sneps-Sneppe, M.: On micro-services architecture. Int. J. Open Inf. Technol. 2(9), 24–27 (2014)
Newman, S.: Building Microservices. O’Reilly Media Inc., Newton (2015)
Nguyen, P.T., Di Rocco, J., Di Ruscio, D., Pierantonio, A., Iovino, L.: Automated classification of metamodel repositories: a machine learning approach. In: 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 272–282. IEEE (2019)
OMG: Knowledge discovery meta-model specification version 1.3. (2011). http://www.omg.org/spec/KDM/1.3/PDF. Accessed 9 Feb 2022
Schrittwieser, J., Antonoglou, I., Hubert, T., Simonyan, K., Sifre, L., Schmitt, S., Guez, A., Lockhart, E., Hassabis, D., Graepel, T., Lillicrap, T., Silver, D.: Mastering atari, go, chess and shogi by planning with a learned model. Nature 588, 604–609 (2020)
Selmadji, A., Seriai, A.D., Bouziane, H.L., Oumarou Mahamane, R., Zaragoza, P., Dony, C.: From monolithic architecture style to microservice one based on a semi-automatic approach. In: 2020 IEEE International Conference on Software Architecture (ICSA), pp. 157–168 (2020). https://doi.org/10.1109/ICSA47634.2020.00023
Silver, D., Hubert, T., Schrittwieser, J., Antonoglou, I., Lai, M., Guez, A., Lanctot, M., Sifre, L., Kumaran, D., Graepel, T., Lillicrap, T., Simonyan, K., Hassabis, D.: A general reinforcement learning algorithm that masters chess, shogi, and go through self-play. Science 362(6419), 1140–1144 (2018). https://doi.org/10.1126/science.aar6404
Sutton, R.S., Barto, A.: Reinforcement Learning: An Introduction. The MIT Press, Cambridge (2018)
Taibi, D., Lenarduzzi, V., Pahl, C.: Processes, motivations and issues for migrating to microservices architectures: an empirical investigation. IEEE Cloud Comput. (2017). https://doi.org/10.1109/MCC.2017.4250931
Terzić, B., Dimitrieski, V., Kordić, S., Milosavljević, G., Luković, I.: Development and evaluation of microbuilder: a model-driven tool for the specification of rest microservice software architectures. Enterp. Inf. Syst. 12(8–9), 1034–1057 (2018). https://doi.org/10.1080/17517575.2018.1460766
Thönes, J.: Microservices. IEEE Softw. 32(1), 116 (2015)
Wolff, E.: Microservices: Flexible Software Architecture. Addison-Wesley Professional, Boston (2016)
Zhu, Z., Lin, K., Zhou, J.: Transfer learning in deep reinforcement learning: a survey (2020)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by L. Burgueño, J. Cabot, M. Wimmer & S. Zschaler.
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Dehghani, M., Kolahdouz-Rahimi, S., Tisi, M. et al. Facilitating the migration to the microservice architecture via model-driven reverse engineering and reinforcement learning. Softw Syst Model 21, 1115–1133 (2022). https://doi.org/10.1007/s10270-022-00977-3
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-022-00977-3
Keywords
- Microservice architecture
- Reinforcement learning
- Model-driven reverse engineering
- Migration