Jesús Gallardo, a guest of AtlanMod this summer writes about his approach for enhance GMF-based graphical model editors with collaborative features.
Collaborative graphical editors are useful for many tasks within distributed synchronous modeling/design or learning processes. Key elements of collaborative editors are elements for awareness and collaboration support like user management, chat and of course, a shared canvas that enables the synchronous modification of a model by a group of users.
Unfortunately, and despite their clear benefits, collaborative graphical editors are difficult to build and commercial systems of this kind are usually domain-specific. Domain independence in such editors can be solved by using GMF to define the abstract and graphical syntax of the new domain. Unfortunately, there are few attempts to integrate collaborative functionality in GMF-based editors (e.g., the Dawn project). Also, creating a GMF-based modeling editor is not a trivial task for a non-experienced user (as many of you probably know already!).
I’d like to present you a framework to generate in an easy way GMF-based collaborative tools. Instead of the typical and cumbersome GMF input models, in our framework you only need to provide two models. Domain definition is done by using a whole new meta-model that we have developed for this purpose. A second model takes care of defining the collaboration configuration you want in your environment (some tools and widgets for awareness and collaboration support have been developed, our collaboration metamodel allows the user to configure which ones of these tools and widgets should appear in the final tool).
Predefined ATL transformations generate the four models needed by GMF from our domain definition. On the other hand, the workspace model is used as a configuration model to define which additional views are wanted in the workspace (chat, outline, etc.) The perspective is dynamically created by means of Xpand M2T transformations. See an example of the final environment.
Collaboration has been implemented by using the ECF framework. In this sense, a server must be running in a well-known server and port to centralize the management of sessions and users being connected. However, data is replicated, and each user owns in his/her workspace an up-to-date copy of the diagram being edited.
We believe our framework is interesting for a great variety of application domains. The technologial framework of the approach is currently being improved to support additional features such as collaborative flows made up by several work sessions, different strategies for turn taking, etc. A first prototype of a tool generated by following our approach can be found here. Further information can be found in our research papers. Here you can find a list of them.