SlideShare a Scribd company logo
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.

More Related Content

Similar to 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 Columns
Jonathan Fine
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principles
deonpmeyer
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
Orçun Dayıbaş
 
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 Beyond
ScyllaDB
 
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
Pablo 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 Talk
Red Hat Developers
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
Tejasvi Rastogi
 
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 Seminar
Xamarin
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Michael 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
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
Jacob Kaplan-Moss
 
Workshop 9: BackboneJS y patrones MVC
Workshop 9: BackboneJS y patrones MVCWorkshop 9: BackboneJS y patrones MVC
Workshop 9: BackboneJS y patrones MVC
Visual Engineering
 
LINQ
LINQLINQ
Pitfalls of machine learning in production
Pitfalls of machine learning in productionPitfalls of machine learning in production
Pitfalls of machine learning in production
Antoine Sauray
 
Sadiq786
Sadiq786Sadiq786
Sadiq786
sadiqkhan786
 
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 to 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)
 

More from 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 systems
Marcos 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'14
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
 
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
Marcos Almeida
 
PIM4Cloud
PIM4CloudPIM4Cloud
PIM4Cloud
Marcos Almeida
 

More from 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
 

Recently uploaded

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

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.

Editor's Notes

  1. Basically, talking about