1 / 61

Process Composition

Process Composition. 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

ronda
Télécharger la présentation

Process Composition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 Web Services: CSP/Pi-Calculus/Mealy

  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 eventsoractions • Visible actionsS Interaction with other processes, communication • Invisible actiont Internal computation steps Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  5. CSP’s Syntax (Cont’ed) • 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 Web Services: CSP/Pi-Calculus/Mealy

  6. CSP’s Syntax (Cont’ed) • Parallel operator w/synchronization: P||Q • P and Q proceedin 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) Web Services: CSP/Pi-Calculus/Mealy

  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) Web Services: CSP/Pi-Calculus/Mealy

  8. Example • ADD2 =(in1?xin2 ?yout !(x+y)  ADD2) • ADD2 =(in1?xin2 ?yout !(x+y)  ADD2) |(in2?yin1 ?xout !(x+y)  ADD2) • SQ =(out?zsqr !square(z)SQ) • ADDSQ = ADD2 || SQ = ? • (in1?xin2 ?yout !(x+y)  ADD2) |(in2?yin1 ?xout !(x+y)  ADD2)|| (out?zsqr !square(z)SQ) • (in1?xin2 ?yout !(x+y)  ADD2)|| (out?zsqr !square(z)SQ) | (in2?yin1 ?xout !(x+y)  ADD2)|| (out?zsqr !square(z)SQ) Web Services: CSP/Pi-Calculus/Mealy

  9. Example • ADDSQ • (in1?xin2 ?yout !(x+y)  ADD2)|| (out?zsqr !square(z)SQ) | (in2?yin1 ?xout !(x+y)  ADD2)|| (out?zsqr !square(z)SQ) • in1?xin2 ?y (out !(x+y)  ADD2)|| (out?zsqr !square(z)SQ)| in2?yin1 ?x(out !(x+y)  ADD2)|| (out?zsqr !square(z)SQ) • in1?xin2?y out!(x+y)sqr!square(x+y)ADD2 || SQ| … • in1 ?x in2 ?y out !(x+y)sqr !square(x+y) ADDSQ | … Web Services: CSP/Pi-Calculus/Mealy

  10. BPEL : CSP Semantics • BPEL interactions can be modeled in CSP • Three main activities: invoke, receive, reply <invoke partner=“...” portType=“...” operation=“...” inputContainer= xoutputContainer=y/> partner-port-in ! xpartner-port-out ? y … <receive partner=“...” portType=“...” operation=“...” container=x [createInstance=“...”] /> my-port-in ? x… <reply partner=“...” portType=“...” operation=“...” container =y /> … my-port-out ? y… Web Services: CSP/Pi-Calculus/Mealy

  11. BPEL : CSP Semantics • Synchronous communication • Advantages: • Easier to analyze • Well studied • Disadvantages: • Not completely autonomous Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  13. Communications in p-Calculus • Processes communicate on channels: • c<M> send message M on channel c • c(x) receives x on channel c • Sequencing: • c<M>.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 Web Services: CSP/Pi-Calculus/Mealy

  14. Examples • For example we might define Speaker = air<M> Phone= air(x).wire<x> ATT=wire(x).fiber<x> System=Speaker|Phone|ATT • Communication between processes is modeled by reduction: Speaker|Phonewire<M> wire<M>|ATTfiber<M> • Composing these reductions we get: Speaker|Phone|ATT fiber<M> Web Services: CSP/Pi-Calculus/Mealy

  15. Channel Visibility • Anybody can monitor an unrestricted channel: • Consider that we define WireTap=wire(x).wire<x>.NSA<x> • Copies the messages from the wire to NSA • Possible since the name “wire” is globally visible • Now WireTap | wire<M> | ATT  wire<M>.NSA<M> | ATT  NSA<M> |fiber<M> Web Services: CSP/Pi-Calculus/Mealy

  16. Restriction • The restriction operator “(nc) 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)…|(nwire) (wire<M>|ATT) wire(x)…|fiber<M> • The scope of the name “wire” is restricted • There is no conflict with the global “wire” Web Services: CSP/Pi-Calculus/Mealy

  17. Restriction and Scope • Restriction • is a binding construct • is lexically scoped • allocates a new object (a channel) (nc) p is like “let c=new Channel() in p” • In particular, c can be sent outside its scope • But only if “p” decides so Web Services: CSP/Pi-Calculus/Mealy

  18. First-Class Channels • A channel c can leave its scope of declaration • via a message d<c> 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 Web Services: CSP/Pi-Calculus/Mealy

  19. Example of First-Class Channels Consider: MobilePhone = air(x).cell<x> ATT1= wire<cell> 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 ncell Web Services: CSP/Pi-Calculus/Mealy

  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: ((nc) p) | q =(nc)(p |q) if c not free in q • Renaming is needed in general: ((nc) p) | q =((nd) [d/c] p)|q =(nd) ( [d/c] p |q ) where “d” is fresh (does not appear in p or q) Web Services: CSP/Pi-Calculus/Mealy

  21. Example, Continued (n cell)( MobilePhone | ATT1) | ATT2 = (ncell)( MobilePhone | ATT1| ATT2)  (ncell)( MobilePhone | cell(x).fiber<x>) • Scope extrusion distinguishes the p-calculus from other process calculi Web Services: CSP/Pi-Calculus/Mealy

  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) x<y>.p sending x(y).p receiving p | q parallel composition !p replication (nx) p restriction • Note that only variables can be channels and messages Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  24. Global Models Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  28. WS-CDL Global Model • Communication, Concurrency and Replication • When Clientihasstarted an exchangewith IdleServer • No other Clientj canthen communicatewith the server • Until Clientihas finishedand the server is onceagain IdleServer SYSTEM = (!Client | IdleServer) Clienti | IdleServer Clienti | BusyServer Clientj | IdleServer Clientj | BusyServer ….. Web Services: CSP/Pi-Calculus/Mealy

  29. WS-CDL and the p-Calculus Collapse send and receive into an interact on channels Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  31. BPEL and Asynchronous Communication o1 • 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 … Web Services: CSP/Pi-Calculus/Mealy

  32. Messages ware- house1 store order1 • 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 Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  34. Individual Web Services • Again, ports and storages are ignored • Internal logic of peers : finitestate control Do until halt nondeterministic choice: read an input; send an output to some other peer; halt; end choice inputmessages to othere-services Web Services: CSP/Pi-Calculus/Mealy

  35. Mealy Web Services ?o2 !r2 !b2 !b2 !r2 ?p2 ?p2 !r2 e • Mealy machines: Finite state machines with input (incoming messages) & output (outgoing messages) warehouse2 Web Services: CSP/Pi-Calculus/Mealy

  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 • consumean input, (s1, ?m, s2), or • produceoutput, (s1, !m, s2), or • make an empty (internal) move, (s1, e, s2) Web Services: CSP/Pi-Calculus/Mealy

  37. Executing a Mealy Composition • Execution halts if • All mealy peers are in final states • All queues are empty ?o2 !r2 !a ?a !b2 !b2 ?o1 ?k !k !r2 !o1 ?p2 ?p2 !o2 !r2 … … … e … store w1 warehouse2 bank Web Services: CSP/Pi-Calculus/Mealy

  38. Composite Web Service Execution ?register !accept !request !reject ?ack ?cancel !bill ?request !report !bill !terminate ?terminate Investor Stock Broker Firm !register ?accept !ack acc rep bil ?reject ?report reg ack ?bill !cancel ?bill Research Dept. ter req Web Services: CSP/Pi-Calculus/Mealy

  39. Functionality: Is it correct? Is there an unauthorized payment? … Execution: Is there a deadlock? Always terminates in finite steps? … Web Service Composition: What Now? authorize store bank ok bill2 order1 receipt1 payment1 payment2 order2 bill1 receipt2 ware- house1 ware- house2 Web Services: CSP/Pi-Calculus/Mealy

  40. ConversationPolicies Start RequestPending AB: “Request bid” BA: “Bid=x” AB: “CounterBid=x” BA: “Bye” B’s ReplyPending A’s ReplyPending BA: “CounterBid=x” BA: “Reject” BA: “Accept” AB: “Reject” AB: “Accept” Terminate/Success Terminate/Failure • A conversation: a sequence of messages between two parties order Store Supplier receipt Web Services: CSP/Pi-Calculus/Mealy

  41. Multi-Party Conversations store bank Watcher ware- house1 ware- house2 • Watcher: “records” the messages as they are sent authorize ok payment1 payment2 order2 receipt1 bill2 order1 a k o1 o2 b1 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? Web Services: CSP/Pi-Calculus/Mealy

  42. Warehouse Example • The composition language recognized authorize store bank ok order1 bill2 receipt1 payment1 payment2 order2 receipt2 bill1 ware- house1 ware- house2 a kshuff( (o1(shuff(r1, b1p1) )*, (o2(shuff( r2, b2p2) )* ) Web Services: CSP/Pi-Calculus/Mealy

  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 store bank ok order1 bill2 receipt1 payment1 payment2 order2 receipt2 bill1 ware- house1 ware- house2 Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  45. Derivation (Q1, t1, , Qn, tn, w) (Q1, t1, , Qn, tn, w) if • peer pi takes an  move, or • peer pireads an input, or • peer pisends a message m to pj • (ti, !m, ti) i • Qj = Qj m (mappended to pj’s queue) • k i, tk=tk • kj,Qk = Qk • w = wm (watcher records the message m) Web Services: CSP/Pi-Calculus/Mealy

  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 * Web Services: CSP/Pi-Calculus/Mealy

  47. Composition Languages Are Regular? ?a a !a ?b b !b p1 p2 • CL a*b*=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 Web Services: CSP/Pi-Calculus/Mealy

  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 Web Services: CSP/Pi-Calculus/Mealy

  49. Conversations as Orchestration c a p4 p1 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? Web Services: CSP/Pi-Calculus/Mealy

  50. Two Factors c a p4 p1 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 Web Services: CSP/Pi-Calculus/Mealy

More Related