Top Banner
1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration IMT- Institutions Markets Technologies - Alti Studi Lucca
56

1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

1

Formal Languages for Flow Composition and Compensation: cCSP

Roberto BruniDipartimento di Informatica Università di Pisa

Models and Languages for Coordination and Orchestration

IMT- Institutions Markets Technologies - Alti Studi Lucca

Page 2: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

2

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Motivation Key issues in business processes languages for

WS WS Composition, Orchestration, Choreography WS Transactions Interesting for both Academy and Industry

A plethora of ad hoc proposals for standard poorly disciplined provision of "accessory" features

Design of business processes calls for rigorous mathematical foundations clean, elegant semantics well-disciplined service composition principles modular implementation

Page 3: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

3

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Flow Diagrams meet Process Description Languages

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)

Page 4: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

4

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Long-Running Transactions (L-RT)

A L-RT is an interactive component of a distributed system which must

be executed as if it were a single atomic action In principle (high-level abstraction)

it should not be interrupted or fail in the middle and it must not be interleaved with other atomic actions of

other concurrently executing components of the system In practice (implementors viewpoint)

it is not easy to keep the illusion alive in (mobile, concurrent) distributed interactive systems!

external interactions may require undo of committed activities because the transaction is interactive, familiar automatic

techniques of check-pointing and rollback are no longer adequate / applicable

the illusion of atomicity for a LRT is achieved with the aid of compensation actions supplied by the programmer

Page 5: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

5

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensations 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

Formal models are needed to discover specification bugs to reason rigorously to run simulations to ease verification

Page 6: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

6

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensations (Merriam-Webster OnLine)

To Compensate to neutralize the effect of to supply an equivalent to to provide with means of counteracting

variation to offset an error, defect, or undesired

effect The most important fact:

Compensations have a cost!

Page 7: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

7

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensations: Examples I

A client buys books in an on-line bookstore the bookstore debits client's account as the

payment for the book order the bookstore later realizes that one of the

book in the client's order is out of print to compensate the client for this problem,

the bookstore can credit the account with the amount wrongfully debited

and send a letter apologising for their mistake

Page 8: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

8

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensations: Examples II

Late cancelling of hotel reservations can involve payment of fees

Failures on credit checks can cause the abort of parallel activities (which can be partially completed) e.g. to unpackage the goods to be sent to cancel the courier booking

Statements of politicians typically require an unbounded number of nested compensations

Page 9: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

9

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Sagas Compensation is important when a system

cannot control everything, such as when interaction with other agents (including humans) is involved Garcia-Molina and Salem exploit the concept of

compensation to define the notion of a saga a saga partitions a L-RT into a sequence of several

smaller sub-transactions, where each of the sub-transactions has an associated compensation

If one of the sub-transactions in the sequence aborts, the compensation associated with those committed sub-transactions is executed in the reverse order

Page 10: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

10

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Flow Composition

A1

A2 A3

A4

A5

Page 11: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

11

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Transactional Flows

A1

A2 A3

A4

A5

Page 12: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

12

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensation Activities

A1

B1

A2

B2

A3

B3 A4

B4

A5

B5

Page 13: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

13

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensation Flow

A1

B1

A2

B2

A3

B3 A4

B4

A5

B5

Page 14: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

14

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Nested Flow Diagrams

A1

B1

A2

B2

A3

B3

PP

A4

B4

Page 15: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

15

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Approaches Interaction based Composition,

Conversational Patterns or Global Model Services describe the ways they can be

engaged in a larger process Flow Composition or Hierarchical

Patterns Similar to workflow systems: a process

describes the flow of both control and data among WS

Page 16: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

16

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

The Road to Compensating CSP

First use of process algebras for modeling compensations: StAC (Structured Activity Compensation)

by Michael Butler, Carla Ferreira et al. poorly disciplined, several variants / improvements along the

years Compensating CSP

