- From: Ricky Ho <riho@cisco.com>
- Date: Tue, 15 Apr 2003 09:15:59 -0700
- To: Assaf Arkin <arkin@intalio.com>
- Cc: public-ws-chor@w3.org
Assaf, thanks. More embedded ... >>>>Lets introduce two more roles, "Airplane Shipper" and "Truck Shipper", >>>>each has its own process flow. >>>> >>>>There are two cases here. >>>> >>>>1) Queue scenario >>>>The seller send a "shipment request" to a channel. Can both Shippers >>>>listening on this same channel but only one of them will successfully >>>>receive it ? Lets say the seller doesn't care and both shippers are >>>>competing to get the shipment request. >>In this example, lets say the "Airplane Shipper" has a completely >>different flow from the "Truck Shipper" to handle the shipment. In other >>words, it cannot be abstract out to a common process. The seller needs >>to be aware of which one has got the shipment request and deal with the >>shipper differently. Now, can both Shippers listening on this same >>channel but only one of them will successfully receive it ? > >Yes. But now you'll need them to reply to find out which one you're >talking to and adapt accordingly. Still the same model: > >receive:shipperChannel.(send:airlineResponse.... + send.truckResponse) > >So the P + Q composition still works to allow one common process to listen >but then branch into two separate flows depending on who is listening. Are you effectively saying there is a "Dispatch process" which do the following ? Process Dispatch Receive msg from channel1 switch case conditionX Send msg to channel2 default Send msg to channel3 Of course, to answer my earlier broadcast question, there can be a "Broadcast process" which do the following Process Broadcast Receive msg from channel1 Send msg to channel2 Send msg to channel3 Also, I think now is a good now to extend the example to demonstrate some mobility concept. Lets say the seller want to tell the shipper (in this case, lets only have one shipper) what the buyer's channel so that the shipper can send an "arrival notice message". Can you extend the example to show that ? >>Basically, I want to see how pi-calculus represent the "fork/join" in UML >>activity diagram. > >Fork: by sending a message to some process that starts (spawns) that >process while allowing the sending process to proceed. > >Join: by receiving a message from that process when it ends (join) so your >process blocks until the sending process completes. To confirm my understanding. So the expression of a fork/join is ... send X1.send Y1.receive X2.receive Y2 Right ? Rgds, Ricky
Received on Tuesday, 15 April 2003 13:08:39 UTC