It is almost with a heavy heart that I take up this subject again, simply because I seem to be outnumbered in my opinion that SOA and webservices are overhyped and are used in places where Object Orientation and other technologies are more appropriate. But still I simply can't help myself to say what I have to say, so here goes:
It feels as if it's politicaly incorrect these days to say anything bad about webservices. My main problem is that it is being punted, especially by Microsoft, as the answer to every problem. It seems like they fear the day when there is nothing to hype as the ultimate solution to everything, the next big thing. I recently decided to put my fears aside and have an optimitic look at SAO and webservices. Plse don't ge me wrong, they have their place and are brilliant in their own right, but in the ideal world they should be used to do only what they were created to do. I see business systems constructed with OO, patterns and layers and then, only if needed you can add on some web services and SOA.
Luckely in Rocky Lhotka I found a someone who feels much the same as I do. If your interested in the subject, go read the articles in his “service oriented” category on his blog, they are all exceptionally good. Here is the chief points I want to raise, taken out of his blog [ I hope ad-hoc copy-and-past out of his posts is okay, if not, someone must plse let me know ].
1. “SOA is not useful INSIDE applications. It is only useful BETWEEN applications. If you think you can replace your TIERS with SOA concepts, you are already in deep trouble. Unless you turn your tiers into full-blown applications, you have no business applying SOA between them [ This I feel is the major point that most people are missing. The most alarming thing is that this is exaclty what the Microsoft Enterprise Development Reference architecture, the only counter to J2EE that I'm aware of, proposes.]
2. Web services force the use of SOA, even if it isn't appropriate. They should be approached with caution and forethought.......... though frankly, today the better SOA technology is often queuing (MQ Series or MSMQ)
I think this post on Active and Passive data sums up everything nicely.