SlideShare a Scribd company logo
Decreasing your Coffee Consumption
by
Incremental (Code) Regeneration
Ákos Horváth, Ábel Hegedüs
IncQueryLabs Ltd.
István Ráth, Dániel Varró
Budapest University of Technology and Economics
Ádám Balogh
Ericsson Hungary Ltd.
Outline of the talk
Motivation and Background
Incrementality in transformations
Incremental transformation
•Different realizations
•Additional features
Evaluation
•Runtime performance
Conclusion
•Current status
•Future work
 Main Contributors
o Zoltán Ujhelyi
o Ábel Hegedüs
o Márton Búr
o Róbert Dóczi
o Péter Lunk
o István Ráth
o Ákos Horváth
Model transformations
Incrementality in transformations
Incrementality in model transformations:
The common understanding
SRC TRGTRACE
Motivation
Req. 1: Source model sizes in the range of millions (e.g.,
AUTOSAR)
Req. 2: Transformation times may take hours in case of
complex transformations
Req. 3: Chaining of model transformation
Incrementality in model transformations
Our understanding and the current aim
SRC TRGTRACE
Interpretation: when a change occurs, …
Source incrementality: “re-read as little as possible”
Req. 1: Source model sizes
Target incrementality: “re-write as little as possible”
Req. 2: Complex transformation execution
Req. 3: Transformation chaining requires both target and source
incrementality
One way synchronization
Model transformations (cont.)
Type of incremental approaches
(as we understand)
No Incrementality: Batch Transformations
1. First transformation
2. Source model changes
3. Re-execute from scratch
for all source models
SRC1
SRC2
TRG1TRACE1
TRG2TRACE2
“Dirty” Incrementality
1. First transformation
2. Source model changes
3. Re-execute from scratch
only for changed model
segments
SRC1
SRC2
TRG1TRACE1
TRG2TRACE2
Pros:
• Coarse grain
incrementality
Cons:
• Complex MT can be slow
• Cleanup (after an error)?
• Chaining?
• Source and target
incrementality?
Incrementality by traceability
1. First transformation
2. Source model changes
4. Re-execute MT only for
untraceable elements
SRC1
SRC2
TRG1TRACE1
TRG2TRACE2
3. Detect missing trace links
Pros:
• Fine grain incrementality
(source and target)
• Better performance
• Chaining (req. 3.)
Cons:
• Highly depends on
traceability links
• Smart queries needed
Query result based transformations
1. First transformation
2. Source model changes
4. Fire rule activations
(in relevant context)
SRC1
SRC2
TRG1TRACE1
TRG2TRACE2
3. Detect new activations
Pros:
• Refined context: driven by
query result set changes
• Chaining (req. 3)
Cons:
• Language-level
restrictions
Realization of M2M Steps
VIATRA
Model-to-model transformations in
Cyber Physical Systems demonstrator
EMF-IncQuery and Viatra based transformations
EMF-IncQuery
• Planned release 1.0: 2015.06.30 (graduation)
• “an incremental model query engine”
New VIATRA
• http://eclipse.org/viatra , “an event-driven and reactive model transformation platform”
• High-performance model transformation engine built on IncQuery technology
• Unique feature: supports batch, incremental transformation over a unified virtual
machine infrastructure (EVM)
• Full Java and EMF compatibility
• API inspired by Xtend and Xbase
• Tightly integrated into Xtend
• Planned release 0.7: 2015. 06. 30
Cyber-physical system demonstrator
The CPS system describes a set of stateful applications allocated to hosts in
order to fulfill requests
• Application types and instances
o Each type specifies a state machine with states and transitions
• Host types and communicating instances
o Limited resources, e.g. CPU, memory
• Transitions may send or wait for signals
o Sending is addressed to application types
https://github.com/IncQueryLabs/incquery-examples-cps
Cyber Physical
Ecore Model
Target CodeDeployment model
M2M M2T
Transformation
Batch Simple and Optimized
Based on Xtend
Reads the SRC model and generates both Traceability and target elements
Optimized uses
• some caches for traceability elements
• Optimized based on generated java code
SRC1
TRG1
TRACE1
Xtendreads generates
Transformation
Batch IncQuery
SRC1
TRG1
TRACE1
Δ
1. Source
model changes
Xtend
Notifications
sent
2. Notifications
sent
3. Deletes trace
and target
models
3. Regeneration
is triggered
Transformation
Batch IncQuery
SRC1
TRG1
TRACE1Δ
Reexecutes
transformation
1. Source
model changes
Notifications
sent
2. Notifications
sent
4. Trace and
Target are
regenerated
Xtend
Reads query
results
3. Deletes trace
and target
models
3. Regeneration
is triggered
Transformation
Batch IncQuery
Based on Xtend and IncQuery
Both Traceability and Source model is queried using
IncQuery
• Cache sets are kept synchronized with changes
• Transformations just reads results
• Uses IncQuery only where useful
SRC1
TRG1
TRACE1Δ
Reexecutes
transformation
Xtend
Reads query
results
Transformation
Change Monitor + IncQuery
(dirty incremental)
SRC1
TRG1
TRACE1
Reexecutes
transformationXtend
Reads query
results
Change
Monitor
R1
R2
R3
1. Source
model changes
Notifications
sent
2. Notifications
sent
4. Executes rules
on dirty segment
3. Calculates
dirty model
segmentΔ
0.Transformation
rules
4. New parts
created,
old modified
Δ dirty part
Transformation
Change Monitor + IncQuery
(dirty incremental)
Based on Custom Change monitor
Calculation of dirty segment is hand code 
defines level of incrementality
• Handling of deletion/creation can be cumbersome
EMF-IncQuery is used to receive notification on changes
SRC1
TRG1
TRACE1
Reexecutes
transformationXtend
Reads query
results
Change
Monitor
R1
R2
Δ dirty part
Δ
Transformation
Explicit Traceability
SRC1
TRG1
TRACE1
Δ Δ
EVM
Δ match sets
R1
R2
R3
1 2 3
1
1 2
Fires rule
activation
3
2. Missing Trace link
“negative
notifications”
1. Source
model changes
Notifications
sent
2. Notifications
sent
3. New
activations
appear
0.Transformation
rules
0. Rule
Activations
3. Target model
changed
4. Everything
starts over
Transformation
Explicit Traceability
Based on IncQuery and EVM (Event-Driven Virtual Machine)
Model modifications defined in Xtend
Keeps rule activation life-cycle by EVM
• Mainly queries traceability model
• Follows what is happening with source model
Execution triggering is controlled separately from activation
• Single rule
• Delayed for multiple rules (e.g., EMF transaction end)
SRC1
TRG1
TRACE1
Δ Δ
EVM
Δ match sets
R1
R2
R3
1 2
3
1
1 2
Fires rule
activation
3
Transformation
Query based traceability
SRC1
TRG1
TRACE1
Δ
EVM
Δ changed match sets
R1
R2
R3
1 2 3
1 2
Fires rule
activation
3
2. Match set changes
propagated
1. Source
model changes
Notifications
sent
2. Notifications
sent
3. New
activations
appear
3. Target model
changed
0. Rule
Activations from
the start of
transformation
(reference point)
Transformation
Query based traceability
SRC1
TRG1
TRACE1
EVM
Δ changed match sets
R1
R2
R3
1 2
1 2
Fires rule
activation
1. Source
model changes
Notifications
sent
2. Notifications
sent
3. Target model
changed
3
3
Δ
5.
Transformation
continues
2. Match set changes
propagated
0. Rule
Activations from
the start of
transformation
(reference point)
3. New
activations
appear
4. New
reference
point is set
Transformation
Query based traceability
Traceability is kept by state of match sets
Keeps rule activation life-cycle by EVM
• Traceability by appeared/disappeared/updated matches
based on previous “reference point”
• Rule activation only queries source model
Execution triggering is controlled separately from activation
SRC1
TRG1
TRACE1
EVM
R1
R2
R3
1 2 3
1 2
Fires rule
activation
3
Δ changed match sets
Δ
Transformation
Viatra (API) for
model transformation definition
Provides a user-friendly API over EVM for
defining transformation rules
Supports
• Batch execution
• Query based traceability
Rule definition
• Pre condition – EMF-IncQuery pattern
• Action – any Java compatible code, usually
Xtend
SRC1
TRG1
TRACE1
EVM
R1
R2
R3
1 2
1
1 2
Fires rule
activation
Part of the upcoming
Viatra 0.7 release
• Much more to see 
http://www.eclipse.org/viatra/
1 2 3
1 2
3
Δ changed match sets
Δ
VIATRA
Additional features
Viatra
• Transformation chains defined in MWE2
o Extensible language feature
 API for Viatra incremental and
