Skip to content
Gwendal Daniel edited this page Oct 19, 2015 · 19 revisions

NeoEMF Wiki

What is NeoEMF?

NeoEMF is an AtlanMod research team 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 supported backends?

NeoEMF is provided with a complete support of MapDB and Blueprints databases. Some Blueprints connectors are also available to ease the integration of graph databases (Neo4j for the moment).

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 (All the backends)
  • 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 (All the backends)
  • 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 (Blueprints backend)
  • Dirty saving: handle large models that haven't been persisted to avoid memory overhead (Blueprints backend)

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 (for the moment Blueprints and MapDB) 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.

Installation

See the dedicated wiki page.

Contributions

If you experience issues installing or using NeoEMF, you can submit an issue on github or contact us at contact@neoemf.com

Develop Your Backend Implementation

If you have developped a specific backend implementation that is not covered by the actual release of NeoEMF, you can submit it as a pull request and/or contact us at contact@neoemf.com. (More informations to come about custom backend implementations).