Vincent Aranega, Axellience, France
|
Modeling together: concurrent model modifications
Modeling together: non-concurrent model modifications
"Multi-Level" collaboration
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
Antlr4-GWT
Tomcat Server
EMF
QVT-o, Acceleo…
NO JavaScript (almost)
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…)
in-out
) M2MProgram performing "complex" model modifications on a same resource (set of create…)
User and 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)
Security | Performances | Cost |
|
|
|
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
Present | share modification |
|
Past | view history |
|
Future | work on branch |
|
Modifying the Past | build a new present |
|
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)