Francis,

I was referring to the WSDL/SOAP extension definitions of RPC-style and
Document-style, which is a very specific definition. The WSDL soap:binding
extension (http://www.w3.org/TR/wsdl#_soap:binding) has a required attribute
of style, which can specify style="document" or style="rpc". This attribute
refers to the message structure used in the input and output SOAP messages
for this particular SOAP service. As I described in a previous message, the
difference between "rpc" style and "document" style is simply a matter of
formatting (whether or not the payload is wrapped in an element that
specifies a method name), and it really has nothing to do with the synchrony
or asynchrony of the business process.

What you are describing below is what's known as choreography (or sometimes
orchestration)-- what set of messages do we need to exchange, in what
sequence, and within what time parameters to execute a business
transactions. In SOAP/WSDL terminology, we would specify this choreographed
message exchange in terms of the WSDL portTypes that must be invoked in a
specific sequence. See the WSCI specification (http://www.w3.org/TR/wsci)
for an example of how one might do this.

The complete choreography is most likely performed asynchronously, but the
individual message exchanges may in fact execute synchronously. In your
example, you start by sending a PO message and you expect an ACK/NAK
response. This individual message exchange is synchronous. The POA response
is a separate message exchange (at least from SOAP's point of view).

As I described earlier, in SOAP you could send that first PO message using
either rpc or document style.

Document style:
  <env:Body>
    <m:purchaseOrder xmlns:m="someURI">
      ...
    </m:purchaseOrder>
  </env:Body>

RPC style:
  <env:Body>
    <m:placeOrder xmlns:m="someURI">
      <m:purchaseOrder>
        ...
      </m:purchaseOrder>
    </m:placeOrder>
  </env:Body>

The only difference between these two messages is whether or not the PO
element is wrapped in a method name element. The method name gives the SOAP
server a hint as to how to route the message. The method name doesn't
necessarily correspond to a specific method invocation on a specific object.
If you don't specify the method name in the message, you can supply a hint
in the SOAPAction header (assuming that you're using HTTP transport). If you
don't supply a hint, then the SOAP server has to determine the proper
routing based on the URI the message was sent to or perhaps based on the
message type (which may involve additional processing).

Let me reiterate: although there is basically no difference between rpc and
document, there is a significant difference between "encoded" versus
"literal" encodingStyles, which is specified in the WSDL soap:body extension
(http://www.w3.org/TR/wsdl#_soap:body). By convention, most "rpc" style
messages use the SOAP Section 5 encoding style
(encodingStyle="http://schemas.xmlsoap.org/soap/encoding";), and most
document style messages use literal encoding style
(encodingStyle="literal"). But there's no reason why you can't use literal
encoding with rpc style messages. Literal makes it much easier to perform
message validation or XSLT transformation.

Best regards,
Anne

> -----Original Message-----
> From: pFrancis X [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, November 26, 2002 11:02 PM
> To: [EMAIL PROTECTED]
> Subject: RE: Document style web services
>
>
> Let's take a standard purchase order scenario.
>
> If I send a PO message as the payload, using
> ebXML-TRP, I can receive tne ACK/NAK on the same
> socket.  A subsequent message within the time to
> perform as defined by my orchestration will have the
> POA payload response.  I now have a request / response
> taking place across a time boundary (but still within
> my time to perform as defined by my BP).
>
> The same thing applies if I have an EDI 850 PO using
> an EDIINT/AS2 transport.
>
> Additionally, HTTP is not the only protocol for moving
> payloads, TRPs also have specified support for SMTP
> such as EDIINT/AS1 or ebXML.  SMTP cannot support
> synchronous business processes.
>
> All the production business process that I've seen so
> far, when using messaging, do it asynchronously.
>
> The one thing that I see is that our definitions of
> sync/async may be different.  By sync, I see it more
> as defined by RPC mechanisms (ala RMI) and async as
> closer to messaging (ala JMS).
>
> francis
>
> --- Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
> > Document style web services are not inherently
> > asynchronous. The synchronous
> > nature of a Web service is determined by the message
> > exchange pattern
> > described in the WSDL Operation. If the service is
> > defined as having an
> > input and output message, then it is a
> > request/response service (inherently
> > synchronous). If it is defined as having only an
> > input message, then it is a
> > one-way message (inherently asynchronous).
> >
> > Anne
> >
> > > -----Original Message-----
> > > From: Francis Ho -- Enterprise Architecture
> > [mailto:[EMAIL PROTECTED]]
> > > Sent: Tuesday, November 26, 2002 12:07 PM
> > > To: [EMAIL PROTECTED]
> > > Subject: RE: Document style web services
> > >
> > >
> > > Document style web services is inherently
> > asynchronous.  Most of
> > > modern TRP/MS's
> > > such as EDIINT and RosettaNet (RNIF) use
> > document-style services.
> > >  It was found
> > > to be more a bit more scalable and flexible in
> > dealing with
> > > legacy systems.
> > > This is especially true as many of the legacy
> > systems for order
> > > processing were
> > > batch oriented.
> > >
> > > francis
> > >
> >
>
>
> =====
> --
> The best thing about standards is that
> there are so many to choose from.
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com
>

Reply via email to