Skip to main content

Facilitating the migration to the microservice architecture via model-driven reverse engineering and reinforcement learning

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Notes

  1. https://github.com/javaee/cargotracker.

  2. 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.

  3. https://github.com/hadiDHD/MS-MDE-RL.

References

  1. 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

    Article  Google Scholar 

  2. 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)

  3. 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

    Article  Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. 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)

  6. Bruneliere, H., Cabot, J., Dupé, G., Madiot, F.: Modisco: a model driven reverse engineering framework. Inf. Softw. Technol. 56(8), 1012–1032 (2014)

    Article  Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. 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)

  9. 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)

  10. 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)

    Chapter  Google Scholar 

  11. 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)

  12. 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)

  13. Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, Boston (2003)

    Google Scholar 

  14. Fowler, S.J.: Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization. O’Reilly Media Inc., Newton (2016)

  15. 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)

  16. 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)

  17. 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)

  18. 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)

  19. 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)

  20. Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term. https://martinfowler.com/articles/microservices.html (2014). Accessed 24 Oct 2020

  21. Namiot, D., Sneps-Sneppe, M.: On micro-services architecture. Int. J. Open Inf. Technol. 2(9), 24–27 (2014)

    Google Scholar 

  22. Newman, S.: Building Microservices. O’Reilly Media Inc., Newton (2015)

  23. 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)

  24. OMG: Knowledge discovery meta-model specification version 1.3. (2011). http://www.omg.org/spec/KDM/1.3/PDF. Accessed 9 Feb 2022

  25. 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)

    Article  Google Scholar 

  26. 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

  27. 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

    Article  MathSciNet  MATH  Google Scholar 

  28. Sutton, R.S., Barto, A.: Reinforcement Learning: An Introduction. The MIT Press, Cambridge (2018)

    MATH  Google Scholar 

  29. 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

    Article  Google Scholar 

  30. 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

    Article  Google Scholar 

  31. Thönes, J.: Microservices. IEEE Softw. 32(1), 116 (2015)

    Article  Google Scholar 

  32. Wolff, E.: Microservices: Flexible Software Architecture. Addison-Wesley Professional, Boston (2016)

    Google Scholar 

  33. Zhu, Z., Lin, K., Zhou, J.: Transfer learning in deep reinforcement learning: a survey (2020)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shekoufeh Kolahdouz-Rahimi.

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

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

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

Download citation

  • 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