-
Model-Driven Generation of Microservice Interfaces: From LEMMA Domain Models to Jolie APIs
Authors:
Saverio Giallorenzo,
Fabrizio Montesi,
Marco Peressotti,
Florian Rademacher
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, and then corresponding data types and service interfaces (APIs) in Jolie are automatically…
▽ More
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, 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.
△ Less
Submitted 23 February, 2022;
originally announced February 2022.
-
Applying Model-Driven Engineering to Stimulate the Adoption of DevOps Processes in Small and Medium-Sized Development Organizations
Authors:
Jonas Sorgalla,
Philip Wizenty,
Florian Rademacher,
Sabine Sachweh,
Albert Zündorf
Abstract:
Purpose: Microservice Architecture (MSA) denotes an increasingly popular architectural style in which business capabilities are wrapped into autonomously developable and deployable software components called microservices. Microservice applications are developed by multiple DevOps teams each owning one or more services. In this article, we explore the state of how DevOps teams in small and medium-…
▽ More
Purpose: Microservice Architecture (MSA) denotes an increasingly popular architectural style in which business capabilities are wrapped into autonomously developable and deployable software components called microservices. Microservice applications are developed by multiple DevOps teams each owning one or more services. In this article, we explore the state of how DevOps teams in small and medium-sized organizations (SMOs) cope with MSA and how they can be supported.
Methods: We show through a secondary analysis of an exploratory interview study comprising six cases, that the organizational and technological complexity resulting from MSA poses particular challenges for small and medium-sized organizations (SMOs). We apply Model-Driven Engineering to address these challenges.
Results: As results of the second analysis, we identify the challenge areas of building and maintaining a common architectural understanding, and dealing with deployment technologies. To support DevOps teams of SMOs in coping with these challenges, we present a model-driven workflow based on LEMMA - the Language Ecosystem for Modeling Microservice Architecture. To implement the workflow, we extend LEMMA with the functionality to (i) generate models from API documentation; (ii) reference remote models owned by other teams; (iii) generate deployment specifications; and (iv) generate a visual representation of the overall architecture.
Conclusion: We validate the model-driven workflow and our extensions to LEMMA through a case study showing that the added functionality to LEMMA can bring efficiency gains for DevOps teams. To develop best practices for applying our workflow to maximize efficiency in SMOs, we plan to conduct more empirical research in the field in the future.
△ Less
Submitted 26 July, 2021;
originally announced July 2021.
-
Jolie & LEMMA: Model-Driven Engineering and Programming Languages Meet on Microservices
Authors:
Saverio Giallorenzo,
Fabrizio Montesi,
Marco Peressotti,
Florian Rademacher,
Sabine Sachweh
Abstract:
In the field of microservices, Model-Driven Engineering has emerged as a powerful methodology for architectural design, and new programming languages have introduced language abstractions to deal with microservice development more effectively. In this article, we present the first preliminary investigation of how the two approaches can be married, taking the LEMMA framework and the Jolie programmi…
▽ More
In the field of microservices, Model-Driven Engineering has emerged as a powerful methodology for architectural design, and new programming languages have introduced language abstractions to deal with microservice development more effectively. In this article, we present the first preliminary investigation of how the two approaches can be married, taking the LEMMA framework and the Jolie programming language as respective representatives. By developing a conceptual metamodel for Jolie, we elicit a strong link between the two approaches, which shows that there is much to gain. We discuss a few low-hanging fruits that come from our finding and present some interesting future directions that arise from our new viewpoint.
△ Less
Submitted 6 April, 2021;
originally announced April 2021.
-
On Collaborative Model-driven Development of Microservices
Authors:
Jonas Sorgalla,
Florian Rademacher,
Sabine Sachweh,
Albert Zündorf
Abstract:
Microservice Architecture (MSA) denotes an emerging architectural style for distributed and service-based systems whereby each microservice is highly cohesive and implements a single business capability. A microservice system consists of multiple, loosely coupled microservices. It provides complex capabilities through services interacting in choreographies. A single dedicated team, typically pract…
▽ More
Microservice Architecture (MSA) denotes an emerging architectural style for distributed and service-based systems whereby each microservice is highly cohesive and implements a single business capability. A microservice system consists of multiple, loosely coupled microservices. It provides complex capabilities through services interacting in choreographies. A single dedicated team, typically practicing DevOps, is responsible for each microservice, i.e., it "owns" the service. However, while systems relying on MSA have several architectural advantages especially for cloud applications, their realization is characterized by an increased accidental complexity due to redundant handcrafting of implementation, e.g., to make each service standalone runnable. A promising way to cope with such complexity is the usage of Model-driven Development (MDD) whereby models are used as first-class entities in the software development process. Although there are already first steps taken on how MDD could be applied by a single team to implement its microservices, the question of how MDD can be adapted to MSA's development distribution across multiple teams remains an issue. In this paper we envision the application of Collaborative Model-driven Software Engineering (CMDSE) to MDD of MSA by surveying relevant characteristics of CMDSE and identifying challenges for its application to MSA. The present paper takes a first step towards enabling holistic MDD of MSA across microservice teams.
△ Less
Submitted 3 May, 2018;
originally announced May 2018.
-
Design and Implementation of a Remote Care Application Based on Microservice Architecture
Authors:
Philip Nils Wizenty,
Florian Rademacher,
Jonas Sorgalla,
Sabine Sachweh
Abstract:
Microservice Architecture (MSA) is an architectural style for service-based software systems. MSA puts a strong emphasis on high cohesion and loose coupling of the services that provide systems' functionalities. As a result of this, MSA-based software architectures exhibit increased scalability and extensibility, and facilitate the application of continuous integration techniques. This paper prese…
▽ More
Microservice Architecture (MSA) is an architectural style for service-based software systems. MSA puts a strong emphasis on high cohesion and loose coupling of the services that provide systems' functionalities. As a result of this, MSA-based software architectures exhibit increased scalability and extensibility, and facilitate the application of continuous integration techniques. This paper presents a case study of an MSA-based Remote Care Application (RCA) that allows caregivers to remotely access smart home devices. The goal of the RCA is to assist persons being cared in Activities of Daily Living. Employing MSA for the realization of the RCA yielded several lessons learned, e.g., (i) direct transferability of domain models based on Domain-driven Design; (ii) more efficient integration of features; (iii) speedup of feature delivery due to MSA facilitating automated deployment.
△ Less
Submitted 26 April, 2018;
originally announced April 2018.
-
Towards a Viewpoint-specific Metamodel for Model-driven Development of Microservice Architecture
Authors:
Florian Rademacher,
Jonas Sorgalla,
Sabine Sachweh,
Albert Zündorf
Abstract:
Microservice Architecture (MSA) is a service-based architectural style with a strong emphasis on high cohesion and loose coupling. It is commonly regarded as a descendant of Service-oriented Architecture (SOA) and thus might draw on existing findings of SOA research. This paper presents a metamodel for Model-driven Development (MDD) of MSA, which is deduced from existing SOA modeling approaches, b…
▽ More
Microservice Architecture (MSA) is a service-based architectural style with a strong emphasis on high cohesion and loose coupling. It is commonly regarded as a descendant of Service-oriented Architecture (SOA) and thus might draw on existing findings of SOA research. This paper presents a metamodel for Model-driven Development (MDD) of MSA, which is deduced from existing SOA modeling approaches, but also incorporates MSA-specific modeling concepts. It is divided into the three viewpoints Data, Service and Operation, each of which encapsulates concepts related to a certain aspect of MSA. The metamodel aims to support DevOps-based MSA development and automatic transformation of metamodel instances into MSA implementations.
△ Less
Submitted 26 April, 2018;
originally announced April 2018.
-
Analysis of Service-oriented Modeling Approaches for Viewpoint-specific Model-driven Development of Microservice Architecture
Authors:
Florian Rademacher,
Sabine Sachweh,
Albert Zündorf
Abstract:
Microservice Architecture (MSA) is a novel service-based architectural style for distributed software systems. Compared to Service-oriented Architecture (SOA), MSA puts a stronger focus on self-containment of services. Each microservice is responsible for realizing exactly one business or technological capability that is distinct from other services' capabilities. Additionally, on the implementati…
▽ More
Microservice Architecture (MSA) is a novel service-based architectural style for distributed software systems. Compared to Service-oriented Architecture (SOA), MSA puts a stronger focus on self-containment of services. Each microservice is responsible for realizing exactly one business or technological capability that is distinct from other services' capabilities. Additionally, on the implementation and operation level, microservices are self-contained in that they are developed, tested, deployed and operated independently from each other. Next to these characteristics that distinguish MSA from SOA, both architectural styles rely on services as building blocks of distributed software architecture and hence face similar challenges regarding, e.g., service identification, composition and provisioning. However, in contrast to MSA, SOA may rely on an extensive body of knowledge to tackle these challenges. Thus, due to both architectural styles being service-based, the question arises to what degree MSA might draw on existing findings of SOA research and practice. In this paper we address this question in the field of Model-driven Development (MDD) for design and operation of service-based architectures. Therefore, we present an analysis of existing MDD approaches to SOA, which comprises the identification and semantic clustering of modeling concepts for SOA design and operation. For each concept cluster, the analysis assesses its applicability to MDD of MSA (MSA-MDD) and assigns it to a specific modeling viewpoint. The goal of the presented analysis is to provide a conceptual foundation for an MSA-MDD metamodel.
△ Less
Submitted 26 April, 2018;
originally announced April 2018.