SlideShare a Scribd company logo
1 of 82
Download to read offline
Taming Complexity: On Studying the Application of
Model-Driven Engineering to the Design, Development, and
Operation of Microservice Architectures
Webinar of the Microservice Community’s Research Group
Florian Rademacher
florian.rademacher@fh-dortmund.de
October 20, 2021
IDiAL Institute, University of Applied Sciences and Arts Dortmund
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 1
whoami
• Florian Rademacher
• PhD Student in Computer Science @ University of Kassel, and
University of Applied Sciences and Arts Dortmund (FH Dortmund)
• Research Associate @ IDiAL Institute of FH Dortmund
• Research Interests
• Distributed software architectures
• Model-Driven Engineering (MDE)
• Software Language Engineering
• PhD Thesis: “A Language Ecosystem for Modeling Microservice
Architecture” (submitted)
• Member of the Microservice Community’s Communication Group
• florian.rademacher@fh-dortmund.de
• frademacher@microservices.community
• MC Discord Server W, MC Mailing List W, 7/c_microservices
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 2
whoami
• Florian Rademacher
• PhD Student in Computer Science @ University of Kassel, and
University of Applied Sciences and Arts Dortmund (FH Dortmund)
• Research Associate @ IDiAL Institute of FH Dortmund
• Research Interests
• Distributed software architectures
• Model-Driven Engineering (MDE)
• Software Language Engineering
• PhD Thesis: “A Language Ecosystem for Modeling Microservice
Architecture” (submitted)
• Member of the Microservice Community’s Communication Group
• florian.rademacher@fh-dortmund.de
• frademacher@microservices.community
• MC Discord Server W, MC Mailing List W, 7/c_microservices
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 2
Our Research Group
• Smart Environments Engineering Laboratory (SEELAB) @ IDiAL Institute
• ~15 research associates (six PhD students) and scientific software developers
• Led by Prof. Dr. Sabine Sachweh
• Applied research projects in areas like. . .
. . . e-Health
. . . Internet of Things
. . . Smart City
. . . Smart Manufacturing
• Research focus on topics like. . .
. . . Adaptive User Interfaces
. . . Artificial Intelligence
. . . MDE
. . . Software Architecture
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 3
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 4
Model-Driven Engineering (MDE)
• Software Engineering paradigm that uses models throughout all or selected
phases of the Software Engineering process [10]
• In MDE, a model is usually a Software Engineering artifact that. . .
. . . abstracts from selected properties of an anticipated or existing software system
. . . can be created, maintained, and understood by humans
. . . is (semi-) automatically processible by computer programs
• Common Goal of MDE: Elevating models’ purposes from documentation artifacts
to first-class citizens in the Software Engineering process
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 5
Model-Driven Engineering (MDE)
• Major concepts of MDE [10]
• Modeling Languages: Prescribe the set of well-defined models (syntax and
semantics), and provide means to construct and maintain valid models (pragmatics)
• Model Transformations: Prescribe rule sets to derive one or more target artifacts
from one or more source models
• Example
• Modeling Language(s): UML [35]
• UML-Based Model:
Person
- firstname : String
- lastname : String
Student
- enrollmentNumber : String
- program : Program
• Model Transformation:
Person
- firstname : String
- lastname : String
Student
- enrollmentNumber : String
- program : Program
⇒
class Student extends Person {
private String enrollmentNumber;
...
}
class Person {
private String firstname;
...
}
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 6
Model-Driven Engineering (MDE)
• Expected benefits of MDE (sample) [10, 51, 9, 26]
• Complexity Reduction: Introduce supportive abstractions for selected properties of
a software system, and provide means to comprehend and manage these
abstractions
⇒ Allow stakeholders without technical background to actively participate in the
Software Engineering process
• Value Increase of Models: Introduce processing means for existing
(documentation) models to integrate them with additional phases of the Software
Engineering process
• Quality Increase: Automatically incorporate, e.g., patterns, bugfixes, or best
practices, into generated source code or analyze models for quality attribute
assessment
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 7
Model-Driven Engineering (MDE)
• Expected benefits of MDE (sample) [10, 51, 9, 26]
• Complexity Reduction: Introduce supportive abstractions for selected properties of
a software system, and provide means to comprehend and manage these
abstractions
⇒ Allow stakeholders without technical background to actively participate in the
Software Engineering process
• Value Increase of Models: Introduce processing means for existing
(documentation) models to integrate them with additional phases of the Software
Engineering process
• Quality Increase: Automatically incorporate, e.g., patterns, bugfixes, or best
practices, into generated source code or analyze models for quality attribute
assessment
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 7
Model-Driven Engineering (MDE)
• Expected benefits of MDE (sample) [10, 51, 9, 26]
• Complexity Reduction: Introduce supportive abstractions for selected properties of
a software system, and provide means to comprehend and manage these
abstractions
⇒ Allow stakeholders without technical background to actively participate in the
Software Engineering process
• Value Increase of Models: Introduce processing means for existing
(documentation) models to integrate them with additional phases of the Software
Engineering process
• Quality Increase: Automatically incorporate, e.g., patterns, bugfixes, or best
practices, into generated source code or analyze models for quality attribute
assessment
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 7
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 8
Research Statement: Motivation
• Microservice Architecture (MSA) engineering is inherently complex along different
dimensions [44]
• Typical Design Challenges
• “Correct” service identification and granularity determination
• Design techniques like Domain-Driven Design (DDD) [14] are frequently used in
MSA engineering [29, 15, 28] but also appear too complex and/or not rigorous
enough to practitioners [8]
• Typical Implementation Challenges
• Increased risk for technical debt, additional maintainability cost, and steeper learning
curves due to technology heterogeneity [48]
• Technology management is more complex given an increased set of potential
technology variation points [39]
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 9
Research Statement: Motivation
• Microservice Architecture (MSA) engineering is inherently complex along different
dimensions [44]
• Typical Design Challenges
• “Correct” service identification and granularity determination
• Design techniques like Domain-Driven Design (DDD) [14] are frequently used in
MSA engineering [29, 15, 28] but also appear too complex and/or not rigorous
enough to practitioners [8]
• Typical Implementation Challenges
• Increased risk for technical debt, additional maintainability cost, and steeper learning
curves due to technology heterogeneity [48]
• Technology management is more complex given an increased set of potential
technology variation points [39]
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 9
Research Statement: Motivation
• Microservice Architecture (MSA) engineering is inherently complex along different
dimensions [44]
• Typical Design Challenges
• “Correct” service identification and granularity determination
• Design techniques like Domain-Driven Design (DDD) [14] are frequently used in
MSA engineering [29, 15, 28] but also appear too complex and/or not rigorous
enough to practitioners [8]
• Typical Implementation Challenges
• Increased risk for technical debt, additional maintainability cost, and steeper learning
curves due to technology heterogeneity [48]
• Technology management is more complex given an increased set of potential
technology variation points [39]
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 9
Research Statement: Motivation
• Microservice Architecture (MSA) engineering is inherently complex along different
dimensions [44]
• Typical Operation Challenge
• Necessity of additional infrastructure components, e.g., container orchestration
platforms, service discoveries, and API gateways, that often leverage diverse
technologies with their own configuration requirements and profiles, and
lifecycles [3, 44]
• Typical Organizational Challenge
• MSA fosters DevOps and a collaborative team culture [31, 27], which both assume
automation and efficient knowledge sharing
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 10
Research Statement: Motivation
• Microservice Architecture (MSA) engineering is inherently complex along different
dimensions [44]
• Typical Operation Challenge
• Necessity of additional infrastructure components, e.g., container orchestration
platforms, service discoveries, and API gateways, that often leverage diverse
technologies with their own configuration requirements and profiles, and
lifecycles [3, 44]
• Typical Organizational Challenge
• MSA fosters DevOps and a collaborative team culture [31, 27], which both assume
automation and efficient knowledge sharing
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 10
Research Statement
Research Statement
To investigate the applicability of MDE means in the design, implementation, and
operation of microservice architectures to effectively cope with the inherent
complexity of MSA engineering.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 11
Research Statement: Research Questions (RQs)
RQ 1: Modeling Languages
How do modeling languages for the application of MDE to MSA engineering need to
be constituted?
• Guide stakeholders in MSA design activities
• Allow the management and selective application of heterogeneous technology
information
• Harmonize infrastructure configuration
• Foster efficient knowledge sharing within and across MSA teams
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 12
Research Statement: Research Questions (RQs)
RQ 2: Model Processing
How can models, which were constructed with the modeling languages (cf. RQ 1), be
used besides architecture documentation?
• Foster automation within and across MSA teams, e.g., via the generation of
boilerplate code and consistent API specifications
• Allow metrics-based quality assessment
• Allow technical MSA stakeholders, e.g., service developers, without an MDE
background to implement custom model processors
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 13
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 14
Investigation of RQ 1: Modeling Languages
RQ 1: Modeling Languages
How do modeling languages for the application of MDE to MSA engineering need to
be constituted?
• Research approach:
1. Modeling concept identification through a survey of conceptual frameworks for
the engineering of Service-Based Software Architectures [6, 30, 50, 33, 36, 34]
(results: [37])
2. Concept refinement through an analysis of seven non-trivial open source
microservice architectures [28, 43]
3. Concept clustering based on the concerns [4] and viewpoints [22] of stakeholders
in MSA engineering (results: [39, 41])
4. Languages’ implementation using the Eclipse Modeling Framework [47]
5. Languages’ validation and empirical assessment of quality in use
(results: [42], [46] (preliminary))
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 15
Investigation of RQ 1: Modeling Languages
Figure 1: Modeling languages and their supported model kinds
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 16
Investigation of RQ 1: Modeling Languages
Figure 2: Modeling languages and their supported model kinds (including viewpoints)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 17
Investigation of RQ 1: Modeling Languages
Figure 3: Modeling languages and their supported model kinds (including stakeholders)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 18
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1 context ChargingStationManagement {
2 structure ElectrifiedParkingSpace<entity, aggregate> {
3 string id<identifier>,
4 string name,
5 string plugType,
6 ChargingType chargingType<part>,
7 ParkingSpaceSize parkingSpaceSize<part>,
8 ...
9 }
10 enum ChargingType{ FAST, NORMAL }
11 structure ElectrifiedParkingSpaceCreated<valueObject, domainEvent> {
12 immutable string name,
13 ...
14 }
15 }
Y Domain
Listing 1: Excerpt of the microservice’s domain model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 19
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1 technology CQRS {
2 service aspects {
3 aspect CommandSide for microservices { string logicalService; }
4 aspect QuerySide for microservices { string logicalService; }
5 }
6 }
1 technology Kafka {
2 protocols {
3 async kafka data formats "binary" default with format "binary";
4 }
5 service aspects {
6 aspect Participant for operations {
7 selector(protocol = kafka);
8 string topic<mandatory>;
9 string consumerGroup;
10 }
11 }
12 }
Y Technology
Y Technology
Listings 2 and 3: Excerpts of technology models
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 20
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1 ...
2 import datatypes from "domain.data" as Domain
3 import technology from "Kafka.technology" as Kafka
4 import technology from "Cqrs.technology" as CQRS
5 ...
6 @technology(Kafka)
7 @technology(CQRS)
8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";)
9 @CQRS::_aspects.CommandSide("ChargingStationManagement")
10 functional microservice de.fhdo.puls.ChargingStationManagementCommand {
11 ...
12 interface Commands {
13 ...
14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents")
15 sendParkingSpaceCreatedEvent(async out event
16 : Domain::ChargingStationManagement
17 .ElectrifiedParkingSpaceCreated);
18 }
19 }
Y Service
Listing 4: Excerpt of the command side microservice’s service
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1 ...
2 import datatypes from "domain.data" as Domain
3 import technology from "Kafka.technology" as Kafka
4 import technology from "Cqrs.technology" as CQRS
5 ...
6 @technology(Kafka)
7 @technology(CQRS)
8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";)
9 @CQRS::_aspects.CommandSide("ChargingStationManagement")
10 functional microservice de.fhdo.puls.ChargingStationManagementCommand {
11 ...
12 interface Commands {
13 ...
14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents")
15 sendParkingSpaceCreatedEvent(async out event
16 : Domain::ChargingStationManagement
17 .ElectrifiedParkingSpaceCreated);
18 }
19 }
Y Service
Listing 4: Excerpt of the command side microservice’s service
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1 ...
2 import datatypes from "domain.data" as Domain
3 import technology from "Kafka.technology" as Kafka
4 import technology from "Cqrs.technology" as CQRS
5 ...
6 @technology(Kafka)
7 @technology(CQRS)
8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";)
9 @CQRS::_aspects.CommandSide("ChargingStationManagement")
10 functional microservice de.fhdo.puls.ChargingStationManagementCommand {
11 ...
12 interface Commands {
13 ...
14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents")
15 sendParkingSpaceCreatedEvent(async out event
16 : Domain::ChargingStationManagement
17 .ElectrifiedParkingSpaceCreated);
18 }
19 }
Y Service
Listing 4: Excerpt of the command side microservice’s service
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1 ...
2 import datatypes from "domain.data" as Domain
3 import technology from "Kafka.technology" as Kafka
4 import technology from "Cqrs.technology" as CQRS
5 ...
6 @technology(Kafka)
7 @technology(CQRS)
8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";)
9 @CQRS::_aspects.CommandSide("ChargingStationManagement")
10 functional microservice de.fhdo.puls.ChargingStationManagementCommand {
11 ...
12 interface Commands {
13 ...
14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents")
15 sendParkingSpaceCreatedEvent(async out event
16 : Domain::ChargingStationManagement
17 .ElectrifiedParkingSpaceCreated);
18 }
19 }
Y Service
Listing 4: Excerpt of the command side microservice’s service
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1
import technology from "Kubernetes.technology" as Kubernetes
2
import microservices from "micro.services" as Services
3
import nodes from "infrastructure.operation" as Infrastructure
4
5
@technology(Kubernetes)
6
container ChargingStationManagementCommandContainer
7
deployment technology Kubernetes::_deployment.Kubernetes
8
with operation environment "openjdk:11-jdk-slim"
9
deploys Services::de.fhdo.puls.ChargingStationManagementCommand
10
depends on nodes
11
Infrastructure::IDM, Infrastructure::MessageBroker,
12
Infrastructure::MongoDB, Infrastructure::ServiceDiscovery
13
{
14
default values {
15
port=8071
16
...
17
}
18
}
Y Operation
Listing 5: Excerpt of the command side microservice’s operation
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1
import technology from "Kubernetes.technology" as Kubernetes
2
import microservices from "micro.services" as Services
3
import nodes from "infrastructure.operation" as Infrastructure
4
5
@technology(Kubernetes)
6
container ChargingStationManagementCommandContainer
7
deployment technology Kubernetes::_deployment.Kubernetes
8
with operation environment "openjdk:11-jdk-slim"
9
deploys Services::de.fhdo.puls.ChargingStationManagementCommand
10
depends on nodes
11
Infrastructure::IDM, Infrastructure::MessageBroker,
12
Infrastructure::MongoDB, Infrastructure::ServiceDiscovery
13
{
14
default values {
15
port=8071
16
...
17
}
18
}
Y Operation
Listing 5: Excerpt of the command side microservice’s operation
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1
import technology from "Kubernetes.technology" as Kubernetes
2
import microservices from "micro.services" as Services
3
import nodes from "infrastructure.operation" as Infrastructure
4
5
@technology(Kubernetes)
6
container ChargingStationManagementCommandContainer
7
deployment technology Kubernetes::_deployment.Kubernetes
8
with operation environment "openjdk:11-jdk-slim"
9
deploys Services::de.fhdo.puls.ChargingStationManagementCommand
10
depends on nodes
11
Infrastructure::IDM, Infrastructure::MessageBroker,
12
Infrastructure::MongoDB, Infrastructure::ServiceDiscovery
13
{
14
default values {
15
port=8071
16
...
17
}
18
}
Y Operation
Listing 5: Excerpt of the command side microservice’s operation
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
Investigation of RQ 1: Modeling Languages
• Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42]
1
import technology from "Kubernetes.technology" as Kubernetes
2
import microservices from "micro.services" as Services
3
import nodes from "infrastructure.operation" as Infrastructure
4
5
@technology(Kubernetes)
6
container ChargingStationManagementCommandContainer
7
deployment technology Kubernetes::_deployment.Kubernetes
8
with operation environment "openjdk:11-jdk-slim"
9
deploys Services::de.fhdo.puls.ChargingStationManagementCommand
10
depends on nodes
11
Infrastructure::IDM, Infrastructure::MessageBroker,
12
Infrastructure::MongoDB, Infrastructure::ServiceDiscovery
13
{
14
default values {
15
port=8071
16
...
17
}
18
}
Y Operation
Listing 5: Excerpt of the command side microservice’s operation
model
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
Investigation of RQ 1: Modeling Languages
• Results concerning the languages’ applicability
• Higher effectiveness than UML-based modeling for MSA [46] (preliminary results)
• Top-down construction of new and reconstruction of existing microservice
architectures from heterogeneous domains, and with differing architecture patterns
and communication paradigms is possible [42, 38]
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 23
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 24
Investigation of RQ 2: Model Processing
RQ 2: Model Processing
How can models, which were constructed with the modeling languages (cf. RQ 1), be
used besides architecture documentation?
• Research approach:
1. Selection of initial, supportive model processing purposes for MSA
engineering: Code generation, quality assessment through static model analysis
2. Design and implementation of a model processing framework that allows model
processor implementation for identified purposes and through technical MSA
stakeholders without an MDE background
3. Validate framework applicability w.r.t. our modeling languages for code
generation taking MSA’s technology heterogeneity and distributed microservice
development into account
4. Validate framework applicability w.r.t. our modeling languages for static model
analysis based on MSA-related quality metrics suites [20, 2, 19, 13]
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 25
Investigation of RQ 2: Model Processing
• Applying the framework for code generation: Available generators and plugins
• Java Base Generator with plugins for CQRS, DDD, Domain Events, Spring, and
Kafka
• Net ratio between manual model code and generated boilerplate code for the Charging
Station Management Microservice’s command side (cf. Slides 19–22): 4.49 (i.e., net
generation of 804 lines of service code from 179 lines of model code)
• Docker and Kubernetes
• MariaDB and MongoDB
• Eureka
• Keycloak (WIP)
• Zuul
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 26
Investigation of RQ 2: Model Processing
• Applying the framework for quality assessment through static model analysis
• Survey of four metrics suites [20, 2, 19, 13], which are applicable to MSA
engineering [7]
• Implementation of a static model analyzer that supports 20 out of 26 metrics from
the suites
• Cohesion assessment based on, e.g., interface, message, and domain object similarity
• Complexity assessment based on, e.g., structural microservice characteristics
(capability scope, API composition, managed resources etc.), state management, and
interaction dependencies
• Size assessment based on, e.g., message size (heuristic for lower bound)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 27
A Language Ecosystem for Modeling Microservice Architecture
LEMMA
We consider the combination of our modeling languages, model processing
framework, and model processors an ecosystem for model-driven MSA engineering
and call it LEMMA (“Language Ecosystem for Modeling Microservice Architecture”).
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 28
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 29
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 30
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Overview of results from a recent study of employing LEMMA (and thus MDE) for
MSA engineering in small and medium-sized organizations (SMOs)
Figure 4: Article published in Springer Nature Computer Science (Open Access W)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 31
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Insights from a secondary analysis of interviews conducted for a previous
comparative multi-case study with five professional software architects
responsible for microservice architectures in SMOs [45]:
I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs
(and the only one to document APIs)
I.2 The configuration and maintenance of deployment and operation infrastructure is too
complex for cross-functional teams and thus in the responsibility of dedicated
operation teams, which contradicts MSA’s ownership principle [32]
I.3 Besides one case, API specifications are not collected and provided using a
centralized system but exchanged upon explicit request, e.g., via email
I.4 SMOs consider the establishment of a common architectural understanding
important but lack human and time resources to tackle this challenge in an
appropriate manner
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Insights from a secondary analysis of interviews conducted for a previous
comparative multi-case study with five professional software architects
responsible for microservice architectures in SMOs [45]:
I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs
(and the only one to document APIs)
I.2 The configuration and maintenance of deployment and operation infrastructure is too
complex for cross-functional teams and thus in the responsibility of dedicated
operation teams, which contradicts MSA’s ownership principle [32]
I.3 Besides one case, API specifications are not collected and provided using a
centralized system but exchanged upon explicit request, e.g., via email
I.4 SMOs consider the establishment of a common architectural understanding
important but lack human and time resources to tackle this challenge in an
appropriate manner
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Insights from a secondary analysis of interviews conducted for a previous
comparative multi-case study with five professional software architects
responsible for microservice architectures in SMOs [45]:
I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs
(and the only one to document APIs)
I.2 The configuration and maintenance of deployment and operation infrastructure is too
complex for cross-functional teams and thus in the responsibility of dedicated
operation teams, which contradicts MSA’s ownership principle [32]
I.3 Besides one case, API specifications are not collected and provided using a
centralized system but exchanged upon explicit request, e.g., via email
I.4 SMOs consider the establishment of a common architectural understanding
important but lack human and time resources to tackle this challenge in an
appropriate manner
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Insights from a secondary analysis of interviews conducted for a previous
comparative multi-case study with five professional software architects
responsible for microservice architectures in SMOs [45]:
I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs
(and the only one to document APIs)
I.2 The configuration and maintenance of deployment and operation infrastructure is too
complex for cross-functional teams and thus in the responsibility of dedicated
operation teams, which contradicts MSA’s ownership principle [32]
I.3 Besides one case, API specifications are not collected and provided using a
centralized system but exchanged upon explicit request, e.g., via email
I.4 SMOs consider the establishment of a common architectural understanding
important but lack human and time resources to tackle this challenge in an
appropriate manner
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Insights from a secondary analysis of interviews conducted for a previous
comparative multi-case study with five professional software architects
responsible for microservice architectures in SMOs [45]:
I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs
(and the only one to document APIs)
I.2 The configuration and maintenance of deployment and operation infrastructure is too
complex for cross-functional teams and thus in the responsibility of dedicated
operation teams, which contradicts MSA’s ownership principle [32]
I.3 Besides one case, API specifications are not collected and provided using a
centralized system but exchanged upon explicit request, e.g., via email
I.4 SMOs consider the establishment of a common architectural understanding
important but lack human and time resources to tackle this challenge in an
appropriate manner
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs
based on the aforementioned insights:
• Teams derive LEMMA domain and service models from OpenAPI specifications via
an automated model transformation (I.1)
• Teams accompany the derived models with operation models in the harmonizing
syntax of LEMMA’s Operation Modeling Language, and generate
technology-specific deployment and operation configurations from the models (I.2)
• All team-specific models are collected centrally and model processors gather
information to foster a common architectural understanding (e.g., visualizations of
service APIs or dependencies; I.3 and I.4)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs
based on the aforementioned insights:
• Teams derive LEMMA domain and service models from OpenAPI specifications via
an automated model transformation (I.1)
• Teams accompany the derived models with operation models in the harmonizing
syntax of LEMMA’s Operation Modeling Language, and generate
technology-specific deployment and operation configurations from the models (I.2)
• All team-specific models are collected centrally and model processors gather
information to foster a common architectural understanding (e.g., visualizations of
service APIs or dependencies; I.3 and I.4)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs
based on the aforementioned insights:
• Teams derive LEMMA domain and service models from OpenAPI specifications via
an automated model transformation (I.1)
• Teams accompany the derived models with operation models in the harmonizing
syntax of LEMMA’s Operation Modeling Language, and generate
technology-specific deployment and operation configurations from the models (I.2)
• All team-specific models are collected centrally and model processors gather
information to foster a common architectural understanding (e.g., visualizations of
service APIs or dependencies; I.3 and I.4)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs
based on the aforementioned insights:
• Teams derive LEMMA domain and service models from OpenAPI specifications via
an automated model transformation (I.1)
• Teams accompany the derived models with operation models in the harmonizing
syntax of LEMMA’s Operation Modeling Language, and generate
technology-specific deployment and operation configurations from the models (I.2)
• All team-specific models are collected centrally and model processors gather
information to foster a common architectural understanding (e.g., visualizations of
service APIs or dependencies; I.3 and I.4)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
Applying LEMMA to Stimulate DevOps Adoption by SMOs
• Validation of the workflow and its implementation for a complete case study
architecture
• Future Work: Perform an in-depth evaluation with more case studies from SMOs
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 34
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 35
Applying LEMMA for Microservice Architecture Reconstruction
• Since MSA fosters team independence, microservice architectures are particularly
exposed to deviate from an anticipated architecture design over time [1]
⇒ Studying the application of (semi-) automated approaches to Software Architecture
Reconstruction (SAR) [4] is sensible in the context of MSA [11]
• LEMMA’s modeling languages seem expressive enough to reconstruct significant
structural information about microservice architectures [38]
• One of our current works aims to automate LEMMA-based SAR using static
analysis of microservice artifacts (API specifications, source code etc.)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 36
Applying LEMMA for Microservice Architecture Reconstruction
• Future Work: Extend LEMMA with constructs/languages to express dynamic
information about microservice architectures (e.g., service-level behavior
specification [16] or architecture-level process specification)
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 37
Table of Contents
Introduction
Model-Driven Engineering
Research Statement
Investigation of Research Question 1
Investigation of Research Question 2
Selected Ongoing and Future Work
Stimulate DevOps Adoption by Small and Medium-Sized Organizations
Model-Based Microservice Architecture Reconstruction
Quality-Driven Microservice Architecture Engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 38
Applying LEMMA for Quality-Driven MSA Engineering
• LEMMA’s static analyzer currently supports the assessment of
service/architecture cohesion, complexity, and size based on different metrics
• While cohesion, complexity, and size target the Maintainability quality
attribute [21], we believe the static analysis of LEMMA models to also contribute in
the assessment of Portability and Compatibility
• In addition, LEMMA’s integration with existing model-based approaches for
performance analysis [12, 5] could be sensible to assess the Performance
Efficiency of services/architectures
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 39
Applying LEMMA for Quality-Driven MSA Engineering
• Future Work:
• Extend LEMMA’s static analyzer with support for further metrics of other quality
attributes than Maintainability
• Provide LEMMA users with IDE support to assess quality at the time of model
construction
• Combine with code generation to retrieve a “quality-by-construction” approach for
MSA engineering
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 40
Resources
• Publications with further details about LEMMA:
• Initial motivation and language design: [41, 39]
• Using LEMMA in the domain-driven design of microservice architectures: [40]
• Methodology for LEMMA-based SAR of microservice architectures: [38]
• Complete list of publications: DBLP W
• LEMMA source code: ‡ GitHub W
• LEMMA documentation (WIP): https://seelabfhdo.github.io/lemma-docs W
• Model Processor Example: ‡ GitHub W
• Static Analyzer: ‡ Library W, ‡ Executable W
• florian.rademacher@fh-dortmund.de
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 41
Overview of Related Work
• Since LEMMA’s inception, several studies and solution proposals that also
investigate the adoption of MDE/architecture modeling in MSA engineering were
published:
• Domain Modeling: [25, 24, 23]
• Service Modeling: [18, 49, 23]
• Model-Based Architecture Reconstruction: [17, 1]
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 42
Literature
[1] Nuha Alshuqayran, Nour Ali, and Roger Evans. “Towards Micro Service
Architecture Recovery: An Empirical Study.” In:
2018 IEEE International Conference on Software Architecture (ICSA). IEEE,
2018, pp. 47–56.
[2] Dionysis Athanasopoulos et al. “Cohesion-Driven Decomposition of Service
Interfaces without Access to Source Code.” In:
IEEE Transactions on Services Computing 8.4 (2015). IEEE, pp. 550–562.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 43
Literature
[3] Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. “Migrating to
Cloud-Native Architectures Using Microservices: An Experience Report. kry.” In:
Advances in Service-Oriented and Cloud Computing. Ed. by Antonio Celesti and
Philipp Leitner. Cham: Springer, 2016, pp. 201–215.
[4] Len Bass, Paul Clements, and Rick Kazman. Software Architecture in Practice.
Third. Addison-Wesley, 2013.
[5] Steffen Becker, Heiko Koziolek, and Ralf Reussner. “The Palladio component
model for model-driven performance prediction.” In:
Journal of Systems and Software 82.1 (2009). Elsevier, pp. 3–22.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 44
Literature
[6] Gorka Benguria et al. “A Platform Independent Model for Service Oriented
Architectures.” In: Enterprise Interoperability. Ed. by Guy Doumeingts et al.
London: Springer, 2007, pp. 23–32.
[7] Justus Bogner. “On the evolvability assurance of microservices: metrics,
scenarios, and patterns.” PhD thesis. University of Stuttgart, 2020.
[8] Justus Bogner et al. “Microservices in Industry: Insights into Technologies,
Characteristics, and Software Quality.” In:
2019 IEEE International Conference on Software Architecture Companion (ICSA-C).
IEEE, Mar. 2019, pp. 187–195.
[9] Marco Brambilla, Jordi Cabot, and Manuel Wimmer.
Model-Driven Software Engineering in Practice. First. Morgan & Claypool, 2012.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 45
Literature
[10] Benoit Combemale et al.
Engineering Modeling Languages: Turning Domain Knowledge into Tools. First.
CRC Press, 2017.
[11] Paolo Di Francesco, Ivano Malavolta, and Patricia Lago. “Research on
Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption.”
In: 2017 IEEE International Conference on Software Architecture (ICSA). IEEE,
Apr. 2017, pp. 21–30.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 46
Literature
[12] Thomas F. Düllmann and André 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 Engine
ICPE ’17 Companion. L’Aquila, Italy: ACM, 2017, pp. 171–172.
[13] Thomas Engel et al. “Evaluation of Microservice Architectures: A Metric and
Tool-Based Approach.” In: Information Systems in the Big Data Era. Ed. by
Jan Mendling and Haralambos Mouratidis. Cham: Springer, 2018, pp. 74–89.
[14] Eric Evans. Domain-Driven Design. First. Addison-Wesley, 2004.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 47
Literature
[15] Martin Garriga. “Towards a Taxonomy of Microservices Architectures.” In:
Software Engineering and Formal Methods. Ed. by Antonio Cerone and
Marco Roveri. Cham: Springer, 2018, pp. 203–218.
[16] Saverio Giallorenzo et al. “Jolie and LEMMA: Model-Driven Engineering and
Programming Languages Meet on Microservices.” In:
Coordination Models and Languages. Ed. by Ferruccio Damiani and
Ornela Dardha. Cham: Springer, 2021, pp. 276–284.
[17] Giona Granchelli et al. “Towards Recovering the Software Architecture of
Microservice-Based Systems.” In:
2017 IEEE International Conference on Software Architecture Workshops (ICSAW).
IEEE, 2017, pp. 46–53.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 48
Literature
[18] Sara Hassan, Nour Ali, and Rami Bahsoon. “Microservice Ambients: An
Architectural Meta-Modelling Approach for Microservice Granularity.” In:
2017 IEEE International Conference on Software Architecture (ICSA). IEEE,
2017, pp. 1–10.
[19] Florian Haupt et al. “A Framework for the Structural Analysis of REST APIs.” In:
2017 IEEE International Conference on Software Architecture (ICSA). Springer,
2017, pp. 55–58.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 49
Literature
[20] Mamoun Hirzalla, Jane Cleland-Huang, and Ali Arsanjani. “A Metrics Suite for
Evaluating Flexibility and Complexity in Service Oriented Architectures.” In:
Service-Oriented Computing – ICSOC 2008 Workshops. Ed. by
George Feuerlicht and Winfried Lamersdorf. Berlin, Heidelberg: Springer, 2009,
pp. 41–52.
[21] ISO/IEC.
Systems and software engineering — Systems and software Quality Requirements and
Standard ISO/IEC 25010:2011(E). International Organization for
Standardization/International Electrotechnical Commission, 2011.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 50
Literature
[22] ISO/IEC/IEEE. Systems and software engineering — Architecture description.
Standard ISO/IEC/IEEE 42010:2011(E). International Organization for
Standardization/International Electrotechnical Commission/Institute of Electrical
and Electronics Engineers, 2011.
[23] JHipster Domain Language (JDL). URL: https://www.jhipster.tech/jdl.
[24] Stefan Kapferer and Olaf Zimmermann. “Domain-Driven Service Design.” In:
Service-Oriented Computing. Ed. by Schahram Dustdar. Cham: Springer, 2020,
pp. 189–208.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 51
Literature
[25] 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 Soft
INSTICC. SciTePress, 2020, pp. 299–306.
[26] Steven Kelly and Juha-Pekka Tolvanen.
Domain-specific modeling: Enabling Full Code Generation. First. Wiley, 2008.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 52
Literature
[27] Welder Pinheiro Luz, Gustavo Pinto, and Rodrigo Bonifácio. “Building a
Collaborative
Culture: A Grounded Theory of Well Succeeded DevOps Adoption in Practice.” In:
Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software En
ESEM ’18. Oulu, Finland: ACM, 2018, 6:1–6:10.
[28] Gastón Márquez, Mónica M. Villegas, and Hernán Astudillo. “A Pattern
Language for Scalable Microservices-based Systems.” In:
Proceedings of the 12th European Conference on Software Architecture: Companion P
ECSA ’18. Madrid, Spain: ACM, 2018, 24:1–24:7.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 53
Literature
[29] Genc Mazlami, Jürgen Cito, and Philipp Leitner. “Extraction of Microservices
from Monolithic Software Architectures.” In:
2017 IEEE International Conference on Web Services (ICWS). IEEE, June
2017, pp. 524–531.
[30] Methodologies Corporation.
Service-oriented modeling framework (SOMF) Version 2.1. 2011.
[31] Irakli Nadareishvili et al.
Microservice Architecture: Aligning Principles, Practices, and Culture. First.
O’Reilly, 2016.
[32] Sam Newman. Building Microservices: Designing Fine-Grained Systems. First.
O’Reilly, 2015.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 54
Literature
[33] OASIS.
Reference Architecture Foundation for Service Oriented Architecture Version 1.0.
Standard OASIS Committee Specification 01. Organization for the Advancement
of Structured Information Standards, 2012.
[34] OASIS.
Topology and Orchestration Specification for Cloud Applications Version 1.0.
Standard. Organization for the Advancement of Structured Information
Standards, 2013.
[35] OMG. OMG Unified Modeling Language (OMG UML) Version 2.5.1. Standard
formal/17-12-05. Object Management Group, 2017.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 55
Literature
[36] OMG.
Service oriented architecture Modeling Language (SoaML) Specification Version 1.0.1.
Standard. Object Management Group, 2012.
[37] Florian Rademacher. “An Overview of Modeling Concepts for Service-Based
Software Architectures.” In: Software Engineering Publications. Kasseler Online
Bibliothek, Repository und Archiv (KOBRA), 2020.
[38] Florian Rademacher, Sabine Sachweh, and Albert Zündorf. “A Modeling Method
for Systematic Architecture Reconstruction of Microservice-Based Software
Systems.” In: Enterprise, Business-Process and Information Systems Modeling.
Ed. by Selmin Nurcan et al. Springer, 2020, pp. 311–326.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 56
Literature
[39] Florian Rademacher, Sabine Sachweh, and Albert Zündorf. “Aspect-Oriented
Modeling of Technology Heterogeneity in Microservice Architecture.” In:
2019 IEEE International Conference on Software Architecture (ICSA). IEEE,
2019, pp. 21–30.
[40] 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 Conference on Software Engineering and Advanced Applications
IEEE, 2020, pp. 229–236.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 57
Literature
[41] Florian Rademacher et al. “Graphical and Textual Model-Driven Microservice
Development.” In: Microservices: Science and Engineering. Ed. by
Antonio Bucchiarone et al. Springer, 2020, pp. 147–179.
[42] Florian Rademacher
et al. “Towards Holistic Modeling of Microservice Architectures Using LEMMA.” In:
Companion Proceedings of the 15th European Conference on Software Architecture 20
CEUR-WS, 2021, pp. 1–10.
[43] Mohammad Imranur Rahman, Sebastiano Panichella, and Davide Taibi. “A
Curated Dataset of Microservices-Based Systems.” In:
Joint Proceedings of the Inforte Summer School on Software Maintenance and Evolutio
CEUR-WS, 2019, pp. 1–9.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 58
Literature
[44] Jacopo Soldani, Damian Andrew Tamburri, and Willem-Jan Van Den Heuvel.
“The pains and gains of microservices: A Systematic grey literature review.” In:
Journal of Systems and Software 146 (2018). Elsevier, pp. 215–232.
[45] Jonas Sorgalla, Sabine Sachweh, and Albert Zündorf. “Exploring the
Microservice Development Process in Small and Medium-Sized Organizations.”
In: Product-Focused Software Process Improvement. Ed. by Maurizio Morisio,
Marco Torchiano, and Andreas Jedlitschka. Cham: Springer, 2020, pp. 453–460.
[46] Jonas Sorgalla et al. “Model-driven Development of Microservice Architecture:
An Experiment on the Quality in Use of a UML- and a DSL-based Approach.” In:
Software Engineering Publications. Kasseler Online Bibliothek, Repository und
Archiv (KOBRA), 2020.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 59
Literature
[47] Dave Steinberg et al. EMF: Eclipse Modeling Framework. Second.
Addison-Wesley, 2008.
[48] Davide Taibi and Valentina Lenarduzzi. “On the Definition of Microservice Bad
Smells.” In: IEEE Software 35.3 (May 2018). IEEE, pp. 56–62.
[49] Branko Terzić et al. “Development and evaluation of MicroBuilder: a
Model-Driven tool for the specification of REST Microservice Software
Architectures.” In: Enterprise Information Systems 12.8-9 (2018). Taylor &
Francis, pp. 1034–1057. eprint:
https://doi.org/10.1080/17517575.2018.1460766.
[50] The Open Group. SOA Reference Architecture. C119. 2011.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 60
Literature
[51] Jon Whittle, John Hutchinson, and Mark Rouncefield. “The State of Practice in
Model-Driven Engineering.” In: IEEE Software 31.3 (May 2014). IEEE,
pp. 79–85.
Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 61

