RE: On the Operation Name Mapping requirement

Hi Glen,

Thanks for the input. Some comments inline...

> 
> The idea of the ONM requirement is that the description should, in
some
> way, give you a hint as to how a particular operation is determined in
> the absence of unique wire signatures.  In the case below, there is no
> conflict, since one operation is in-out and the other is out-in.
> Therefore, from the service's point of view, it is either going to
> receive a GameOver message (and therefore the operation is
> reactor:GameOver) or itself decide to send one (and therefore the
> operation is intiator:GameOver).  The wire signatures are enough to
> determine which is going on.  If both send them at the same time, I
> would imagine that both operations would be invoked simultaneously,
> generating a pair of equivalent messages in response.
> 

I am afraid I would have to disagree with your analysis. Since a service
endpoint in our case would support both the reactor:GameOver and
initiator:GameOver "operations", the service cannot determine to which
of the two operations the received <game-over /> message relates. Is the
message a response to a previously sent <game-over /> message or is it
the other service initiating a two-way <game-over /> message exchange?
 
The solution, of course, is to define a <game-over-response /> message,
in order to guarantee the uniqueness on the wire. Roberto in his message
described how this could be done. We were aware that this would be the
solution but we felt that WSDL shouldn't really be directing us on how
to define our message exchange patterns and the message formats. We were
expecting WSDL to be flexible enough to allow us to describe message
exchanges like the one in my previous message.

What if we had a well-known business document that had to be exchanged?
WSDL forces us to think in terms of "operations" and so we have to wrap
our business documents around unique elements.

> To extrapolate out a little from what you say below, if you're
> interested in modeling a system which has a complex state machine
> involving lots of decision points based on arbitrary ordering of
> incoming messages, I don't think WSDL is really what you want.  I
would
> think you'd use something like BPEL or BPML for this.  WSDL is
> essentially about Web Service *operations* and that's why we have the
> ONM requirement - if you can't distinguish which operation you're
> talking about, you may as well just have an undifferentiated bag of
> messages and not use WSDL at all.
> 

I always thought of WSDL as the way to define message exchange patterns
and the formats of those messages because that's what services do, they
exchange messages. No "operations", "methods", "calls", "procedures", or
any other similar abstractions. Your description above tells me that now
I have to think of Web Services as "callable" entities.

I would personally prefer to think of WSDL as a contract for message
formats and as a way to describe message exchange patterns. If a message
can be mapped to multiple message exchange patterns, that's fine. I
would expect the service logic or an additional protocol (e.g.,
WS-Addressing) to help me in determining what should be done with the
message.

Using WSDL in the manner you suggest, reminds me more of CORBA IDL and
less a language for describing message exchanges. But that's just me
:-))

Regards,
.savas.

Received on Monday, 4 October 2004 19:33:49 UTC