Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Nominal Calculi for Transactions: CJOIN Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration.

Similar presentations


Presentation on theme: "1 Nominal Calculi for Transactions: CJOIN Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration."— Presentation transcript:

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 DEDE  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 DEDE  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 DEDE  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 DEDE  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 DEDE  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  ]  QQ

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!


Download ppt "1 Nominal Calculi for Transactions: CJOIN Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration."

Similar presentations


Ads by Google