Second Systematic Literature Search: Focusing on Recent ADLs
Table of Contents
- General Information
- Searched Libraries
- Selection of Suitable Literature
- Identified Modeling Languages
1. General Information
The following search string was used to find literature that introduces or discusses architecture description languages in the context of microservices or the cloud. This time, the search string is applied to the title, and the searches only consider publications from 2019 onwards since the latest review from the previous literature search was then published.
(Title:(((modeling OR modelling) AND (language OR languages))
OR ("model-driven") OR
((modeling OR modelling) AND (architecture OR architectures)) OR
("application modeling" OR "application modelling")) AND
Title:((microservice OR microservices OR cloud)))
Search date: 2022-02-02
2. Searched Libraries
2.1 Individual Libraries
ACM
"query": { Title:(((modeling OR modelling) AND (language OR languages)) OR
("model-driven") OR
((modeling OR modelling) AND (architecture OR architectures)) OR
("Document Title":"application modeling" OR "Document Title":"application modelling")) AND
Title:((microservice OR microservices OR cloud)) }
"filter": { Publication Date: (01/01/2019 TO 12/31/2022), ACM Content: DL }
IEEE
((("Document Title": modeling OR "Document Title": modelling) AND ("Document Title": language OR "Document Title": languages)) OR
("Document Title":"model-driven") OR
(("Document Title": modeling OR "Document Title": modelling) AND ("Document Title": architecture OR "Document Title": architectures)) OR
("Document Title":"application modeling" OR "Document Title":"application modelling")) AND
("Document Title":microservice OR "Document Title":microservices OR "Document Title":cloud)
Filter Year: 2019 - 2022
SpringerLink
SpringerLink's title search does not allow the usage of constraints such as โANDโ or โORโ. Consequently, the desired search string has to be assembled manually by executing several steps. This requires separating the search strings and combining the results for the "OR" relations. Additionally, to realize the outermost "AND" relation, only the results that appeared in both merged searches are considered, meaning the intersection of the two merged searches. The individual intermediate results are documented in the following, and a detailed description of the separation process is also provided if desired.
Detailed description of the manual separation and search procedure
First, the search string can be separated into two parts identified by the outermost โANDโ relation:
- Title:(((modeling OR modelling) AND (language OR languages)) OR ("model-driven") OR ((modeling OR modelling) AND (architecture OR architectures)) OR ("application modeling" OR "application modelling"))
- Title:((microservice OR microservices OR cloud))
Now, the two remaining search strings can be further divided. This time, at the outermost โORโ relation. Additionally, the asterisk (*) is used to combine the option (microservice OR microservices) in one search term, since * allows any number of following letters:
-
Results for separating
Title:(((modeling OR modelling) AND (language OR languages)) OR ("model-driven") OR ((modeling OR modelling) AND (architecture OR architectures)) OR ("application modeling" OR "application modelling"))
:
1. ((modeling OR modelling) AND (language OR languages))
2. ("model-driven")
3. ((modeling OR modelling) AND (architecture OR architectures))
4. ("application modeling" OR "application modelling")) -
Results for separating
Title:((microservice OR microservices OR cloud))
:
1. microservice*
2. cloud
The retrived results 1.1, 1.3 and 1.4 have to be further simplified by combining and separating the search strings further. Additionally, the asterisk (*) is used again to combine options like (language OR languages) in one search term:
- Further simplification and separation:
1. Combining and simplifying((modeling OR modelling) AND (language OR languages))
:
1. modeling language*
2. modelling language*
2. model-driven
3. Combining and simplifying((modeling OR modelling) AND (architecture OR architectures))
:
1. modeling architecture*
2. modelling architecture*
4. Combining and simplifying(application modeling OR application modelling)
:
1. application modeling
2. application modelling
Each retrieved search string (1.1.1, 1.1.2, 1.2, 1.3.1, 1.3.2, 1.4.1, 1.4.2) is used for a title search, combined with an additional restriction of the full-text search to (cloud OR microservice OR microservices)
.
The results of these seven searches are then simply merged since they are combined with an "OR" relation in the original search string.
The merged results are referred to as FirstHalf in the following.
The search strings 2.1 and 2.2 are also used for a title search, but this time combined with a restriction of the full-text search to (((modeling OR modelling) AND (language OR languages)) OR
("model-driven") OR ((modeling OR modelling) AND (architecture or architectures)) OR
("application modeling" OR "application modelling"))
.
Afterwards, to reconstruct the "AND" relation, the intersection between the FirstHalf combined with the search results from using the search string 2.1 are built. The same is done for the search results of using the search string 2.2. The intersections are built using an R-Script, which is provided later on. In order to retrieve the final result of the desired search string, the two intersections are then merged. As mentioned before, the intermediate results, as well as the final result, are presented in the following.
Furthermore, SpringerLink only provides the option to export the search results as .csv-file.
Therefore, this .csv-file had to be transformed into a .bib-file.
For this, an R-Script was used to retrieve the DOIs from the .csv-files and save them in a .txt-file:
FoundLiterature <- read.csv("searchResults.csv", encoding = "UTF-8");
DOIs <- FoundLiterature["Item.DOI"]
write.table(DOIs,file="DOIs.txt", row.names = FALSE, quote=FALSE)
The received DOIs were then used with the tool Zotero to create a .bib-file with the respective literature.
Conducting the advanced search using the following restriction...
(cloud OR microservice OR microservices)
Filter Year: 2019 - 2022
Files for .csv to .bib
- Export from SpringerLink: CSV-Modeling_language(s)_title_raw_results
- Retrieved DOIs: DOIs_Modeling_language(s)_title
- Result: Bib-Modeling_language(s)_title_raw_results
Results: 4
(cloud OR microservice OR microservices)
Filter Year: 2019 - 2022
Files for .csv to .bib
- Export from SpringerLink: CSV-Modelling_language(s)_title_raw_results
- Retrieved DOIs: DOIs_Modelling_language(s)_title
- Result: Bib-Modelling_language(s)_title_raw_results
Results: 4
Conducting the advanced search using the following restriction...
(cloud OR microservice OR microservices)
Filter Year: 2019 - 2022
Files for .csv to .bib
- Export from SpringerLink: CSV-Model-driven_title_raw_results
- Retrieved DOIs: DOIs_Model-driven_title
- Result: Bib-Model-driven_title_raw_results
Results: 66
Conducting the advanced search using the following restriction...
(cloud OR microservice OR microservices)
Filter Year: 2019 - 2022
Results: 0
(cloud OR microservice OR microservices)
Filter Year: 2019 - 2022
Files for .csv to .bib
- Export from SpringerLink: CSV-Modelling_architecture(s)_title_raw_results
- Retrieved DOIs: DOIs_Modelling_architecture(s)_title
- Result: Bib-Modelling_architecture(s)_title_raw_results
Results: 1
Conducting the advanced search using the following restriction...
(cloud OR microservice OR microservices)
Filter Year: 2019 - 2022
Results: 0
(cloud OR microservice OR microservices)
Filter Year: 2019 - 2022
Files for .csv to .bib
- Export from SpringerLink: CSV-Application_modelling_title_raw_results
- Retrieved DOIs: DOIs_Application_modelling_title
- Result: Bib-Application_modelling_title_raw_results
Results: 2
Merging first half of original query statement:
(Title:(((modeling OR modelling) AND (language OR languages)) OR
("model-driven") OR
((modeling OR modelling) AND (architecture or architectures)) OR
("application modeling" OR "application modelling")))
Merged first half search results: SpringerLink_merged_first_half_raw_results
Result after removing duplicates: 76 SpringerLink_merged_first_half_removed_duplicates
Conducting the advanced search using the following restriction...
(((modeling OR modelling) AND (language OR languages)) OR
("model-driven") OR
((modeling OR modelling) AND (architecture or architectures)) OR
("application modeling" OR "application modelling"))
Filter Year: 2019 - 2022
Files for .csv to .bib
- Export from SpringerLink: The number of search results was too big (> 1000), and thus, they had to be split several times to retrieve them. However, splitting by the year the papers were published in was still too large, so they were further split by content type. Since the same papers can be assigned to different content types, duplicates had to be removed when merging the individual files. All individual files, as well as the merged files, can be found in the following directory: CSV-Cloud_title_raw_results_directory
- Retrieved DOIs: DOIs_Modeling_language_review
- Result: Bib-Modeling_language_review_raw_results
Results: 4320
(((modeling OR modelling) AND (language OR languages)) OR
("model-driven") OR
((modeling OR modelling) AND (architecture or architectures)) OR
("application modeling" OR "application modelling"))
Filter Year: 2019 - 2022
Files for .csv to .bib
- Export from SpringerLink: CSV-Microservice(s)_title_raw_results
- Retrieved DOIs: DOIs_Microservice(s)_title
- Result: Bib-Microservice(s)_title_raw_results
Results: 256
In order to build the intersection of the respective search results, the following R-Script is applied:
library(dplyr)
FirstHalf <- read.table("S2_SpringerLink_FirstHalf_merged_DOIs.txt", encoding = "UTF-8", header= TRUE);
FirstHalf_removedDuplicates <- unique(FirstHalf)
Microservice <- read.table("S2_SpringerLink_title_microservice(s)_DOIs.txt", encoding = "UTF-8", header= TRUE);
Intersection <- generics::intersect(FirstHalf, Microservice)
write.table(Intersection,file="S2_SpringerLink_Intersection_Microservice-FirstHalf_DOIs.txt", row.names = FALSE, quote=FALSE)
The R-Script can also be found in the following file: Determine_Intersection_DOIs
The following table summarizes the results after building the intersection between the different search results.
DOIs | ||
Bib-Result | ||
Current Query | (Title:(((modeling OR modelling) AND (language OR languages)) OR ("model-driven") OR ((modeling OR modelling) AND (architecture or architectures)) OR ("application modeling" OR "application modelling")) AND Title:(cloud)) |
(Title:(((modeling OR modelling) AND (language OR languages)) OR ("model-driven") OR ((modeling OR modelling) AND (architecture or architectures)) OR ("application modeling" OR "application modelling")) AND Title:(microservice OR microservices)) |
Finally, to receive the result of the desired search string, the two intersections above are merged.
Merged search results: 9 SpringerLink_merged_removed_duplicates
2.2 Joined Results
The search results from all three libraries were merged and existing duplicates removed. However, no duplicates were found in this merge.
Merged search results: 50 Total_search-results_merged
3. Selection of Suitable Literature
In order to find suitable literature to determine which ADLs are worth evaluating, the following steps were conducted. For this, the focus lies on recently proposed or mentioned modeling languages in the context of Microservice Architectures or the cloud.
3.1 Title-Based Selection
Exclusion Criteria:
- Paper already considered in first literature search
- Modeling language already considered due to the first literature search
- Modeling clearly does not refer to the system's architecture
- The terms "model" or "modeling" appear in a different and unrelated context, such as a data access model or CaaS model
- Focus too narrow or specific, for example runtime safety assurance or reliability modeling with focus on dynamic routing
Inclusion criteria:
- Reference to model or modeling Microservice Architectures
- Reference to Application or Architecture modeling
- Reference to specific modeling language(s) exceptions see above
- Some model-driven approach in the context of microservices or the cloud, especially concerning development or architecture
The result after filtering based on the title: 26 1_Title_Filtering_results
3.2 Abstract-Based Selection
Exclusion Criteria:
- The modeling language's focus is too specific, for example solely considering data architecture aspects
- Modeling does not focus on architectural aspects but instead, for instance, business aspects
- Referenced modeling language already considered due to the first literature search
Inclusion Criteria:
- Reference to (a) specific architecture language(s) in the context of microservices or the cloud exceptions see above
- Reference to modelling approach(es) in the context of microservices or the cloud
- Too general review on or reference to model-driven engineering to be already excluded
- Reference to a simulation platform/environment that also provides architectural modelling
The result after filtering based on the abstract: 16 2_Abstract_Filtering_results
3.3 Full-Text Scan
Exclusion Criteria:
- Referencing already considered modeling language(s)
- Not mentioning an actual modeling language
- Missing focus on architectural aspects
- Modeling language requires source code as a must
Inclusion Criteria:
- Presents or introduces a modeling language considering architectures in the context of microservices or the cloud
- Name existing modeling languages which allows architectural view/focus
Removal Reasoning per paper
Bibtex-Keys refer to the 2_Abstract_Filtering_results file. The previous citationkeys have been adapted for standardization purposes but can be found in the comment field.
Bibtex-Key | Title |
Removal Reason |
---|---|---|
Elhabbash2019 | SLO-ML: A Language for Service Level Objective Modelling in Multi-Cloud Applications | Proposes a new cloud modeling language that capture service level requirements.
|
Ghirardini2020 | Model-Driven Simulation for Performance Engineering of Kubernetes-Style Cloud Cluster Architectures | Proposes a model for the Palladio simulation environment with the aim to balance resource demands.
|
Podolskiy2020 | The Weakest Link: Revealing and Modeling the Architectural Patterns of Microservice Applications | Considering Github projects, containerized microservice applications are analyzed concerning their structure. Additionally, network models are considered and evaluated for their usefulness in this context.
|
Rademacher2019 | A Model-Driven Workflow for Distributed Microservice Development | A description of a model-driven development workflow for microservices.
|
Yussupov2020 | Pattern-Based Modelling, Integration, and Deployment of Microservice Architectures | Introduces a model-driven approach for composing microservices by modelling microservices while considering integrational and deployment aspects.
|
The result after filtering based on full-text scan: 11 3_Full-text_scan_results
3.4 Snowballing
As the last step, the Snowballing technique was chosen to obtain more relevant literature potentially. This approach also allows a certain quality to check whether most relevant papers have already been retrieved. In order to achieve this, both backward snowballing as well as forward snowballing were carried out. The Bibtex-Keys refer to the 4_Final_Selection file.
Backward Snowballing
For the backward approach, the references of all identified reviews from the Full-text Scan are checked. Especially, the literature mentioned in the respective related work section is considered in more detail. For the following papers, further relevant literature could be found:
- Modelling service-oriented systems and cloud services with Heraklit [Fettke2020]
Heraklit
- Domain-Driven Service Design: Context Modeling, Model Refactoring and Contract Generation [Kapferer2020]
Context Mapper DSL - MicroBuilder: A Model-Driven Tool for the Specification of REST Microservice Architectures [Terzic2018]
MicroDSL by MicroBuilder
- MicroBuilder: A Model-Driven Tool for the Specification of REST Microservice Architectures [Terzic2018]
MicroDSL by MicroBuilder
- MicroBuilder: A Model-Driven Tool for the Specification of REST Microservice Architectures [Terzic2018]
MicroDSL by MicroBuilder - Ajil: Enabling Model-Driven Microservice Development [Sorgalla2018]
AjiL - Infrastructure-as-Code for Data-Intensive Architectures: A Model-Driven Development Approach [Artac2018]
DICER
- Ajil: Enabling Model-Driven Microservice Development [Sorgalla2018]
AjiL
- Ajil: Enabling Model-Driven Microservice Development [Sorgalla2018]
AjiL
Forward Snowballing
On the other hand, the search engine Google Scholar1 was used for the forward approach. Google Scholar allows investigating papers that cited the searched paper. With this approach, the following papers from Full-text Scan were used to identify further relevant literature:
- Model-driven Development of Microservice Architecture: An Experiment on the Quality in Use of a UML- and a DSL-based Approach [Sorgalla2020a]
LEMMA
mentiones MicroBuilder
- Model-driven Development of Microservice Architecture: An Experiment on the Quality in Use of a UML- and a DSL-based Approach [Sorgalla2020a]
LEMMA
mentiones MicroBuilder - A Model Driven Framework for the Development of Adaptable REST SERVICES [Kenzi2021]
MicroDSL by MicroBuilder
- Applying ModelโDriven Engineering to Stimulate the Adoption of DevOps Processes in Small and MediumโSized Development Organizations [Sorgalla2021]
LEMMA
MicroDSL by MicroBuilder
MicroART - Towards Holistic Modeling of Microservice Architectures Using LEMMA [Rademacher2021]
LEMMA
MicroBuilder
- Applying ModelโDriven Engineering to Stimulate the Adoption of DevOps Processes in Small and MediumโSized Development Organizations [Sorgalla2021]
LEMMA
MicroDSL by MicroBuilder
MicroART - Towards Holistic Modeling of Microservice Architectures Using LEMMA [Rademacher2021]
LEMMA
MicroBuilder
- MODAClouds: A model-driven approach for the design and execution of applications on multiple Clouds [Ardagna2012]
ModaCloudML
The Bibtex-file that includes the final selection of relevant literature: 21 4_Final_Selection
4. Identified Modeling Languages
The following table summarizes all found modeling languages mentioned in some way in the 4_Final_Selection-file. However, if the modeling language has already been considered in the previous literature search or one of the mentioned exclusion criteria apply, it will not be mentioned in the following table. Additionally, each modeling language includes a link to the original paper and the papers from the Final_Selection that mention the respective modeling language. In order to help with the later selection process, important aspects discovered while analyzing the proposed language are also noted in the table.
Legend: Negative remark Positive remark Neutral remark
Modeling Language | Discovered in Paper |
Main Important Notes for Selection |
---|---|---|
AjiL | LEMMA is based on experience from this approach | |
Clams | Focus on a scenario-based language to bridge the gap between informal functional-views of an application and its formal architectural description provides a user-centric perspective |
|
Context Mapper DSL | New version was recently published (Release Notes2) detailed but compact and up-to-date documentation2 online available Several supportive tools available Based on Domain-driven Design (DDD) |
|
DICER | Based on CloudML | |
HERAKLIT | Detailed language manual2 online available All supportive tools still under development and thus not available yet Mathematically based and uses Petri Nets |
|
LEMMA2 | Github page2 with tools and descriptions, among other things, still receives updates Documentation2 only partially online available since it is still under development, but: extensive amount of research given |
|
MicroART | Proposed in 2017, since then no new additions Provided Tool (MicroART Tool2) has not received any updates for the last five years |
|
MicroDSL by MicroBuilder | Restricted to domain of REST Microservice Architecture development | |
ModaCloudML | Based on CloudML Development Project ended already in 2015 3 |
|
OMSAC-based | Used ontology designed to cover only aspects recorded as Microservice Architecture principles or anti-patterns in literature |