More Related Content

What's hot

L06 Architecting Activities
L06 Architecting ActivitiesL06 Architecting Activities
L06 Architecting ActivitiesHenry Muccini
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Editor IJCATR
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...University of l'aquila
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionHenry Muccini
 
The Concurrency Challenge : Notes
The Concurrency Challenge : NotesThe Concurrency Challenge : Notes
The Concurrency Challenge : NotesSubhajit Sahu
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?Henry Muccini
 
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...Gonçalo Cruz Matos
 
The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsHenry Muccini
 
Software Architecture: Trends
Software Architecture: TrendsSoftware Architecture: Trends
Software Architecture: TrendsHenry Muccini
 
Ontological approach to the specification of properties of software systems a...
Ontological approach to the specification of properties of software systems a...Ontological approach to the specification of properties of software systems a...
Ontological approach to the specification of properties of software systems a...Patricia Tavares Boralli
 
Software Architecture - Business software taxonomies
Software Architecture - Business software taxonomiesSoftware Architecture - Business software taxonomies
Software Architecture - Business software taxonomiesJose Emilio Labra Gayo
 
Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Henry Muccini
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSacijjournal
 
Software Architecture Views and Viewpoints
Software Architecture Views and ViewpointsSoftware Architecture Views and Viewpoints
Software Architecture Views and ViewpointsHenry Muccini
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
Associate Professor David Levy (DCL)
Associate Professor David Levy (DCL)Associate Professor David Levy (DCL)
Associate Professor David Levy (DCL)butest
 

