W3C home > Mailing lists > Public > www-ws-desc@w3.org > May 2002

RE: Issue: Can One-Way operations return faults?

From: Sandeep Kumar <sandkuma@cisco.com>
Date: Wed, 22 May 2002 21:13:57 -0700
To: "Prasad Yendluri" <pyendluri@webMethods.com>, "Jacek Kopecky" <jacek@systinet.com>
Cc: <www-ws-desc@w3.org>
Message-ID: <GEEIIPGIGJHOLHFLNCJACEJFCHAA.sandkuma@cisco.com>
Prasad:

I support your viewpoint that  "One way operations SHOULD be able to return
Faults."

However I disagree with your reliability argument. I agree reliability is at
the protocol/transport layer but
all the Operations have a semantics associated with it, though implicit.

For instance, Req/Resp means that a "response" is *reliably guaranteed* if
the *request* reaches the service provider/handler.
One could use Reliable or not so reliable transport to guarantee the above
semantics.

Jacek:

If a requestor issues a one-way request such that the End-Point/Service
which happens to be in a state of NOT accepting messages
(it could be for a variety of reasons), the requestor should get a FAULT
from the Service Handler so that it can Re-Try.

Comments?

Cheers,
Sandeep

 -----Original Message-----
From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]On
Behalf Of Prasad Yendluri
Sent: Wednesday, May 22, 2002 12:45 PM
To: Jacek Kopecky
Cc: www-ws-desc@w3.org
Subject: Re: Issue: Can One-Way operations return faults?


  Jacek,
  Please see below in <PY>

  Regards, Prasad

  Jacek Kopecky wrote:

     Prasad,
     I respectfully disagree with making fire-and-forget a special case of
one-way-with-fault.
     Your example of email is not correct because email is unreliable by
definition.
  <PY>Where does reliability enter into picture at the abstract message
exchange pattern level? Reliability is a feature of the transport/message
service. A service definition at the abstract level makes no guarantees
about reliability. Email was an example for the use case where the sender of
one-way message would want to lean of a failure but not a success.
Substitute anything else for email something that uses SOAP/HTTP at the
message level (which are unreliable as well !!).
  </PY>
    Messages may disappear without anyone knowing. The
    fact that this doesn't happen much and the fact that most systems
    do report failures doesn't really change that - you can never
    rely on email.
  <PY>Sorry, irrelevant to the issue per above.</PY>
     Anyway, my point is that for fire-and-forget you only need
    one-way data channel. One end can be an SMTP sender and the other
    end can be a POP3 receiver.
  <PY>I guess this is not related to the subject issue as well but, I don't
believe SMTP<->POP3 interaction is valid. SMTP is an email MTA level
protocol and POP3 is a UA protocol.</PY>
    If a node is able to receive failures, it is able to receive success
responses, too. A
    one-way-with-fault is a special case of request/response with empty
response.
    Already doable in WSDL, I believe.
  <PY> Not True! Here is the grammar for request/response in the current
spec. Note that note that wsdl:output is "required" and not optional.
  <wsdl:definitions .... >
      <wsdl:portType .... > *
          <wsdl:operation name="nmtoken" parameterOrder="nmtokens">
             <wsdl:input name="nmtoken"? message="qname"/>
             <wsdl:output name="nmtoken"? message="qname"/>
             <wsdl:fault name="nmtoken" message="qname"/>*
          </wsdl:operation>
      </wsdl:portType >
  </wsdl:definitions>

  The point is one-way with failure notification is a very valid and
practical usage pattern. If that can be realized as a special case of
request/response or enhanced one-way is acceptable. We need to cover the
case and either one requires a change to the current spec.
  </PY>



     Best regards,
                       Jacek Kopecky

                       Senior Architect, Systinet (formerly Idoox)
                       http://www.systinet.com/

    On Wed, 22 May 2002, Prasad Yendluri wrote:

     > Jacek,
     >
     > I see fire-and-forget as one special case of this that does not
really care
     > about knowing if the request succeeded or not. BTW, here you are
describing
     > this  from an *intiator* perspective :-).
     >
     > In general there are cases when the sender would want to know if the
request
     > did not succeed. E.g. email, I want to know if there was a problem
delivering
     > the message as in the recipient I am trying to reach is not a valid
one etc.
     >
     > Regards, Prasad
     >
     >
     > Jacek Kopecky wrote:
     >
     > >  Prasad,
     > >  I don't believe this is needed. An other name of one-way
     > > messages is fire-and-forget. This feature is seldom suitable, but
     > > sometimes you just don't need to know. 8-)
     > >  If we added the possibility of a fault, we would be adding the
     > > response at the same time, if only because no response ==
     > > success response.
     > >  IMHO one-way operations are exactly that, with the possibility
     > > of finding out the result or failure by other means, if the
     > > application requires it.
     > >  My proposal is to resolve this issue by saying "the current way
     > > is how we want it."
     > >
     > >                    Jacek Kopecky
     > >
     > >                    Senior Architect, Systinet (formerly Idoox)
     > >                    http://www.systinet.com/
     > >
     > > On Tue, 21 May 2002, Prasad Yendluri wrote:
     > >
     > >  > Currently the One-Way operations do not provide for returning
faults.
     > >  > That is, they only have a input message but no fault. Does that
mean a
     > >  > one-way operation must always succeed? What if the the request
is bad or
     > >  > somehow can not be processed and/or meets one of the SOAP-Fault
     > >  > conditions (assuming SOAP binding)?
     > >  >
     > >  > It seems desirable to permit faults with One-Way operations?
     > >  >
     > >  > Comments?
     > >  >
     > >  > Regards, Prasad
Received on Thursday, 23 May 2002 00:14:59 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:20 GMT