SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Reactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaKasun Indrasiri
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageNeo4j
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using KafkaKnoldus Inc.
 
Kea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCKea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCMen and Mice
 
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeApache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeSlim Baltagi
 
Handling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseHandling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseArangoDB Database
 
KSQL Deep Dive - The Open Source Streaming Engine for Apache Kafka
KSQL Deep Dive - The Open Source Streaming Engine for Apache KafkaKSQL Deep Dive - The Open Source Streaming Engine for Apache Kafka
KSQL Deep Dive - The Open Source Streaming Engine for Apache KafkaKai Wähner
 
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...confluent
 
Google borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターンGoogle borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターンktateish
 
Practical non blocking microservices in java 8
Practical non blocking microservices in java 8Practical non blocking microservices in java 8
Practical non blocking microservices in java 8Michal Balinski
 
Producer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaProducer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaJiangjie Qin
 
How to be Successful with Scylla
How to be Successful with ScyllaHow to be Successful with Scylla
How to be Successful with ScyllaScyllaDB
 
Kafka Streams vs. KSQL for Stream Processing on top of Apache Kafka
Kafka Streams vs. KSQL for Stream Processing on top of Apache KafkaKafka Streams vs. KSQL for Stream Processing on top of Apache Kafka
Kafka Streams vs. KSQL for Stream Processing on top of Apache KafkaKai Wähner
 
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan StanleyA Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan StanleyHostedbyConfluent
 
MariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database ProxyMariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database ProxyMarkus Mäkelä
 
Query Parsing - Tips and Tricks
Query Parsing - Tips and TricksQuery Parsing - Tips and Tricks
Query Parsing - Tips and TricksErik Hatcher
 
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGoing to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGuillaume Laforge
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyYaroslav Tkachenko
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Patternconfluent
 

Was ist angesagt? (20)

Reactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-Java
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query Language
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
Kea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISCKea DHCP – the new open source DHCP server from ISC
Kea DHCP – the new open source DHCP server from ISC
 
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision TreeApache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
Apache Kafka vs RabbitMQ: Fit For Purpose / Decision Tree
 
Handling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph DatabaseHandling Billions of Edges in a Graph Database
Handling Billions of Edges in a Graph Database
 
KSQL Deep Dive - The Open Source Streaming Engine for Apache Kafka
KSQL Deep Dive - The Open Source Streaming Engine for Apache KafkaKSQL Deep Dive - The Open Source Streaming Engine for Apache Kafka
KSQL Deep Dive - The Open Source Streaming Engine for Apache Kafka
 
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
 
Google borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターンGoogle borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターン
 
Practical non blocking microservices in java 8
Practical non blocking microservices in java 8Practical non blocking microservices in java 8
Practical non blocking microservices in java 8
 
Producer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaProducer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache Kafka
 
How to be Successful with Scylla
How to be Successful with ScyllaHow to be Successful with Scylla
How to be Successful with Scylla
 
Kafka Streams vs. KSQL for Stream Processing on top of Apache Kafka
Kafka Streams vs. KSQL for Stream Processing on top of Apache KafkaKafka Streams vs. KSQL for Stream Processing on top of Apache Kafka
Kafka Streams vs. KSQL for Stream Processing on top of Apache Kafka
 
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan StanleyA Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
 
MariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database ProxyMariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database Proxy
 
Query Parsing - Tips and Tricks
Query Parsing - Tips and TricksQuery Parsing - Tips and Tricks
Query Parsing - Tips and Tricks
 
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGoing to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
 
Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at Shopify
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Pattern
 

Ähnlich wie Towards a language server protocol infrastructure for graphical modeling

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 Mashupsaliraza786
 
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 SourceOSCON 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 AppGerry James
 
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 ZahariaGoDataDriven
 
pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationThomas Paviot
 
Open Source GIS Workshop
Open Source GIS WorkshopOpen Source GIS Workshop
Open Source GIS WorkshopJason Dalton
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDBMax 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_reducedChao 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 ProjectMatthew 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 minutesUGIF
 
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 developmentDavid 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 classroomFacultad 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 IstioAnimesh 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 thriftTalentica Software
 
OpenDaylight and YANG
OpenDaylight and YANGOpenDaylight and YANG
OpenDaylight and YANGCoreStack
 
TI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesTI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesEelco Visser
 

Ähnlich wie 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
 
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
 
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 ...
 
INAC Online Hazards Database App
INAC Online Hazards Database AppINAC Online Hazards Database App
INAC Online Hazards Database App
 
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
 
pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentation
 
Open Source GIS Workshop
Open Source GIS WorkshopOpen Source GIS Workshop
Open Source GIS Workshop
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDB
 
OneTeam Media Server
OneTeam Media ServerOneTeam Media Server
OneTeam Media Server
 
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
 
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
 
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
 
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
 
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
 
mapReduce.pptx
mapReduce.pptxmapReduce.pptx
mapReduce.pptx
 
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
 
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
 
OpenDaylight and YANG
OpenDaylight and YANGOpenDaylight and YANG
OpenDaylight and YANG
 
Circuit Simplifier
Circuit SimplifierCircuit Simplifier
Circuit Simplifier
 
TI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesTI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific Languages
 

Kürzlich hochgeladen

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Kürzlich hochgeladen (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

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