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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
A prototype implementation of the approach and the related artefacts are available at the GitHub repository: https://github.com/antbucc/Migration.git.
References
Bass, L., Weber, I., Zhu, L.: DevOps: A Software Architect’s Perspective. Addison-Wesley Professional, Reading (2015)
Fowler, M., Lewis, J.: Microservices, ThoughtWorks (2014)
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)
Mazzara, M., Naumchev, A., Safina, L., Sillitti, A., Urysov, K.: Teaching DevOps in corporate environments: an experience report, CoRR, vol. abs/1807.01632 (2018)
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
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)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 1053–1058 (1972)
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
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
France, R., Rumpe, B.: Model-based development. Softw. Syst. Model. 7(1), 1–2 (2008)
Atkinson, C., Kühne, T.: Model-driven development: a metamodeling foundation. IEEE Softw. 20, 36–41 (2003)
Schmidt, D.C.: Guest editor’s introduction: model-driven engineering. Computer 39, 25–31 (2006)
Voelter, M., et al.: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages (2013). dslbook.org
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)
The Jolie language website. http://www.jolie-lang.org/
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)
Newman, S.: Building Microservices. O’Reilly Media Inc, Sebastopol (2015)
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
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
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)
van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. SIGPLAN Not. 35(6), 26–36 (2000)
Ward, M.: Language oriented programming. Softw. Concepts Tools 15, 147–161 (1994)
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)
Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: 34th International Conference on Software Engineering, ICSE 2012, pp. 1449–1450 (2012)
Campagne, F.: The MPS Language Workbench, vol. 1, 1st edn. CreateSpace Independent Publishing Platform, Hamburg (2014)
Campagne, F.: The MPS Language Workbench Volume II: The Meta Programming System, vol. 2, 1st edn. CreateSpace Independent Publishing Platform, Hamburg (2016)
Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: migration to a cloud-native architecture. IEEE Softw. 33, 42–52 (2016)
Knoche, H., Hasselbring, W.: Using microservices for legacy software modernization. IEEE Softw. 35, 44–49 (2018)
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)
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
Balalaie, A., Heydarnoori, A., Jamshidi, P., Tamburri, D.A., Lynn, T.: Microservices migration patterns. Softw. Pract. Exp. 48, 2019–2042 (2018)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
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)