SlideShare a Scribd company logo
1 of 36
Download to read offline
Budapest University of Technology and Economics
Department of Measurement and Information Systems
Budapest University of
Technology and Economics
Fault Tolerant Systems
Research Group
McGill University
Department of Mechanical
and Electrical Engineering
MTA-BME Cyber-Physical
Systems Research Group
Incremental View Model Synchronization
Using Partial Models
Kristóf Marussy, Oszkár Semeráth, Dániel Varró
1
View transformation
 (Forward) view transformation
o Derives a target model as an abstraction of a set of source models
o Target model is a function of the source models
 View definition
o Consistency relation between the source and target models
captured as a set of forward transformation rules
2
Src
Trg
= tr(Src)
Trace
Typically loses information
Compositionality of view transformations
 Compositional view transformation definitions
o Reuse existing view transformation definitions in new transformations
3
 Sequential composition
o Supported by most transformation
languages and engines
 Parallel composition
o Often limited
Src tr1 Int tr2 Trg Src
tr1
tr2
Trg
Merge
information
from both
views
Intermediate model
Compositionality of view transformations
 Compositional view transformation definitions
o Reuse existing view transformation definitions in new transformations
4
 Sequential composition
o Supported by most transformation
languages and engines
 Parallel composition
o Often limited
Src tr1 Int tr2 Trg Src
tr1
tr2
Trg
Merge
information
from both
views
Intermediate model
Motivation: Deriving stochastic Petri net analysis models for
dependability evaluation of critical embedded automotive systems
in an industrial collaboration:
• What is the mean-time-to-first-failure in the system?
• What is the probability of the different hazards?
• Which architecture candidate is the most reliable?
Transformations for different aspects of the system were created
individually, and composed in parallel to derive
the complete analysis model.
Example: View transformations
 Multiple views for
different aspects of the
source model
5
sp1:
SwPos
sp2:
SwPos
r1:
Route
r2:
Route
sw: Switch
1
1
0
0
1
0
Rail
PetriNet
Partially described
element (fragment)
Petri net for fault
propagation
Structure model adapted
from the open source
Train Benchmark framework
Example: View transformations
sp1:
SwPos
sp2:
SwPos
r1:
Route
r2:
Route
sw: Switch
Rail
6
ma: Failure
RepairModel
mb: Immed
RepairModel
mc: Immed
RepairModel
Dep
PetriNet
Partially described
element (fragment)
Petri net for local
error models
Dependability
model describing
the failure and
repair processes of
components
 Multiple views for
different aspects of the
source model
Example: Fully compositional view transformations
7
sp1:
SwPos
sp2:
SwPos
r1:
Route
r2:
Route
sw: Switch
ma: Failure
RepairModel
Rail
mb: Immed
RepairModel
mc: Immed
RepairModel
Dep
PetriNet
g
 Multiple views for
different aspects of the
source model
 Merge information
from multiple targets
o Glue g identifies
elements to be merged
Example: Fully compositional view transformations
 Multiple views for
different aspects of the
source model
 Merge information
from multiple targets
o Glue g identifies
elements to be merged
 Fully compositional:
tr1 and tr2
does not need to be
re-engineered
8
sp1:
SwPos
sp2:
SwPos
r1:
Route
r2:
Route
sw: Switch
ma: Failure
RepairModel
1
1
0
0
1
0
Rail
mb: Immed
RepairModel
mc: Immed
RepairModel
Dep
PetriNet
g
PetriNet = tr1‖gtr2(Rail, Dep)
Overview
• Fully compositional
• Expressive (FOL)
View
Transformation
Language
• Reactive
• Incremental
• Inconsistency-tolerant
• Validating
View
Transformation
Engine
9
A fully compositional view definition language
 Explicitly reuses the VIATRA Query language
o precondition patterns
o postcondition templates
 Templates: conjunction of atomic statements
mapping qRoute(_) => placeTemplate(_);
mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) {
lookup qRoute(R) => (P);
lookup qSwitchPos(Sp) => (P, _); }
10
A fully compositional view definition language
 Explicitly reuses the VIATRA Query language
o precondition patterns
o postcondition templates
 Templates: conjunction of atomic statements
