RE: Action Item 2004-07-01 Solution to 168/R114

Roberto,

> Here's the issue as I see it: the WSDL author went as far as 
> to define several operations on an interface. Operations 
> partition the set of all valid message exchanges 
> (interactions) with a service in disjoint subsets. If one 
> interface can define two operations,
> O1 and O2, that use the same MEP and both have signature A->B 
> (i.e. they take an A and return a B), then the combination of 
> the actual messages "a" and "b" as transmitted doesn't tell 
> the whole story. In general, you need the "operation name" to 
> be transmitted. (Maybe there is some rule that says "if the 
> value X is > 1000 it's O1, otherwise it's O2", as Gudge 
> offered. But then the culprit seems to be the insufficiently 
> powerful type system used to define A, since it merged two 
> disjoint types into one:
> in reality, O1 and O2 have different signatures.)

The first thing we have to learn is that O1 and O2 don't really exist.
Web Services don't really support operations (as you noted) just the
exchange of messages. 

Once we're past that hurdle we are down to a problem of dispatch. Given
a message with particular structure and content, where do I shove it in
my back end?

That is service-specific, and is therefore out of scope for WSDL.

Of course I sympathise with the fact that at the application level, some
will want to turn this message exchange into something like:

interface WS
{
  X foo(Y y);
  W foo(Y y)
} // obviously wrong

But though familiar and comfortable, that is not a true reflection of
what's happening, which is more like:

interface WS
{
  Message foo(Message);
}

Where we are left to our own devices to marry this up with our
application-specific needs.

Jim
--
http://jim.webber.name 

Received on Tuesday, 13 July 2004 20:29:31 UTC