Transcript EU projects MODAClouds and JUNIPER
EU projects MODAClouds and JUNIPER – Writing and testing transformations from abstract object oriented domain models
Marcos Almeida, SOFTEAM | ModelioSoft RCIS’13 www.modeliosoft.com
1
What’s this presentation about?
• This is not a presentation about solutions but about problems.
• Future of Internet = Platform Fragmentation • MDE Approach = Specific Models / code Abstract Models Transformation HDFS Business Objects Transformation MySQL Transformation MongoDB
PROBLEM!!
Given this
fragmentation
: How to
write
and
test
transformations?
these www.modeliosoft.com
2
Context: two FP7 projects that just started…
http://www.modaclouds.eu/ - 318484 http://www.juniper-project.org/ - 318763 www.modeliosoft.com
3
What’s the “Future of Internet” for MODAClouds?
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 www.modeliosoft.com
4
What’s the “Future of Internet” for JUNIPER?
• The main keyword: Big Data o Multiple streams o o Multiple types 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
The main problem is FRAGMENTATION!
• Many 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/ ) • … • Many underlying data representation paradigms o Ex: • Relational Databases • Key-value Stores • Object-oriented Databases • Big Tables • … www.modeliosoft.com
6
The basis of our solution is MDE… Why?
Abstract Models Business Objects Transformation Transformation Transformation Specific Models / code HDFS MySQL MongoDB • Separating the
problem
from the
solution
• Fostering
automation
o
Analysis
o
Code generation
www.modeliosoft.com
7
What do we get from MDE?
Pros
• Design data
once
, store
everywhere
!
• Write your transformation
once
, transform
anything
!
Cons
• Transformations are
hard
write… to • How to
make sure
they are CORRECT? i.e.
– Is there any data/semantic loss?
www.modeliosoft.com
8
Understanding the problem… Why is it so HARD? (1/3)
• Target Technologies based on different paradigms • Example: A } @Entity public class A { @Basic public B getB(){ … } … JPA B SQL create table A (…) create table B (…) create table A_B (…) www.modeliosoft.com
9
Understanding the problem… Why is it so HARD? (2/3)
• Target structure is variable • Example: A A
AB
ER B Here A and B are independent entities B NoSQL Here, for performance reasons, B is embedded in A A B www.modeliosoft.com
10
Understanding the problem… Why is it so HARD? (3/3)
• Different implementations support different features • Example:
JPA
In JPA inheritance is usually implemented as an extra column with a type A B
x:int y:string Hibernate:
ignores the
column Toplink:
ignores its
type Disc(?):int(?)
www.modeliosoft.com
11
Our experience
• Just in the beginning • Some experiments o Persistence Model JPA x SQL • Current 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
Decomposing transformations
Persistence Model JPA Entities Java Classes Identifiers Attributes … www.modeliosoft.com
13
Dealing with variability by replacing sub transformations
Persistence Model JPA (JSR 317) Entities Java Classes Identifiers Attributes … Persistence Model JPA (Hibernate) Entities Java Classes Identifiers Attributes … www.modeliosoft.com
14
Unit testing sub-transformations
Desired output @Basic private Integer at; + at : Integer Obtained output @Basic(fetch=FetchType.LAZY) private Integer at; Input Transformation Output www.modeliosoft.com
15
Limitations
Tool 1 Input Transformation Output Tool 2 • Actual 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 • Integration Test Involves interfacing with complex code o Modelio, testing databases (MySQL…), Different JPA implementations (Hibernate Eclipse Link, TopLink…) www.modeliosoft.com
16
Conclusion
• We focus on MDE for future of the internet applications • But in practice… MDE needs to support to the platforms supporting these applications… • Limitations, Limitations, Limitations… o Fragmentation x Integration Testing • Problems o Too many different targets • How to test such transformations?
• How to interface with complex software?
• How to reduce manual work?
www.modeliosoft.com
17
Thank you for your attention!
Marcos Almeida SOFTEAM | ModelioSoft [email protected]
SOFTEAM R&D Web Site: http://rd.softeam.com
ModelioSoft Web Site: http://www.modeliosoft.com
www.modeliosoft.com
18