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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel-comment message

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


Subject: Re: invoke/receive/reply


Hi Paul,

I think I know what you mean but I don't think I have described the
situation properly.

One thing I should clarify that I think I may have misunderstood though is
how the different types of WSDL operations are described.

Is it true to say that in the WSDL specification, where a request-response
operation is described as

...
            <wsdl:input name="nmtoken"? message="qname"/>
                       <wsdl:output name="nmtoken"? message="qname"/>
            <wsdl:fault name="nmtoken" message="qname"/>*
...

and a solicit-response operation is described as

...
           <wsdl:output name="nmtoken"? message="qname"/>
           <wsdl:input name="nmtoken"? message="qname"/>
           <wsdl:fault name="nmtoken" message="qname"/>*
...

the ordering of the input and output are not only relevant but they are what
makes an operation either
request-response or solicit-response?  (e.g. input defined before output
means request-response and
output defined before input means solicit-response).

Assuming this is the case, I think the situation you describe is where you
have a BPEL process something
like:

...
        <receive partnerLink="X" operation="Y" .../>
        ...activitites...
        <reply partnerLink="X" operation="Y" .../>
...

where the operation Y would indeed be defined as a request-response
operation in the WSDL for the current process.

The case I was trying to describe is where there are two communicating BPEL
processes, A and B, and B's WSDL describes a
"Notification" operation.  Here's how I would expect the four different
types of WSDL operation to be implemented
in BPEL (where A sees the operations as partnerRoles and B sees the
operations as myRoles):

"One-way"

A's BPEL:
        <invoke partnerLink="X" operation="OneWay"
inputVariable="mySentVariable" />
B's BPEL:
        <receive partnerLink="X" operation="OneWay"
variable="myReceivedVariable" />

"Request-Reponse"

A's BPEL:
        <invoke partnerLink="X" operation="RequestResponse"
inputVariable="mySentVariable" outputVariable="myReturnVariable" />
B's BPEL:
        <receive partnerLink="X" operation="RequestResponse"
variable="myReceivedVariable" />
        ...
        <reply partnerLink="X" operation="RequestResponse"
variable="myReplyVariable" />

"Solicit-Response"

A's BPEL:
        <receive partnerLink="X" operation="SolicitResponse"
variable="myReceivedVariable" />
        ...
        <reply partnerLink="X" operation="SolicitResponse"
variable="myReplyVariable" />
B's BPEL:
        <invoke partnerLink="X" operation="SolicitResponse"
inputVariable="mySentVariable" outputVariable="myReturnVariable" />

"Notification"

A's BPEL:
        <receive partnerLink="X" operation="Notification"
variable="myReceivedVariable" />
        *OR*
        <invoke partnerLink="X" operation="Notification"
outputVariable="myReceivedVariable" />
B's BPEL:
        <reply partnerLink="X" operation="Notification"
outputVariable="myNotificationVariable" />

If I am right about the others then it is this last example that is
confusing me.  Are both variants of A's BPEL valid?  If so,
do they mean the same thing?

Thanks for your help.

Antony Miguel
Scapa Technologies
antony.miguel@scapatech.com
+44 131 550 1766


----- Original Message -----
From: "Paul Hinks" <paul@grandcentral.com>
To: <Antony.Miguel@scapatech.com>
Sent: Thursday, July 08, 2004 7:11 PM
Subject: Re: invoke/receive/reply