What's hot (19)

Adm Workshop Program
Adm Workshop ProgramAdm Workshop Program
Adm Workshop Program
 
L06 Architecting Activities
L06 Architecting ActivitiesL06 Architecting Activities
L06 Architecting Activities
 
Articulo acm
Articulo acmArticulo acm
Articulo acm
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...
 
01_Program
01_Program01_Program
01_Program
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the Abstraction
 
The Concurrency Challenge : Notes
The Concurrency Challenge : NotesThe Concurrency Challenge : Notes
The Concurrency Challenge : Notes
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?
 
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
 
The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture Descriptions
 
Software Architecture: Trends
Software Architecture: TrendsSoftware Architecture: Trends
Software Architecture: Trends
 
Ontological approach to the specification of properties of software systems a...
Ontological approach to the specification of properties of software systems a...Ontological approach to the specification of properties of software systems a...
Ontological approach to the specification of properties of software systems a...
 
Software Architecture - Business software taxonomies
Software Architecture - Business software taxonomiesSoftware Architecture - Business software taxonomies
Software Architecture - Business software taxonomies
 
Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
 
Software Architecture Views and Viewpoints
Software Architecture Views and ViewpointsSoftware Architecture Views and Viewpoints
Software Architecture Views and Viewpoints
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
Associate Professor David Levy (DCL)
Associate Professor David Levy (DCL)Associate Professor David Levy (DCL)
Associate Professor David Levy (DCL)
 

