W3C home > Mailing lists > Public > xml-dist-app@w3.org > February 2006

Re: Fw: SOAP 1.1 One-way HTTP Binding doc

From: Jean-Jacques Moreau <jean-jacques.moreau@crf.canon.fr>
Date: Thu, 02 Feb 2006 11:41:50 +0100
To: Christopher B Ferris <chrisfer@us.ibm.com>
Cc: xml-dist-app@w3.org
Message-id: <43E1E1EE.4090908@crf.canon.fr>

Yes indeed!

So there's little than can be said about which steps have been performed 
when the OutputMessage is ready for delivery. :-(

This being said, as you suggested, some words about the 
issue/relationship could have been usefully added to the spec.

JJ.

Christopher B Ferris wrote:

>
> Ah,
>
> I see your point. I think we are thinking the same thing, and the 
> words are getting in the way:-)
>
> I agree that certain faults will be generated before step 3, and that 
> they would immediately be made
> available in OutputMessage because by definition, a generated fault 
> terminates all processing of
> the message.
>
> Agreed?
>
> Cheers,
>
> Christopher Ferris
> STSM, Emerging e-business Industry Architecture
> email: chrisfer@us.ibm.com
> blog: http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=440
> phone: +1 508 377 9295
>
> Jean-Jacques Moreau <jean-jacques.moreau@crf.canon.fr> wrote on 
> 02/01/2006 12:12:03 PM:
>
> > Chris,
> >
> > Possibly, and I was about to agree with you, but then again you say :
> > "(or fault)", and for me the OutputMessage will be set after step 3 
> only
> > for some fauts but not for all (for example, for mU but not vM faults).
> > I don't see any need to perform steps 1 to 3 if we're going to fault on
> > version mismatch (we might not even be able to do so because the 
> message
> > may be unreadable).
> >
> > JJ.
> >
> > Christopher B Ferris wrote:
> >
> > >
> > > JJ,
> > >
> > > Possibly you mis-understood me. I totally agree that a 
> VersionMismatch
> > > or other receiver
> > > fault can be generated. I was only suggesting that at the very least,
> > > the SOAP processing
> > > model, through step 3 needed to be performed before making the
> > > response message
> > > (or fault) available in the OutputMessage as per the binding, just so
> > > that we are precise
> > > about what the responsibilities are.
> > >
> > > I think that this also applies in the streaming case.
> > >
> > > Cheers,
> > >
> > > Christopher Ferris
> > > STSM, Emerging e-business Industry Architecture
> > > email: chrisfer@us.ibm.com
> > > blog: http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=440
> > > phone: +1 508 377 9295
> > >
> > > Jean-Jacques Moreau <jean-jacques.moreau@crf.canon.fr> wrote on
> > > 02/01/2006 06:47:28 AM:
> > >
> > > > Hi Chris,
> > > >
> > > > What if there's a VersionMismatch or some "early" Receiver fault?
> > > > Shouldn't that be reported before the processing model is even 
> engaged
> > > > (i.e. before step 1 is completed [if ever started])?
> > > >
> > > > If the response is a response (i.e. not a fault), then it cannot 
> happen
> > > > before step 4 has been completed. If it's a fault, then all bets are
> > > > off. It could happen at any stage: from before step 1 up to during
> > > step 4.
> > > >
> > > > Did I miss something?
> > > >
> > > > JJ.
> > > >
> > > > Christopher B Ferris wrote:
> > > >
> > > > >
> > > > > I think that this issue from ws-a wg has relevance to our work 
> on the
> > > > > binding,
> > > > >
> > > > > In reviewing the current text and tables in part 2, it isn't 
> clear to
> > > > > me that there is
> > > > > an established and well defined relationship between the 
> request and
> > > > > response
> > > > > messages with regards to the SOAP processing model.
> > > > >
> > > > > e.g. it doesn't say anywhere whether the SOAP processing as 
> described
> > > > > in part 1 sect 2.6 MUST be performed BEFORE the "response message"
> > > > > in the Request Response MEP is made available in the outputMessage
> > > > > property.
> > > > >
> > > > > As I indicated in my response to Marc on the ws-a list, I think
> > > that at a
> > > > > minimum, any response, whether SOAPy or not, should be made only
> > > > > AFTER steps 1, 2 and 3 as defined in section 2.6 of part 1 
> have been
> > > > > completed so that any mU faults can be transmitted even if the 
> actual
> > > > > processing of the headers (and the body) are to be deferred.
> > > > >
> > > > > Thoughts?
> > > > >
> > > > > Christopher Ferris
> > > > > STSM, Emerging e-business Industry Architecture
> > > > > email: chrisfer@us.ibm.com
> > > > > blog: 
> http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=440
> > > > > phone: +1 508 377 9295
> > > > > ----- Forwarded by Christopher B Ferris/Waltham/IBM on 01/31/2006
> > > > > 12:49 PM -----
> > > > >
> > > > > public-ws-addressing-request@w3.org wrote on 01/31/2006 
> 11:53:27 AM:
> > > > >
> > > > > >
> > > > > > Marc,
> > > > > >
> > > > > > Good question.
> > > > > >
> > > > > > Given that a 202 response is not related to the *processing* 
> of the
> > > > > > request message, one could
> > > > > > conclude that any SOAP envelope carried in the 202 Accepted 
> response
> > > > > > might not necessarily
> > > > > > have a relationship with the request message at all. 
> However, given
> > > > > > what Mark observed, I suspect
> > > > > > that we might do well to specify that at a minimum, the SOAP
> > > > > > processing w/r/t SOAP headers
> > > > > > MUST be performed before any response is generated, so as to 
> ensure
> > > > > > that if a mU fault
> > > > > > is generated, it can be transmitted on the HTTP response 
> (with a
> > > 500).
> > > > > >
> > > > > > So, my inclination would be (b)
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > Christopher Ferris
> > > > > > STSM, Emerging e-business Industry Architecture
> > > > > > email: chrisfer@us.ibm.com
> > > > > > blog: 
> http://www.ibm.com/developerworks/blogs/dw_blog.jspa?blog=440
> > > > > > phone: +1 508 377 9295
> > > > > >
> > > > > > public-ws-addressing-request@w3.org wrote on 01/31/2006 
> 10:22:51 AM:
> > > > > >
> > > > > > >
> > > > > > > Mark Baker wrote:
> > > > > > > > On 1/31/06, David Hull <dmh@tibco.com> wrote:
> > > > > > > >>  We've been pretty clear for a while that empty 202 means
> > > > > "ack".  I'm
> > > > > > > >> hearing that non-empty 202 is meant for things like 
> WS-RX acks,
> > > > > > but I'm not
> > > > > > > >> sure this is nailed down.  There seems to be some 
> possibility
> > > > > that a 202
> > > > > > > >> with a SOAP envelope could also be a real response.
> > > > > > > >
> > > > > > > > It's still a response, just not the result of processing the
> > > > > request.
> > > > > > > >
> > > > > > > > So if you took a SOAP envelope and sent it as an HTTP 
> response
> > > > > with a
> > > > > > > > 202 code, it would mean something entirely different than if
> > > > > sent back
> > > > > > > > with a 200 code... in the same way that a SOAP fault sent
> > > with 200
> > > > > > > > means something entirely different than a SOAP fault
> > > > > > > >
> > > > > > > Right, this chimes with my comments on the call last 
> night. The
> > > > > envelope
> > > > > > > returned in the HTTP 202 response is something other than 
> a reply
> > > > > to the
> > > > > > > envelope sent in the HTTP request. The question I'm struggling
> > > > > with is
> > > > > > > whether one can assume that the SOAP processing rules have 
> been
> > > > > followed
> > > > > > > on the request envelope prior to the response envelope being
> > > > > returned or
> > > > > > > not ? E.g. if I include WS-Addr header blocks in the request
> > > > > envelope,
> > > > > > > can I assume that the 202 response envelope will contain the
> > > expected
> > > > > > > WS-Addr header blocks (e.g. relationship(msgid)). If the SOAP
> > > > > processing
> > > > > > > rules haven't been followed then what process lead to the
> > > > > generation of
> > > > > > > the 202 response envelope ? We've been using WS-RX as a use
> > > case but,
> > > > > > > AFAIK, WS-RX uses header blocks and relies on the SOAP 
> processing
> > > > > model
> > > > > > > too so are we inventing a new two-stage SOAP processing 
> model or
> > > > > what ?
> > > > > > >
> > > > > > > In a nutshell, I think we need to decide whether the 202 
> response
> > > > > > > envelope is returned:
> > > > > > >
> > > > > > > (a) Before SOAP header block and SOAP Body processing, or
> > > > > > > (b) After SOAP header block processing but before SOAP Body
> > > > > processing, or
> > > > > > > (c) (for completeness although this seems to contradict the
> > > > > 'Accepted'
> > > > > > > semantics of HTTP 202) After SOAP header block and SOAP Body
> > > > > processing.
> > > > > > >
> > > > > > > Thoughts ?
> > > > > > >
> > > > > > > Marc.
> > > > > > >
> > > > > > > >>  If 202 can be a real response, then one would have to use
> > > > > > > something besides
> > > > > > > >> 202 to figure out what's really going on (e.g., whether the
> > > > > > > message consists
> > > > > > > >> only of WS-RX headers and similar).  In this case 202 isn't
> > > > > > really carrying
> > > > > > > >> any information and why bother allowing for it?  On the 
> other
> > > > > > hand, if 202
> > > > > > > >> means something in particular, then what exactly does 
> it mean?
> > > > > > > >
> > > > > > > > Just what it says in the HTTP spec.
> > > > > > > >
> > > > > > > >>  As far as I can tell, the value in non-empty 202 is 
> telling
> > > > > > the SOAP stack
> > > > > > > >> "Hey, this is just infrastructure stuff.  Don't pass it 
> along
> > > > > to the
> > > > > > > >> application."  We can't say that here, but we could 
> (probably)
> > > > > say it
> > > > > > > >> elsewhere.
> > > > > > > >
> > > > > > > > 202, like 200, is a symbol with application layer 
> semantics,
> > > and as
> > > > > > > > such, it should be exposed to the application (plus the 
> SOAP
> > > 1.2
> > > > > HTTP
> > > > > > > > binding is a *transfer* binding).  In the case of 202, the
> > > > > application
> > > > > > > > needs to know that no subsequent message which includes 
> "the
> > > results
> > > > > > > > of processing" of the initial request, is necessarily
> > > > > forthcoming (and
> > > > > > > > won't be without additional agreement).
> > > > > > > >
> > > > > > > > BTW, I just noticed this part of the 202 spec which should
> > > > > probably be
> > > > > > > > highlighted;
> > > > > > > >
> > > > > > > >   "The entity returned with this
> > > > > > > >    response SHOULD include an indication of the request's
> > > > > current status
> > > > > > > >    and either a pointer to a status monitor or some 
> estimate of
> > > > > when the
> > > > > > > >    user can expect the request to be fulfilled."
> > > > > > > >
> > > > > > > > Which suggests that a URI could be returned upon which the
> > > > > application
> > > > > > > > could invoke GET to determine the state of the 
> processing of the
> > > > > > > > request (anybody remember CORBA "Futures"?).
> > > > > > > >
> > > > > > > > Mark.
> > > > > > > >
> > > > > > >
> > > > > > >
> > > >
> > > >
> >
> >
Received on Thursday, 2 February 2006 10:42:27 GMT

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