Section: Software

Virtual EMF (Model Virtualization)

URL: http://code.google.com/a/eclipselabs.org/p/virtual-emf/

Virtual EMF is an Eclipse plugin built on top of EMF that enables the creation and manipulation of virtual models, i.e., models whose elements do not contain concrete data, but are rather proxies to elements contained in other models. The idea is related to that of model composition, as it aims capturing the (often overlapping) concepts a set of models as one single global model. This is a frequently faced problem as, in complex scenarios, modelers often have to deal with a large number of heterogeneous and interrelated models, and most times the view a specific kind of user requires does not correspond to any of these models, but is a combination of cross-domain information scattered among several ones.

Current composition techniques rely on the materialization of the composed model, an approach that poses some important limitations in terms of (i) efficiency, as they do not scale (the data duplication mechanism they use implies in extra memory usage and time-consuming generation of the composed model), (ii) synchronicity, as updates in the composed model are not propagated to the original ones (or vice-versa), thus losing consistency, or even (iii) interoperability, as in some cases the composed model requires a specific API/tool to be handled.

Virtual EMF allows overcoming the limitatins above. A virtual model provides to tools/user the illusion of working with a regular model whereas, in fact, all model access and manipulation requests are transparently redirected to its set of virtualized models. It serves as a centralized and transparent access point to a set of interconnected models, allowing users to easily compose, weave and link them. thus providing the following beneficial properties:

  • Interoperability: it behaves as a normal model. Therefore, compatibility with existing EMF-based solutions/tools (e.g. models transformations, model editors, ...) is guaranteed;

  • Synchronization: changes are automatically and transparently propagated between virtual and original models;

  • Scalability: support for very big models;

    • low memory usage: no data duplication, direct access to original model elements;

    • faster generation time: no need for (time-consuming) information cloning operations (e.g. executing a model transformation);

  • Genericity: support for several types of inter-model relationships (e.g. merge, association, filter) and extension capabilities for their semantics.

Virtual EMF is available as an open-source project on Eclipse Labs. It has been presented in a talk in EclipseCon Europe 2011 and contributed by the AtlanMod team to the CESAR project.