Section: Software and Platforms
Neo4EMF
Neo4EMF is an open source software distributed under the terms of the Eclipse Public License, that provides a persistence backend for big, complex and highly interconnected EMF models.
Neo4EMF is a model repository and persistence framework allowing on-demand loading, storage, and unloading of large-scale EMF models. Neo4EMF uses a sophisticated unloading approach apart from simple Soft/Weak references. Moreover, Neo4EMF provides a No-SQL database persistence framework based on Neo4j (http://www.neo4j.org ), which is a transactional property-graph database that proved a remarkable running speed for connected data operations compared to relational databases.
In terms of performance, Neo4EMF eases data access and storage not only in a manner to reduce time and memory usage but also to allow big models to fit into small memory. This is established through an on-demand loading mechanism that offers :
-
Lightweight first time loading of model elements : we separated EMF objects and their data fields, thus, data objects are only instantiated if an access request to one of their fields is established
-
Dynamic partitioning of model elements : a partition represents a group of model elements to be unloaded all together. Hence, after each EMF operation call, first time loading objects are organized in their suitable partition
-
Unloading of model partitions : when memory reaches a given threshold, we use a selection strategy to choose one or more partitions to be removed from the memory
A session about Neo4EMF took place at eclipseCon Europe 2013 (https://www.eclipsecon.org/europe2013/neo4emf-big-models-made-possible ), held in Ludwigsburgh Germany.
However, works are still going over Neo4EMF (within the context of the project ITM Factory -FUI14), to provide more utilities such as concurrent access, model distribution, and other Ecore utilities.