mapping qRoute(_) => placeTemplate(_);
mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) {
lookup qRoute(R) => (P);
lookup qSwitchPos(Sp) => (P, _); }
11
Precondition pattern
pattern qRoute(R) {
Route(R);
}
Postcondition template
pattern placeTemplate(P) {
Place(P);
}
A fully compositional view definition language
 Explicitly reuses the VIATRA Query language
o precondition patterns
o postcondition templates
 Templates: conjunction of atomic statements
mapping qRoute(_) => placeTemplate(_);
mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) {
lookup qRoute(R) => (P);
lookup qSwitchPos(Sp) => (P, _); }
12
Precondition pattern
pattern qSwitchPos(Sp) {
SwPos(R);
}
Postcondition template
pattern arcTemplate(P, A) {
Arc(A);
Place.arcs(P, A);
}
A fully compositional view definition language
 Explicitly reuses the VIATRA Query language
o precondition patterns
o postcondition templates
 Templates: conjunction of atomic statements
mapping qRoute(_) => placeTemplate(_);
mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) {
lookup qRoute(R) => (P);
lookup qSwitchPos(Sp) => (P, _); }
13
Glue precondition pattern
pattern qFollows(R, Sp) {
Route.follows(R, Sp);
} Merging by Prolog-style
variable unification
Trace lookup
Overview
• Fully compositional
• Expressive (FOL)
View
Transformation
Language
• Reactive
• Incremental
• Inconsistency-tolerant
• Validating
View
Transformation
Engine
14
Incremental forward transformation
15
Src TrgTrace
Src’ Trg’Trace’
Source change (delta)
Incremental forward transformation
16
Src TrgTrace
Src’ Trg’Trace’
Source change (delta) Target change (delta)
Incremental forward transformation
17
Src TrgTrace
Src’ Trg’Trace’
Source incremental:
Only processes
the changes in Src’
Reactive: may be
executed in response
to the change
Target incremental:
target change (delta)
applied without fully
recomputing Trg’
Consistent forward transformation
18
Src TrgTrace
Src’ Trg’Trace’
Consistent transformation:
maintains the consistency relation
according to the view definition
= tr(Src)
= tr(Src’)
Inconsistent forward transformation
19
Src TrgTrace
Src’ Trg’Trace’
Inconsistent transformation:
may fail to maintain the
consistency relation
= tr(Src)
≠ tr(Src’)
Validating forward transformation
20
Src TrgTrace
Src’ Trg’Trace’
Validating transformation:
maintains the target
enforced metamodel constraints
⊨ MM
⊨ MM
These are enforced by a modeling technology
and may prevent storing a model, e.g.:
• Type hierarchy and compliance
• Upper multiplicity (1 vs *)
• Inverse (opposite) relations
• Containment hierarchy
Non-validating forward transformation
21
Src TrgTrace
Src’ Trg’Trace’
Non-validating transformation:
may compromise
enforced metamodel constraints
to ensure consistency
⊨ MM
⊭ MM
Desired properties at odds
22
Consistent
Fully
compositional
Validating
No transformation engine
for a sufficiently expressive,
fully compositional
language can be both
consistent and validating
Desired properties at odds
23
Inconsistency-
tolerant
Fully
compositional
Validating
No transformation engine
for a sufficiently expressive,
fully compositional
language can be both
consistent and validating
• Replace consistency with explicit
inconsistency-tolerance
• Reason about consistency violations
• Try to maintain a maximal valid fragment
of the consistent target model
Inconsistency-tolerant models: Belnap-Dunn logic
 4-valued first-order logical structure: para-consistent partial model
o 〚Classi(o1)〛∈ {0, 1, ½, ⚡} – object classification
o 〚Classi.Referencej(o1, o2)〛∈ {0, 1, ½, ⚡} – references
o 〚o1 ∼ o2〛∈ {0, 1, ½, ⚡} – object equivalence
24
o1
Tran = 1
TimedTran = 1
o2
Tran = ½
TimedTran = 0
∼
= 1
o3
Arc = 1
arcs = 1
Equivalence relation
allows merging objects
o1
Tran = 1
TimedTran = ⚡
o3
Arc = 1
Represent the
same model
arcs = 1
Inconsistency-tolerant models: Belnap-Dunn logic
 4-valued first-order logical structure: para-consistent partial model
