Process Composition - PowerPoint PPT Presentation

About This Presentation
Title:

Process Composition

Description:

Invisible action t. Internal computation steps. Web Services: CSP ... Examples. For example we might define. Speaker = air M Phone = air(x).wire x ATT = wire ... – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 62
Provided by: jianw6
Learn more at: http://bbs.w3china.org
Category:

less

Transcript and Presenter's Notes

Title: Process Composition


1
Process Composition
2
Process 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

3
Communicating 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

4
The 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

5
CSPs 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

6
CSPs 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)

7
Laws 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)

8
Example
  • 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)

9
Example
  • 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

10
BPEL 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 ?
11
BPEL CSP Semantics
  • Synchronous communication
  • Advantages
  • Easier to analyze
  • Well studied
  • Disadvantages
  • Not completely autonomous

12
The 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

13
Communications 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

14
Examples
  • 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

15
Channel 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

16
Restriction
  • 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

17
Restriction 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

18
First-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

19
Example 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

20
Scope 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)

21
Example, 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

22
Syntax 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

23
Choreography 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

24
Global Models
25
WS-CDL Global Models
  • A sequential process
  • Client(open, close, request, reply)
  • open.request1.reply1.request2.reply2.close.0

request
Client
reply
open
close
26
WS-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
27
WS-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
28
WS-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 ..
29
WS-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
30
Composition 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

31
BPEL 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
32
Messages
  • 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

33
Individual 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
34
Individual 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

35
Mealy Web Services
  • Mealy machines Finite state machines with input
    (incoming messages) output (outgoing messages)

warehouse2
36
Technical 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)

37
Executing 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

38
Composite Web Service Execution
Investor
Stock Broker Firm
!register
?accept
!ack
acc
rep
bil
?reject
?report
reg
ack
?bill
!cancel
?bill
Research Dept.
req
ter
39
Web 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?

40
Conversation Policies
  • A conversation a sequence of messages between
    two parties

order
Store
Supplier
receipt
41
Multi-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?

42
Warehouse 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) ) )
43
Web 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
44
Global 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

45
Derivation
  • (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)

46
Conversations
  • 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


47
Composition 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

48
Bounded 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

49
Conversations 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?

50
Two 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

51
Local 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

52
Example
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

53
Join
  • Given languages Li over Si, ? ? i ? n
  • Composition languages L are closed
    underprojection-join

54
Local Prepone
  • If the global watcher sees
  • What happens inside p?

b
a


p
!b
!a
a peer
55
Local Prepone
the global watcher
b
a



a
b

local view at p
!a
!b

a peer p
  • pp(w) should also allow

a
b


56
A 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

57
The 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
58
The 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!

59
Hub-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!

60
Results of Mealy Web Services
  1. CLs of some Mealy compositions are not
    regular,some not context free
  2. The prepone and join closure of every regular
    language CL of some composite Mealy web
    services
  3. 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, )

61
Communicating FSAs
  • Two communicating FSAs can simulate Turing
    machines

a0 a1 aq
p1
p2
b0 b1 bq
Write a Comment
User Comments (0)
About PowerShow.com