by Michael Butler, Carla Ferreira, Tony Hoare robust formalization of compensable flow compositions closer to the spirit of Process Algebras

few key primitives inspired by BPEL

and to the independently developed saga calculus

Page 17: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

17

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensating CSP: Ingredients

Alphabet of observable actions ranged by A,B,...

Set of special events = { , !, ? } ranged by disjoint from

Interactive processes Standard processes

ranged by P,Q,... Compensable processes

ranged by PP,QQ,...

Page 18: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

18

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensating CSP: Syntax

Compensable processes

PP,QQ ::= P % Q | PP + QQ | PP ; QQ | PP || QQ | SKIPP | THROWW | YIELDD

Standard processesP,Q ::= A | [ PP ] | P + Q | P ; Q | P || Q | SKIP | THROW | YIELD

| P Q

atomic action

sequential composition

choice

parallel composition

normal termination

throw an interrupt

yield to an interrupt

interrupt handler

transaction block compensation pair

Page 19: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

19

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

PackOrder = ||iItems ( PackItem(i) % UnpackItem(i) )

FulfillOrder = BookCourier % CancelCourier || PackOrder || CreditCheck ; ( Ok ; SKIPP + NotOk ; THROWW )

Compensating CSP: Example

OrderTransaction = [ ProcessOrder ]ProcessOrder = (AcceptOrder % RestockOrder) ;

FulfillOrder

Page 20: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

20

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensating CSP:Semantics

Denotational Trace Semantics defined in a compositional style each standard process is assigned a set of

traces traces are ranged over by p,q,... they are -event-terminated sequences of actions

ex. A,B, each compensable process is assigned a set of

trace-pairs (p,q) where p is the forward trace q is the corresponding compensation trace

Page 21: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

21

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensating CSP:Ordinary Traces

All traces for standard processes have three possible shapes: A,B,

trace leading to normal termination A,B,!

trace leading to interrupt throw A,B,?

trace leading to interrupt yield pq denotes the trace obtained by juxtaposition

ex. A B, = A,B, = A,B Note:

unlike trace semantics for CSP, prefix traces are not considered

Page 22: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

22

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Atomic Actions

For any A we define

A =trace { A, }

(The process performs a single atomic event and terminates successfully)

Page 23: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

23

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Skip

SKIP =trace { }

(SKIP immediately terminates successfully)

Page 24: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

24

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Throw

THROW =trace { ! }

(THROW immediately raises an interrupt)

Page 25: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

25

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Yield

YIELD =trace { , ? }

(YIELD can either yield to a raised interrupt or terminate)

Page 26: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

26

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Choice

For any standard processes P and Q

P + Q =trace P Q

(The semantics for choice is the union of the possible traces of P and Q)

Page 27: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

27

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Sequential Composition

For any standard processes P and Q

P ; Q =trace { p;q | pP qQ }

where the sequential operator is defined on traces byp ; q = pqp ; q = p if

Page 28: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

28

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

SECOND HOMEWORK:Prove or Disprove That:For any standard processes P,Q,R,SP;(Q+R) =trace (P;Q)+(P;R)

(P+Q);R =trace (P;R)+(Q;R)

(P+Q);(R+THROW) =trace P+Q

(P;Q);R =trace (P;Q);R

P;SKIP =trace P

SKIP;P =trace P

P;THROW =trace THROW

THROW;P =trace THROW

YIELD;YIELD =trace YIELD

Page 29: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

29

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Playful Digression:10 Advanced Proof Methods I

Proof by obviousness "The proof is so clear that it need not be mentioned."

Proof by lack of sufficient time "Because of the time constraint, I leave the proof to

you." Proof by general agreement

"All in favor?. . . " Proof by majority rule

Only to be used if general agreement is impossible Proof by accident

"Hey, what have we here?!"

Page 30: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

30

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Playful Digression:10 Advanced Proof Methods II

Proof by authority "Well, Don Knuth says it's true, so it must be!"

Proof by intuition "I just have this gut feeling. . ."

