Document Open Access Logo

Model-Driven Code Generation for Microservices: Service Models

Authors Saverio Giallorenzo , Fabrizio Montesi , Marco Peressotti , Florian Rademacher



PDF
Thumbnail PDF

File

OASIcs.Microservices.2020-2022.6.pdf
  • Filesize: 0.73 MB
  • 17 pages

Document Identifiers

Author Details

Saverio Giallorenzo
  • Università di Bologna, Italy
  • INRIA, Sophia Antopolis, France
Fabrizio Montesi
  • University of Southern Denmark, Odense, Denmark
Marco Peressotti
  • University of Southern Denmark, Odense, Denmark
Florian Rademacher
  • Software Engineering, RWTH Aachen University, Germany

Cite AsGet BibTex

Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti, and Florian Rademacher. Model-Driven Code Generation for Microservices: Service Models. In Joint Post-proceedings of the Third and Fourth International Conference on Microservices (Microservices 2020/2022). Open Access Series in Informatics (OASIcs), Volume 111, pp. 6:1-6:17, Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2023)
https://doi.org/10.4230/OASIcs.Microservices.2020-2022.6

Abstract

We formally define and implement a translation of domain and service models expressed in the LEMMA modelling ecosystem for microservice architectures to source code in the Jolie microservice programming language. Specifically, our work extends previous efforts on the generation of Jolie code to the inclusion of the LEMMA service modelling layer. We also contribute an implementation of our translation, given as an extension of the LEMMA2Jolie tool, which enables the practical application of our encoding. As a result, LEMMA2Jolie now supports a software development process whereby microservice architectures can first be designed by microservice developers in collaboration with domain experts in LEMMA, and then be automatically translated into Jolie APIs. Our tool can thus be used to enhance productivity and improve design adherence.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Software development methods
  • Applied computing → Service-oriented architectures
  • Software and its engineering → Model-driven software engineering