Similar to Taming Complexity: On Studying the Application of Model-Driven Engineering to the Design, Development, and Operation of Microservice Architectures

OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Architectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleArchitectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleDaljit Banger
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systemsMarco Brambilla
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckUtrecht University
 
Introduction to Model-Based Systems Engineering (MBSE) Course
Introduction to Model-Based Systems Engineering (MBSE) CourseIntroduction to Model-Based Systems Engineering (MBSE) Course
Introduction to Model-Based Systems Engineering (MBSE) CourseTonex
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
CSE320 SOFTWARE ENGINEERING Lecture01 (1).ppt
CSE320  SOFTWARE ENGINEERING Lecture01 (1).pptCSE320  SOFTWARE ENGINEERING Lecture01 (1).ppt
CSE320 SOFTWARE ENGINEERING Lecture01 (1).pptDHIRENDRAHUDDA
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture DesignGESSI UPC
 
Software design for scientific applications
Software design for scientific applicationsSoftware design for scientific applications
Software design for scientific applicationsPriyanka Lal
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 

Similar to Taming Complexity: On Studying the Application of Model-Driven Engineering to the Design, Development, and Operation of Microservice Architectures (20)

OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Architectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleArchitectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project Lifecycle
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systems
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
 
Introduction to Model-Based Systems Engineering (MBSE) Course
Introduction to Model-Based Systems Engineering (MBSE) CourseIntroduction to Model-Based Systems Engineering (MBSE) Course
Introduction to Model-Based Systems Engineering (MBSE) Course
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
CSE320 SOFTWARE ENGINEERING Lecture01 (1).ppt
CSE320  SOFTWARE ENGINEERING Lecture01 (1).pptCSE320  SOFTWARE ENGINEERING Lecture01 (1).ppt
CSE320 SOFTWARE ENGINEERING Lecture01 (1).ppt
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
 
Software design for scientific applications
Software design for scientific applicationsSoftware design for scientific applications
Software design for scientific applications
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 

Recently uploaded

Plasmapheresis - Dr. E. Muralinath - Kalyan . C.pptx
Plasmapheresis - Dr. E. Muralinath - Kalyan . C.pptxPlasmapheresis - Dr. E. Muralinath - Kalyan . C.pptx
Plasmapheresis - Dr. E. Muralinath - Kalyan . C.pptxmuralinath2
 
Plasma proteins_ Dr.Muralinath_Dr.c. kalyan
Plasma proteins_ Dr.Muralinath_Dr.c. kalyanPlasma proteins_ Dr.Muralinath_Dr.c. kalyan
Plasma proteins_ Dr.Muralinath_Dr.c. kalyanmuralinath2
 
B lymphocytes, Receptors, Maturation and Activation
B lymphocytes, Receptors, Maturation and ActivationB lymphocytes, Receptors, Maturation and Activation
B lymphocytes, Receptors, Maturation and ActivationBhanu Krishan
 
The importance of continents, oceans and plate tectonics for the evolution of...
The importance of continents, oceans and plate tectonics for the evolution of...The importance of continents, oceans and plate tectonics for the evolution of...
The importance of continents, oceans and plate tectonics for the evolution of...Sérgio Sacani
 
SCHISTOSOMA HEAMATOBIUM life cycle .pdf
SCHISTOSOMA HEAMATOBIUM life cycle  .pdfSCHISTOSOMA HEAMATOBIUM life cycle  .pdf
SCHISTOSOMA HEAMATOBIUM life cycle .pdfDebdattaGhosh6
 
Tuberculosis (TB)-Notes.pdf microbiology notes
Tuberculosis (TB)-Notes.pdf microbiology notesTuberculosis (TB)-Notes.pdf microbiology notes
Tuberculosis (TB)-Notes.pdf microbiology notesjyothisaisri
 
GBSN - Microbiology Lab 2 (Compound Microscope)
GBSN - Microbiology Lab 2 (Compound Microscope)GBSN - Microbiology Lab 2 (Compound Microscope)
GBSN - Microbiology Lab 2 (Compound Microscope)Areesha Ahmad
 
Microbial bio Synthesis of nanoparticles.pptx
Microbial bio Synthesis of nanoparticles.pptxMicrobial bio Synthesis of nanoparticles.pptx
Microbial bio Synthesis of nanoparticles.pptxCherry
 
Continuum emission from within the plunging region of black hole discs
Continuum emission from within the plunging region of black hole discsContinuum emission from within the plunging region of black hole discs
Continuum emission from within the plunging region of black hole discsSérgio Sacani
 
Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...
Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...
Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...Sérgio Sacani
 
Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243
Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243
Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243Sérgio Sacani
 
