SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
Mario Bravetti Department of Computer Science
University of Bologna
INRIA research team FOCUS
Towards Dynamic Updates in Service
Composition
Joint work with:
Gianluigi Zavattaro
Plan of the
Choreographies and Orchestrations
Contract-based service discovery
A dynamic update mechanism
Conclusion
Plan of the Talk
Web Service Choreography
Description Language
Describe the interaction among the
combined services from a top abstract
view
Choreography
(e.g. WS-CDL)
Top abstract view
of whole system:
each action is a
communication
involving two of
its participants
Orchestration
(e.g. WS-BPEL)
One Party detailed
view of the system
that orchestrates a
part of it by sending
(to other parties) &
receiving messages
Similar to UML Sequence
Diagrams
WS-CDL
Global view of service interactions
Buyer
Seller
Bank
WS-CDL
Global view of service interactions
Buyer
Seller
Request
Bank
WS-CDL
Global view of service interactions
Buyer
Seller
PayDescr
Request
Offer
Bank
WS-CDL
Global view of service interactions
Buyer
Seller
PayDescr
Request
Offer
Bank
Payment
WS-CDL
Global view of service interactions
Buyer
Seller
PayDescr
Request
Offer
Bank
Payment
Confirm
Receipt
WS-CDL
RequestBuyer Seller ;
( OfferSeller Buyer |
PayDescrSeller Bank ) ;
PaymentBuyer Bank ;
( ConfirmBank Seller |
ReceiptBank Buyer )
Projection of the Choreography
on the Single Participants
Buyer: Invoke(Request)@Seller;Receive(Offer);
Invoke(Payment)@Bank;Receive(Receipt)
Seller: Receive(Request);
(Invoke(Offer)@Buyer |
Invoke(PayDescr)@Bank);
Receive(Confirm)
Bank: Receive(PayDescr);Receive(Payment);
(Invoke(Receipt)@Buyer |
Invoke(Confirm)@Seller)
Behavioural contracts and
service retrieval
Problem of retrieving in the internet
services (by behavioral contracts) that:
interact without blocking (compliant)
can play the roles described by the
choreography
Useful notion: projection of choreography
into contracts (one for each role)
We cannot require that exactly projected
contracts are retrieved
…
Contract:
abstract service
description
Contract:
abstract service
description
Participant 1 Participant n
Deriving Set of Compliant Contracts
from Choreography [CHY07][BZ07b]
compliant by
construction
Choreography:
abstract description of the
composition of a group
of collaborating services
e.g. WS-CDL
projection projection
…
Choreography
Compliance-Preserving Contract
Refinement !
Contract
public registry
Contract
public registry
Service Service…
Reciprocal invocations
Contract Part. 1 Contract Part. n…
refines refines
compliance
preserved by
refinement
compliant by
construction
A Formal Model for WS-CDL
A global choreography language:
H ::= ar s | 1 | 0 |
H;H | H+H | H|H | H*
A Formal Model for WS-CDL
A global choreography language:
H ::= ar s | 1 | 0 |
H;H | H+H | H|H | H*
r invokes the
operation a of s
Successful
termination
Unsuccessful
termination
A Formal Model for WS-CDL
A global choreography language:
H ::= ar s | 1 | 0 |
H;H | H+H | H|H | H*
Choice
Sequence
Parallel Repetition
Standard semantics
Standard semantics where:
ar s produces a ar s transition to 1
1 produces a √ transition to 0
Semantics of choreographies
A Formal Model for orchestrations
A language for orchestrations:
C ::= a | ar | τ | 1 | 0 |
C;C | C+C | C|C | C*
P ::= [C]r | P|P
A Formal Model for orchestrations
A language for orchestrations:
C ::= a | ar | τ | 1 | 0 |
C;C | C+C | C|C | C*
P ::= [C]r | P|P
receive on a
Successful
termination
Unsuccessful
termination
invoke a at r
internal
A language for orchestrations:
C ::= a | ar | τ | 1 | 0 |
C;C | C+C | C|C | C*
P ::= [C]r | P|P
A Formal Model for orchestrations
Choice
Sequence
Parallel Repetition
A Formal Model for orchestrations
A language for orchestrations:
C ::= a | ar | τ | 1 | 0 |
C;C | C+C | C|C | C*
P ::= [C]r | P|P
Behaviour of
participant r
Parallel composition
of participants
Standard semantics
Standard semantics where:
as transition of role r synchronizes with
a transition of role s and produces a
ar s transition
1 produces a √ transition to 0
√ is synchronized over parallel
Notion of Implementation
Given a choreography H, a system P
implements H if:
P is a composition of compliant contracts
Intuitively they all always reach termination √
(we will see)
Each completed (√ terminating) weak
(τ abstracting) trace of P is a completed
trace of H
all computations of P are correct conversations
according to the choreography H
Examples of choreography
Implementations:
Given the choreography:
RequestAlice Bob; (AcceptBob Alice + RejectBob Alice)
The following are implementations:
[RequestBob;(Accept+Reject)]Alice |
[Request;(AcceptAlice+RejectAlice)]Bob
Examples of choreography
Implementations:
Given the choreography:
RequestAlice Bob; (AcceptBob Alice + RejectBob Alice)
The following are implementations:
[RequestBob;(Accept+Reject)]Alice |
[Request;(AcceptAlice+RejectAlice)]Bob
[RequestBob;(Accept+Reject+Retry)]Alice |
[Request;(AcceptAlice+RejectAlice)]Bob
Examples of choreography
Implementations:
Given the choreography:
RequestAlice Bob; (AcceptBob Alice + RejectBob Alice)
The following are implementations:
[RequestBob;(Accept+Reject)]Alice |
[Request;(AcceptAlice+RejectAlice)]Bob
[RequestBob;(Accept+Reject+Retry)]Alice |
[Request;(AcceptAlice+RejectAlice)]Bob
[RequestBob;(Accept+Reject+Retry)]Alice |
[Request;AcceptAlice]Bob
“Canonical” Projection and
Well-formed Choreography [SC 2007]
Canonical projection [[ ]]t :
as if t=r
[[ ar s ]]t = a if t=s
1 otherwise
[[H;H’]]t=[[H]]t ; [[H’]]t [[H|H’]]t=[[H]]t | [[H’]]t
[[H+H’]]t=[[H]]t + [[H’]]t [[H*]]t=[[H]]t*
H is well-formed if the system P, achieved via
canonical projections, implements H
Example
Consider the choreography H:
ar s ; bt u
Projection:
[ as ;1]r | [ a;1 ]s | [ 1;bu ]t | [ 1;b ]u
Is H well-formed?
NO
But, if r=t…. YES
[ as; bu ]r | [ a;1 ]s | [ 1;b ]u
Connected Choreography
(with Ivan Lanese)
Sufficient conditions
unique point of choice,
connectedness of sequence,
causality safety
that guarantee that H is well-formed
i.e. projection of a connected choreography
H produces an implementation of H
Unique point of choice
In a choice H+H’
The sender of the initial transitions in H and
in H’ is always the same
The roles in H and in H’ are the same
Example: if we drop the second
condition
(ar s + br t ); c s t
[ ( as+bt );1]r | [ (a+1);ct ]s | [ (1+b);c ]t
Plan of the
Choreographies and Orchestrations
Contract-based service discovery
A dynamic update mechanism
Conclusion
Plan of the Talk
Contracts
Contract: service “behavioural interface”
correct sequences
of invoke and receive
as in an orchestration
(role of a coreography)
just finite-state labeled
transition systems with
successful termination
Contract:
abstract service
description
Service
public registry
Contract Compliance
Verification of correctness of service composition
based on their contracts: successful interaction
i.e. no deadlock / termination reached
Contract:
abstract service
description
Service
…
Contract:
abstract service
description
Service…
public registry public registry
Reciprocal invocations
Service Compliance: Formally
Services are compliant if the following
holds for their composition P:
P ---> … ---> P’
implies that there exists P’’ s.t.
P’ ---> … ---> P’’ --->
i.e. every computation can be extended to
reach successful completion of all services
termination under fairness assumption
αααα1111
√
ααααn
αααα1111 ααααm
Example: compliant services
The following pairs of services are
compliant:
C1 = a+b+c C2 = a + b
C1 = a;b C2 = a | b
C1 = (a; b )* C2 = a;( b;a )*;b
…
Choreography
Compliance-Preserving Contract
Refinement !
Contract
public registry
Contract
public registry
Service Service…
Reciprocal invocations
Contract Part. 1 Contract Part. n…
refines refines
compliance
preserved by
refinement
compliant by
construction
projection projection
…
Choreography
Contract Refinement Relation
Contract
public registry
Contract
public registry
Service Service…
Reciprocal invocations
Contract Part. 1 Contract Part. n…
refines refines
compliance
preserved by
refinement
compliant by
construction
Formally: Subcontract Preorder
C
sub-contracts
of C
subcontract
preorder
Preorder ≤ between contracts C:
C’ ≤ C means C’ is a subcontract of C
Definition of Preorder Induced from
Independent Refinement
C1 C2 Cn
Given a set of compliant contracts
is a set of compliant contracts
subcontract
preorder
sub-contracts
of C2 …
sub-contracts
of C1
sub-contracts
of Cn
C’1 C’2 C’n
…
…
No maximal subcontract preorder
… in general
Consider the system:
[ a ] | [ a ]
we could have one preorder ≤1 for which
a + c.0 ≤1 a a + c.0 ≤1 a
and one preorder ≤2 for which
a + c.0 ≤2 a a + c.0 ≤2 a
but no subcontract preorder could have
a + c.0 ≤ a a + c.0 ≤ a
Consequence: no independent refinement!
Maximal pre-order
It exists changing some assumptions
(asymmetry between inputs and outputs)
Constraining the structure of contracts:
outputs choosen internally (output persistence)
Strengthening the notion of compliance:
when an output is performed a corresponding
input is required to be already enabled, like in
ready-send of MPI (strong compliance)
Moving to asynchronous communication
(e.g. via message queues)
Output persistence
Output persistence means that given a
process state P:
If P has an output transition on a and
P-->P’ with αααα different from output on a,
then also P’ has an output transition on a
(and P' --> )
αααα
√
a
a
b
√√√√
Syntactically…
(guarantees output persistance)
This holds, for instance, in WS-BPEL
Outputs cannot resolve the pick operator
for external choices (the decision to
execute outputs is taken internally)
External choice among inputs: a + b but
a + b τ;a + τ;b
a + b a + τ;b
no external choice among outputs (and mixed
choice) in contracts!
Choreography implementations
(with output persistent contracts)
Projection modified: [[ ar s ]]t = τ;as if t=r
RequestAlice Bob; (AcceptBob Alice + RejectBob Alice)
The following services can be retrieved:
[τ;RequestBob;(Accept+Reject)]Alice |
[Request;(τ;AcceptAlice+τ;RejectAlice)]Bob
Choreography implementations
(with output persistent contracts)
Projection modified: [[ ar s ]]t = τ;as if t=r
RequestAlice Bob; (AcceptBob Alice + RejectBob Alice)
The following services can be retrieved:
[τ;RequestBob;(Accept+Reject)]Alice |
[Request;(τ;AcceptAlice+τ;RejectAlice)]Bob
[τ;RequestBob;(Accept+Reject+Retry)]Alice |
[Request;(τ;AcceptAlice+τ;RejectAlice)]Bob
Choreography implementations
(with output persistent contracts)
Projection modified: [[ ar s ]]t = τ;as if t=r
RequestAlice Bob; (AcceptBob Alice + RejectBob Alice)
The following services can be retrieved:
[τ;RequestBob;(Accept+Reject)]Alice |
[Request;(τ;AcceptAlice+τ;RejectAlice)]Bob
[τ;RequestBob;(Accept+Reject+Retry)]Alice |
[Request;(τ;AcceptAlice+τ;RejectAlice)]Bob
[τ;RequestBob;(Accept+Reject+Retry)]Alice |
[Request;τ;AcceptAlice]Bob
C’ ≤ C iff for every context P
[C]|P compliance implies [C’]|P compliance
≤max
is a subcontract preoder
≤max
includes all subcontract preorders
With respect to (fair) testing not only the
test P has to succeed but also the tested C
Compliance testing is the maximal
preorder
max
Properties of the maximal
subcontract preorder
If we assume outputs al to be directed to
a location l (e.g. role of a choreography)
we can reduce the problem:
C’ ≤max
C iff C’N-I(C) ≤ max
C
i.e. to subcontract relation when inputs
not among inputs of C I(C) are restricted
because compliant tests of C cannot perform
reachable outputs to C that it cannot receive
Thus…
(typical in session types)
External choices on inputs can be
extended:
a+b ≤max
a (thanks to this property)
Internal choices on outputs can be
reduced:
ττττ.al ≤max
ττττ;al + ττττ;bl' (being more deterministic, as in testing)
Input and Output knowledge
Contracts with undirected outputs à la CCS
property does not hold, e.g. a+b ≤max
a
Consider for instance (capturing)
the correct system [ a ] | [ττττ; a .b] | [ττττ;b ] and
the incorrect one [ a+b ] | [ττττ; a .b] | [ττττ;b ]
Problem can be solved by considering
knowledge of I/O of other contracts ≤I,O
exploiting knowledge we have a+b ≤N,N-{b} a
Subcontract relation contains a universal
quantification over possible contexts
Sound characterization resorting to a
must-testing theory (should-testing [RV05])
C’ ≤ C is implied by
C’  N-I(C) ≤should-testing C
i.e. ≤
max
coarser than testing preorder
(and of simulation)
Decidible Sound Characterization
Based on a Must-like Testing
max
Uncontrollable contracts
Trace equivalence not coarser than ≤max
because contracts can include traces
not leading to success
Those traces not observed by tests
Example:
uncontrollable contracts (unsuccesful for
any test) are all equivalent:
a;b;0 equivalent to b;c;0
is conformant for
participant 1 to
is conformant for
participant n to
…
Choreography
Choreography Conformance
Contract
public registry
Contract
public registry
Service Service…
Reciprocal invocations
compliance
guaranteed by
conformance
Definition of Relation Induced from
Independence Property
Hwith roles
p1,p2,…,pn
[C1]p1 | [C2]p2 … | [Cn]pn implements H
…
…
contracts
for p1
contracts
for p2
contracts
for pn
conformance
relation
No Maximal Choreography
Conformance Relation
Consider the choreography
ar s | br s
that can be implemented as:
[ τ;as | τ;bs ]r | [ τ;a;b + τ;b;a ]s
[τ;as;τ;bs + τ;bs;τ;as ]r | [a|b]s
but not as:
[τ;as;τ;bs + τ;bs;τ;as ]r | [ τ;a;b + τ;b;a ]s
Notice that we used output persistent contracts,
so even asymmetry of I/O does not help
Summary of Results
Refinement with knowledge about other initial
contracts limited to I/O actions
“normal” compliance:
Uncostrained contracts: maximal relation does not exist
Contracts where outputs are internally chosen (output persistence):
maximal relation exists and “I” knowledge is irrelevant
Output persistent contracts where outputs are directed to a location:
maximal relation exists and “I/O” knowledge is irrelevant
strong compliance:
Uncostrained contracts (where output are directed to a location):
maximal relation exists and “I/O” knowledge is irrelevant
queue-based (asynchronous) compliance:
Uncostrained contracts (where output are directed to a location):
maximal relation exists and “I/O” knowledge is irrelevant
Summary of Results
Direct conformance w.r.t. the whole choreography:
maximal relation does not exist (all kinds of compl.)
Sound characterizations of the relations obtained
(apart from the queue based) by resorting to an
encoding into (a fair version of) must testing [RV05]
With respect to testing: both system and test must succeed
Much coarser: all non-controllable systems are equivalent
As a consequence:
Algorithm that guarantees compliance
Classification of the relations w.r.t. existing pre-orders:
coarser than (fair) must testing (e.g., they allow external
non-determinism on inputs to be added in refinements)
Plan of the
Choreographies and Orchestrations
Contract-based service discovery
A dynamic update mechanism
Conclusion
Plan of the Talk
Updatable processes/contracts
(with Marco Carbone)
How to model updatable processes? Eg.
services which receive workflow from the
environment in order to interact with it
internal “adaptable/mutable” subparts of
cloud behaviour
By extending choreographies and
orchestrations/contracts with
updatable parts (named scopes) X[H] and
update actions/primitives X{H}
Buyer-Seller-Bank Example
Consider the running system:
[X[CmcBuyer]| C]buyer | [C']seller | [X[CmcBank]|C'']bank
if the following update is performed:
X{buyer:CvisaBuyer, bank:CvisaBank}
the system becomes:
[X[CvisaBuyer]| C]buyer | [C']seller | [X[CvisaBank]|C'']bank
Updating a scope, graphically
X X→ X
Updating a scope, graphically
X X→ X
proj
Updating a scope, graphically
X X→ X
X→
proj proj
Updating a scope, graphically
X X→ X
X→
proj projproj
Dynamic Choreographies
Each scope X associated to a set of roles
given function type(X) = {r1,…,rn}
Global choreography language:
H ::= ar s | 1 | 0 |
H;H | H+H | H|H | H* |
X[H] | Xr{H}
with roles(H) included in type(X)
Extending choreography
semantics with scope and updates
where H[H'/X] turns scopes X[H''], for
any H'', occurring inside H into X[H']
Dynamic Orchestrations
A language for orchestrations:
C ::= a | ar | 1 | 0 |
C;C | C+C | C|C | C* |
X[C] | X{r1:C1, …, rn:Cn}
P ::= [C]r | P|P
A distributed update can be performed if no
scope X[C] of roles in type(X) has started
Standard “canonical” projection
[Bravetti, Zavattaro SC 2007]
Projection [[ H ]]t of choreography H to
participant t
as if t=r
[[ ar s ]]t = a if t=s
1 otherwise
[[H;H’]]t=[[H]]t ; [[H’]]t [[H|H’]]t=[[H]]t | [[H’]]t
[[H+H’]]t=[[H]]t + [[H’]]t [[H*]]t=[[H]]t*
Extended….
Projection [[ H ]]t of choreography H to
participant t
X[ [[H]]t ] if t in type(X)
[[ X[H] ]]t =
1 otherwise
X{t1:[[H]]t1, …, tn:[[H]]tn } if t = r
[[ Xr{H} ]]t =
1 otherwise
where type(X) = {t1,…,tn}
Extension of Connectedness
and external updates
Constraint: there are not (and cannot be
produced) scopes in parallel with the
same name X
so not to confuse starts of different scopes
Open transitions: update choreographies
H in a scope X from "outside" provided:
H is connected
The update does not violate the constraint
above
Main Theorem
Projection of a connected choreography
H produces an implementation of H
Traces considered by implementation
definition also include open transitions
Channels "a" statically associated to
choreographies H (global type)
Typing a concrete langauge
with sessions (session types)
Networks and Expressions
Session Typing is not trivial
Γ typing environment
each channel is typed with a choreography
∆ maps:
each started session into an orchestration
Typing scopes and updates
Inside a scope X[] we may communicate
using several started sessions
We must update all session (types) the
process in the scope is engaged in
Updates are going to update code inside
multiple sessions
must be allowed individually by their types
An idea of the typing rules
Example with two channels
Typing the example
Plan of the
Choreographies and Orchestrations
Contract-based service discovery
A dynamic update mechanism
Conclusion
Plan of the Talk
Conclusion
We are working on:
Use of the above in the context of session
types for typing a concrete language:
typing rules and properties (e.g. subject
reduction)
Conclusion
Open problems:
Complete characterization of compliance
testing
work in this direction has been done in
[Bernardi, Hennessy Concur 2013] where
however uncontrollable processes are not
characterized and fairness is not considered
Refinement theory for dynamic (with
updates) choreographies/contracts
References
M. Bravetti and G. Zavattaro. Contract based Multi-party Service Composition. In
FSEN’07. (full version in Fundamenta Informaticae)
M. Bravetti and G. Zavattaro. Towards a Unifying Theory for Choreography
Conformance and Contract Compliance. In SC ’07.
M. Bravetti and G. Zavattaro. A Theory for Strong Service Compliance. In
Coordination’07. (full version in MSCS)
M. Bravetti and G. Zavattaro. Contract Compliance and Choreography Conformance
in the presence of Message Queues.In WS-FM ’08
M. Bravetti and G. Zavattaro. On the Expressive Power of Process Interruption and
Compensation. In WS-FM ’08
M. Bravetti, I. Lanese, G. Zavattaro. Contract-Driven Implementation of
Choreographies.In TGC '08
M. Bravetti, G. Zavattaro. Contract-Based Discovery and Composition of Web
Services. In Formal Methods for Web Services, Advanced Lectures '09, LNCS 5569
M. Bravetti, C. Di Giusto, J. A. Pérez, and G. Zavattaro. A Calculus for Component
Evolvability (Extended Abstract). In FACS’10
M. Bravetti, C. Di Giusto, J. A. Pérez, and G. Zavattaro. Adaptable Processes
(Extended Abstract). In FORTE/FMOODS’11
M. Boreale, M. Bravetti. Advanced Mechanisms for Service Composition, Query and
Discovery in Rigorous Software Eng. for Service-Oriented Systems '11, LNCS 6582
M. Bravetti, M. Carbone, T. Hildebrandt, I. Lanese, J. Mauro, J. A. Pérez, G.
Zavattaro: Towards Global and Local Types for Adaptation. In BEAT2 '13, LNCS 8368

Weitere ähnliche Inhalte

Was ist angesagt?

TimetablingForPassengers-2
TimetablingForPassengers-2TimetablingForPassengers-2
TimetablingForPassengers-2Peter Sels
 
1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfaSampath Kumar S
 
Comparison of Turbo Codes and Low Density Parity Check Codes
Comparison of Turbo Codes and Low Density Parity Check CodesComparison of Turbo Codes and Low Density Parity Check Codes
Comparison of Turbo Codes and Low Density Parity Check CodesIOSR Journals
 
Volume and edge skeleton computation in high dimensions
Volume and edge skeleton computation in high dimensionsVolume and edge skeleton computation in high dimensions
Volume and edge skeleton computation in high dimensionsVissarion Fisikopoulos
 
martelli.ppt
martelli.pptmartelli.ppt
martelli.pptVideoguy
 
Presentation of volesti in eRum 2020
Presentation of volesti in eRum 2020 Presentation of volesti in eRum 2020
Presentation of volesti in eRum 2020 Apostolos Chalkis
 
A digital calibration algorithm with variable amplitude dithering for domain-...
A digital calibration algorithm with variable amplitude dithering for domain-...A digital calibration algorithm with variable amplitude dithering for domain-...
A digital calibration algorithm with variable amplitude dithering for domain-...VLSICS Design
 
Sequential Framework For HENS
Sequential Framework For HENSSequential Framework For HENS
Sequential Framework For HENSRahulA
 

Was ist angesagt? (10)

TimetablingForPassengers-2
TimetablingForPassengers-2TimetablingForPassengers-2
TimetablingForPassengers-2
 
1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa
 
First Technical Paper
First Technical PaperFirst Technical Paper
First Technical Paper
 
Comparison of Turbo Codes and Low Density Parity Check Codes
Comparison of Turbo Codes and Low Density Parity Check CodesComparison of Turbo Codes and Low Density Parity Check Codes
Comparison of Turbo Codes and Low Density Parity Check Codes
 
Volume and edge skeleton computation in high dimensions
Volume and edge skeleton computation in high dimensionsVolume and edge skeleton computation in high dimensions
Volume and edge skeleton computation in high dimensions
 
Approximation
ApproximationApproximation
Approximation
 
martelli.ppt
martelli.pptmartelli.ppt
martelli.ppt
 
Presentation of volesti in eRum 2020
Presentation of volesti in eRum 2020 Presentation of volesti in eRum 2020
Presentation of volesti in eRum 2020
 
A digital calibration algorithm with variable amplitude dithering for domain-...
A digital calibration algorithm with variable amplitude dithering for domain-...A digital calibration algorithm with variable amplitude dithering for domain-...
A digital calibration algorithm with variable amplitude dithering for domain-...
 
Sequential Framework For HENS
Sequential Framework For HENSSequential Framework For HENS
Sequential Framework For HENS
 

Ähnlich wie Towards Dynamic Updates in Service Composition - Prof. Mario Bravetti

Simple queuingmodelspdf
Simple queuingmodelspdfSimple queuingmodelspdf
Simple queuingmodelspdfAnkit Katiyar
 
Code optimisation presnted
Code optimisation presntedCode optimisation presnted
Code optimisation presntedbhavanatmithun
 
RedisConf18 - CRDTs and Redis - From sequential to concurrent executions
RedisConf18 - CRDTs and Redis - From sequential to concurrent executionsRedisConf18 - CRDTs and Redis - From sequential to concurrent executions
RedisConf18 - CRDTs and Redis - From sequential to concurrent executionsRedis Labs
 
Declare Your Language: Constraint Resolution 1
Declare Your Language: Constraint Resolution 1Declare Your Language: Constraint Resolution 1
Declare Your Language: Constraint Resolution 1Eelco Visser
 
Efficient Random-Walk Methods forApproximating Polytope Volume
Efficient Random-Walk Methods forApproximating Polytope VolumeEfficient Random-Walk Methods forApproximating Polytope Volume
Efficient Random-Walk Methods forApproximating Polytope VolumeVissarion Fisikopoulos
 
Robust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping AlgorithmsRobust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping AlgorithmsVincenzo De Florio
 
14th Athens Colloquium on Algorithms and Complexity (ACAC19)
14th Athens Colloquium on Algorithms and Complexity (ACAC19)14th Athens Colloquium on Algorithms and Complexity (ACAC19)
14th Athens Colloquium on Algorithms and Complexity (ACAC19)Apostolos Chalkis
 
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.Ruslan Shevchenko
 
Graph Algorithms Graph Algorithms Graph Algorithms
Graph Algorithms Graph Algorithms Graph AlgorithmsGraph Algorithms Graph Algorithms Graph Algorithms
Graph Algorithms Graph Algorithms Graph Algorithmshtttuneti
 
RedisDay London 2018 - CRDTs and Redis From sequential to concurrent executions
RedisDay London 2018 - CRDTs and Redis From sequential to concurrent executionsRedisDay London 2018 - CRDTs and Redis From sequential to concurrent executions
RedisDay London 2018 - CRDTs and Redis From sequential to concurrent executionsRedis Labs
 
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...Iosif Itkin
 
2015 CMS Winter Meeting Poster
2015 CMS Winter Meeting Poster2015 CMS Winter Meeting Poster
2015 CMS Winter Meeting PosterChelsea Battell
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...AdaCore
 

Ähnlich wie Towards Dynamic Updates in Service Composition - Prof. Mario Bravetti (20)

Bode diagram
Bode diagramBode diagram
Bode diagram
 
Simple queuingmodelspdf
Simple queuingmodelspdfSimple queuingmodelspdf
Simple queuingmodelspdf
 
Code optimisation presnted
Code optimisation presntedCode optimisation presnted
Code optimisation presnted
 
Cs gate-2011
Cs gate-2011Cs gate-2011
Cs gate-2011
 
Cs gate-2011
Cs gate-2011Cs gate-2011
Cs gate-2011
 
RedisConf18 - CRDTs and Redis - From sequential to concurrent executions
RedisConf18 - CRDTs and Redis - From sequential to concurrent executionsRedisConf18 - CRDTs and Redis - From sequential to concurrent executions
RedisConf18 - CRDTs and Redis - From sequential to concurrent executions
 
PODS 2013 - Montali - Verification of Relational Data-Centric Dynamic Systems...
PODS 2013 - Montali - Verification of Relational Data-Centric Dynamic Systems...PODS 2013 - Montali - Verification of Relational Data-Centric Dynamic Systems...
PODS 2013 - Montali - Verification of Relational Data-Centric Dynamic Systems...
 
slides.07.pptx
slides.07.pptxslides.07.pptx
slides.07.pptx
 
logical clocks
logical clockslogical clocks
logical clocks
 
Declare Your Language: Constraint Resolution 1
Declare Your Language: Constraint Resolution 1Declare Your Language: Constraint Resolution 1
Declare Your Language: Constraint Resolution 1
 
Efficient Random-Walk Methods forApproximating Polytope Volume
Efficient Random-Walk Methods forApproximating Polytope VolumeEfficient Random-Walk Methods forApproximating Polytope Volume
Efficient Random-Walk Methods forApproximating Polytope Volume
 
CRDTs and Redis
CRDTs and RedisCRDTs and Redis
CRDTs and Redis
 
Robust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping AlgorithmsRobust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping Algorithms
 
14th Athens Colloquium on Algorithms and Complexity (ACAC19)
14th Athens Colloquium on Algorithms and Complexity (ACAC19)14th Athens Colloquium on Algorithms and Complexity (ACAC19)
14th Athens Colloquium on Algorithms and Complexity (ACAC19)
 
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
Scala-Gopher: CSP-style programming techniques with idiomatic Scala.
 
Graph Algorithms Graph Algorithms Graph Algorithms
Graph Algorithms Graph Algorithms Graph AlgorithmsGraph Algorithms Graph Algorithms Graph Algorithms
Graph Algorithms Graph Algorithms Graph Algorithms
 
RedisDay London 2018 - CRDTs and Redis From sequential to concurrent executions
RedisDay London 2018 - CRDTs and Redis From sequential to concurrent executionsRedisDay London 2018 - CRDTs and Redis From sequential to concurrent executions
RedisDay London 2018 - CRDTs and Redis From sequential to concurrent executions
 
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
 
2015 CMS Winter Meeting Poster
2015 CMS Winter Meeting Poster2015 CMS Winter Meeting Poster
2015 CMS Winter Meeting Poster
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
 

Mehr von Facultad de Informática UCM

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?Facultad de Informática UCM
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...Facultad de Informática UCM
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersFacultad de Informática UCM
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmFacultad de Informática UCM
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingFacultad de Informática UCM
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroFacultad de Informática UCM
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...Facultad de Informática UCM
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Facultad de Informática UCM
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFacultad de Informática UCM
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoFacultad de Informática UCM
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCFacultad de Informática UCM
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Facultad de Informática UCM
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Facultad de Informática UCM
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Facultad de Informática UCM
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windFacultad de Informática UCM
 

Mehr von Facultad de Informática UCM (20)

¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?¿Por qué debemos seguir trabajando en álgebra lineal?
¿Por qué debemos seguir trabajando en álgebra lineal?
 
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
TECNOPOLÍTICA Y ACTIVISMO DE DATOS: EL MAPEO COMO FORMA DE RESILIENCIA ANTE L...
 
DRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation ComputersDRAC: Designing RISC-V-based Accelerators for next generation Computers
DRAC: Designing RISC-V-based Accelerators for next generation Computers
 
uElectronics ongoing activities at ESA
uElectronics ongoing activities at ESAuElectronics ongoing activities at ESA
uElectronics ongoing activities at ESA
 
Tendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura ArmTendencias en el diseño de procesadores con arquitectura Arm
Tendencias en el diseño de procesadores con arquitectura Arm
 
Formalizing Mathematics in Lean
Formalizing Mathematics in LeanFormalizing Mathematics in Lean
Formalizing Mathematics in Lean
 
Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented Computing
 
Computer Design Concepts for Machine Learning
Computer Design Concepts for Machine LearningComputer Design Concepts for Machine Learning
Computer Design Concepts for Machine Learning
 
Inteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuroInteligencia Artificial en la atención sanitaria del futuro
Inteligencia Artificial en la atención sanitaria del futuro
 
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 Design Automation Approaches for Real-Time Edge Computing for Science Applic... Design Automation Approaches for Real-Time Edge Computing for Science Applic...
Design Automation Approaches for Real-Time Edge Computing for Science Applic...
 
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
Estrategias de navegación para robótica móvil de campo: caso de estudio proye...
 
Fault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error CorrectionFault-tolerance Quantum computation and Quantum Error Correction
Fault-tolerance Quantum computation and Quantum Error Correction
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
 
Automatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPCAutomatic generation of hardware memory architectures for HPC
Automatic generation of hardware memory architectures for HPC
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
 
Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...Hardware/software security contracts: Principled foundations for building sec...
Hardware/software security contracts: Principled foundations for building sec...
 
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
Jose carlossancho slidesLa seguridad en el desarrollo de software implementad...
 
Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?Do you trust your artificial intelligence system?
Do you trust your artificial intelligence system?
 
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.Redes neuronales y reinforcement learning. Aplicación en energía eólica.
Redes neuronales y reinforcement learning. Aplicación en energía eólica.
 
Challenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore windChallenges and Opportunities for AI and Data analytics in Offshore wind
Challenges and Opportunities for AI and Data analytics in Offshore wind
 

Kürzlich hochgeladen

National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfRajuKanojiya4
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solidnamansinghjarodiya
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectDM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectssuserb6619e
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptNarmatha D
 
Risk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectRisk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectErbil Polytechnic University
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate productionChinnuNinan
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxVelmuruganTECE
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadaditya806802
 

Kürzlich hochgeladen (20)

National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdf
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solid
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectDM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.ppt
 
Risk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectRisk Management in Engineering Construction Project
Risk Management in Engineering Construction Project
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate production
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptx
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasad
 

Towards Dynamic Updates in Service Composition - Prof. Mario Bravetti

  • 1. Mario Bravetti Department of Computer Science University of Bologna INRIA research team FOCUS Towards Dynamic Updates in Service Composition Joint work with: Gianluigi Zavattaro
  • 2. Plan of the Choreographies and Orchestrations Contract-based service discovery A dynamic update mechanism Conclusion Plan of the Talk
  • 3. Web Service Choreography Description Language Describe the interaction among the combined services from a top abstract view Choreography (e.g. WS-CDL) Top abstract view of whole system: each action is a communication involving two of its participants Orchestration (e.g. WS-BPEL) One Party detailed view of the system that orchestrates a part of it by sending (to other parties) & receiving messages
  • 4. Similar to UML Sequence Diagrams
  • 5. WS-CDL Global view of service interactions Buyer Seller Bank
  • 6. WS-CDL Global view of service interactions Buyer Seller Request Bank
  • 7. WS-CDL Global view of service interactions Buyer Seller PayDescr Request Offer Bank
  • 8. WS-CDL Global view of service interactions Buyer Seller PayDescr Request Offer Bank Payment
  • 9. WS-CDL Global view of service interactions Buyer Seller PayDescr Request Offer Bank Payment Confirm Receipt
  • 10. WS-CDL RequestBuyer Seller ; ( OfferSeller Buyer | PayDescrSeller Bank ) ; PaymentBuyer Bank ; ( ConfirmBank Seller | ReceiptBank Buyer )
  • 11. Projection of the Choreography on the Single Participants Buyer: Invoke(Request)@Seller;Receive(Offer); Invoke(Payment)@Bank;Receive(Receipt) Seller: Receive(Request); (Invoke(Offer)@Buyer | Invoke(PayDescr)@Bank); Receive(Confirm) Bank: Receive(PayDescr);Receive(Payment); (Invoke(Receipt)@Buyer | Invoke(Confirm)@Seller)
  • 12. Behavioural contracts and service retrieval Problem of retrieving in the internet services (by behavioral contracts) that: interact without blocking (compliant) can play the roles described by the choreography Useful notion: projection of choreography into contracts (one for each role) We cannot require that exactly projected contracts are retrieved
  • 13. … Contract: abstract service description Contract: abstract service description Participant 1 Participant n Deriving Set of Compliant Contracts from Choreography [CHY07][BZ07b] compliant by construction Choreography: abstract description of the composition of a group of collaborating services e.g. WS-CDL projection projection
  • 14. … Choreography Compliance-Preserving Contract Refinement ! Contract public registry Contract public registry Service Service… Reciprocal invocations Contract Part. 1 Contract Part. n… refines refines compliance preserved by refinement compliant by construction
  • 15. A Formal Model for WS-CDL A global choreography language: H ::= ar s | 1 | 0 | H;H | H+H | H|H | H*
  • 16. A Formal Model for WS-CDL A global choreography language: H ::= ar s | 1 | 0 | H;H | H+H | H|H | H* r invokes the operation a of s Successful termination Unsuccessful termination
  • 17. A Formal Model for WS-CDL A global choreography language: H ::= ar s | 1 | 0 | H;H | H+H | H|H | H* Choice Sequence Parallel Repetition
  • 18. Standard semantics Standard semantics where: ar s produces a ar s transition to 1 1 produces a √ transition to 0
  • 20. A Formal Model for orchestrations A language for orchestrations: C ::= a | ar | τ | 1 | 0 | C;C | C+C | C|C | C* P ::= [C]r | P|P
  • 21. A Formal Model for orchestrations A language for orchestrations: C ::= a | ar | τ | 1 | 0 | C;C | C+C | C|C | C* P ::= [C]r | P|P receive on a Successful termination Unsuccessful termination invoke a at r internal
  • 22. A language for orchestrations: C ::= a | ar | τ | 1 | 0 | C;C | C+C | C|C | C* P ::= [C]r | P|P A Formal Model for orchestrations Choice Sequence Parallel Repetition
  • 23. A Formal Model for orchestrations A language for orchestrations: C ::= a | ar | τ | 1 | 0 | C;C | C+C | C|C | C* P ::= [C]r | P|P Behaviour of participant r Parallel composition of participants
  • 24. Standard semantics Standard semantics where: as transition of role r synchronizes with a transition of role s and produces a ar s transition 1 produces a √ transition to 0 √ is synchronized over parallel
  • 25. Notion of Implementation Given a choreography H, a system P implements H if: P is a composition of compliant contracts Intuitively they all always reach termination √ (we will see) Each completed (√ terminating) weak (τ abstracting) trace of P is a completed trace of H all computations of P are correct conversations according to the choreography H
  • 26. Examples of choreography Implementations: Given the choreography: RequestAlice Bob; (AcceptBob Alice + RejectBob Alice) The following are implementations: [RequestBob;(Accept+Reject)]Alice | [Request;(AcceptAlice+RejectAlice)]Bob
  • 27. Examples of choreography Implementations: Given the choreography: RequestAlice Bob; (AcceptBob Alice + RejectBob Alice) The following are implementations: [RequestBob;(Accept+Reject)]Alice | [Request;(AcceptAlice+RejectAlice)]Bob [RequestBob;(Accept+Reject+Retry)]Alice | [Request;(AcceptAlice+RejectAlice)]Bob
  • 28. Examples of choreography Implementations: Given the choreography: RequestAlice Bob; (AcceptBob Alice + RejectBob Alice) The following are implementations: [RequestBob;(Accept+Reject)]Alice | [Request;(AcceptAlice+RejectAlice)]Bob [RequestBob;(Accept+Reject+Retry)]Alice | [Request;(AcceptAlice+RejectAlice)]Bob [RequestBob;(Accept+Reject+Retry)]Alice | [Request;AcceptAlice]Bob
  • 29. “Canonical” Projection and Well-formed Choreography [SC 2007] Canonical projection [[ ]]t : as if t=r [[ ar s ]]t = a if t=s 1 otherwise [[H;H’]]t=[[H]]t ; [[H’]]t [[H|H’]]t=[[H]]t | [[H’]]t [[H+H’]]t=[[H]]t + [[H’]]t [[H*]]t=[[H]]t* H is well-formed if the system P, achieved via canonical projections, implements H
  • 30. Example Consider the choreography H: ar s ; bt u Projection: [ as ;1]r | [ a;1 ]s | [ 1;bu ]t | [ 1;b ]u Is H well-formed? NO But, if r=t…. YES [ as; bu ]r | [ a;1 ]s | [ 1;b ]u
  • 31. Connected Choreography (with Ivan Lanese) Sufficient conditions unique point of choice, connectedness of sequence, causality safety that guarantee that H is well-formed i.e. projection of a connected choreography H produces an implementation of H
  • 32. Unique point of choice In a choice H+H’ The sender of the initial transitions in H and in H’ is always the same The roles in H and in H’ are the same Example: if we drop the second condition (ar s + br t ); c s t [ ( as+bt );1]r | [ (a+1);ct ]s | [ (1+b);c ]t
  • 33. Plan of the Choreographies and Orchestrations Contract-based service discovery A dynamic update mechanism Conclusion Plan of the Talk
  • 34. Contracts Contract: service “behavioural interface” correct sequences of invoke and receive as in an orchestration (role of a coreography) just finite-state labeled transition systems with successful termination Contract: abstract service description Service public registry
  • 35. Contract Compliance Verification of correctness of service composition based on their contracts: successful interaction i.e. no deadlock / termination reached Contract: abstract service description Service … Contract: abstract service description Service… public registry public registry Reciprocal invocations
  • 36. Service Compliance: Formally Services are compliant if the following holds for their composition P: P ---> … ---> P’ implies that there exists P’’ s.t. P’ ---> … ---> P’’ ---> i.e. every computation can be extended to reach successful completion of all services termination under fairness assumption αααα1111 √ ααααn αααα1111 ααααm
  • 37. Example: compliant services The following pairs of services are compliant: C1 = a+b+c C2 = a + b C1 = a;b C2 = a | b C1 = (a; b )* C2 = a;( b;a )*;b
  • 38. … Choreography Compliance-Preserving Contract Refinement ! Contract public registry Contract public registry Service Service… Reciprocal invocations Contract Part. 1 Contract Part. n… refines refines compliance preserved by refinement compliant by construction projection projection
  • 39. … Choreography Contract Refinement Relation Contract public registry Contract public registry Service Service… Reciprocal invocations Contract Part. 1 Contract Part. n… refines refines compliance preserved by refinement compliant by construction
  • 40. Formally: Subcontract Preorder C sub-contracts of C subcontract preorder Preorder ≤ between contracts C: C’ ≤ C means C’ is a subcontract of C
  • 41. Definition of Preorder Induced from Independent Refinement C1 C2 Cn Given a set of compliant contracts is a set of compliant contracts subcontract preorder sub-contracts of C2 … sub-contracts of C1 sub-contracts of Cn C’1 C’2 C’n … …
  • 42. No maximal subcontract preorder … in general Consider the system: [ a ] | [ a ] we could have one preorder ≤1 for which a + c.0 ≤1 a a + c.0 ≤1 a and one preorder ≤2 for which a + c.0 ≤2 a a + c.0 ≤2 a but no subcontract preorder could have a + c.0 ≤ a a + c.0 ≤ a Consequence: no independent refinement!
  • 43. Maximal pre-order It exists changing some assumptions (asymmetry between inputs and outputs) Constraining the structure of contracts: outputs choosen internally (output persistence) Strengthening the notion of compliance: when an output is performed a corresponding input is required to be already enabled, like in ready-send of MPI (strong compliance) Moving to asynchronous communication (e.g. via message queues)
  • 44. Output persistence Output persistence means that given a process state P: If P has an output transition on a and P-->P’ with αααα different from output on a, then also P’ has an output transition on a (and P' --> ) αααα √ a a b √√√√
  • 45. Syntactically… (guarantees output persistance) This holds, for instance, in WS-BPEL Outputs cannot resolve the pick operator for external choices (the decision to execute outputs is taken internally) External choice among inputs: a + b but a + b τ;a + τ;b a + b a + τ;b no external choice among outputs (and mixed choice) in contracts!
  • 46. Choreography implementations (with output persistent contracts) Projection modified: [[ ar s ]]t = τ;as if t=r RequestAlice Bob; (AcceptBob Alice + RejectBob Alice) The following services can be retrieved: [τ;RequestBob;(Accept+Reject)]Alice | [Request;(τ;AcceptAlice+τ;RejectAlice)]Bob
  • 47. Choreography implementations (with output persistent contracts) Projection modified: [[ ar s ]]t = τ;as if t=r RequestAlice Bob; (AcceptBob Alice + RejectBob Alice) The following services can be retrieved: [τ;RequestBob;(Accept+Reject)]Alice | [Request;(τ;AcceptAlice+τ;RejectAlice)]Bob [τ;RequestBob;(Accept+Reject+Retry)]Alice | [Request;(τ;AcceptAlice+τ;RejectAlice)]Bob
  • 48. Choreography implementations (with output persistent contracts) Projection modified: [[ ar s ]]t = τ;as if t=r RequestAlice Bob; (AcceptBob Alice + RejectBob Alice) The following services can be retrieved: [τ;RequestBob;(Accept+Reject)]Alice | [Request;(τ;AcceptAlice+τ;RejectAlice)]Bob [τ;RequestBob;(Accept+Reject+Retry)]Alice | [Request;(τ;AcceptAlice+τ;RejectAlice)]Bob [τ;RequestBob;(Accept+Reject+Retry)]Alice | [Request;τ;AcceptAlice]Bob
  • 49. C’ ≤ C iff for every context P [C]|P compliance implies [C’]|P compliance ≤max is a subcontract preoder ≤max includes all subcontract preorders With respect to (fair) testing not only the test P has to succeed but also the tested C Compliance testing is the maximal preorder max
  • 50. Properties of the maximal subcontract preorder If we assume outputs al to be directed to a location l (e.g. role of a choreography) we can reduce the problem: C’ ≤max C iff C’N-I(C) ≤ max C i.e. to subcontract relation when inputs not among inputs of C I(C) are restricted because compliant tests of C cannot perform reachable outputs to C that it cannot receive
  • 51. Thus… (typical in session types) External choices on inputs can be extended: a+b ≤max a (thanks to this property) Internal choices on outputs can be reduced: ττττ.al ≤max ττττ;al + ττττ;bl' (being more deterministic, as in testing)
  • 52. Input and Output knowledge Contracts with undirected outputs à la CCS property does not hold, e.g. a+b ≤max a Consider for instance (capturing) the correct system [ a ] | [ττττ; a .b] | [ττττ;b ] and the incorrect one [ a+b ] | [ττττ; a .b] | [ττττ;b ] Problem can be solved by considering knowledge of I/O of other contracts ≤I,O exploiting knowledge we have a+b ≤N,N-{b} a
  • 53. Subcontract relation contains a universal quantification over possible contexts Sound characterization resorting to a must-testing theory (should-testing [RV05]) C’ ≤ C is implied by C’ N-I(C) ≤should-testing C i.e. ≤ max coarser than testing preorder (and of simulation) Decidible Sound Characterization Based on a Must-like Testing max
  • 54. Uncontrollable contracts Trace equivalence not coarser than ≤max because contracts can include traces not leading to success Those traces not observed by tests Example: uncontrollable contracts (unsuccesful for any test) are all equivalent: a;b;0 equivalent to b;c;0
  • 55. is conformant for participant 1 to is conformant for participant n to … Choreography Choreography Conformance Contract public registry Contract public registry Service Service… Reciprocal invocations compliance guaranteed by conformance
  • 56. Definition of Relation Induced from Independence Property Hwith roles p1,p2,…,pn [C1]p1 | [C2]p2 … | [Cn]pn implements H … … contracts for p1 contracts for p2 contracts for pn conformance relation
  • 57. No Maximal Choreography Conformance Relation Consider the choreography ar s | br s that can be implemented as: [ τ;as | τ;bs ]r | [ τ;a;b + τ;b;a ]s [τ;as;τ;bs + τ;bs;τ;as ]r | [a|b]s but not as: [τ;as;τ;bs + τ;bs;τ;as ]r | [ τ;a;b + τ;b;a ]s Notice that we used output persistent contracts, so even asymmetry of I/O does not help
  • 58. Summary of Results Refinement with knowledge about other initial contracts limited to I/O actions “normal” compliance: Uncostrained contracts: maximal relation does not exist Contracts where outputs are internally chosen (output persistence): maximal relation exists and “I” knowledge is irrelevant Output persistent contracts where outputs are directed to a location: maximal relation exists and “I/O” knowledge is irrelevant strong compliance: Uncostrained contracts (where output are directed to a location): maximal relation exists and “I/O” knowledge is irrelevant queue-based (asynchronous) compliance: Uncostrained contracts (where output are directed to a location): maximal relation exists and “I/O” knowledge is irrelevant
  • 59. Summary of Results Direct conformance w.r.t. the whole choreography: maximal relation does not exist (all kinds of compl.) Sound characterizations of the relations obtained (apart from the queue based) by resorting to an encoding into (a fair version of) must testing [RV05] With respect to testing: both system and test must succeed Much coarser: all non-controllable systems are equivalent As a consequence: Algorithm that guarantees compliance Classification of the relations w.r.t. existing pre-orders: coarser than (fair) must testing (e.g., they allow external non-determinism on inputs to be added in refinements)
  • 60. Plan of the Choreographies and Orchestrations Contract-based service discovery A dynamic update mechanism Conclusion Plan of the Talk
  • 61. Updatable processes/contracts (with Marco Carbone) How to model updatable processes? Eg. services which receive workflow from the environment in order to interact with it internal “adaptable/mutable” subparts of cloud behaviour By extending choreographies and orchestrations/contracts with updatable parts (named scopes) X[H] and update actions/primitives X{H}
  • 62. Buyer-Seller-Bank Example Consider the running system: [X[CmcBuyer]| C]buyer | [C']seller | [X[CmcBank]|C'']bank if the following update is performed: X{buyer:CvisaBuyer, bank:CvisaBank} the system becomes: [X[CvisaBuyer]| C]buyer | [C']seller | [X[CvisaBank]|C'']bank
  • 63. Updating a scope, graphically X X→ X
  • 64. Updating a scope, graphically X X→ X proj
  • 65. Updating a scope, graphically X X→ X X→ proj proj
  • 66. Updating a scope, graphically X X→ X X→ proj projproj
  • 67. Dynamic Choreographies Each scope X associated to a set of roles given function type(X) = {r1,…,rn} Global choreography language: H ::= ar s | 1 | 0 | H;H | H+H | H|H | H* | X[H] | Xr{H} with roles(H) included in type(X)
  • 68. Extending choreography semantics with scope and updates where H[H'/X] turns scopes X[H''], for any H'', occurring inside H into X[H']
  • 69. Dynamic Orchestrations A language for orchestrations: C ::= a | ar | 1 | 0 | C;C | C+C | C|C | C* | X[C] | X{r1:C1, …, rn:Cn} P ::= [C]r | P|P A distributed update can be performed if no scope X[C] of roles in type(X) has started
  • 70. Standard “canonical” projection [Bravetti, Zavattaro SC 2007] Projection [[ H ]]t of choreography H to participant t as if t=r [[ ar s ]]t = a if t=s 1 otherwise [[H;H’]]t=[[H]]t ; [[H’]]t [[H|H’]]t=[[H]]t | [[H’]]t [[H+H’]]t=[[H]]t + [[H’]]t [[H*]]t=[[H]]t*
  • 71. Extended…. Projection [[ H ]]t of choreography H to participant t X[ [[H]]t ] if t in type(X) [[ X[H] ]]t = 1 otherwise X{t1:[[H]]t1, …, tn:[[H]]tn } if t = r [[ Xr{H} ]]t = 1 otherwise where type(X) = {t1,…,tn}
  • 72. Extension of Connectedness and external updates Constraint: there are not (and cannot be produced) scopes in parallel with the same name X so not to confuse starts of different scopes Open transitions: update choreographies H in a scope X from "outside" provided: H is connected The update does not violate the constraint above
  • 73. Main Theorem Projection of a connected choreography H produces an implementation of H Traces considered by implementation definition also include open transitions
  • 74. Channels "a" statically associated to choreographies H (global type) Typing a concrete langauge with sessions (session types)
  • 76. Session Typing is not trivial Γ typing environment each channel is typed with a choreography ∆ maps: each started session into an orchestration
  • 77. Typing scopes and updates Inside a scope X[] we may communicate using several started sessions We must update all session (types) the process in the scope is engaged in Updates are going to update code inside multiple sessions must be allowed individually by their types
  • 78. An idea of the typing rules
  • 79. Example with two channels
  • 81. Plan of the Choreographies and Orchestrations Contract-based service discovery A dynamic update mechanism Conclusion Plan of the Talk
  • 82. Conclusion We are working on: Use of the above in the context of session types for typing a concrete language: typing rules and properties (e.g. subject reduction)
  • 83. Conclusion Open problems: Complete characterization of compliance testing work in this direction has been done in [Bernardi, Hennessy Concur 2013] where however uncontrollable processes are not characterized and fairness is not considered Refinement theory for dynamic (with updates) choreographies/contracts
  • 84. References M. Bravetti and G. Zavattaro. Contract based Multi-party Service Composition. In FSEN’07. (full version in Fundamenta Informaticae) M. Bravetti and G. Zavattaro. Towards a Unifying Theory for Choreography Conformance and Contract Compliance. In SC ’07. M. Bravetti and G. Zavattaro. A Theory for Strong Service Compliance. In Coordination’07. (full version in MSCS) M. Bravetti and G. Zavattaro. Contract Compliance and Choreography Conformance in the presence of Message Queues.In WS-FM ’08 M. Bravetti and G. Zavattaro. On the Expressive Power of Process Interruption and Compensation. In WS-FM ’08 M. Bravetti, I. Lanese, G. Zavattaro. Contract-Driven Implementation of Choreographies.In TGC '08 M. Bravetti, G. Zavattaro. Contract-Based Discovery and Composition of Web Services. In Formal Methods for Web Services, Advanced Lectures '09, LNCS 5569 M. Bravetti, C. Di Giusto, J. A. Pérez, and G. Zavattaro. A Calculus for Component Evolvability (Extended Abstract). In FACS’10 M. Bravetti, C. Di Giusto, J. A. Pérez, and G. Zavattaro. Adaptable Processes (Extended Abstract). In FORTE/FMOODS’11 M. Boreale, M. Bravetti. Advanced Mechanisms for Service Composition, Query and Discovery in Rigorous Software Eng. for Service-Oriented Systems '11, LNCS 6582 M. Bravetti, M. Carbone, T. Hildebrandt, I. Lanese, J. Mauro, J. A. Pérez, G. Zavattaro: Towards Global and Local Types for Adaptation. In BEAT2 '13, LNCS 8368