Model-Driven Generation of Microservice Interfaces: From LEMMA Domain Models to Jolie APIs | SpringerLink
Skip to main content

Model-Driven Generation of Microservice Interfaces: From LEMMA Domain Models to Jolie APIs

  • Conference paper
  • First Online:
Coordination Models and Languages (COORDINATION 2022)

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.

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

Access this chapter

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
JPY 3498
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
JPY 13727
Price includes VAT (Japan)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
JPY 17159
Price includes VAT (Japan)
  • 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

Similar content being viewed by others

Notes

  1. 1.

    The complete grammar can be found at https://github.com/SeelabFhdo/lemma/blob/main/de.fhdo.lemma.data.datadsl/src/de/fhdo/lemma/data/DataDsl.xtext.

  2. 2.

    https://www.eclipse.org/xtend

  3. 3.

    https://github.com/SeelabFhdo/lemma/tree/main/de.fhdo.lemma.model_processing

  4. 4.

    https://bit.ly/3rTGysX

References

  1. 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)

    Article  Google Scholar 

  2. 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

  3. 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)

    Google Scholar 

  4. Daigneau, R.: Service Design Patterns. Addison-Wesley (2012)

    Google Scholar 

  5. 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

    Chapter  Google Scholar 

  6. Evans, E.: Domain-Driven Design. Addison-Wesley (2004)

    Google Scholar 

  7. Evans, E.: Domain-Driven Design Reference. Dog Ear Publishing (2015)

    Google Scholar 

  8. France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: 2007 Future of Software Engineering, pp. 37–54. IEEE (2007)

    Google Scholar 

  9. Freeman, T., Pfenning, F.: Refinement types for ML. In: Proceedings of the 1991 Conference on Programming Language Design and Implementation, pp. 268–277 (1991)

    Google Scholar 

  10. [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:

  11. 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

    Chapter  Google Scholar 

  12. 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)

    Google Scholar 

  13. 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

  14. 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

    Article  Google Scholar 

  15. JHipster: JHipster Domain Language (JDL), 14 February 2022. https://www.jhipster.tech/jdl

  16. 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

    Chapter  Google Scholar 

  17. 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

  18. Klabnik, S., Nichols, C.: The Rust Programming Language (Covers Rust 2018). No Starch Press (2019)

    Google Scholar 

  19. Milner, R.: The tower of informatic models. From semantics to Computer Science (2009)

    Google Scholar 

  20. 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

    Chapter  Google Scholar 

  21. 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

  22. Newman, S.: Building Microservices: Designing Fine-Grained Systems. O’Reilly (2015)

    Google Scholar 

  23. Oram, A.: Ballerina: A Language for Network-Distributed Applications. O’Reilly (2019)

    Google Scholar 

  24. Python Software Foundation: The Python Language Reference (2021). https://docs.python.org/3/reference/index.html

  25. 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)

    Google Scholar 

  26. 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

    Chapter  Google Scholar 

  27. 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)

    Google Scholar 

  28. Sculptor Team: Sculptor-Generating Java code from DDD-inspired textual DSL, 14 February 2022. https://www.sculptorgenerator.org

  29. 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)

    Article  Google Scholar 

  30. 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

    Article  Google Scholar 

  31. Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework. Addison-Wesley (2008)

    Google Scholar 

  32. 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)

    Article  Google Scholar 

  33. The Rust Foundation: The Rust Reference (2021). https://doc.rust-lang.org/reference/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Florian Rademacher .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 IFIP International Federation for Information Processing

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics