- From: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Date: Wed, 02 Feb 2005 15:19:55 -0800
- To: Marc Hadley <Marc.Hadley@Sun.COM>
- CC: Ugo Corda <UCorda@SeeBeyond.com>, public-ws-async-tf@w3.org
Marc Hadley wrote: > > On Feb 2, 2005, at 5:44 PM, Ugo Corda wrote: > >> So, if I understand your proposal well, in a WSDL request/response the >> "out" message could be bound to a SOAP 1.2 Response MEP. But what would >> the "in" message be bound to? >> > Actually I think the whole thing is bound to the SOAP 1.2 > request-response MEP - note that table 17 in [1] already supports 3XX > status codes so you just need to follow what the HTTP spec says to do > for 303 as I outlined. > Table 17 says that in case of 3XX, the next state is "init". My interpretation of this is that, the same POST request is retried with the new URL. > Marc. > > [1] http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#http- > reqbindwaitstate > >> Ugo >> >>> -----Original Message----- >>> From: public-ws-async-tf-request@w3.org >>> [mailto:public-ws-async-tf-request@w3.org] On Behalf Of Marc Hadley >>> Sent: Wednesday, February 02, 2005 1:46 PM >>> To: public-ws-async-tf@w3.org >>> Subject: HTTP based async request-response >>> >>> >>> >>> I took an action to outline one approach to async request-response >>> using HTTP. Basically the request is sent as normal as the >>> entity body >>> of a HTTP POST request but instead of returning the response in the >>> HTTP entity body, the server responds with a 303 (See other) status >>> code and includes a Location header that gives a URI from which the >>> response can be retrieved. The client then uses a new HTTP >>> GET request >>> to retrieve the response. E.g. >>> >>> Initial request: >>> >>> POST /StockQuote HTTP/1.1 >>> Host: stockquote.example.com >>> Content-Type: application/soap+xml >>> Content-Length: nnnn >>> >>> <env:Envelope xmlns:env="..."> >>> ... >>> </env:Envelope> >>> >>> Response: >>> >>> HTTP/1.1 303 See Other >>> Location: http://stockquote.example.com/someuniqueidentifier >>> Retry-After: 120 >>> Content-Type: text/html >>> Content-Length: 0 >>> >>> Susequent request to retrieve response: >>> >>> GET /someuniqueidentifier HTTP/1.1 >>> Host: stockquote.example.com >>> >>> Response: >>> >>> HTTP/1.1 200 OK >>> Content-Type: application/soap+xml >>> Content-Length: nnnn >>> >>> <env:Envelope xmlns:env="..."> >>> ... >>> </env:Envelope> >>> >>> If the response isn't yet ready the server can send back another 303 >>> indicating when the request may be retried using the Retry-After >>> header. >>> >>> I quite like this approach since it pushes the asynchrony >>> down into the >>> HTTP layer and doesn't require anything new in WSDL or SOAP. The >>> existing SOAP 1.2 HTTP binding supports this usage. >>> >>> Marc. >>> >>> --- >>> Marc Hadley <marc.hadley at sun.com> >>> Web Technologies and Standards, Sun Microsystems. >>> >>> >>> >>> > --- > Marc Hadley <marc.hadley at sun.com> > Web Technologies and Standards, Sun Microsystems. > >
Received on Wednesday, 2 February 2005 23:20:31 UTC