MDE Collaboration

Temporality and Ergonomy in the Cloud, the GenMyModel Solution

Vincent Aranega, Axellience, France

Presentation Anatomy

  • GenMyModel: Quick Overview

  • Present (concurrent)

  • Past (non-concurrent)

  • Future & Future Work

  • Finally


Collaboration and MDE?

  • Modeling together: concurrent model modifications

  • Modeling together: non-concurrent model modifications

  • "Multi-Level" collaboration

GenMyModel: Quick Overview

Aug. 2012 - Web-based modeling

Oct. 2012 - Model transformation chain engine

Early 2013 - Model versioning

Mid. 2013 - Collaborative modeling

Feb. 2014 - User Model transformation chain from Github

Sep. 2014 - Reverse engineering

GenMyModel: Technos

Client side
  • GWT-2.7 (soon 2.8, perhaps 3.0!)

  • EMF and EMF-GWT

  • Antlr4-GWT

Server side
  • Tomcat Server

  • EMF

  • QVT-o, Acceleo…​

NO JavaScript (almost)


Scheduling the present

Collaboration & Ergonomy Problem

  • How to work on the same resource?

  • Which collaboration protocol/topology?

  • How should I modify my model?

  • Should I be able to make mistakes?

User and Transformations


Real person performing "atomic" model modifications on a same resource (create…​)

In-place (in-out) M2M

Program performing "complex" model modifications on a same resource (set of create…​)

User and inout model transformations are not so different

Atomic modifications

  • Partially based on EMF commands (API Rest & client exec)

  • Single modification/command (set, add…​) on a model element


Group of modifications

  • Gather many single Atomic modifications at once

  • Regarding the domain model, a group can be considered as "Atomic"


Collaborations topology

  • Conflict resolution is (kinda) easy

Concurrent modifications

  • The client "ask" for a modification → server plays it first. If it approve, the modification is sent to each client.

User and Transformation again

  • manual modifications VS the shell (OCL-ish based M2M)


  • Ressource access → mutual exclusion

  • Ergonomy → no client lock (transparent)

Concurrent vs Non-Concurrent


Understand the past

Collaboration & Ergonomy Problem

  • How can I see past modifications?

  • What information do I need?

Fine grain traceability



In the real world of true real reality

Back to reality

289.604 users, 345.127 projects (281.845 active projects)

Back to reality




  • model access

  • modifications

  • code

  • network latencies

  • server load

  • server (performances)

  • db (backups…​)


cloud & REST API → at least 3 machines (1 Main API, 1 Editor, 1 Generation Engine) & adaptive configurations

Efficient Collaboration?


Future (work)

Tame the Future

  • Sometimes main version is the holy model (correct semantic)

  • Need a way of modifying elements without touching the holy model


Branch Management

  • Give the proper tools to handle future modifications

  • Differentiate actions with a domain specific semantic (ex: ui moves)

Multi-level Collaboration

  • Collaboration on same project but different resources

Soooo…​ git? (1/2)


share modification

  • git commit/push

  • git pull


view history

  • git lg

Soooo…​ git? (2/2)


work on branch

  • git checkout -b

  • git commit/push

  • git merge(tool)

Modifying the Past

build a new present

  • git branch b sha1

  • git commit/push

  • git merge(tool)

Yes, but

  • Always atomic modifications (user)

  • More complex modifications (transformations)

  • Semantic-full traceability

  • Opens new perspectives for Multi-level Collaboration


  • API for collaborative modeling based on basic commands

  • User ~= Transformation

  • Will release some parts as open-source (WIP)

  • Large public models DB ready for analysis (used by some Universities)


obama listens Putin listens