Keywords
  • Microservices
  • Model-driven Engineering
  • Code Generation
  • Jolie APIs

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. David Ameller, Xavier Burgués, Oriol Collell, Dolors Costal, Xavier Franch, and Mike P. Papazoglou. Development of service-oriented architectures using model-driven development: A mapping study. Information and Software Technology, 62:42-66, 2015. Elsevier. URL: https://doi.org/10.1016/J.INFSOF.2015.02.006.
  2. Benoit Combemale, Robert B. France, Jean-Marc Jézéquel, Bernhard Rumpe, Jim Steel, and Didier Vojtisek. Engineering Modeling Languages: Turning Domain Knowledge into Tools. CRC Press, 2017. Google Scholar
  3. Luís Cruz-Filipe, Sofia Kostopoulou, Fabrizio Montesi, and Jonas Vistrup. μxl: Explainable lead generation with microservices and hypothetical answers. In Florian Rademacher and Jacopo Soldani, editors, Service-Oriented and Cloud Computing - 10th IFIP WG 6.12 European Conference, ESOCC 2023, Larnaca, Cyprus, October 24-25, 2023, Proceedings, Lecture Notes in Computer Science. Springer, 2023. URL: https://doi.org/10.1007/978-3-031-46235-1_1.
  4. Robert Daigneau. Service Design Patterns. Addison-Wesley, 2012. Google Scholar
  5. Nicola Dragoni, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, and Larisa Safina. Microservices: Yesterday, today, and tomorrow. In Manuel Mazzara and Bertrand Meyer, editors, Present and Ulterior Software Engineering, pages 195-216. Springer, 2017. URL: https://doi.org/10.1007/978-3-319-67425-4_12.
  6. Eric Evans. Domain-Driven Design. Addison-Wesley, 2004. Google Scholar
  7. Tim Freeman and Frank Pfenning. Refinement types for ML. In Proc. of the 1991 Conf. on Programming Language Design and Implementation, pages 268-277, 1991. URL: https://doi.org/10.1145/113445.113468.
  8. Saverio Giallorenzo, Fabrizio Montesi, and Maurizio Gabbrielli. Applied choreographies. In Formal Techniques for Distributed Objects, Components, and Systems, pages 21-40. Springer, 2018. URL: https://doi.org/10.1007/978-3-319-92612-4_2.
  9. Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti, and Florian Rademacher. Model-driven generation of microservice interfaces: From LEMMA domain models to jolie apis. In Maurice H. ter Beek and Marjan Sirjani, editors, Coordination Models and Languages - 24th IFIP WG 6.1 International Conference, COORDINATION 2022, Held as Part of the 17th International Federated Conference on Distributed Computing Techniques, DisCoTec 2022, Lucca, Italy, June 13-17, 2022, Proceedings, volume 13271 of Lecture Notes in Computer Science, pages 223-240. Springer, 2022. URL: https://doi.org/10.1007/978-3-031-08143-9_13.
  10. Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti, Florian Rademacher, and Sabine Sachweh. Jolie and LEMMA: Model-driven engineering and programming languages meet on microservices. In Coordination Models and Languages, pages 276-284. Springer, 2021. URL: https://doi.org/10.1007/978-3-030-78142-2_17.
  11. Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti, Florian Rademacher, and Narongrit Unwerawattana. Jot: A jolie framework for testing microservices. In Sung-Shik Jongmans and Antónia Lopes, editors, Coordination Models and Languages, volume 13908 of Lecture Notes in Computer Science, pages 172-191. Springer, 2023. URL: https://doi.org/10.1007/978-3-031-35361-1_10.
  12. Claudio Guidi, Roberto Lucchi, Roberto Gorrieri, Nadia Busi, and Gianluigi Zavattaro. Sock: a calculus for service oriented computing. In International Conference on Service-Oriented Computing, pages 327-338. Springer, 2006. URL: https://doi.org/10.1007/11948148_27.
  13. Claudio Guidi and Balint Maschio. A jolie based platform for speeding-up the digitalization of system integration processes, 2019. URL: https://www.conf-micro.services/2019/papers/Microservices_2019_paper_6.pdf.
  14. David Harel and Bernhard Rumpe. Meaningful modeling: what’s the semantics of "semantics"? Computer, 37(10):64-72, oct 2004. IEEE. URL: https://doi.org/10.1109/MC.2004.172.
  15. JHipster. Jhipster domain language (jdl), 2022-14-02. URL: https://www.jhipster.tech/jdl.
  16. Stefan Kapferer and Olaf Zimmermann. 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, pages 299-306. INSTICC, SciTePress, 2020. URL: https://doi.org/10.5220/0008910502990306.
  17. Steve Klabnik and Carol Nichols. The Rust Programming Language (Covers Rust 2018). No Starch Press, 2019. Google Scholar
  18. Robin Milner. The tower of informatic models. From semantics to Computer Science, 2009. Google Scholar
  19. Fabrizio Montesi. Jolie: a Service-oriented Programming Language. Master’s thesis, University of Bologna, Department of Computer Science, 2010. URL: http://amslaurea.cib.unibo.it/1226/.
  20. Fabrizio Montesi. Process-aware web programming with Jolie. Sci. Comput. Program., 130:69-96, 2016. URL: https://doi.org/10.1016/J.SCICO.2016.05.002.
  21. Fabrizio Montesi and Marco Carbone. Programming services with correlation sets. In Gerti Kappel, Zakaria Maamar, and Hamid R. Motahari Nezhad, editors, Service-Oriented Computing - 9th International Conference, ICSOC 2011, Paphos, Cyprus, December 5-8, 2011 Proceedings, volume 7084 of Lecture Notes in Computer Science, pages 125-141. Springer, 2011. URL: https://doi.org/10.1007/978-3-642-25535-9_9.
  22. Fabrizio Montesi, Claudio Guidi, and Gianluigi Zavattaro. Service-oriented programming with Jolie. In Athman Bouguettaya, Quan Z. Sheng, and Florian Daniel, editors, Web Services Foundations, pages 81-107. Springer, 2014. URL: https://doi.org/10.1007/978-1-4614-7518-7_4.
  23. Fabrizio Montesi, Marco Peressotti, and Valentino Picotti. Sliceable monolith: Monolith first, microservices later. In Barbara Carminati, Carl K. Chang, Ernesto Daminai, Shuigung Deng, Wei Tan, Zhongjie Wang, Robert Ward, and Jia Zhang, editors, IEEE International Conference on Services Computing, SCC 2021, Chicago, IL, USA, September 5-10, 2021, pages 364-366. IEEE, 2021. URL: https://doi.org/10.1109/SCC53864.2021.00050.
  24. Sam Newman. Building Microservices: Designing Fine-Grained Systems. O'Reilly, 2015. URL: https://www.worldcat.org/oclc/904463848.
  25. Andy Oram. Ballerina: A Language for Network-Distributed Applications. O'Reilly, 2019. Google Scholar
  26. Richard F. Paige, Nicholas Matragkas, and Louis M. Rose. Evolving models in model-driven engineering: State-of-the-art and future challenges. Journal of Systems and Software, 111:272-280, 2016. URL: https://doi.org/10.1016/J.JSS.2015.08.047.
  27. Python Software Foundation. The python language reference, 2021. Google Scholar
  28. Florian Rademacher, Sabine Sachweh, and Albert Zündorf. Aspect-oriented modeling of technology heterogeneity in Microservice Architecture. In 2019 IEEE Int. Conf. on Software Architecture (ICSA), pages 21-30. IEEE, 2019. URL: https://doi.org/10.1109/ICSA.2019.00011.
  29. Florian Rademacher, Sabine Sachweh, and Albert Zündorf. Deriving microservice code from underspecified domain models using DevOps-enabled modeling languages and model transformations. In 2020 46th Euromicro Conf. on Software Engineering and Advanced Applications (SEAA), pages 229-236. IEEE, 2020. URL: https://doi.org/10.1109/SEAA51224.2020.00047.
  30. Florian Rademacher, Jonas Sorgalla, Philip Wizenty, Sabine Sachweh, and Albert Zündorf. Graphical and textual model-driven microservice development. In Microservices: Science and Engineering, pages 147-179. Springer, 2020. URL: https://doi.org/10.1007/978-3-030-31646-4_7.
  31. Florian Rademacher, Jonas Sorgalla, Philip Wizenty, and Simon Trebbau. Towards holistic modeling of microservice architectures using LEMMA. In Companion Proc. of the 15th Europ. Conf. on Software Architecture. CEUR-WS, 2021. URL: https://ceur-ws.org/Vol-2978/mde4sa-paper2.pdf.
  32. Florian Rademacher, Jonas Sorgalla, Philip Wizenty, and Simon Trebbau. Towards an extensible approach for generative microservice development and deployment using lemma. In Patrizia Scandurra, Matthias Galster, Raffaela Mirandola, and Danny Weyns, editors, Software Architecture, pages 257-280, Cham, 2022. Springer International Publishing. URL: https://doi.org/10.1007/978-3-031-15116-3_12.
  33. Chris Richardson. Microservices Patterns. Manning Publications, first edition, 2019. Google Scholar
  34. Sculptor Team. Sculptor-generating Java code from DDD-inspired textual DSL, 2022-14-02. URL: https://www.sculptorgenerator.org.
  35. Jacopo Soldani, Damian Andrew Tamburri, and Willem-Jan Van Den Heuvel. The pains and gains of microservices: A systematic grey literature review. Journal of Systems and Software, 146:215-232, 2018. Elsevier. URL: https://doi.org/10.1016/J.JSS.2018.09.082.
  36. Jonas Sorgalla, Philip Wizenty, Florian Rademacher, Sabine Sachweh, and Albert Zündorf. Applying model-driven engineering to stimulate the adoption of devops processes in small and medium-sized development organizations. SN Computer Science, 2(6):459, 2021. URL: https://doi.org/10.1007/S42979-021-00825-Z.
  37. Branko Terzić, Vladimir Dimitrieski, Slavica Kordić, Gordana Milosavljević, and Ivan Luković. Development and evaluation of MicroBuilder: a model-driven tool for the specification of REST microservice software architectures. Enterprise Information Systems, 12(8-9):1034-1057, 2018. Taylor & Francis. URL: https://doi.org/10.1080/17517575.2018.1460766.
  38. The Rust Foundation. The rust reference, 2021. Google Scholar
  39. Olaf Zimmermann, Mirko Stocker, Daniel Lübke, Uwe Zdun, and Cesare Pautasso. Patterns for API Design: Simplifying Integration with Loosely Coupled Message Exchanges. Addison-Wesley, Boston, 2023. Google Scholar
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail