Download presentation
Presentation is loading. Please wait.
1
1 Nominal Calculi for Transactions: CJOIN Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration IMT- Institutions Markets Technologies - Alti Studi Lucca
2
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 2 Models and Languages for Coordination and Orchestration Contents Introduction cJoin: syntax + semantics Examples Serializability cJoin in Join
3
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 3 Models and Languages for Coordination and Orchestration Contents Introduction cJoin: syntax + semantics Examples Serializability cJoin in Join
4
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 4 Models and Languages for Coordination and Orchestration Flow Diagrams meet Process Description Languages [from cCSP slides] Many proposals to describe business processes unambiguously XML-based WSFL, XLANG, WSCI, BPEL4WS Extensions of known mobile calculi committed Join, t-calculus, web -calculus Flow-based Compensating CSP (Butler, Hoare, Ferreira) previously Structured Activity Compensation (StAC) Sagas Calculus (Bruni, Melgratti, Montanari)
5
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 5 Models and Languages for Coordination and Orchestration Interaction and Agreements In long lasting negotiations partial agreements can be reached and locally committed by parties to be compensated in case of failure to be published / confirmed on success In commercial applications, separately designed and implemented components must interact avoiding ad-hoc proprietary solutions offering alternatives to centralized transaction managers hiding the coordination layer (separation of concerns)
6
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 6 Models and Languages for Coordination and Orchestration Distributed Negotiations Negotiations / Contracts commit, abort, compensation hierarchical decisions dynamic membership fully distributed control Process cooperation coordination / orchestration / choreography different platforms and policies Data integration unstructured documents in different formats
7
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 7 Models and Languages for Coordination and Orchestration Prerequisites for Modeling Contracts Local and global resources Local sub-contracts and decisions Global results posted upon commit Abort of ongoing contracts All participants must be informed Compensations can be activated Either abort or commit (no divergence) Dynamic joining of participants Contracts can be merged Nested structure of contracts
8
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 8 Models and Languages for Coordination and Orchestration cJoin committed Join Process Description Language (PDL) presentation Non ACID (unrealistic in highly distributed systems) Multiway (several parties can start separately but commit on reached agreement) Compensations (certain acts cannot be undone) Programmable commit / abort / compensation Concurrency and distribution (Distributed 2PC) Different levels of abstraction
9
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 9 Models and Languages for Coordination and Orchestration Contents Introduction cJoin: syntax + semantics Examples Serializability cJoin in Join
10
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 10 Models and Languages for Coordination and Orchestration Committed Join: Syntax M,N::= 0 | x ŷ | M|N P,Q ::=M | def D in P | P|Q | abort | [P:Q] D,E ::=J P | D E | J P J,K ::= x ŷ | J|K messages programmable abort compensation contract boundaries merge definitions (boards): defined boards must be disjoint from ordinary defined names
11
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 11 Models and Languages for Coordination and Orchestration Committed Join: Semantics 0 P|Q P,Q DEDE D,E def D in P D dn(D), P dn(D) range( ) fresh J P, J J P, P
12
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 12 Models and Languages for Coordination and Orchestration Committed Join: Semantics 0 P|Q P,Q DEDE D,E def D in P D dn(D), P dn(D) range( ) fresh J P, J J P, P [P:Q] { P, Q } compensation is kept frozen contract P can evolve in isolation
13
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 13 Models and Languages for Coordination and Orchestration Committed Join: Semantics 0 P|Q P,Q DEDE D,E def D in P D dn(D), P dn(D) range( ) fresh J P, J J P, P [P:Q] { P, Q } { M|def D in 0, Q } M commit global resources
14
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 14 Models and Languages for Coordination and Orchestration Committed Join: Semantics 0 P|Q P,Q DEDE D,E def D in P D dn(D), P dn(D) range( ) fresh J P, J J P, P [P:Q] { P, Q } { M|def D in 0, Q } M { abort |P, Q } Q compensation on abort
15
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 15 Models and Languages for Coordination and Orchestration Committed Join: Semantics 0 P|Q P,Q DEDE D,E def D in P D dn(D), P dn(D) range( ) fresh J P, J J P, P [P:Q] { P, Q } { M|def D in 0, Q } M { abort |P, Q } Q J 1 |…|J n P, i { J i , S i, Q i } J 1 |…|J n P, {P , i S i, i Q i } merge n ongoing contracts
16
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 16 Models and Languages for Coordination and Orchestration Join vs cJoin PROPOSITION cJOIN is a conservative extension of JOIN: P J Q iff P cJ Q (for P and Q JOIN processes) (Proof by obviousness ;-) )
17
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 17 Models and Languages for Coordination and Orchestration Playful Digression: 5 Fast Proof Methods... Proof by tautology "It's true because it's true." Proof by logic "If it is on the exercise list, then it must be true!" Proof by lost reference "I know I saw it somewhere......" Proof by lack of interest "Does anyone really want to see this?" Proof by insignificance "Who really cares, anyway?"
18
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 18 Models and Languages for Coordination and Orchestration Playful Digression:... and 5 Irrefutable Proof Methods Proof by divine word "And the Lord said, 'Let it be true,' and it was true." Proof by supplication "Oh please, let it be true." Proof by necessity "It had better be true, or the entire structure of mathematics would crumble to the ground." Proof by design "If it's not true in today's math, invent a new system in which it is."
19
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 19 Models and Languages for Coordination and Orchestration Contents Introduction cJoin: syntax + semantics Examples Serializability cJoin in Join
20
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 20 Models and Languages for Coordination and Orchestration A Multi-Way Contract …, J [P:Q], J …, J [P:Q], [P :Q ] …, J’ [P’:Q’], J’ …, J’ [P’:Q’], [P’ :Q’ ] … …, J 1 |J 2 M, [J 1 :Q ],[J 2 :Q’ ] …, J 1 |J 2 M, [M :Q |Q’ ] …, [M :Q |Q’ ] …, M
21
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 21 Models and Languages for Coordination and Orchestration Multi-Level Nesting …, J [ [P 1 :Q 1 ]|[P 2 :Q 2 ] :Q], J …, J [ [P 1 :Q 1 ]|[P 2 :Q 2 ] :Q], [ [P 1 :Q 1 ] | [P 2 :Q 2 ] : Q ] … …, [[M 1 :Q 1 ]|[P 2 :Q 2 ]:Q ] …, [ M 1 | [P 2 :Q 2 ] : Q ] … …, [ M 1 | [M 2 :Q 2 ] : Q ] …, [ M 1 | M 2 : Q ] …, M 1 , M 2
22
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 22 Models and Languages for Coordination and Orchestration Nested Abort I …, J [ [P 1 :Q 1 ]|[P 2 :Q 2 ] :Q], J …, J [ [P 1 :Q 1 ]|[P 2 :Q 2 ] :Q], [ [P 1 :Q 1 ] | [P 2 :Q 2 ] : Q ] … …, [ [abort :Q 1 ] | [P 2 :Q 2 ] : Q ] …, [ Q 1 | [P 2 :Q 2 ] : Q ] … …, [ M 1 | [M 2 :Q 2 ] : Q ] …, [ M 1 | M 2 : Q ] …, M 1 , M 2
23
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 23 Models and Languages for Coordination and Orchestration Nested Abort II …, J [ [P 1 :Q 1 ] |P 2 : Q ], J …, J [ [P 1 :Q 1 ] | P 2 : Q ], [ [P 1 :Q 1 ] | P 2 : Q ] … …, [ [P 1 :Q 1 ] | abort : Q ] QQ
24
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 24 Models and Languages for Coordination and Orchestration Hotel Booking I H def WaitBooking [ def request o o $ | price $ price $ | confirm v BookedRoom v price $ abort in offeringRoom request,confirm : Q ] BookedRoom v … in WaitBooking | …
25
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 25 Models and Languages for Coordination and Orchestration Hotel Booking I H def WaitBooking [ def request o o $ | price $ price $ | confirm v BookedRoom v price $ abort in offeringRoom request,confirm : Q ] BookedRoom v … in WaitBooking | … C def BookingHotel [def hotelMsg r,c def offer $ c visa | HotelFound offer $ abort in r offer in searchRoom hotelMsg : Q’ ] in BookingHotel | …
26
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 26 Models and Languages for Coordination and Orchestration Hotel Booking I H def WaitBooking [ def request o o $ | price $ price $ | confirm v BookedRoom v price $ abort in offeringRoom request,confirm : Q ] BookedRoom v … in WaitBooking | … C def BookingHotel [def hotelMsg r,c def offer $ c visa | HotelFound offer $ abort in r offer in searchRoom hotelMsg : Q’ ] in BookingHotel | … HB def searchRoom hm | offeringRoom r,c hm r,c in H | C
27
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 27 Models and Languages for Coordination and Orchestration Hotel Booking II …, WaitBooking, BookingHotel …, […, offeringRoom request,confirm : Q ], […, searchRoom hotelMsg : Q’] …, […, hotelMsg request,confirm : Q | Q’] …, […, request offer : Q | Q’] …, […, offer $ , price $ : Q | Q’] …, […, confirm visa , HotelFound, price $ : Q | Q’] …, […, BookedRoom visa , HotelFound : Q | Q’] …, BookedRoom visa , HotelFound
28
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 28 Models and Languages for Coordination and Orchestration Trip Booking I H as before F def WaitBooking [ def request o o $ | price $ price $ | confirm v BookedFlight v price $ abort in offeringFlight request,confirm : Q ] BookedFlight v … in WaitBooking | … local name, different from homonym name in H
29
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 29 Models and Languages for Coordination and Orchestration Trip Booking II C def hotelOK fc | flightOK hc fc | hc BookingHotel [def hotelMsg r,c def offer $ c visa | hotelOK flightConf offer $ abort flightConf HotelFound in r offer in searchRoom hotelMsg : Q’ ] BookingFlight [def flightlMsg r,c def offer $ c visa | flightOK hotelConf offer $ abort hotelConf FlightFound in r offer in searchFlight flightMsg : Q’’ ] in BookingHotel | BookingFlight | … TB def searchRoom hm | offeringRoom r,c hm r,c searchFlight fm | offeringFlight r,c fm r,c in H | F | C both needed to commit
30
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 30 Models and Languages for Coordination and Orchestration Committed Join Features Negotiations can be defined in terms of concurrent sub-negotiations Cooperation between contracts are given by merging definitions Global resources produced inside a negotiation are made available at commit time Commit requires termination Programmable abort and compensation
31
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 31 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef
32
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 32 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def … in lst nil | k add, tell, close
33
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 33 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def nil ... ... lst y | add x … lst y | tell v … lst y | close … in lst nil | k add, tell, close
34
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 34 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def nil ... ... lst y | add x def z v,t id x v | y v, t id in lst z lst y | tell v … lst y | close … in lst nil | k add, tell, close
35
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 35 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def nil ... ... lst y | add x def z v, t id x v | y v, t id in lst z lst y | tell v [def t id 0 in y v, t id | lst y : lst y ] lst y | close … in lst nil | k add, tell, close
36
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 36 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def nil v, t id t id lst y | add x def z v, t id x v | y v, t id in lst z lst y | tell v [def t id 0 in y v, t id | lst y : lst y ] lst y | close … in lst nil | k add, tell, close
37
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 37 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def nil v, t id t id lst y | add x def z v, t id x v | y v, t id in lst z lst y | tell v [def t id 0 in y v, t id | lst y : lst y ] lst y | close 0 in lst nil | k add, tell, close
38
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 38 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def nil v, t id t id lst y | add x def z v, t id x v | y v, t id in lst z lst y | tell v [def t id 0 in y v, t id | lst y : lst y ] lst y | close 0 in lst nil | k add, tell, close Emp employees a,t,c a Alice | a Bob | t News
39
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 39 Models and Languages for Coordination and Orchestration Example: Mailing List I ML MailingList k MLDef MLDef def nil v, t id t id lst y | add x def z v, t id x v | y v, t id in lst z lst y | tell v [def t id 0 in y v, t id | lst y : lst y ] lst y | close 0 in lst nil | k add, tell, close Emp employees a,t,c a Alice | a Bob | t News SYS def ML Emp in MailingList employees
40
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 40 Models and Languages for Coordination and Orchestration INIT DISPATCH COMMIT Example: Mailing List II …, MailingList employees …, lst nil , employees add, tell, close …, lst nil , add Alice , add Bob , tell News …, z 1 v, t id Alice v | nil v, t id , lst z 1 , add Bob , tell News …, z 2 v, t id Bob v | z 1 v, t id , lst z 2 , tell News …, [ t id 0, z 2 News, t id , lst z 2 : lst z 2 ] …, [ t id 0, Bob News , z 1 News, t id , lst z 2 : lst z 2 ] …, [ t id 0, Bob News , Alice News , nil News, t id , lst z 2 : lst z 2 ] …, [ t id 0, Bob News , Alice News , t id , lst z 2 : lst z 2 ] …, [ t id 0, Bob News , Alice News , lst z 2 : lst z 2 ] …, [ Bob News , Alice News , lst z 2 , t id 0 : lst z 2 ] …, Bob News , Alice News , lst z 2
41
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 41 Models and Languages for Coordination and Orchestration EIGHTH HOMEWORK Modify Emp and MLDef to serialize the subscriptions to the list and the dispatch of the news, i.e. in such a way that: Bob is subscribed only after Alice the news is dispatched only after Bob is subscribed
42
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 42 Models and Languages for Coordination and Orchestration ZS nets, Join and cJoin ZS nets can be encoded in Join by attaching the dynamic creation of a local DTC to transitions Implementation of D2PC (transparent to users) Tokens must carry several channel names Each firing must undergo local DTCs approval cJoin primitives allow a straightforward encoding No further protocol is needed Tokens carry just one contract identifier Firings directly correspond to reactions
43
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 43 Models and Languages for Coordination and Orchestration ZS nets in cJoin I We encode basic nets, which are expressive enough: fork open join close calc [[ E open e ]] = E [ def z 0 in e z : E ] [[ e calc e’ ]] = e z e’ z [[ e fork e’, e’’ ]] = e z e’ z | e’’ z [[ e’, e’’ join e ]] = e’ z’ | e’’ z’’ e z’ [[ e close E ]] = e z E given a net (T,S) we define an agent def [[ T ]] in [[S]], where dummy definition (JOIN way of declaring a local id) z’ and z’’ have now identical scope and meaning
44
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 44 Models and Languages for Coordination and Orchestration THEOREM (S, ) * (S', ) iff def [[ T ]] in [[S]] * def [[ T ]] in [[S']] ZS nets in cJoin II
45
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 45 Models and Languages for Coordination and Orchestration Matching the Prerequisites Local and global resources Local sub-contracts and decisions Global results posted upon commit Abort of ongoing contracts All participants must be informed Compensations can be activated Either abort or commit (no divergence) Dynamic joining of participants Contracts can be merged Nested structure of contracts membranes / scoping nesting commit reaction several variants of abort would limit the expressiveness merge definitions (boards) multi-level
46
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 46 Models and Languages for Coordination and Orchestration Contents Introduction cJoin: syntax + semantics Examples Serializability cJoin in Join
47
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 47 Models and Languages for Coordination and Orchestration Serializability A serializable transaction admits an abstract representation as a single transition cJoin negotiations may interact with other negotiations (not serializable in the previous sense) But all cooperating negotiations can be viewed as a single transition Moreover, we would like this property to hold at every level of nesting
48
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 48 Models and Languages for Coordination and Orchestration Shallowness A simple type system guarantees serializability Shallow processes the start of a sub-negotiation can be postponed until all the cooperating sub-negotiations needed to commit can be generated inside its parent negotiation Proof via correspondence w.r.t. big step semantics
49
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 49 Models and Languages for Coordination and Orchestration P is shallow if every definition D in P satisfies: Any reaction in shallow processes increases the height of the nesting structure by at most 1 Shallow Processes nest ( 0 ) = nest ( abort ) = nest ( x ŷ ) = 0 nest ( def D in P ) = nest ( P ) nest ( [ P : Q ]) = nest ( P ) + 1 nest ( P | Q ) = max{nest ( P ), nest ( Q )} either D = J P, where nest ( P ) = 0, or P = [ R : Q ] and nest ( R | Q ) = 0 or D = J P, and nest (P) = 0
50
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 50 Models and Languages for Coordination and Orchestration Shallow board definitions are ranged over by B, B',... A shallow process P is stable if nest ( P ) = 0 Stable processes are ranged over by S, S',... Stable Processes
51
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 51 Models and Languages for Coordination and Orchestration Serializability Serializability as big step reduction relation ( ) between shallow processes Theorem: S * cJ S’ iff S S’ D ├ P D ├ P’ D ├ Q D ├ Q’ D ├ P | Q D ├ P’ | Q’ (Par) D ├ P D ├ P’’ D ├ P’’ D ├ P’ D ├ P D ├ P’ (Seq) D J P ├ J D J P ├ P (Global Firing) |B| ├ S |B| ├ S’ D B ├ [S : Q] D B ├ [S’ : Q] (Local Firing) D i J i S ├ I [ D i ├ J i | S i : Q i ] D I J i S ├ [ i D i ├ I S i | S : I Q i ] (Merge) D ├ [M | D’ ├ 0 : S] D ├ M (Local Commit) D ├ [abort | P : S] D ├ S (Abort) D ├ P D ├ P (Idle)
52
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 52 Models and Languages for Coordination and Orchestration Contents Introduction cJoin: syntax + semantics Examples Serializability cJoin in Join
53
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 53 Models and Languages for Coordination and Orchestration Encoding of cJoin in Join Aim: Define an implementation of cJoin in Join Associate to every cJoin process a Join process that simulates its behavior Ideas: Consider flat processes only Identification of basic forms for definitions expressive enough to model all flat cJoin processes a type system singles out canonical forms of processes Reuse controllers of the D2PC protocol
54
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 54 Models and Languages for Coordination and Orchestration Flat cJoin Negotiations cannot be nested Type system for cJoin Processes: P: 0, P does not contain [_:_] at all P: 1, P may contain [_:_] just in definitions P: 2, P may have/generate flat negotiations, not nested D: 0, D does not contain [_:_] at all D: 1, D may initiate flat negotiations, not nested Subject Reduction holds for 0 and 2 not for 1 Join Processes have type 0 Flat cJoin: The sub-calculus of all P: 2
55
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 55 Models and Languages for Coordination and Orchestration Canonical Flat cJoin Inspired by the basic shapes of ZS nets Few elementary definition patterns Any flat process can be written in canonical form canonical processes are flat any process is bisimilar to its canonical form Open xŷ Pxŷ P & P: 2 & count(P) = 1 Ord-Mov xŷ Pxŷ P & P: 1 & count(P) 2 Merge-Mov xŷ Pxŷ P & P: 0 & count(P) 2 Ord-Join x ŷ 1 | x ŷ 2 P & P: 1 & count(P) = 1 Merge-Join x ŷ 1 |…|x ŷ n P & P: 0 & count(P) = 1
56
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 56 Models and Languages for Coordination and Orchestration Encoding: Main Ideas Any message in a negotiation is managed by a coordinator Coordinators perform a slight variant of the D2PC protocol handling of failures is more complex here Adequacy theorems: correctness and completeness of compilation JoCaml has been extended with cJoin primitives PhD Thesis of Hernán Melgratti
57
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 57 Models and Languages for Coordination and Orchestration Concluding remarks cJoin models multi-way transactions by describing interacting agents but not their global structure choreography is the main issue Flat cJoin can be implemented in Join commit is fully distributed extensions of other Join implementations are planned cJoin compensations do not undo precommitted activities can such compensations be encoded in cJoin?
58
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 58 Models and Languages for Coordination and Orchestration Recent Related Work: Extensions of -calculus t inspired by long-running transactions in BizTalk additional primitives context(P,P f,P c ) done abort unique entry point transactional contexts are not isolated not influencing commit / abort web timed variant of t
59
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 59 Models and Languages for Coordination and Orchestration References Nested commits for mobile calculi: extending join (Proc. IFIP-TCS’04, Kluwer) R. Bruni, H. Melgratti, U. Montanari Flat committed join in join (Proc. COMETA’03, ENTCS) R. Bruni, H. Melgratti, U. Montanari Models and languages for global computing transactions, Part II (PhD Thesis, Univ. of Pisa, 2005) H. Melgratti
60
Roberto Bruni @ IMT Lucca 20 April 2005 Institutions Markets Technologies IMT 60 Models and Languages for Coordination and Orchestration That's All Folks!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.