Make your EMF applications handle very large models for free!

NeoEMF is a model persistence solution designed to store models in several kind of NoSQL datastores. It is fully compatible with EMF, making it easy to integrate into your modeling applications.

NeoEMF is based on a lazy-loading mechanism that transparently brings into memory model elements only when they are accessed and remove them when they are no longer needed. With this feature, NeoEMF is able to handle models containing millions of elements even in highly-constrained memory environments.

Graphs, Maps, or Columns!

NeoEMF provides three backend which are able to store your models:

NeoEMF/Graph

use the power of graph query language to compute model queries efficiently! Models are represented using vertices, edges, and properties, and can be efficiently queried using the Mogwaï!

NeoEMF/Map

serialize your model into in-memory/on-disk maps to speed-up model access and update using the standard EMF API!

NeoEMF/Column

you want to execute model transformations on very large models? Use NeoEMF/Column to store your model into a distributed wide column database and transform it using ATL-MR!

Features

Lazy-Loading

Lazy-Loading

NeoEMF loads model elements only when they are accessed, limiting memory consumption and improving loading execution time.

Multiple Backends

Multiple Backends

NeoEMF supports many storage solutions. Current version provides implementations for MapDB, Blueprints, Neo4j, and HBase!

EMF-API Compliant

EMF-API Compliant

We put a special attention to ensure that calling a NeoEMF method produces the same behavior as standard EMF API calls.

Auto-Commit

Auto-Commit

Each database implementation provides an autocommit feature that regularly saves changes in order to free the memory.

Caching

Caching

NeoEMF embeds a set of caches that can be turned on/off. Want to cache features, size results, isSet results? We have what you need!

Direct Import

Direct Import

Importing models from XMI can be painful and costly. That's why we have developped an efficient and scalable XMI parser for you!

GET STARTED!

Related Publications

We have made several research publications to present our approach and address specific problems (both conceptual and technical) we faced during the development. You can find here the list of NeoEMF-related publications and the presented slides when they are available.

Neo4EMF, a Scalable Persistence Layer for EMF Models

A. Benelallam, A. Gómez Llana, G. Sunyé, M. Tisi, and D. Launay. In ECMFA 2014, York, United Kingdom, 2014 (article)

Improving Memory Efficiency for Processing Large-Scale Models

G. Daniel, G. Sunyé, A. Benelallam, and M. Tisi. In BigMDE 2014, York, United Kingdom, 2014 (article)

Map-Based Transparent Persistence for Very Large Models

A. Gómez Llana, M. Tisi, G. Sunyé, and J. Cabot. In FASE 2015, London, United Kingdom, 2015 (article)

Mogwaï: a Framework to Handle Complex Queries on Large Models

G. Daniel, G. Sunyé, and J. Cabot. In RCIS 2016, Grenoble, France, 2016 (article)

PrefetchML: a Framework for Prefetching and Caching Models

G. Daniel, G. Sunyé, and J. Cabot. In MoDELS 2016, Saint-Malo, France (article)

NeoEMF: a Multi-Database Model Persistence Framework for Very Large Models

G. Daniel, G. Sunyé, A. Benelallam, M. Tisi, Y. Vernageau, A. Gómez Llana, and J. Cabot. In MoDELS 2016 (Tool Demo Track), Saint-Malo, France, 2016 (article)

Blog

Demonstration Video

This demonstration presents the core feature of NeoEMF. First we present the supported backends and we import into each one an existing XMI model. Then, we present the NeoEMF editor, a lightweight model editor that Read more…

Let's Get In Touch!

Want to discuss about NeoEMF? Submit an issue? Report your experience using our tools? Please contact us!

Contact Us

[wpforms id="44" title="false" description="false"]