Abstract
Model-driven development (MDD) is an approach to software engineering that aims to enable analysis, validation, and code generation of software on the basis of models expressed with dedicated modeling languages. MDD is particularly useful in the engineering of complex, possibly distributed software systems. It is therefore sensible to investigate the adoption of MDD to support and facilitate the engineering of distributed software systems based on microservice architecture (MSA).
This chapter presents recent insights from studying and developing two approaches for employing MDD in MSA engineering. The first approach uses a graphical notation to model the topology and interactions of MSA-based software systems. The second approach emerged from the first one and exploits viewpoint-based modeling to better cope with MSA’s inherent complexity. It also considers the distributed nature of MSA teams, as well as the technology heterogeneity introduced by MSA adoption. Both approaches are illustrated and discussed in the context of a case study. Moreover, we present a catalog of research questions for subsequent investigation of employing MDD to support and facilitate MSA engineering.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
M. Artač, T. Borovšak, E. Di Nitto, M. Guerriero, D. Perez-Palacin, D.A. Tamburri, Infrastructure-as-code for data-intensive architectures: A model-driven development approach, in 2018 IEEE International Conference on Software Architecture (ICSA) (IEEE, Piscataway, 2018), pp. 156–165
A. Balalaie, A. Heydarnoori, P. Jamshidi, Microservices architecture enables DevOps: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)
L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 3 edn. (Addison-Wesley, Upper Saddle River, 2013)
J. Bogner, A. Zimmermann, Towards integrating microservices with adaptable enterprise architecture, in 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW) (IEEE, Piscataway, 2016), pp. 1–6
J. Bogner, J. Fritzsch, S. Wagner, A. Zimmermann, Microservices in industry: insights into technologies, characteristics, and software quality, in 2019 IEEE International Conference on Software Architecture Companion (ICSA-C) (IEEE, Piscataway, 2019), pp. 187–195
B. Combemale, R.B. France, J.M. Jézéquel, B. Rumpe, J. Steel, D. Vojtisek, Engineering Modeling Languages (CRC Press, Boca Raton, 2017)
N. Dragoni, S. Giallorenzo, A.L. Lafuente, M. Mazzara, F. Montesi, R. Mustafin, L. Safina, Microservices: Yesterday, Today, and Tomorrow (Springer, Berlin, 2017), pp. 195–216
T.F. Düllmann, A. van Hoorn, Model-driven generation of microservice architectures for benchmarking performance and resilience engineering approaches, in Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion, ICPE ’17 Companion (ACM, New York, 2017), pp. 171–172
T. Erl, Service-Oriented Architecture (SOA) Concepts, Technology and Design (Prentice Hall, Upper Saddle River, 2005)
E. Evans, Domain-Driven Design (Addison-Wesley, Boston, 2004)
R. France, B. Rumpe, Model-driven development of complex software: a research roadmap, in Future of Software Engineering (FOSE ’07) (IEEE, Piscataway, 2007), pp. 37–54
M. Franzago, D.D. Ruscio, I. Malavolta, H. Muccini, Collaborative model-driven software engineering: a classification framework and a research map. IEEE Trans. Softw. Eng. 44(12), 1146–1175 (2018)
T. Goldschmidt, S. Becker, A. Uhl, Classification of concrete textual syntax mapping approaches, in Model Driven Architecture—Foundations and Applications, eds. by I. Schieferdecker, A. Hartman (Springer, Berlin, 2008), pp. 169–184
J. Gosling, B. Joy, G.L. Steele, G. Bracha, A. Buckley, The Java Language Specification, Java SE, 8 edn. (Addison-Wesley, Boston, 2014)
G. Granchelli, M. Cardarelli, P.D. Francesco, I. Malavolta, L. Iovino, A.D. Salle, Towards recovering the software architecture of microservice-based systems, in 2017 IEEE International Conference on Software Architecture Workshops (ICSAW) (IEEE, Piscataway, 2017), pp. 46–53
T. Killalea, The hidden dividends of microservices. Queue 14(3), 10:25–10:34 (2016)
N. Kratzke, P.C. Quint, Investigation of impacts on network performance in the advance of a microservice design, in Cloud Computing and Services Science, ed. by M. Helfert, D. Ferguson, V. Méndez Muñoz, J. Cardoso (Springer, Berlin, 2017), pp. 187–208
L. Lúcio, M. Amrani, J. Dingel, L. Lambers, R. Salay, G.M.K. Selim, E. Syriani, M. Wimmer, Model transformation intents and their properties. Softw. Syst. Model. 15(3), 647–684 (2016)
J. Ludewig, Models in software engineering—an introduction. Softw. Syst. Model. 2(1), 5–14 (2003)
S. Meliá, C. Cachero, J.M. Hermida, E. Aparicio, Comparison of a textual versus a graphical notation for the maintainability of MDE domain models: an empirical pilot study. Softw. Qual. J. 24(3), 709–735 (2016)
F. Montesi, C. Guidi, G. Zavattaro, Service-Oriented Programming with Jolie (Springer, Berlin, 2014), pp. 81–107
I. Nadareishvili, R. Mitra, M. McLarty, M. Amundsen, Microservice Architecture (O’Reilly Media, Sebastopol, 2016)
S. Newman, Building Microservices (O’Reilly Media, Sebastopol, 2015)
Object Management Group, Model Driven Architecture (MDA) Guide (OMG, Needham, 2014), Version 2.0
Object Management Group, Object Constraint Language (OCL) (OMG, Needham, 2014), Version 2.4
D. Palma, T. Spatzier, Topology and Orchestration Specification for Cloud Applications Version 1.0 (OASIS, Manchester, 2013)
M.P. Papazoglou, Web Services and SOA: Principles and Technology, vol. 2 (Pearson Education, Harlow, 2012)
M. Petre, Why looking isn’t always seeing: Readership skills and graphical programming. Commun. Assoc. Comput. Mach. 38(6), 33–44 (1995)
F. Rademacher, J. Sorgalla, S. Sachweh, Challenges of domain-driven microservice design: a model-driven perspective. IEEE Softw. 35(3), 36–43 (2018)
F. Rademacher, J. Sorgalla, P. Wizenty, S. Sachweh, A. Zündorf, Microservice architecture and model-driven development: Yet singles, soon married (?), in Proceedings of the 19th International Conference on Agile Software Development: Companion, XP ’18 (ACM, New York, 2018), pp. 23:1–23:5
F. Rademacher, S. Sachweh, A. Zündorf, Aspect-oriented modeling of technology heterogeneity in microservice architecture, in 2019 IEEE International Conference on Software Architecture (ICSA), pp. 21–30 (IEEE, Piscataway, 2019)
F. Rademacher, J. Sorgalla, S. Sachweh, A. Zündorf, A model-driven workflow for distributed microservice development, in Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, SAC ’19 (ACM, New York, 2019), pp. 1260–1262
F. Rademacher, J. Sorgalla, S. Sachweh, A. Zündorf, Viewpoint-specific model-driven microservice development with interlinked modeling languages, in 2019 IEEE International Conference on Service-Oriented System Engineering (SOSE) (IEEE, Piscataway, 2019), pp. 57–66
M. Richards, Microservices vs. Service-Oriented Architecture (O’Reilly Media, Sebastopol, 2015)
G. Schermann, J. Cito, P. Leitner, All the services large and micro: revisiting industrial practice in services computing, in Service-Oriented Computing—ICSOC 2015 Workshops, eds. by A. Norta, W. Gaaloul, G.R. Gangadharan, H.K. Dam (Springer, Berlin, 2016), pp. 36–47
J. Sorgalla, P. Wizenty, F. Rademacher, S. Sachweh, A. Zündorf, Ajil: enabling model-driven microservice development, in Proceedings of the 12th European Conference on Software Architecture: Companion Proceedings, ECSA ’18 (ACM, New York, 2018), pp. 1:1–1:4
D. Steinberg, F. Budinsky, M. Paternostro, E. Merks, EMF–Eclipse Modeling Framework, 2 edn. (Pearson Education, Harlow, 2011)
D. Taibi, V. Lenarduzzi, On the definition of microservice bad smells. IEEE Softw. 35(3), 56–62 (2018)
B. Terzić, V. Dimitrieski, S. Kordić, G. Milosavljević, I. Luković, Development and Evaluation of Microbuilder: A Model-Driven Tool for the Specification of Rest Microservice Software Architectures (Taylor and Francis, Milton Park, 2018), pp. 1034–1057
J. Whittle, J. Hutchinson, M. Rouncefield, The state of practice in model-driven engineering. IEEE Softw. 31(3), 79–85 (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Rademacher, F., Sorgalla, J., Wizenty, P., Sachweh, S., Zündorf, A. (2020). Graphical and Textual Model-Driven Microservice Development. In: Bucchiarone, A., et al. Microservices. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_7
Download citation
DOI: https://doi.org/10.1007/978-3-030-31646-4_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31645-7
Online ISBN: 978-3-030-31646-4
eBook Packages: Computer ScienceComputer Science (R0)