o 〚Classi(o1)〛∈ {0, 1, ½, ⚡} – object classification
o 〚Classi.Referencej(o1, o2)〛∈ {0, 1, ½, ⚡} – references
o 〚o1 ∼ o2〛∈ {0, 1, ½, ⚡} – object equivalence
25
o1
Tran = 1
TimedTran = 1
o2
Tran = ½
TimedTran = 0
∼
= 1
o3
Arc = 1
arcs = 1
Equivalence relation
allows merging objects
Represent the
same model
o1
Tran = 1
TimedTran = ⚡
o3
Arc = 1
Inconsistent information
arcs = 1
Transformation execution with 4-valued models
Derive
4-valued
partial model
• Apply
transformation
rules
Propagate
• Inconsistency-
tolerant
inference
Concretize
• Remove
inconsistent
elements
Materialize
• Construct
target model
26
Derive 4-valued partial models
 For each precondition match, atomic statements from the
postcondition template are incorporated into the 4-valued model
mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); }
sp1:
SwPos
r1:
Route
r2:
Route
Rail PN
Initially all
aspects
of the target
model are
unknown ½
Derive
4-valued
partial model
Propagate Concretize Materialize
27
Derive 4-valued partial models
 For each precondition match, atomic statements from the
postcondition template are incorporated into the 4-valued model
mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); }
sp1:
SwPos
r1:
Route
r2:
Route
Rail
o1
Place = 1
o2
Place = 1
PN
Realized as a
reactive,
incremental
(imperative)
VIATRA
transformation
Derive
4-valued
partial model
Propagate Concretize Materialize
28
Derive 4-valued partial models
 For each precondition match, atomic statements from the
postcondition template are incorporated into the 4-valued model
mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); }
sp1:
SwPos
r1:
Route
r2:
Route
Rail o4
Arc = 1
o1
Place = 1
o2
Place = 1
o3
arcs = 1 PN
Realized as a
reactive,
incremental
(imperative)
VIATRA
transformation
Derive
4-valued
partial model
Propagate Concretize Materialize
29
Derive 4-valued partial models
 For each precondition match, atomic statements from the
postcondition template are incorporated into the 4-valued model
mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _);
mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); }
sp1:
SwPos
r1:
Route
r2:
Route
Rail o4
Arc = 1
o1
Place = 1
o2
Place = 1
o3
arcs = 1
∼ = 1
PN
Equivalence
edge ∼
responsible
for merging
objects
Derive
4-valued
partial model
Propagate Concretize Materialize
30
Propagation and concretization
 We turned enforced metamodel constraints into
propagation (inference) rules applied to the 4-valued model
o E.g.,
1⊑ 𝐶𝑙𝑎𝑠𝑠1 𝑜 , 𝐶𝑙𝑎𝑠𝑠1 𝑖𝑠 𝑎 𝑠𝑢𝑏𝑐𝑙𝑎𝑠𝑠 𝑜𝑓 𝐶𝑙𝑎𝑠𝑠2
1⊑ 𝐶𝑙𝑎𝑠𝑠2(𝑜)
o Unsatisfied constraints are discovered as ⚡ inconsistencies
Derive
4-valued
partial model
Propagate Concretize Materialize
31
Propagation and concretization
 We turned enforced metamodel constraints into
propagation (inference) rules applied to the 4-valued model
o E.g.,
1⊑ 𝐶𝑙𝑎𝑠𝑠1 𝑜 , 𝐶𝑙𝑎𝑠𝑠1 𝑖𝑠 𝑎 𝑠𝑢𝑏𝑐𝑙𝑎𝑠𝑠 𝑜𝑓 𝐶𝑙𝑎𝑠𝑠2
1⊑ 𝐶𝑙𝑎𝑠𝑠2(𝑜)
o Unsatisfied constraints are discovered as ⚡ inconsistencies
 Concretize the 4-valued partial model to {0, 1} truth values only
o Monotonicity of enforced metamodel constraints
 constraints can be satisfied by omitting inconsistent objects
o No extraneous output: Set all unknown ½ values to 0
o No invalid output: Remove all inconsistent ⚡ elements
Derive
4-valued
partial model
Propagate Concretize Materialize
32
Incremental materialization
 Materialization constructs a regular instance model according to the
concretized partial model
o The output model contains all information from the consistent target model,
except the elements that would violate enforced metamodel constraints
 Propagation, concretization and materialization steps are