GBSN - Microbiology Lab 1 (Microbiology Lab Safety Procedures)
GBSN -  Microbiology Lab  1 (Microbiology Lab Safety Procedures)GBSN -  Microbiology Lab  1 (Microbiology Lab Safety Procedures)
GBSN - Microbiology Lab 1 (Microbiology Lab Safety Procedures)Areesha Ahmad
 
INSIGHT Partner Profile: Tampere University
INSIGHT Partner Profile: Tampere UniversityINSIGHT Partner Profile: Tampere University
INSIGHT Partner Profile: Tampere UniversitySteffi Friedrichs
 
GBSN - Biochemistry (Unit 4) Chemistry of Carbohydrates
GBSN - Biochemistry (Unit 4) Chemistry of CarbohydratesGBSN - Biochemistry (Unit 4) Chemistry of Carbohydrates
GBSN - Biochemistry (Unit 4) Chemistry of CarbohydratesAreesha Ahmad
 
MODERN PHYSICS_REPORTING_QUANTA_.....pdf
MODERN PHYSICS_REPORTING_QUANTA_.....pdfMODERN PHYSICS_REPORTING_QUANTA_.....pdf
MODERN PHYSICS_REPORTING_QUANTA_.....pdfRevenJadePalma
 
Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...
Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...
Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...Sérgio Sacani
 
National Biodiversity protection initiatives and Convention on Biological Di...
National Biodiversity protection initiatives and  Convention on Biological Di...National Biodiversity protection initiatives and  Convention on Biological Di...
National Biodiversity protection initiatives and Convention on Biological Di...PABOLU TEJASREE
 
ERTHROPOIESIS: Dr. E. Muralinath & R. Gnana Lahari
ERTHROPOIESIS: Dr. E. Muralinath & R. Gnana LahariERTHROPOIESIS: Dr. E. Muralinath & R. Gnana Lahari
ERTHROPOIESIS: Dr. E. Muralinath & R. Gnana Laharimuralinath2
 
The solar dynamo begins near the surface
The solar dynamo begins near the surfaceThe solar dynamo begins near the surface
The solar dynamo begins near the surfaceSérgio Sacani
 
Cell Immobilization Methods and Applications.pptx
Cell Immobilization Methods and Applications.pptxCell Immobilization Methods and Applications.pptx
Cell Immobilization Methods and Applications.pptxCherry
 

Recently uploaded (20)

Plasmapheresis - Dr. E. Muralinath - Kalyan . C.pptx
Plasmapheresis - Dr. E. Muralinath - Kalyan . C.pptxPlasmapheresis - Dr. E. Muralinath - Kalyan . C.pptx
Plasmapheresis - Dr. E. Muralinath - Kalyan . C.pptx
 
Plasma proteins_ Dr.Muralinath_Dr.c. kalyan
Plasma proteins_ Dr.Muralinath_Dr.c. kalyanPlasma proteins_ Dr.Muralinath_Dr.c. kalyan
Plasma proteins_ Dr.Muralinath_Dr.c. kalyan
 
B lymphocytes, Receptors, Maturation and Activation
B lymphocytes, Receptors, Maturation and ActivationB lymphocytes, Receptors, Maturation and Activation
B lymphocytes, Receptors, Maturation and Activation
 
The importance of continents, oceans and plate tectonics for the evolution of...
The importance of continents, oceans and plate tectonics for the evolution of...The importance of continents, oceans and plate tectonics for the evolution of...
The importance of continents, oceans and plate tectonics for the evolution of...
 
SCHISTOSOMA HEAMATOBIUM life cycle .pdf
SCHISTOSOMA HEAMATOBIUM life cycle  .pdfSCHISTOSOMA HEAMATOBIUM life cycle  .pdf
SCHISTOSOMA HEAMATOBIUM life cycle .pdf
 
Tuberculosis (TB)-Notes.pdf microbiology notes
Tuberculosis (TB)-Notes.pdf microbiology notesTuberculosis (TB)-Notes.pdf microbiology notes
Tuberculosis (TB)-Notes.pdf microbiology notes
 
GBSN - Microbiology Lab 2 (Compound Microscope)
GBSN - Microbiology Lab 2 (Compound Microscope)GBSN - Microbiology Lab 2 (Compound Microscope)
GBSN - Microbiology Lab 2 (Compound Microscope)
 
Microbial bio Synthesis of nanoparticles.pptx
Microbial bio Synthesis of nanoparticles.pptxMicrobial bio Synthesis of nanoparticles.pptx
Microbial bio Synthesis of nanoparticles.pptx
 
Continuum emission from within the plunging region of black hole discs
Continuum emission from within the plunging region of black hole discsContinuum emission from within the plunging region of black hole discs
Continuum emission from within the plunging region of black hole discs
 
Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...
Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...
Extensive Pollution of Uranus and Neptune’s Atmospheres by Upsweep of Icy Mat...
 
Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243
Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243
Constraints on Neutrino Natal Kicks from Black-Hole Binary VFTS 243
 
GBSN - Microbiology Lab 1 (Microbiology Lab Safety Procedures)
GBSN -  Microbiology Lab  1 (Microbiology Lab Safety Procedures)GBSN -  Microbiology Lab  1 (Microbiology Lab Safety Procedures)
GBSN - Microbiology Lab 1 (Microbiology Lab Safety Procedures)
 
INSIGHT Partner Profile: Tampere University
INSIGHT Partner Profile: Tampere UniversityINSIGHT Partner Profile: Tampere University
INSIGHT Partner Profile: Tampere University
 
GBSN - Biochemistry (Unit 4) Chemistry of Carbohydrates
GBSN - Biochemistry (Unit 4) Chemistry of CarbohydratesGBSN - Biochemistry (Unit 4) Chemistry of Carbohydrates
GBSN - Biochemistry (Unit 4) Chemistry of Carbohydrates
 
MODERN PHYSICS_REPORTING_QUANTA_.....pdf
MODERN PHYSICS_REPORTING_QUANTA_.....pdfMODERN PHYSICS_REPORTING_QUANTA_.....pdf
MODERN PHYSICS_REPORTING_QUANTA_.....pdf
 
Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...
Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...
Gliese 12 b, a temperate Earth-sized planet at 12 parsecs discovered with TES...
 
National Biodiversity protection initiatives and Convention on Biological Di...
National Biodiversity protection initiatives and  Convention on Biological Di...National Biodiversity protection initiatives and  Convention on Biological Di...
National Biodiversity protection initiatives and Convention on Biological Di...
 
ERTHROPOIESIS: Dr. E. Muralinath & R. Gnana Lahari
ERTHROPOIESIS: Dr. E. Muralinath & R. Gnana LahariERTHROPOIESIS: Dr. E. Muralinath & R. Gnana Lahari
ERTHROPOIESIS: Dr. E. Muralinath & R. Gnana Lahari
 
The solar dynamo begins near the surface
The solar dynamo begins near the surfaceThe solar dynamo begins near the surface
The solar dynamo begins near the surface
 
Cell Immobilization Methods and Applications.pptx
Cell Immobilization Methods and Applications.pptxCell Immobilization Methods and Applications.pptx
Cell Immobilization Methods and Applications.pptx
 