batch transformations
o Explicit workflow for control
CPS case study specific
• M2T code generation for Java
based on change monitor
 Template based
 JDT based
o Not much difference in performance
Evaluation
Performance benchmarks
Test scenario
Scale SRC Objects SRC References TRG Objects TRG References Trace Objects Trace References
SUM
Objects
SUM
References
1 395 772 366 736 354 720 1115 2228
2 849 1821 773 1535 762 1535 2384 4891
4 1694 4697 1534 2972 1522 3056 4750 10725
8 3604 17111 3266 6108 3254 6520 10124 29739
16 7820 89193 7124 12395 7112 14236 22056 115824
32 17714 594181 16308 24837 16297 32605 50319 651623
64 43795 4424529 40960 50028 40948 81908 125703 4556465
For all four transformations
• Batch
o simple and optimized
o IncQuery and Viatra
• Incremental
o Change monitor based
o EVM: explicit traceability and query
result based (qbr)
o Viatra: query based
Executions
• First transformation execution
• Small modification + (re)execution
Four different model scenarios
• Industrial (presented below)
• Client-Server
• Publish-Subscribe
Environment
• New desktop machine with 16 GB RAM
Parameters
• 10 GB Heap
• Maximum 10 minutes execution times
for complete chain
Trace model’s size
similar to target model
Runtime for first transformation
Batch IncQuery +
Batch Viatra are the
fastest
Incremental
approaches are within
~200%
Logarithmic scale!
Modification and second transformation
As expected
incremental transformation
does well in (re)execution
Logarithmic scale!
Conclusion
Conclusion
CPS demonstrator helps transformation engineers to
• Helps to identify key features of different approaches
• Provide hints for fine-tuning
o Hybrid approach 
 Batch+IncQuery for first transformation
 Explicit traceability for (re)execution