Proof by intimidation "Don't be stupid; of course it's true."

Proof by terror When intimidation fails ...

Proof by deception "Now everyone turn their backs. . ."

Page 31: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

31

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Interrupt Handler

For any standard processes P and Q

P Q =trace { pq | pP qQ }

where the interrupt handling is defined on traces byp! q = pqp q = p if !

Page 32: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

32

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Useful Laws for InterruptFor any standard processes P,Q,R

(P Q) R =trace P (Q R)

SKIP P =trace SKIP

YIELD P =trace YIELD

THROW P =trace P

Page 33: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

33

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensating CSP: A Limitation

Synchronous execution of observable actions is not supported (yet)

Concurrency modeled by interleaving Processes running in parallel can synchronise

only on joint termination or on joint interruption

The kind of synchronization is decided by just looking at the terminal events of parallel traces it is convenient to define an operator for deriving

the joint terminal event

Page 34: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

34

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Compensating CSP: Joint Terminal Event

Let 1 and 2 be the terminal events of two parallel traces Their joint terminal event 1&2 is defined by1 2 1&2

!

!

!

?

?

!

?

?

!

!

!

?

?

(& is commutative)

Page 35: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

35

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Parallel Composition

For any standard processes P and Q

P || Q =trace { r | rp||q pP qQ }

wherep1 || q2 = { r1&2 | rint(p,q) }

int(p,) = int(,p) = {p} int(Ap,Bq) = { Ar | rint(p,Bq) } { Br | rint(Ap,q) }

Page 36: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

36

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace Semantics:Useful Laws for ParallelFor any standard processes P,Q,R

P || Q =trace Q || P

(P || Q) || R =trace P || (Q || R)

Page 37: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

37

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Under Which Circumstances?

P || Q =trace P;Q + Q;P

THROW || (YIELD ; P) =trace THROW + P;THROW

Page 38: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

38

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace-Pair Semantics:Compensable Choice

For any compensable processes PP and QQ

PP + QQ =trace PP QQ

(The semantics for choice is the union of the possible traces of PP and QQ)

Page 39: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

39

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace-Pair Semantics:Compensable Parallel

For any compensable processes PP and QQ

PP || QQ =trace { z | zx||y xPP yQQ }

where(p,p') || (q,q') = { (r,r') | rp||q r'p'||q' }

Page 40: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

40

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace-Pair Semantics:Compensable Sequential

For any compensable processes PP and QQ

PP ; QQ =trace { x;y | xPP yQQ }

where (p,p') ; (q,q') = (pq,q';q)(p,p') ; (q,q') = (p,p') if

something wrong?

Page 41: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

41

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace-Pair Semantics:Compensation Pair

For any standard processes P and Q

P % Q =trace { p%q | pP qQ } { (?,) }

where p % q = (p,q)p % q = (p,) if

Page 42: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

42

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace-Pair Semantics:Compensable Basic Processes

SKIPP =trace SKIP % SKIP

THROWW =trace THROW % SKIP

YIELDD =trace YIELDD % SKIP

Page 43: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

43

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace-Pair Semantics:Transaction Block

For any compensable process PP

[PP] =trace { pp' | (p!,p')PP }

