Skip navigation links

NeoEMF 1.0.2 API

NeoEMF : A Multi-database Model Persistence Framework.

See: Description

Core 
Package Description
fr.inria.atlanmod.neoemf.annotations
Provides common annotation types.
fr.inria.atlanmod.neoemf.core
Provides the base classes that extends EMF API to enable lazy-loading of model elements.
fr.inria.atlanmod.neoemf.data
Provides generic classes representing data management operations.
fr.inria.atlanmod.neoemf.data.store
Provides classes to map model-level operations into persistence-level operations.
fr.inria.atlanmod.neoemf.data.structure
Provides simple representations of objects used to translate model-level operations in persistence calls.
fr.inria.atlanmod.neoemf.option
Provides utility classes to provide modeling and persistence level options to NeoEMF.
fr.inria.atlanmod.neoemf.resource
Provides classes extending EMF resource management to support lazy-loading and database delegation.
fr.inria.atlanmod.neoemf.util
Provides utility classes to ease URI management or containment list computation.
fr.inria.atlanmod.neoemf.util.logging
Provides classes for logging information and events.
I/O 
Package Description
fr.inria.atlanmod.neoemf.io
Provides methods and classes for working with Java I/O, such as import/export features.
fr.inria.atlanmod.neoemf.io.hash
Provides hash functions and related structures.
fr.inria.atlanmod.neoemf.io.persistence
Provides classes linking I/O features to persistence features.
fr.inria.atlanmod.neoemf.io.processor
Provides classes that adds preprocessing and postprocessing functionalities during an I/O process.
fr.inria.atlanmod.neoemf.io.reader
Provides classes related to data reading.
fr.inria.atlanmod.neoemf.io.structure
Provides simple representations of objects used during import/export.
Blueprints 
Package Description
fr.inria.atlanmod.neoemf.data.blueprints
Provides classes related to data management specific to a Blueprints implementation.
fr.inria.atlanmod.neoemf.data.blueprints.configuration
Provides utility configuration classes that are dynamically called to setup Blueprints databases.
fr.inria.atlanmod.neoemf.data.blueprints.io
Provides Blueprints' specific readers and writers used in the io module to save and persist models from external sources.
fr.inria.atlanmod.neoemf.data.blueprints.option
Provides utility classes to define specific behaviors of Blueprints data persistence.
fr.inria.atlanmod.neoemf.data.blueprints.store
Provides specific classes to map model-level operations into Blueprints-level operations.
fr.inria.atlanmod.neoemf.data.blueprints.tg.configuration
Provides utility configuration classes that are dynamically called to setup TinkerGraph Blueprints implementation.
fr.inria.atlanmod.neoemf.data.blueprints.util
Provides utility classes to create Blueprints specific URIs.
Blueprints Neo4j 
Package Description
fr.inria.atlanmod.neoemf.data.blueprints.neo4j.configuration
Provides utility configuration classes that are dynamically called to setup Neo4j Blueprints implementation.
fr.inria.atlanmod.neoemf.data.blueprints.neo4j.option
Provides utility classes to define specific behaviors of Neo4j data persistence.
MapDB 
Package Description
fr.inria.atlanmod.neoemf.data.mapdb
Provides classes related to data management specific to a MapDB implementation.
fr.inria.atlanmod.neoemf.data.mapdb.option
Provides utility classes to define specific behaviors of MapDB data persistence.
fr.inria.atlanmod.neoemf.data.mapdb.serializer
Provides serializers that allows to persist model-level elements into MapDB collections.
fr.inria.atlanmod.neoemf.data.mapdb.store
Provides specific classes to map model-level operations into MapDB-level operations.
fr.inria.atlanmod.neoemf.data.mapdb.util
Provides utility classes to create MapDB specific URIs.
HBase 
Package Description
fr.inria.atlanmod.neoemf.data.hbase
Provides classes related to data management specific to a HBase implementation.
fr.inria.atlanmod.neoemf.data.hbase.option
Provides utility classes to define specific behaviors of HBase data persistence.
fr.inria.atlanmod.neoemf.data.hbase.store
Provides specific classes to map model-level operations into HBase-level operations.
fr.inria.atlanmod.neoemf.data.hbase.structure
Specific classes allowing to store model-level elements in HBase efficiently.
fr.inria.atlanmod.neoemf.data.hbase.util
Provides utility classes to create HBase specific URIs, serialize and deserialize HBase records, and manage HBase resource life-cycle.

NeoEMF : A Multi-database Model Persistence Framework.

The figure below describes the integration of NeoEMF in the Eclipse-based EMF ecosystem, the most popular modeling framework nowadays. Modelers typically access a model using Model-based Tools, which provide high-level modeling features such as a graphical interface, interactive console, or query editor. These features internally rely on EMF's Model Access API to navigate models, perform CRUD operations, check constraints, etc. At its core, EMF delegates the operations to a persistence manager using its Persistence API, which is in charge of the (de)serialization of the model. The NeoEMF core component is defined at this level, and can be registered as a persistence manager for EMF, replacing, for instance, the default XMI persistence manager. This design makes NeoEMF both transparent to the client-application and EMF itself, that simply delegates the calls without taking care of the actual storage.

Once the NeoEMF core component has received the request of the modeling operation to perform, it forwards the operation to the appropriate database driver (MapDB, Blueprints, or HBase), which is in charge of handling the low-level representation of the model. These connectors translate modeling operations into Backend API calls, store the results, and reify database records into EMF EObjects when needed. NeoEMF also embeds a set of default caching strategies that are used to improve performance of client applications, and can be configured transparently at the EMF API level.

NeoEMF Architecture Overview

Each backend is provided in a dedicated Eclipse plugin. you can navigate through the documentation to have a complete overview of backend-specific classes and how they interact with the core component. NeoEMF provides 4 database adapters for now:

  • Blueprints - TinkerGraph: the default graph database embedded in Blueprints
  • Blueprints - Neo4j: Neo4j graph database under the Blueprints API
  • MapDB: an in-memory/on-disk Map database
  • HBase: a distributed Column database

Sources are available on GitHub. Further informations can be found on NeoEMF website.

Skip navigation links

Copyright © 2013–2017 Atlanmod INRIA LINA Mines Nantes. All rights reserved.