SlideShare a Scribd company logo
1 of 20
Download to read offline
Leveraging Model-Driven
Technologies for JSON Artefacts:
The Shipyard Case Study
Alessandro Colantoni, Antonio Garmendia, Luca Berardinelli, Manuel Wimmer
Institute for Business Informatics – Software Engineering Johannes Kepler University, Linz, Austria
Johannes Bräuer
Dynatrace GmbH, Linz
MODELS 2021, Practice and Innovation Track, Oct 14th, 2021 (virtual)
Outline
◦Context:
▪ JSON & JSON Schema
▪ Use Case Scenarios
◦MDE for JSON/JSON Schema:
▪ Bridging Approach steps in details
▪ Case study in DevOps domain: Keptn and Shipyard DSL
◦Conclusions and Future Work
2
Context: JSON and JSON Schema
• JSON is an open, textual, human readable data
serialization format (.json) with a wide range of application,
primarily used in data exchange Web scenarios
[1] IETF, “JSON Schema Draft 2020-12,” https://json-schema.org/draft/ 2020-12/json-schema-core.html, accessed: 2021-19-02.
[2] JSON Schema meta-schema: https://json-schema.org/draft-07/schema
{
"name": "Alessandro",
"surname": "Colantoni",
"affiliation": {
"universityName": "Johannes Kepler University",
"city": "Linz"
},
"contacts": [
{"email": "alessandro.colantoni@jku.at"},
{"phone": "+4373224684248"},
]
} .json
“name” : “value” pairs
[array]
{object}
JSON document / schema instance
JSON document / schema
• JSON Schema is a draft standard issued by IETF.
A schema is “a JSON media type for defining the structure
of JSON data. JSON Schema is intended to define
validation, documentation, hyperlink navigation, and
interaction control of JSON data.” [1]
{
"$schema": "http://json-schema.org/draft-07/schema#"
"type":"object",
"properties":{
"name":{"type":"string},
"surname":{"type":"string}
},
"additionalProperties":true
} .json
Reference to JSON Schema draft standard
contacts array property not foreseen but is allowed!
• IETF publishes a JSON Schema Draft [2] every 6 months
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://json-schema.org/draft-07/schema#",
"title": "Core schema meta-schema",
…
} .json
JSON document / (meta)schema instance
JSON document / (meta)schema
Defined by itself
3
Context: Actors and Use Cases
Metaschema Specification
Tool Support
Domain-specific Activities
(schemas and schema instances)
Tool
Provider(s)
Domain
Expert(s)
Data/Language
Engineer(s)
Schema Specification
Managing (meta)schemas and schema instances. Typical
tools include editors, parsers, validators, “utilities”…
Data Engineers define data structures. JSON
Schema is used also for defining the structure of
“scripting languages”.
JSON users needing JSON for their
domain. This is the largest category.
IETF is issuing and maintaining metaschema drafts, i.e., IETF.
https://json-schema.org/implementations.html
JSON users
schema instance
c2
metaschema
c2
schema
Now…
Meta-Language
Engineer
4
Contributions: Bridging JSONware/Modelware (1)
Metaschema Specification
Tool Support
Domain-specific Activities
(schemas and schema instances)
Tool
Provider(s)
Domain
Expert(s)
Data/Language
Engineer(s)
Schema Specification
JSON users
schema instance
c2
metaschema
c2
schema
JSONware TS
M3
M2
M1
1
Modelware TS
model
c2
metalanguage
c2
metamodel
M3
M2
M1
1 Semi-automated JSONware/Modelware Bridging Approach.
Metalayers are explicitly spotted in JSONware.
Meta-Language
Engineer
…After 5
Contributions: Modeling and Validation Support (2)
Metaschema Specification
Tool Support
Domain-specific Activities
(schemas and schema instances)
Tool
Provider(s)
Domain
Expert(s)
Data/Language
Engineer(s)
Schema Specification
JSON users
schema instance
c2
metaschema
c2
schema
JSONware TS
M3
M2
M1
1
Modelware TS
model
c2
metalanguage
c2
metamodel
M3
M2
M1
Enabling Modelware-native Tool Support in addition to JSONware one,
thanks to tool support generarion capabilities of language workbenches.
(Meta)Language Engineers become potential Tool Providers
Modelware-native Support
«extend»
Validation
Support
Modeling
Support
«extend»
«extend»
«include»
«include»
Consistency Checking
Support
«include»
2
2
…After
Meta-Language
Engineer
Colantoni, B. Horvath, A. Horvath, L. Berardinelli, and M. Wimmer,
“Towards Continuous Consistency Checking of DevOps Artefacts,”
in Proceedings of the 24rd ACM/IEEE International Conference on Model Driven Engineering
Languages and Systems: Companion Proceedings, 2021, p. 6.
6
@DevOps 2021 (Monday)
Contributions: Transparent to JSON users (3)
Metaschema Specification
Tool Support
Domain-specific Activities
(schemas and schema instances)
Tool
Provider(s)
Domain
Expert(s)
Data/Language
Engineer(s)
Schema Specification
JSON users
schema instance
c2
metaschema
c2
schema
MDE users
JSONware TS
M3
M2
M1
1
Modelware TS
model
c2
metalanguage
c2
metamodel
M3
M2
M1
«include»
Transparent Approach for JSON users, typically MDE-agnostic,
by adopting JSON textual concrete syntax
3
…After
Meta-Language
Engineer
JSONware-native
support
3
Modelware-native Support
«extend»
Validation
Support
Modeling
Support
«extend»
«extend»
«include»
«include»
Consistency Checking
Support
«include»
2
7
Colantoni, B. Horvath, A. Horvath, L. Berardinelli, and M. Wimmer,
“Towards Continuous Consistency Checking of DevOps Artefacts,”
in Proceedings of the 24rd ACM/IEEE International Conference on Model Driven Engineering
Languages and Systems: Companion Proceedings, 2021, p. 6.
@DevOps 2021 (Monday)
Case Study Scenario: Shipyard DSL for Keptn (CD)
Metaschema Specification
Tool Support
Continuous Delivery Workflow
Specification (DevOps)
Tool
Provider(s)
Domain
Expert(s)
Meta-Language
Engineer
Data/Language
Engineer(s)
Schema Specification
JSON users
schema instance
c2
metaschema
c2
schema
MDE users
JSONware TS
M3
M2
M1
1
Modelware TS
model
c2
metalanguage
c2
metamodel
M3
M2
M1
is an open-source project for orchestrating continuous delivery (CD)
and operational processes of cloud-native applications
https://keptn.sh/
JSONware-native
support
3
Modelware-native Support
«extend»
Validation
Support
Modeling
Support
«extend»
«extend»
«include»
«include»
Consistency Checking
Support
«include»
2
«include»
8
Colantoni, B. Horvath, A. Horvath, L. Berardinelli, and M. Wimmer,
“Towards Continuous Consistency Checking of DevOps Artefacts,”
in Proceedings of the 24rd ACM/IEEE International Conference on Model Driven Engineering
Languages and Systems: Companion Proceedings, 2021, p. 6.
@DevOps 2021 (Monday)
Bridging JSONware/Modelware in Details
• 8 steps across meta layers (domain
independent/specific)
• Different stakeholders / different views
• Metalanguage Engineers (i.e., IETF) perform
manual steps
• Other stakeholders enjoy automation via
novel transformations (JsonSchema2Ecore)
and existing ones (e.g., Ecore2Xtext)
• Supporting Technologies:
EMF, Xtext, ATL, Xtend
: 7-8
Domain
Expert(s)
Tool
Provider(s)
Language
Engineer(s)
: 2,6
: 3-6
Meta-Language
Engineer
: 1-2
metaschema
JSONware
c2
Ecore
metalanguage
c2
metaschema
metamodel
Modelware (via EMF)
c2
Xtext
metagrammar
c2
metaschema
grammar
1
2
M3
M2
M1 document
(schema instance)
c2
schema
c2
schema
schema
metamodel
schema
grammar
document
model
schema
model
c2
c2
4
5
6
7
8
3
c2
schema
schema
model
c2
4
3
schema
metamodel
schema
grammar
5
6
document
(schema instance)
document
model
7
8
domain-specific
domain-independent
9
Let’s introduce it step by step
Approach: Generate Metaschema Artefacts
c2
metaschema
JSONware TS
c2
Ecore
metalanguage
c2
metaschema
metamodel
Modelware (via EMF)
c2
Xtext
metagrammar
c2
metaschema
grammar
1
2
M3
M2
M1 document
(schema instance)
c2
schema
c2
schema
schema
metamodel
schema
grammar
document
model
schema
model
c2
c2
4
5
6
7
8
3
c2
Meta-Language
Engineer
: 1-2
domain-independent
10
• Step 1: Metaschema Metamodel
and metaschema-based OCL
specification
• Step 2: Xtext grammar generation
and manual refactoring
Approach: Generate Metaschema Artefacts
document
(schema instance)
c2
metaschema
c2
schema
JSONware
c2
Ecore
metalanguage
metaschema
metamodel
Modelware (via EMF)
c2
Xtext
metagrammar
c2
metaschema
grammar
1
2
M3
M2
M1
c2
schema
schema
metamodel
schema
grammar
document
model
schema
model
c2
c2
4
5
6
7
8
3
c2
Meta-Language
Engineer
: 1-2
domain-independent
metaschema metamodel
11
+ OCL
M1
+ OCL
• Step 1: Metaschema Metamodel
and metaschema-based OCL
specification
• Step 2: Xtext grammar generation
and manual refactoring
Approach: Generate Metaschema Artefacts
metaschema
JSONware
c2
Ecore
metalanguage
c2
metaschema
metamodel
Modelware (via EMF)
c2
Xtext
metagrammar
c2
metaschema
grammar
1
2
M3
M2
document
(schema instance)
c2
schema
c2
schema
schema
metamodel
schema
grammar
document
model
schema
model
c2
c2
4
5
6
7
8
3
c2 c2
+ OCL
• Step 1: Metaschema Metamodel
and metaschema-based OCL
specification
• Step 2: Xtext grammar generation
and manual refactoring
Meta-Language
Engineer
: 1-2
domain-independent
12
+ OCL
Approach: Editing/Modeling Schema Documents
metaschema
JSONware
c2
Ecore
metalanguage
c2
metaschema
metamodel
Modelware (via EMF)
c2
Xtext
metagrammar
c2
metaschema
grammar
1
2
M3
M2
M1 document
(schema instance)
c2
schema
c2
schema
schema
metamodel
schema
grammar
document
model
schema
model
c2
c2
5
6
7
8
3
c2
c2
• Step 3: Schema Model in Modelware
• Step 4: JSONware/Modelware
bidirectional bridge
Data/Language
Engineer(s)
: 3-6
Shipyard Schema: CD stages as sequences of stages and then tasks
domain-specific
schema
domain-independent
13
+ OCL
3
schema
model
4
4
domain-specific
Approach: Generate Schema Artefacts
metaschema
JSONware
c2
Ecore
metalanguage
c2
metaschema
metamodel
Modelware (via EMF)
c2
Xtext
metagrammar
c2
metaschema
grammar
1
2
M3
M2
M1 document
(schema instance)
c2
schema
c2
schema
schema
metamodel
schema
grammar
document
model
schema
model
c2
c2
4
5
6
7
8
3
c2
c2
4
3
schema
grammar
6
• Step 5: Generate Schema Metamodel
• Step 6: Generate Schema Grammar
and
Shipyard Schema metamodel automatically
generated via JSONSchema to Ecore
schema
model
domain-independent
Data/Language
Engineer(s)
: 3-6
schema
metamodel
Modeling
Metaschema-based Validation (arbitrary warnings possible)
+ OCL
domain-specific OCL constraints
14
+ OCL
onSave (no errors) + OCL
5
schema
Approach: Modeling/Validating CD Workflow in Shipyard
metaschema
JSONware
c2
Ecore
metalanguage
c2
metaschema
metamodel
Modelware (via EMF)
c2
Xtext
metagrammar
c2
metaschema
grammar
1
2
M3
M2
M1
• Step 7: Modeling your own JSON document
as JSON schema instance
• Step 8: By construction compatibility with
JSONware (you are indeed editing in JSON
document
(schema instance)
c2
schema
c2
schema
schema
metamodel
schema
grammar
document
model
schema
model
c2
c2
4
5
6
7
8
3
c2
schema
schema
model
c2
4
3
schema
metamodel
schema
grammar
5
6
Continuous Delivery Workflow in Shipyard
7
8
domain-specific
domain-independent
: 7-8
Domain
Expert(s)
15
Modeling and Validation
+ OCL
+ OCL
+ OCL
document
model
document
(schema instance)
Practical Impact for DevOps Experts using Keptn.
RQ1: Is our approach capable of presenting
the different versions of the Shipyard
language initially defined with JSON
Schema?
Yes, we applied the approach for
4 Shipyard DSL versions so far.
RQ2: As the Shipyard language is subject to
evolution, can we support the co-evolution
of existing DevOps workflows?
Yes, we pave the way to co-evolution support
classifying changes in conformance
breaking/non-breaking changes.
16
Conclusions and Future Work
• We presented a bridge between JSONware and Modelware
(via Eclipse-based technologies)
• Goal: bringing the benefits of model-driven technologies to JSONware
• We concentrated on Modeling and Validation. Consistency Management
across JSON artefacts have been presented at DevOps workshop
• We are going to collect and analyse feedback from Keptn community to
assess the introduction of MDE to an MDE-agnostic community
17
Leveraging Model-Driven
Technologies for JSON Artefacts:
The Shipyard Case Study
Alessandro Colantoni, Antonio Garmendia, Luca Berardinelli, Manuel Wimmer
Institute for Business Informatics – Software Engineering Johannes Kepler University, Linz, Austria
Johannes Bräuer
Dynatrace GmbH, Linz
MODELS 2021, Practice and Innovation Track, Oct 14th, 2021 (virtual)
Thanks for your attention
Question Time
On JSONSchema2Ecore Transformation
Is bidirectional?
MDE Expert viewpoint: No.
• We provide a JSON Schema to Ecore transformation
• We do not provide (yet) an Ecore to JSON Schema. An arbitrary Ecore cannot be
transformed into JSON Schema
JSON Schema Expert (MDE agnostic) viewpoint: n.a.
• She/he is an unaware modeler thanks JSON Native concrete syntax preserved.
19
Context: JSON and JSON Schema
• Additional Properties: true
In this case any JSON fragment can be attached to a
schema instance.
We created the JSONDocumentFragment for this purpose,
to support validation of such JSON fragments within our
Xtext-based editors.
{
"name": "Alessandro",
"surname": "Colantoni“,
"affiliation": {
"universityName": "Johannes Kepler University",
"city": "Linz"
},
"contacts": [
{"email": "alessandro.colantoni@jku.at"},
{"phone": "+4373224684248"},
]
} .json
“name” : “value” pairs
[array]
{object}
JSON document / schema instance
JSON document / schema
{
"$schema": "http://json-schema.org/draft-07/schema#"
"type":"object",
"properties":{
"name":{"type":"string},
"surname":{"type":"string}
},
"additionalProperties":true
} .json
Reference to JSON Schema draft standard
contacts array property not foreseen but is allowed!
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://json-schema.org/draft-07/schema#",
"title": "Core schema meta-schema",
…
} .json
JSON document / (meta)schema instance
JSON document / (meta)schema
Defined by itself
20

More Related Content

What's hot

.Net framework components by naveen kumar veligeti
.Net framework components by naveen kumar veligeti.Net framework components by naveen kumar veligeti
.Net framework components by naveen kumar veligetiNaveen Kumar Veligeti
 
An isas presentation on .net framework 2.0 by vikash chandra das
An isas presentation on .net framework 2.0 by vikash chandra dasAn isas presentation on .net framework 2.0 by vikash chandra das
An isas presentation on .net framework 2.0 by vikash chandra dasVikash Chandra Das
 
Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5Jeff Blankenburg
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net FundamentalsAli Taki
 
The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern LanguageDimitris Kolovos
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2Eric Nelson
 
Visual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 OverviewVisual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 OverviewHarish Ranganathan
 
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)citizenmatt
 

What's hot (20)

.Net framework components by naveen kumar veligeti
.Net framework components by naveen kumar veligeti.Net framework components by naveen kumar veligeti
.Net framework components by naveen kumar veligeti
 
Microsoft.Net
Microsoft.NetMicrosoft.Net
Microsoft.Net
 
An isas presentation on .net framework 2.0 by vikash chandra das
An isas presentation on .net framework 2.0 by vikash chandra dasAn isas presentation on .net framework 2.0 by vikash chandra das
An isas presentation on .net framework 2.0 by vikash chandra das
 
Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5
 
Dotnet basics
Dotnet basicsDotnet basics
Dotnet basics
 
Core java(2)
Core java(2)Core java(2)
Core java(2)
 
Working in Visual Studio.Net
Working in Visual Studio.NetWorking in Visual Studio.Net
Working in Visual Studio.Net
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
.NET Vs J2EE
.NET Vs J2EE.NET Vs J2EE
.NET Vs J2EE
 
VB.net
VB.netVB.net
VB.net
 
The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern Language
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2
 
Visual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 OverviewVisual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 Overview
 
C# Unit 2 notes
C# Unit 2 notesC# Unit 2 notes
C# Unit 2 notes
 
.Net slid
.Net slid.Net slid
.Net slid
 
Namespaces in C#
Namespaces in C#Namespaces in C#
Namespaces in C#
 
COM
COMCOM
COM
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
 
C# Unit5 Notes
C# Unit5 NotesC# Unit5 Notes
C# Unit5 Notes
 

Similar to Leveraging Model-Driven Technologies for JSON

Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructurekaveirious
 
A Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization CapabilitiesA Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization CapabilitiesUniversity of Piraeus
 
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...Luca Berardinelli
 
Dataverse in the European Open Science Cloud
Dataverse in the European Open Science CloudDataverse in the European Open Science Cloud
Dataverse in the European Open Science Cloudvty
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and FutureBenoit Combemale
 
Resume_Dimitri_Dey_LTE_Android_Gmail
Resume_Dimitri_Dey_LTE_Android_GmailResume_Dimitri_Dey_LTE_Android_Gmail
Resume_Dimitri_Dey_LTE_Android_GmailDimitri Dey
 
Synechron_Candidate_Rajesh Gour
Synechron_Candidate_Rajesh GourSynechron_Candidate_Rajesh Gour
Synechron_Candidate_Rajesh GourRajesh Gour
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusWillert
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-oplbergmans
 
A Distributed Audio Personalization Framework over Android
A Distributed Audio Personalization Framework over AndroidA Distributed Audio Personalization Framework over Android
A Distributed Audio Personalization Framework over AndroidUniversity of Piraeus
 
Wiki dev nlp
Wiki dev nlpWiki dev nlp
Wiki dev nlpICSM 2010
 

Similar to Leveraging Model-Driven Technologies for JSON (20)

Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructure
 
A Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization CapabilitiesA Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization Capabilities
 
Resume
ResumeResume
Resume
 
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
Towards_Blended_Modeling_and_Simulation_of_DevOps_Processes_The_Keptn_Case_St...
 
Msr2021 tutorial-di penta
Msr2021 tutorial-di pentaMsr2021 tutorial-di penta
Msr2021 tutorial-di penta
 
Gaurav agarwal
Gaurav agarwalGaurav agarwal
Gaurav agarwal
 
Dataverse in the European Open Science Cloud
Dataverse in the European Open Science CloudDataverse in the European Open Science Cloud
Dataverse in the European Open Science Cloud
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and Future
 
Resume_Dimitri_Dey_LTE_Android_Gmail
Resume_Dimitri_Dey_LTE_Android_GmailResume_Dimitri_Dey_LTE_Android_Gmail
Resume_Dimitri_Dey_LTE_Android_Gmail
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Synechron_Candidate_Rajesh Gour
Synechron_Candidate_Rajesh GourSynechron_Candidate_Rajesh Gour
Synechron_Candidate_Rajesh Gour
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-op
 
A Distributed Audio Personalization Framework over Android
A Distributed Audio Personalization Framework over AndroidA Distributed Audio Personalization Framework over Android
A Distributed Audio Personalization Framework over Android
 
Ernest Morariu
Ernest MorariuErnest Morariu
Ernest Morariu
 
Wiki dev nlp
Wiki dev nlpWiki dev nlp
Wiki dev nlp
 
Yacks
YacksYacks
Yacks
 
Resume_eng
Resume_engResume_eng
Resume_eng
 
Resume
ResumeResume
Resume
 

More from Luca Berardinelli

Combining fUML and profiles for non-functional analysis based on model execut...
Combining fUML and profiles for non-functional analysis based on model execut...Combining fUML and profiles for non-functional analysis based on model execut...
Combining fUML and profiles for non-functional analysis based on model execut...Luca Berardinelli
 
Model Driven Engineering for Smart Cities
Model Driven Engineering for Smart Cities Model Driven Engineering for Smart Cities
Model Driven Engineering for Smart Cities Luca Berardinelli
 
Uncertainty-wise Engineering of IoT Cloud Systems
Uncertainty-wise Engineering of IoT Cloud SystemsUncertainty-wise Engineering of IoT Cloud Systems
Uncertainty-wise Engineering of IoT Cloud SystemsLuca Berardinelli
 
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...Luca Berardinelli
 
AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewLuca Berardinelli
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Luca Berardinelli
 
On The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveOn The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveLuca Berardinelli
 
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...Luca Berardinelli
 
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UMLECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UMLLuca Berardinelli
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...Luca Berardinelli
 
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...Luca Berardinelli
 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionLuca Berardinelli
 
Context-aware Performance Modeling and Analysis
Context-aware Performance Modeling and AnalysisContext-aware Performance Modeling and Analysis
Context-aware Performance Modeling and AnalysisLuca Berardinelli
 

More from Luca Berardinelli (14)

Combining fUML and profiles for non-functional analysis based on model execut...
Combining fUML and profiles for non-functional analysis based on model execut...Combining fUML and profiles for non-functional analysis based on model execut...
Combining fUML and profiles for non-functional analysis based on model execut...
 
Model Driven Engineering for Smart Cities
Model Driven Engineering for Smart Cities Model Driven Engineering for Smart Cities
Model Driven Engineering for Smart Cities
 
Uncertainty-wise Engineering of IoT Cloud Systems
Uncertainty-wise Engineering of IoT Cloud SystemsUncertainty-wise Engineering of IoT Cloud Systems
Uncertainty-wise Engineering of IoT Cloud Systems
 
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
COMBINING MODEL-DRIVEN ENGINEERING AND ELASTIC EXECUTION FOR TESTING UNCERTAI...
 
AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven View
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...
 
On The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveOn The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering Perspective
 
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
Model-Based Co-Evolution of Production Systems and their Libraries with Auto...
 
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UMLECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
ECMFA 2015 - Energy Consumption Analysis and Design with Foundational UML
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
 
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execut...
 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context Evolution
 
Mosquito
MosquitoMosquito
Mosquito
 
Context-aware Performance Modeling and Analysis
Context-aware Performance Modeling and AnalysisContext-aware Performance Modeling and Analysis
Context-aware Performance Modeling and Analysis
 

Recently uploaded

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 

Leveraging Model-Driven Technologies for JSON

  • 1. Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study Alessandro Colantoni, Antonio Garmendia, Luca Berardinelli, Manuel Wimmer Institute for Business Informatics – Software Engineering Johannes Kepler University, Linz, Austria Johannes Bräuer Dynatrace GmbH, Linz MODELS 2021, Practice and Innovation Track, Oct 14th, 2021 (virtual)
  • 2. Outline ◦Context: ▪ JSON & JSON Schema ▪ Use Case Scenarios ◦MDE for JSON/JSON Schema: ▪ Bridging Approach steps in details ▪ Case study in DevOps domain: Keptn and Shipyard DSL ◦Conclusions and Future Work 2
  • 3. Context: JSON and JSON Schema • JSON is an open, textual, human readable data serialization format (.json) with a wide range of application, primarily used in data exchange Web scenarios [1] IETF, “JSON Schema Draft 2020-12,” https://json-schema.org/draft/ 2020-12/json-schema-core.html, accessed: 2021-19-02. [2] JSON Schema meta-schema: https://json-schema.org/draft-07/schema { "name": "Alessandro", "surname": "Colantoni", "affiliation": { "universityName": "Johannes Kepler University", "city": "Linz" }, "contacts": [ {"email": "alessandro.colantoni@jku.at"}, {"phone": "+4373224684248"}, ] } .json “name” : “value” pairs [array] {object} JSON document / schema instance JSON document / schema • JSON Schema is a draft standard issued by IETF. A schema is “a JSON media type for defining the structure of JSON data. JSON Schema is intended to define validation, documentation, hyperlink navigation, and interaction control of JSON data.” [1] { "$schema": "http://json-schema.org/draft-07/schema#" "type":"object", "properties":{ "name":{"type":"string}, "surname":{"type":"string} }, "additionalProperties":true } .json Reference to JSON Schema draft standard contacts array property not foreseen but is allowed! • IETF publishes a JSON Schema Draft [2] every 6 months { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://json-schema.org/draft-07/schema#", "title": "Core schema meta-schema", … } .json JSON document / (meta)schema instance JSON document / (meta)schema Defined by itself 3
  • 4. Context: Actors and Use Cases Metaschema Specification Tool Support Domain-specific Activities (schemas and schema instances) Tool Provider(s) Domain Expert(s) Data/Language Engineer(s) Schema Specification Managing (meta)schemas and schema instances. Typical tools include editors, parsers, validators, “utilities”… Data Engineers define data structures. JSON Schema is used also for defining the structure of “scripting languages”. JSON users needing JSON for their domain. This is the largest category. IETF is issuing and maintaining metaschema drafts, i.e., IETF. https://json-schema.org/implementations.html JSON users schema instance c2 metaschema c2 schema Now… Meta-Language Engineer 4
  • 5. Contributions: Bridging JSONware/Modelware (1) Metaschema Specification Tool Support Domain-specific Activities (schemas and schema instances) Tool Provider(s) Domain Expert(s) Data/Language Engineer(s) Schema Specification JSON users schema instance c2 metaschema c2 schema JSONware TS M3 M2 M1 1 Modelware TS model c2 metalanguage c2 metamodel M3 M2 M1 1 Semi-automated JSONware/Modelware Bridging Approach. Metalayers are explicitly spotted in JSONware. Meta-Language Engineer …After 5
  • 6. Contributions: Modeling and Validation Support (2) Metaschema Specification Tool Support Domain-specific Activities (schemas and schema instances) Tool Provider(s) Domain Expert(s) Data/Language Engineer(s) Schema Specification JSON users schema instance c2 metaschema c2 schema JSONware TS M3 M2 M1 1 Modelware TS model c2 metalanguage c2 metamodel M3 M2 M1 Enabling Modelware-native Tool Support in addition to JSONware one, thanks to tool support generarion capabilities of language workbenches. (Meta)Language Engineers become potential Tool Providers Modelware-native Support «extend» Validation Support Modeling Support «extend» «extend» «include» «include» Consistency Checking Support «include» 2 2 …After Meta-Language Engineer Colantoni, B. Horvath, A. Horvath, L. Berardinelli, and M. Wimmer, “Towards Continuous Consistency Checking of DevOps Artefacts,” in Proceedings of the 24rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, 2021, p. 6. 6 @DevOps 2021 (Monday)
  • 7. Contributions: Transparent to JSON users (3) Metaschema Specification Tool Support Domain-specific Activities (schemas and schema instances) Tool Provider(s) Domain Expert(s) Data/Language Engineer(s) Schema Specification JSON users schema instance c2 metaschema c2 schema MDE users JSONware TS M3 M2 M1 1 Modelware TS model c2 metalanguage c2 metamodel M3 M2 M1 «include» Transparent Approach for JSON users, typically MDE-agnostic, by adopting JSON textual concrete syntax 3 …After Meta-Language Engineer JSONware-native support 3 Modelware-native Support «extend» Validation Support Modeling Support «extend» «extend» «include» «include» Consistency Checking Support «include» 2 7 Colantoni, B. Horvath, A. Horvath, L. Berardinelli, and M. Wimmer, “Towards Continuous Consistency Checking of DevOps Artefacts,” in Proceedings of the 24rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, 2021, p. 6. @DevOps 2021 (Monday)
  • 8. Case Study Scenario: Shipyard DSL for Keptn (CD) Metaschema Specification Tool Support Continuous Delivery Workflow Specification (DevOps) Tool Provider(s) Domain Expert(s) Meta-Language Engineer Data/Language Engineer(s) Schema Specification JSON users schema instance c2 metaschema c2 schema MDE users JSONware TS M3 M2 M1 1 Modelware TS model c2 metalanguage c2 metamodel M3 M2 M1 is an open-source project for orchestrating continuous delivery (CD) and operational processes of cloud-native applications https://keptn.sh/ JSONware-native support 3 Modelware-native Support «extend» Validation Support Modeling Support «extend» «extend» «include» «include» Consistency Checking Support «include» 2 «include» 8 Colantoni, B. Horvath, A. Horvath, L. Berardinelli, and M. Wimmer, “Towards Continuous Consistency Checking of DevOps Artefacts,” in Proceedings of the 24rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, 2021, p. 6. @DevOps 2021 (Monday)
  • 9. Bridging JSONware/Modelware in Details • 8 steps across meta layers (domain independent/specific) • Different stakeholders / different views • Metalanguage Engineers (i.e., IETF) perform manual steps • Other stakeholders enjoy automation via novel transformations (JsonSchema2Ecore) and existing ones (e.g., Ecore2Xtext) • Supporting Technologies: EMF, Xtext, ATL, Xtend : 7-8 Domain Expert(s) Tool Provider(s) Language Engineer(s) : 2,6 : 3-6 Meta-Language Engineer : 1-2 metaschema JSONware c2 Ecore metalanguage c2 metaschema metamodel Modelware (via EMF) c2 Xtext metagrammar c2 metaschema grammar 1 2 M3 M2 M1 document (schema instance) c2 schema c2 schema schema metamodel schema grammar document model schema model c2 c2 4 5 6 7 8 3 c2 schema schema model c2 4 3 schema metamodel schema grammar 5 6 document (schema instance) document model 7 8 domain-specific domain-independent 9 Let’s introduce it step by step
  • 10. Approach: Generate Metaschema Artefacts c2 metaschema JSONware TS c2 Ecore metalanguage c2 metaschema metamodel Modelware (via EMF) c2 Xtext metagrammar c2 metaschema grammar 1 2 M3 M2 M1 document (schema instance) c2 schema c2 schema schema metamodel schema grammar document model schema model c2 c2 4 5 6 7 8 3 c2 Meta-Language Engineer : 1-2 domain-independent 10 • Step 1: Metaschema Metamodel and metaschema-based OCL specification • Step 2: Xtext grammar generation and manual refactoring
  • 11. Approach: Generate Metaschema Artefacts document (schema instance) c2 metaschema c2 schema JSONware c2 Ecore metalanguage metaschema metamodel Modelware (via EMF) c2 Xtext metagrammar c2 metaschema grammar 1 2 M3 M2 M1 c2 schema schema metamodel schema grammar document model schema model c2 c2 4 5 6 7 8 3 c2 Meta-Language Engineer : 1-2 domain-independent metaschema metamodel 11 + OCL M1 + OCL • Step 1: Metaschema Metamodel and metaschema-based OCL specification • Step 2: Xtext grammar generation and manual refactoring
  • 12. Approach: Generate Metaschema Artefacts metaschema JSONware c2 Ecore metalanguage c2 metaschema metamodel Modelware (via EMF) c2 Xtext metagrammar c2 metaschema grammar 1 2 M3 M2 document (schema instance) c2 schema c2 schema schema metamodel schema grammar document model schema model c2 c2 4 5 6 7 8 3 c2 c2 + OCL • Step 1: Metaschema Metamodel and metaschema-based OCL specification • Step 2: Xtext grammar generation and manual refactoring Meta-Language Engineer : 1-2 domain-independent 12 + OCL
  • 13. Approach: Editing/Modeling Schema Documents metaschema JSONware c2 Ecore metalanguage c2 metaschema metamodel Modelware (via EMF) c2 Xtext metagrammar c2 metaschema grammar 1 2 M3 M2 M1 document (schema instance) c2 schema c2 schema schema metamodel schema grammar document model schema model c2 c2 5 6 7 8 3 c2 c2 • Step 3: Schema Model in Modelware • Step 4: JSONware/Modelware bidirectional bridge Data/Language Engineer(s) : 3-6 Shipyard Schema: CD stages as sequences of stages and then tasks domain-specific schema domain-independent 13 + OCL 3 schema model 4 4
  • 14. domain-specific Approach: Generate Schema Artefacts metaschema JSONware c2 Ecore metalanguage c2 metaschema metamodel Modelware (via EMF) c2 Xtext metagrammar c2 metaschema grammar 1 2 M3 M2 M1 document (schema instance) c2 schema c2 schema schema metamodel schema grammar document model schema model c2 c2 4 5 6 7 8 3 c2 c2 4 3 schema grammar 6 • Step 5: Generate Schema Metamodel • Step 6: Generate Schema Grammar and Shipyard Schema metamodel automatically generated via JSONSchema to Ecore schema model domain-independent Data/Language Engineer(s) : 3-6 schema metamodel Modeling Metaschema-based Validation (arbitrary warnings possible) + OCL domain-specific OCL constraints 14 + OCL onSave (no errors) + OCL 5 schema
  • 15. Approach: Modeling/Validating CD Workflow in Shipyard metaschema JSONware c2 Ecore metalanguage c2 metaschema metamodel Modelware (via EMF) c2 Xtext metagrammar c2 metaschema grammar 1 2 M3 M2 M1 • Step 7: Modeling your own JSON document as JSON schema instance • Step 8: By construction compatibility with JSONware (you are indeed editing in JSON document (schema instance) c2 schema c2 schema schema metamodel schema grammar document model schema model c2 c2 4 5 6 7 8 3 c2 schema schema model c2 4 3 schema metamodel schema grammar 5 6 Continuous Delivery Workflow in Shipyard 7 8 domain-specific domain-independent : 7-8 Domain Expert(s) 15 Modeling and Validation + OCL + OCL + OCL document model document (schema instance)
  • 16. Practical Impact for DevOps Experts using Keptn. RQ1: Is our approach capable of presenting the different versions of the Shipyard language initially defined with JSON Schema? Yes, we applied the approach for 4 Shipyard DSL versions so far. RQ2: As the Shipyard language is subject to evolution, can we support the co-evolution of existing DevOps workflows? Yes, we pave the way to co-evolution support classifying changes in conformance breaking/non-breaking changes. 16
  • 17. Conclusions and Future Work • We presented a bridge between JSONware and Modelware (via Eclipse-based technologies) • Goal: bringing the benefits of model-driven technologies to JSONware • We concentrated on Modeling and Validation. Consistency Management across JSON artefacts have been presented at DevOps workshop • We are going to collect and analyse feedback from Keptn community to assess the introduction of MDE to an MDE-agnostic community 17
  • 18. Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study Alessandro Colantoni, Antonio Garmendia, Luca Berardinelli, Manuel Wimmer Institute for Business Informatics – Software Engineering Johannes Kepler University, Linz, Austria Johannes Bräuer Dynatrace GmbH, Linz MODELS 2021, Practice and Innovation Track, Oct 14th, 2021 (virtual) Thanks for your attention Question Time
  • 19. On JSONSchema2Ecore Transformation Is bidirectional? MDE Expert viewpoint: No. • We provide a JSON Schema to Ecore transformation • We do not provide (yet) an Ecore to JSON Schema. An arbitrary Ecore cannot be transformed into JSON Schema JSON Schema Expert (MDE agnostic) viewpoint: n.a. • She/he is an unaware modeler thanks JSON Native concrete syntax preserved. 19
  • 20. Context: JSON and JSON Schema • Additional Properties: true In this case any JSON fragment can be attached to a schema instance. We created the JSONDocumentFragment for this purpose, to support validation of such JSON fragments within our Xtext-based editors. { "name": "Alessandro", "surname": "Colantoni“, "affiliation": { "universityName": "Johannes Kepler University", "city": "Linz" }, "contacts": [ {"email": "alessandro.colantoni@jku.at"}, {"phone": "+4373224684248"}, ] } .json “name” : “value” pairs [array] {object} JSON document / schema instance JSON document / schema { "$schema": "http://json-schema.org/draft-07/schema#" "type":"object", "properties":{ "name":{"type":"string}, "surname":{"type":"string} }, "additionalProperties":true } .json Reference to JSON Schema draft standard contacts array property not foreseen but is allowed! { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://json-schema.org/draft-07/schema#", "title": "Core schema meta-schema", … } .json JSON document / (meta)schema instance JSON document / (meta)schema Defined by itself 20