{ p | (p,p')PP }

Page 44: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

44

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Trace-Pair Semantics:Other Useful LawsFor any composable processes PP;QQ andfor any standard processes P,Q

PP || QQ =trace QQ || PP

(PP || QQ) || RR =trace PP || (QQ || RR)

(PP ; QQ) ; RR =trace PP ; (QQ ; RR)

PP ; SKIPP =trace PP =trace SKIPP ; PP

THROWW ; PP =trace THROWW

YIELDD ; (P % Q) =trace (P % Q)

Page 45: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

45

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

THIRD HOMEWORKEvaluate the semantics of[ THROWW ] =trace ???

[ YIELDD ] =trace ???

A % A' ; B % B' =trace ???

Prove that: if P,P',Q,Q' terminate successfully, neither raising nor yielding to interrupts, then[ P%P' || Q%Q' || THROWW ] =trace

SKIP + (P;P') + (Q;Q') + (P||Q);(P'||Q')

Page 46: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

46

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Is the Semantics Adequate?

Formal definitions can lead to conceptual clarifications make emerge submersed aspects give insights for language design

The semantics we have seen is compositional, simple and intuitive models forward and backward flows

Is it the appropriate one? Does it match our intuition? Any other option available?

Page 47: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

47

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Semantics vs Intuition Expectations:

if no interrupt is raised a "maximal" forward flow should be executed

if an interrupt is raised, all previously-completed activities are compensated no consequent activities are executed within that

transaction if an interrupt is raised during the backward flow? what else?

How can we reasonably conclude that the semantics is "correct"?

Page 48: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

48

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Some Ideas I P = { p | pP } P A successful trace is

either a forward trace with possibly many successful transactions

PP = { p | (p,q)PP }

or a trace with possibly many successfully compensated transactions

PP = { pq | (p!,q)PP }

Page 49: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

49

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Some Ideas II Theory of "cancellation"

each (forward) A has a compensating (backward) A° AA° is "essentially" SKIP

but A°A is not SKIP

Theory of "independence" independent actions can occur in either order

ex. parallel actions A||B independency, written , is symmetric

unlike cancelling independency can be exploited to bring A and A°

closer

Page 50: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

50

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Some Ideas III Abstract effect

A° annihilates A if we remove all such pairs from a trace,

we are left with an abstract residual A(s) it gives the meaningful actions performed

Take s* and define recursively A(s) = A(pqr)

if s = pAqA°r and Bq. B A° A(s) = s

otherwise

Page 51: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

51

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Example: Cancellation

Assume A° B°, then:

A(A, B, C, C°, A°, B°, ) = A(A, B, A°, B°, ) = A(A, A°, ) = A( ) =

Page 52: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

52

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Adequacy Criterion I When considering [PP] one would like that

for any p[PP]

if p is a forward trace, then A(p) = p if p is a compensated trace, then A(p) =

this is equivalent to require that pPP . A(p) = p pPP . A(p) =

Is this assumption strong enough? If we know that it holds for PP, what can we say

about [ PP ; THROWW ]?

Page 53: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

53

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Adequacy Criterion II PP is called self-cancelling, written S(PP) if

(p,p'') PP . A(pp'') = In other words,

we must guarantee that in any execution of PP, even partial ones, the installed compensation is able to cancel the actions executed so far

We can then prove interesting properties ex. S(PP) implies A([PP;THROWW]) =trace SKIP

where A(.) is extended element-wise to set of traces

Page 54: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

54

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

A Well-Behaving Fragment We would like to characterize

syntactically a fragment of compensable processes guaranteeing the self-cancelling property it is easy to check that:

S(SKIPP), S(THROWW) and S(YIELDD) if S(PP) and S(QQ), then S(PP+QQ) if S(PP) and S(QQ), then S(PP;QQ)

But what can we say about PP||QQ ? And what about P%Q?

Page 55: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

55

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Restriction on Parallel When trying to prove that

if S(PP) and S(QQ), then S(PP||QQ) a difficulty emerges due to interleaving

in the resulting traces A and A° from PP are interleaved with actions from QQ

and vice versa To prove the thesis we must assume

that: A°B° for all A° in PP and B° in QQ

Page 56: 1 Formal Languages for Flow Composition and Compensation: cCSP Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination.

56

Roberto Bruni @ IMT Lucca 23 March 2005

Models and Languages for Coordination and Orchestration

InstitutionsMarketsTechnologies

IMT

Restriction on Compensation Pairs

P%Q provides nesting of compensations programmable compensations

These features are indeed complex ones their foundations are under investigation

A safe assumption is allowing only A%A° in place of P%Q

Then S(A%A°) trivially holds