RE: Which operation?

Mark Nottingham wrote:

> David Booth wrote:
>>>
>>>      <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>
>>
>> If the provider agent receives a message conforming to schema1, how 
>> can it know whether the requester agent was intending to perform 
>> wsdl:operation getStockQuote or wsdl:operation 
>> getStockQuoteGoldPayingCustomer, since they both use the same input 
>> schema (schema1)?  The short answer is: That is the application's 
>> problem -- not the WSDL 2.0 specification's problem.
>
> I tend to agree with this, although I think it highlights an underlying 
> requirement upon bindings to be able to differentiate between the 
> operations. I.e., it should be possible to configure the binding so 
> that you can disambiguate the operation being called (e.g., with a 
> per-operation URI path segment or query parameter).


AIUI in the above example either:

  1) some mechanism beyond the GED* is being used to dispatch
     an incoming schema1 to the individual operations

  2) there is no mechanism - this WSDL is ambiguous.

In the case of (1) it should be possible to describe the mechanism 
being used in a WSDL document, e.g.:

   - a binding specific mechanism is being used, in which case a 
     binding specific description should be in place.

   - it could be a generic addressing header mechanism, in which case 
     we have extensions or F&Ps

   - or it could be a mechanism describable in the interface, e.g.
     another element or attribute uniquely identifies the operation.
     Maybe this is the case a generic mechanism akin to XOP's use
     of XQDM[1].

   - finally it could be something completely out of band - my username
     denotes i'm a Gold Paying Customer, or first 100 messages each day
     are Gold, the remainder will be "bog-standard". I'm not sure what
     we could do here in the WSDL language beyond kick it out to an
     extension mechanism - this kind of interaction is outside of the 
     domain of WSDL and in that scary land of "policy". 

So WSDL could describe the dispatching mechanism being used via binding 
specific mechanisms or extensions and i don't think we should do anything 
to prevent other to attempt to recognise (2) at the cost of not being able 
to describe all of (1) as well as other unforeseen dispatching mechanisms.

Paul

* (GED) "global element declarations" 
- a natty term i first heard used by JeffSch.

Received on Tuesday, 15 June 2004 06:46:55 UTC