• Viatra + EMF-IncQuery provides
o a mature stack to execute a wide variety of
incremental (and batch) transformations
Future work
Viatra as a generic model transformation framework? 
much more is under the hood
• Complex Event processing
• Design Space Exploration
• EclipeCon Europe 2015?
• http://www.eclipse.org/viatra/
Final points
Viatra
• 0.7 will be out soon
• Generic transformation engine for batch and incremental
transformation chains
• http://www.eclipse.org/viatra/
• The examples with all test results and more details are available form
o https://github.com/IncQueryLabs/incquery-examples-cps/
o Contributors:
 Main: IncQuery Labs Ltd,
 Auxilliary:. Ericsson A.B., BME-FTSRG
 Supporting projects: Ericsson internal project
Your contributions (feedback, forum posts, ideas, bugzillas, patches)
are very welcome!
• To what direction should we enhance the demonstrator and the Viatra
transformation API?
32
Decreasing your Coffe Consumption by Incremental Code regeneration

More Related Content

Viewers also liked

TransPerfect acquires market leader in Big Data eDiscovery Technology
TransPerfect acquires market leader in Big Data eDiscovery TechnologyTransPerfect acquires market leader in Big Data eDiscovery Technology
TransPerfect acquires market leader in Big Data eDiscovery Technology
alejandro_tpt
 
New Media trends
New Media trendsNew Media trends
New Media trends
Oleg Khomenok
 
Elabora documentos hilario
Elabora documentos hilarioElabora documentos hilario
Elabora documentos hilario
Cristy Iveth
 
COLICO EN CABALLOS
COLICO EN CABALLOS COLICO EN CABALLOS
COLICO EN CABALLOS
ALEXANDER HERNANDEZ
 
έλα καλημέρα
έλα καλημέραέλα καλημέρα
έλα καλημέραGeorgeRene
 
