- From: Savas Parastatidis <Savas.Parastatidis@newcastle.ac.uk>
- Date: Mon, 4 Oct 2004 20:32:38 +0100
- To: <www-ws-desc@w3.org>
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