Vincent Aranega, Axellience, France
Modeling together: concurrent model modifications
Modeling together: non-concurrent model modifications
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
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
GWT-2.7 (soon 2.8, perhaps 3.0!)
EMF and EMF-GWT
How to work on the same resource?
Which collaboration protocol/topology?
How should I modify my model?
Should I be able to make mistakes?
Real person performing "atomic" model modifications on a same resource (create…)
Program performing "complex" model modifications on a same resource (set of create…)
inout model transformations are not so different
Partially based on EMF commands (API Rest & client exec)
Single modification/command (set, add…) on a model element
Gather many single Atomic modifications at once
Regarding the domain model, a group can be considered as "Atomic"
Conflict resolution is (kinda) easy
The client "ask" for a modification → server plays it first. If it approve, the modification is sent to each client.
manual modifications VS the shell (OCL-ish based M2M)
Ressource access → mutual exclusion
Ergonomy → no client lock (transparent)
How can I see past modifications?
What information do I need?
289.604 users, 345.127 projects (281.845 active projects)
cloud & REST API → at least 3 machines (1 Main API, 1 Editor, 1 Generation Engine) & adaptive configurations
Give the proper tools to handle future modifications
Differentiate actions with a domain specific semantic (ex: ui moves)
Collaboration on same project but different resources
work on branch
Modifying the Past
build a new present
Always atomic modifications (user)
More complex modifications (transformations)
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)