implemented as incremental, reactive VIATRA transformations
o Together with the 4-valued model construction steps,
end-to-end traceability and reactive execution is provided
Derive
4-valued
partial model
Propagate Concretize Materialize
33
Evaluation
 Compared transformation execution in two case studies
o Dependability model
• “Compiler” behavior, target model 3x larger than source
• Up to 25K source, 72K target objects
o Filtering and aggregation
• “Abstraction” behavior, source 500x larger than target model
• Up to 425K source, 9K target objects
 Baseline: two styles of hand-written (imperative)
VIATRA transformation
34
Evaluation
 In both cases, our engine was
1-2 orders of magnitude slower than
hand-written (imperative) VIATRA
transformations
o Up to 26.7 sec vs 0.48 sec initial
o Up to 94 sec vs 0.2 sec incremental
• Propagate 100 source modifications
 However, with our engine,
transformations did not have to be
re-engineered for composition!
35
Summary
36
https://github.com/FTSRG/viewmodel

More Related Content

What's hot

Libxc a library of exchange and correlation functionals
Libxc a library of exchange and correlation functionalsLibxc a library of exchange and correlation functionals
Libxc a library of exchange and correlation functionalsABDERRAHMANE REGGAD
 
A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...
A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...
A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...IOSR Journals
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Functional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPCFunctional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPCNadav Samet
 
Customization of LES turbulence model in OpenFOAM
Customization of LES turbulence	 model in OpenFOAMCustomization of LES turbulence	 model in OpenFOAM
Customization of LES turbulence model in OpenFOAMmmer547
 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksEelco Visser
 
Data assimilation with OpenDA
Data assimilation with OpenDAData assimilation with OpenDA
Data assimilation with OpenDAnilsvanvelzen
 
17CS52: Computer Networks
 17CS52: Computer Networks  17CS52: Computer Networks
17CS52: Computer Networks k pavitra kini
 
Efficient Design of Reversible Multiplexers with Low Quantum Cost
Efficient Design of Reversible Multiplexers with Low Quantum CostEfficient Design of Reversible Multiplexers with Low Quantum Cost
Efficient Design of Reversible Multiplexers with Low Quantum CostIJERA Editor
 
Liszt los alamos national laboratory Aug 2011
Liszt los alamos national laboratory Aug 2011Liszt los alamos national laboratory Aug 2011
Liszt los alamos national laboratory Aug 2011Ed Dodds
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoJoel Falcou
 
Os Reindersfinal
Os ReindersfinalOs Reindersfinal
Os Reindersfinaloscon2007
 

What's hot (13)

Libxc a library of exchange and correlation functionals
Libxc a library of exchange and correlation functionalsLibxc a library of exchange and correlation functionals
Libxc a library of exchange and correlation functionals
 
A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...
A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...
A Novel Flipflop Topology for High Speed and Area Efficient Logic Structure D...
 
Poster rga
Poster rgaPoster rga
Poster rga
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
Functional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPCFunctional, Type-safe, Testable Microservices with ZIO and gRPC
Functional, Type-safe, Testable Microservices with ZIO and gRPC
 
Customization of LES turbulence model in OpenFOAM
Customization of LES turbulence	 model in OpenFOAMCustomization of LES turbulence	 model in OpenFOAM
Customization of LES turbulence model in OpenFOAM
 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone Frameworks
 
Data assimilation with OpenDA
Data assimilation with OpenDAData assimilation with OpenDA
Data assimilation with OpenDA
 
17CS52: Computer Networks
 17CS52: Computer Networks  17CS52: Computer Networks
17CS52: Computer Networks
 
Efficient Design of Reversible Multiplexers with Low Quantum Cost
Efficient Design of Reversible Multiplexers with Low Quantum CostEfficient Design of Reversible Multiplexers with Low Quantum Cost
Efficient Design of Reversible Multiplexers with Low Quantum Cost
 
Liszt los alamos national laboratory Aug 2011
Liszt los alamos national laboratory Aug 2011Liszt los alamos national laboratory Aug 2011
Liszt los alamos national laboratory Aug 2011
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.Proto
 
Os Reindersfinal
Os ReindersfinalOs Reindersfinal
Os Reindersfinal
 

Similar to Incremental View Model Synchronization Using Partial Models

A Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMinerA Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMinerRothamsted Research, UK
 
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_schoolHenry Muccini
 
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 CloudSERENEWorkshop
 
