SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Painless (?) Metamodel Evolution
A pragmatic approach

Eclipse Con 2010
                       Christian Saad (University of Augsburg, DE)
                                 Etienne Juliot (Obeo, FR)
                               Marc Dutoo (Open Wide, FR)


         Confidential | Date | Other Information, if necessary
                                                                 © 2002 IBM Corporation
About the speakers
                                        Christian Saad - University of Augsburg
                                            • Research assistant at the University of Augsburg
                                            • Topics of interest: Model analysis, business process
                                              management

                                        Etienne Juliot - founder of Obeo, FR
                                            • Contributes to several Eclipse projects (SCA Tools,
                                              Acceleo, ATL, EEF, ...) and OpenSource communities

                                        Marc Dutoo - SOA, BPM, ECM architect
                                            • Head of R&D Dept. at Open Wide, a French Open
                                              Source software integrator


                                        With the support of
                                          • Stéphane Drapeau, Obeo, FR
                                          • The Java Workflow Tooling (JWT) and SCA projects
Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   2
Overview


                    Metamodel evolution is painful !
                    JWT (migration)
                             use case - practices - technologies - automating it

                    SCA (extensions)
                             use case - analysis - solution
                    Further
                    Conclusion




Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   3
Metamodels do evolve !

        along with
                     The business domain
                        • Driven by new requirements or standards
                        • Concepts or attributes may be added or become obsolete
                     Internal features
                            Driven by features of the modeling tool itself
                            Ex: layout information
                     External features
                        • Driven by model usage
                        • Ex: runtime information (logging, transactions) in workflows



Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   4
Metamodel changes are...

                    (too?!) easy to design (EMF & co)
                    painful to cope with – for devs and users alike
                                               • old models must be migrated (tedious and boring)
                                               • or their legacy metamodels maintained (defeats
                                                 the purpose)...
                                               • …if there's actually someone caring enough

                                               and metamodel evolutions never stop
                                                           they just pile up !


            ... everyone who has really used modeling / MDA has
                               experienced it !

Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   5
Introducing the JWT use case
                       we experienced it at our project
                           • Java Workflow Tooling (JWT)
                           • An extensible Workflow tool suite in the SOA TLP
                       all the more because it aims at
                           • an extensible model (through aspect-like extensions)
                             that allows to support different runtimes
                           • different GEF-based views on top of it
                           • compatibility with other workflow standards (through
                             transformations)




Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   6
1. Alleviating the pain - diagnostic

                    Know where you are
                        • store a version number in the model
                        • version-specific namespace: pros and cons
                                • Use it if your technology allows it – see next

                    Manage evolutions
                        • talk about them! (Wiki, release notes, warning dialogs)
                        • write howtos on evolving legacy models in bugzillas
                        • ex. "all nodes with a X=Y property now are of type Z"

                    But
                        • The user still has to do everything, so it hurts !



Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   7
1. Alleviating the pain – practices

                    Modeling practices: “eager” changes
                        • Adding new nodes breaks nothing
                        • However Deleting/Refactoring does
                             Provide abstract nodes with generic semantics

                                                                − Default behaviours are inherited
                                                                − Ex: Subclassing JWT ExecutableNode




                    Write unit tests which load sample models!
                    But
                             Beware of being restricted in metamodel evolutions that won't
                             break "too much" legacy models
Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   8
2. Scalpels - using technologies

                 Been there, done that :
                     • you've migrated two models by hand, and don't want to do it
                       again. So code the evolution rules that you documented!
                     • Ex.: Java EMF - lighter : scripting (groovy)
                 BUT source and target metamodels are different:
                     • load both: But still has to code the copy of the part of the
                       original model that didn't change (most of it actually)
                 A simple, content-oriented solution : XSL
                     • breaking free from java, code, EMF
                       (for best… and worse)
                 An EMF solution : ATL
                     • EMF based model to model
                       transformations
                 … and provide these to model users!
                         • extend the EMF editor actions (yours or the original one), up
                              to...
Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   9
3. Healing - automating evolution
   Make the evolution transparent
       • When evolving (meta)models , most of the work is
         the same
       • Check version, if not the same as your tool's, find and
         apply required transformation
   JWT’s ATL model converter
       • Lightweight ATL-based framework
       • Developers only need to slightly adapt the ATL
         transformation

                                                                                     • Ask users whether they are OK
                                                                                       with automatic transformation
                                                                                       before manipulating files!


Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   10
Introducing the SCA Tools project

                    Service Component Architecture (SCA) aims to provide
                        A model for the creation of service components in a
                        wide range of languages and
                        A model for assembling service components into a
                        business solution

                    SCA Tools project is a set of tools for developers of SCA
                    applications
                        The project was created under the SOA Tools Platform
                        (STP) TLP
    SOA                 The project is moving to the new SOA TLP (move
 Top Level              review planned April 7)
  Project


Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   11
SCA "two-headed" metamodel and its extensions
          SCA was initiated by the Open SOA consortium
              → SCA specifications 1.0
          Currently, the OASIS Open Composite Services
          Architecture (CSA) Member Section is standardizing SCA
              → SCA specifications 1.1
          Each runtime extends the SCA specifications with
          additional Implementation, Interface and Binding types
                                                                                                             SCA
                            SCA OSOA
                                                                                                             OASIS




      Tuscany                 FraSCAti                                                          Tuscany
                                                      Runtime x                                                          Runtime y
      1.x                     1.x                                                               2.x



Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0               12
SCA "two-headed" metamodel and its extensions
          SCA was initiated by the Open SOA consortium a set of tools
                                        Objective: to propose
                                         (XML editors, GMF editors, launchers,
              → SCA specifications 1.0 ...) based on all these metamodels
          Currently, the OASIS Open Composite Services
          Architecture (CSA) Member Sectionuser must have the impression
                                        The is standardizing SCA
                                        he is using the same tool when he
              → SCA specifications 1.1 defines an SCA-OSOA or an
          Each runtime extends the SCA specifications with
                                        SCA-OASIS artefact!
          additional Implementation, Interface and Binding types
                                                                                                             SCA
                            SCA OSOA
                                                                                                             OASIS




      Tuscany                 FraSCAti                                                          Tuscany
                                                      Runtime x                                                          Runtime y
      1.x                     1.x                                                               2.x



Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0               13
How we support the "two-headed" metamodel

    For each SCA specifications (OSOA and OASIS), we generated
    the metamodel and the GMF designer
    The same SCA runtimes extension mechanism is used


    The "two-headed"
    metamodel and
    the extensions
    specific to the
    different SCA
    runtimes are                                  SCA-OASIS                                               SCA-OSOA
    transparent for
    the user


Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   14
How do we support the SCA runtimes extensions?
                A core metamodel: SCA-OSOA or SCA-OASIS
                Extensions proposed by the SCA runtimes concern only the
                Implementation, Interface and Binding types

                Extension of the core metamodels is easy
                    Use the "Child Creation Extenders" and "Extensible
                    Provider Factory" options proposed in the .genmodel
                Extension of the GMF modeler is more difficult
                    GMF does not take into account the extension options
                    proposed by EMF
                    → Specific code in the sca.diagram plugin
                    → New plugin (sca.diagram.extension) to dynamically
                    take into account the extensions

Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   15
Create your own extension
    First step: extend the SCA metamodel
         Create a new metamodel
             Create a DocumentRoot that extends the
             DocumentRoot of the SCA metamodel
             Create your own elements that extend
             Implementation, Interface or Binding
             Generate the code

    Second step: extend the Composite Designer
             org.eclipse.gmf.runtime.emf.type.core.elementTypes
             org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings
             …

     Third step: Extend existing ATL transformations and Acceleo generators

Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   16
Further
             COPE by TUM Munich University (http://cope.in.tum.de)
                     • Transformations
                            • by recording metamodel changes
                            • Mixes automatic and manually defined ones
                            High level transformation definition
                     • But
                             • Developers must be “convinced” to follow this procedure
                             • Overhead when “trying out” new things in your models
                             • Changes in semantics only recorded in developer’s mind!

      // 1. metamodel adaptation
      Signature.inPort.eType = newClass("InPort", [Port])
      Signature.outPort.eType = newClass("OutPort", [Port])
      Port.’abstract’ = true
      // 2. model migration
      for(signature in Signature.instances) {
         for(port in signature.inPort) port.migrate(InPort)
         for(port in signature.outPort) port.migrate(OutPort)
      }


Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   17
Further
                 Eclipse Edapt
                     • New project under EMFT
                     • Goals
                            • Migration of model instances, editors, transformations
                            • Attaching migration instructions to change history
                     • Approaches
                            • Recording changes (COPE)
                            • Extracting changes (EMF Compare)


                  Semantic “tagging” of meta model elements
                     • Research topic
                     • Fit for every day use?



Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   18
Conclusion

                    From alleviating the pain, up to automated “healing”
                    JWT use case
                        • ATL converter : robust and versatile
                        • Next: graphical UI help, help migrating models referred by
                          other models, help migrating model transformations...
                    SCA "two-headed" metamodel use case
                       • Simple at EMF model level, harder at GMF UI level, but at the
                         end transparent for the user
                       • SCA metamodel can be used by others tools: ATL (module
                         superimposition), Acceleo (dynamic templates), EEF

                    What about your own experiences ?




Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   19
Thanks for your attention !

                       A ny questions? ? ?
           Contact us at christian.saad@informatik.uni-augsburg.de
                           or etienne.juliot@obeo.fr
                          or marc.dutoo@openwide.fr
         JWT website & wiki: http://www.eclipse.org/jwt
         SCA website : http://wiki.eclipse.org/STP/SCA_Component

                                     We thank for his assistance:
                                         Stephane Drapeau, Obeo, FR – SCA project leader


Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0   20

Weitere ähnliche Inhalte

Was ist angesagt?

Soa symposium eclipse con 2013
Soa symposium   eclipse con 2013Soa symposium   eclipse con 2013
Soa symposium eclipse con 2013
Marc Gille
 
Experience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual WorldsExperience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual Worlds
Agile Dimensions LLC
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Oracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdf
Oracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdfOracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdf
Oracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdf
InSync2011
 
7 Ways The Cloud Changes IT
7 Ways The Cloud Changes IT7 Ways The Cloud Changes IT
7 Ways The Cloud Changes IT
OpSource
 

Was ist angesagt? (20)

A.Alves Sun GlassFish Portfolio preso - JavaPT '09
A.Alves Sun GlassFish Portfolio preso - JavaPT '09A.Alves Sun GlassFish Portfolio preso - JavaPT '09
A.Alves Sun GlassFish Portfolio preso - JavaPT '09
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
EclipseConEurope2012 SOA - Talend with EasySOA
EclipseConEurope2012 SOA - Talend with EasySOAEclipseConEurope2012 SOA - Talend with EasySOA
EclipseConEurope2012 SOA - Talend with EasySOA
 
Focus Group Open Source 28.4.2010 Paolo Maresca
Focus Group Open Source 28.4.2010 Paolo MarescaFocus Group Open Source 28.4.2010 Paolo Maresca
Focus Group Open Source 28.4.2010 Paolo Maresca
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open Source
 
Things you should know about Scalability!
Things you should know about Scalability!Things you should know about Scalability!
Things you should know about Scalability!
 
JavaOne Update zur Java Plattform
JavaOne Update zur Java PlattformJavaOne Update zur Java Plattform
JavaOne Update zur Java Plattform
 
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
OSAmI-Commons – an OSGi based platform supporting Open Ambient Intelligence f...
 
Open Source Recife
Open Source RecifeOpen Source Recife
Open Source Recife
 
Soa symposium eclipse con 2013
Soa symposium   eclipse con 2013Soa symposium   eclipse con 2013
Soa symposium eclipse con 2013
 
Experience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual WorldsExperience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual Worlds
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
 
Diagnosability versus The Cloud, Toronto 2011-04-21
Diagnosability versus The Cloud, Toronto 2011-04-21Diagnosability versus The Cloud, Toronto 2011-04-21
Diagnosability versus The Cloud, Toronto 2011-04-21
 
Flex and the city in London - Keynote
Flex and the city in London - KeynoteFlex and the city in London - Keynote
Flex and the city in London - Keynote
 
FraSCAti@rivieradev
FraSCAti@rivieradevFraSCAti@rivieradev
FraSCAti@rivieradev
 
Oracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdf
Oracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdfOracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdf
Oracle Systems _ Jeff Schwartz _ Engineering Solutions Exadata - Exalogic.pdf
 
7 Ways The Cloud Changes IT
7 Ways The Cloud Changes IT7 Ways The Cloud Changes IT
7 Ways The Cloud Changes IT
 
SOA Testing Challenges
SOA Testing ChallengesSOA Testing Challenges
SOA Testing Challenges
 
Novell enabling collaboration
Novell   enabling collaborationNovell   enabling collaboration
Novell enabling collaboration
 

Ähnlich wie EclipseCon2010 - Painless Metamodel Evolution

Leveraging the Eclipse Ecosystem for the Scientific Community
Leveraging the Eclipse Ecosystem for the Scientific CommunityLeveraging the Eclipse Ecosystem for the Scientific Community
Leveraging the Eclipse Ecosystem for the Scientific Community
guestd41014
 
Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...
Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...
Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...
Eranea
 
From Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse ModelingFrom Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse Modeling
Cédric Brun
 
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
mfrancis
 
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingEclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
Obeo
 

Ähnlich wie EclipseCon2010 - Painless Metamodel Evolution (20)

Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented Modeling
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Obiettivi e progetti della comunità Eclipse italiana
Obiettivi e progetti della comunità Eclipse italianaObiettivi e progetti della comunità Eclipse italiana
Obiettivi e progetti della comunità Eclipse italiana
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introduction
 
Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - Introduction
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to EclipseGEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
 
EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012EMF-IncQuery presentation at TOOLS 2012
EMF-IncQuery presentation at TOOLS 2012
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Openesb past present-future_news_letter
Openesb past present-future_news_letterOpenesb past present-future_news_letter
Openesb past present-future_news_letter
 
Intro To AOP
Intro To AOPIntro To AOP
Intro To AOP
 
Leveraging the Eclipse Ecosystem for the Scientific Community
Leveraging the Eclipse Ecosystem for the Scientific CommunityLeveraging the Eclipse Ecosystem for the Scientific Community
Leveraging the Eclipse Ecosystem for the Scientific Community
 
Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...
Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...
Eranea : solution for Cobol to Java transcoding (100% automatic and strictly ...
 
Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentation
 
Lessons learned Building Nuxeo EP - Component-based, open source ECM platform
Lessons learned Building Nuxeo EP - Component-based, open source ECM platformLessons learned Building Nuxeo EP - Component-based, open source ECM platform
Lessons learned Building Nuxeo EP - Component-based, open source ECM platform
 
From Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse ModelingFrom Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse Modeling
 
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
 
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingEclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
 

Mehr von Marc Dutoo

Mehr von Marc Dutoo (18)

Bringing Entreprise Search in the Big Data era with PCU - Paris Open Source ...
 Bringing Entreprise Search in the Big Data era with PCU - Paris Open Source ... Bringing Entreprise Search in the Big Data era with PCU - Paris Open Source ...
Bringing Entreprise Search in the Big Data era with PCU - Paris Open Source ...
 
OCCIware @ Paris Open Source Summit 2017 - a standard, extensible Cloud consu...
OCCIware @ Paris Open Source Summit 2017 - a standard, extensible Cloud consu...OCCIware @ Paris Open Source Summit 2017 - a standard, extensible Cloud consu...
OCCIware @ Paris Open Source Summit 2017 - a standard, extensible Cloud consu...
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
PCU@RISE 2017 - Building a thesaurus for product search
PCU@RISE 2017 - Building a thesaurus for product searchPCU@RISE 2017 - Building a thesaurus for product search
PCU@RISE 2017 - Building a thesaurus for product search
 
OCCIware@CloudExpoLondon2017 - an extensible, standard XaaS Cloud consumer pl...
OCCIware@CloudExpoLondon2017 - an extensible, standard XaaS Cloud consumer pl...OCCIware@CloudExpoLondon2017 - an extensible, standard XaaS Cloud consumer pl...
OCCIware@CloudExpoLondon2017 - an extensible, standard XaaS Cloud consumer pl...
 
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platformOCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
OCCIware@POSS 2016 - an extensible, standard XaaS cloud consumer platform
 
OCCIware@OW2con 2016
OCCIware@OW2con 2016OCCIware@OW2con 2016
OCCIware@OW2con 2016
 
OCCIware Cloud Expo London 2016 - Docker Studio, Studio Factory, erocci bus &...
OCCIware Cloud Expo London 2016 - Docker Studio, Studio Factory, erocci bus &...OCCIware Cloud Expo London 2016 - Docker Studio, Studio Factory, erocci bus &...
OCCIware Cloud Expo London 2016 - Docker Studio, Studio Factory, erocci bus &...
 
OCCIware @ Cloud Computing World 2016 - year 1 milestone & Linked Data demo
OCCIware @ Cloud Computing World 2016 - year 1 milestone & Linked Data demoOCCIware @ Cloud Computing World 2016 - year 1 milestone & Linked Data demo
OCCIware @ Cloud Computing World 2016 - year 1 milestone & Linked Data demo
 
OCCIware & Linked Data prototype OW2Con@POSS
OCCIware & Linked Data prototype OW2Con@POSSOCCIware & Linked Data prototype OW2Con@POSS
OCCIware & Linked Data prototype OW2Con@POSS
 
OCCIware - A Framework for Everything as a Service - Cloud Expo London 2015
OCCIware - A Framework for Everything as a Service - Cloud Expo London 2015OCCIware - A Framework for Everything as a Service - Cloud Expo London 2015
OCCIware - A Framework for Everything as a Service - Cloud Expo London 2015
 
EasySOA business case and real world use case 20130220
EasySOA business case and real world use case 20130220EasySOA business case and real world use case 20130220
EasySOA business case and real world use case 20130220
 
Alfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & TalendAlfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & Talend
 
Scripts, Apps, APIs : les nouveaux champs de bataille de l'Open Source à l'èr...
Scripts, Apps, APIs : les nouveaux champs de bataille de l'Open Source à l'èr...Scripts, Apps, APIs : les nouveaux champs de bataille de l'Open Source à l'èr...
Scripts, Apps, APIs : les nouveaux champs de bataille de l'Open Source à l'èr...
 
SOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUGSOA facile en 10 pratiques avec EasySOA - Alpes JUG
SOA facile en 10 pratiques avec EasySOA - Alpes JUG
 
EasySOA thanks to OW2 - OW2Con 2011
EasySOA thanks to OW2 - OW2Con 2011EasySOA thanks to OW2 - OW2Con 2011
EasySOA thanks to OW2 - OW2Con 2011
 
Open Wide Flyer - OW2 Conference 2010 – 23-24 November, Paris
Open Wide Flyer - OW2 Conference 2010 – 23-24 November, ParisOpen Wide Flyer - OW2 Conference 2010 – 23-24 November, Paris
Open Wide Flyer - OW2 Conference 2010 – 23-24 November, Paris
 
Ouvrir son SI avec la trilogie Portail, SOA, BPM (Solutions Linux 2010 - cycl...
Ouvrir son SI avec la trilogie Portail, SOA, BPM (Solutions Linux 2010 - cycl...Ouvrir son SI avec la trilogie Portail, SOA, BPM (Solutions Linux 2010 - cycl...
Ouvrir son SI avec la trilogie Portail, SOA, BPM (Solutions Linux 2010 - cycl...
 

Kürzlich hochgeladen

+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
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
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

+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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL 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...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

EclipseCon2010 - Painless Metamodel Evolution

  • 1. Painless (?) Metamodel Evolution A pragmatic approach Eclipse Con 2010 Christian Saad (University of Augsburg, DE) Etienne Juliot (Obeo, FR) Marc Dutoo (Open Wide, FR) Confidential | Date | Other Information, if necessary © 2002 IBM Corporation
  • 2. About the speakers Christian Saad - University of Augsburg • Research assistant at the University of Augsburg • Topics of interest: Model analysis, business process management Etienne Juliot - founder of Obeo, FR • Contributes to several Eclipse projects (SCA Tools, Acceleo, ATL, EEF, ...) and OpenSource communities Marc Dutoo - SOA, BPM, ECM architect • Head of R&D Dept. at Open Wide, a French Open Source software integrator With the support of • Stéphane Drapeau, Obeo, FR • The Java Workflow Tooling (JWT) and SCA projects Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 2
  • 3. Overview Metamodel evolution is painful ! JWT (migration) use case - practices - technologies - automating it SCA (extensions) use case - analysis - solution Further Conclusion Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 3
  • 4. Metamodels do evolve ! along with The business domain • Driven by new requirements or standards • Concepts or attributes may be added or become obsolete Internal features Driven by features of the modeling tool itself Ex: layout information External features • Driven by model usage • Ex: runtime information (logging, transactions) in workflows Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 4
  • 5. Metamodel changes are... (too?!) easy to design (EMF & co) painful to cope with – for devs and users alike • old models must be migrated (tedious and boring) • or their legacy metamodels maintained (defeats the purpose)... • …if there's actually someone caring enough and metamodel evolutions never stop they just pile up ! ... everyone who has really used modeling / MDA has experienced it ! Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 5
  • 6. Introducing the JWT use case we experienced it at our project • Java Workflow Tooling (JWT) • An extensible Workflow tool suite in the SOA TLP all the more because it aims at • an extensible model (through aspect-like extensions) that allows to support different runtimes • different GEF-based views on top of it • compatibility with other workflow standards (through transformations) Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 6
  • 7. 1. Alleviating the pain - diagnostic Know where you are • store a version number in the model • version-specific namespace: pros and cons • Use it if your technology allows it – see next Manage evolutions • talk about them! (Wiki, release notes, warning dialogs) • write howtos on evolving legacy models in bugzillas • ex. "all nodes with a X=Y property now are of type Z" But • The user still has to do everything, so it hurts ! Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 7
  • 8. 1. Alleviating the pain – practices Modeling practices: “eager” changes • Adding new nodes breaks nothing • However Deleting/Refactoring does Provide abstract nodes with generic semantics − Default behaviours are inherited − Ex: Subclassing JWT ExecutableNode Write unit tests which load sample models! But Beware of being restricted in metamodel evolutions that won't break "too much" legacy models Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 8
  • 9. 2. Scalpels - using technologies Been there, done that : • you've migrated two models by hand, and don't want to do it again. So code the evolution rules that you documented! • Ex.: Java EMF - lighter : scripting (groovy) BUT source and target metamodels are different: • load both: But still has to code the copy of the part of the original model that didn't change (most of it actually) A simple, content-oriented solution : XSL • breaking free from java, code, EMF (for best… and worse) An EMF solution : ATL • EMF based model to model transformations … and provide these to model users! • extend the EMF editor actions (yours or the original one), up to... Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 9
  • 10. 3. Healing - automating evolution Make the evolution transparent • When evolving (meta)models , most of the work is the same • Check version, if not the same as your tool's, find and apply required transformation JWT’s ATL model converter • Lightweight ATL-based framework • Developers only need to slightly adapt the ATL transformation • Ask users whether they are OK with automatic transformation before manipulating files! Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 10
  • 11. Introducing the SCA Tools project Service Component Architecture (SCA) aims to provide A model for the creation of service components in a wide range of languages and A model for assembling service components into a business solution SCA Tools project is a set of tools for developers of SCA applications The project was created under the SOA Tools Platform (STP) TLP SOA The project is moving to the new SOA TLP (move Top Level review planned April 7) Project Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 11
  • 12. SCA "two-headed" metamodel and its extensions SCA was initiated by the Open SOA consortium → SCA specifications 1.0 Currently, the OASIS Open Composite Services Architecture (CSA) Member Section is standardizing SCA → SCA specifications 1.1 Each runtime extends the SCA specifications with additional Implementation, Interface and Binding types SCA SCA OSOA OASIS Tuscany FraSCAti Tuscany Runtime x Runtime y 1.x 1.x 2.x Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 12
  • 13. SCA "two-headed" metamodel and its extensions SCA was initiated by the Open SOA consortium a set of tools Objective: to propose (XML editors, GMF editors, launchers, → SCA specifications 1.0 ...) based on all these metamodels Currently, the OASIS Open Composite Services Architecture (CSA) Member Sectionuser must have the impression The is standardizing SCA he is using the same tool when he → SCA specifications 1.1 defines an SCA-OSOA or an Each runtime extends the SCA specifications with SCA-OASIS artefact! additional Implementation, Interface and Binding types SCA SCA OSOA OASIS Tuscany FraSCAti Tuscany Runtime x Runtime y 1.x 1.x 2.x Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 13
  • 14. How we support the "two-headed" metamodel For each SCA specifications (OSOA and OASIS), we generated the metamodel and the GMF designer The same SCA runtimes extension mechanism is used The "two-headed" metamodel and the extensions specific to the different SCA runtimes are SCA-OASIS SCA-OSOA transparent for the user Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 14
  • 15. How do we support the SCA runtimes extensions? A core metamodel: SCA-OSOA or SCA-OASIS Extensions proposed by the SCA runtimes concern only the Implementation, Interface and Binding types Extension of the core metamodels is easy Use the "Child Creation Extenders" and "Extensible Provider Factory" options proposed in the .genmodel Extension of the GMF modeler is more difficult GMF does not take into account the extension options proposed by EMF → Specific code in the sca.diagram plugin → New plugin (sca.diagram.extension) to dynamically take into account the extensions Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 15
  • 16. Create your own extension First step: extend the SCA metamodel Create a new metamodel Create a DocumentRoot that extends the DocumentRoot of the SCA metamodel Create your own elements that extend Implementation, Interface or Binding Generate the code Second step: extend the Composite Designer org.eclipse.gmf.runtime.emf.type.core.elementTypes org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings … Third step: Extend existing ATL transformations and Acceleo generators Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 16
  • 17. Further COPE by TUM Munich University (http://cope.in.tum.de) • Transformations • by recording metamodel changes • Mixes automatic and manually defined ones High level transformation definition • But • Developers must be “convinced” to follow this procedure • Overhead when “trying out” new things in your models • Changes in semantics only recorded in developer’s mind! // 1. metamodel adaptation Signature.inPort.eType = newClass("InPort", [Port]) Signature.outPort.eType = newClass("OutPort", [Port]) Port.’abstract’ = true // 2. model migration for(signature in Signature.instances) { for(port in signature.inPort) port.migrate(InPort) for(port in signature.outPort) port.migrate(OutPort) } Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 17
  • 18. Further Eclipse Edapt • New project under EMFT • Goals • Migration of model instances, editors, transformations • Attaching migration instructions to change history • Approaches • Recording changes (COPE) • Extracting changes (EMF Compare) Semantic “tagging” of meta model elements • Research topic • Fit for every day use? Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 18
  • 19. Conclusion From alleviating the pain, up to automated “healing” JWT use case • ATL converter : robust and versatile • Next: graphical UI help, help migrating models referred by other models, help migrating model transformations... SCA "two-headed" metamodel use case • Simple at EMF model level, harder at GMF UI level, but at the end transparent for the user • SCA metamodel can be used by others tools: ATL (module superimposition), Acceleo (dynamic templates), EEF What about your own experiences ? Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 19
  • 20. Thanks for your attention ! A ny questions? ? ? Contact us at christian.saad@informatik.uni-augsburg.de or etienne.juliot@obeo.fr or marc.dutoo@openwide.fr JWT website & wiki: http://www.eclipse.org/jwt SCA website : http://wiki.eclipse.org/STP/SCA_Component We thank for his assistance: Stephane Drapeau, Obeo, FR – SCA project leader Eclipse Foundation, Inc. | © 2010 by the Open Wide, Obeo and University of Augsburg. Made available under the EPL v1.0 20