SlideShare ist ein Scribd-Unternehmen logo
1 von 19
www.modeliosoft.com
EU projects
MODAClouds and JUNIPER –
Writing and testing
transformations from abstract
object oriented domain models
Marcos Almeida, SOFTEAM | ModelioSoft
RCIS’13
1
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?
Context: two FP7 projects that just started…
www.modeliosoft.com 3
http://www.modaclouds.eu/ - 318484 http://www.juniper-project.org/ - 318763
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
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
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
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
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
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 (…)
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
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
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
Decomposing transformations
www.modeliosoft.com 13
Persistence Model  JPA
Entities  Java Classes
Identifiers  Attributes
…
Dealing with variability by replacing sub-
transformations
www.modeliosoft.com 14
Persistence Model  JPA (JSR 317)
Entities  Java ClassesEntities  Java Classes
Identifiers  Attributes
…
Persistence Model  JPA (Hibernate)
Entities  Java ClassesEntities  Java Classes
Identifiers  Attributes
…
Unit testing sub-transformations
www.modeliosoft.com 15
+ at : Integer
TransformationInput Output
@Basic(fetch=FetchType.LAZY)
private Integer at;
@Basic
private Integer at;
Desired output
Obtained output
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
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
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
M o d e l i n g s o l u t i o n s.

Weitere ähnliche Inhalte

Ähnlich wie EU projects MODAClouds and JUNIPER – Writing and testing transformations from abstract object oriented domain models

SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
melbats
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
Stuart Lodge
 
Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...
Marco Brambilla
 

Ähnlich wie EU projects MODAClouds and JUNIPER – Writing and testing transformations from abstract object oriented domain models (20)

Java 8 Lambda
Java 8 LambdaJava 8 Lambda
Java 8 Lambda
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller Columns
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principles
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
Scaling Up Machine Learning Experimentation at Tubi 5x and Beyond
Scaling Up Machine Learning Experimentation at Tubi 5x and BeyondScaling Up Machine Learning Experimentation at Tubi 5x and Beyond
Scaling Up Machine Learning Experimentation at Tubi 5x and Beyond
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different Domains
 
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech TalkCloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
MEAN Inside out (with AngularX)
MEAN Inside out (with AngularX)MEAN Inside out (with AngularX)
MEAN Inside out (with AngularX)
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
Workshop 9: BackboneJS y patrones MVC
Workshop 9: BackboneJS y patrones MVCWorkshop 9: BackboneJS y patrones MVC
Workshop 9: BackboneJS y patrones MVC
 
LINQ
LINQLINQ
LINQ
 
Pitfalls of machine learning in production
Pitfalls of machine learning in productionPitfalls of machine learning in production
Pitfalls of machine learning in production
 
Sadiq786
Sadiq786Sadiq786
Sadiq786
 
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
 

Mehr von Marcos Almeida

Integrating research grade model indexing technologies to commercial modellin...
Integrating research grade model indexing technologies to commercial modellin...Integrating research grade model indexing technologies to commercial modellin...
Integrating research grade model indexing technologies to commercial modellin...
Marcos Almeida
 
From the Desktop to the Multi-clouds: The case of ModelioSaaS
From the Desktop to the Multi-clouds: The case of ModelioSaaSFrom the Desktop to the Multi-clouds: The case of ModelioSaaS
From the Desktop to the Multi-clouds: The case of ModelioSaaS
Marcos Almeida
 

Mehr von Marcos Almeida (8)

Integrating research grade model indexing technologies to commercial modellin...
Integrating research grade model indexing technologies to commercial modellin...Integrating research grade model indexing technologies to commercial modellin...
Integrating research grade model indexing technologies to commercial modellin...
 
Constellation: a Multi-Cloud Application Designed with the MODAClouds Integra...
Constellation: a Multi-Cloud Application Designed with the MODAClouds Integra...Constellation: a Multi-Cloud Application Designed with the MODAClouds Integra...
Constellation: a Multi-Cloud Application Designed with the MODAClouds Integra...
 
Model driven engineering for big data management systems
Model driven engineering for big data management systemsModel driven engineering for big data management systems
Model driven engineering for big data management systems
 
MOdel-Driven Approach for design and execution of applications on multiple Cl...
MOdel-Driven Approach for design and execution of applications on multiple Cl...MOdel-Driven Approach for design and execution of applications on multiple Cl...
MOdel-Driven Approach for design and execution of applications on multiple Cl...
 
Multi datastores - CLOSER'14
Multi datastores - CLOSER'14Multi datastores - CLOSER'14
Multi datastores - CLOSER'14
 
From the Desktop to the Multi-clouds: The case of ModelioSaaS
From the Desktop to the Multi-clouds: The case of ModelioSaaSFrom the Desktop to the Multi-clouds: The case of ModelioSaaS
From the Desktop to the Multi-clouds: The case of ModelioSaaS
 
The REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloudThe REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloud
 
PIM4Cloud
PIM4CloudPIM4Cloud
PIM4Cloud
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

EU projects MODAClouds and JUNIPER – Writing and testing transformations from abstract object oriented domain models

  • 1. www.modeliosoft.com EU projects MODAClouds and JUNIPER – Writing and testing transformations from abstract object oriented domain models Marcos Almeida, SOFTEAM | ModelioSoft RCIS’13 1
  • 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
  • 13. Decomposing transformations www.modeliosoft.com 13 Persistence Model  JPA Entities  Java Classes Identifiers  Attributes …
  • 14. Dealing with variability by replacing sub- transformations www.modeliosoft.com 14 Persistence Model  JPA (JSR 317) Entities  Java ClassesEntities  Java Classes Identifiers  Attributes … Persistence Model  JPA (Hibernate) Entities  Java ClassesEntities  Java Classes Identifiers  Attributes …
  • 15. Unit testing sub-transformations www.modeliosoft.com 15 + at : Integer TransformationInput Output @Basic(fetch=FetchType.LAZY) private Integer at; @Basic private Integer at; Desired output Obtained output
  • 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
  • 19. M o d e l i n g s o l u t i o n s.

Hinweis der Redaktion

  1. Basically, talking about