Feature Model for Collaborative Modeling Environments Constantin Masson Jonathan Corley Eugene Syriani University of Montreal University of West Georgia University of Montreal Montreal, QC, Canada Carrollton, GA, USA Montreal, QC, Canada Email: constantin.masson@umontreal.ca Email: jcorley@westga.edu Email: syriani@iro.umontreal.ca Abstract—There has been a growing trend toward collabora- are to be interpreted as key challenges for collaborative mod- tive environments especially those utilizing browser-based inter- eling environments, such as collaboration scenarios, conflict faces which can be seen in modeling tools such as AToMPM and management, or multi-user support. The features shall be WebGME. In response to the growing interest in collaborative modeling, we explored existing systems and potential solutions to used to guide development, analysis, and discussion around identify the various features relevant to collaborative modeling collaborative modeling systems. We also discuss how some systems. In this paper, we detail the feature diagram resulting existing tools already implement certain features, and identify from our exploration of collaborative modeling systems. We where future research can focus. also detail the features of an existing collaborative system both In the remainder of the paper, we give a brief overview of to illustrate the use of the diagram and further explore the features. Through this feature diagram we identify key areas for existing work in the area of collaborative modeling in Sect. II. collaborative modeling systems. We hope the feature diagram will In Sect. III, we present a feature modeling covering primary be used to guide development, analysis, and discussion around concerns in collaborative modeling systems. In Sect. IV, we collaborative modeling systems. instantiate the feature model on four tools as a form of I. I NTRODUCTION validation. In Sect. V, we further discuss the various features and significant issues for collaborative modeling systems. There has been a growing trend toward collaborative envi- Finally, we provide our concluding remarks in Sect. VI. ronments especially those utilizing browser-based interfaces. Basic tools include Google Docs1 , Trello2 , and Asana3 . Ad- II. BACKGROUND AND R ELATED W ORK ditionally, this trend can be seen in modeling tools such as Before discussing the feature diagram that is the focus of AToMPM [1] and WebGME [2]. These tools bring together this paper, this section will overview collaborative modeling developers, including geographically distributed teams, in a systems and meta-studies in the area. collaborative modeling environment to work on a shared set of software artifacts. A. Collaborative Modeling Systems In prior work, we defined a set of requirements and chal- AToMPM was one of the first web-based collaboration tool lenges for a collaborative modeling environment, enumerating for MDE [1]. It takes advantage of the ever increasing capa- four possible collaboration scenarios [3]. We also investigated bilities of web technologies to provide a purely in-browser in- an efficient and distributed architecture to support collaborative terface for multi-paradigm modeling activities. The AToMPM modeling as a service [4]. Other researchers and developers project is also working to provide an API for collaborative have also been working in this space: the (aforementioned) modeling services along with the in-browser interface [4]. WebGME project has provided a browser-based interface to Clooca [8] is also a web-based modeling environment that the GME modeling environment; Basciani et al. proposed lets the user create DSLs and code generators. However, it MDEForge [5], a web-based modeling platform including does not offer any collaboration support. collaborative features; Obeo has introduced collaborative mod- Recently, Maroti et al. proposed WebGME [2], a web- eling features [6]; and MetaEdit+ supports offline collaborative based collaborative modeling version of GME4 . It offers a modeling through version control [7]. In response to the collaboration where each user can share the same model and growing interest in collaborative modeling, we have explored work on it. In contrast with the Modelverse, WebGME relies existing systems and potential solutions to identify the various on a branching scheme (similar to the GIT version control features relevant to collaborative modeling systems. system) to manage the actions of different users on the same In this paper, we detail the feature model resulting from model. WebGME supports the multi-user single-view and our exploration of collaborative modeling systems. The model multi-view single-model scenario [3]s, but not in an always- highlights key features and interdependencies. These features online environment, unlike in AToMPM where operations 1 https://docs.google.com immediately succeed or fail. 2 http://www.trello.com 3 https://www.asana.com/ 4 WebGME is now available at https://webgme.org/ Collaborative Modeling System Collaboration Scenario Support Concurrency Data Storage Network Architecture Conflict Management Multi-User Client Type Execution v v Realtime Execution => "Conflict Awareness" "Distinction Mechanism" v "Sandbox Mode" Legend: v Realtime => Multi-User "Push Notification" Mandatory ¬ API => ClientType Optional User-Specific v "All Visible" v Identified v "Ownership System" => "User Identification" Or Manual => "Conflict Awareness" Alternative Versioning => History v Persistent Abstract Offline => "Batch Operations" Concrete Undo-Redo => History Collapsed "Multi-View Multi-Model" => "Multi-View Single-Model" Fig. 1. Top-level features and constraints MetaEdit+ has also released a collaborative modeling en- C. Collaboration outside MDE vironment [7] of their prior desktop application [9]. The Collaboration is not limited to MDE and is found in many collaborative environment incorporates Git into the tool to fields. Code editors make use of collaboration, such as Eclipse provide for offline collaboration among modelers. Che that uses an algorithm based on OT. File sharing systems GenMyModel [10] also provides a collaborative modeling also use concurrent algorithms to allow several users working environment using an in-browser client. The environment on the same file. GoogleDoc, GoogleDrive and DropBox [14] supports many common varieties of models including BPMN, are only some examples. The Google Realtime API used UML, Ecore, and more. Modeling projects are managed com- with GoogleDrive allows to concurrently modify a file [15]. pletely through the browser interface with provided facilities Collaboration is also used in various software, such as music for managing collaboration. editors [16] and game engines, e.g., PlayCanvas Engine. Gallardo et al. proposed a three-phase framework to create a collaborative modeling tools based on Eclipse [11]. The III. F EATURES FOR COLLABORATIVE MODELING difference between creating a regular DSL and creating a ENVIRONMENTS collaborative modeling tool in their system is the addition Modeling environments that directly support the collabo- of the technological framework, which adds the collaboration ration of many stakeholders on the same model(s) working support to the DSL. Naming it “TurnTakingTool”, multiple independently are collaborative modeling environments. These users are able to modify an existing model by utilizing a turn- environments may be offline systems utilizing features similar based system. The framework helps the user to create the DSL to a version control system to manage the shared artifacts or as a native eclipse plug-in with concurrency controls, graphical may allow collaborators to interact remotely in realtime. We syntax and multiple user support. explored a variety of existing tools and potential solutions to Basciani et al. proposed MDEForge [5], a web-based mod- identify a set of features for the implementation of collabo- eling platform. MDEForge offers services to the end user by a rative modeling environments. In this section, we introduce rest api, including transformation, model, metamodel editing. and briefly discuss each feature. Figure 1 shows the top-level feature diagram and the constraints of the model. The complete B. Collaborative Modeling Meta-Studies feature model is available online in ReMoDD [17]. At the 2016 COMMitMDE, Ruscio [12] presented the protocol and preliminary results of a systematic study of A. Methodology collaborative modeling systems. The study identified existing The feature model presented in this paper is the outcome of systems and introduced terminology for collaborative mod- an iterative process. To identify the feature of collaborative eling systems. Rocco et al. [13] describe the potential and modeling systems, we investigated all kinds of collabora- outline challenges of collaborative modeling repositories. Our tive environments. Our sources include: our own software work complements these works as a formal presentation of (AToMPM [3]), MDE-specific environments (OBEO [18], features and interdependencies identified from our exploration MDEForge [5], GenMyModel [10], CDO, . . . ), and other of collaborative modeling systems. Our work seeks to guide collaborative environments (GoogleDoc [15], Eclipse Che, development, analysis, and discussion. The key contribution Ohm Studio [16], Overleaf, DropBox [14], . . . ). of our work is a feature diagram that may be used by We relied on published articles related to the collaboration future researchers and developers. These works further the aspect tools when available. We also reviewed technical docu- purpose of exploring the collaborative modeling space by mentation as well as relevant blogs, tutorials, and videos that identifying challenges and needs of collaborative modeling explain the technical implementation of the tools. Finally, we spurring further research and development in the area. experienced each tool ourself when freely available. In some cases, we studied specific algorithms, in particular conflict 1) Locking: When several users are working on the same management algorithms used by several collaborative envi- model(s) concurrently, conflicting updates may occur. Simple ronments, such as Operational Transformation, locking mech- strategies, such as retaining only the last modification, could anisms, and the DropBox synchronization algorithm explained. result in losing work from one user and goes against the goals From the collected set of data, we identified which features of a collaborative environment. One approach to this issue is to are specific to MDE collaborative environments. avoid conflicts entirely allowing users to work together trans- parently. However, the collaborative aspect requires that users B. Collaboration Scenario Support are able to work concurrently on components even closely linked. A general overview of the file-sharing problem in the MDE environment is presented in the subversion book [19]. Pessimistic locking is a strategy widely used in concurrent systems. It is based on data locking, which only allows one user to modify the locked data. A naive but simple solution is to use a global Data Lock. All of the model is locked to a specific user and other users cannot access the model Fig. 2. Collaboration scenario features until the lock is released. However, this reduces collaboration, because only one user can work on the model at a time. An abstract model is the abstract syntax of a model con- Another solution is to use a Fragment Lock that applies forming to the metamodel of a given DSL. Conceptually, the lock on a fragment (i.e., subset) of the model. In this a view is a projection (in whole or part) of an abstract solution, each user is able to modify a distinct fragment model utilizing the most appropriate representation of a subset concurrently. The fragments should be as small as possible, of the model’s elements for the needs of the modeler. An minimizing the locked portions of the model. However, the environment that does not support views could be categorized fragment lock approach requires a well structured data format as supporting only a single complete view for each model. supporting well defined fragments. In the case of XML for Therefore, we can detail the possible collaboration scenarios example, we might lock the current XML tag and its children. for both tools explicitly supporting views and those not sup- Additionally, fragment locks do not consider dependencies that porting views in similar terms. In collaborative modeling, we may indirectly affect the elements locked (e.g., metamodel previously identified four possible collaboration scenarios [3], relationships). OBEO Designer implements data and fragment that we briefly describe here. In the following, we commonly locking. Another approach relies on Dependency Locking. This refer to scenarios with only two collaborators, but recognize provides finer granularity that locks the element being mod- the scenarios can scale to an arbitrary number of collaborators. ified and its dependencies. Though this technique is seen as 1) Multi-User Single-View: Users are working on the same only an improvement here, taking dependencies into account view of the model. They both see the same information in may be seen as required by the semantic nature of models. the same language and with the same concrete syntax. The This is discussed in more detail in Sect. V. changes made by a user are reflected automatically to others. Though we try to minimize the set of elements to be locked, 2) Multi-View Single-Model: Users work on distinct views pessimistic locking always blocks access to a set of data. This of the same model. The views may present the same, over- might lead to a situation where a user waits for a resource to be lapping, or disparate sets of elements in the same or different free. OBEO shows an overview of these locking techniques in concrete syntax. Modifications on the abstract model of ele- their documentation [18]. Optimistic Lock tries to resolve this ments present in both views are perceived by the other user. issue without locking. Instead, it allows the users to modify, 3) Multi-View Multi-Model: Each user is working on a possibly the same, elements concurrently and then merges different view and each view is a projection of a different all changes to create one unified new version of the model. model. These models have some dependency or satisfy a For example, this is how Google Docs allows for concurrent global constraint. Only changes on elements related between changes and relies on the Operational Transformation (OT) the abstract models are perceived by both users. algorithm [20] for merging. Unfortunately, though OT works 4) Single-View Multi-Model: This is similar to Sect. III-B3, well for text based data, model merging requires merging but the dependency is defined at the view level, not at the graphs, which makes this approach hard to apply [21]. model level, such as an aggregation of elements from both 2) Collaboration Type: We differentiate two scenarios of models. A user may work on a view that projects several collaboration: Realtime and Offline. In the former, the model models while another is working on one of the projected is modified by several users at the same time; changes are models. A change on an element used in the view is propagated applied on the data immediately; and users are updated of to all views with the same element. changes made by others immediately. The model is the unique source of truth that all users alter concurrently. Here even the C. Concurrency changes from a given user may not be considered complete Concurrency is concerned with issues related to multiple until acknowledged by a central authority or a set of peers. On operations occurring at the same time or in parallel. the other hand, offline collaboration presents an asynchronous Fig. 3. Concurrency features approach. Users may apply modifications on the model without data models history. Identified history adds the user identity sending the changes right away. This principle is often seen information to each modification. This is often the default in version control systems (VCS) that allow working locally behavior of a VCS. Allowing attributing a change to a specific and pushing changes at a later time. This prevents immediate user helps in diagnosing a series of events from multiple users conflicts between users, but local versions may diverge and that may have led to a conflict or failure. result in complex merging processes later, as in Git. 5) Versioning: VCS are tools that trace all changes for a 3) Batch Operations: All modeling systems support a set system and have facilities for managing this history. A single of atomic operations (e.g., creating or deleting an element) user working on a data model has a complete view of its state that provide the ability to develop and manage models. We at all points and understands the full history of the model recognize that some systems also allow collecting together naturally. However, several users working on the same data these atomic operations in batches. The processing scheme model may lead to misunderstandings and inconsistencies. for these batches becomes significant when discussing col- When trying to merge artefact(s), the data model(s) might laborative systems and handling potential conflicts. Resolve be significantly altered since the last connection. Changes as Atomic resolves a set of operations in an all-or-nothing performed by other users may be difficult to understand. approach. Every operation in the batch must succeed or This introduces the need for versioning systems with history none of the operations can be applied. Thus, a single failing management. It adds the possibility to look back at the changes operation may result in the need to rollback changes from a set. performed over the intervening time and to understand the full Resolve Divided allows processing each operations separately. series of changes. Moreover, VCS also support other features However, this may result in partial sets being applied thereby such as documentation, reverting previous changes, or listing generating unexpected or even invalid results. the added features for a release. A survey on model versioning 4) History: In a collaborative environment, storing the was provided by Altmanninger et al. [22]. complex history of operations applied to a given element can 6) Version Control System: VCS play an important role be beneficial. The series of events leading to a conflict or in software development. Tools like Git and SVN are largely failure may be complex, and not easily understood without a used and are very efficient. Therefore, collaborative modeling record of the operations. Here we intentionally separate history environments may opt to integrate an External VCS into the from versioning. For instance, a basic feature of any VCS environment rather than reinventing the wheel. This places is to manage the project history. Therefore, the presence of the data under the VCS management and each change is versioning mandates the presence of some form of history (this added to the history. However, these VCS use compare and is represented as a constraint in the feature diagram). However, merge mechanisms to integrate the changes into a new version, a collaborative environment might store some portion or form which require manual intervention. For instance, to integrate of history without the presence of a VCS. GenMyModel [10], new changes made under Git, changes must be commited for example, has a full and complex history feature, that allows and pushed manually. Moreover, these systems are subject to replaying the history from a defined start time. History is Per- conflicts, which require manual resolution. Employing locking sistent if it persists when the environment halts. An example with a version control system may avoid conflicts. Merging of non-persistent history is an undo / redo stack that only lasts is then performed automatically in the background. This until a given session terminates. Using a VCS implies that the approach is utilized by MetaEdit+ that integrates Git with history is persistent. However, it may not be enough to use the their MDE collaboration [7]. They use fine granularity locking VCS history directly, but a user interface (UI) wrapper might to avoid conflict, that allows processing the merge without be required. VCS integrates the set of changes from the whole risk of conflicts. Furthermore, these VCS are specialized for project. While working on a specific model, the user does versioning, comparing and merging text files as opposed to not need all of this information. Therefore, an environment complex semantical data structures in MDE. For these reasons, might implement a history wrapper that shows only the current some modeling systems may opt to build Custom VCS. We discuss these issues in more details in Sect. V. be a response to other constraints on the system. Collaboration 7) SandboxMode: Sandbox is used to divorce a user from is often reduced to active screen sharing (single-view single- the typical collaborative environment. This supprts experimen- model) as supported by AToMPM. Since network latency is tal or debugging processes. Working in a sandbox environment sometimes high, having a local copy may remove the delay allows developing components that temporary break other between an operation being requested and being applied on components or violate general rules/expectations, without dis- the data. In contrast, Remote locations do not require loading turbing other users. The modifications may then be integrated the project locally. This is useful in the case of a project using when complete, potentially resulting in complex merges. a high quantity of memory. Lazy loading may even be used 8) Branching Type: Multi Branching is used to divide the to load specific data only when required. project into several branches. In VCS, branches are a divergent 2) Data Format: Models use a specific data storage format. copy of the project where users may work independently from The choice of format is important and may influence or be other branches. Branches are often used for new incoming influenced by other factors (e.g., the VCS). Some formats feature that are not stable yet. As soon as the feature is stable may be hard to use with a text-based VCS, hard to fragment and needs to be integrated, a merge with the main branch is for locking, or mandated to be compatible with a distributed done. This eases the team work and separates the maintenance database utilized by the system. Popular formats are JSON (for from the new release components. However, a manual merge web-based modeling environments), XMI (for Eclipse-based is required and the new feature(s) may be difficult to integrate tools), or NoSQL database formats when scale is an issue. with the main branch. New features are built on top of the 3) Data Management: Data management refers to manag- old base code that may be deprecated. This issue appears ing the basic operations and long-term storage in the system when maintenance largely diverges from the main branch. (e.g., CRUD operations). Internal Management implies data is Moreover, dependency ambiguities are complex to resolve, processed by tools internal to the software, whereas External which is emphasized by the semantic nature of models. Management reuses existing tools like a distributed database. Single Branch avoids these issues. No branches are used Namespaces (e.g., URI) are crucial to access a model. and every change is performed on a single version of the 4) Format Optimization: Format Optimization identifies the system. In order to separate new features, e.g., to exclude way a system might optimize the model representation/storage them from the release, Revision Flags may be used. In this for certain actions; e.g., Model Browsing or model Search. way, new features depend on the up to date state of the code, Basciani et al. [5] overview different supported query mecha- while still hidden from release. One great example is Google nisms for several systems according to the managed artifacts. with the Piper VCS which uses only one trunk for all its E. Network Architecture teams and flags for new features [23]. It is important to note that the use of branches is not always relative to the actual VCS branching support. Though the used VCS may support branching, users (or even environments employing an external VCS) can make the decision not to use branching. This is the case with MetaEdit+ that uses Git as a VCS but does not use Git branching feature. D. Data Storage Fig. 5. Network Architecture Features Collaboration requires the use of the network so that in- stances of the modeling system on different machines com- municate and exchange data. 1) Communication Protocol: Clients and servers must be Fig. 4. Data Storage Features able to communicate using a common protocol. TCP/IP is a widely used network protocol. It maybe relevant to investigate Data storage is concerned with how models are stored and reliable networks to guarantee no data loss, but at the cost of managed in the system to enable reuse among collaborators. time performance. Client and server must then use the same 1) Workspace Location: In a collaborative environment, data format to communicate information. data is often saved in a remote place (i.e., the “cloud”). The 2) Architecture Type: This is the network architecture cho- workspace location is where the data is stored while users are sen for the collaborative environment. We distinguish two modifying it. Data may be Local, meaning that the relevant fundamental types of architectures: Centralized and Decentral- models are on the users local machine. This may support an ized. Centralized uses a central authority. It has the advantage asynchronous workflow as with an offline collaboration type or of having one source of truth: the centralized storage is the true version of the work. Alternatively, Decentralized systems distribute authority. An example of Decentralized architecture is Git, thought often used in a Centralized way (e.g., Using Github server as the main storage location). Centralized architecture may be Single-Server or Distributed-Server. This is an internal detail, since end-users see the cluster as only one single-authority. Distributed-Server adds complexity to handle data synchronization across all Fig. 6. Conflict Management Features storage locations. Nevertheless, it adds a layer of security (a single server crash will not affect the whole system) and performance (distributing processes and storage across Other features, such as collaboration type and locking, strongly a large set of nodes). This is useful for servers with high impact the complexity of managing automatic resolution of traffic demand. An industrial example of this is the Google conflicts. A live collaboration environment with fine grained Piper VCS [23], which is duplicated into 10 servers across locking may be conflict free. High risks of conflict appear the world using the Paxos algorithm [24]. This divides the when using offline collaboration and versioning. Each user number of request performed on each unique server and works separately on a divergent version of the work. To share speeds up response time. his change with others, the user needs to perform a merge 3) API: An API, though optional, may be integrated to al- action. This could be accomplished through a diff / merge low extension of the system and other client implementations. algorithm. In case of unambiguous changes, this action may For example, we are working toward an API for collaborative be transparent to the user. For example, if each user changed modeling services to allow building and integrating potentially different parts of the model(s) without cross dependencies. many distinct clients [4]. Each client may support their own However, often Manual conflict resolution may be needed. needs and rely upon the common modeling services provided This is the case of WebGME tools that refuse a push request by the API to simplify system design and interoperability. if the server has already been modified [2]. The user must then APIs are the basis for modeling as a service systems, such first pull the latest changes and manually merge them with his as MDEForge. Additionally, an API may be provided purely own changes before pushing them to the server. for internal use to manage operations between layers or nodes 2) Conflict Awareness: When working in collaboration, in the architecture. For example, there is a simplified API users should be aware of other users changes. Conflict Aware- between the MVC and MvK within the architecture described ness is the mechanism that warn users of conflicts. Notification in our prior work [4]. may be sent in response to conflict (e.g., 2 users move 4) Failure Recovery: Hardware and network systems are the same element) or to warn users about potential conflict subject to failure and error, but user experience should not (e.g., elements being edited by other users). It is disruptive be affected by a technical issue within the system. The for a user to perform a modification that results in unexpected possibility of recovery is closely relative to the chosen Network behavior, because the user was not notified of a conflict. Architecture. Decentralized architectures mitigate this issue as Warning conflict awareness are only mechanisms to inform each user owns a state of the project. Though the error might user about conflicts and concurrent actions. This feature pro- be disconnected from many users, consistency schemes must vides only information about conflicts or potential conflicts. exist to manage the decentralized authority. This is often used by the GUI, which uses combinations of Centralized architectures are notably subject to failure in the colors and animation to display the information. OBEO applies case of Single-Server where there is a single point of failure this solution by drawing a lock icon at the bottom of any necessary to take the entire system down, and recovery can locked element. However, this is not only restricted to GUI, be difficult to impossible depending on the severity of the this can also be applied in an API. For instance, it can be a failure. On the other hand, Distributed-Server may implement special return value of a function in case of conflict, or an a failure recovery system. If one server crashes, the system object state that changes according to it’s conflict state. The may use another server instead to maintain availability and case of a GUI is discussed in more details in Sect. V. redundancy may be used to prevent the loss of data. Prompt Action conflict awareness on the other hand, informs F. Conflict Management about conflict and requests the user take some action, such as in MedaEdit+. The user is prompted to update the model with Divergent modifications on the same data model may lead the server to remove existing locks. to a conflict when trying to resolve all modifications to a single consistent model state. It is important to detect conflicts and G. Multi-User act upon resolving them. 1) Conflict Resolution: Conflict resolution is the process This feature is concerned with the fact that multiple users by which all modifications are combined in order to create are interacting with the same or related models. a new version of the model. Automatic conflict resolution is 1) Authentication Method: Collaboration implies that sev- the ideal solution, where conflicts are resolved automatically. eral users are able to access the data models. An authentication Fig. 7. Multi-User features mechanism can be incorporated to give access only to regis- working concurrently is known. One implementation would be tered users or to simply track who is responsible for a given to highlight the mouse cursor of all users (e.g., Google Docs) operation. User Identification requires such an authentication or highlight the graphical element actively used by each user. method. The method may involve utilizing an external au- Nevertheless, a large number of users may cause confusion on thentication method. For example, GenMyModel allows users the canvas. This introduces the use of a Distinction Mechanism to connect through their Github account. Alternatively or in that adds special attributes to differentiate users. It may only addition, Anonymous Access may be provided to allow users differentiate local user from all others (e.g., using two colors), to connect without having to register. This can be used for or differentiate each user (e.g., one color per user). Using a example to allow read-only access. One example outside MDE distinction mechanism for each user can also lead to infor- is the IRC channels that do not require registration. mation overload. We can add additional information by using 2) Access Control: Users working in collaboration must an Identification Mechanism to identify the operation/focus of be able to access the data model. However, each user may each user distinctly. This is used by GenMyModel, which lists be provided a distinct set of permissions. This is handled all current collaborators for a model. by the Access Control feature. There are two distinct al- 4) Undo / Redo: Undo / Redo is a fundamental feature ternatives: Operation-Based and Data-Based. They may be of professional software. The common and expected behavior mixed together in order to have more fine-grained control. of undo is to revert the last action performed with fur- Operation-Based restricts what a given user is able to do on ther invocations of undo reverting prior action in reverse any model, based on the possible set of operations (e.g., CRUD order of original application. The standard behavior considers operations). A user is granted a specific operation permission only a single user, providing User-Specific Undo / Redo. that applies on any model from the project. This is similar to a Common patterns are known for implementing this feature database administrator that has full access to all elements. On (i.e., Command pattern [25]). Though this pattern works well the other hand, other users may have a restricted set of allowed for a single-user environment, additional complexities must operations. Data-Based access control may be provided to be handled in collaborative systems. We need to take into control the elements (at model or element level) and operations account not only the current user changes but also other user for those elements available to the user. changes. Using a local undo stack is not sufficient: reverting Access Control can be augmented with an Ownership Sys- a command in a collaborative environment must consider all tem that adds the possibility to restrict exceptional permission commands. Otherwise, unexpected behaviors might appear to only a set of users, as in GenMyModel. A project can be since our previous state has been altered by others. Consider shared with a team and permissions are given to certain users. the following scenario. Alice adds the attribute name in an They also add project visibility. A public project is visible to empty element. Bob adds the attribute age. Let us assume our everyone, though read only, any user can clone the project in undo implementation resets the element to its exact previous its own session, thereby creating a totally new project copied state. If Alice undoes her change, the element ends up being from this public repository. empty again. The age attribute has also disappeared because 3) User Presence Awareness: When collaborating, it is the implementation neglected modifications from other users. often preferred to know who is working concurrently. User A real-time API must implement a more complex stack Presence Awareness is the mechanism used to know which system for its undo / redo management that takes into account users are currently working on the same model. Current User the sequence of operations and resulting interdependencies Visible does not display any user other than the current one. introduced by concurrent collaboration. An example Undo / This is the behavior of non collaborative software. This might Redo in a collaborative environment is discussed in detail by be useful in collaboration in case of high number of users, Cheng et al. [26]. Another way to handle Undo / Redo is to remove the information overload, but instead only show to use Global Undo / Redo. The stack is shared across all the total number of current users. To fully use the power collaborators. GenMyModel can handle both alternatives: a of collaboration environment, it is recommended to use All user undo / redo is present, while history features allow global Visible feature. This implies that the presence of all users undo / redo using the general stack of changes. 5) Push Notification: This is the mechanism by which choices. On the other hand, very few Mobile application are user modifications are automatically propagated to others utilized for modeling(e.g., FlexiSketch [27]). Browser clients collaborating on the same model(s). Whenever an operation have an advantage in portability. Collaboration involves multi- is executed, all users must be aware of it and their local data ple users that often use different operating system. Supporting model updated. We distinguish between two kinds of Push a cross platform desktop application introduces additional Notifications. Any Modification is a continuous notification complexity and in modern systems in-browser environments scheme. Every operation generates a push out to every user. seem to be preferred. In-browser environments also eliminate This ensures the server is up to date and all users see the need for installation and dependency management for end- what others are doing in real-time (with some tolerance for users. However, a system may be provided without an explicit network latency delays). This technique is used by OBEO, client type being specified, but an appropriate API must be GenMyModel, and WebGME. provided to enable access to the system. Alternatively, Bulk Notification regroups changes and sends I. Execution them only when specific conditions are reached. Bulk notifi- cations may be sent manually in an Event-Driven approach (e.g., on a save action), in a Periodic approach (e.g., each 2 minutes), or in a Change Threshold approach. MetaEdit+ chooses the event-driven option and sends changes only when the user saves. This gives several advantages over Any Modifi- cation notification. Network load is notably reduced and users can hide from others the temporary broken or intermediate Fig. 9. Execution features state of the data model. Working on models often requires moving a set of elements, temporarily destroying links, and A special attention should be given to executable models other temporary or intermediate states. Though the goal of in a collaborative context. Let it be model transformation or one’s action may be acceptable, others may be disturbed model simulation, Executing Models can be done locally or by this temporary/intermediate state. Other users are only have an impact on the remaining users’ experience. Many interested in the result. However, the Sandbox feature can be issues arise, such as whether the transformation should happen provided to handle similar scenarios. in batch or every step is visible to all users. The latter is sup- 6) Communication: Communication tools are used to con- ported by AToMPM. Similarly, Debugging executable models tact other collaborators, ask them questions, add comments on is often done in a different mode than when editing. This may elements, or discuss conflicts detected and merges. Commu- raise conflict where the state of a model element is modified nication tools are closely related to User Presence Awareness by the execution while another user is modifying it. Note that that allows identifying who is working concurrently, and then supporting execution within a realtime environment imposes communication tools enable contacting them without using additional constraints (included in Figure 1). The constraints external tools. Real-time tools allow for direct communica- address the need to support users working concurrently by tion. The users must communicate in real-time. This is the preventing or mitigating the impact of conflicting operations case of video call, audio call, and instantaneous chat. On on the workflow of a given user. the other hand, Asynchronous communication allows delayed communication with other users (e.g., chat box, comment, or IV. E XAMPLES annotations on components). A complete taxonomy of com- We present four tools, among those we examined, chosen munication tools in MDE collaborative tools is provided by because of specific variants of the features they use and be- Davide Di Ruscio in his systematic mapping of collaborative cause there was enough documentation to support the claims. model-driven software engineering [12]. A. Instantiation H. Client Type An instantiation of the feature diagram will include all mandatory features as well as specifying those features with alternative sub-features or any optional features included. The following discussion assumes all mandatory features are included. In our feature diagram, the top level mandatory fea- tures are Collaboration Scenario Support, Concurrency, Data Storage, Network Architecture, and Conflict Management. Fig. 8. Client Type Features Without one of them, a collaboration environment wouldn’t be possible. On the other hand, Mutli-User, Client Type, and The end-user typically works on model(s) through a graph- Execution are not mandatory. Though feature such as Multi- ical representation. Modeling tools often make heavy use User are important, some cases may not need it. This is for of mouse cursor. Therefore, Desktop (MetaEdit+, OBEO) instance the case of API for MDE collaboration without a and Browser (AToMPM, WebGME) applications are common provided client. a) OBEO: OBEO is a collaborative modeling tool in d) MetaEdit+: The collaborative infrastructure of Eclipse based on CDO with Centralized server and continuous MetaEdit+ is similar to OBEO. It uses a Centralized server integration. Concurrency in OBEO uses Pessimistic Locking with continuous integration and applies Pessimistic Lock with with both Data Lock and Dependency Lock. Any modification a fine granularity and distinguishes dependencies. Therefore, on a model locks the whole model for this user (Data Lock) only a minimal set of elements is locked and only when restricting the ability for two users to work on the same needed [9]. It integrates a Version Control System using an model concurrently. However, they can work on separate External VCS. The VCS working directory is managed as a models, even with strong dependencies, using Dependency separate repository and uses the MetaEdit+ API to process the Lock. Whenever a model is locked, its dependencies are requests. In that sense, MetaEdit+ implements a full support also locked. This is fine grained locking allowing users to of existing VCS to version control models. Single-View work concurrently without conflict. OBEO uses four Easy- Multi-Users scenario is supported by MetaEdit+. To-Customize representations, diagrams, tables, matrices and trees. Collaborators may use any of these representations to V. D ISCUSSION work on the same data model, therefore, both scenarios Multi- A. Locking and dependencies User Single-View and Multi-View Single-Model are supported. Locking a model may seem safe, since only one user can b) WebGME: WebGME is an open source project that apply modifications on it. However, dependencies must be implements collaborative modeling with a Centralized server. taken into account. The current model Alice is modifying (and Concurrency is integrated with a Custom Versioning System locked to her) is safe from Bob’s updates. But this model may that also handles Multi Branching. Several users may work have dependencies with another model that is not currently on different branches and then merge together, using the inte- locked. If Bob modifies this other model, we would have grated merging tool. Each modification automatically creates a altered Alice’s model, even if it was locked. For instance, Alice commit. Offline modification is supported: the working branch can divide a UML diagram into several subsets linked together. is automatically merged with the synchronized version at the Changes that affect another subset should spread. Therefore, next connection. Concurrency is resolved by an interesting when an element is modified, other affected elements must be Optimistic Locking mechanism such that no actual locks are locked as well. However, dependencies are common in models required. In most cases, conflicts are resolved automatically and even small fragments might end up locking a huge set using, for example, a first-win rule. However, some conflicts of elements. Dependencies should be taken into account, but require manual intervention. In that case, a conflict is automati- supporting transitive links may be too restrictive. Maroti et cally resolved by creating a new branch for the user in conflict. al.emphasize how simple operations, such as copy or delete, His changes are then local to its branch and a manual merge to may end up locking a significant portion of a model [2]. the trunk is required. Though Concurrency is well supported, B. Versioning for Models User Presence Awareness is still missing and users may not understand why a conflict occurred. WebGME supports the Version control systems are widely used for source code Single-View Multi-Users scenario. projects. The syntactic nature of source code works efficiently with the text based nature of this diff & merge. The VCS c) GenMyModel: GenMyModel is a browser-based mod- detects modifications in the files and create a new version by eling tool that supports collaboration. GenMyModel introduces merging both changes. EMF Compare is a good example of an a complex sharing system similar to that provided by GitLab MDE tool using text-based comparison for models. A recent and Github; i.e., Data-Based Access Control with an Owner- article shows a way to use EMF Compare with EGit on Eclipse ship System. A user is the owner of their project and has all in order to integrate MDE versioning [28]. However, only diff rights on it. Collaborators may then be added to the project & merge is often not the most relevant for MDE because of with specific rights. An Operation-Based Access Control is the semantic nature of models. This issue of integration with introduced with the public or private state of a project. VCS is explained in details by MetaEdit+ [7]. In public projects, any user has read-only access, whereas private projects are visible and accessible only by their owner C. GUI for Conflict Awareness and collaborators. GenMyModel provides Live Collaboration, We have explained the importance of having a User Conflict implementing a Centralized Network Architecture. Data can be Awareness mechanism. Here, we discuss concerns relevant to accessed from anywhere and is not cloned on the client side. GUIs. The following examples emphasize the importance of History is implemented without an external VCS. All changes User Conflict Awareness in a GUI. Assume that Alice drags made by users are saved creating a modification timeline. and drops an element from a model. Bob tries to drag and drop Users can therefore browse the change and go back to a the same element at the exact same time, but to a different previous version. GenMyModel allows several collaborators to location. Alice releases the element before Bob. If the conflict work on the same model with the same view. This is the first management system is optimistic, the last to drop is retained. scenario Multi-User Single-View that is supported. Moreover, it Therefore, Bob’s final action prevails, and the element is also adds possibility to have a view that project several models, placed according to his action. From Alice’s point of view, therefore Single-View Multi-Model scenario is also supported. the element disappears or shifts when she releases it. This is confusing and unexpected behavior. Alice may even see this [4] J. Corley, E. Syriani, and H. Ergin, “Evaluating the cloud architecture as a bug. In such situations, a GUI warning may be displayed. of atompm.” in MODELSWARD, 2016, pp. 339–346. [5] F. Basciani, J. Di Rocco, D. Di Ruscio, A. Di Salle, L. Iovino, One solution is to blink the element on Alice’s GUI and play and A. Pierantonio, “MDEForge: an extensible Web-based modeling an animation that moves the element to the final position (from platform,” CloudMDE, p. 66, 2014. Bob’s action). This way, Alice understands that her change was [6] “Obeo collaborative modeling documentation,” http://docs.obeonetwork. com/obeodesigner/8.0/user/CollaborativeModeling User.html, 2017. immediately followed by Bob’s. OBEO applies this solution [7] S. Kelly, “Smart model versioning,” http://modeling-languages.com/ by annotating with a lock icon at the bottom of any locked smart-model-versioning/, 2017. element. Google Drive, places a special red cross icon on a [8] S. Hiya, K. Hisazumi, A. Fukuda, and T. Nakanishi, “clooca : Web based tool for Domain Specific Modeling,” in Invited Talks, Demonstration deleted element. The cross lasts long enough for the user to Session, Poster Session, and ACM Student Research Competition @ see the element being deleted before it disappears. MODELS’13, vol. 1115. CEUR-WS.org, 2013, pp. 31–35. [9] S. Kelly, K. Lyytinen, and M. Rossi, “MetaEdit+ A fully configurable D. Why should we use User Presence Awareness multi-user and multi-tool CASE and CAME environment,” in Confer- ence on Advanced Information Systems Engineering, ser. LNCS, vol. Knowing who is currently working on the same document 1080. Springer, 1996, pp. 1–21. has several advantages. For a communication purpose, this [10] M. Dirix, blog.genmymodel.com/discover-the-revision-history-in-your- warns us of others currently working on the same project. genmymodel-projects.html, 2017. [11] J. Gallardo, C. Bravo, and M. A. Redondo, “A model-driven develop- This eases the general knowledge of the team work and who ment method for collaborative modeling tools,” Journal of Network and to contact if an element needs to be discussed. For instance, Computer Applications, vol. 35, no. 3, pp. 1086–1105, 2012. if a fast feed-back is required for a modification, it is easy [12] Davide Di Ruscio, “Collaborative model driven software engineering: a Systematic Mapping Study,” COMMitMDE at MoDELS 2016, 2016. to request others. Moreover, it has an impact on the learning [13] Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, and Alfonso process: users are able to help each other. If Bob makes use Pierantonio, “Collaborative Repositories in Model-Driven Engineering,” of an action unknown to Alice, asking him is easy and fast IEEE Software, 2015. [14] Guido Van Rossum, “How the Dropbox Datastore API Handles Con- via the communication mechanism in place. ficts,” https://blogs.dropbox.com/developers/2013/08/how-the-dropbox- datastore-api-handles-conflicts-part-two-resolving-collisions/, 2013. E. Note about Push Notification [15] Google, “Google realtime api,” https://developers.google.com/ We discussed in the Push Notification feature that user google-apps/realtime/overview, 2017. [16] Irisate, “Real time collaboration technology roundup,” https://irisate. modifications are sent either continuously (Any Modification), com/collaborative-editing-solutions-round-up/, 2017. or regrouped and sent manually or periodically (Bulk Notifi- [17] E. S. Constantin Masson, Jonathan Corley, “Collaborative cation). In practice, it is often a mix of both. For example, modeling environment features,” http://www.remodd.org/v1/content/ collaborative-modeling-environment-features, Universit de Montral, in GoogleDoc, modifications are sent at upon saving the University of West Georgia, 2017. document, which is triggered automatically. The frequency [18] OBEO, “Collaborative features,” https://www.obeodesigner.com/en/ of saves usually starts after a significant change is made collaborative-features, 2017. [19] “Subversion book,” https://tortoisesvn.net/docs/release/TortoiseSVN en/ in the document. This result in an almost continuous Push tsvn-basics-versioning.html, 2017. Notification and releases the network load at the same time. [20] D. Spiewak, “Understanding and applying operational transformation,” http://www.codecommit.com/blog/java/ VI. C ONCLUSION understanding-and-applying-operational-transformation, 2010. [21] G. Taentzer, C. Ermel, P. Langer, and M. Wimmer, “A fundamental Following our prior work and the growing trend toward approach to model versioning based on graph modifications: from theory collaborative modeling systems, we have outlined a feature to implementation,” Software & Systems Modeling, vol. 13, no. 1, pp. model identifying key concerns for collaborative modeling 239–272, 2014. [22] K. Altmanninger, M. Seidl, and M. Wimmer, “A survey on model ver- systems. To develop the feature diagram, we explored exist- sioning approaches,” International Journal of Web Information Systems, ing collaborative modeling systems and potential solutions. vol. 5, no. 3, pp. 271–304, 2009. We hope that it will encourage and facilitate development, [23] R. Potvin and J. Levenberg, “Why google stores billions of lines of code in a single repository,” Communications of the ACM, 2016. discussion, and analysis on collaborative modeling systems. [24] Leslie Lamport, “Paxos Made Simple,” ACM SIGACT News, vol. 32, As future work, we would like to systematically assess the no. 4, pp. 51–58, 2001. benefits of each feature. This will help us choose the features [25] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-oriented Software. Boston, MA, USA: and variants to support in our tool AToMPM. Addison-Wesley Longman Publishing Co., Inc., 1995. [26] Y. Cheng, F. He, S. Jing, and Z. Huang, “An multiuser undo/redo method R EFERENCES for replicated collaborative modeling systems,” Computer Supported [1] E. Syriani, H. Vangheluwe, R. Mannadiar, C. Hansen, S. Van Mierlo, Cooperative Work in Design, 2009. CSCWD 2009 13th International and H. Ergin, “AToMPM: A Web-based Modeling Environment,” in Conference on Computer Supported Cooperative Work in Design, 2009. Invited Talks, Demonstration Session, Poster Session, and ACM Student [27] D. Wüest, N. Seyff, and M. Glinz, “FlexiSketch: A Mobile Sketching Research Competition, ser. MODELS’13, vol. 1115. CEUR-WS.org, Tool for Software Modeling,” in Mobile Computing, Applications, and 2013, pp. 21–25. Services, ser. Lecture Notes of the Institute for Computer Sciences, [2] M. Maróti, T. Kecskés, R. Kereskényi, B. Broll, P. Völgyesi, L. Jurácz, Social Informatics and Telecommunications Engineering. Springer, T. Levendovszky, and Á. Lédeczi, “Next Generation (Meta)Modeling: Berlin, Heidelberg, 2012, pp. 225–244. Web- and Cloud-based Collaborative Tool Infrastructure,” in Multi- [28] Philip Langer, “Version control for models: From Research to Industry Paradigm Modeling, vol. 1237. CEUR-WS.org, oct 2014, pp. 41–60. and Back Again,” in Workshop on Models and Evolution, vol. 1706. [3] J. Corley, E. Syriani, H. Ergin, and S. Van Mierlo, “Cloud-based CEUR-WS.org, 2016, p. 1. Multi-View Modeling Environments,” in Modern Software Engineering Methodologies for Mobile and Cloud Environments, A. M. Cruz and P. S, Eds. IGI Global, 2016.