Abstract
We formally define and implement a translation from domain models in the LEMMA modelling framework to microservice APIs in the Jolie programming language. Our tool enables a software development process whereby microservice architectures can first be designed with the leading method of Domain-Driven Design (DDD), and then corresponding data types and service interfaces (APIs) in Jolie are automatically generated. Developers can extend and use these APIs as guides in order to produce compliant implementations. Our tool thus contributes to enhancing productivity and improving the design adherence of microservices.
Work partially supported by Independent Research Fund Denmark, grant no. 0135-00219.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Ameller, D., Burgués, X., Collell, O., Costal, D., Franch, X., Papazoglou, M.P.: Development of service-oriented architectures using model-driven development: a mapping study. Inf. Softw. Technol. 62, 42–66 (2015)
Bogner, J., Fritzsch, J., Wagner, S., Zimmermann, A.: Microservices in industry: insights into technologies, characteristics, and software quality. In: 2019 IEEE International Conference on Software Architecture Companion (ICSA-C), pp. 187–195. IEEE (2019). https://doi.org/10.1109/ICSA-C.2019.00041
Combemale, B., France, R.B., Jézéquel, J.-M., Rumpe, B., Steel, J., Vojtisek, D.: Engineering Modeling Languages: Turning Domain Knowledge into Tools. CRC Press (2017)
Daigneau, R.: Service Design Patterns. Addison-Wesley (2012)
Dragoni, N., et al.: Microservices: yesterday, today, and tomorrow. In: Present and Ulterior Software Engineering, pp. 195–216. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_12
Evans, E.: Domain-Driven Design. Addison-Wesley (2004)
Evans, E.: Domain-Driven Design Reference. Dog Ear Publishing (2015)
France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: 2007 Future of Software Engineering, pp. 37–54. IEEE (2007)
Freeman, T., Pfenning, F.: Refinement types for ML. In: Proceedings of the 1991 Conference on Programming Language Design and Implementation, pp. 268–277 (1991)
[SW] Giallorenzo, S., Montesi, F., Peressotti, M., Rademacher, F., LEMMA2Jolie: a tool to generate Jolie APIs from LEMMA domain models 2022. Università di Bologna et al. vcs: https://github.com/frademacher/lemma2jolie. SWHID:
Giallorenzo, S., Montesi, F., Peressotti, M., Rademacher, F., Sachweh, S.: Jolie and LEMMA: model-driven engineering and programming languages meet on microservices. In: Damiani, F., Dardha, O. (eds.) COORDINATION 2021. LNCS, vol. 12717, pp. 276–284. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-78142-2_17
Guidi, C., Lucchi, R., Gorrieri, R., Busi, N., Zavattaro, G.: SOCK: a calculus for service oriented computing. In: International Conference on Service-Oriented Computing, pp. 327–338 (2006)
Guidi, C., Maschio, B.: A Jolie based platform for speeding-up the digitalization of system integration processes. In: Proceedings of the Second International Conference on Microservices (Microservices 2019) (2019). https://www.conf-micro.services/2019/papers/Microservices_2019_paper_6.pdf
Harel, D., Rumpe, B.: Meaningful modeling: what’s the semantics of “semantics’’? Computer 37(10), 64–72 (2004). https://doi.org/10.1109/MC.2004.172
JHipster: JHipster Domain Language (JDL), 14 February 2022. https://www.jhipster.tech/jdl
Kapferer, S., Zimmermann, O.: Domain-driven service design. In: Dustdar, S. (ed.) SummerSOC 2020. CCIS, vol. 1310, pp. 189–208. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-64846-6_11
Kapferer, S., Zimmermann, O.: Domain-specific language and tools for strategic domain-driven design, context mapping and bounded context modeling. In: Proceedings of the 8th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, pp. 299–306. SciTePress (2020). https://doi.org/10.5220/0008910502990306
Klabnik, S., Nichols, C.: The Rust Programming Language (Covers Rust 2018). No Starch Press (2019)
Milner, R.: The tower of informatic models. From semantics to Computer Science (2009)
Montesi, F., Carbone, M.: Programming services with correlation sets. In: Kappel, G., Maamar, Z., Motahari-Nezhad, H.R. (eds.) ICSOC 2011. LNCS, vol. 7084, pp. 125–141. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-25535-9_9
Montesi, F., Guidi, C., Zavattaro, G.: Service-oriented programming with Jolie. In: Web Services Foundations. In: Bouguettaya, A., Sheng, Q.Z., Daniel, F. (eds.) Web Services Foundations, pp. 81–107. Springer, New York (2014). https://doi.org/10.1007/978-1-4614-7518-7_4
Newman, S.: Building Microservices: Designing Fine-Grained Systems. O’Reilly (2015)
Oram, A.: Ballerina: A Language for Network-Distributed Applications. O’Reilly (2019)
Python Software Foundation: The Python Language Reference (2021). https://docs.python.org/3/reference/index.html
Rademacher, F., Sachweh, S., Zündorf, A.: Deriving microservice code from underspecified domain models using DevOps-enabled modeling languages and model transformations. In: 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pp. 229–236. IEEE (2020)
Rademacher, F., Sorgalla, J., Wizenty, P., Sachweh, S., Zündorf, A.: Graphical and textual model-driven microservice development. In: Microservices, pp. 147–179. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-31646-4_7
Rademacher, F., Sorgalla, J., Wizenty, P., Trebbau, S.: Towards holistic modeling of microservice architectures using LEMMA. In: Companion Proceedings of the 15th European Conference on Software Architecture. CEUR-WS (2021)
Sculptor Team: Sculptor-Generating Java code from DDD-inspired textual DSL, 14 February 2022. https://www.sculptorgenerator.org
Soldani, J., Tamburri, D.A., Heuvel, W.-J.V.D.: The pains and gains of microservices: a systematic grey literature review. J. Syst. Softw. 146, 215–232 (2018)
Sorgalla, J., Wizenty, P., Rademacher, F., Sachweh, S., Zündorf, A.: Applying model-driven engineering to stimulate the adoption of DevOps processes in small and medium-sized development organizations. SN Comput. Sci. 2(6), 1–25 (2021). https://doi.org/10.1007/s42979-021-00825-z
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework. Addison-Wesley (2008)
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. Enterprise Inf. Syst. 12(8–9), 1034–1057 (2018)
The Rust Foundation: The Rust Reference (2021). https://doc.rust-lang.org/reference/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 IFIP International Federation for Information Processing
About this paper
Cite this paper
Giallorenzo, S., Montesi, F., Peressotti, M., Rademacher, F. (2022). Model-Driven Generation of Microservice Interfaces: From LEMMA Domain Models to Jolie APIs. In: ter Beek, M.H., Sirjani, M. (eds) Coordination Models and Languages. COORDINATION 2022. IFIP Advances in Information and Communication Technology, vol 13271. Springer, Cham. https://doi.org/10.1007/978-3-031-08143-9_13
Download citation
DOI: https://doi.org/10.1007/978-3-031-08143-9_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-08145-3
Online ISBN: 978-3-031-08143-9
eBook Packages: Computer ScienceComputer Science (R0)