This presentation discusses problems with writing and testing transformations between abstract models and specific implementations due to platform fragmentation. It summarizes two EU projects, MODAClouds and JUNIPER, which aim to address this issue. The presentation outlines the current approach taken, which involves decomposing transformations, dealing with variability by replacing sub-transformations, and unit testing sub-transformations with both automated and manual integration tests. It acknowledges limitations in fully testing transformations due to the varied interpretations and acceptable outputs of different tools and platforms.
2. What’s this presentation about?
his is not a presentation about solutions but about
problems.
uture of Internet = Platform Fragmentation
DE Approach =
www.modeliosoft.com 2
Business
Objects Transformation
HDFS
MySQL
MongoDB
Abstract Models
Specific Models / code
Transformation
Transformation
PROBLEM!!PROBLEM!!
Given this fragmentationfragmentation:
How to writewrite and testtest these
transformations?
3. Context: two FP7 projects that just started…
www.modeliosoft.com 3
http://www.modaclouds.eu/ - 318484 http://www.juniper-project.org/ - 318763
4. What’s the “Future of Internet” for MODAClouds?
www.modeliosoft.com 4
The
Cloud
The
Cloud
The
Cloud
The
Cloud
The cloud? No!
Multiple clouds,
Multiple providers,
Fragmentation!
Our mission:
•Develop applications in a cloud independent way
•Provide support for app monitoring, adaption and migration
5. What’s the “Future of Internet” for JUNIPER?
• The main keyword: Big Data
o Multiple streams
o Multiple types
o Real-time constraints
• Current state of the art: NoSQL
o Pros
• Optimized for non-relational data
• Optimize query engines for performance not for expressivity
o Cons
• The code is “ the model”
• How to deal with the different NoSQL databases?
• Our mission
o Modeling support for non relational & real-time big data application
www.modeliosoft.com 5
6. 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 6
7. The basis of our solution is MDE… Why?
eparating the problem from the solution
ostering automation
o Analysis
o Code generation
www.modeliosoft.com 7
Business
Objects Transformation
HDFS
MySQL
MongoDB
Abstract Models
Specific Models / code
Transformation
Transformation
8. 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 8
9. Understanding the problem… Why is it so
HARD? (1/3)
arget Technologies based on different paradigms
xample:
www.modeliosoft.com 9
A
B
JPA
@Entity
public class A {
@Basic
public B getB(){
…
}
…
}
SQL
create table A (…)
create table B (…)
create table A_B (…)
10. Understanding the problem… Why is it so
HARD? (2/3)
arget structure is variable
xample:
www.modeliosoft.com 10
A
B
ER
NoSQL
A
BAB
Here A and B
are
independent
entities
Here, for
performance
reasons, B is
embedded in A
A
B
11. Understanding the problem… Why is it so
HARD? (3/3)
ifferent implementations support different features
xample:
www.modeliosoft.com 11
A
B
JPA
In JPA inheritance is usually implemented as
an extra column with a type
x:int y:string Disc(?):int(?)
Hibernate:
ignores the
column
Hibernate:
ignores the
column
Toplink:
ignores its
type
Toplink:
ignores its
type
12. Our experience
ust in the beginning
ome experiments
o Persistence Model JPA x SQL
urrent approach:
o Decomposing transformations
o Dealing with variability by replacing sub-transformations
o Unit testing sub-transformations
• Automated Tests
– 90 JUnit Tests
• Manual Integration Test
– ~100 Tests
www.modeliosoft.com 12
16. Limitations
ctual tools do not behave exactly as expected…
o Each tool interprets the outputs in a different way
o The range of acceptable outputs may vary from a tool to another
ntegration Test Involves interfacing with complex code
o Modelio, testing databases (MySQL…), Different JPA
implementations (Hibernate Eclipse Link, TopLink…)www.modeliosoft.com 16
TransformationTransformationInputInput OutputOutput
Tool 1
Tool 2
17. Conclusion
e focus on MDE for future of the internet applications
ut in practice… MDE needs to support to the platforms
supporting these applications…
imitations, Limitations, Limitations…
o Fragmentation x Integration Testing
roblems
o Too many different targets
• How to test such transformations?
www.modeliosoft.com 17
18. 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 18