Dawn: a Bridge Between CDO and EMF-based UI
A framework that provides an easy integration between user interfaces and model repositories.
The Dawn framework has reached its 1.0 release, adding a new, split up generator model, support for tree-based EMF editors, and other updates. In this interview, we speak to Dawn creator and CDO committer, Martin Flügge, on the new features in Dawn 1.0, and the next steps for this project.
JAXenter: Can you give us an introduction to the Dawn project?
Martin Flügge: Dawn is a framework that provides an easy integration between user interfaces and model repositories. It was originally developed as a collaborative extension for GMF editors, but has soon extended its scope to other frameworks. As part of the CDO project, Dawn builds a bridge between CDO and EMF-based UI like the generated tree based editors, GMF or Graphiti. Thus it provides a runtime and an API which allows developing small extensions that enable your existing editors to connect to CDO and to store your data in a distributed model repository, instead of a local file. In addition, it upgrades the editors with essential collaborative features like visualisation and handling of conflicts.
Dawn also provides a generator component that allows creating those extensions for a given editor. So, you can enrich your editors with collaborative functionality without writing a single line of code. All this is done with a minimal impact for the users. The way they create and handle their editors stays the same. In the best case, a user would not even notice that he is operating on a distributed model repository instead of a local file system. Also from the very beginnings of the project, Dawn has focussed on web‐based technologies to provide easy mechanisms to manipulate EMF‐based models from within a browser.
JAXenter: What are the benefits of the new, split up generator model, introduced in Dawn 1.0?
Martin: The separation of the generator model was an important step in making the Dawn generator more flexible. The old generator model introduced in Dawn 0.2 was only capable of generating extensions for GMF‐based editors, so the whole component had dependencies to the GMF generator model.
With the new generators for EMFs tree‐based editors, which are part of the new release, these dependencies had to be removed. Otherwise, any customer who only wanted to generate an extension for EMF also would have been forced to install GMF. Worse, when GMF Tooling left the Indigo release train, the Dawn generator also should have left, because it was referencing parts of the GMF Tooling project. To keep at least the new EMF generators on the train and provide more flexibility, the generator model was split up into two kinds of models. On the one hand a main model that holds general information for all extended editors like coloring definitions for conflicts and on the other hand, a specific model for every EMF framework that should be extended.
JAXenter: What else is new, in the 1.0 release?
Martin: Besides many bug fixes, Dawn 1.0 now allows extending the EMF tree-based editors. As for GMF editors the extension can also be generated with some simple clicks and without the need to code anything. This feature allows new ways of distributed modeling because now you have an additional way to manipulate your distributed model. From the repository side of view, editors are actually nothing but views of your data. And so this new feature offers a new view, a tree‐like one, to your models. But no matter which view you use to manipulate you data, all other views will be automatically informed about the changes. This means that you can edit some parts of your model from a tree, whereas other parts can be edited in a graphical editor. In either case the editors are connected, so changes in one are automatically reflected in the other.
To prove the implementation, we created an extension (certainly by using the new generator for EMF) for the famous EMF Ecore editor and made it collaborative. Likewise, we did it for the graphical diagram editor from the Ecore Tools project. With these two new extensions, users are now able to develop Ecore models in distributed teams. Regional distances are no problem anymore.
JAXenter: What are the next steps for the Dawn project?
Martin: One of the most important next steps is the integration of the Graphiti project. Dawn will also add collaborative and distributed features to every editor which is based on this framework. This means an extension to the Dawn Runtime as well as a specific generator. We will also focus more on the web integration for graphical and tree‐based editors. The Dawn Web component is currently still in the incubation phase. It is planned to extend the existing work to a full featured web‐based model manipulation suite to allow access to the models from all over the world. Furthermore, we will add other important features like locking support or authentication and authorization to the Dawn runtime and all expended editors.
Last but not least, there are also plans to integrate editors that are based on a textual domain specific language, like the ones provided by the XText framework.