Roberto Trasarti PhD Thesis
Roberto Trasarti PhD ThesisRoberto Trasarti PhD Thesis
Roberto Trasarti PhD ThesisRoberto Trasarti
 
129966863002202240[1]
129966863002202240[1]129966863002202240[1]
129966863002202240[1]威華 王
 
Syntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service ArchitecturesSyntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service ArchitecturesMartin Szomszor
 
CFD Cornell Energy Workshop - M.F. Campuzano Ochoa
CFD Cornell Energy Workshop - M.F. Campuzano OchoaCFD Cornell Energy Workshop - M.F. Campuzano Ochoa
CFD Cornell Energy Workshop - M.F. Campuzano OchoaMario Felipe Campuzano Ochoa
 
TMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemTMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemIosif Itkin
 
Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...
Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...
Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...Cemal Ardil
 
The Semantics of SPARQL
The Semantics of SPARQLThe Semantics of SPARQL
The Semantics of SPARQLOlaf Hartig
 
Modeling of Granular Mixing using Markov Chains and the Discrete Element Method
Modeling of Granular Mixing using Markov Chains and the Discrete Element MethodModeling of Granular Mixing using Markov Chains and the Discrete Element Method
Modeling of Granular Mixing using Markov Chains and the Discrete Element Methodjodoua
 
JavaScript Objects
JavaScript ObjectsJavaScript Objects
JavaScript ObjectsReem Alattas
 
Mining group correlations over data streams
Mining group correlations over data streamsMining group correlations over data streams
Mining group correlations over data streamsyuanchung
 
Continuous Systems To Discrete Event Systems
Continuous Systems To Discrete Event SystemsContinuous Systems To Discrete Event Systems
Continuous Systems To Discrete Event Systemsahmad bassiouny
 
Vlsiexpt 11 12
Vlsiexpt 11 12Vlsiexpt 11 12
Vlsiexpt 11 12JINCY Soju
 

Similar to Incremental View Model Synchronization Using Partial Models (20)

Simulation Software Performances And Examples
Simulation Software Performances And ExamplesSimulation Software Performances And Examples
Simulation Software Performances And Examples
 
A Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMinerA Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMiner
 
Query trees
Query treesQuery trees
Query trees
 
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
 
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
 
Roberto Trasarti PhD Thesis
Roberto Trasarti PhD ThesisRoberto Trasarti PhD Thesis
Roberto Trasarti PhD Thesis
 
129966863002202240[1]
129966863002202240[1]129966863002202240[1]
129966863002202240[1]
 
3DRepo
3DRepo3DRepo
3DRepo
 
Syntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service ArchitecturesSyntactic Mediation in Grid and Web Service Architectures
Syntactic Mediation in Grid and Web Service Architectures
 
MLMM_16_08_2022.pdf
MLMM_16_08_2022.pdfMLMM_16_08_2022.pdf
MLMM_16_08_2022.pdf
 
CFD Cornell Energy Workshop - M.F. Campuzano Ochoa
CFD Cornell Energy Workshop - M.F. Campuzano OchoaCFD Cornell Energy Workshop - M.F. Campuzano Ochoa
CFD Cornell Energy Workshop - M.F. Campuzano Ochoa
 
TMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemTMPA-2015: Implementing the MetaVCG Approach in the C-light System
TMPA-2015: Implementing the MetaVCG Approach in the C-light System
 
Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...
Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...
Conventional and-pso-based-approaches-for-model-reduction-of-siso-discrete-sy...
 
CBRP
CBRPCBRP
CBRP
 
The Semantics of SPARQL
The Semantics of SPARQLThe Semantics of SPARQL
The Semantics of SPARQL
 
Modeling of Granular Mixing using Markov Chains and the Discrete Element Method
Modeling of Granular Mixing using Markov Chains and the Discrete Element MethodModeling of Granular Mixing using Markov Chains and the Discrete Element Method
Modeling of Granular Mixing using Markov Chains and the Discrete Element Method
 
JavaScript Objects
JavaScript ObjectsJavaScript Objects
JavaScript Objects
 
Mining group correlations over data streams
Mining group correlations over data streamsMining group correlations over data streams
Mining group correlations over data streams
 
