Re: Which operation?

On Mon, Apr 19, 2004 at 03:19:20PM -0700, David Orchard wrote:
> I would think the operation from the application perspective is getStockQuote.

Interesting.  I've heard recently from the likes of Jim Webber and Savas
Parastatidis[1] that this isn't the case (though I'm not suggesting that
they would say the answer is "GET" either).  I heard similarly from
Arthur Ryman last year, that he considered the operationName to be
"documentation"[2].  But whatever the concensus position is, it would
be good if the spec were clear about it (and/or supported multiple
interpretations).

Is concensus documented on this point, even if it's not in the spec?  I
don't think we're going to get very far with respect to the binding
issues if this isn't clear.  And I don't particularly care which way it
goes, I just need a stake in the ground that I can work with.

>  It could be serialized on the wire as HTTP GET with some magic schema1 to URI binding as you suggest, or a POST of some new "QUERY" operation, or a SOAP operation with an input and output.  The way you would tell is from the binding.
> 
> What I think would be quite useful is to have the getStockQuote also say that getStockQuote has the semantics of GET for use in the binding layer, ie
> 
>      <wsdl:interface name="StockQuotes">
>          <wsdl:operation name="getStockQuote" wsdl:webMethod="GET">
>              <wsdl:input element="schema1"/>
>              <wsdl:output element="schema2"/>
>          </wsdl:operation>
>      </wsdl:interface>

Hmm. "getStockQuote has the semantics of GET" is what I want too, but it
seems we mean it in different ways.  I want the operation name to be a
label ("documentation", as Arthur says) for a particular class of GET
invocations, while leaving it such that the client/application only
knows that "GET" occurred.  This seems similar to Mark Nottingham's
strawman[3], as he states;

  The nice thing here is that unlike operation name overloading (e.g.,
  name="getFoo"), everything is in extensions; you can still name your
  operation 'getStatus' or just plain 'Status' if you want to.

But I'll CC him in the hope that he can veryify/clarify this for us
(I can't recall if he's subscribed).

> I think the binding will have some syntax to bind the name to the GET in some way, ie 
> 
>      <wsdl:interface name="StockQuotes">
>          <wsdl:operation name="getStockQuote" wsdl:webMethod="GET">
>              <wsdl:input element="schema1"/>
>              <wsdl:output element="schema2"/>
>          </wsdl:operation>
>          <wsdl:operation name="getStockQuoteGoldPayingCustomer" wsdl:webMethod="GET">
>              <wsdl:input element="schema1"/>
>              <wsdl:output element="schema2"/>
>          </wsdl:operation>
>      </wsdl:interface>
> 
> Now another approach is to model the getStockQuote simply as GET, ie.

Ah, now we're talking. 8-)

>          <wsdl:operation wsdl:webMethod="GET">
>              <wsdl:input element="schema1"/>
>              <wsdl:output element="schema2"/>
>          </wsdl:operation>
> 
> But then an application can't really identify the operation when there are more than 1, like if the GoldPayingCustomer was added.

Yes, you'd need another service/URI for that in the RESTful case.  See
Mark's strawman again.

 [1] http://www.sys-con.com/story/?storyid=44354&DE=1
 [2] http://lists.w3.org/Archives/Public/www-ws-desc/2003Mar/0065.html
 [3] http://www.mnot.net/blog/2004/04/14/rest_in_wsdl

Mark.
-- 
Mark Baker.   Ottawa, Ontario, CANADA.        http://www.markbaker.ca

Received on Tuesday, 20 April 2004 12:41:07 UTC