> Hi Antony.
>
> I'm confused by your question. A receive/reply pair in a BPEL process
> implies that the WSDL for the BPEL process exposes a request/response
> port in its WSDL. An invoke activity relates to an operation in a
> partner's WSDL; if the operation is a notification type then there will
> be no output variable  - you always need too specify an outputVariable.
>
> --Paul
>
>
>
> On Jul 8, 2004, at 2:49 AM, Antony Miguel wrote:
>
> > Hi Michael,
> >
> > Thanks for your response but I don't actually know what WMQ is.  I'm
> > implementing a BPEL engine and I'm asking about the general definition
> > of
> > BPEL receive and reply activities.  What I want to know is, when a
> > receive
> > like
> >
> > <receive partnerLink="plinkASide" portType="ptype" operation="op"
> > variable="myvar" />
> >
> > is specified in a BPEL program, and it is replied to using a BPEL
> > <reply>
> > activity like
> >
> > <reply partnerLink="plinkBSide" portType="ptype" operation="op"
> > variable="myreplyvar" />
> >
> > is this equivalent to a WSDL "Notification" type of operation (as
> > defined in
> > the WSDL specification - section 2.4) and if so, is a BPEL invoke with
> > an
> > outputVariable but no inputVariable such as
> >
> > <invoke partnerLink="plinkASide" portType="ptype" operation="op"
> > outputVariable="myvar" />
> >
> > the same thing?
> >
> > Antony Miguel
> > Scapa Technologies
> > antony.miguel@scapatech.com
> > +44 131 550 1766
> > ----- Original Message -----
> > From: "Michael B Mccarthy" <mbmccarthy@us.ibm.com>
> > To: <Antony.Miguel@scapatech.com>
> > Cc: <wsbpel-comment@lists.oasis-open.org>
> > Sent: Wednesday, July 07, 2004 8:00 PM
> > Subject: Re: Fw: invoke/receive/reply
> >
> >
> >>
> >>
> >>
> >>
> >>  I believe you're asking about WMQ with the Request-Reply question.
> >> The
> >> short answer is that they DO form a pair.  The slightly less short
> >> answer
> >> is this.  WMQ has a 364 byte control area before the data message.
> >> Two of
> >> its fields are a 24-byte "Message ID" and a 24-byte "Correllation ID".
> >> When a message is sent the system generates a unique Message-ID.  The
> >> sender should also code a "Message Type" in the MSGTYPE (vs. a
> >> "Datagram",
> >> etc.)  The standard convention is for the receiver of the message to
> >> move
> >> the Message-ID field to the Correllation ID as before sending the
> >> reply
> >> back.  The original sender then does an MQGET with the Correllation ID
> >> coded and will only pick up the reply to the original request.  I
> >> don't
> >> know exactly how the pieces work in the other environments but this is
> >> probably the WMQ counterpart.
> >>
> >> Sincerely,
> >>
> >>
> >> Michael B. McCarthy
> >> IBM Software Group
> >> Business Integration Specialist SSR
> >> Office (781)334-3578
> >> mbmccarthy@us.ibm.com
> >>
> >>
> >>
> >>              "Antony Miguel"
> >>              <antony.miguel@sc
> >>              apatech.com>
> >>   To
> >>
> >> <wsbpel-comment@lists.oasis-open.or
> >>              07/07/2004 12:16          g>
> >>              PM
> >>   cc
> >>
> >>
> >> Subject
> >>                                        Fw: invoke/receive/reply
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> Is receive-reply equivalent to the WSDL "Notification" type of
> >> operation?
> >> If so, then does it mean the same thing to execute an invoke with no
> >> inputVariable and an outputVariable?
> >>
> >> e.g. is
> >>
> >>             <receive partnerLink="plink" portType="ptype"
> >> operation="op"
> >> variable="myvar" />
> >>
> >> equivalent to
> >>
> >>             <invoke partnerLink="plink" portType="ptype"
> >> operation="op"
> >> outputVariable="myvar" />
> >>
> >> thanks
> >>
> >> Antony
> >>
> >> ----- Original Message -----
> >> From: Antony Miguel
> >> To: wsbpel-comment@lists.oasis-open.org
> >> Sent: Tuesday, July 06, 2004 2:14 PM
> >> Subject: Re: invoke/receive/reply
> >>
> >> I should add to this question that an alternative I might expect
> >> would be
> > a
> >> <pick> - <reply> pair.
> >>
> >> Antony Miguel
> >> Scapa Technologies
> >> antony.miguel@scapatech.com
> >> +44 131 550 1766
> >>  ----- Original Message -----
> >>  From: Antony.Miguel@scapatech.com
> >>  To: wsbpel-comment@lists.oasis-open.org
> >>  Sent: Tuesday, July 06, 2004 12:32 PM
> >>  Subject: invoke/receive/reply
> >>
> >>  Hi,
> >>
> >>  Hopefully this is the right place to be asking this question.  If the
> >>  question is not appropriate or anyone knows of a better place to ask
> >> then
> >>  please let me know.
> >>
> >>  I recently saw an example BPEL program where there were two
> >> activities in
> >>  a <flow>, one doing a <receive>, and the other sending a message to
> >> it
> >>  using a <reply>.  I can't find the example again and I may have just
> >>  misinterpreted it but am I correct in thinking that in BPEL, a
> >> <receive>
> >>  always receives from an invoke (or from some externally bound
> >> incoming
> >>  message), and never from a <reply>?
> >>
> >>  My understanding is an invoke should always mean a receive-reply pair
> >>  somewhere.  Is this correct?
> >>
> >>  thanks
> >>
> >>  Antony Miguel
> >>  Scapa Technologies
> >>  antony.miguel@scapatech.com
> >>  +44 131 550 1766
> >>
> >>
>
>



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