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] Issue - 123 - Matching <reply> with <receive>


To me it seems rather intuitive that I would slap an ID on a receive and 
then put the same ID on a reply. I am having trouble, however, seeing 
the value in adding yet another entity, messageExchange, to BPEL adds 
value over just using IDs? I do, however, see how it will make things 
more complex as now, rather than just declaring an ID on the receive and 
using it on the reply, the programmer first has to declare a 
messageExchange first.

So I'd have to throw my support behind the original R1 proposal without 
the introduction of messageExchange. But I'm happy to be educated.

	Thanks,

		Yaron

Yuzo Fujishima wrote:

> 
> 
> Danny,
> 
> First, conclusions:
> 
> I admit "pattern" may introduce more trouble than benefit, if any.
> I would like to remove the pattern attribute from the resolution
> idea.
> 
> Then, any way, the explanation:
> 
> I think pattern has four possible values: in-out, out-in, in, and out.
>    in-out: outside-originated request-response
>    out-in: inside(process)-originated request-response
>    in:     receiving notification.
>    out:    sending notification.
> 
> For <reply>, only "in-out" applies.
> 
> But for <receive>, "in-out" or "in" can be valid.
>    in-out: receiving request.
>    in:     receiving notification.
> 
> Similarly, for <invoke>, "out-in" or "out" can be valid.
>    out-in: sending request and receiving response.
>    out: sending notification.
> 
> By specifying "in" for a <receive>, we can express that
> writing a <reply> for this <receive> is invalid
> (without consulting WSDL).
> 
> For <invoke>, specifying pattern is probably just redundant,
> because it can be known from the existence of outputVariable
> attribute.
> 
> So, I think pattern attribute is not very useful.
> Sorry for the confusion.
> 
> Yuzo Fujishima
> NEC Corporation
> 
> 
> 
> Danny van der Rijn wrote:
> 
>  > i like your R1 solution, and that it can be omitted if it is not 
> necessary
>  > for disambiguation, but think that the "pattern" attribute has no place
>  > here.  how would it be validated?  what exactly is it for?
>  >
>  > danny
>  >
>  > ----- Original Message -----
>  > From: "Yuzo Fujishima" <fujishima@bc.jp.nec.com>
>  > To: <wsbpel@lists.oasis-open.org>
>  > Sent: Tuesday, June 29, 2004 6:59 PM
>  > Subject: Re: [wsbpel] Issue - 123 - Matching <reply> with <receive>
>  >
>  >
>  >>Hi,
>  >>
>  >>The following are
>  >>   the summary of our discussion at the F2F and
>  >>   a few new ideas
>  >>on "Issue 123: Matching <reply> with <receive>".
>  >>
>  >>Please let me know what you think.
>  >>
>  >>==== Resolution Ideas ====
>  >>
>  >>We currently have four kinds of resolutions for Issue 123:
>  >>
>  >>R1: Explicit disambiguation through ID and REF (Bernd, Yaron)
>  >>R2: Restrict the use of correlation sets (Paco)
>  >>R3: Resolution-only correlation sets (Yuzo)
>  >>R4: Pattern attribute for reply correlation sets (Chris)
>  >>
>  >>For R1, R2, R3, please refer to 20040622-issue123.ppt, which is
>  >>available at the document page of the WSBPEL web site, in addition to
>  >>the email messages regarding Issue 123.
>  >>
>  >>R4 was proposed by Chris at the F2F. The idea is that we specify 
> pattern=
>  >>"in" for a correlation set specified for a <reply> to indicate that the
>  >>correlation set is actually for the incoming message, that is, the 
> message
>  >>received by <receive>, rather than the outgoing one to be sent by the
>  >><reply>. This way we can specify as many correlations sets for 
> <reply> as
>  >>necessary for disambiguation, while not requiring the reply message to
>  >>contain the correlation sets properties. R4 is similar to R3, but seems
>  >>to be better-aligned with the current BPEL specification.
>  >>
>  >>After all the discussion at the F2F, I still feel R1 or similar is
>  >>preferable to the rest because I guess that when writing <activity>, the
>  >>process designer should have <receive>(s) in mind, rather than the
>  >>correlation set(s).
>  >>
>  >>Accordingly, I elaborate only on R1 below. If you prefer R2, R3, R4, or
>  >>something else, please elaborate on your choice and share the idea.
>  >>
>  >>==== Elaboration on R1 ====
>  >>
>  >>In a personal conversation, Satish has suggested that we should give an
>  >>ID to a MEP instance rather than to a <receive>. I think it is a good
>  >
>  > idea.
>  >
>  >>It can naturally handle the cases where multiple <receive>s and <reply>s
>  >>are written in the process definition for a single message exchange
>  >
>  > pattern.
>  >
>  >>(At run-time, only one of each is executed.) I try to materialize the
>  >>suggestion below.
>  >>
>  >>1. Introduce <messageExchanges> element.
>  >>
>  >><scope or process>
>  >>   <messageExchanges>?
>  >>     <messageExchange name pattern?/>*
>  >>   </messageExchanges>
>  >></scope or process>
>  >>
>  >>2. Introduce messageExchange attribute.
>  >>
>  >><receive messageExchange? ...>
>  >><onMessage messageExchange? ...>
>  >><onEvent messageExchange? ...>
>  >>
>  >>3. Define the receive-reply matching rule as follows.
>  >>
>  >>Correlation sets of <reply> are not considered in matching at all.
>  >>
>  >>If messageExchange attribute is specified for <reply>, outstanding
>  >><receive>s (or <onMessage>s or <onEvent>s) that make reference to the 
> same
>  >>messageExchange are searched.
>  >>
>  >>If messageExchange attribute is NOT specified, outstanding <receive>s 
> that
>  >>have matching partnerLink, portType, and operation are searched.
>  >>
>  >>If there is only one such <receive>  (or <onMessage> or <onEvent>) 
> and it
>  >>has matching partnerLink, portType, and operation, then the <reply> is
>  >>matched to it. If not, a conflictingRequest fault is thrown. (Note: 
> We may
>  >>want to introduce another fault for zero <receive> case.)
>  >>
>  >>4. Example
>  >>
>  >><scope or process>
>  >>   <messageExchanges>
>  >>     <messageExchange name="rfq-quote" pattern="in-out"/>
>  >>   </messageExchanges>
>  >>
>  >>   ...
>  >>   <switch>
>  >>     <case>
>  >>       ...
>  >>       <receive messageExchange="rfq-quote" ...>
>  >>       ...
>  >>     </case>
>  >>     <otherwise>
>  >>       ...
>  >>       <receive messageExchange="rfq-quote" ...>
>  >>       ...
>  >>     </otherwise>
>  >>     ...
>  >>   </switch>
>  >>   ...
>  >>   <reply messageExchange="rfq-quote">
>  >>     ...
>  >>   </reply>
>  >>   ...
>  >></scope or process>
>  >>
>  >>5. Discussion
>  >>
>  >>I am not sure whether we really need the pattern attribute. It may be
>  >>useful for validation, but may be cumbersome to specify. Hence I make it
>  >>an optional attribute.
>  >>
>  >>As pointed in 3, we may want to introduce a new fault for matching
>  >
>  > failure.
>  >
>  >>==== onMessage and onEvent ====
>  >>
>  >>As I already did above, I think onMessage and onEvent must be modified
>  >
>  > such
>  >
>  >>that it can have messageExchange attribute if necessary.
>  >>
>  >>==== multiple receives in a loop ====
>  >>
>  >>During the F2F discussion, it was pointed out that we currently have no
>  >>means to express the correspondence between <receive>s in a loop and
>  >><reply>s outside of the loop.
>  >>
>  >><while>
>  >>   ...
>  >>   <receive ...>
>  >></while>
>  >>
>  >><while>
>  >>   ...
>  >>   <reply ...>
>  >></while>
>  >>
>  >>I think this is an important problem but too big to discuss in Issue 
> 123.
>  >>We may need to introduce arrays of partner links, for example. Hence I
>  >>would like to consider it a separate issue.
>  >>
>  >>Yuzo Fujishima
>  >>NEC Corporation
>  >>
>  >>To unsubscribe from this mailing list (and be removed from the roster of
>  >
>  > the OASIS TC), go to
>  > 
> http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php. 
> 
>  >
>  >
>  >
>  > To unsubscribe from this mailing list (and be removed from the roster 
> of the OASIS TC), go to 
> http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php. 
> 
> 
> 
> To unsubscribe from this mailing list (and be removed from the roster of 
> the OASIS TC), go to 
> http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php. 
> 
> 


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