In a short article, Mark Baker claims the default approach to SOA development fails to properly separate concerns, and describes how this is different in Web architecture. (More at InfoQ.)
When I discussed the article with Mark, one of my comments was this:
If I put on my WSDL-defending hat (which is quite hard for me these days), this doesn’t convince me. Changing from real time to delayed is not an implementation, but an interface change.
To Mark, this is clearly an implementation change, so he asked whether I was really serious. My reply was
Yes, that was intentional. The question is what, exactly, constitues semantics. If “result contains stock value at time of request +/- 10 seconds” is the postcondition, delayed vs. realtime becomes part of the operations semantics. Putting information about non-syntactical aspects into the operation name is a valid strategy. Isn’t it?
I remember Jacek Kopecky using “add” vs. “substract” as an example - if the operation is just called “calc”, how do you know what to do when “calc(2,2) is called?
If I understand your goal correctly, you want to convince those who aren’t already convinced. I’m just trying to anticipate what some of them might say :-)
Looking at the comments, it seems I anticipated correctly :-)
Yup, good call. It’s rather ironic that the more I incorporate the Web into my way of thinking, the harder it becomes to think or explain things in terms that SOA/CORBA/DCOM folks can relate to.