Skip to main content

Abstract

Microservices have received and are still receiving an increasing attention, both from academia and the industrial world. To guarantee scalability and availability while developing modern software systems, microservices allow developers to realize complex systems as a set of small services that operate independently and that are easy to maintain and evolve. Migration from monolithic applications to microservices-based application is a challenging task that very often it is done manually by the developers taking into account the main business functionalities of the input application and without a supporting tool. In this paper, we present a model-driven approach for the automatic migration to microservices. The approach is implemented by means of JetBrains MPS, a text-based metamodelling framework, and validated using a first migration example from a Java-based application to Jolie - a programming language for defining microservices.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://www.jetbrains.com/mps/.

  2. 2.

    http://www.jolie-lang.org/.

  3. 3.

    https://www.docker.com.

  4. 4.

    https://jolielang.gitbook.io/docs/containerization/docker.

  5. 5.

    https://www.jetbrains.com/mps/.

  6. 6.

    https://hub.docker.com/r/jolielang/jolie.

  7. 7.

    A prototype implementation of the approach and the related artefacts are available at the GitHub repository: https://github.com/antbucc/Migration.git.

References

  1. Bass, L., Weber, I., Zhu, L.: DevOps: A Software Architect’s Perspective. Addison-Wesley Professional, Reading (2015)

    Google Scholar 

  2. Fowler, M., Lewis, J.: Microservices, ThoughtWorks (2014)

    Google Scholar 

  3. Jamshidi, P., Pahl, C., Mendonça, N.C., Lewis, J., Tilkov, S.: Microservices: the journey so far and challenges ahead. IEEE Softw. 35(3), 24–35 (2018)

    Article  Google Scholar 

  4. Mazzara, M., Naumchev, A., Safina, L., Sillitti, A., Urysov, K.: Teaching DevOps in corporate environments: an experience report, CoRR, vol. abs/1807.01632 (2018)

    Google Scholar 

  5. Francesco, P.D., Lago, P., Malavolta, I.: Migrating towards microservice architectures: an industrial survey. In: 2018 IEEE International Conference on Software Architecture (ICSA), pp. 29–2909, April 2018

    Google Scholar 

  6. Taibi, D., Lenarduzzi, V., Pahl, C.: Processes, motivations, and issues for migrating to microservices architectures: an empirical investigation. IEEE Cloud Comput. 4, 22–32 (2017)

    Article  Google Scholar 

  7. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 1053–1058 (1972)

    Article  Google Scholar 

  8. Dragoni, N., et al.: Microservices: yesterday, today, and tomorrow. In: Mazzara, M., Meyer, B., et al. (eds.) Present and Ulterior Software Engineering, pp. 195–216. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_12

    Chapter  Google Scholar 

  9. Dragoni, N., Lanese, I., Larsen, S.T., Mazzara, M., Mustafin, R., Safina, L.: Microservices: how to make your application scale. In: Petrenko, A.K., Voronkov, A. (eds.) PSI 2017. LNCS, vol. 10742, pp. 95–104. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-74313-4_8

    Chapter  Google Scholar 

  10. France, R., Rumpe, B.: Model-based development. Softw. Syst. Model. 7(1), 1–2 (2008)

    Article  Google Scholar 

  11. Atkinson, C., Kühne, T.: Model-driven development: a metamodeling foundation. IEEE Softw. 20, 36–41 (2003)

    Article  Google Scholar 

  12. Schmidt, D.C.: Guest editor’s introduction: model-driven engineering. Computer 39, 25–31 (2006)

    Article  Google Scholar 

  13. Voelter, M., et al.: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages (2013). dslbook.org

  14. Voelter, M., Lisson, S.: Supporting diverse notations in MPS’ projectional editor. In: Proceedings of the 2nd International Workshop on the Globalization of Modeling Languages Co-located with ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems, GEMOC@Models 2014, pp. 7–16 (2014)

    Google Scholar 

  15. The Jolie language website. http://www.jolie-lang.org/

  16. MacKenzie, M.C., Laskey, K., McCabe, F., Brown, P.F., Metz, R., Hamilton, B.A.: Reference model for service oriented architecture 1.0, vol. 12. OASIS Standard (2006)

    Google Scholar 

  17. Newman, S.: Building Microservices. O’Reilly Media Inc, Sebastopol (2015)

    Google Scholar 

  18. Montesi, F., Guidi, C., Zavattaro, G.: Service-Oriented Programming with Jolie. In: Bouguettaya, A., Sheng, Q., Daniel, F. (eds.) Web Services Foundations, pp. 81–107. Springer, New York (2014). https://doi.org/10.1007/978-1-4614-7518-7_4

    Chapter  Google Scholar 

  19. Guidi, C., Lanese, I., Mazzara, M., Montesi, F.: Microservices: a language-based approach. Present and Ulterior Software Engineering, pp. 217–225. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_13

    Chapter  Google Scholar 

  20. Bandura, A., Kurilenko, N., Mazzara, M., Rivera, V., Safina, L., Tchitchigin, A.: Jolie community on the rise. In: SOCA, pp. 40–43. IEEE Computer Society (2016)

    Google Scholar 

  21. van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. SIGPLAN Not. 35(6), 26–36 (2000)

    Article  Google Scholar 

  22. Ward, M.: Language oriented programming. Softw. Concepts Tools 15, 147–161 (1994)

    Google Scholar 

  23. Voelter, M.: Language and IDE modularization and composition with MPS. In: Generative and Transformational Techniques in Software Engineering IV, GTTSE 2011, pp. 383–430. International Summer School (2011)

    Google Scholar 

  24. Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: 34th International Conference on Software Engineering, ICSE 2012, pp. 1449–1450 (2012)

    Google Scholar 

  25. Campagne, F.: The MPS Language Workbench, vol. 1, 1st edn. CreateSpace Independent Publishing Platform, Hamburg (2014)

    Google Scholar 

  26. Campagne, F.: The MPS Language Workbench Volume II: The Meta Programming System, vol. 2, 1st edn. CreateSpace Independent Publishing Platform, Hamburg (2016)

    Google Scholar 

  27. Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: migration to a cloud-native architecture. IEEE Softw. 33, 42–52 (2016)

    Article  Google Scholar 

  28. Knoche, H., Hasselbring, W.: Using microservices for legacy software modernization. IEEE Softw. 35, 44–49 (2018)

    Article  Google Scholar 

  29. Levcovitz, A., Terra, R., Valente, M.T.: Towards a technique for extracting microservices from monolithic enterprise systems. In: III Workshop de Visualização, Evolução e Manutenção de Software (VEM), pp. 97–104 (2015)

    Google Scholar 

  30. Balalaie, A., Heydarnoori, A., Jamshidi, P.: Migrating to cloud-native architectures using microservices: an experience report. In: Celesti, A., Leitner, P. (eds.) ESOCC Workshops 2015. CCIS, vol. 567, pp. 201–215. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-33313-7_15

    Chapter  Google Scholar 

  31. Balalaie, A., Heydarnoori, A., Jamshidi, P., Tamburri, D.A., Lynn, T.: Microservices migration patterns. Softw. Pract. Exp. 48, 2019–2042 (2018)

    Google Scholar 

  32. Furda, A., Fidge, C., Zimmermann, O., Kelly, W., Barros, A.: Migrating enterprise legacy source code to microservices: on multitenancy, statefulness, and data consistency. IEEE Softw. 35, 63–72 (2018)

    Article  Google Scholar 

  33. Bucchiarone, A., Dragoni, N., Dustdar, S., Larsen, S.T., Mazzara, M.: From monolithic to microservices: an experience report from the banking domain. IEEE Softw. 35(3), 50–55 (2018)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Antonio Bucchiarone .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Bucchiarone, A., Soysal, K., Guidi, C. (2020). A Model-Driven Approach Towards Automatic Migration to Microservices. In: Bruel, JM., Mazzara, M., Meyer, B. (eds) Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment. DEVOPS 2019. Lecture Notes in Computer Science(), vol 12055. Springer, Cham. https://doi.org/10.1007/978-3-030-39306-9_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-39306-9_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-39305-2

  • Online ISBN: 978-3-030-39306-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics