SlideShare una empresa de Scribd logo
1 de 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.

Más contenido relacionado

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

JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller ColumnsJonathan Fine
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principlesdeonpmeyer
 
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
 
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 BeyondScyllaDB
 
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 DomainsPablo Gómez Abajo
 
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 TalkRed Hat Developers
 
MEAN Inside out (with AngularX)
MEAN Inside out (with AngularX)MEAN Inside out (with AngularX)
MEAN Inside out (with AngularX)paolokersey
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross SeminarXamarin
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
 
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
 
Workshop 9: BackboneJS y patrones MVC
Workshop 9: BackboneJS y patrones MVCWorkshop 9: BackboneJS y patrones MVC
Workshop 9: BackboneJS y patrones MVCVisual Engineering
 
Pitfalls of machine learning in production
Pitfalls of machine learning in productionPitfalls of machine learning in production
Pitfalls of machine learning in productionAntoine Sauray
 
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)Ofer Cohen
 

Similar a 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)
 

Más de 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
 
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...Marcos Almeida
 
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 systemsMarcos Almeida
 
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...Marcos Almeida
 
Multi datastores - CLOSER'14
Multi datastores - CLOSER'14Multi datastores - CLOSER'14
Multi datastores - CLOSER'14Marcos 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 ModelioSaaSMarcos Almeida
 
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 cloudMarcos Almeida
 

Más de 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
 

Último

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
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...Martijn de Jong
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
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...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

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.

Notas del editor

  1. Basically, talking about