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 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. 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) synchronization, 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 limitations above. A virtual model provides to tools/users 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. It provides 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 contributed by the AtlanMod team to the CESAR project. The initiative continues to be developed within the context of the French FUI 13 project named TEAP [TODO Put ref to TEAP http://www.atlanpole.fr/Atlanpole-Digital-Innovation/liste-des-news/TEAP-Projet-Collaboratif-d-Innovation ].