Successfully reported this slideshow.
www.modeliosoft.comEU projectsMODAClouds and JUNIPER –Writing and testingtransformations from abstractobject oriented doma...
What’s this presentation about?his is not a presentation about solutions but aboutproblems.uture of Internet = Platform Fr...
Context: two FP7 projects that just started…www.modeliosoft.com 3http://www.modaclouds.eu/ - 318484 http://www.juniper-pro...
What’s the “Future of Internet” for MODAClouds?www.modeliosoft.com 4TheCloudTheCloudTheCloudTheCloudThe cloud? No!Multiple...
What’s the “Future of Internet” for JUNIPER?• The main keyword: Big Datao Multiple streamso Multiple typeso Real-time cons...
The main problem is FRAGMENTATIONFRAGMENTATION!any different database management systemso Ex:• MySQL (www.mysql.com/),• Bi...
The basis of our solution is MDE… Why?eparating the problem from the solutionostering automationo Analysiso Code generatio...
What do we get from MDE?Prosesign data once, storeeverywhere!rite your transformationonce, transform anything!Consransform...
Understanding the problem… Why is it soHARD? (1/3)arget Technologies based on different paradigmsxample:www.modeliosoft.co...
Understanding the problem… Why is it soHARD? (2/3)arget structure is variablexample:www.modeliosoft.com 10ABERNoSQLABABHer...
Understanding the problem… Why is it soHARD? (3/3)ifferent implementations support different featuresxample:www.modeliosof...
Our experienceust in the beginningome experimentso Persistence Model  JPA x SQLurrent approach:o Decomposing transformati...
Decomposing transformationswww.modeliosoft.com 13Persistence Model  JPAEntities  Java ClassesIdentifiers  Attributes…
Dealing with variability by replacing sub-transformationswww.modeliosoft.com 14Persistence Model  JPA (JSR 317)Entities ...
Unit testing sub-transformationswww.modeliosoft.com 15+ at : IntegerTransformationInput Output@Basic(fetch=FetchType.LAZY)...
Limitationsctual tools do not behave exactly as expected…o Each tool interprets the outputs in a different wayo The range ...
Conclusione focus on MDE for future of the internet applicationsut in practice… MDE needs to support to the platformssuppo...
Thank you for your attention!arcos AlmeidaOFTEAM | ModelioSoftarcos.almeida@softeam.frOFTEAM R&D Web Site:ttp://rd.softeam...
M o d e l i n g s o l u t i o n s.
Upcoming SlideShare
Loading in …5
×

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

245 views

Published on

Softeam is a France based medium sized company, with more than 20 years of experience in Model Driven Engineering (MDE) solutions, consulting, training. Moreover, is is, and since 1994, a voter in the Object Management Group, in which it takes part of the standardization of languages such as UML and SysML. Softeam also has an active participation in EU research projects such as X and Y. Moreover it currently takes part of the EU projects MODAClouds and JUNIPER which intend to simplify the development of cloud internet applications by the use of MDE approaches and tools.

The core of the MDE approach consists in having models play an important role in the development. Series of model transformations iteratively bring high abstract model to reality by semi-automatically generating more detailed and low level models that are then, in the end of the process, transformed into running code. In both the MODAClouds and JUNIPER, Softeam is involved in producing transformations that map abstract domain models of web applications into specific database tools. Such transformations are not trivial because they involve models that follow different representation paradigms. An industrial quality approach is then necessary not only for writing such transformation but for making sure that the written code is correct.

