EU projects MODAClouds and JUNIPER

Download Report

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

M o d e l i n g s o l u t i o n s.