SlideShare a Scribd company logo
Towards a Language Server Protocol
Infrastructure for Graphical Modeling
Roberto Rodriguez-Echeverria, Javier L. Cánovas, Manuel Wimmer and Jordi Cabot
Context
Complex addition of new languages
Complex migration to Web/Mobile
The development of full-fledge
graphical modeling editors is a
challenging and complex task.
Context
User experience Language support
Complex addition of new languages
Complex migration to Web/Mobile
The development of full-fledge
graphical modeling editors is a
challenging and complex task.
Two main concerns to consider separately (?)
LSP
Language Server Protocol
IDE Language servers
MxN problem (3x9) to M+N problem (3+9)
https://langserver.org/
Problem
No scientific assessment or tool provider position on:
LSP provides
enough
expressiveness
for graphical
manipulations
LSP should be
extended to
support specific
features of
graphical
edition
It would be best
to ignore LSP in
graphical
modeling
Background: graphical modeling editors
Its development is more complex than textual modeling editors development:
- Atomic unit: char vs node-edge
- Processing: from top-left to bottom-right vs node relationships
- Serialization: raw text vs specific format (e.g. XMI)
Background: graphical modeling editors
Editor & Views
Semantic Operations
Diagrammatic
Operations
Auxiliary Operations
Graphical modeling editor Selection (type)
Hover (completion)
Completion (pop-up)
CRUD (elements)
CRUD (properties)
Auto-layout
Validation
...
Selection (free)
Hover (information)
Zoom
Align
Filter
Group
Hide
Storage
Initialization
Shutdown
Main operations in model editing categorized
Background: Language Server Protocol 3.0
https://microsoft.github.io/language-server-protocol/overview
Background: Language Server Protocol 3.0
Main issue: designed for textual
programming languages
● Text ranges are a basic type
=> making easy for clients to
connect to different LS in a seamless
way, because the protocol is
completely language-agnostic
NotificationMessage {
method : "textDocument/didChange",
params : {
textDocument : {
version : 2
},
contentChanges : [
{ range : {
start : {
line : 21,
character : 6
},
end : {
line : 33,
character : 6
}
}
text : ""
}]}}
Challenges
Reducing development and
maintenance costs for
graphical modeling editors
Using the Web as the platform
for modeling editors
deployment while reusing
modeling frameworks for
language servers
Managing different
languages developed with
different modeling platforms
from a single editor
Providing a single user
experience of modeling
editors so users can easily
deal with different languages
Vision: decoupled architecture
Editor & Views
Semantic Operations
Diagramatic Operations
Auxiliary Operations
Graphical modeling editor
11
Modeling framework
(platform specific)
Vision: decoupled architecture
Editor & Views
Diagramatic
Operations
Graphical modeling client
Semantic
Operations
Diagramatic
Operations
Auxiliary Operations
Graphical language serverPartial decoupling
Reduced client-server
bandwidth
Specialized UX
Simpler language server
Hybrid representations
Complex client/UX plat.
Poor extensibility (other
languages)
-
+
Semantic
Operations
12
Modeling framework
(platform specific)
UX platform
(modeling framework ported)
Vision: decoupled architecture
Editor & Views
Diagramatic
Operations
Graphical modeling client
Semantic Operations
Diagramatic
Operations
Auxiliary Operations
Graphical language serverFull decoupling
Reusing MFs
Platform-agnostic editor
Multi-language editor
Complex server
High bandwidth
consumption
-
+
13
Modeling framework
(platform specific)
UX platform
Vision: communication protocol
Using LSP
Standard
Reuse LSP tools
Future features
For textual langs.
No hybrid
representations
Extending LSP
Standard
Reuse LSP tools
Future features
Hybrid
representations
Concrete syntax
support at client
Textual rep. req.
New protocol
Element ids
Optimized for gme
operations
Standard (?)
LSP overlapping
LSP compatibility
-
+ +
-
+
-
Vision: communication protocol
Although the pros of defining a new protocol or
extending LSP may be substantial, we argue that
using LSP itself plus a textual representation is
expressive enough for graphical languages, and
most of its drawbacks may be properly addressed by
providing the needed LSP infrastructure.
LSP provides
enough
expressiveness
for graphical
manipulations
LSP infrastructure for graphical modeling
Intermediate Representation Format
A JSON-based format:
● abstract,
● concrete
● and diagrammatic properties
Design driven for two main forces:
● encompassing abstract and concrete
syntaxes in a single resource
● provision of the necessary
information to the client
“Node-edge” representation
Intermediate Representation Format
Mapping GME operations into LSP
Identification of operations
Reviewed three MDE
graphical editing tools:
● Papyrus,
● Sirius
● and GMF
Study of operations
Defined a comprehensive set
of use cases to illustrate how
we can map user operations
into LSP messages by
leveraging on IRF
1 2
Mapping GME operations into LSP
Identification of operations
Reviewed three MDE
graphical editing tools:
● Papyrus,
● Sirius
● and GMF
1
Mapping GME operations into LSP
Study of operations
Defined a comprehensive set
of use cases to illustrate how
we can map user operations
into LSP messages by
leveraging on IRF
2https://som-research.github.io/lsp4gml/cases.html
Mapping GME operations into LSP
P1
C1
01 {
02 "elements" : [
03 "node" : {
04 "id" : "c1",
05 "type" : "class",
06 "abstract" : {
07 name : "C1",
08 qualifiedName : "P1::C1",
09 ...
10 },
11 "concrete" : {
12 width : 20,
13 Height : 20
14 },
15 "diagram" : {
16 x : 15,
17 y : 15
18 },
19 ...
20 },
21 "node" : {
22 "id" : "p1",
23 "type" : "package",
24 "abstract" : {
25 name : "P1", ... }
26 "concrete" : {
27 width : 100,
28 Height : 100 },
29 "diagram" : {
30 x : 0,
31 y : 0 },
32 ...
33 },
34 "edge" : {
35 "id" : "e1",
36 "type" : "ownedClasses",
37 "group" : "true",
38 "origin" : "p1",
39 "target" : "c1",
40 "abstract" : {
...
Maybe, I don’t need it
Mapping GME operations into LSP
01 {
02 "elements" : [
03 "node" : {
04 "id" : "c1",
05 "type" : "class",
06 "abstract" : {
07 name : "C1",
08 qualifiedName : "P1::C1",
09 ...
10 },
11 "concrete" : {
12 width : 20,
13 Height : 20
14 },
15 "diagram" : {
16 x : 15,
17 y : 15
18 },
19 ...
20 },
21 "node" : {
22 "id" : "p1",
23 "type" : "package",
24 "abstract" : {
25 name : "P1", ... }
26 "concrete" : {
27 width : 100,
28 Height : 100 },
29 "diagram" : {
30 x : 0,
31 y : 0 },
32 ...
33 },
34 "edge" : {
35 "id" : "e1",
36 "type" : "ownedClasses",
37 "group" : "true",
38 "origin" : "p1",
39 "target" : "c1",
40 "abstract" : {
...
P1
C1
Let’s delete P1
Mapping GME operations into LSP
NotificationMessage {
method :
"textDocument/didChange",
params : {
textDocument : {
version : 2
},
contentChanges : [
{ range : {
start : {
line : 21,
character : 6
},
end : {
line : 33,
character : 6
}
}
text : ""
}]}}
RequestMessage {
jsonrpc : "2.0",
id : "0001",
method: "workspace/ApplyEdit",
params : {
edit : {
documentChanges : [
{
textDocument : { version: 2 },
edits : [
{ range : {
start : {
line : 03,
character : 00 },
end : {
line : 35,
character : 00 }
},
newtext: ""
}]]}}}
ResponseMessage{
jsonrpc : "2.0",
id : "0001",
result : { applied : true }
}
Client => Server Server => Client Client => Server
Mapping GME operations into LSP
01 {
02 "elements" : []
03 }
D’oh!
Proof of Concept
MDETools 2018
“An LSP infrastructure to build
EMF language servers for
Web-deployable model editors”
https://github.com/SOM-Research/lsp4gml
Conclusions and Future Work
We discussed different alternatives of clients, servers and the LSP usages for
decoupling graphical language editors.
We described an approach relying on standard LSP and a text-based model
representation shared between clients and servers.
Roadmap:
● Automatic generation of graphical language servers
○ To what extent is feasible?
● Performance assessment
○ bandwidth optimization and server-side enhancements.
Decoupling GME dev into a client-server architecture
using a convenient protocol is a key approach.
Let’s use an open common protocol to share
our graphical language servers
Final
Remark
Thank you
Towards a Language Server Protocol
Infrastructure for Graphical Modeling
Roberto Rodriguez-Echeverria, Javier L. Cánovas, Manuel Wimmer and Jordi Cabot
Ad

More Related Content

What's hot (20)

C# Generic collections
C# Generic collectionsC# Generic collections
C# Generic collections
Prem Kumar Badri
 
Rapid prototyping
Rapid prototypingRapid prototyping
Rapid prototyping
Yevgeniy Brikman
 
Compiler Design Unit 2
Compiler Design Unit 2Compiler Design Unit 2
Compiler Design Unit 2
Jena Catherine Bel D
 
Advanced angular
Advanced angularAdvanced angular
Advanced angular
Sumit Kumar Rakshit
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript Promises
Derek Willian Stavis
 
React & GraphQL
React & GraphQLReact & GraphQL
React & GraphQL
Nikolas Burk
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
Bhargav Anadkat
 
Yaml
YamlYaml
Yaml
Christoph Santschi
 
Kafka Tutorial - basics of the Kafka streaming platform
Kafka Tutorial - basics of the Kafka streaming platformKafka Tutorial - basics of the Kafka streaming platform
Kafka Tutorial - basics of the Kafka streaming platform
Jean-Paul Azar
 
Hacking Jenkins
Hacking JenkinsHacking Jenkins
Hacking Jenkins
Miro Cupak
 
Intro to Asynchronous Javascript
Intro to Asynchronous JavascriptIntro to Asynchronous Javascript
Intro to Asynchronous Javascript
Garrett Welson
 
Context free languages
Context free languagesContext free languages
Context free languages
Jahurul Islam
 
Git
GitGit
Git
Mayank Patel
 
The Integration of Laravel with Swoole
The Integration of Laravel with SwooleThe Integration of Laravel with Swoole
The Integration of Laravel with Swoole
Albert Chen
 
An Introduction to ANTLR
An Introduction to ANTLRAn Introduction to ANTLR
An Introduction to ANTLR
Morteza Zakeri
 
Introduction to graphQL
Introduction to graphQLIntroduction to graphQL
Introduction to graphQL
Muhilvarnan V
 
Introduction to gRPC
Introduction to gRPCIntroduction to gRPC
Introduction to gRPC
Prakash Divy
 
Ppt of c vs c#
Ppt of c vs c#Ppt of c vs c#
Ppt of c vs c#
shubhra chauhan
 
Html5-Web-Storage
Html5-Web-StorageHtml5-Web-Storage
Html5-Web-Storage
Mindfire Solutions
 
JavaScript Conditional Statements
JavaScript Conditional StatementsJavaScript Conditional Statements
JavaScript Conditional Statements
Marlon Jamera
 

Similar to Towards a language server protocol infrastructure for graphical modeling (20)

DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashups
aliraza786
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
OSCON Byrum
 
An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...
Roberto Rodriguez-Echeverria
 
INAC Online Hazards Database App
INAC Online Hazards Database AppINAC Online Hazards Database App
INAC Online Hazards Database App
Gerry James
 
R programming for statistics and dash board
R programming for statistics and dash boardR programming for statistics and dash board
R programming for statistics and dash board
SrinivasacharG1
 
R scripts for statistics and dashboard designs
R scripts for statistics and dashboard designsR scripts for statistics and dashboard designs
R scripts for statistics and dashboard designs
SrinivasacharG1
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
GoDataDriven
 
pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentation
Thomas Paviot
 
Open Source GIS Workshop
Open Source GIS WorkshopOpen Source GIS Workshop
Open Source GIS Workshop
Jason Dalton
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDB
Max Neunhöffer
 
OneTeam Media Server
OneTeam Media ServerOneTeam Media Server
OneTeam Media Server
Mickaël Rémond
 
MLlib sparkmeetup_8_6_13_final_reduced
MLlib sparkmeetup_8_6_13_final_reducedMLlib sparkmeetup_8_6_13_final_reduced
MLlib sparkmeetup_8_6_13_final_reduced
Chao Chen
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
Matthew Gerring
 
Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutes
UGIF
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
David Galeano
 
OpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroomOpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroom
Facultad de Informática UCM
 
map Reduce.pptx
map Reduce.pptxmap Reduce.pptx
map Reduce.pptx
habibaabderrahim1
 
Advanced Model Inferencing leveraging Kubeflow Serving, KNative and Istio
Advanced Model Inferencing leveraging Kubeflow Serving, KNative and IstioAdvanced Model Inferencing leveraging Kubeflow Serving, KNative and Istio
Advanced Model Inferencing leveraging Kubeflow Serving, KNative and Istio
Animesh Singh
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thrift
Talentica Software
 
DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashups
aliraza786
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
OSCON Byrum
 
An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...An LSP infrastructure to build EMF language servers for Web-deployable model ...
An LSP infrastructure to build EMF language servers for Web-deployable model ...
Roberto Rodriguez-Echeverria
 
INAC Online Hazards Database App
INAC Online Hazards Database AppINAC Online Hazards Database App
INAC Online Hazards Database App
Gerry James
 
R programming for statistics and dash board
R programming for statistics and dash boardR programming for statistics and dash board
R programming for statistics and dash board
SrinivasacharG1
 
R scripts for statistics and dashboard designs
R scripts for statistics and dashboard designsR scripts for statistics and dashboard designs
R scripts for statistics and dashboard designs
SrinivasacharG1
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
GoDataDriven
 
pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentation
Thomas Paviot
 
Open Source GIS Workshop
Open Source GIS WorkshopOpen Source GIS Workshop
Open Source GIS Workshop
Jason Dalton
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDB
Max Neunhöffer
 
MLlib sparkmeetup_8_6_13_final_reduced
MLlib sparkmeetup_8_6_13_final_reducedMLlib sparkmeetup_8_6_13_final_reduced
MLlib sparkmeetup_8_6_13_final_reduced
Chao Chen
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
Matthew Gerring
 
Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutes
UGIF
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
David Galeano
 
OpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroomOpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroom
Facultad de Informática UCM
 
Advanced Model Inferencing leveraging Kubeflow Serving, KNative and Istio
Advanced Model Inferencing leveraging Kubeflow Serving, KNative and IstioAdvanced Model Inferencing leveraging Kubeflow Serving, KNative and Istio
Advanced Model Inferencing leveraging Kubeflow Serving, KNative and Istio
Animesh Singh
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thrift
Talentica Software
 
Ad

Recently uploaded (20)

WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
saimabibi60507
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by stepImplementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
Best Practices for Collaborating with 3D Artists in Mobile Game Development
Best Practices for Collaborating with 3D Artists in Mobile Game DevelopmentBest Practices for Collaborating with 3D Artists in Mobile Game Development
Best Practices for Collaborating with 3D Artists in Mobile Game Development
Juego Studios
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025
younisnoman75
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Innovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at allInnovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at all
ayeshakanwal75
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
saimabibi60507
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by stepImplementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
Best Practices for Collaborating with 3D Artists in Mobile Game Development
Best Practices for Collaborating with 3D Artists in Mobile Game DevelopmentBest Practices for Collaborating with 3D Artists in Mobile Game Development
Best Practices for Collaborating with 3D Artists in Mobile Game Development
Juego Studios
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025DVDFab Crack FREE Download Latest Version 2025
DVDFab Crack FREE Download Latest Version 2025
younisnoman75
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Innovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at allInnovative Approaches to Software Dev no good at all
Innovative Approaches to Software Dev no good at all
ayeshakanwal75
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Ad

Towards a language server protocol infrastructure for graphical modeling

  • 1. Towards a Language Server Protocol Infrastructure for Graphical Modeling Roberto Rodriguez-Echeverria, Javier L. Cánovas, Manuel Wimmer and Jordi Cabot
  • 2. Context Complex addition of new languages Complex migration to Web/Mobile The development of full-fledge graphical modeling editors is a challenging and complex task.
  • 3. Context User experience Language support Complex addition of new languages Complex migration to Web/Mobile The development of full-fledge graphical modeling editors is a challenging and complex task. Two main concerns to consider separately (?)
  • 4. LSP Language Server Protocol IDE Language servers MxN problem (3x9) to M+N problem (3+9) https://langserver.org/
  • 5. Problem No scientific assessment or tool provider position on: LSP provides enough expressiveness for graphical manipulations LSP should be extended to support specific features of graphical edition It would be best to ignore LSP in graphical modeling
  • 6. Background: graphical modeling editors Its development is more complex than textual modeling editors development: - Atomic unit: char vs node-edge - Processing: from top-left to bottom-right vs node relationships - Serialization: raw text vs specific format (e.g. XMI)
  • 7. Background: graphical modeling editors Editor & Views Semantic Operations Diagrammatic Operations Auxiliary Operations Graphical modeling editor Selection (type) Hover (completion) Completion (pop-up) CRUD (elements) CRUD (properties) Auto-layout Validation ... Selection (free) Hover (information) Zoom Align Filter Group Hide Storage Initialization Shutdown Main operations in model editing categorized
  • 8. Background: Language Server Protocol 3.0 https://microsoft.github.io/language-server-protocol/overview
  • 9. Background: Language Server Protocol 3.0 Main issue: designed for textual programming languages ● Text ranges are a basic type => making easy for clients to connect to different LS in a seamless way, because the protocol is completely language-agnostic NotificationMessage { method : "textDocument/didChange", params : { textDocument : { version : 2 }, contentChanges : [ { range : { start : { line : 21, character : 6 }, end : { line : 33, character : 6 } } text : "" }]}}
  • 10. Challenges Reducing development and maintenance costs for graphical modeling editors Using the Web as the platform for modeling editors deployment while reusing modeling frameworks for language servers Managing different languages developed with different modeling platforms from a single editor Providing a single user experience of modeling editors so users can easily deal with different languages
  • 11. Vision: decoupled architecture Editor & Views Semantic Operations Diagramatic Operations Auxiliary Operations Graphical modeling editor 11 Modeling framework (platform specific)
  • 12. Vision: decoupled architecture Editor & Views Diagramatic Operations Graphical modeling client Semantic Operations Diagramatic Operations Auxiliary Operations Graphical language serverPartial decoupling Reduced client-server bandwidth Specialized UX Simpler language server Hybrid representations Complex client/UX plat. Poor extensibility (other languages) - + Semantic Operations 12 Modeling framework (platform specific) UX platform (modeling framework ported)
  • 13. Vision: decoupled architecture Editor & Views Diagramatic Operations Graphical modeling client Semantic Operations Diagramatic Operations Auxiliary Operations Graphical language serverFull decoupling Reusing MFs Platform-agnostic editor Multi-language editor Complex server High bandwidth consumption - + 13 Modeling framework (platform specific) UX platform
  • 14. Vision: communication protocol Using LSP Standard Reuse LSP tools Future features For textual langs. No hybrid representations Extending LSP Standard Reuse LSP tools Future features Hybrid representations Concrete syntax support at client Textual rep. req. New protocol Element ids Optimized for gme operations Standard (?) LSP overlapping LSP compatibility - + + - + -
  • 15. Vision: communication protocol Although the pros of defining a new protocol or extending LSP may be substantial, we argue that using LSP itself plus a textual representation is expressive enough for graphical languages, and most of its drawbacks may be properly addressed by providing the needed LSP infrastructure. LSP provides enough expressiveness for graphical manipulations
  • 16. LSP infrastructure for graphical modeling
  • 17. Intermediate Representation Format A JSON-based format: ● abstract, ● concrete ● and diagrammatic properties Design driven for two main forces: ● encompassing abstract and concrete syntaxes in a single resource ● provision of the necessary information to the client “Node-edge” representation
  • 19. Mapping GME operations into LSP Identification of operations Reviewed three MDE graphical editing tools: ● Papyrus, ● Sirius ● and GMF Study of operations Defined a comprehensive set of use cases to illustrate how we can map user operations into LSP messages by leveraging on IRF 1 2
  • 20. Mapping GME operations into LSP Identification of operations Reviewed three MDE graphical editing tools: ● Papyrus, ● Sirius ● and GMF 1
  • 21. Mapping GME operations into LSP Study of operations Defined a comprehensive set of use cases to illustrate how we can map user operations into LSP messages by leveraging on IRF 2https://som-research.github.io/lsp4gml/cases.html
  • 22. Mapping GME operations into LSP P1 C1 01 { 02 "elements" : [ 03 "node" : { 04 "id" : "c1", 05 "type" : "class", 06 "abstract" : { 07 name : "C1", 08 qualifiedName : "P1::C1", 09 ... 10 }, 11 "concrete" : { 12 width : 20, 13 Height : 20 14 }, 15 "diagram" : { 16 x : 15, 17 y : 15 18 }, 19 ... 20 }, 21 "node" : { 22 "id" : "p1", 23 "type" : "package", 24 "abstract" : { 25 name : "P1", ... } 26 "concrete" : { 27 width : 100, 28 Height : 100 }, 29 "diagram" : { 30 x : 0, 31 y : 0 }, 32 ... 33 }, 34 "edge" : { 35 "id" : "e1", 36 "type" : "ownedClasses", 37 "group" : "true", 38 "origin" : "p1", 39 "target" : "c1", 40 "abstract" : { ... Maybe, I don’t need it
  • 23. Mapping GME operations into LSP 01 { 02 "elements" : [ 03 "node" : { 04 "id" : "c1", 05 "type" : "class", 06 "abstract" : { 07 name : "C1", 08 qualifiedName : "P1::C1", 09 ... 10 }, 11 "concrete" : { 12 width : 20, 13 Height : 20 14 }, 15 "diagram" : { 16 x : 15, 17 y : 15 18 }, 19 ... 20 }, 21 "node" : { 22 "id" : "p1", 23 "type" : "package", 24 "abstract" : { 25 name : "P1", ... } 26 "concrete" : { 27 width : 100, 28 Height : 100 }, 29 "diagram" : { 30 x : 0, 31 y : 0 }, 32 ... 33 }, 34 "edge" : { 35 "id" : "e1", 36 "type" : "ownedClasses", 37 "group" : "true", 38 "origin" : "p1", 39 "target" : "c1", 40 "abstract" : { ... P1 C1 Let’s delete P1
  • 24. Mapping GME operations into LSP NotificationMessage { method : "textDocument/didChange", params : { textDocument : { version : 2 }, contentChanges : [ { range : { start : { line : 21, character : 6 }, end : { line : 33, character : 6 } } text : "" }]}} RequestMessage { jsonrpc : "2.0", id : "0001", method: "workspace/ApplyEdit", params : { edit : { documentChanges : [ { textDocument : { version: 2 }, edits : [ { range : { start : { line : 03, character : 00 }, end : { line : 35, character : 00 } }, newtext: "" }]]}}} ResponseMessage{ jsonrpc : "2.0", id : "0001", result : { applied : true } } Client => Server Server => Client Client => Server
  • 25. Mapping GME operations into LSP 01 { 02 "elements" : [] 03 } D’oh!
  • 26. Proof of Concept MDETools 2018 “An LSP infrastructure to build EMF language servers for Web-deployable model editors” https://github.com/SOM-Research/lsp4gml
  • 27. Conclusions and Future Work We discussed different alternatives of clients, servers and the LSP usages for decoupling graphical language editors. We described an approach relying on standard LSP and a text-based model representation shared between clients and servers. Roadmap: ● Automatic generation of graphical language servers ○ To what extent is feasible? ● Performance assessment ○ bandwidth optimization and server-side enhancements.
  • 28. Decoupling GME dev into a client-server architecture using a convenient protocol is a key approach. Let’s use an open common protocol to share our graphical language servers Final Remark
  • 30. Towards a Language Server Protocol Infrastructure for Graphical Modeling Roberto Rodriguez-Echeverria, Javier L. Cánovas, Manuel Wimmer and Jordi Cabot