Web-Based Modeling Tools Theia And

Web-Based Modeling Tools Theia And

Building Web-based Modeling Tools with Theia and Che Philip Langer & Maximilian Koegel EclipseSource © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 1 Why web-based tools? ● Accessibility ○ No client installation ○ Access through a web link ○ Simple client updates ○ Physical resource sharing ● Usability ○ Modern UI look and feel ○ SWT vs. HTML5 ○ GEF 3 vs. SVG ● Maintainability ○ Room for evolution ○ Availability of developers © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 2 A prototypical (modeling) tool Workbench Forms Diagrams Text Analysis Generator © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 3 Key enablers for building domain-specific, web-based tools ● Eclipse Theia ○ Extensible cloud IDE ○ Default frontend for Eclipse Che ● Eclipse Che ○ Kubernetes-native IDE platform ○ Management of workspaces and dev environments ● Monaco & Language server protocol (LSP) ○ Protocol enabling the separation of editor (front-end) and language implementation (back-end) ○ Feature-rich and broadly adopted (VS Code) ⇒ Related talk: “Eclipse Theia and Che, explained and explored!”, Today 17:00, Theater Stage © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 4 Reinventing the wheel? ● Which components can be reused? ● What needs to be reimplemented? ● How do we separate frontend and backend functionality? Domain-specific Modeling Environment codegen DSML validation simulation © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 5 Typical reuse example: Code Generation Browser: JS/TS Eclipse Theia frontend FrontendGenerator extension UI Node.js: JS/TS Eclipse Theia backend GeneratorBackend extension Launcher JVM: Java Code Generator © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 6 Overall tool architecture JSON Forms GLSP EMF.cloud Model Server LSP © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 7 Demo overview ● One connected model for coffee makers ○ Structural model ○ Behavioral model ● Example IDE with the following features: ○ Tree-Editor for structural modeling with forms ○ Graphical editor for behavioral model ○ Code generation ○ Working with source code ○ Textual Modeling ○ Model Analysis ○ Multi-User Support © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 8 Demo: Form-based editing © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 9 Form-based editing ● Tree Browser Theia frontend Coffee Tree-Editor ○ Based on Theia Tree Widget ○ LabelPovider and ContentProvider Node.js Theia backend Model Connector ● Detail-Form ○ Based on JSON Forms JVM: Java Model Server ○ Declarative approach: JSON + UI Schema ● Synchronization ○ Based on EMF.cloud Model Server ○ Typescript-based Model Server client API ■ Push changes as commands ■ Subscribe to updates ⇒ Related talk: “Property editors in space”, Thursday 1pm, Theater Stage © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 10 Demo: Graphical Modeling © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 11 Graphical Modeling ● Graphical Language Server Platform (GLSP) Browser Theia frontend GLSP Editor ○ LSP for Graphical Editors ○ GLSP client: Node.js Theia backend GLSP Connector ■ generic ■ renders graphical visualization ○ GLSP server: JVM: Java GLSP Core Coffee GLSP Server ■ specific to DSL ■ maps model to graphical visualization ■ synchronization with model server JVM: Java Model Server ○ Based on Eclipse Sprotty ⇒ Related talk: “Diagrams in web and space with GLSP”, Thursday 15:10pm, Bürgersaal 2 © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 12 Demo: Model Server JSON Forms GLSP EMF.cloud Model Server LSP © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 13 Model Server JSON Forms GLSP EMF.cloud Model Server LSP © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 14 Model Server ● Component of EMF.cloud Eclipse project ● Features ○ Command-based change interface ○ Notification mechanism via sockets ○ Convenient model access with client APIs EMF.cloud Model Server ⇒ Related talk: “Lifting the greatness of EMF into the cloud with EMF.cloud”, Wednesday 12:35pm © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 15 Demo: Generators - Model to Text © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 16 Generators: Model to Text ● Based on Eclipse Xtend ● Generator jar build with Maven ● Launched on demand via CLI ● Generates into selected Theia workspace folder © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 17 Demo: Working with source code © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 18 Working with source code ● Enablers: Browser Theia frontend LSP Editor Debug UI ○ Language Server Protocol (LSP) ○ Debug Adapter Protocol (DAP) DAP Node.js Theia backend LSP Connector Connector ● Theia Code Editor ○ Monaco-based (VS Code) Java Debug JVM: Java JDT jdt.ls ○ Uses LSP to “understand” language Server ● Theia Debug Extension (DAP) Your Java ○ Uses DAP to support language debug JVM: Java Program © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 19 Demo: Textual Modeling © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 20 Textual Modeling ● Frontend: Theia Editor (Monaco) Browser Theia frontend LSP Editor ● Backend: Node.js Theia backend LSP Connector ○ DSL modeled as XText grammar ○ XText LSP Server for DSL JVM: Java Activity Provider Xtext LSP Server JVM: Java Model Server © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 21 Demo: Model Analysis © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 22 Model Analysis ● Frontend: ○ Uses D3 to visualize analysis results Browser Theia frontend Analysis UI Node.js Theia backend Analysis Connector ● Backend: ○ Fetches data from model server JVM: Kotlin Analysis Service ○ Calculates analysis result from data JVM: Java Model Server © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 23 Multi-User Support © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 24 Running Theia on Che WS Theia Che Server Config WS A Config Workspace 1 Workspace 2 Workspace 3 © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 25 Excursion: Running applications on Kubernetes Pod Master Node Node Node Node Node Node © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 26 Excursion: Running Che and Theia on Kubernetes Theia Browser Master Node Che WS Config Che ServerNode Node Node © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 27 Summary ● Web-based modeling tools are feasible today ● Reuse and migration easier than expected ● Web technology can leverage unique advantages ○ Modern UI and styling ○ Zero installation for users ○ Enables “cloud” business models ● There is open-source components ○ Eclipse Theia and Eclipse Che ○ EMF.cloud, LSP, GLSP, JSON Forms, XText, Sprotty and D3 ○ Existing business logic can often be reused ● Demo code available: https://github.com/eclipsesource/coffee-editor → Important now: Define strategy and timeplan, build POC © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 28 Please this WITH Thank you! © 2019 EclipseSource | https://eclipsesource.com | Dres. Langer and Koegel | Building Web-based Modeling Tools with Theia and Che 29 Towards a migration strategy ● Now: Define a strategy and timeplan, build POC ● Short-term: Consider for architectural decisions ● Mid-term: ○ Prepare architecture for migration iteratively ○ Migrate high-value use cases iteratively ○ Single-source components, enable reuse Image © by Foofy ● Long-term: ○ Migrate use-case by use-case iteratively ○ Deprecate desktop-based solution © 2019 EclipseSource | https://eclipsesource.com

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    32 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us