Dtu7ech13
Dtu7ech13Dtu7ech13
P4 prueba período 1° Básico Matemática 2012
P4  prueba período        1° Básico  Matemática    2012P4  prueba período        1° Básico  Matemática    2012
P4 prueba período 1° Básico Matemática 2012
25karen
 
Using Web Data for Finance
Using Web Data for FinanceUsing Web Data for Finance
Using Web Data for Finance
Scrapinghub
 
Relación costo-diseño-diseñador
Relación costo-diseño-diseñadorRelación costo-diseño-diseñador
Relación costo-diseño-diseñador
Anto Alams
 

Viewers also liked (9)

TransPerfect acquires market leader in Big Data eDiscovery Technology
TransPerfect acquires market leader in Big Data eDiscovery TechnologyTransPerfect acquires market leader in Big Data eDiscovery Technology
TransPerfect acquires market leader in Big Data eDiscovery Technology
 
New Media trends
New Media trendsNew Media trends
New Media trends
 
Elabora documentos hilario
Elabora documentos hilarioElabora documentos hilario
Elabora documentos hilario
 
COLICO EN CABALLOS
COLICO EN CABALLOS COLICO EN CABALLOS
COLICO EN CABALLOS
 
έλα καλημέρα
έλα καλημέραέλα καλημέρα
έλα καλημέρα
 
Dtu7ech13
Dtu7ech13Dtu7ech13
Dtu7ech13
 
P4 prueba período 1° Básico Matemática 2012
P4  prueba período        1° Básico  Matemática    2012P4  prueba período        1° Básico  Matemática    2012
P4 prueba período 1° Básico Matemática 2012
 
Using Web Data for Finance
Using Web Data for FinanceUsing Web Data for Finance
Using Web Data for Finance
 
Relación costo-diseño-diseñador
Relación costo-diseño-diseñadorRelación costo-diseño-diseñador
Relación costo-diseño-diseñador
 

Similar to Decreasing your Coffe Consumption by Incremental Code regeneration

Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
Ákos Horváth
 
Incremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software EngineeringIncremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software Engineering
Ákos Horváth
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the Cloud
Gábor Szárnyas
 
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
Daniel Varro
 
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENEWorkshop
 
SERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolSERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_school
Henry Muccini
 
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
IncQuery Labs
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017
Istvan Rath
 
Monitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In AzureMonitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In Azure
Alex Bulankou
 
Robotics technical Presentation
Robotics technical PresentationRobotics technical Presentation
Robotics technical Presentation
klepsydratechnologie
 
VIATRA 3: A Reactive Model Transformation Platform
VIATRA 3: A Reactive Model Transformation PlatformVIATRA 3: A Reactive Model Transformation Platform
VIATRA 3: A Reactive Model Transformation Platform
Ábel Hegedüs
 
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Lionel Briand
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
Vinod Wilson
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML Models
Lightbend
 
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data StreamsMachine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Lightbend
 
Tools. Techniques. Trouble?
Tools. Techniques. Trouble?Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
Testplant
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrx
Ilia Idakiev
 
Application of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC projectApplication of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC project
Nieves Salor
 
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptxIntro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
DeepakJangid87
 
Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!
Julian Feinauer
 

Similar to Decreasing your Coffe Consumption by Incremental Code regeneration (20)

Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
Incremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software EngineeringIncremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software Engineering
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the Cloud
 
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
 
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the Cloud
 
SERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolSERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_school
 
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017
 
Monitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In AzureMonitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In Azure
 
Robotics technical Presentation
Robotics technical PresentationRobotics technical Presentation
Robotics technical Presentation
 
VIATRA 3: A Reactive Model Transformation Platform
VIATRA 3: A Reactive Model Transformation PlatformVIATRA 3: A Reactive Model Transformation Platform
VIATRA 3: A Reactive Model Transformation Platform
 
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML Models
 
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data StreamsMachine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
 
Tools. Techniques. Trouble?
Tools. Techniques. Trouble?Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrx
 
Application of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC projectApplication of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC project
 
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptxIntro to LV in 3 Hours for Control and Sim 8_5.pptx
Intro to LV in 3 Hours for Control and Sim 8_5.pptx
 
Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!Dances with bits - industrial data analytics made easy!
Dances with bits - industrial data analytics made easy!
 