Taming Complexity: On Studying the Application of Model-Driven Engineering to the Design, Development, and Operation of Microservice Architectures

  • 1. Taming Complexity: On Studying the Application of Model-Driven Engineering to the Design, Development, and Operation of Microservice Architectures Webinar of the Microservice Community’s Research Group Florian Rademacher florian.rademacher@fh-dortmund.de October 20, 2021 IDiAL Institute, University of Applied Sciences and Arts Dortmund
  • 2. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering
  • 3. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 1
  • 4. whoami • Florian Rademacher • PhD Student in Computer Science @ University of Kassel, and University of Applied Sciences and Arts Dortmund (FH Dortmund) • Research Associate @ IDiAL Institute of FH Dortmund • Research Interests • Distributed software architectures • Model-Driven Engineering (MDE) • Software Language Engineering • PhD Thesis: “A Language Ecosystem for Modeling Microservice Architecture” (submitted) • Member of the Microservice Community’s Communication Group • florian.rademacher@fh-dortmund.de • frademacher@microservices.community • MC Discord Server W, MC Mailing List W, 7/c_microservices Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 2
  • 5. whoami • Florian Rademacher • PhD Student in Computer Science @ University of Kassel, and University of Applied Sciences and Arts Dortmund (FH Dortmund) • Research Associate @ IDiAL Institute of FH Dortmund • Research Interests • Distributed software architectures • Model-Driven Engineering (MDE) • Software Language Engineering • PhD Thesis: “A Language Ecosystem for Modeling Microservice Architecture” (submitted) • Member of the Microservice Community’s Communication Group • florian.rademacher@fh-dortmund.de • frademacher@microservices.community • MC Discord Server W, MC Mailing List W, 7/c_microservices Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 2
  • 6. Our Research Group • Smart Environments Engineering Laboratory (SEELAB) @ IDiAL Institute • ~15 research associates (six PhD students) and scientific software developers • Led by Prof. Dr. Sabine Sachweh • Applied research projects in areas like. . . . . . e-Health . . . Internet of Things . . . Smart City . . . Smart Manufacturing • Research focus on topics like. . . . . . Adaptive User Interfaces . . . Artificial Intelligence . . . MDE . . . Software Architecture Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 3
  • 7. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 4
  • 8. Model-Driven Engineering (MDE) • Software Engineering paradigm that uses models throughout all or selected phases of the Software Engineering process [10] • In MDE, a model is usually a Software Engineering artifact that. . . . . . abstracts from selected properties of an anticipated or existing software system . . . can be created, maintained, and understood by humans . . . is (semi-) automatically processible by computer programs • Common Goal of MDE: Elevating models’ purposes from documentation artifacts to first-class citizens in the Software Engineering process Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 5
  • 9. Model-Driven Engineering (MDE) • Major concepts of MDE [10] • Modeling Languages: Prescribe the set of well-defined models (syntax and semantics), and provide means to construct and maintain valid models (pragmatics) • Model Transformations: Prescribe rule sets to derive one or more target artifacts from one or more source models • Example • Modeling Language(s): UML [35] • UML-Based Model: Person - firstname : String - lastname : String Student - enrollmentNumber : String - program : Program • Model Transformation: Person - firstname : String - lastname : String Student - enrollmentNumber : String - program : Program ⇒ class Student extends Person { private String enrollmentNumber; ... } class Person { private String firstname; ... } Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 6
  • 10. Model-Driven Engineering (MDE) • Expected benefits of MDE (sample) [10, 51, 9, 26] • Complexity Reduction: Introduce supportive abstractions for selected properties of a software system, and provide means to comprehend and manage these abstractions ⇒ Allow stakeholders without technical background to actively participate in the Software Engineering process • Value Increase of Models: Introduce processing means for existing (documentation) models to integrate them with additional phases of the Software Engineering process • Quality Increase: Automatically incorporate, e.g., patterns, bugfixes, or best practices, into generated source code or analyze models for quality attribute assessment Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 7
  • 11. Model-Driven Engineering (MDE) • Expected benefits of MDE (sample) [10, 51, 9, 26] • Complexity Reduction: Introduce supportive abstractions for selected properties of a software system, and provide means to comprehend and manage these abstractions ⇒ Allow stakeholders without technical background to actively participate in the Software Engineering process • Value Increase of Models: Introduce processing means for existing (documentation) models to integrate them with additional phases of the Software Engineering process • Quality Increase: Automatically incorporate, e.g., patterns, bugfixes, or best practices, into generated source code or analyze models for quality attribute assessment Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 7
  • 12. Model-Driven Engineering (MDE) • Expected benefits of MDE (sample) [10, 51, 9, 26] • Complexity Reduction: Introduce supportive abstractions for selected properties of a software system, and provide means to comprehend and manage these abstractions ⇒ Allow stakeholders without technical background to actively participate in the Software Engineering process • Value Increase of Models: Introduce processing means for existing (documentation) models to integrate them with additional phases of the Software Engineering process • Quality Increase: Automatically incorporate, e.g., patterns, bugfixes, or best practices, into generated source code or analyze models for quality attribute assessment Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 7
  • 13. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 8
  • 14. Research Statement: Motivation • Microservice Architecture (MSA) engineering is inherently complex along different dimensions [44] • Typical Design Challenges • “Correct” service identification and granularity determination • Design techniques like Domain-Driven Design (DDD) [14] are frequently used in MSA engineering [29, 15, 28] but also appear too complex and/or not rigorous enough to practitioners [8] • Typical Implementation Challenges • Increased risk for technical debt, additional maintainability cost, and steeper learning curves due to technology heterogeneity [48] • Technology management is more complex given an increased set of potential technology variation points [39] Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 9
  • 15. Research Statement: Motivation • Microservice Architecture (MSA) engineering is inherently complex along different dimensions [44] • Typical Design Challenges • “Correct” service identification and granularity determination • Design techniques like Domain-Driven Design (DDD) [14] are frequently used in MSA engineering [29, 15, 28] but also appear too complex and/or not rigorous enough to practitioners [8] • Typical Implementation Challenges • Increased risk for technical debt, additional maintainability cost, and steeper learning curves due to technology heterogeneity [48] • Technology management is more complex given an increased set of potential technology variation points [39] Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 9
  • 16. Research Statement: Motivation • Microservice Architecture (MSA) engineering is inherently complex along different dimensions [44] • Typical Design Challenges • “Correct” service identification and granularity determination • Design techniques like Domain-Driven Design (DDD) [14] are frequently used in MSA engineering [29, 15, 28] but also appear too complex and/or not rigorous enough to practitioners [8] • Typical Implementation Challenges • Increased risk for technical debt, additional maintainability cost, and steeper learning curves due to technology heterogeneity [48] • Technology management is more complex given an increased set of potential technology variation points [39] Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 9
  • 17. Research Statement: Motivation • Microservice Architecture (MSA) engineering is inherently complex along different dimensions [44] • Typical Operation Challenge • Necessity of additional infrastructure components, e.g., container orchestration platforms, service discoveries, and API gateways, that often leverage diverse technologies with their own configuration requirements and profiles, and lifecycles [3, 44] • Typical Organizational Challenge • MSA fosters DevOps and a collaborative team culture [31, 27], which both assume automation and efficient knowledge sharing Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 10
  • 18. Research Statement: Motivation • Microservice Architecture (MSA) engineering is inherently complex along different dimensions [44] • Typical Operation Challenge • Necessity of additional infrastructure components, e.g., container orchestration platforms, service discoveries, and API gateways, that often leverage diverse technologies with their own configuration requirements and profiles, and lifecycles [3, 44] • Typical Organizational Challenge • MSA fosters DevOps and a collaborative team culture [31, 27], which both assume automation and efficient knowledge sharing Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 10
  • 19. Research Statement Research Statement To investigate the applicability of MDE means in the design, implementation, and operation of microservice architectures to effectively cope with the inherent complexity of MSA engineering. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 11
  • 20. Research Statement: Research Questions (RQs) RQ 1: Modeling Languages How do modeling languages for the application of MDE to MSA engineering need to be constituted? • Guide stakeholders in MSA design activities • Allow the management and selective application of heterogeneous technology information • Harmonize infrastructure configuration • Foster efficient knowledge sharing within and across MSA teams Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 12
  • 21. Research Statement: Research Questions (RQs) RQ 2: Model Processing How can models, which were constructed with the modeling languages (cf. RQ 1), be used besides architecture documentation? • Foster automation within and across MSA teams, e.g., via the generation of boilerplate code and consistent API specifications • Allow metrics-based quality assessment • Allow technical MSA stakeholders, e.g., service developers, without an MDE background to implement custom model processors Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 13
  • 22. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 14
  • 23. Investigation of RQ 1: Modeling Languages RQ 1: Modeling Languages How do modeling languages for the application of MDE to MSA engineering need to be constituted? • Research approach: 1. Modeling concept identification through a survey of conceptual frameworks for the engineering of Service-Based Software Architectures [6, 30, 50, 33, 36, 34] (results: [37]) 2. Concept refinement through an analysis of seven non-trivial open source microservice architectures [28, 43] 3. Concept clustering based on the concerns [4] and viewpoints [22] of stakeholders in MSA engineering (results: [39, 41]) 4. Languages’ implementation using the Eclipse Modeling Framework [47] 5. Languages’ validation and empirical assessment of quality in use (results: [42], [46] (preliminary)) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 15
  • 24. Investigation of RQ 1: Modeling Languages Figure 1: Modeling languages and their supported model kinds Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 16
  • 25. Investigation of RQ 1: Modeling Languages Figure 2: Modeling languages and their supported model kinds (including viewpoints) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 17
  • 26. Investigation of RQ 1: Modeling Languages Figure 3: Modeling languages and their supported model kinds (including stakeholders) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 18
  • 27. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 context ChargingStationManagement { 2 structure ElectrifiedParkingSpace<entity, aggregate> { 3 string id<identifier>, 4 string name, 5 string plugType, 6 ChargingType chargingType<part>, 7 ParkingSpaceSize parkingSpaceSize<part>, 8 ... 9 } 10 enum ChargingType{ FAST, NORMAL } 11 structure ElectrifiedParkingSpaceCreated<valueObject, domainEvent> { 12 immutable string name, 13 ... 14 } 15 } Y Domain Listing 1: Excerpt of the microservice’s domain model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 19
  • 28. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 technology CQRS { 2 service aspects { 3 aspect CommandSide for microservices { string logicalService; } 4 aspect QuerySide for microservices { string logicalService; } 5 } 6 } 1 technology Kafka { 2 protocols { 3 async kafka data formats "binary" default with format "binary"; 4 } 5 service aspects { 6 aspect Participant for operations { 7 selector(protocol = kafka); 8 string topic<mandatory>; 9 string consumerGroup; 10 } 11 } 12 } Y Technology Y Technology Listings 2 and 3: Excerpts of technology models Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 20
  • 29. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 ... 2 import datatypes from "domain.data" as Domain 3 import technology from "Kafka.technology" as Kafka 4 import technology from "Cqrs.technology" as CQRS 5 ... 6 @technology(Kafka) 7 @technology(CQRS) 8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";) 9 @CQRS::_aspects.CommandSide("ChargingStationManagement") 10 functional microservice de.fhdo.puls.ChargingStationManagementCommand { 11 ... 12 interface Commands { 13 ... 14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents") 15 sendParkingSpaceCreatedEvent(async out event 16 : Domain::ChargingStationManagement 17 .ElectrifiedParkingSpaceCreated); 18 } 19 } Y Service Listing 4: Excerpt of the command side microservice’s service model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
  • 30. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 ... 2 import datatypes from "domain.data" as Domain 3 import technology from "Kafka.technology" as Kafka 4 import technology from "Cqrs.technology" as CQRS 5 ... 6 @technology(Kafka) 7 @technology(CQRS) 8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";) 9 @CQRS::_aspects.CommandSide("ChargingStationManagement") 10 functional microservice de.fhdo.puls.ChargingStationManagementCommand { 11 ... 12 interface Commands { 13 ... 14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents") 15 sendParkingSpaceCreatedEvent(async out event 16 : Domain::ChargingStationManagement 17 .ElectrifiedParkingSpaceCreated); 18 } 19 } Y Service Listing 4: Excerpt of the command side microservice’s service model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
  • 31. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 ... 2 import datatypes from "domain.data" as Domain 3 import technology from "Kafka.technology" as Kafka 4 import technology from "Cqrs.technology" as CQRS 5 ... 6 @technology(Kafka) 7 @technology(CQRS) 8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";) 9 @CQRS::_aspects.CommandSide("ChargingStationManagement") 10 functional microservice de.fhdo.puls.ChargingStationManagementCommand { 11 ... 12 interface Commands { 13 ... 14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents") 15 sendParkingSpaceCreatedEvent(async out event 16 : Domain::ChargingStationManagement 17 .ElectrifiedParkingSpaceCreated); 18 } 19 } Y Service Listing 4: Excerpt of the command side microservice’s service model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
  • 32. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 ... 2 import datatypes from "domain.data" as Domain 3 import technology from "Kafka.technology" as Kafka 4 import technology from "Cqrs.technology" as CQRS 5 ... 6 @technology(Kafka) 7 @technology(CQRS) 8 @endpoints(Kafka::_protocols.kafka: "kafka-server1:9092";) 9 @CQRS::_aspects.CommandSide("ChargingStationManagement") 10 functional microservice de.fhdo.puls.ChargingStationManagementCommand { 11 ... 12 interface Commands { 13 ... 14 @Kafka::_aspects.Participant(topic="parkingSpaceCreatedEvents") 15 sendParkingSpaceCreatedEvent(async out event 16 : Domain::ChargingStationManagement 17 .ElectrifiedParkingSpaceCreated); 18 } 19 } Y Service Listing 4: Excerpt of the command side microservice’s service model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 21
  • 33. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 import technology from "Kubernetes.technology" as Kubernetes 2 import microservices from "micro.services" as Services 3 import nodes from "infrastructure.operation" as Infrastructure 4 5 @technology(Kubernetes) 6 container ChargingStationManagementCommandContainer 7 deployment technology Kubernetes::_deployment.Kubernetes 8 with operation environment "openjdk:11-jdk-slim" 9 deploys Services::de.fhdo.puls.ChargingStationManagementCommand 10 depends on nodes 11 Infrastructure::IDM, Infrastructure::MessageBroker, 12 Infrastructure::MongoDB, Infrastructure::ServiceDiscovery 13 { 14 default values { 15 port=8071 16 ... 17 } 18 } Y Operation Listing 5: Excerpt of the command side microservice’s operation model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
  • 34. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 import technology from "Kubernetes.technology" as Kubernetes 2 import microservices from "micro.services" as Services 3 import nodes from "infrastructure.operation" as Infrastructure 4 5 @technology(Kubernetes) 6 container ChargingStationManagementCommandContainer 7 deployment technology Kubernetes::_deployment.Kubernetes 8 with operation environment "openjdk:11-jdk-slim" 9 deploys Services::de.fhdo.puls.ChargingStationManagementCommand 10 depends on nodes 11 Infrastructure::IDM, Infrastructure::MessageBroker, 12 Infrastructure::MongoDB, Infrastructure::ServiceDiscovery 13 { 14 default values { 15 port=8071 16 ... 17 } 18 } Y Operation Listing 5: Excerpt of the command side microservice’s operation model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
  • 35. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 import technology from "Kubernetes.technology" as Kubernetes 2 import microservices from "micro.services" as Services 3 import nodes from "infrastructure.operation" as Infrastructure 4 5 @technology(Kubernetes) 6 container ChargingStationManagementCommandContainer 7 deployment technology Kubernetes::_deployment.Kubernetes 8 with operation environment "openjdk:11-jdk-slim" 9 deploys Services::de.fhdo.puls.ChargingStationManagementCommand 10 depends on nodes 11 Infrastructure::IDM, Infrastructure::MessageBroker, 12 Infrastructure::MongoDB, Infrastructure::ServiceDiscovery 13 { 14 default values { 15 port=8071 16 ... 17 } 18 } Y Operation Listing 5: Excerpt of the command side microservice’s operation model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
  • 36. Investigation of RQ 1: Modeling Languages • Modeling Example: Platform for the Management of Charging Stations for Electric Vehicles [42] 1 import technology from "Kubernetes.technology" as Kubernetes 2 import microservices from "micro.services" as Services 3 import nodes from "infrastructure.operation" as Infrastructure 4 5 @technology(Kubernetes) 6 container ChargingStationManagementCommandContainer 7 deployment technology Kubernetes::_deployment.Kubernetes 8 with operation environment "openjdk:11-jdk-slim" 9 deploys Services::de.fhdo.puls.ChargingStationManagementCommand 10 depends on nodes 11 Infrastructure::IDM, Infrastructure::MessageBroker, 12 Infrastructure::MongoDB, Infrastructure::ServiceDiscovery 13 { 14 default values { 15 port=8071 16 ... 17 } 18 } Y Operation Listing 5: Excerpt of the command side microservice’s operation model Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 22
  • 37. Investigation of RQ 1: Modeling Languages • Results concerning the languages’ applicability • Higher effectiveness than UML-based modeling for MSA [46] (preliminary results) • Top-down construction of new and reconstruction of existing microservice architectures from heterogeneous domains, and with differing architecture patterns and communication paradigms is possible [42, 38] Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 23
  • 38. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 24
  • 39. Investigation of RQ 2: Model Processing RQ 2: Model Processing How can models, which were constructed with the modeling languages (cf. RQ 1), be used besides architecture documentation? • Research approach: 1. Selection of initial, supportive model processing purposes for MSA engineering: Code generation, quality assessment through static model analysis 2. Design and implementation of a model processing framework that allows model processor implementation for identified purposes and through technical MSA stakeholders without an MDE background 3. Validate framework applicability w.r.t. our modeling languages for code generation taking MSA’s technology heterogeneity and distributed microservice development into account 4. Validate framework applicability w.r.t. our modeling languages for static model analysis based on MSA-related quality metrics suites [20, 2, 19, 13] Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 25
  • 40. Investigation of RQ 2: Model Processing • Applying the framework for code generation: Available generators and plugins • Java Base Generator with plugins for CQRS, DDD, Domain Events, Spring, and Kafka • Net ratio between manual model code and generated boilerplate code for the Charging Station Management Microservice’s command side (cf. Slides 19–22): 4.49 (i.e., net generation of 804 lines of service code from 179 lines of model code) • Docker and Kubernetes • MariaDB and MongoDB • Eureka • Keycloak (WIP) • Zuul Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 26
  • 41. Investigation of RQ 2: Model Processing • Applying the framework for quality assessment through static model analysis • Survey of four metrics suites [20, 2, 19, 13], which are applicable to MSA engineering [7] • Implementation of a static model analyzer that supports 20 out of 26 metrics from the suites • Cohesion assessment based on, e.g., interface, message, and domain object similarity • Complexity assessment based on, e.g., structural microservice characteristics (capability scope, API composition, managed resources etc.), state management, and interaction dependencies • Size assessment based on, e.g., message size (heuristic for lower bound) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 27
  • 42. A Language Ecosystem for Modeling Microservice Architecture LEMMA We consider the combination of our modeling languages, model processing framework, and model processors an ecosystem for model-driven MSA engineering and call it LEMMA (“Language Ecosystem for Modeling Microservice Architecture”). Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 28
  • 43. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 29
  • 44. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 30
  • 45. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Overview of results from a recent study of employing LEMMA (and thus MDE) for MSA engineering in small and medium-sized organizations (SMOs) Figure 4: Article published in Springer Nature Computer Science (Open Access W) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 31
  • 46. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Insights from a secondary analysis of interviews conducted for a previous comparative multi-case study with five professional software architects responsible for microservice architectures in SMOs [45]: I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs (and the only one to document APIs) I.2 The configuration and maintenance of deployment and operation infrastructure is too complex for cross-functional teams and thus in the responsibility of dedicated operation teams, which contradicts MSA’s ownership principle [32] I.3 Besides one case, API specifications are not collected and provided using a centralized system but exchanged upon explicit request, e.g., via email I.4 SMOs consider the establishment of a common architectural understanding important but lack human and time resources to tackle this challenge in an appropriate manner Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
  • 47. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Insights from a secondary analysis of interviews conducted for a previous comparative multi-case study with five professional software architects responsible for microservice architectures in SMOs [45]: I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs (and the only one to document APIs) I.2 The configuration and maintenance of deployment and operation infrastructure is too complex for cross-functional teams and thus in the responsibility of dedicated operation teams, which contradicts MSA’s ownership principle [32] I.3 Besides one case, API specifications are not collected and provided using a centralized system but exchanged upon explicit request, e.g., via email I.4 SMOs consider the establishment of a common architectural understanding important but lack human and time resources to tackle this challenge in an appropriate manner Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
  • 48. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Insights from a secondary analysis of interviews conducted for a previous comparative multi-case study with five professional software architects responsible for microservice architectures in SMOs [45]: I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs (and the only one to document APIs) I.2 The configuration and maintenance of deployment and operation infrastructure is too complex for cross-functional teams and thus in the responsibility of dedicated operation teams, which contradicts MSA’s ownership principle [32] I.3 Besides one case, API specifications are not collected and provided using a centralized system but exchanged upon explicit request, e.g., via email I.4 SMOs consider the establishment of a common architectural understanding important but lack human and time resources to tackle this challenge in an appropriate manner Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
  • 49. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Insights from a secondary analysis of interviews conducted for a previous comparative multi-case study with five professional software architects responsible for microservice architectures in SMOs [45]: I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs (and the only one to document APIs) I.2 The configuration and maintenance of deployment and operation infrastructure is too complex for cross-functional teams and thus in the responsibility of dedicated operation teams, which contradicts MSA’s ownership principle [32] I.3 Besides one case, API specifications are not collected and provided using a centralized system but exchanged upon explicit request, e.g., via email I.4 SMOs consider the establishment of a common architectural understanding important but lack human and time resources to tackle this challenge in an appropriate manner Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
  • 50. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Insights from a secondary analysis of interviews conducted for a previous comparative multi-case study with five professional software architects responsible for microservice architectures in SMOs [45]: I.1 OpenAPI/Swagger is the most prominent approach to specify service APIs (and the only one to document APIs) I.2 The configuration and maintenance of deployment and operation infrastructure is too complex for cross-functional teams and thus in the responsibility of dedicated operation teams, which contradicts MSA’s ownership principle [32] I.3 Besides one case, API specifications are not collected and provided using a centralized system but exchanged upon explicit request, e.g., via email I.4 SMOs consider the establishment of a common architectural understanding important but lack human and time resources to tackle this challenge in an appropriate manner Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 32
  • 51. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs based on the aforementioned insights: • Teams derive LEMMA domain and service models from OpenAPI specifications via an automated model transformation (I.1) • Teams accompany the derived models with operation models in the harmonizing syntax of LEMMA’s Operation Modeling Language, and generate technology-specific deployment and operation configurations from the models (I.2) • All team-specific models are collected centrally and model processors gather information to foster a common architectural understanding (e.g., visualizations of service APIs or dependencies; I.3 and I.4) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
  • 52. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs based on the aforementioned insights: • Teams derive LEMMA domain and service models from OpenAPI specifications via an automated model transformation (I.1) • Teams accompany the derived models with operation models in the harmonizing syntax of LEMMA’s Operation Modeling Language, and generate technology-specific deployment and operation configurations from the models (I.2) • All team-specific models are collected centrally and model processors gather information to foster a common architectural understanding (e.g., visualizations of service APIs or dependencies; I.3 and I.4) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
  • 53. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs based on the aforementioned insights: • Teams derive LEMMA domain and service models from OpenAPI specifications via an automated model transformation (I.1) • Teams accompany the derived models with operation models in the harmonizing syntax of LEMMA’s Operation Modeling Language, and generate technology-specific deployment and operation configurations from the models (I.2) • All team-specific models are collected centrally and model processors gather information to foster a common architectural understanding (e.g., visualizations of service APIs or dependencies; I.3 and I.4) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
  • 54. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Proposal of a LEMMA-based workflow to stimulate DevOps adoption by SMOs based on the aforementioned insights: • Teams derive LEMMA domain and service models from OpenAPI specifications via an automated model transformation (I.1) • Teams accompany the derived models with operation models in the harmonizing syntax of LEMMA’s Operation Modeling Language, and generate technology-specific deployment and operation configurations from the models (I.2) • All team-specific models are collected centrally and model processors gather information to foster a common architectural understanding (e.g., visualizations of service APIs or dependencies; I.3 and I.4) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 33
  • 55. Applying LEMMA to Stimulate DevOps Adoption by SMOs • Validation of the workflow and its implementation for a complete case study architecture • Future Work: Perform an in-depth evaluation with more case studies from SMOs Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 34
  • 56. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 35
  • 57. Applying LEMMA for Microservice Architecture Reconstruction • Since MSA fosters team independence, microservice architectures are particularly exposed to deviate from an anticipated architecture design over time [1] ⇒ Studying the application of (semi-) automated approaches to Software Architecture Reconstruction (SAR) [4] is sensible in the context of MSA [11] • LEMMA’s modeling languages seem expressive enough to reconstruct significant structural information about microservice architectures [38] • One of our current works aims to automate LEMMA-based SAR using static analysis of microservice artifacts (API specifications, source code etc.) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 36
  • 58. Applying LEMMA for Microservice Architecture Reconstruction • Future Work: Extend LEMMA with constructs/languages to express dynamic information about microservice architectures (e.g., service-level behavior specification [16] or architecture-level process specification) Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 37
  • 59. Table of Contents Introduction Model-Driven Engineering Research Statement Investigation of Research Question 1 Investigation of Research Question 2 Selected Ongoing and Future Work Stimulate DevOps Adoption by Small and Medium-Sized Organizations Model-Based Microservice Architecture Reconstruction Quality-Driven Microservice Architecture Engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 38
  • 60. Applying LEMMA for Quality-Driven MSA Engineering • LEMMA’s static analyzer currently supports the assessment of service/architecture cohesion, complexity, and size based on different metrics • While cohesion, complexity, and size target the Maintainability quality attribute [21], we believe the static analysis of LEMMA models to also contribute in the assessment of Portability and Compatibility • In addition, LEMMA’s integration with existing model-based approaches for performance analysis [12, 5] could be sensible to assess the Performance Efficiency of services/architectures Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 39
  • 61. Applying LEMMA for Quality-Driven MSA Engineering • Future Work: • Extend LEMMA’s static analyzer with support for further metrics of other quality attributes than Maintainability • Provide LEMMA users with IDE support to assess quality at the time of model construction • Combine with code generation to retrieve a “quality-by-construction” approach for MSA engineering Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 40
  • 62. Resources • Publications with further details about LEMMA: • Initial motivation and language design: [41, 39] • Using LEMMA in the domain-driven design of microservice architectures: [40] • Methodology for LEMMA-based SAR of microservice architectures: [38] • Complete list of publications: DBLP W • LEMMA source code: ‡ GitHub W • LEMMA documentation (WIP): https://seelabfhdo.github.io/lemma-docs W • Model Processor Example: ‡ GitHub W • Static Analyzer: ‡ Library W, ‡ Executable W • florian.rademacher@fh-dortmund.de Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 41
  • 63. Overview of Related Work • Since LEMMA’s inception, several studies and solution proposals that also investigate the adoption of MDE/architecture modeling in MSA engineering were published: • Domain Modeling: [25, 24, 23] • Service Modeling: [18, 49, 23] • Model-Based Architecture Reconstruction: [17, 1] Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 42
  • 64. Literature [1] Nuha Alshuqayran, Nour Ali, and Roger Evans. “Towards Micro Service Architecture Recovery: An Empirical Study.” In: 2018 IEEE International Conference on Software Architecture (ICSA). IEEE, 2018, pp. 47–56. [2] Dionysis Athanasopoulos et al. “Cohesion-Driven Decomposition of Service Interfaces without Access to Source Code.” In: IEEE Transactions on Services Computing 8.4 (2015). IEEE, pp. 550–562. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 43
  • 65. Literature [3] Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. “Migrating to Cloud-Native Architectures Using Microservices: An Experience Report. kry.” In: Advances in Service-Oriented and Cloud Computing. Ed. by Antonio Celesti and Philipp Leitner. Cham: Springer, 2016, pp. 201–215. [4] Len Bass, Paul Clements, and Rick Kazman. Software Architecture in Practice. Third. Addison-Wesley, 2013. [5] Steffen Becker, Heiko Koziolek, and Ralf Reussner. “The Palladio component model for model-driven performance prediction.” In: Journal of Systems and Software 82.1 (2009). Elsevier, pp. 3–22. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 44
  • 66. Literature [6] Gorka Benguria et al. “A Platform Independent Model for Service Oriented Architectures.” In: Enterprise Interoperability. Ed. by Guy Doumeingts et al. London: Springer, 2007, pp. 23–32. [7] Justus Bogner. “On the evolvability assurance of microservices: metrics, scenarios, and patterns.” PhD thesis. University of Stuttgart, 2020. [8] Justus Bogner et al. “Microservices in Industry: Insights into Technologies, Characteristics, and Software Quality.” In: 2019 IEEE International Conference on Software Architecture Companion (ICSA-C). IEEE, Mar. 2019, pp. 187–195. [9] Marco Brambilla, Jordi Cabot, and Manuel Wimmer. Model-Driven Software Engineering in Practice. First. Morgan & Claypool, 2012. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 45
  • 67. Literature [10] Benoit Combemale et al. Engineering Modeling Languages: Turning Domain Knowledge into Tools. First. CRC Press, 2017. [11] Paolo Di Francesco, Ivano Malavolta, and Patricia Lago. “Research on Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption.” In: 2017 IEEE International Conference on Software Architecture (ICSA). IEEE, Apr. 2017, pp. 21–30. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 46
  • 68. Literature [12] Thomas F. Düllmann and André 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 Engine ICPE ’17 Companion. L’Aquila, Italy: ACM, 2017, pp. 171–172. [13] Thomas Engel et al. “Evaluation of Microservice Architectures: A Metric and Tool-Based Approach.” In: Information Systems in the Big Data Era. Ed. by Jan Mendling and Haralambos Mouratidis. Cham: Springer, 2018, pp. 74–89. [14] Eric Evans. Domain-Driven Design. First. Addison-Wesley, 2004. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 47
  • 69. Literature [15] Martin Garriga. “Towards a Taxonomy of Microservices Architectures.” In: Software Engineering and Formal Methods. Ed. by Antonio Cerone and Marco Roveri. Cham: Springer, 2018, pp. 203–218. [16] Saverio Giallorenzo et al. “Jolie and LEMMA: Model-Driven Engineering and Programming Languages Meet on Microservices.” In: Coordination Models and Languages. Ed. by Ferruccio Damiani and Ornela Dardha. Cham: Springer, 2021, pp. 276–284. [17] Giona Granchelli et al. “Towards Recovering the Software Architecture of Microservice-Based Systems.” In: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW). IEEE, 2017, pp. 46–53. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 48
  • 70. Literature [18] Sara Hassan, Nour Ali, and Rami Bahsoon. “Microservice Ambients: An Architectural Meta-Modelling Approach for Microservice Granularity.” In: 2017 IEEE International Conference on Software Architecture (ICSA). IEEE, 2017, pp. 1–10. [19] Florian Haupt et al. “A Framework for the Structural Analysis of REST APIs.” In: 2017 IEEE International Conference on Software Architecture (ICSA). Springer, 2017, pp. 55–58. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 49
  • 71. Literature [20] Mamoun Hirzalla, Jane Cleland-Huang, and Ali Arsanjani. “A Metrics Suite for Evaluating Flexibility and Complexity in Service Oriented Architectures.” In: Service-Oriented Computing – ICSOC 2008 Workshops. Ed. by George Feuerlicht and Winfried Lamersdorf. Berlin, Heidelberg: Springer, 2009, pp. 41–52. [21] ISO/IEC. Systems and software engineering — Systems and software Quality Requirements and Standard ISO/IEC 25010:2011(E). International Organization for Standardization/International Electrotechnical Commission, 2011. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 50
  • 72. Literature [22] ISO/IEC/IEEE. Systems and software engineering — Architecture description. Standard ISO/IEC/IEEE 42010:2011(E). International Organization for Standardization/International Electrotechnical Commission/Institute of Electrical and Electronics Engineers, 2011. [23] JHipster Domain Language (JDL). URL: https://www.jhipster.tech/jdl. [24] Stefan Kapferer and Olaf Zimmermann. “Domain-Driven Service Design.” In: Service-Oriented Computing. Ed. by Schahram Dustdar. Cham: Springer, 2020, pp. 189–208. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 51
  • 73. Literature [25] 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 Soft INSTICC. SciTePress, 2020, pp. 299–306. [26] Steven Kelly and Juha-Pekka Tolvanen. Domain-specific modeling: Enabling Full Code Generation. First. Wiley, 2008. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 52
  • 74. Literature [27] Welder Pinheiro Luz, Gustavo Pinto, and Rodrigo Bonifácio. “Building a Collaborative Culture: A Grounded Theory of Well Succeeded DevOps Adoption in Practice.” In: Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software En ESEM ’18. Oulu, Finland: ACM, 2018, 6:1–6:10. [28] Gastón Márquez, Mónica M. Villegas, and Hernán Astudillo. “A Pattern Language for Scalable Microservices-based Systems.” In: Proceedings of the 12th European Conference on Software Architecture: Companion P ECSA ’18. Madrid, Spain: ACM, 2018, 24:1–24:7. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 53
  • 75. Literature [29] Genc Mazlami, Jürgen Cito, and Philipp Leitner. “Extraction of Microservices from Monolithic Software Architectures.” In: 2017 IEEE International Conference on Web Services (ICWS). IEEE, June 2017, pp. 524–531. [30] Methodologies Corporation. Service-oriented modeling framework (SOMF) Version 2.1. 2011. [31] Irakli Nadareishvili et al. Microservice Architecture: Aligning Principles, Practices, and Culture. First. O’Reilly, 2016. [32] Sam Newman. Building Microservices: Designing Fine-Grained Systems. First. O’Reilly, 2015. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 54
  • 76. Literature [33] OASIS. Reference Architecture Foundation for Service Oriented Architecture Version 1.0. Standard OASIS Committee Specification 01. Organization for the Advancement of Structured Information Standards, 2012. [34] OASIS. Topology and Orchestration Specification for Cloud Applications Version 1.0. Standard. Organization for the Advancement of Structured Information Standards, 2013. [35] OMG. OMG Unified Modeling Language (OMG UML) Version 2.5.1. Standard formal/17-12-05. Object Management Group, 2017. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 55
  • 77. Literature [36] OMG. Service oriented architecture Modeling Language (SoaML) Specification Version 1.0.1. Standard. Object Management Group, 2012. [37] Florian Rademacher. “An Overview of Modeling Concepts for Service-Based Software Architectures.” In: Software Engineering Publications. Kasseler Online Bibliothek, Repository und Archiv (KOBRA), 2020. [38] Florian Rademacher, Sabine Sachweh, and Albert Zündorf. “A Modeling Method for Systematic Architecture Reconstruction of Microservice-Based Software Systems.” In: Enterprise, Business-Process and Information Systems Modeling. Ed. by Selmin Nurcan et al. Springer, 2020, pp. 311–326. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 56
  • 78. Literature [39] Florian Rademacher, Sabine Sachweh, and Albert Zündorf. “Aspect-Oriented Modeling of Technology Heterogeneity in Microservice Architecture.” In: 2019 IEEE International Conference on Software Architecture (ICSA). IEEE, 2019, pp. 21–30. [40] 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 Conference on Software Engineering and Advanced Applications IEEE, 2020, pp. 229–236. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 57
  • 79. Literature [41] Florian Rademacher et al. “Graphical and Textual Model-Driven Microservice Development.” In: Microservices: Science and Engineering. Ed. by Antonio Bucchiarone et al. Springer, 2020, pp. 147–179. [42] Florian Rademacher et al. “Towards Holistic Modeling of Microservice Architectures Using LEMMA.” In: Companion Proceedings of the 15th European Conference on Software Architecture 20 CEUR-WS, 2021, pp. 1–10. [43] Mohammad Imranur Rahman, Sebastiano Panichella, and Davide Taibi. “A Curated Dataset of Microservices-Based Systems.” In: Joint Proceedings of the Inforte Summer School on Software Maintenance and Evolutio CEUR-WS, 2019, pp. 1–9. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 58
  • 80. Literature [44] Jacopo Soldani, Damian Andrew Tamburri, and Willem-Jan Van Den Heuvel. “The pains and gains of microservices: A Systematic grey literature review.” In: Journal of Systems and Software 146 (2018). Elsevier, pp. 215–232. [45] Jonas Sorgalla, Sabine Sachweh, and Albert Zündorf. “Exploring the Microservice Development Process in Small and Medium-Sized Organizations.” In: Product-Focused Software Process Improvement. Ed. by Maurizio Morisio, Marco Torchiano, and Andreas Jedlitschka. Cham: Springer, 2020, pp. 453–460. [46] Jonas Sorgalla et al. “Model-driven Development of Microservice Architecture: An Experiment on the Quality in Use of a UML- and a DSL-based Approach.” In: Software Engineering Publications. Kasseler Online Bibliothek, Repository und Archiv (KOBRA), 2020. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 59
  • 81. Literature [47] Dave Steinberg et al. EMF: Eclipse Modeling Framework. Second. Addison-Wesley, 2008. [48] Davide Taibi and Valentina Lenarduzzi. “On the Definition of Microservice Bad Smells.” In: IEEE Software 35.3 (May 2018). IEEE, pp. 56–62. [49] Branko Terzić et al. “Development and evaluation of MicroBuilder: a Model-Driven tool for the specification of REST Microservice Software Architectures.” In: Enterprise Information Systems 12.8-9 (2018). Taylor & Francis, pp. 1034–1057. eprint: https://doi.org/10.1080/17517575.2018.1460766. [50] The Open Group. SOA Reference Architecture. C119. 2011. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 60
  • 82. Literature [51] Jon Whittle, John Hutchinson, and Mark Rouncefield. “The State of Practice in Model-Driven Engineering.” In: IEEE Software 31.3 (May 2014). IEEE, pp. 79–85. Florian Rademacher Studying the Application of Model-Driven Engineering in Microservice Architecture Engineering 61