This document discusses the challenges of heterogeneous data models when dealing with multi-cloud and multi-data store applications. Specifically, it notes that with different cloud providers come different data stores and data models, leading to fragmentation. The document proposes that model-driven engineering can help address this issue by separating the problem from the solution, and enabling design data to be stored anywhere through transformation. However, writing transformations is challenging due to differences in data store paradigms and variable data structures across targets.
2. 20 ME
2006
17,5 ME
2005
60 ME
2012
Paris
Rennes
Nantes
Sophia
SOFTEAM – We are a French IT services / Software
vendor
OFTEAM, a growing
company
20 years’ experience
700 experts
Regular growth
pecialist in OO technologies,
new architectures,
methodologies
anking, Defense, Telecom, …
www.modeliosoft.com 2
23 ME
2008
3. Modelio is a modelling tool for Software
and Systems Engineering
ML editor with 20 years’ history
o CloudML
o SysML
o MARTE
o Code generation
o Documentation
o Teamwork
www.modeliosoft.com 3
• Available under open
source at Modelio.org
4. Our problem? Heterogeneity
ulti-cloud applications
ifferent providers = different data stores
eterogeneous data models!
ractical example
o Modelio SaaS = Modelling as a Service
o Traditional relational data
• Users, roles, projects, services, billing….
o Challenge: How to store models?
• current version is SVN basedwww.modeliosoft.com 4
5. Context: Two projects researching on (multi)clouds
and big data
www.modeliosoft.com 5
http://www.modaclouds.eu/ - 318484 http://www.juniper-project.org/ - 318763
6. MODAClouds: MDE to avoid vendor lock-in
roblem:
• The main keyword: Multi clouds
• Multiplication of cloud providers
• Threats: Multiplication of Platforms Vendor Lock-in
• Opportunities: MODACloudsML to reduce vendor-lockin
ur role
o Case study provider: Modelio as a Service
o Technology provider: Modelling applications independently from the cloud
www.modeliosoft.com
Service
A
Service
A
Service
B
Service
B
Interface IInterface I
Service A
(Deployment: Paas)
Service A
(Deployment: Paas)
NoSQL
Store
NoSQL
Store
Task
Queue
Task
Queue
Service A
(Deployment: Google App
Engine)
Service A
(Deployment: Google App
Engine)
BigTable
Store
BigTable
Store Google
Task
Queue
Google
Task
Queue
Service Oriented
Architecture based model Cloud specific concepts
model
Cloud provider specific
parameters model
<<required>>
<<provided>>
Deployable source codeDeployable source code
.WAR
file
.WAR
file
scriptsscripts
configurationconfiguration
7. JUNIPER: MDE to real-time applications
roblem
o The main keyword: Big Data
• Multiple streams of data + Multiple data types + Real-time constraints
o Current state of the art: NoSQL
• Pros
– Optimized for non-relational data
– Optimized for answering simple queries as fast as possible!
• Cons
– The code is “ the model”
– Multiplication of NoSQL databases, paradigms and approaches
ur role
o Technology provider: Modelling real-time big data application
www.modeliosoft.com 7
Business Objects
(UML)
Business Objects
(UML)
Big Data Structure
Models
(e.g. Document based Data
Model)
Big Data Structure
Models
(e.g. Document based Data
Model)
Code
(Deployment scripts, Data
Access code)
Code
(Deployment scripts, Data
Access code)
8. The main problem is FRAGMENTATIONFRAGMENTATION!
any different database management systems
o Ex:
• MySQL (www.mysql.com/),
• Big Table (http://research.google.com/archive/bigtable.html)
• SimpleDB (http://aws.amazon.com/simpledb/)
• Memcached (http://memcached.org/)
• …
any underlying data representation paradigms
o Ex:
• Relational Databases
• Key-value Stores
• Object-oriented Databases
• Big Tables www.modeliosoft.com 8
9. The basis of our solution is MDE… Why?
eparating the problem from the solution
o In MODAClouds we model the problem
o In JUNIPER we model the solution
ostering automation
o Analysis
o Code generation www.modeliosoft.com 9
Business
Objects Transformation
HDFS
MySQL
MongoDB
Abstract Models
Specific Models / code
Transformation
Transformation
10. What do we get from MDE?
Pros
esign data once, store
everywhere!
rite your transformation
once, transform anything!
Cons
ransformations are hard to
write…
ow to make sure they are
CORRECT? i.e.
– Is there any data/semantic
loss?
www.modeliosoft.com 10
11. Understanding the problem… Why is it so
HARD? (1/2)
arget Technologies based on different paradigms
xample:
www.modeliosoft.com 11
A
B
JPA
@Entity
public class A {
@Basic
public B getB(){
…
}
…
}
SQL
create table A (…)
create table B (…)
create table A_B (…)
12. Understanding the problem… Why is it so
HARD? (2/2)
arget structure is variable
xample:
www.modeliosoft.com 12
A
B
ER
NoSQL
A
BAB
Here A and B
are
independent
entities
Here, for
performance
reasons, B is
embedded in A
A
B
13. Before modelling we need to understand what to
model!
hat’s the objective of this work!
oExisting databases
oSupported concepts
oWhat are the trade offs?
www.modeliosoft.com 13
14. How? identifying the main concepts, and related
expressiveness trade offs
oncepts rade offs
– Expressiveness:
• What one can or cannot
“say” in each database?
– Performance
• What kinds of query are
usually cheaper in each
data base?
– What’s the cost of going
from a database that
supports concept A to one
that supports concept B?
www.modeliosoft.com 14
15. What? identify the differences in data-models
supported by different data stores
www.modeliosoft.com 15
16. Why? to propose a cloud independent model of the
application data
www.modeliosoft.com 16
Example from Modelio SaaS
17. Why? to support mapping cloud independent data
types into specific ones
www.modeliosoft.com 17
urrent situation
o EXML
o HTTP
o RAMC
uture
o NoSQL database
18. Conclusion
ontext: Multiplication of …
o cloud providers, cloud data stores, data representation
paradigms
f you are a developer:
o How to design my application in a cloud provider
independent way?
• Ok, this doesn’t exist…
o What do I loose or gain when going from provider A to
provider B?
• Expressiveness
• Performance www.modeliosoft.com 18
19. Future Works
ODAClouds:
o Cloud independent Data Model
UNIPER:
o Business Object Model
• Targets Java 8
o Persistence Management
www.modeliosoft.com 19
20. Thank you for your attention!
arcos Almeida
OFTEAM | ModelioSoft
arcos.almeida@softeam.fr
OFTEAM R&D Web Site:
ttp://rd.softeam.com
odelioSoft Web Site:
www.modeliosoft.com 20