SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Live model transformations driven 
    Live model transformations driven
     by incremental pattern matching
      y             p              g
                István Ráth (rath@mit.bme.hu)
                        Gábor Bergmann
                         András Ökrös
                          Dániel Varró

Budapest U i
B d    t University of  T h l
                it f Technology and Economics
                                  dE      i     ICMT, July 2, 2008
                                                ICMT J l 2 2008
Overview
• I t d ti
  Introduction

• Live transformations

• The VIATRA implementation

• Future work

• Summary
INTRODUCTION
Model transformations and 
               incrementality
• K
  Key usage scenarios for MT:
                  i f MT
   – Mapping between languages or various levels of abstraction
   – Intra‐domain model manipulation
• Working with evolving models
   – Constant changes & modifications
   – Large models
        g
• Problem: (re)transformations are slow
   – To execute… (large models)
   – and to re‐execute again and again (batch execution)
     and to re‐execute again and again (batch execution).
• Solution: incrementality
   – Take the source model, and its mapped counterpart;
   – U h i f
     Use the information about how the source model was changed;
                     i    b    h     h           d l      h     d
   – Map and apply the changes (but ONLY the changes) to the target 
     model.
Towards incrementality
        Towards incrementality
• How to achieve incrementality?
  – Incremental updates: avoid re‐generation.
                 p                g
     • Don’t recreate what is already there.
     •   Use reference (correspondence) models.
         Use reference (correspondence) models.
Incremental updates
Incremental updates

      modification
 S1                  S2   S3   Sn


  t                  tR   tR   tR


        merge
 T1                  T2   T3   Tn
Towards incrementality
        Towards incrementality
• How to achieve incrementality?
  – Incremental updates: avoid re‐generation.
                 p                g
     • Don’t recreate what is already there.
     •   Use reference (correspondence) models.
         Use reference (correspondence) models.
  – Incremental execution: avoid re‐computation.
     • Don’t recalculate what was already computed
       Don t recalculate what was already computed.
     • How?
Live transformations
                Live transformations 0


                     modification
               S1                    S2               S3        Sn


               t          tL   transformation    tL        tL
                                   context

                            update

               T1                    T2               T3        Tn




0Hearnden‐Lawley‐Raymond. Incremental Model Transformation for the Evolution of 
Model‐driven Systems. MODELS 2006.
Live transformations?
             Live transformations?
• E
  Essentially: a different execution mode.
       ti ll     diff    t      ti     d
   – More than “simple” incremental execution…
• Run as “daemons”
  Run as  daemons
   – whenever model changes occur
• Maintain a transformation context
  Maintain a transformation context
   – To persist (cache) the execution state
• Model changes can be instantly mapped
   – Input
      • what has changed (creation, deletion)
      • where has the change occurred (source reference target)
              has the change occurred (source, reference, target)
   – Output: 
      • actions (what to do)
Possible applications
           Possible applications
• M2M / inter‐domain transformations
      /i      d   i       f     i
   – Model synchronization on‐the‐fly
