Skip to content

Commit 95f2065

Browse files
author
socadk
committedJan 12, 2022
Public MDSL Version 5.4.5
1 parent bcf5377 commit 95f2065

File tree

436 files changed

+29738
-6428
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

436 files changed

+29738
-6428
lines changed
 

‎README.md

+23-18
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
Microservice Domain-Specific Language (MDSL) 5.3
2-
================================================
1+
Microservice Domain-Specific Language (MDSL)
2+
============================================
33

44
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
5-
[![Build Status](https://travis-ci.com/Microservice-API-Patterns/MDSL-Specification.svg?branch=master)](https://travis-ci.com/Microservice-API-Patterns/MDSL-Specification)
65

6+
<!--
7+
[![Build Status](https://travis-ci.com/Microservice-API-Patterns/MDSL-Specification.svg?branch=master)](https://travis-ci.com/Microservice-API-Patterns/MDSL-Specification)
8+
-->
79

8-
Author: Olaf Zimmermann, (c) 2018-2021. All rights reserved.
10+
Author: Olaf Zimmermann, (c) 2018-2022. All rights reserved.
911

1012
## What is MDSL?
1113

@@ -50,28 +52,31 @@ These two languages can be used independently of each other; for instance, data
5052

5153
## Language Specification
5254

53-
* [Primer](https://microservice-api-patterns.github.io/MDSL-Specification/primer)
54-
* [Endpoint types](https://microservice-api-patterns.github.io/MDSL-Specification/servicecontract) (a.k.a. ports)
55-
* [Bindings](https://microservice-api-patterns.github.io/MDSL-Specification/bindings) (a.k.a. adapters)
55+
The [Primer](https://microservice-api-patterns.github.io/MDSL-Specification/primer) is a good starting point. Detailed are explained on reference pages:
56+
5657
* [Data types](https://microservice-api-patterns.github.io/MDSL-Specification/datacontract) (a.k.a. published language)
58+
* [Endpoint types](https://microservice-api-patterns.github.io/MDSL-Specification/servicecontract) (a.k.a. ports)
59+
* [Protocol bindings](https://microservice-api-patterns.github.io/MDSL-Specification/bindings) (a.k.a. adapters)
5760
* [Instance-level concepts](https://microservice-api-patterns.github.io/MDSL-Specification/optionalparts) (provider, client, gateway)
61+
* Integration [scenarios and stories](https://microservice-api-patterns.github.io/MDSL-Specification/scenarios.html)
62+
* Orchestration [flows](https://microservice-api-patterns.github.io/MDSL-Specification/flows.html)
63+
* A language extension supporting queue-based messaging endpoints is [AsyncMDSL](https://microservice-api-patterns.github.io/MDSL-Specification/async-mdsl).
5864

59-
<!-- A language extension supporting queue-based messaging endpoints is [AsyncMDSL](https://github.com/giacomodeliberali/MDSL/tree/master/examples/asyncMDSL).-->
65+
A [Quick Reference](https://microservice-api-patterns.github.io/MDSL-Specification/quickreference) providing reusable snippets is available as well.
6066

6167

6268
## Repository Structure
6369

6470
This repository contains:
6571

6672
* [dsl-core](dsl-core), the DSL project, Xtext grammar and everything else needed to build an Eclipse plugin providing a MDSL editor.
67-
<!-- * An older, not fully equivalent version of the grammar in [this folder](antlr4). -->
6873
* Various [examples](examples).
6974
* The [sources of the GitHub pages](docs) for MDSL.
70-
* Some [background information](background) on other IDLs and related projects.
75+
* [Background information](background): papers and presentations as well as information on relation to other IDLs and on related projects.
7176

7277
If you want to contribute to MDSL, you have to clone this repo and generate the required Xtext files.
7378

74-
*Note:* Setup and build process have been improved recently to ease integration with [Context Mapper](https://contextmapper.org/). As a consequence, the project has to be imported as an existing Maven project, and an adjustment of the IDE setup is required. The [readme](dsl-core/README.md) of the main project contains detailed instructions.
79+
*Note:* The project has to be imported as an existing Maven project, and an adjustment of the IDE setup is required. The [readme](dsl-core/README.md) of the main project contains detailed instructions. This setup and build process eases integration with [Context Mapper](https://contextmapper.org/).
7580

7681

7782
## Change Log
@@ -80,7 +85,7 @@ The latest version of the MDSL language MDSL version extends service contracts w
8085

8186
Since Version 5.2, MDSL supports true REST level 3 concepts both on the abstract endpoint type level and in the redesigned bindings and comes with additional Freemarker generators (Markdown reports, ALPS).
8287

83-
See [change log](changelog.md) for an evolution history; see GitHub [release notes](https://github.com/Microservice-API-Patterns/MDSL-Specification/releases) for additional update information.
88+
The [Change Log](changelog.md) provides an evolution history; the GitHub [Release Notes](https://github.com/Microservice-API-Patterns/MDSL-Specification/releases) also contain update information.
8489

8590

8691
## Context Information: MAP and Xtext
@@ -91,9 +96,9 @@ All [Microservice API Patterns (MAP)](https://microservice-api-patterns.org/) ar
9196
* As enums for roles and responsibilities
9297
* As stereotypes annotating representation elements
9398

94-
See ["MAP Decorators" section of the MDSL tutorial](https://microservice-api-patterns.github.io/MDSL-Specification/tutorial) for more information. <!-- TODO copy one-pager in SummerSoC paper to GitHub pages or elsewhere in repo -->
99+
See ["MAP Decorators" section of the MDSL tutorial](https://microservice-api-patterns.github.io/MDSL-Specification/tutorial) for more information.
95100

96-
The MDSL grammar, to be found in src folder of the `dsl-core/io.mdsl` project, was originally developed with Eclipse Photon (4.8.0) and Xtext (2.14) as provided by the Eclipse Modeling Platform. MDSL makes use of the referencing feature in Xtext ('name' attribute). Future work is required to also support this technology in other IDEs (such as Visual Studio Code).
101+
The MDSL grammar, located in the `src` folder of the `dsl-core/io.mdsl` project, was originally developed with Eclipse Photon (4.8.0) and Xtext (2.14) as provided by the Eclipse Modeling Platform. MDSL makes use of the referencing feature in Xtext ('name' attribute).
97102

98103
Feedback and contributions welcome!
99104

@@ -122,11 +127,11 @@ We are happy to welcome new contributors who want to help improve MDSL language
122127
* Submit pull requests. If you do so, we assume that you comply with this [Developer Certificate of Origin](https://developercertificate.org/).
123128
* Contact us to discuss collaboration and integration opportunities.
124129

125-
<!-- Please review our contribution rules/code of conduct upfront. Thank you!
126-
https://github.com/cloudevents/spec/blob/master/CONTRIBUTING.md
127-
130+
<!--
131+
Please review our contribution rules/code of conduct upfront. Thank you!
132+
https://github.com/TODO/blob/master/CONTRIBUTING.md
128133
-->
129134

130135
-- [Olaf Zimmermann (ZIO)](https://ozimmer.ch)
131136

132-
*Copyright: The author, 2019-2021. All rights reserved. See [license information](/LICENSE).*
137+
*Copyright: The author, 2019-2022. All rights reserved. See [license information](/LICENSE).*

‎background/readme.md

+26-19
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,43 @@
11
This folder contains pointers to background information such as related projects and supporting tools.
22

3-
# Related projects
3+
# Presentations and Articles
44

5-
## Microservice API Patterns (MAP)
5+
## MDSL and Context Mapper
66

7-
* The MAP website <https://microservice-api-patterns.org/> uses MDSL to feature patterns in action.
8-
* The EuroPLoP paper [" Interface Responsibility Patterns: Processing Resources and Operation Responsibilities"](http://eprints.cs.univie.ac.at/6520/1/MAP-EuroPlop2020aPaper.pdf) features an MDSL example.
7+
Papers and presentations co-authored by the MDSL creator(s):
98

10-
## Design Practice Repository (DPR)
9+
* Section 5.2 in *From OpenAPI Fragments to API Pattern Primitives and Design Smells*, Proc. of European Conference on Pattern Languages of Programs (EuroPLoP) 2021 ([PDF](http://design.inf.usi.ch/sites/default/files/biblio/apiace-europlop2021.pdf)) by Souhaila Serbout, Cesare Pautasso, Uwe Zdun, and Olaf Zimmermann features MDSL.
10+
* Zimmermann, Olaf: *Dimensions of Successful Web API Design and Evolution: Context, Contracts, Components*, Keynote, 20th International Conference on Web Engineering (ICWE), June 11, 2020. ([PDF](https://ozimmer.ch/assets/presos/ZIO-ICWEKeynoteWADEC3v10p.pdf), [blog post](https://ozimmer.ch/practices/2020/06/10/ICWEKeynoteAndDemo.html))
11+
* Kapferer, Stefan and Zimmermann, Olaf: *Domain-driven Service Design — Context Modeling, Model Refactoring and Contract Generation*. Proc. of SummerSoC 2020 conference, Springer CCIS Volume 1310 ([PDF](https://contextmapper.org/media/SummerSoC-2020_Domain-driven-Service-Design_Authors-Copy.pdf), [Presentation](https://contextmapper.org/media/Stefan-Kapferer_SummerSoC2020_presentation.pdf))
1112

12-
* DPR, available at <https://github.com/socadk/design-practice-repository> features MDSL in its Stepwise Service Design activity.
13-
* *New: *LeanPub book on [DPR](https://leanpub.com/dpr)
13+
A [microservices and DevOps conference report](https://www.computer.org/csdl/magazine/so/2020/01/08938118/1fUSO0QBDnW) in IEEE Software also mentions Context Mapper and MDSL (open access).
1414

15-
# Tools
15+
## Comparison with other Interface Definition Languages (IDLs)
1616

17-
## CLI and update site
17+
* See slides in ["Dimensions of Successful Web API Design and Evolution: Context, Contracts, Components"](https://ozimmer.ch/assets/presos/ZIO-ICWEKeynoteWADEC3v10p.pdf)
18+
* See [known uses of the API Description pattern in MAP](https://microservice-api-patterns.org/patterns/foundation/APIDescription#sec:APIDescription:KnownUses)
1819

19-
* See [Tools Users Guide](https://microservice-api-patterns.github.io/MDSL-Specification/tools)
2020

21-
## Context Mapper
21+
# Related projects
2222

23-
* Context Mapper has a MDSL generator, see [here](https://contextmapper.org/docs/mdsl/).
23+
## Microservice API Patterns (MAP)
2424

25-
# Presentations and Articles
25+
* The MAP website <https://microservice-api-patterns.org/> uses MDSL to feature patterns in action.
26+
* The EuroPLoP paper ["Interface Responsibility Patterns: Processing Resources and Operation Responsibilities"](http://eprints.cs.univie.ac.at/6520/1/MAP-EuroPlop2020aPaper.pdf) features an MDSL example.
2627

27-
## MDSL and Context Mapper
28+
## Interface Refactoring Catalog (IRC)
29+
30+
* The MDSL Tools implement many of the refactorings described at [https://interface-refactoring.github.io/](https://interface-refactoring.github.io/)
31+
* The paper ["From Code Refactoring to API Refactoring: Agile Service Design and Evolution"]("https://interface-refactoring.github.io/assets/IRC-FromCodeRefactoringToApiRefactoringCCIS2021.pdf") provides background information.
2832

29-
* Zimmermann, O.: Dimensions of Successful Web API Design and Evolution: Context, Contracts, Components, Keynote, 20th International Conference on Web Engineering (ICWE), June 11, 2020. ([PDF](https://ozimmer.ch/assets/presos/ZIO-ICWEKeynoteWADEC3v10p.pdf), [blog post](https://ozimmer.ch/practices/2020/06/10/ICWEKeynoteAndDemo.html))
30-
* Kapferer, S.; Zimmermann, O.: Domain-driven Service Design — Context Modeling, Model Refactoring and Contract Generation. Proc. of SummerSoC 2020 conference, Springer CCIS Volume 1310 ([PDF](https://contextmapper.org/media/SummerSoC-2020_Domain-driven-Service-Design_Authors-Copy.pdf), [Presentation](https://contextmapper.org/media/Stefan-Kapferer_SummerSoC2020_presentation.pdf))
33+
## Design Practice Repository (DPR)
3134

32-
<!-- plus VSS Vienna conference report by Leitner et al (Insights) -->
35+
* DPR, available at <https://github.com/socadk/design-practice-repository> features MDSL in its Stepwise Service Design activity.
36+
* *New: *LeanPub book on [DPR](https://leanpub.com/dpr)
3337

34-
## Interface Definition Languages (IDLs) through the ages
3538

36-
* See [known uses of the API Description pattern in MAP](https://microservice-api-patterns.org/patterns/foundation/APIDescription#sec:APIDescription:KnownUses) and ICWE presentation.
39+
# MDSL Tools
40+
41+
* MDSL CLI and update site:
42+
* See [Tools Users Guide](https://microservice-api-patterns.github.io/MDSL-Specification/tools)
43+
* Context Mapper has a MDSL generator, see [here](https://contextmapper.org/docs/mdsl/).

0 commit comments

Comments
 (0)
Please sign in to comment.