Continuous Systems To Discrete Event Systems
Continuous Systems To Discrete Event SystemsContinuous Systems To Discrete Event Systems
Continuous Systems To Discrete Event Systems
 
Vlsiexpt 11 12
Vlsiexpt 11 12Vlsiexpt 11 12
Vlsiexpt 11 12
 

Recently uploaded

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Incremental View Model Synchronization Using Partial Models

  • 1. Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault Tolerant Systems Research Group McGill University Department of Mechanical and Electrical Engineering MTA-BME Cyber-Physical Systems Research Group Incremental View Model Synchronization Using Partial Models Kristóf Marussy, Oszkár Semeráth, Dániel Varró 1
  • 2. View transformation  (Forward) view transformation o Derives a target model as an abstraction of a set of source models o Target model is a function of the source models  View definition o Consistency relation between the source and target models captured as a set of forward transformation rules 2 Src Trg = tr(Src) Trace Typically loses information
  • 3. Compositionality of view transformations  Compositional view transformation definitions o Reuse existing view transformation definitions in new transformations 3  Sequential composition o Supported by most transformation languages and engines  Parallel composition o Often limited Src tr1 Int tr2 Trg Src tr1 tr2 Trg Merge information from both views Intermediate model
  • 4. Compositionality of view transformations  Compositional view transformation definitions o Reuse existing view transformation definitions in new transformations 4  Sequential composition o Supported by most transformation languages and engines  Parallel composition o Often limited Src tr1 Int tr2 Trg Src tr1 tr2 Trg Merge information from both views Intermediate model Motivation: Deriving stochastic Petri net analysis models for dependability evaluation of critical embedded automotive systems in an industrial collaboration: • What is the mean-time-to-first-failure in the system? • What is the probability of the different hazards? • Which architecture candidate is the most reliable? Transformations for different aspects of the system were created individually, and composed in parallel to derive the complete analysis model.
  • 5. Example: View transformations  Multiple views for different aspects of the source model 5 sp1: SwPos sp2: SwPos r1: Route r2: Route sw: Switch 1 1 0 0 1 0 Rail PetriNet Partially described element (fragment) Petri net for fault propagation Structure model adapted from the open source Train Benchmark framework
  • 6. Example: View transformations sp1: SwPos sp2: SwPos r1: Route r2: Route sw: Switch Rail 6 ma: Failure RepairModel mb: Immed RepairModel mc: Immed RepairModel Dep PetriNet Partially described element (fragment) Petri net for local error models Dependability model describing the failure and repair processes of components  Multiple views for different aspects of the source model
  • 7. Example: Fully compositional view transformations 7 sp1: SwPos sp2: SwPos r1: Route r2: Route sw: Switch ma: Failure RepairModel Rail mb: Immed RepairModel mc: Immed RepairModel Dep PetriNet g  Multiple views for different aspects of the source model  Merge information from multiple targets o Glue g identifies elements to be merged
  • 8. Example: Fully compositional view transformations  Multiple views for different aspects of the source model  Merge information from multiple targets o Glue g identifies elements to be merged  Fully compositional: tr1 and tr2 does not need to be re-engineered 8 sp1: SwPos sp2: SwPos r1: Route r2: Route sw: Switch ma: Failure RepairModel 1 1 0 0 1 0 Rail mb: Immed RepairModel mc: Immed RepairModel Dep PetriNet g PetriNet = tr1‖gtr2(Rail, Dep)
  • 9. Overview • Fully compositional • Expressive (FOL) View Transformation Language • Reactive • Incremental • Inconsistency-tolerant • Validating View Transformation Engine 9
  • 10. A fully compositional view definition language  Explicitly reuses the VIATRA Query language o precondition patterns o postcondition templates  Templates: conjunction of atomic statements mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } 10
  • 11. A fully compositional view definition language  Explicitly reuses the VIATRA Query language o precondition patterns o postcondition templates  Templates: conjunction of atomic statements mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } 11 Precondition pattern pattern qRoute(R) { Route(R); } Postcondition template pattern placeTemplate(P) { Place(P); }
  • 12. A fully compositional view definition language  Explicitly reuses the VIATRA Query language o precondition patterns o postcondition templates  Templates: conjunction of atomic statements mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } 12 Precondition pattern pattern qSwitchPos(Sp) { SwPos(R); } Postcondition template pattern arcTemplate(P, A) { Arc(A); Place.arcs(P, A); }
  • 13. A fully compositional view definition language  Explicitly reuses the VIATRA Query language o precondition patterns o postcondition templates  Templates: conjunction of atomic statements mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } 13 Glue precondition pattern pattern qFollows(R, Sp) { Route.follows(R, Sp); } Merging by Prolog-style variable unification Trace lookup
  • 14. Overview • Fully compositional • Expressive (FOL) View Transformation Language • Reactive • Incremental • Inconsistency-tolerant • Validating View Transformation Engine 14
  • 15. Incremental forward transformation 15 Src TrgTrace Src’ Trg’Trace’ Source change (delta)
  • 16. Incremental forward transformation 16 Src TrgTrace Src’ Trg’Trace’ Source change (delta) Target change (delta)
  • 17. Incremental forward transformation 17 Src TrgTrace Src’ Trg’Trace’ Source incremental: Only processes the changes in Src’ Reactive: may be executed in response to the change Target incremental: target change (delta) applied without fully recomputing Trg’
  • 18. Consistent forward transformation 18 Src TrgTrace Src’ Trg’Trace’ Consistent transformation: maintains the consistency relation according to the view definition = tr(Src) = tr(Src’)
  • 19. Inconsistent forward transformation 19 Src TrgTrace Src’ Trg’Trace’ Inconsistent transformation: may fail to maintain the consistency relation = tr(Src) ≠ tr(Src’)
  • 20. Validating forward transformation 20 Src TrgTrace Src’ Trg’Trace’ Validating transformation: maintains the target enforced metamodel constraints ⊨ MM ⊨ MM These are enforced by a modeling technology and may prevent storing a model, e.g.: • Type hierarchy and compliance • Upper multiplicity (1 vs *) • Inverse (opposite) relations • Containment hierarchy
  • 21. Non-validating forward transformation 21 Src TrgTrace Src’ Trg’Trace’ Non-validating transformation: may compromise enforced metamodel constraints to ensure consistency ⊨ MM ⊭ MM
  • 22. Desired properties at odds 22 Consistent Fully compositional Validating No transformation engine for a sufficiently expressive, fully compositional language can be both consistent and validating
  • 23. Desired properties at odds 23 Inconsistency- tolerant Fully compositional Validating No transformation engine for a sufficiently expressive, fully compositional language can be both consistent and validating • Replace consistency with explicit inconsistency-tolerance • Reason about consistency violations • Try to maintain a maximal valid fragment of the consistent target model
  • 24. Inconsistency-tolerant models: Belnap-Dunn logic  4-valued first-order logical structure: para-consistent partial model o 〚Classi(o1)〛∈ {0, 1, ½, ⚡} – object classification o 〚Classi.Referencej(o1, o2)〛∈ {0, 1, ½, ⚡} – references o 〚o1 ∼ o2〛∈ {0, 1, ½, ⚡} – object equivalence 24 o1 Tran = 1 TimedTran = 1 o2 Tran = ½ TimedTran = 0 ∼ = 1 o3 Arc = 1 arcs = 1 Equivalence relation allows merging objects o1 Tran = 1 TimedTran = ⚡ o3 Arc = 1 Represent the same model arcs = 1
  • 25. Inconsistency-tolerant models: Belnap-Dunn logic  4-valued first-order logical structure: para-consistent partial model o 〚Classi(o1)〛∈ {0, 1, ½, ⚡} – object classification o 〚Classi.Referencej(o1, o2)〛∈ {0, 1, ½, ⚡} – references o 〚o1 ∼ o2〛∈ {0, 1, ½, ⚡} – object equivalence 25 o1 Tran = 1 TimedTran = 1 o2 Tran = ½ TimedTran = 0 ∼ = 1 o3 Arc = 1 arcs = 1 Equivalence relation allows merging objects Represent the same model o1 Tran = 1 TimedTran = ⚡ o3 Arc = 1 Inconsistent information arcs = 1
  • 26. Transformation execution with 4-valued models Derive 4-valued partial model • Apply transformation rules Propagate • Inconsistency- tolerant inference Concretize • Remove inconsistent elements Materialize • Construct target model 26
  • 27. Derive 4-valued partial models  For each precondition match, atomic statements from the postcondition template are incorporated into the 4-valued model mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } sp1: SwPos r1: Route r2: Route Rail PN Initially all aspects of the target model are unknown ½ Derive 4-valued partial model Propagate Concretize Materialize 27
  • 28. Derive 4-valued partial models  For each precondition match, atomic statements from the postcondition template are incorporated into the 4-valued model mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } sp1: SwPos r1: Route r2: Route Rail o1 Place = 1 o2 Place = 1 PN Realized as a reactive, incremental (imperative) VIATRA transformation Derive 4-valued partial model Propagate Concretize Materialize 28
  • 29. Derive 4-valued partial models  For each precondition match, atomic statements from the postcondition template are incorporated into the 4-valued model mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } sp1: SwPos r1: Route r2: Route Rail o4 Arc = 1 o1 Place = 1 o2 Place = 1 o3 arcs = 1 PN Realized as a reactive, incremental (imperative) VIATRA transformation Derive 4-valued partial model Propagate Concretize Materialize 29
  • 30. Derive 4-valued partial models  For each precondition match, atomic statements from the postcondition template are incorporated into the 4-valued model mapping qRoute(_) => placeTemplate(_); mapping qSwitchPos(_) => arcTemplate(_, _); mapping qFollows(R, Sp) { lookup qRoute(R) => (P); lookup qSwitchPos(Sp) => (P, _); } sp1: SwPos r1: Route r2: Route Rail o4 Arc = 1 o1 Place = 1 o2 Place = 1 o3 arcs = 1 ∼ = 1 PN Equivalence edge ∼ responsible for merging objects Derive 4-valued partial model Propagate Concretize Materialize 30
  • 31. Propagation and concretization  We turned enforced metamodel constraints into propagation (inference) rules applied to the 4-valued model o E.g., 1⊑ 𝐶𝑙𝑎𝑠𝑠1 𝑜 , 𝐶𝑙𝑎𝑠𝑠1 𝑖𝑠 𝑎 𝑠𝑢𝑏𝑐𝑙𝑎𝑠𝑠 𝑜𝑓 𝐶𝑙𝑎𝑠𝑠2 1⊑ 𝐶𝑙𝑎𝑠𝑠2(𝑜) o Unsatisfied constraints are discovered as ⚡ inconsistencies Derive 4-valued partial model Propagate Concretize Materialize 31
  • 32. Propagation and concretization  We turned enforced metamodel constraints into propagation (inference) rules applied to the 4-valued model o E.g., 1⊑ 𝐶𝑙𝑎𝑠𝑠1 𝑜 , 𝐶𝑙𝑎𝑠𝑠1 𝑖𝑠 𝑎 𝑠𝑢𝑏𝑐𝑙𝑎𝑠𝑠 𝑜𝑓 𝐶𝑙𝑎𝑠𝑠2 1⊑ 𝐶𝑙𝑎𝑠𝑠2(𝑜) o Unsatisfied constraints are discovered as ⚡ inconsistencies  Concretize the 4-valued partial model to {0, 1} truth values only o Monotonicity of enforced metamodel constraints  constraints can be satisfied by omitting inconsistent objects o No extraneous output: Set all unknown ½ values to 0 o No invalid output: Remove all inconsistent ⚡ elements Derive 4-valued partial model Propagate Concretize Materialize 32
  • 33. Incremental materialization  Materialization constructs a regular instance model according to the concretized partial model o The output model contains all information from the consistent target model, except the elements that would violate enforced metamodel constraints  Propagation, concretization and materialization steps are implemented as incremental, reactive VIATRA transformations o Together with the 4-valued model construction steps, end-to-end traceability and reactive execution is provided Derive 4-valued partial model Propagate Concretize Materialize 33
  • 34. Evaluation  Compared transformation execution in two case studies o Dependability model • “Compiler” behavior, target model 3x larger than source • Up to 25K source, 72K target objects o Filtering and aggregation • “Abstraction” behavior, source 500x larger than target model • Up to 425K source, 9K target objects  Baseline: two styles of hand-written (imperative) VIATRA transformation 34
  • 35. Evaluation  In both cases, our engine was 1-2 orders of magnitude slower than hand-written (imperative) VIATRA transformations o Up to 26.7 sec vs 0.48 sec initial o Up to 94 sec vs 0.2 sec incremental • Propagate 100 source modifications  However, with our engine, transformations did not have to be re-engineered for composition! 35