• M2M / intra‐domain transformations
   – Model animation/execution (based on dynamic
     Model animation/execution (based on dynamic 
     semantics)
   – Constraint checking on‐the‐fly (what‐if)
     Constraint checking on the fly (what if)
• M2C
   –I
    Incremental model‐code synchronization (DSMLs)
            t l   d l d        h i ti (DSML )
• ...
GRAPH TRIGGERS IN VIATRA2
Graph transformations
         Graph transformations
• Graph rewriting based on rules
       h     ii b d          l
• Driven by graph patterns
          yg p p
  – Subgraph to be matched in the model graph
  – A set of constraints (type, attribute value,
    A set of constraints (type, attribute value, 
    structural, …)
• Execution
  – Declarative approaches (GT rules, TGG)
  –IImperative (mixed) approaches (explicit control 
           ti ( i d)          h ( li it        t l
    flow)
Incremental graph pattern matching
 Incremental graph pattern matching
• Graph transformations require pattern 
  matchingg
• Goal: retrieve the matching set quickly
• H ?
  How?
  – Store (cache) matchings execution context
  – Update them as the model changes
  – Update precisely incrementality
    Update precisely 
Core idea: use RETE1 nets
• RETE network                                                             INPUT
    – node: (partial) matches of a
      node: (partial) matches of a 
      (sub)pattern
                                              t3      Model space
                                                      Model space    p1 p2 p3 t1 t2 k1 k2 t3

    – edge: update propagation                        t3                             t3              t3

• Demonstrating the principle
  Demonstrating the principle
    – input: Petri net                                  Input nodes
                                                   : Place
                                                   p1 p2 p3
                                                                d        : Token
                                                                         k1 k2
                                                                                                : Transition
                                                                                                  t1 t2 t3
    – pattern: fireable transition
    – Model change: new transition 
                                                                                                             t3
      (t3)
       p1
                         t1                           Intermediate 
                                                                p1, k1    p2, k2




       p3                             p2
                                                          nodes                    p1, k1, t1      p2, k2, t3
                         t2
                                                                                                p2, k2, t3

                          t3
 1 Forgy, C.L.: RETE: A fast algorithm for    Production node
                                              Production node
                                                   p1, k1, t1, p3   p2, k2, t2, p3


 the many pattern/many object pattern 
 match problem. AI 1982.
Updates
• N d d h
  Needed when the model space changes
                 h     d l       h
• VIATRA notification mechanism (EMF is also possible)
   – Transparent: user modification, model imports, results of a 
     transformation, external modification, …  RETE is always 
     updated!
• Input nodes receive elementary modifications and 
  release an update token
              p
   – Represents a change in the partial matching (+/‐)
• Nodes process updates and propagate them if needed
        p        p          p p g
   – PRECISE update mechanism
Event‐driven live transformations
    Event driven live transformations
  An idea: represent events as model elements.2
• A id              t    t        d l l      t
• Our take: represent events as changes in the matching 
  set of a pattern.
  set of a pattern
     – ~generalization
• Incrementality: persistent context
               y p
     – matching sets cached in RETE networks                   efficiency!
     – global cache (“session”)
• Formalism
     – Specify WHEN and HOW to (re)act
     – Sh ld b “MT lik ”
       Should be “MT‐like”

2E. Guerra – J. de Lara. Event‐Driven Grammars: Towards the Integration of Meta‐
modelling and Graph Transformation, 2004
Formalism
@trigger(sensitivity=“rise”, priority=“1”, mode=“always”)
@ i        (     i i i     “ i ”    i i        “ ”        d “ l          ”)
gtrule mapClass() =
{                                                Graph transformation rule 
            High level support for:
  precondition pattern pre(C) = { class(C); } marked as a live transformation 
    ‐ Model element creation/deletion Annotations to specify execution 
  postcondition pattern post(C,T) = {                    unit (trigger)
     ‐ Attribute value changes (special                    modes
                                                               d
         Table(T);
             language constructs)
         mapping(M,C,T);                       Precondition pattern: defines 
  } ‐ Arbitrarily complex changes
         Arbitrarily complex changes              the graph pattern whose 
                                                  the graph pattern whose
   (involving multiple model elements)          matching set changes trigger 
  action {                                              the execution
     ‐ Model changes from any source 
                    g
          rename(T, name(C));   y              Postcondition pattern:
                                                               pattern: 
  (user editing, transformations, model  describes how the model is to 
         debug(“Table created: “ + fqn(T));
                                      Action sequence: imperative 
                  imports, …)                 be changed declaratively
                                       model modification, debug 
  }
                                       printing, code generation, …
                                         i i       d            i
}
Execution
                   Transaction1            Commit        Transaction2

   Matching set delta monitor
                                                            trigger 
                                    fall
     PA                                                     actions

                                                    Execution
                                                     Engine
 Interesting questions:
      PB                            rise

 ‐ Serialization (priority 
ordering, conflicts, race                                         Trigger
                                                                  queue
                                                                  q e e
         conditions)                 Incre‐
   ‐ Parallel execution              mental
                                      PM
APPLICATIONS & FUTURE WORK
Case studies
                           Case studies
• Domain‐specific visual languages (ViatraDSM)
     – Incremental, on‐the‐fly constraint evaluation 
                   ,         y
       (&enforcement)           ‐‐ VIATRA2 is not limited to the 
                                   „source target” scenario
     – On‐the‐fly abstract‐concrete synchronization
       On the fly abstract concrete synchronization
                              ‐‐ can be used to map a DSML into 
          • Metamodel‐driven, based on GMF specification models
                                     multiple concrete syntax 
                                  representations (analysis models, 
                                    p              (   y
     –   Incremental code generation
         Incremental code generation  architectural models, etc) 
                                simultaneously, on multiple levels of 
          • Model‐code synchronization
                                             abstraction
     – Model animation & simulation3

3Ráth‐Vágó‐Varró. Design‐time simulation of domain‐specific models by incremental 
pattern matching. Accepted for VL/HCC 2008.
Performance4
                                                  Object-Relational Mapping

                          100000




                          10000
       cution time [ms]




                                                                                              build
                                                                                              b ild – VIATRA/RETE
                                                                                              sync – VIATRA/RETE
                            1000
                                                                                              build – VIATRA/LS
                                                                     ‐‐ Sub‐1000ms execution time for UML 
                                                                                              sync – VIATRA/LS

                                                                                models < 5000 nodes
                                                                                   d l 5000 d
    Exec




                            100                                     ‐‐ Low‐order‐polynomial characteristics 
                                                                       (compared to exponential with local 
                                                                                       search)
                              10
                                                                    ‐‐ Acceptable execution time (n.10s) for 
                                   10   100            1000               really large models  (100000+)
                                                                          10000         100000
                                               Model size [node count]


4Bergmann‐Horváth‐Ráth‐Varró. A benchmark evaluation of incremental pattern 
matching in graph transformation. To appear in Proc. ICGT2008.
Future work
                  Future work
• I
  Improving performance
        i      f
  – Parallel (multi‐core) execution
  – RETE optimizations
    RETE optimizations
• Language improvements
  – More compact notations
    More compact notations
  – Static type checking
  – Debugging support
    Debugging support
• EMF support
  – Incremental pattern matching & matching set
    Incremental pattern matching & matching set 
    detection (EMFT)
  – Java API based on the VIATRA language
Conclusion
• Live transformation engine for incremental graph 
   i        f     i      i f i             l     h
  transformations
  – Novel approach based on matching set changes, 
    supported by the new, high performance incremental 
    pattern matching engine
    pattern matching engine
• VIATRA2 R3
  – htt // li
    http://eclipse.org/gmt
                      / t
  – http://wiki.eclipse.org/VIATRA2
  – A il bl
    Available as a preview release (coming in August)
                       i     l     (   i i A        )
• Thank you.

Weitere ähnliche Inhalte

Was ist angesagt?

Quantization
QuantizationQuantization
Quantization
wtyru1989
 
A study of the worst case ratio of a simple algorithm for simple assembly lin...
A study of the worst case ratio of a simple algorithm for simple assembly lin...A study of the worst case ratio of a simple algorithm for simple assembly lin...
A study of the worst case ratio of a simple algorithm for simple assembly lin...
narmo
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexity
Ankit Katiyar
 
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Yusuke Izawa
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Yusuke Izawa
 
Logics of the laplace transform
Logics of the laplace transformLogics of the laplace transform
Logics of the laplace transform
Tarun Gehlot
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
Nikhil Sharma
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
Ehtisham Ali
 
fourier representation of signal and systems
fourier representation of signal and systemsfourier representation of signal and systems
fourier representation of signal and systems
Sugeng Widodo
 

Was ist angesagt? (20)

SLE2015: Distributed ATL
SLE2015: Distributed ATLSLE2015: Distributed ATL
SLE2015: Distributed ATL
 
A petri-net
A petri-netA petri-net
A petri-net
 
quantization
quantizationquantization
quantization
 
Quantization
QuantizationQuantization
Quantization
 
A study of the worst case ratio of a simple algorithm for simple assembly lin...
A study of the worst case ratio of a simple algorithm for simple assembly lin...A study of the worst case ratio of a simple algorithm for simple assembly lin...
A study of the worst case ratio of a simple algorithm for simple assembly lin...
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexity
 
Mlab i
Mlab iMlab i
Mlab i
 
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
Stack Hybridization: A Mechanism for Bridging Two Compilation Strategies in a...
 
Two-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One EngineTwo-level Just-in-Time Compilation with One Interpreter and One Engine
Two-level Just-in-Time Compilation with One Interpreter and One Engine
 
Asymptotic notation
Asymptotic notationAsymptotic notation
Asymptotic notation
 
190111 tf2 preview_jwkang_pub
190111 tf2 preview_jwkang_pub190111 tf2 preview_jwkang_pub
190111 tf2 preview_jwkang_pub
 
Logics of the laplace transform
Logics of the laplace transformLogics of the laplace transform
Logics of the laplace transform
 
Insiders modeling london-2006
Insiders modeling london-2006Insiders modeling london-2006
Insiders modeling london-2006
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 
TR tabling presentation_2010_09
TR tabling presentation_2010_09TR tabling presentation_2010_09
TR tabling presentation_2010_09
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 
Network Information Processing
Network Information ProcessingNetwork Information Processing
Network Information Processing
 
fourier representation of signal and systems
fourier representation of signal and systemsfourier representation of signal and systems
fourier representation of signal and systems
 
Petri Nets: Properties, Analysis and Applications
Petri Nets: Properties, Analysis and ApplicationsPetri Nets: Properties, Analysis and Applications
Petri Nets: Properties, Analysis and Applications
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 

Ähnlich wie Live model transformations driven by incremental pattern matching

Implementing 3D SPHARM Surfaces Registration on Cell B.E. Processor
Implementing 3D SPHARM Surfaces Registration on Cell B.E. ProcessorImplementing 3D SPHARM Surfaces Registration on Cell B.E. Processor
Implementing 3D SPHARM Surfaces Registration on Cell B.E. Processor
PTIHPA
 
Upm scube-dynsys-presentation
Upm scube-dynsys-presentationUpm scube-dynsys-presentation
Upm scube-dynsys-presentation
idragan
 
Passive network-redesign-ntua
Passive network-redesign-ntuaPassive network-redesign-ntua
Passive network-redesign-ntua
IEEE NTUA SB
 

Ähnlich wie Live model transformations driven by incremental pattern matching (20)

Incremental pattern matching in the VIATRA2 model transformation system
Incremental pattern matching in the VIATRA2 model transformation systemIncremental pattern matching in the VIATRA2 model transformation system
Incremental pattern matching in the VIATRA2 model transformation system
 
Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworks
 
A benchmark evaluation for incremental pattern matching in graph transformation
A benchmark evaluation for incremental pattern matching in graph transformationA benchmark evaluation for incremental pattern matching in graph transformation
A benchmark evaluation for incremental pattern matching in graph transformation
 
Implementing 3D SPHARM Surfaces Registration on Cell B.E. Processor
Implementing 3D SPHARM Surfaces Registration on Cell B.E. ProcessorImplementing 3D SPHARM Surfaces Registration on Cell B.E. Processor
Implementing 3D SPHARM Surfaces Registration on Cell B.E. Processor
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reuse
 
Upm scube-dynsys-presentation
Upm scube-dynsys-presentationUpm scube-dynsys-presentation
Upm scube-dynsys-presentation
 
OpenGL Transformations
OpenGL TransformationsOpenGL Transformations
OpenGL Transformations
 
Passive network-redesign-ntua
Passive network-redesign-ntuaPassive network-redesign-ntua
Passive network-redesign-ntua
 
MSc Presentation
MSc PresentationMSc Presentation
MSc Presentation
 
Large-scale computation without sacrificing expressiveness
Large-scale computation without sacrificing expressivenessLarge-scale computation without sacrificing expressiveness
Large-scale computation without sacrificing expressiveness
 
Eeb317 principles of telecoms 2015
Eeb317 principles of telecoms 2015Eeb317 principles of telecoms 2015
Eeb317 principles of telecoms 2015
 
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
 
Predicting organic reaction outcomes with weisfeiler lehman network
Predicting organic reaction outcomes with weisfeiler lehman networkPredicting organic reaction outcomes with weisfeiler lehman network
Predicting organic reaction outcomes with weisfeiler lehman network
 
Concurrency in Distributed Systems : Leslie Lamport papers
Concurrency in Distributed Systems : Leslie Lamport papersConcurrency in Distributed Systems : Leslie Lamport papers
Concurrency in Distributed Systems : Leslie Lamport papers
 
MTPLs
MTPLsMTPLs
MTPLs
 
Loop parallelization & pipelining
Loop parallelization & pipeliningLoop parallelization & pipelining
Loop parallelization & pipelining
 
Fx3111501156
Fx3111501156Fx3111501156
Fx3111501156
 
UML&FM 2012
UML&FM 2012UML&FM 2012
UML&FM 2012
 
EEDC Programming Models
EEDC Programming ModelsEEDC Programming Models
EEDC Programming Models
 
Time-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity ClustersTime-Evolving Graph Processing On Commodity Clusters
Time-Evolving Graph Processing On Commodity Clusters
 

Mehr von Istvan Rath

The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development Environment
Istvan Rath
 

Mehr von Istvan Rath (20)

Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
 
IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 Webinar
 
Easier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesEasier smart home development with simulators and rule engines
Easier smart home development with simulators and rule engines
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017
 
Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...
 
Modes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsModes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe Systems
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
 
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationExploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
 
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
 
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
Xcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeXcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are Made
 
EMF-IncQuery 0.7 Presentation for Itemis
EMF-IncQuery 0.7 Presentation for ItemisEMF-IncQuery 0.7 Presentation for Itemis
EMF-IncQuery 0.7 Presentation for Itemis
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling Languages
 
The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development Environment
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
 
Change-driven model transformations
Change-driven model transformationsChange-driven model transformations
Change-driven model transformations
 

Kürzlich hochgeladen

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
 
+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@
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
+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...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
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, ...
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
"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 ...
 
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
 
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...
 

Live model transformations driven by incremental pattern matching

  • 1. Live model transformations driven  Live model transformations driven by incremental pattern matching y p g István Ráth (rath@mit.bme.hu) Gábor Bergmann András Ökrös Dániel Varró Budapest U i B d t University of  T h l it f Technology and Economics dE i ICMT, July 2, 2008 ICMT J l 2 2008
  • 2. Overview • I t d ti Introduction • Live transformations • The VIATRA implementation • Future work • Summary
  • 4. Model transformations and  incrementality • K Key usage scenarios for MT: i f MT – Mapping between languages or various levels of abstraction – Intra‐domain model manipulation • Working with evolving models – Constant changes & modifications – Large models g • Problem: (re)transformations are slow – To execute… (large models) – and to re‐execute again and again (batch execution) and to re‐execute again and again (batch execution). • Solution: incrementality – Take the source model, and its mapped counterpart; – U h i f Use the information about how the source model was changed; i b h h d l h d – Map and apply the changes (but ONLY the changes) to the target  model.
  • 5. Towards incrementality Towards incrementality • How to achieve incrementality? – Incremental updates: avoid re‐generation. p g • Don’t recreate what is already there. • Use reference (correspondence) models. Use reference (correspondence) models.
  • 6. Incremental updates Incremental updates modification S1 S2 S3 Sn t tR tR tR merge T1 T2 T3 Tn
  • 7. Towards incrementality Towards incrementality • How to achieve incrementality? – Incremental updates: avoid re‐generation. p g • Don’t recreate what is already there. • Use reference (correspondence) models. Use reference (correspondence) models. – Incremental execution: avoid re‐computation. • Don’t recalculate what was already computed Don t recalculate what was already computed. • How?
  • 8. Live transformations Live transformations 0 modification S1 S2 S3 Sn t tL transformation  tL tL context update T1 T2 T3 Tn 0Hearnden‐Lawley‐Raymond. Incremental Model Transformation for the Evolution of  Model‐driven Systems. MODELS 2006.
  • 9. Live transformations? Live transformations? • E Essentially: a different execution mode. ti ll diff t ti d – More than “simple” incremental execution… • Run as “daemons” Run as  daemons – whenever model changes occur • Maintain a transformation context Maintain a transformation context – To persist (cache) the execution state • Model changes can be instantly mapped – Input • what has changed (creation, deletion) • where has the change occurred (source reference target) has the change occurred (source, reference, target) – Output:  • actions (what to do)
  • 10. Possible applications Possible applications • M2M / inter‐domain transformations /i d i f i – Model synchronization on‐the‐fly • M2M / intra‐domain transformations – Model animation/execution (based on dynamic Model animation/execution (based on dynamic  semantics) – Constraint checking on‐the‐fly (what‐if) Constraint checking on the fly (what if) • M2C –I Incremental model‐code synchronization (DSMLs) t l d l d h i ti (DSML ) • ...
  • 12. Graph transformations Graph transformations • Graph rewriting based on rules h ii b d l • Driven by graph patterns yg p p – Subgraph to be matched in the model graph – A set of constraints (type, attribute value, A set of constraints (type, attribute value,  structural, …) • Execution – Declarative approaches (GT rules, TGG) –IImperative (mixed) approaches (explicit control  ti ( i d) h ( li it t l flow)
  • 13. Incremental graph pattern matching Incremental graph pattern matching • Graph transformations require pattern  matchingg • Goal: retrieve the matching set quickly • H ? How? – Store (cache) matchings execution context – Update them as the model changes – Update precisely incrementality Update precisely 
  • 14. Core idea: use RETE1 nets • RETE network INPUT – node: (partial) matches of a node: (partial) matches of a  (sub)pattern t3 Model space Model space p1 p2 p3 t1 t2 k1 k2 t3 – edge: update propagation t3 t3 t3 • Demonstrating the principle Demonstrating the principle – input: Petri net Input nodes : Place p1 p2 p3 d : Token k1 k2 : Transition t1 t2 t3 – pattern: fireable transition – Model change: new transition  t3 (t3) p1 t1 Intermediate  p1, k1 p2, k2 p3 p2 nodes p1, k1, t1 p2, k2, t3 t2 p2, k2, t3 t3 1 Forgy, C.L.: RETE: A fast algorithm for  Production node Production node p1, k1, t1, p3 p2, k2, t2, p3 the many pattern/many object pattern  match problem. AI 1982.
  • 15. Updates • N d d h Needed when the model space changes h d l h • VIATRA notification mechanism (EMF is also possible) – Transparent: user modification, model imports, results of a  transformation, external modification, …  RETE is always  updated! • Input nodes receive elementary modifications and  release an update token p – Represents a change in the partial matching (+/‐) • Nodes process updates and propagate them if needed p p p p g – PRECISE update mechanism
  • 16. Event‐driven live transformations Event driven live transformations An idea: represent events as model elements.2 • A id t t d l l t • Our take: represent events as changes in the matching  set of a pattern. set of a pattern – ~generalization • Incrementality: persistent context y p – matching sets cached in RETE networks  efficiency! – global cache (“session”) • Formalism – Specify WHEN and HOW to (re)act – Sh ld b “MT lik ” Should be “MT‐like” 2E. Guerra – J. de Lara. Event‐Driven Grammars: Towards the Integration of Meta‐ modelling and Graph Transformation, 2004
  • 17. Formalism @trigger(sensitivity=“rise”, priority=“1”, mode=“always”) @ i ( i i i “ i ” i i “ ” d “ l ”) gtrule mapClass() = { Graph transformation rule  High level support for: precondition pattern pre(C) = { class(C); } marked as a live transformation  ‐ Model element creation/deletion Annotations to specify execution  postcondition pattern post(C,T) = { unit (trigger) ‐ Attribute value changes (special  modes d Table(T); language constructs) mapping(M,C,T); Precondition pattern: defines  } ‐ Arbitrarily complex changes Arbitrarily complex changes  the graph pattern whose  the graph pattern whose (involving multiple model elements) matching set changes trigger  action {  the execution ‐ Model changes from any source  g rename(T, name(C));   y Postcondition pattern: pattern:  (user editing, transformations, model  describes how the model is to  debug(“Table created: “ + fqn(T)); Action sequence: imperative  imports, …) be changed declaratively model modification, debug  } printing, code generation, … i i d i }
  • 18. Execution Transaction1 Commit Transaction2 Matching set delta monitor trigger  fall PA actions Execution Engine Interesting questions: PB rise ‐ Serialization (priority  ordering, conflicts, race  Trigger queue q e e conditions) Incre‐ ‐ Parallel execution mental PM
  • 20. Case studies Case studies • Domain‐specific visual languages (ViatraDSM) – Incremental, on‐the‐fly constraint evaluation  , y (&enforcement) ‐‐ VIATRA2 is not limited to the  „source target” scenario – On‐the‐fly abstract‐concrete synchronization On the fly abstract concrete synchronization ‐‐ can be used to map a DSML into  • Metamodel‐driven, based on GMF specification models multiple concrete syntax  representations (analysis models,  p ( y – Incremental code generation Incremental code generation architectural models, etc)  simultaneously, on multiple levels of  • Model‐code synchronization abstraction – Model animation & simulation3 3Ráth‐Vágó‐Varró. Design‐time simulation of domain‐specific models by incremental  pattern matching. Accepted for VL/HCC 2008.
  • 21. Performance4 Object-Relational Mapping 100000 10000 cution time [ms] build b ild – VIATRA/RETE sync – VIATRA/RETE 1000 build – VIATRA/LS ‐‐ Sub‐1000ms execution time for UML  sync – VIATRA/LS models < 5000 nodes d l 5000 d Exec 100 ‐‐ Low‐order‐polynomial characteristics  (compared to exponential with local  search) 10 ‐‐ Acceptable execution time (n.10s) for  10 100 1000 really large models  (100000+) 10000 100000 Model size [node count] 4Bergmann‐Horváth‐Ráth‐Varró. A benchmark evaluation of incremental pattern  matching in graph transformation. To appear in Proc. ICGT2008.
  • 22. Future work Future work • I Improving performance i f – Parallel (multi‐core) execution – RETE optimizations RETE optimizations • Language improvements – More compact notations More compact notations – Static type checking – Debugging support Debugging support • EMF support – Incremental pattern matching & matching set Incremental pattern matching & matching set  detection (EMFT) – Java API based on the VIATRA language
  • 23. Conclusion • Live transformation engine for incremental graph  i f i i f i l h transformations – Novel approach based on matching set changes,  supported by the new, high performance incremental  pattern matching engine pattern matching engine • VIATRA2 R3 – htt // li http://eclipse.org/gmt / t – http://wiki.eclipse.org/VIATRA2 – A il bl Available as a preview release (coming in August) i l ( i i A ) • Thank you.