Re: REST, uniformity and semantics

On Fri, May 16, 2003 at 04:04:39PM -0400, noah_mendelsohn@us.ibm.com wrote:
> I think I see it a little differently.  Safety has nothing to do with the 
> binding, or very little.  GetStockQuote is safe because it doesn't change 
> the stock quote, because it's cacheable, etc.  That's true independent of 
> whether you send it over HTTP or some other way.  Hence safety is indeed a 
> property of the operation, not the binding.

+1

> > Of course, this view leads rapidly to the position that HTTP under SOAP
> > is just a piece of minimalist plumbing
> 
> Not at all.  The REST work we did on SOAP was in the spirit of using the 
> mechanisms of any particular binding in the best possible manner.  HTTP 
> happens to be a system that wants to know about safe operations as 
> distinct from others.  It optimizes them at its own level.  HTTP can do 
> quite powerful things when you set the WebMethod to "GET".  It's power is 
> leveraged, not marginalized when you set WebMethod=GET. 
> 
> We also took some trouble to abstract the WebMethod from http.  If some 
> other connection system wants to benefit from a similar notion of safe 
> retrieval, there's a good chance that the WebMethod feature will give a 
> common abstraction across both.

Such as FTP RETR.  Agreed.

> I'm not a WSDL expert, but roughly the 
> right way to do this IMO is for the operation to indicate "The WebMethod 
> feature is never required for this operation, but when used in a context 
> where the WebMethod feature is supported, this operation should be modeled 
> as GET". HTTP bindings generically should be known to support WebMethod, 
> so the right thing should happen.

I don't think there's any workable way to reconcile WSDL operations
with the WebMethod feature, since both are describing the same beast
(a request semantic asked by one application layer entity, of another
application layer entity).  How could one make sense of WebMethod=
"GET_STOCK_QUOTE" (for, say, a stock quote application protocol) and
wsdl:operation="getWeatherReport" describing the same service?  It's
non-sensical.

IMO, wsdl:operation should be retired and replaced with the WebMethod
feature.

MB
-- 
Mark Baker.   Ottawa, Ontario, CANADA.        http://www.markbaker.ca
Web architecture consulting, technical reports, evaluation & analysis
  Actively seeking contract work or employment

Received on Friday, 16 May 2003 17:17:02 UTC