- From: Savas Parastatidis <Savas.Parastatidis@newcastle.ac.uk>
- Date: Sun, 26 Oct 2003 14:28:50 -0000
- To: "Anne Thomas Manes" <anne@manes.net>, <paul.downey@bt.com>, <www-ws-desc@w3.org>
- Cc: "Jim Webber" <jimwebber@hotmail.com>, <distobj@acm.org>
Anne, Thank you for your message. I agree with all the alternatives you've provided. It is indeed the service provider who chooses the names of operations and the message exchange patterns that are offered. So, you are correct that the service provider can offer an operation called "SubmitOrder" accepting just one order form or a choice between two. Or, it could offer two separate operations or, even, interfaces. No disagreement. Many ways of achieving similar things. However, I was trying to suggest in my message that there wasn't an actual need for having "operations". A service receives messages. If one of the messages on the wire looks like this: <orderForm1> <carOrMotorcycle>car</carOrMotorcycle> <colour>blue</colour> <cc>1800</cc> <model>blabla</model> </orderForm1> then the service receiving it knows what needs to be done. There doesn't need to be a verb there indicating the existence of an operation, like "submit order", "buy car or motorcycle", etc. In the second case, the messages will look like this: <orderForm2> <colour>blue</colour> <cc>1800</cc> <model>blabla</model> </orderForm2> <orderForm3> <colour>red</colour> <cc>1600</cc> <model>blabla</model> </orderForm3> Again, no need for names of operations. Just message exchanges. That's the reasoning behind the recommendation for renaming "operation" to "messageExchange". <messageExchangeGroup> <messageExchange name="exchange1"> <input message="tns:orderForm1"/> <output message="tns:invoice1"/> </messageExchange> <messageExchange name="exchange2"> <input message="tns:orderForm2"/> <output message="tns:invoice2"/> </messageExchange> </messageExchangeGroup> I believe such an approach helps us in better describing web services as being agents (does the WSA document still use this term?) that can receive/send messages and not entities/objects/components on which we call operations. One would argue that "exchange1" and "exchange2" are effectively the same as the "SubmitOrder1" and "SubmitOrder2" operations. I believe that the only reason for having a name for a "messageExchange" is because we need to make the association between the abstract part of WSDL with the binding part. By using "messageExchange" there is no suggestion that there are operations at the service end. Hence, there isn't the perceived requirement that the names of those operations are transmitted on the wire, as it is suggested by other messages. Also, I agree with the argument that uniqueness on the wire should not be mandated. I hope you see where I am coming from. Of course, I may be way off on this. Best regards, .savas.
Received on Sunday, 26 October 2003 09:28:58 UTC