Re: HTTP based async request-response

* Anish Karmarkar <Anish.Karmarkar@oracle.com> [2005-02-02 15:12-0800]
[..]
> >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.
> >
> 
> Wouldn't it be a 503 (Service Unavailable) with a retry-after header 
> rather than 303 (which says redirection)?

I think that it would be inappropriate to use 303 See Other to the
redirect to the same URI.

OTOH, as you're talking about reusing the SOAP Response MEP, I don't
think that you could be using a 503 either as the next state for 503
would not be "Init", but "Sending+Receiving", "Receiving" or "Fail".

So I think that if the response isn't yet ready, you would just fail,
and your application would need to deal with it (again, with the
current binding, not with a new one).

> >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.
> >
> 
> I believe we do need something new in WSDL and in SOAP for this.
> 
> 1) This requires a new SOAP MEP for the POST part (essentially a one-way 
> SOAP MEP). On second thoughts, one could still view this exchange as a 
> request-response SOAP MEP with a new binding (there are only two SOAP 
> envelopes involved) -- in which case I don't think we necessarily need a 
> new SOAP MEP.
> 2) This requires a new SOAP HTTP binding as the current binding does not 
> support the exchange as described in your email. The current binding is 
> quite restrictive.

I think that it depends on how we want to represent it. We can either:
- reuse the SOAP Request-Response MEP and introduce a new HTTP binding
  (a POST→303→GET→(503→GET→)*200 binding); note that here the 503
  retry mechanism is built-in.
- or introduce a new one-way MEP with a new HTTP binding (a
  POST→(202|303) binding), and reuse the SOAP Response MEP binding to
  get the response.

The advantage of the second solution is that it the new MEP and
binding can be use for the scenario where the requester uses
wsa:ReplyTo and the service follows up with an HTTP request for the
SOAP response.

But I agree, in any case, we'll need a new SOAP HTTP binding.

> 3) This requires a new WSDL binding or at least a feature/extensibility.

Does it? I would have thought that, in both cases, it's the same SOAP
binding with a different underlying protocol.

Cheers,

Hugo

-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Thursday, 3 February 2005 18:11:59 UTC