Neo4EMF :
Big Models made possible
Amine BENELALLAM
AtlanMod Research Team
EclipseCon Europe 2013,
Ludwigsburgh, Germany
O...
Context

Model Management
Model Transformation

Model Versionning

© AtlanMod - atlanmod-contact@mines-nantes.fr

….

2
Challenges + solutions
Lazy loading
On demand
loading
Save if dirty
Effective Backend

3
Database Market
Relational DBs
NoSQL DBs
Column
Document
Key/value
Graph

© AtlanMod - atlanmod-contact@mines-nantes.fr

4
Graphs & MDD
Natural
Representation
Models as attributed
directed graphs

Graphs

Model
Management
Tech

High performance
...
Towards Graph DBs to Persist Models

© AtlanMod - atlanmod-contact@mines-nantes.fr

6
Neo4J
Short presentation
Basic concepts

7
Neo4j : Short Introduction
Neo4j project started in 2007 in Sweden
First Version (1.0) was released in 2010
More than 10 V...
They trust Neo4j

9
Neo4j Graph DB concepts

10
Neo4j Graph DB concepts

11
Neo4j Graph DB concepts

12
Neo4j Graph DB concepts

13
Neo4EMF
Integration
Framework
Process
Data-Representation
What’s new in Neo4EMF
Changelog
Partitioning
Java Ecore codegen
...
Neo4EMF = EMF+Neo4J_embedded

15
Framework
Neo4emfUtils

Neo4j

NeoJava codeGen

ChangeLog

Neo4EMF
Eclipse Modeling Framework

© AtlanMod - atlanmod-conta...
Process
Edit/ create Data

Check changes

Notify get / set

Retrieve data

Neo4j Resource

17
Data Representation

18
Data Representation

19
Neo4EMF-Object
A Neo4EMF-Object is simply a :
MinimalEObjectImpl
Additional metadata (ID)
Notifies changes and access
Stor...
Save : ChangeLog
Lightweight entry set that casts and records
changes notifications

© AtlanMod - atlanmod-contact@mines-n...
Load : Partitioning
Two kinds of partitions
Flat partitions (to gather elements of the same type)
Tailed partitions (to ho...
Unload : Access History
The Unloader uses the data access
history recorder to unload partitions
Unloading strategies :
LIF...
NeoJava Codegen
Adapted codegen templates for :
Refined on-demand loading
Data access notification
Costimized AdapterFacto...
DemonstrationScenario
Generate

Query

Java.ecore

(it can be any other
plugin)
org.eclipse.emf.ecore

© AtlanMod - atlanm...
Still more to come
Concurrent Access
Distributed models
Synchronized unloading
More Ecore utilities

© AtlanMod - atlanmod...
Questions

© AtlanMod - atlanmod-contact@mines-nantes.fr

27
Don’t forget to
Check us out :
www.neo4emf.com
Contact us :
neo4emf@gmail.co
m
Fork us at :
https://github.com/
neo4emf/Ne...
Upcoming SlideShare
Loading in …5
×

Neo4EMF eclipsecon 2013

1,795 views

Published on

NEO4EMF, a Neo4j-based model repository and persistence framework allowing on-demand loading, storage, and unloading of large-scale EMF models.
Check us at : https://neo4emf.com
Fork us at : https://github.com/neo4emf/Neo4EMF

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,795
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
17
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Neo4EMF eclipsecon 2013

  1. 1. Neo4EMF : Big Models made possible Amine BENELALLAM AtlanMod Research Team EclipseCon Europe 2013, Ludwigsburgh, Germany October 31 1
  2. 2. Context Model Management Model Transformation Model Versionning © AtlanMod - atlanmod-contact@mines-nantes.fr …. 2
  3. 3. Challenges + solutions Lazy loading On demand loading Save if dirty Effective Backend 3
  4. 4. Database Market Relational DBs NoSQL DBs Column Document Key/value Graph © AtlanMod - atlanmod-contact@mines-nantes.fr 4
  5. 5. Graphs & MDD Natural Representation Models as attributed directed graphs Graphs Model Management Tech High performance Advanced graph traversal algorithms © AtlanMod - atlanmod-contact@mines-nantes.fr 5
  6. 6. Towards Graph DBs to Persist Models © AtlanMod - atlanmod-contact@mines-nantes.fr 6
  7. 7. Neo4J Short presentation Basic concepts 7
  8. 8. Neo4j : Short Introduction Neo4j project started in 2007 in Sweden First Version (1.0) was released in 2010 More than 10 Versions (active Community) Current Version 2.0.0-M06 (MileStone) Labelled nodes Constrained DB 8
  9. 9. They trust Neo4j 9
  10. 10. Neo4j Graph DB concepts 10
  11. 11. Neo4j Graph DB concepts 11
  12. 12. Neo4j Graph DB concepts 12
  13. 13. Neo4j Graph DB concepts 13
  14. 14. Neo4EMF Integration Framework Process Data-Representation What’s new in Neo4EMF Changelog Partitioning Java Ecore codegen 14
  15. 15. Neo4EMF = EMF+Neo4J_embedded 15
  16. 16. Framework Neo4emfUtils Neo4j NeoJava codeGen ChangeLog Neo4EMF Eclipse Modeling Framework © AtlanMod - atlanmod-contact@mines-nantes.fr 16
  17. 17. Process Edit/ create Data Check changes Notify get / set Retrieve data Neo4j Resource 17
  18. 18. Data Representation 18
  19. 19. Data Representation 19
  20. 20. Neo4EMF-Object A Neo4EMF-Object is simply a : MinimalEObjectImpl Additional metadata (ID) Notifies changes and access Stores an adapter to capture notifications and store them in the changelog © AtlanMod - atlanmod-contact@mines-nantes.fr 20
  21. 21. Save : ChangeLog Lightweight entry set that casts and records changes notifications © AtlanMod - atlanmod-contact@mines-nantes.fr 21
  22. 22. Load : Partitioning Two kinds of partitions Flat partitions (to gather elements of the same type) Tailed partitions (to hold references to other objects) Partitions might be flexible Static/Dynamic Partitioning Full-Load © AtlanMod - atlanmod-contact@mines-nantes.fr 22
  23. 23. Unload : Access History The Unloader uses the data access history recorder to unload partitions Unloading strategies : LIFO, FIFO Least recently used Least frequenty used © AtlanMod - atlanmod-contact@mines-nantes.fr 23
  24. 24. NeoJava Codegen Adapted codegen templates for : Refined on-demand loading Data access notification Costimized AdapterFactory to cast notifications and store them in the changelog Separated objects and data © AtlanMod - atlanmod-contact@mines-nantes.fr 24
  25. 25. DemonstrationScenario Generate Query Java.ecore (it can be any other plugin) org.eclipse.emf.ecore © AtlanMod - atlanmod-contact@mines-nantes.fr 25
  26. 26. Still more to come Concurrent Access Distributed models Synchronized unloading More Ecore utilities © AtlanMod - atlanmod-contact@mines-nantes.fr 26
  27. 27. Questions © AtlanMod - atlanmod-contact@mines-nantes.fr 27
  28. 28. Don’t forget to Check us out : www.neo4emf.com Contact us : neo4emf@gmail.co m Fork us at : https://github.com/ neo4emf/Neo4EMF © AtlanMod - atlanmod-contact@mines-nantes.fr 28

×