SlideShare une entreprise Scribd logo
1  sur  22
VIATRA 3:
A Reactive Model Transformation
Platform
Gábor Bergmann, István Dávid, Ábel Hegedüs, Ákos
Horváth, István Ráth, Zoltán Ujhelyi and Dániel
Varró
IncQuery Labs Ltd.
Budapest University of Technology and Economics
University of Antwerp
7/22/2015 ICMT 2015, L’Aquila, Italy 1
Reactive model-driven applications
Interference between functions
Commonalities
• Queries, rules, scheduling, conflicts
User
interaction
(modify)
SRC TRG
Batch
transformation
Incremental
transformation
Live validation Live views
Derived features
7/22/2015 ICMT 2015, L’Aquila, Italy 2
Separation of concerns
Reactive
Transformation
Framework
Observed
events
Controlled
events
Actions
What has changed?
When to react?
Perform in
consistent state
7/22/2015 ICMT 2015, L’Aquila, Italy 3
Examples of events and actions
Reactive
Transformation
Framework
Observed
events
Controlled
events
Actions
• Model modified
• Match appeared
• Event sequence identified
• „Run” button pushed
• Consistent state reached
after editing
• Transaction committed
• Modify model
• Add error marker
• Update view
• Send e-mail
7/22/2015 ICMT 2015, L’Aquila, Italy 4
Main concepts
Reactive
Transformation
Framework
Observed
events
Controlled
events
Actions
• Event source
• Event occurrence
(type, data)
• Life cycle
• Jobs
• Scheduler
Rule
specifications
• Agenda
• Executor
• Conflict resolver
7/22/2015 ICMT 2015, L’Aquila, Italy 5
Query language
Xtend (Java)
Language example
pattern someCondition( param1, param2 ) {...}
val rule = createRule().precondition(someCondition).
action[ match | // perform action ].build
val incrRule = createRule().precondition(someCondition).
lifecycle(ActivationLifecycles.incremental).
action(::Appeared)[
match | // perform action].
action(::Disappeared)[
match | // perform action].
build
Event data
7/22/2015 ICMT 2015, L’Aquila, Italy 6
Query language
Xtend (Java)
pattern someCondition( param1, param2 ) {...}
val rule = createRule().precondition(someCondition).
action[ match | // perform action ].build
val incrRule = createRule().precondition(someCondition).
lifecycle(ActivationLifecycles.incremental).
action(::Appeared)[
match | // perform action].
action(::Disappeared)[
match | // perform action].
build
Language example
Rule specification
7/22/2015 ICMT 2015, L’Aquila, Italy 7
Query language
Xtend (Java)
pattern someCondition( param1, param2 ) {...}
val rule = createRule().precondition(someCondition).
action[ match | // perform action ].build
val incrRule = createRule().precondition(someCondition).
lifecycle(ActivationLifecycles.incremental).
action(::Appeared)[
match | // perform action].
action(::Disappeared)[
match | // perform action].
build
Language example
Observed events
7/22/2015 ICMT 2015, L’Aquila, Italy 8
Query language
Xtend (Java)
pattern someCondition( param1, param2 ) {...}
val rule = createRule().precondition(someCondition).
action[ match | // perform action ].build
val incrRule = createRule().precondition(someCondition).
lifecycle(ActivationLifecycles.incremental).
action(::Appeared)[
match | // perform action].
action(::Disappeared)[
match | // perform action].
build
Language example
Job specification
7/22/2015 ICMT 2015, L’Aquila, Italy 9
Query language
Xtend (Java)
pattern someCondition( param1, param2 ) {...}
val rule = createRule().precondition(someCondition).
action[ match | // perform action ].build
val incrRule = createRule().precondition(someCondition).
lifecycle(ActivationLifecycles.incremental).
action(::Appeared)[
match | // perform action].
action(::Disappeared)[
match | // perform action].
build
Language example
Activation
state-event
transitions
7/22/2015 ICMT 2015, L’Aquila, Italy 10
Query language
Xtend (Java)
pattern someCondition( param1, param2 ) {...}
val rule = createRule().precondition(someCondition).
action[ match | // perform action ].build
val incrRule = createRule().precondition(someCondition).
lifecycle(ActivationLifecycles.incremental).
action(::Appeared)[
match | // perform action].
action(::Disappeared)[
match | // perform action].
build
Language example
Jobs associated
with event types
7/22/2015 ICMT 2015, L’Aquila, Italy 11
Batch transformation
Event-driven transformation
Activation life cycles
Phases
Disabled
Appear
Update
Fire
Disappear
Initial
Enabled
Transitions
Updated
/updateJob
/appearJobAppeared
Disappeared
Fired
/disappearJob
/action
Appeared
Only feature of
event data object
has changed
7/22/2015 ICMT 2015, L’Aquila, Italy 12
Conflict resolution
Multiple actions available
• Different activations in the same rule
• Activations of different rules
Which activation to execute next?
Conflict resolver can be selected
• Global conflict set: deals with all rules
• Scoped conflict set: selected rules
7/22/2015 ICMT 2015, L’Aquila, Italy 13
VIATRA Features
7/22/2015 ICMT 2015, L’Aquila, Italy 14
EMF-IncQuery and VIATRA
EMF-IncQuery
• Latest release 1.0: 2015. 06. 30 (graduation)
• “an incremental model query engine”
New VIATRA
• Latest release 0.7: 2015. 06. 30
• “an event-driven and reactive
model transformation platform”
• High-performance model transformation engine
o built on IncQuery technology
• Unique feature:
o supports batch + incremental transformation
o over a unified virtual machine infrastructure (EVM)
• Full Java and EMF compatibility
• Tightly integrated into Xtend
7/22/2015 ICMT 2015, L’Aquila, Italy 15
But there is more…
Complex Event-Processing Engine
• Specify reactions upon detecting
complex sequences of events
• Xtext based language
Design Space Exploration Framework
• Explore design candidates as models
satisfying multiple criteria
Model obfuscator
• Remove sensitive information from confidential models
Coming soon
• MWE2 integration for transformation chains
• Debugger for reactive transformations
7/22/2015 ICMT 2015, L’Aquila, Italy 16
Evaluation
Performance benchmarks
7/22/2015 ICMT 2015, L’Aquila, Italy 17
Test scenario
Different transformation variants
• Batch
o Simple and optimized
o Plain EMF-IncQuery and VIATRA
• Incremental
o Change monitor based
o EVM: explicit traceability and query
result based (QRT)
o VIATRA: query based
Executions
• First transformation execution
• Small modification + (re)execution
Scale SRC Objects SRC References TRG Objects TRG References Trace Objects Trace References
SUM
Objects
SUM
References
1 395 772 366 736 354 720 1 115 2 228
2 849 1 821 773 1 535 762 1 535 2 384 4 891
4 1 694 4 697 1 534 2 972 1 522 3 056 4 750 10 725
8 3 604 17 111 3 266 6 108 3 254 6 520 10 124 29 739
16 7 820 89 193 7 124 12 395 7 112 14 236 22 056 115 824
32 17 714 594 181 16 308 24 837 16 297 32 605 50 319 651 623
64 43 795 4 424 529 40 960 50 028 40 948 81 908 125 703 4 556 465
Different model scenarios
• Industrial (presented below)
• Client-Server
• Publish-Subscribe
Environment
• New 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
7/22/2015 ICMT 2015, L’Aquila, Italy 18
Runtime for first transformation
Batch IncQuery + Batch VIATRA
are the fastest
Incremental approaches
are within ~200%
Logarithmic scale!
7/22/2015 ICMT 2015, L’Aquila, Italy 19
Modification and second transformation
As expected
incremental transformation
does well in (re)execution
Logarithmic scale!
7/22/2015 ICMT 2015, L’Aquila, Italy 20
Conclusions - New VIATRA
Reactive Model Transformation Platform
Flexibility and wide range of possible applications
Performance and scalability
Internal DSLs and easy integration
7/22/2015 ICMT 2015, L’Aquila, Italy 21
Final points
22
VIATRA
• Version 0.7 is available
• 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
• https://github.com/IncQueryLabs/incquery-examples-cps/
Your contributions (feedback, forum posts, ideas, bugzillas,
patches) are very welcome!
• To what direction should we enhance the demonstrator and the
VIATRA transformation API?
7/22/2015 ICMT 2015, L’Aquila, Italy

Contenu connexe

Tendances

Legion - AI Runtime Platform
Legion -  AI Runtime PlatformLegion -  AI Runtime Platform
Legion - AI Runtime PlatformAlexey Kharlamov
 
Multi runtime serving pipelines for machine learning
Multi runtime serving pipelines for machine learningMulti runtime serving pipelines for machine learning
Multi runtime serving pipelines for machine learningStepan Pushkarev
 
Ml ops deployment choices
Ml ops   deployment choicesMl ops   deployment choices
Ml ops deployment choicesAvinash Patil
 
Dive into POOSL : Simulate your systems!
Dive into POOSL : Simulate your systems!Dive into POOSL : Simulate your systems!
Dive into POOSL : Simulate your systems!Obeo
 
Model versioning done right: A ModelDB 2.0 Walkthrough
Model versioning done right: A ModelDB 2.0 WalkthroughModel versioning done right: A ModelDB 2.0 Walkthrough
Model versioning done right: A ModelDB 2.0 WalkthroughManasi Vartak
 
Magdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine LearningMagdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine LearningLviv Startup Club
 
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformDatabricks
 
Ml ops intro session
Ml ops   intro sessionMl ops   intro session
Ml ops intro sessionAvinash Patil
 
Nasscom ml ops webinar
Nasscom ml ops webinarNasscom ml ops webinar
Nasscom ml ops webinarSameer Mahajan
 
Next18 Extended Targu Mures - Bringing the Cloud to you
Next18 Extended Targu Mures - Bringing the Cloud to youNext18 Extended Targu Mures - Bringing the Cloud to you
Next18 Extended Targu Mures - Bringing the Cloud to youMárton Kodok
 
Blind spots in big data erez koren @ forter
Blind spots in big data erez koren @ forterBlind spots in big data erez koren @ forter
Blind spots in big data erez koren @ forterIdo Shilon
 
Dependency inversion using ports and adapters
Dependency inversion using ports and adaptersDependency inversion using ports and adapters
Dependency inversion using ports and adaptersMahfuzul Haque
 
Continuous Delivery of ML-Enabled Pipelines on Databricks using MLflow
Continuous Delivery of ML-Enabled Pipelines on Databricks using MLflowContinuous Delivery of ML-Enabled Pipelines on Databricks using MLflow
Continuous Delivery of ML-Enabled Pipelines on Databricks using MLflowDatabricks
 
MLOps - Build pipelines with Tensor Flow Extended & Kubeflow
MLOps - Build pipelines with Tensor Flow Extended & KubeflowMLOps - Build pipelines with Tensor Flow Extended & Kubeflow
MLOps - Build pipelines with Tensor Flow Extended & KubeflowJan Kirenz
 
Tech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsTech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsGianmario Spacagna
 
2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...
2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...
2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...eMadrid network
 
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning Models
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning ModelsApache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning Models
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning ModelsAnyscale
 
Google Vertex AI
Google Vertex AIGoogle Vertex AI
Google Vertex AIVikasBisoi
 
Seamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflowSeamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflowDatabricks
 
[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft Azure[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft AzureKorkrid Akepanidtaworn
 

Tendances (20)

Legion - AI Runtime Platform
Legion -  AI Runtime PlatformLegion -  AI Runtime Platform
Legion - AI Runtime Platform
 
Multi runtime serving pipelines for machine learning
Multi runtime serving pipelines for machine learningMulti runtime serving pipelines for machine learning
Multi runtime serving pipelines for machine learning
 
Ml ops deployment choices
Ml ops   deployment choicesMl ops   deployment choices
Ml ops deployment choices
 
Dive into POOSL : Simulate your systems!
Dive into POOSL : Simulate your systems!Dive into POOSL : Simulate your systems!
Dive into POOSL : Simulate your systems!
 
Model versioning done right: A ModelDB 2.0 Walkthrough
Model versioning done right: A ModelDB 2.0 WalkthroughModel versioning done right: A ModelDB 2.0 Walkthrough
Model versioning done right: A ModelDB 2.0 Walkthrough
 
Magdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine LearningMagdalena Stenius: MLOPS Will Change Machine Learning
Magdalena Stenius: MLOPS Will Change Machine Learning
 
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
 
Ml ops intro session
Ml ops   intro sessionMl ops   intro session
Ml ops intro session
 
Nasscom ml ops webinar
Nasscom ml ops webinarNasscom ml ops webinar
Nasscom ml ops webinar
 
Next18 Extended Targu Mures - Bringing the Cloud to you
Next18 Extended Targu Mures - Bringing the Cloud to youNext18 Extended Targu Mures - Bringing the Cloud to you
Next18 Extended Targu Mures - Bringing the Cloud to you
 
Blind spots in big data erez koren @ forter
Blind spots in big data erez koren @ forterBlind spots in big data erez koren @ forter
Blind spots in big data erez koren @ forter
 
Dependency inversion using ports and adapters
Dependency inversion using ports and adaptersDependency inversion using ports and adapters
Dependency inversion using ports and adapters
 
Continuous Delivery of ML-Enabled Pipelines on Databricks using MLflow
Continuous Delivery of ML-Enabled Pipelines on Databricks using MLflowContinuous Delivery of ML-Enabled Pipelines on Databricks using MLflow
Continuous Delivery of ML-Enabled Pipelines on Databricks using MLflow
 
MLOps - Build pipelines with Tensor Flow Extended & Kubeflow
MLOps - Build pipelines with Tensor Flow Extended & KubeflowMLOps - Build pipelines with Tensor Flow Extended & Kubeflow
MLOps - Build pipelines with Tensor Flow Extended & Kubeflow
 
Tech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning productsTech leaders guide to effective building of machine learning products
Tech leaders guide to effective building of machine learning products
 
2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...
2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...
2012 04-18 (educon2012) emadrid uned on design remote laboratories study lab ...
 
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning Models
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning ModelsApache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning Models
Apache ® Spark™ MLlib 2.x: How to Productionize your Machine Learning Models
 
Google Vertex AI
Google Vertex AIGoogle Vertex AI
Google Vertex AI
 
Seamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflowSeamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflow
 
[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft Azure[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft Azure
 

Similaire à VIATRA 3: A Reactive Model Transformation Platform

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
 
QtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with QtQtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with QtJohan Thelin
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesKonveyor Community
 
PyData NYC 2015 Presentation
PyData NYC 2015 PresentationPyData NYC 2015 Presentation
PyData NYC 2015 Presentationviz4biz
 
Building a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAPBuilding a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAPMagnolia
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma
 
Decreasing your Coffe Consumption by Incremental Code regeneration
Decreasing your Coffe Consumption by Incremental Code regenerationDecreasing your Coffe Consumption by Incremental Code regeneration
Decreasing your Coffe Consumption by Incremental Code regenerationÁkos Horváth
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Johan Thelin
 
Combinação de logs, métricas e rastreamentos para observabilidade unificada
Combinação de logs, métricas e rastreamentos para observabilidade unificadaCombinação de logs, métricas e rastreamentos para observabilidade unificada
Combinação de logs, métricas e rastreamentos para observabilidade unificadaElasticsearch
 
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...WSO2
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityNGINX, Inc.
 
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 projectNieves Salor
 
IBM Monitoring and Event Management Solutions
IBM Monitoring and Event Management SolutionsIBM Monitoring and Event Management Solutions
IBM Monitoring and Event Management SolutionsIBM Danmark
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesJudy Breedlove
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...Lightbend
 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Adrian Cockcroft
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfWeaveworks
 
Accelerating the development of AI-enabled Digital Twins.pptx
Accelerating the development of AI-enabled Digital Twins.pptxAccelerating the development of AI-enabled Digital Twins.pptx
Accelerating the development of AI-enabled Digital Twins.pptxAntonino Sirchia
 
[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices ArchitectureWSO2
 

Similaire à VIATRA 3: A Reactive Model Transformation Platform (20)

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
 
QtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with QtQtWS15 Revolutionizing Automotive with Qt
QtWS15 Revolutionizing Automotive with Qt
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetes
 
PyData NYC 2015 Presentation
PyData NYC 2015 PresentationPyData NYC 2015 Presentation
PyData NYC 2015 Presentation
 
Building a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAPBuilding a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAP
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
 
Decreasing your Coffe Consumption by Incremental Code regeneration
Decreasing your Coffe Consumption by Incremental Code regenerationDecreasing your Coffe Consumption by Incremental Code regeneration
Decreasing your Coffe Consumption by Incremental Code regeneration
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017
 
Combinação de logs, métricas e rastreamentos para observabilidade unificada
Combinação de logs, métricas e rastreamentos para observabilidade unificadaCombinação de logs, métricas e rastreamentos para observabilidade unificada
Combinação de logs, métricas e rastreamentos para observabilidade unificada
 
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
 
Manage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with ObservabilityManage Microservices Chaos and Complexity with Observability
Manage Microservices Chaos and Complexity with Observability
 
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
 
IBM Monitoring and Event Management Solutions
IBM Monitoring and Event Management SolutionsIBM Monitoring and Event Management Solutions
IBM Monitoring and Event Management Solutions
 
Starwest 2011
Starwest 2011Starwest 2011
Starwest 2011
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob Davies
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
Accelerating the development of AI-enabled Digital Twins.pptx
Accelerating the development of AI-enabled Digital Twins.pptxAccelerating the development of AI-enabled Digital Twins.pptx
Accelerating the development of AI-enabled Digital Twins.pptx
 
[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture[Workshop] API Management in Microservices Architecture
[Workshop] API Management in Microservices Architecture
 

Plus de Ábel Hegedüs

Patching the gap in collaborating on models
Patching the gap in collaborating on modelsPatching the gap in collaborating on models
Patching the gap in collaborating on modelsÁbel Hegedüs
 
Query-driven soft interconnection of EMF models
Query-driven soft interconnection of EMF modelsQuery-driven soft interconnection of EMF models
Query-driven soft interconnection of EMF modelsÁbel Hegedüs
 
Model-driven framework for Guided Design Space Exploration presented at ASE 2011
Model-driven framework for Guided Design Space Exploration presented at ASE 2011Model-driven framework for Guided Design Space Exploration presented at ASE 2011
Model-driven framework for Guided Design Space Exploration presented at ASE 2011Ábel Hegedüs
 
Quick fix generation for DSMLs
Quick fix generation for DSMLsQuick fix generation for DSMLs
Quick fix generation for DSMLsÁbel Hegedüs
 
Guided Trajectory Exploration of GT systems presented at PNGT 2010
Guided Trajectory Exploration of GT systems presented at PNGT 2010Guided Trajectory Exploration of GT systems presented at PNGT 2010
Guided Trajectory Exploration of GT systems presented at PNGT 2010Ábel Hegedüs
 
Back-annotation of Simulation Traces with Change-Driven Model Transformations
Back-annotation of Simulation Traces with Change-Driven Model TransformationsBack-annotation of Simulation Traces with Change-Driven Model Transformations
Back-annotation of Simulation Traces with Change-Driven Model TransformationsÁbel Hegedüs
 

Plus de Ábel Hegedüs (6)

Patching the gap in collaborating on models
Patching the gap in collaborating on modelsPatching the gap in collaborating on models
Patching the gap in collaborating on models
 
Query-driven soft interconnection of EMF models
Query-driven soft interconnection of EMF modelsQuery-driven soft interconnection of EMF models
Query-driven soft interconnection of EMF models
 
Model-driven framework for Guided Design Space Exploration presented at ASE 2011
Model-driven framework for Guided Design Space Exploration presented at ASE 2011Model-driven framework for Guided Design Space Exploration presented at ASE 2011
Model-driven framework for Guided Design Space Exploration presented at ASE 2011
 
Quick fix generation for DSMLs
Quick fix generation for DSMLsQuick fix generation for DSMLs
Quick fix generation for DSMLs
 
Guided Trajectory Exploration of GT systems presented at PNGT 2010
Guided Trajectory Exploration of GT systems presented at PNGT 2010Guided Trajectory Exploration of GT systems presented at PNGT 2010
Guided Trajectory Exploration of GT systems presented at PNGT 2010
 
Back-annotation of Simulation Traces with Change-Driven Model Transformations
Back-annotation of Simulation Traces with Change-Driven Model TransformationsBack-annotation of Simulation Traces with Change-Driven Model Transformations
Back-annotation of Simulation Traces with Change-Driven Model Transformations
 

Dernier

Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 

Dernier (20)

2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 

VIATRA 3: A Reactive Model Transformation Platform

  • 1. VIATRA 3: A Reactive Model Transformation Platform Gábor Bergmann, István Dávid, Ábel Hegedüs, Ákos Horváth, István Ráth, Zoltán Ujhelyi and Dániel Varró IncQuery Labs Ltd. Budapest University of Technology and Economics University of Antwerp 7/22/2015 ICMT 2015, L’Aquila, Italy 1
  • 2. Reactive model-driven applications Interference between functions Commonalities • Queries, rules, scheduling, conflicts User interaction (modify) SRC TRG Batch transformation Incremental transformation Live validation Live views Derived features 7/22/2015 ICMT 2015, L’Aquila, Italy 2
  • 3. Separation of concerns Reactive Transformation Framework Observed events Controlled events Actions What has changed? When to react? Perform in consistent state 7/22/2015 ICMT 2015, L’Aquila, Italy 3
  • 4. Examples of events and actions Reactive Transformation Framework Observed events Controlled events Actions • Model modified • Match appeared • Event sequence identified • „Run” button pushed • Consistent state reached after editing • Transaction committed • Modify model • Add error marker • Update view • Send e-mail 7/22/2015 ICMT 2015, L’Aquila, Italy 4
  • 5. Main concepts Reactive Transformation Framework Observed events Controlled events Actions • Event source • Event occurrence (type, data) • Life cycle • Jobs • Scheduler Rule specifications • Agenda • Executor • Conflict resolver 7/22/2015 ICMT 2015, L’Aquila, Italy 5
  • 6. Query language Xtend (Java) Language example pattern someCondition( param1, param2 ) {...} val rule = createRule().precondition(someCondition). action[ match | // perform action ].build val incrRule = createRule().precondition(someCondition). lifecycle(ActivationLifecycles.incremental). action(::Appeared)[ match | // perform action]. action(::Disappeared)[ match | // perform action]. build Event data 7/22/2015 ICMT 2015, L’Aquila, Italy 6
  • 7. Query language Xtend (Java) pattern someCondition( param1, param2 ) {...} val rule = createRule().precondition(someCondition). action[ match | // perform action ].build val incrRule = createRule().precondition(someCondition). lifecycle(ActivationLifecycles.incremental). action(::Appeared)[ match | // perform action]. action(::Disappeared)[ match | // perform action]. build Language example Rule specification 7/22/2015 ICMT 2015, L’Aquila, Italy 7
  • 8. Query language Xtend (Java) pattern someCondition( param1, param2 ) {...} val rule = createRule().precondition(someCondition). action[ match | // perform action ].build val incrRule = createRule().precondition(someCondition). lifecycle(ActivationLifecycles.incremental). action(::Appeared)[ match | // perform action]. action(::Disappeared)[ match | // perform action]. build Language example Observed events 7/22/2015 ICMT 2015, L’Aquila, Italy 8
  • 9. Query language Xtend (Java) pattern someCondition( param1, param2 ) {...} val rule = createRule().precondition(someCondition). action[ match | // perform action ].build val incrRule = createRule().precondition(someCondition). lifecycle(ActivationLifecycles.incremental). action(::Appeared)[ match | // perform action]. action(::Disappeared)[ match | // perform action]. build Language example Job specification 7/22/2015 ICMT 2015, L’Aquila, Italy 9
  • 10. Query language Xtend (Java) pattern someCondition( param1, param2 ) {...} val rule = createRule().precondition(someCondition). action[ match | // perform action ].build val incrRule = createRule().precondition(someCondition). lifecycle(ActivationLifecycles.incremental). action(::Appeared)[ match | // perform action]. action(::Disappeared)[ match | // perform action]. build Language example Activation state-event transitions 7/22/2015 ICMT 2015, L’Aquila, Italy 10
  • 11. Query language Xtend (Java) pattern someCondition( param1, param2 ) {...} val rule = createRule().precondition(someCondition). action[ match | // perform action ].build val incrRule = createRule().precondition(someCondition). lifecycle(ActivationLifecycles.incremental). action(::Appeared)[ match | // perform action]. action(::Disappeared)[ match | // perform action]. build Language example Jobs associated with event types 7/22/2015 ICMT 2015, L’Aquila, Italy 11
  • 12. Batch transformation Event-driven transformation Activation life cycles Phases Disabled Appear Update Fire Disappear Initial Enabled Transitions Updated /updateJob /appearJobAppeared Disappeared Fired /disappearJob /action Appeared Only feature of event data object has changed 7/22/2015 ICMT 2015, L’Aquila, Italy 12
  • 13. Conflict resolution Multiple actions available • Different activations in the same rule • Activations of different rules Which activation to execute next? Conflict resolver can be selected • Global conflict set: deals with all rules • Scoped conflict set: selected rules 7/22/2015 ICMT 2015, L’Aquila, Italy 13
  • 14. VIATRA Features 7/22/2015 ICMT 2015, L’Aquila, Italy 14
  • 15. EMF-IncQuery and VIATRA EMF-IncQuery • Latest release 1.0: 2015. 06. 30 (graduation) • “an incremental model query engine” New VIATRA • Latest release 0.7: 2015. 06. 30 • “an event-driven and reactive model transformation platform” • High-performance model transformation engine o built on IncQuery technology • Unique feature: o supports batch + incremental transformation o over a unified virtual machine infrastructure (EVM) • Full Java and EMF compatibility • Tightly integrated into Xtend 7/22/2015 ICMT 2015, L’Aquila, Italy 15
  • 16. But there is more… Complex Event-Processing Engine • Specify reactions upon detecting complex sequences of events • Xtext based language Design Space Exploration Framework • Explore design candidates as models satisfying multiple criteria Model obfuscator • Remove sensitive information from confidential models Coming soon • MWE2 integration for transformation chains • Debugger for reactive transformations 7/22/2015 ICMT 2015, L’Aquila, Italy 16
  • 18. Test scenario Different transformation variants • Batch o Simple and optimized o Plain EMF-IncQuery and VIATRA • Incremental o Change monitor based o EVM: explicit traceability and query result based (QRT) o VIATRA: query based Executions • First transformation execution • Small modification + (re)execution Scale SRC Objects SRC References TRG Objects TRG References Trace Objects Trace References SUM Objects SUM References 1 395 772 366 736 354 720 1 115 2 228 2 849 1 821 773 1 535 762 1 535 2 384 4 891 4 1 694 4 697 1 534 2 972 1 522 3 056 4 750 10 725 8 3 604 17 111 3 266 6 108 3 254 6 520 10 124 29 739 16 7 820 89 193 7 124 12 395 7 112 14 236 22 056 115 824 32 17 714 594 181 16 308 24 837 16 297 32 605 50 319 651 623 64 43 795 4 424 529 40 960 50 028 40 948 81 908 125 703 4 556 465 Different model scenarios • Industrial (presented below) • Client-Server • Publish-Subscribe Environment • New 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 7/22/2015 ICMT 2015, L’Aquila, Italy 18
  • 19. Runtime for first transformation Batch IncQuery + Batch VIATRA are the fastest Incremental approaches are within ~200% Logarithmic scale! 7/22/2015 ICMT 2015, L’Aquila, Italy 19
  • 20. Modification and second transformation As expected incremental transformation does well in (re)execution Logarithmic scale! 7/22/2015 ICMT 2015, L’Aquila, Italy 20
  • 21. Conclusions - New VIATRA Reactive Model Transformation Platform Flexibility and wide range of possible applications Performance and scalability Internal DSLs and easy integration 7/22/2015 ICMT 2015, L’Aquila, Italy 21
  • 22. Final points 22 VIATRA • Version 0.7 is available • 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 • https://github.com/IncQueryLabs/incquery-examples-cps/ Your contributions (feedback, forum posts, ideas, bugzillas, patches) are very welcome! • To what direction should we enhance the demonstrator and the VIATRA transformation API? 7/22/2015 ICMT 2015, L’Aquila, Italy

Notes de l'éditeur

  1. 6 minutes