More from Ákos Horváth

Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...
Ákos Horváth
 
Natural Language Understanding of Systems Engineering Artifacts
Natural Language Understanding of Systems Engineering ArtifactsNatural Language Understanding of Systems Engineering Artifacts
Natural Language Understanding of Systems Engineering Artifacts
Ákos Horváth
 
IoT Meetup Budapest - The Open-CPS approach
IoT Meetup Budapest - The Open-CPS approachIoT Meetup Budapest - The Open-CPS approach
IoT Meetup Budapest - The Open-CPS approach
Ákos Horváth
 
Multi-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approach
Multi-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approachMulti-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approach
Multi-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approach
Ákos Horváth
 
V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!
Ákos Horváth
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - Introdcution
Ákos Horváth
 
Incremental model compiler for executable UML
Incremental model compiler for executable UMLIncremental model compiler for executable UML
Incremental model compiler for executable UML
Ákos Horváth
 
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
Ákos Horváth
 
EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...
EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...
EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...
Ákos Horváth
 
Local search-based pattern matching features in EMF-IncQuery
Local search-based pattern matching features in EMF-IncQueryLocal search-based pattern matching features in EMF-IncQuery
Local search-based pattern matching features in EMF-IncQuery
Ákos Horváth
 
VIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformVIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platform
Ákos Horváth
 
Model visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsModel visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling tools
Ákos Horváth
 
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
Ákos Horváth
 
Szoftverfejlesztés a repülőgépiparban
Szoftverfejlesztés a repülőgépiparbanSzoftverfejlesztés a repülőgépiparban
Szoftverfejlesztés a repülőgépiparban
Ákos Horváth
 
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Ákos Horváth
 
Software Development for Safety Critical Systems
Software Development for Safety Critical SystemsSoftware Development for Safety Critical Systems
Software Development for Safety Critical Systems
Ákos Horváth
 
Model-Driven Development of ARINC 653 Configuration tables
Model-Driven Development of ARINC 653 Configuration tablesModel-Driven Development of ARINC 653 Configuration tables
Model-Driven Development of ARINC 653 Configuration tables
Ákos Horváth
 
Hardware-Software allocation specification of IMA systems for early simulation
Hardware-Software allocation specification of IMA systems for early simulationHardware-Software allocation specification of IMA systems for early simulation
Hardware-Software allocation specification of IMA systems for early simulation
Ákos Horváth
 
IncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagramsIncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagrams
Ákos Horváth
 
Massif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and EclipseMassif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and Eclipse
Ákos Horváth
 

More from Ákos Horváth (20)

Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...Next-Generation Completeness and Consistency Management in the Digital Threa...
Next-Generation Completeness and Consistency Management in the Digital Threa...
 
Natural Language Understanding of Systems Engineering Artifacts
Natural Language Understanding of Systems Engineering ArtifactsNatural Language Understanding of Systems Engineering Artifacts
Natural Language Understanding of Systems Engineering Artifacts
 
IoT Meetup Budapest - The Open-CPS approach
IoT Meetup Budapest - The Open-CPS approachIoT Meetup Budapest - The Open-CPS approach
IoT Meetup Budapest - The Open-CPS approach
 
Multi-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approach
Multi-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approachMulti-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approach
Multi-disciplinary simulation of Cyber-Physical Systems – The OpenCPS approach
 
V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - Introdcution
 
Incremental model compiler for executable UML
Incremental model compiler for executable UMLIncremental model compiler for executable UML
Incremental model compiler for executable UML
 
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
 
EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...
EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...
EMF-IncQuery: Blazing-fast reaction time even for very large diagrams (Sirius...
 
Local search-based pattern matching features in EMF-IncQuery
Local search-based pattern matching features in EMF-IncQueryLocal search-based pattern matching features in EMF-IncQuery
Local search-based pattern matching features in EMF-IncQuery
 
VIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformVIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platform
 
Model visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsModel visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling tools
 
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
CPS(M): Constraint Satisfaction Problem over Models (a.k.a rule based design ...
 
Szoftverfejlesztés a repülőgépiparban
Szoftverfejlesztés a repülőgépiparbanSzoftverfejlesztés a repülőgépiparban
Szoftverfejlesztés a repülőgépiparban
 
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
 
Software Development for Safety Critical Systems
Software Development for Safety Critical SystemsSoftware Development for Safety Critical Systems
Software Development for Safety Critical Systems
 
Model-Driven Development of ARINC 653 Configuration tables
Model-Driven Development of ARINC 653 Configuration tablesModel-Driven Development of ARINC 653 Configuration tables
Model-Driven Development of ARINC 653 Configuration tables
 
Hardware-Software allocation specification of IMA systems for early simulation
Hardware-Software allocation specification of IMA systems for early simulationHardware-Software allocation specification of IMA systems for early simulation
Hardware-Software allocation specification of IMA systems for early simulation
 
IncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagramsIncQuery gets Sirius: faster and better diagrams
IncQuery gets Sirius: faster and better diagrams
 
Massif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and EclipseMassif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and Eclipse
 

Recently uploaded

A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 

Recently uploaded (20)

A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 

Decreasing your Coffe Consumption by Incremental Code regeneration

  • 1. Decreasing your Coffee Consumption by Incremental (Code) Regeneration Ákos Horváth, Ábel Hegedüs IncQueryLabs Ltd. István Ráth, Dániel Varró Budapest University of Technology and Economics Ádám Balogh Ericsson Hungary Ltd.
  • 2. Outline of the talk Motivation and Background Incrementality in transformations Incremental transformation •Different realizations •Additional features Evaluation •Runtime performance Conclusion •Current status •Future work  Main Contributors o Zoltán Ujhelyi o Ábel Hegedüs o Márton Búr o Róbert Dóczi o Péter Lunk o István Ráth o Ákos Horváth
  • 4. Incrementality in model transformations: The common understanding SRC TRGTRACE Motivation Req. 1: Source model sizes in the range of millions (e.g., AUTOSAR) Req. 2: Transformation times may take hours in case of complex transformations Req. 3: Chaining of model transformation
  • 5. Incrementality in model transformations Our understanding and the current aim SRC TRGTRACE Interpretation: when a change occurs, … Source incrementality: “re-read as little as possible” Req. 1: Source model sizes Target incrementality: “re-write as little as possible” Req. 2: Complex transformation execution Req. 3: Transformation chaining requires both target and source incrementality One way synchronization
  • 6. Model transformations (cont.) Type of incremental approaches (as we understand)
  • 7. No Incrementality: Batch Transformations 1. First transformation 2. Source model changes 3. Re-execute from scratch for all source models SRC1 SRC2 TRG1TRACE1 TRG2TRACE2
  • 8. “Dirty” Incrementality 1. First transformation 2. Source model changes 3. Re-execute from scratch only for changed model segments SRC1 SRC2 TRG1TRACE1 TRG2TRACE2 Pros: • Coarse grain incrementality Cons: • Complex MT can be slow • Cleanup (after an error)? • Chaining? • Source and target incrementality?
  • 9. Incrementality by traceability 1. First transformation 2. Source model changes 4. Re-execute MT only for untraceable elements SRC1 SRC2 TRG1TRACE1 TRG2TRACE2 3. Detect missing trace links Pros: • Fine grain incrementality (source and target) • Better performance • Chaining (req. 3.) Cons: • Highly depends on traceability links • Smart queries needed
  • 10. Query result based transformations 1. First transformation 2. Source model changes 4. Fire rule activations (in relevant context) SRC1 SRC2 TRG1TRACE1 TRG2TRACE2 3. Detect new activations Pros: • Refined context: driven by query result set changes • Chaining (req. 3) Cons: • Language-level restrictions
  • 11. Realization of M2M Steps VIATRA Model-to-model transformations in Cyber Physical Systems demonstrator
  • 12. EMF-IncQuery and Viatra based transformations EMF-IncQuery • Planned release 1.0: 2015.06.30 (graduation) • “an incremental model query engine” New VIATRA • http://eclipse.org/viatra , “an event-driven and reactive model transformation platform” • High-performance model transformation engine built on IncQuery technology • Unique feature: supports batch, incremental transformation over a unified virtual machine infrastructure (EVM) • Full Java and EMF compatibility • API inspired by Xtend and Xbase • Tightly integrated into Xtend • Planned release 0.7: 2015. 06. 30
  • 13. Cyber-physical system demonstrator The CPS system describes a set of stateful applications allocated to hosts in order to fulfill requests • Application types and instances o Each type specifies a state machine with states and transitions • Host types and communicating instances o Limited resources, e.g. CPU, memory • Transitions may send or wait for signals o Sending is addressed to application types https://github.com/IncQueryLabs/incquery-examples-cps Cyber Physical Ecore Model Target CodeDeployment model M2M M2T
  • 14. Transformation Batch Simple and Optimized Based on Xtend Reads the SRC model and generates both Traceability and target elements Optimized uses • some caches for traceability elements • Optimized based on generated java code SRC1 TRG1 TRACE1 Xtendreads generates
  • 15. Transformation Batch IncQuery SRC1 TRG1 TRACE1 Δ 1. Source model changes Xtend Notifications sent 2. Notifications sent 3. Deletes trace and target models 3. Regeneration is triggered
  • 16. Transformation Batch IncQuery SRC1 TRG1 TRACE1Δ Reexecutes transformation 1. Source model changes Notifications sent 2. Notifications sent 4. Trace and Target are regenerated Xtend Reads query results 3. Deletes trace and target models 3. Regeneration is triggered
  • 17. Transformation Batch IncQuery Based on Xtend and IncQuery Both Traceability and Source model is queried using IncQuery • Cache sets are kept synchronized with changes • Transformations just reads results • Uses IncQuery only where useful SRC1 TRG1 TRACE1Δ Reexecutes transformation Xtend Reads query results
  • 18. Transformation Change Monitor + IncQuery (dirty incremental) SRC1 TRG1 TRACE1 Reexecutes transformationXtend Reads query results Change Monitor R1 R2 R3 1. Source model changes Notifications sent 2. Notifications sent 4. Executes rules on dirty segment 3. Calculates dirty model segmentΔ 0.Transformation rules 4. New parts created, old modified Δ dirty part
  • 19. Transformation Change Monitor + IncQuery (dirty incremental) Based on Custom Change monitor Calculation of dirty segment is hand code  defines level of incrementality • Handling of deletion/creation can be cumbersome EMF-IncQuery is used to receive notification on changes SRC1 TRG1 TRACE1 Reexecutes transformationXtend Reads query results Change Monitor R1 R2 Δ dirty part Δ
  • 20. Transformation Explicit Traceability SRC1 TRG1 TRACE1 Δ Δ EVM Δ match sets R1 R2 R3 1 2 3 1 1 2 Fires rule activation 3 2. Missing Trace link “negative notifications” 1. Source model changes Notifications sent 2. Notifications sent 3. New activations appear 0.Transformation rules 0. Rule Activations 3. Target model changed 4. Everything starts over
  • 21. Transformation Explicit Traceability Based on IncQuery and EVM (Event-Driven Virtual Machine) Model modifications defined in Xtend Keeps rule activation life-cycle by EVM • Mainly queries traceability model • Follows what is happening with source model Execution triggering is controlled separately from activation • Single rule • Delayed for multiple rules (e.g., EMF transaction end) SRC1 TRG1 TRACE1 Δ Δ EVM Δ match sets R1 R2 R3 1 2 3 1 1 2 Fires rule activation 3
  • 22. Transformation Query based traceability SRC1 TRG1 TRACE1 Δ EVM Δ changed match sets R1 R2 R3 1 2 3 1 2 Fires rule activation 3 2. Match set changes propagated 1. Source model changes Notifications sent 2. Notifications sent 3. New activations appear 3. Target model changed 0. Rule Activations from the start of transformation (reference point)
  • 23. Transformation Query based traceability SRC1 TRG1 TRACE1 EVM Δ changed match sets R1 R2 R3 1 2 1 2 Fires rule activation 1. Source model changes Notifications sent 2. Notifications sent 3. Target model changed 3 3 Δ 5. Transformation continues 2. Match set changes propagated 0. Rule Activations from the start of transformation (reference point) 3. New activations appear 4. New reference point is set
  • 24. Transformation Query based traceability Traceability is kept by state of match sets Keeps rule activation life-cycle by EVM • Traceability by appeared/disappeared/updated matches based on previous “reference point” • Rule activation only queries source model Execution triggering is controlled separately from activation SRC1 TRG1 TRACE1 EVM R1 R2 R3 1 2 3 1 2 Fires rule activation 3 Δ changed match sets Δ
  • 25. Transformation Viatra (API) for model transformation definition Provides a user-friendly API over EVM for defining transformation rules Supports • Batch execution • Query based traceability Rule definition • Pre condition – EMF-IncQuery pattern • Action – any Java compatible code, usually Xtend SRC1 TRG1 TRACE1 EVM R1 R2 R3 1 2 1 1 2 Fires rule activation Part of the upcoming Viatra 0.7 release • Much more to see  http://www.eclipse.org/viatra/ 1 2 3 1 2 3 Δ changed match sets Δ VIATRA
  • 26. Additional features Viatra • Transformation chains defined in MWE2 o Extensible language feature  API for Viatra incremental and batch transformations o Explicit workflow for control CPS case study specific • M2T code generation for Java based on change monitor  Template based  JDT based o Not much difference in performance
  • 28. Test scenario Scale SRC Objects SRC References TRG Objects TRG References Trace Objects Trace References SUM Objects SUM References 1 395 772 366 736 354 720 1115 2228 2 849 1821 773 1535 762 1535 2384 4891 4 1694 4697 1534 2972 1522 3056 4750 10725 8 3604 17111 3266 6108 3254 6520 10124 29739 16 7820 89193 7124 12395 7112 14236 22056 115824 32 17714 594181 16308 24837 16297 32605 50319 651623 64 43795 4424529 40960 50028 40948 81908 125703 4556465 For all four transformations • Batch o simple and optimized o IncQuery and Viatra • Incremental o Change monitor based o EVM: explicit traceability and query result based (qbr) o Viatra: query based Executions • First transformation execution • Small modification + (re)execution Four different model scenarios • Industrial (presented below) • Client-Server • Publish-Subscribe Environment • New desktop machine with 16 GB RAM Parameters • 10 GB Heap • Maximum 10 minutes execution times for complete chain Trace model’s size similar to target model
  • 29. Runtime for first transformation Batch IncQuery + Batch Viatra are the fastest Incremental approaches are within ~200% Logarithmic scale!
  • 30. Modification and second transformation As expected incremental transformation does well in (re)execution Logarithmic scale!
  • 31. Conclusion Conclusion CPS demonstrator helps transformation engineers to • Helps to identify key features of different approaches • Provide hints for fine-tuning o Hybrid approach   Batch+IncQuery for first transformation  Explicit traceability for (re)execution • Viatra + EMF-IncQuery provides o a mature stack to execute a wide variety of incremental (and batch) transformations Future work Viatra as a generic model transformation framework?  much more is under the hood • Complex Event processing • Design Space Exploration • EclipeCon Europe 2015? • http://www.eclipse.org/viatra/
  • 32. Final points Viatra • 0.7 will be out soon • Generic transformation engine for batch and incremental transformation chains • http://www.eclipse.org/viatra/ • The examples with all test results and more details are available form o https://github.com/IncQueryLabs/incquery-examples-cps/ o Contributors:  Main: IncQuery Labs Ltd,  Auxilliary:. Ericsson A.B., BME-FTSRG  Supporting projects: Ericsson internal project Your contributions (feedback, forum posts, ideas, bugzillas, patches) are very welcome! • To what direction should we enhance the demonstrator and the Viatra transformation API? 32

Editor's Notes

  1. Small-step and fine grain
  2. 6 minutes
  3. 6 minutes
  4. 6 minutes
  5. Star like structure for the first two Client server -> all clients communicate with server Publish-subscribers -> publisher sends to all the subscribers Lowsynch: multiple host with multiple instances that are interconnected: Simple:
  6. For a programmer: A piece of code that searches for parts of the model For the scientist: Query = set of constraints that have to be satisfied by (parts of) the (graph) model Result = set of model element tuples that satisfy the constraints of the query Match = bind constraint variables to model elements