OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [wsbpel] Semantic difference in the first <receive>


Ricky,

    Doesn't explicitly separating start activities lose the ability to 
have multiple starts, which are used to support non-deterministic start 
conditions? For example, a shipping company may have a process for 
receiving shipment requests from a purchaser and seller; where both must 
send messages before the shipment can be arranged. However, the 
purchaser and seller have no way to co-ordinate to assure that one of 
them is the first to send a message to the shipping company (i.e., 
parallelism in the global process). To handle this type of situation, we 
must be able to model the idea that multiple start points (activities) 
are possible, and that once the process is started (a particular start 
activity is "fired", the other start activities become "normal" 
non-start activities instead. (This all hinges on correlation of course).

    It seems to me that the lack of more explicit start activities is a 
benefit, at least with respect to non-deterministic start. Or are you 
suggesting that the <triggeredBy> element of a process be added to the 
current BPEL vocabulary, to make it more readable?

Cheers,
-Ron

Ricky Ho wrote:

> There is no way to pass data to "initialize the variables" of a newly 
> creating process instance.  The only thing that you can do is to put a 
> <receive ... createInstance="yes"/> as the first activity so that the 
> process instance can receive external data for variable 
> initialization.  In this case, the first <receive> has very different 
> semantics from subsequent <receive> and I argue that this should be 
> model explicitly.  Therefore, rather than using the following ....
>
> <process>
>     ....
>     <sequence>
>         ....
>         <receive partner="buyer" portType="p1" operation="submitOrder" 
> variable="var1" createInstance="yes"/>
>         ....
>         <receive ..../>
>     <sequence>
> </process>
>
> We should use this ...
>
> <process>
>     ...
>     <triggeredBy>
>         <receive partner="buyer" portType="p1" variable="var1" 
> operation="submitOrder"/>
>     </triggeredBy>
>     ...
>     <sequence>
>         ....
>         <receive ..../>
>     <sequence>
> </process>
>
> Best regards,
> Ricky





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]