Title: Process Composition
1Process Composition
2Process Composition Hierarchies
- Control
- Centralized control e.g., RPC/WSDL
- Mediated or orchestrated control e.g., BPEL
- Fully distributed control autonomous processes,
e.g., WS-CDL (WSCI) - Messaging
- Shared variables tight coupling, service
internal - Synchronous messaging looser coupling some
service-service interactions - Asynchronous messaging loose coupling
service-service interactions - Synchronous and asynchronous both applicable to
BPEL - WSDL/SOAP, WSDL/JMS
3Communicating Sequential Processes
- Mathematical framework for the description and
analysis of systems consisting of processes
interacting via exchange of messages - The evolution of processes is based on a sequence
of events or actions - Visible actions S
- Interaction with other processes, communication
- Invisible action t
- Internal computation steps
4The CSP Language Syntax
- Termination Stop
- Input in ? x ? P(x)
- Execute an input action on channel in, get
message x, then continue as P(x) - Output out ! x ? P(x)
- Execute an output action on channel out, send
message x, then continue as P(x) - Recursion P(y1,,yn) Body(y1,,yn)
- Process definition. P is a process name, y1,,yn
are the parameters, Body(y1,,yn) is a process
expression - Example Copy in ? x ? out ! m ? Copy
5CSPs Syntax (Conted)
- External (aka guarded) choice P Q
- Execute a choice between P and Q. Do not choose a
process which cannot proceed - Example (a ? x ? P(x)) (b ? x ? Q(x))
- Execute one and only one input action. If only
one is available then choose that one. If both
are available than choose arbitrarily. If none
are available then block. The unchoosen branch is
discarded - Internal choice P Q
- Execute an arbitrary choice between P and Q. It
is possible to choose a process which cannot
proceed
6CSPs Syntax (Conted)
- Parallel operator w/synchronization P Q
- P and Q proceed in parallel and are obliged to
synchronize on all the common actions - Example (c ? x ? P(x)) (c ! m ? Q)
- Synchronization the two processes can proceed
only if their actions correspond - Handshaking sending and receiving is
simultaneous (Buffered communication can anyway
be modeled by implementing a buffer process) - Communication m is transmitted to the first
process, which continues as P(m)
7Laws of CSP
- Equivalence of expressions useful in reasoning
about CSP processes - Many laws concerning different aspects
- Examples
- If Q does not involve e1 (e1 ? P) (e2 ?
Q) - e1 ? (P (e2 ? Q))
- Synchronization (c ? b ? P(b)) (c ! a ?
Q) - c ! a ? (P(a) Q)
8Example
- ADD2 (in1 ?x ? in2 ?y ? out !(xy) ? ADD2)
- ADD2 (in1 ?x ? in2 ?y ? out !(xy) ? ADD2)
(in2 ?y ? in1 ?x ? out !(xy) ? ADD2) - SQ (out ?z ? sqr !square(z) ? SQ)
- ADDSQ ADD2 SQ ?
- (in1 ?x ? in2 ?y ? out !(xy) ? ADD2) (in2 ?y
? in1 ?x ? out !(xy) ? ADD2) (out ?z ? sqr
!square(z) ? SQ) - (in1 ?x ? in2 ?y ? out !(xy) ? ADD2) (out ?z
? sqr !square(z) ? SQ) (in2 ?y ? in1 ?x ? out
!(xy) ? ADD2) (out ?z ? sqr !square(z) ? SQ)
9Example
- ADDSQ
- (in1 ?x ? in2 ?y ? out !(xy) ? ADD2) (out ?z
? sqr !square(z) ? SQ) (in2 ?y ? in1 ?x ? out
!(xy) ? ADD2) (out ?z ? sqr !square(z) ? SQ) - in1 ?x ? in2 ?y ? (out !(xy) ? ADD2)
(out ?z ? sqr !square(z) ? SQ) in2 ?y ? in1 ?x
? (out !(xy) ? ADD2) (out ?z ? sqr
!square(z) ? SQ) - in1?x? in2?y? out!(xy)? sqr!square(xy) ?ADD2
SQ - in1 ?x ? in2 ?y? out !(xy)? sqr !square(xy) ?
ADDSQ
10BPEL CSP Semantics
- BPEL interactions can be modeled in CSP
- Three main activities invoke, receive, reply
ltinvoke partner... portType...
operation... inputContainer x
outputContainer y /gt
partner-port-in ! x ? partner-port-out ? y ?
ltreceive partner... portType...
operation... containerx
createInstance... /gt
my-port-in ? x ?
ltreply partner... portType...
operation... container y /gt
my-port-out ? y ?
11BPEL CSP Semantics
- Synchronous communication
- Advantages
- Easier to analyze
- Well studied
- Disadvantages
- Not completely autonomous
12The p-Calculus
- The p-calculus is a process algebra
- Constructs for concurrency
- Communication on channels
- channels are first-class
- channel names can be sent on channels
- access restrictions for channels
- In p-calculus everything is a process
13Communications in p-Calculus
- Processes communicate on channels
- cltMgt send message M on channel c
- c(x) receives x on channel c
- Sequencing
- cltMgt.p sends message M on c, then does p
- c(x).p receives x on c, then does p with x
- Concurrency
- p q is the parallel composition of p and q
- Replication
- ! p creates an infinite number of replicas of p
14Examples
- For example we might define
- Speaker airltMgt
- Phone air(x).wireltxgt
- ATT wire(x).fiberltxgt
- System Speaker Phone ATT
- Communication between processes is modeled by
reduction - Speaker Phone ? wireltMgt
- wireltMgt ATT ? fiberltMgt
- Composing these reductions we get
- Speaker Phone ATT ? fiberltMgt
15Channel Visibility
- Anybody can monitor an unrestricted channel
- Consider that we define
- WireTap wire(x).wireltxgt.NSAltxgt
- Copies the messages from the wire to NSA
- Possible since the name wire is globally
visible - Now
- WireTap wireltMgt ATT ?
- wireltMgt.NSAltMgt ATT ?
- NSAltMgt fiberltMgt
16Restriction
- The restriction operator (n c) p makes a fresh
channel c within process p - n is the Greek letter nu
- The name c is local (bound) in p
- Restricted channels cannot be monitored
- wire (x) (n wire) (wireltMgt ATT) ?
- wire (x) fiberltMgt
- The scope of the name wire is restricted
- There is no conflict with the global wire
17Restriction and Scope
- Restriction
- is a binding construct
- is lexically scoped
- allocates a new object (a channel)
- (n c) p is like let c new Channel() in p
- In particular, c can be sent outside its scope
- But only if p decides so
18First-Class Channels
- A channel c can leave its scope of declaration
- via a message dltcgt from within p
- Allowing channels to be sent as messages means
communication topology is dynamic - If channels are not sent as messages (or stored
in the heap) then the communication topology is
static - This differentiates p-calculus from CSP
19Example of First-Class Channels
- Consider
- MobilePhone air(x).cellltxgt
- ATT1 wireltcellgt
- ATT2 wire(y).y(x).fiber(x)
- in
- (n cell) (MobilePhone ATT1) ATT2
- ATT1 is trying to pass cell out of the static
scope of the restriction n cell
20Scope Extrusion
- A channel is a name
- First-class names must be usable even outside
their original scope - The p-calculus allows restrictions to move
- ((n c) p) q (n c)(p q) if c not free in
q - Renaming is needed in general
- ((n c) p) q ((n d) d/c p) q (n d) (
d/c p q ) - where d is fresh (does not appear in p or q)
21Example, Continued
- (n cell)( MobilePhone ATT1) ATT2
- (n cell)( MobilePhone ATT1 ATT2)
- ? (n cell)( MobilePhone cell(x).fiberltxgt)
-
- Scope extrusion distinguishes the p-calculus from
other process calculi
22Syntax of the p-Calculus
- There are many versions of the p-calculus
- A basic version
- p, q
- nil nil process
(sometimes written 0) - xltygt.p sending
- x(y).p receiving
- p q parallel composition
- !p replication
- (n x) p restriction
- Note that only variables can be channels and
messages
23Choreography Definition Language (WS-CDL)
- Global model
- Ensured conformance
- Description language
- Not executable
- Tools
- Generators for end points
- Advanced typing
- Status
- Moving for last call end of 2004
24Global Models
25WS-CDL Global Models
- A sequential process
- Client(open, close, request, reply)
- open.request1.reply1.request2.reply2.close.0
request
Client
reply
open
close
26WS-CDL Global Models
- A repetitive process
- Client (open, close, request, reply)
- open.request1.reply1.request2.reply2.close.Client
(open, close, request, reply)
request
Client
reply
open
close
27WS-CDL Global Models
- A process with choices to make
- IdleServer (o, req, rep, c) o.BusyServer(o,
req, rep, close) - BusyServer(o, req, rep, c) req.rep.BusyServer(o,
req, rep, c) - c.IdleServer(o, req, rep, c)
request
IdleServer
BusyServer
open
reply
close
28WS-CDL Global Model
- Communication, Concurrency and Replication
- When Clienti hasstarted an exchangewith
IdleServer - No other Clientj canthen communicatewith the
server - Until Clienti has finishedand the server is
onceagain IdleServer
SYSTEM (!Client IdleServer) Clienti
IdleServer Clienti BusyServer Clientj
IdleServer Clientj BusyServer ..
29WS-CDL and the p-Calculus
Collapse send and receive into an interact on
channels
Operation Notation Meaning
Prefix p.p Sequence
Action a(y), altygt Communication
Summation a(y).p b(x).q S pi.pi Choice
Recursion p...p Repetition
Replication !p Repetition
Composition p q Concurrency
Restriction (n x) p Encapsulation
30Composition Formal Semantics
- WSDL is fundamentally message based
- So is everything based on it
- Process algebra approach to formal semantics
- BPEL CSP
- WS-CDL p-calculus
- Alternatives to process algebra
- Automata theoretic
- PSL
31BPEL and Asynchronous Communication
- Channels are assumed to be reliable
- Asynchronous, for example, the following channel
ware- house1
store
order1
send Order1
- Queues are FIFO, unbounded length
- Can simulate synchronousand also bounded queues
send Order1 receive Receipt1
32Messages
- Messages are classified into classes
- Each class is associated with one channel
- Each message class may have additional attributes
which can carry the contents of messages - For now, analysis involves no contents
- Results immediately apply to finite domain
contents
33Individual Web Services
Do until halt nondeterministic choice
read an input send an output to some
other peer halt end choice
inputmessages
to othere-services
message log
local store
34Individual Web Services
Do until halt nondeterministic choice
read an input send an output to some
other peer halt end choice
inputmessages
to othere-services
- Again, ports and storages are ignored
- Internal logic of peers finite state control
35Mealy Web Services
- Mealy machines Finite state machines with input
(incoming messages) output (outgoing messages)
warehouse2
36Technical Definition
- A Mealy web service is an FSA M (T, s, F, ?in,
?out, ? ) - T a set of states
- s the initial state
- F a set of final states
- ?in input message classes
- ?out output message classes
- ? transition relation that either
- consume an input, (s1, ?m, s2), or
- produce output, (s1, !m, s2), or
- make an empty (internal ) move, (s1, e, s2)
37Executing a Mealy Composition
?o2
!r2
?a
!a
!b2
!b2
?o1
!k
?k
!r2
!o1
?p2
?p2
!o2
!r2
e
warehouse2
bank
store
w1
- Execution halts if
- All mealy peers are in final states
- All queues are empty
38Composite Web Service Execution
Investor
Stock Broker Firm
!register
?accept
!ack
acc
rep
bil
?reject
?report
reg
ack
?bill
!cancel
?bill
Research Dept.
req
ter
39Web Service Composition What Now?
authorize
bank
store
ok
bill2
order1
receipt1
payment2
payment1
order2
receipt2
bill1
ware- house1
ware- house2
- Execution
- Is there a deadlock?
- Always terminates in finite steps?
-
- Functionality
- Is it correct?
- Is there an unauthorized payment?
40Conversation Policies
- A conversation a sequence of messages between
two parties
order
Store
Supplier
receipt
41Multi-Party Conversations
- Watcher records the messages as they are sent
authorize
ok
payment1
payment2
order2
receipt1
order1
bill2
a
k
o1
b1
o2
p1
r1
r2
b2
p2
bill1
receipt2
- A conversation is a sequence of messages the
watcher sees in a successful run (or session) - composition language the set of all possible
conversations - What properties do composition languages have?
42Warehouse Example
authorize
bank
store
ok
order1
bill2
receipt1
payment1
payment2
order2
receipt2
bill1
ware- house1
ware- house2
- The composition language recognized
a k shuff ( ( o1(shuff ( r1, b1p1) ) , (
o2(shuff ( r2, b2p2) ) )
43Web Service Composition Schema
- A composition schema is a triple (M, P, C ) where
- M finite set of message classes
- P finite set of peers (web services)
- C finite set of peer to peer channels
- Specifies the infrastructure of composition
authorize
bank
store
ok
order1
bill2
receipt1
payment1
payment2
order2
receipt2
bill1
ware- house1
ware- house2
44Global Configurations
- Given n Mealy implementationsfor composition
schema (M, P, C) - Global configuration (Q1, t1, , Qn, tn, w)
where - Qi queue contents for peer i
- ti state for peer i
- w watcher contents
45Derivation
- (Q1, t1, ?, Qn, tn, w) ? (Q1?, t1?, ?, Qn?, tn?,
w?) if - peer pi takes an ? move, or
- peer pi reads an input, or
- peer pi sends a message m to pj
- (ti, !m, ti?) ? ?i
- Qj? Qj m (m appended to pjs queue)
- ?k ? i, tk? tk
- ?k ? j, Qk? Qk
- w? wm (watcher records the message m)
46Conversations
- A halting run
- (?, s1, ?, ?, sn, ?) ? ??? ? (?, f1, ?, ?,
fn, w) - Starting from the initial configuration with
empty queues and - Ending in final states with empty queues
- A word w is a conversation if
- (?, s1, ?, ?, sn, ?) ? (?, f1, ?, ?, fn, w)
- is a halting run
- Composition language (CL) the set of all
conversations
47Composition Languages Are Regular?
?a
a
!a
?b
b
!b
p1
p2
- CL ? ab anbn
- Composition languages are not always regular
- Some may not even be context free
- Causes asynchronous communication unbounded
queue - Bounded queues or synchronous CL always regular
48Bounded Queues
- Synchronous messaging case composition language
can be recognized by the product machine - If queues are bounded, composition languages are
also regular - Production machines can be constructed
49Conversations as Orchestration
a
c
p1
p4
p2
e
d
b
p3
- Programming interactions
- Two questions
- Given Mealy peers, what conversations can they
have? - Given a conversation language, can we implement
it?
50Two Factors
a
c
p1
p4
p2
e
d
b
p3
- Local views Conversations with the same local
views are not distinguishable - abcde and acbde
- Queuing effect a peer can postpone sending a
message
51Local Views
- Local view of a conversation for a peer part of
the execution that is related to the peer - Defined as projection pp(w) for a conversation w
- Two conversations cannot be distinguished if they
have exactly the same set of local views
52Example
b
a
p2
p1
p4
p3
c
- If abc is a part of a conversation, so are bac
and bca - ppi(abc) ppi (bac) ppi (bca) a for i
1, 2 - ppi(abc) ppi (bac) ppi (bca) bc for i 3,
4
53Join
- Given languages Li over Si, ? ? i ? n
- Composition languages L are closed
underprojection-join
54Local Prepone
- If the global watcher sees
- What happens inside p?
b
a
p
!b
!a
a peer
55Local Prepone
the global watcher
b
a
a
b
local view at p
!a
!b
a peer p
a
b
56A Synthesis Result
- Given a regular language L, we can find a Mealy
composition such that its CL is the closure
- Intuitively given a regular L (e.g., ako1), we
can find Mealy peers whose conversations are not
arbitrary - Opportunity for automatic composition
- But some Mealy compositions do not relate to any
regular languages in this way
57The Converse (General Case)
- There is an Mealy compositions whose CL is
notfor every regular languages L
p1
p3
?b
!b
b
?c
!a
p2
a
c
?a
CL aibci i ?0
!c
58The Tree Case
- When the schema graph is a tree, then the Mealy
composition has a composition language equal
tofor some regular languages L - Intuitively the global behavior of bottom-up
composition is still predictable if the
composition infrastructure is a tree - In particular, adding an mediator (hub-spoke)
isnt a bad idea!
59Hub-and-spoke
- For every star-shaped composition schema, and
every regular language L, we can construct an
Mealy composition whose CL L - Good news for hub-and-spoke!
60Results of Mealy Web Services
- CLs of some Mealy compositions are not
regular,some not context free - The prepone and join closure of every regular
language CL of some composite Mealy web
services - The converse of 2. is not true in general, true
in special cases
- However if bounded queue or synchronous
- CL of every Mealy composition is regular
- Design time decision! Need to be explicit in
specifications (BPEL4WS, BPLM, )
61Communicating FSAs
- Two communicating FSAs can simulate Turing
machines
a0 a1 aq
p1
p2
b0 b1 bq