What Is NeoEMF?

NeoEMF is a project that aims at handling large EMF models in an efficient and scalable way.

It is based on our work on Neo4EMF, a scalable and graph-based backend for persisting EMF models.

NeoEMF is a multi-backend framework developped to allow an easy integration of custom backends depending on user needs.

What Are the Features?

NeoEMF comes with some features depending on the backend used:

  • Lazy-loading mechanism: A model is loaded part by part while needed
  • Caching: NeoEMF relies on database caches to retrieve EObjects But in some situation where time performance is important this is not enough and it is possible to use application-level caches to speed up information loading
  • Auto-commit: For the backend having restrictions on transaction sizes it is possible to use the auto-commit feature to split large transaction into several small ones
  • Dirty saving: Handle large models that haven't been persisted to avoid memory overhead

Why Should I Use NeoEMF?

NeoEMF is fully EMF compliant, that means there is no modification to do to use it with existing EMF based applications.

Additionally NeoEMF can be plugged with several persistence solutions and is configurable to fit the best your needs (custom caches, in-memory resources, auto-commit,...).

In addition, NeoEMF provides a query API to perform optimized OCL queries over models and reify the results as navigable models.

Provider: 
ASSOCIATION POUR LA RECHERCHE ET LE DEVELOPPEMENT DES METHODES ET PROCESSUS INDUSTRIELS, FUNDACIO PER A LA UNIVERSITAT OBERTA DE CATALUNYA
Keywords: 
Model identification facility
Model storage facility
Model querying facility
Model import/export facility
Source code repository facility
main contact: 
Gwendal Daniel
License: 
EPL 2.0

Downloads

NeoEMF can be installed in Eclipse from the update site link shown below.

Documentation

NeoEMF documentation is available at the WIKI link shown below.

Source Code

NeoEMF source code is available at the GitHub repository link shown below.