W3C home > Mailing lists > Public > public-ws-addressing@w3.org > January 2006

Re: SOAP 1.1 One-way HTTP Binding doc

From: Christopher B Ferris <chrisfer@us.ibm.com>
Date: Tue, 31 Jan 2006 11:53:27 -0500
To: Marc Hadley <Marc.Hadley@Sun.COM>
Cc: Anish Karmarkar <Anish.Karmarkar@oracle.com>, Mark Baker <distobj@acm.org>, David Hull <dmh@tibco.com>, David Orchard <dorchard@bea.com>, WS-Addressing <public-ws-addressing@w3.org>, public-ws-addressing-request@w3.org
Message-ID: <OF68352AA7.C8AFD8D1-ON85257107.0055C1E5-85257107.005CC8FC@us.ibm.com>

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)


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 
> >> 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, 
> (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 
> >> 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 
> >> "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 
> >    and either a pointer to a status monitor or some estimate of when 
> >    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 Tuesday, 31 January 2006 16:53:50 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:04:12 UTC