Dawn: a Bridge Between CDO and EMF-based UI
A framework that provides an easy integration between user interfaces and model repositories.
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
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
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.