In this talk, we are going to describe our initial experience on writing and testing our transformations from abstract object oriented domain models into JPA annotated Java classes. The Java Persistence API (JPA) was designed to annotate Java classes with pieces of information that help a persistence engine to map them into relational databases. The complexity involved in such transformation lead us to develop an architecture that allowed for its easy unit testing. The main topic of this talk will therefore be this architecture and the tools that allowed us to write and test this transformation.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. www.modeliosoft.comEU projectsMODAClouds and JUNIPER –Writing and testingtransformations from abstractobject oriented domain modelsMarcos Almeida, SOFTEAM | ModelioSoftRCIS’131
  2. 2. What’s this presentation about?his is not a presentation about solutions but aboutproblems.uture of Internet = Platform FragmentationDE Approach =www.modeliosoft.com 2BusinessObjects TransformationHDFSMySQLMongoDBAbstract ModelsSpecific Models / codeTransformationTransformationPROBLEM!!PROBLEM!!Given this fragmentationfragmentation:How to writewrite and testtest thesetransformations?
  3. 3. Context: two FP7 projects that just started…www.modeliosoft.com 3http://www.modaclouds.eu/ - 318484 http://www.juniper-project.org/ - 318763
  4. 4. What’s the “Future of Internet” for MODAClouds?www.modeliosoft.com 4TheCloudTheCloudTheCloudTheCloudThe 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. 5. What’s the “Future of Internet” for JUNIPER?• The main keyword: Big Datao Multiple streamso Multiple typeso Real-time constraints• Current state of the art: NoSQLo Pros• Optimized for non-relational data• Optimize query engines for performance not for expressivityo Cons• The code is “ the model” • How to deal with the different NoSQL databases?• Our missiono Modeling support for non relational & real-time big data applicationwww.modeliosoft.com 5
  6. 6. The main problem is FRAGMENTATIONFRAGMENTATION!any different database management systemso 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 paradigmso Ex:• Relational Databases• Key-value Stores• Object-oriented Databases• Big Tables www.modeliosoft.com 6
  7. 7. The basis of our solution is MDE… Why?eparating the problem from the solutionostering automationo Analysiso Code generationwww.modeliosoft.com 7BusinessObjects TransformationHDFSMySQLMongoDBAbstract ModelsSpecific Models / codeTransformationTransformation
  8. 8. What do we get from MDE?Prosesign data once, storeeverywhere!rite your transformationonce, transform anything!Consransformations are hard towrite…ow to make sure they areCORRECT? i.e.– Is there any data/semanticloss?www.modeliosoft.com 8
  9. 9. Understanding the problem… Why is it soHARD? (1/3)arget Technologies based on different paradigmsxample:www.modeliosoft.com 9ABJPA@Entitypublic class A {@Basicpublic B getB(){…}…}SQLcreate table A (…)create table B (…)create table A_B (…)
  10. 10. Understanding the problem… Why is it soHARD? (2/3)arget structure is variablexample:www.modeliosoft.com 10ABERNoSQLABABHere A and BareindependententitiesHere, forperformancereasons, B isembedded in AAB
  11. 11. Understanding the problem… Why is it soHARD? (3/3)ifferent implementations support different featuresxample:www.modeliosoft.com 11ABJPAIn JPA inheritance is usually implemented asan extra column with a typex:int y:string Disc(?):int(?)Hibernate:ignores thecolumnHibernate:ignores thecolumnToplink:ignores itstypeToplink:ignores itstype
  12. 12. Our experienceust in the beginningome experimentso Persistence Model  JPA x SQLurrent approach:o Decomposing transformationso Dealing with variability by replacing sub-transformationso Unit testing sub-transformations• Automated Tests– 90 JUnit Tests• Manual Integration Test– ~100 Testswww.modeliosoft.com 12
  13. 13. Decomposing transformationswww.modeliosoft.com 13Persistence Model  JPAEntities  Java ClassesIdentifiers  Attributes…
  14. 14. Dealing with variability by replacing sub-transformationswww.modeliosoft.com 14Persistence Model  JPA (JSR 317)Entities  Java ClassesEntities  Java ClassesIdentifiers  Attributes…Persistence Model  JPA (Hibernate)Entities  Java ClassesEntities  Java ClassesIdentifiers  Attributes…
  15. 15. Unit testing sub-transformationswww.modeliosoft.com 15+ at : IntegerTransformationInput Output@Basic(fetch=FetchType.LAZY)private Integer at;@Basicprivate Integer at;Desired outputObtained output
  16. 16. Limitationsctual tools do not behave exactly as expected…o Each tool interprets the outputs in a different wayo The range of acceptable outputs may vary from a tool to anotherntegration Test Involves interfacing with complex codeo Modelio, testing databases (MySQL…), Different JPAimplementations (Hibernate Eclipse Link, TopLink…)www.modeliosoft.com 16TransformationTransformationInputInput OutputOutputTool 1Tool 2
  17. 17. Conclusione focus on MDE for future of the internet applicationsut in practice… MDE needs to support to the platformssupporting these applications…imitations, Limitations, Limitations…o Fragmentation x Integration Testingroblemso Too many different targets• How to test such transformations?www.modeliosoft.com 17
  18. 18. Thank you for your attention!arcos AlmeidaOFTEAM | ModelioSoftarcos.almeida@softeam.frOFTEAM R&D Web Site:ttp://rd.softeam.comodelioSoft Web Site:www.modeliosoft.com 18
  19. 19. M o d e l i n g s o l u t i o n s.

×