W3C home > Mailing lists > Public > public-ws-chor@w3.org > June 2003

Re: Why event calculus might be the right model

From: Assaf Arkin <arkin@intalio.com>
Date: Fri, 20 Jun 2003 10:42:09 -0700
Message-ID: <3EF34771.4010603@intalio.com>
To: Jean-Jacques Dubray <jjd@eigner.com>
CC: public-ws-chor@w3.org, "'Martin Chapman'" <martin.chapman@oracle.com>

Jean-Jacques Dubray wrote:

>So using some of the standard pi-calc notation would the example look
>like this?
>For the buyer, the process is:
>ChangePo = _changePo.ChangePO
>Purchase(po, changePo, cancelPo,invoice)
>=_po.((ChangePo + _cancelPo.0).invoice)+invoice.0
>(assuming all messages don't need a response).
After changePO you would want to return back o the point where you can 
send another change, cancel or receive an invoice. So you would write 
that loop as :

Purchase = _po.Manage
Manage = (_changePo.Manage + _cancelPo.0 + invoice.0 + timeout.Problem)

(The pi-c notation would be a bit more verbose but essentially boils 
down to the same thing)

>I am trying to express that when a PO is sent, it can be followed by any
>number of changePo (for a certain duration?) or by a cancelPO, if the
>cancelPO happens the process stops right there, otherwise, an invoice is
>sent. How do we express that changePO or cancelPO may not happen at all?
>Is it like I did above with the +invoice? 
In the example above you reach a state where you can send a changePO, 
cancelPO or receive invoice or just not receive anything. If you send a 
changePO you return back to the same state (you would use reflextion to 
avoid recursion). Either sending cancelPO or receiving an invoice would 
end the process. When a timeout occurs you start some other process 
(just to make the example for interesting ;-) ).

>How would you add business logic like if PO accepted then (ChangePO +
>_cancelPO) can happen? Maybe it is not part of the notation.
Purchase = _po.Response
Response = accepted.Manage + rejected.0 + timeout.0
Managed = as above


Received on Friday, 20 June 2003 13:42:30 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:00:59 UTC