Save your valuable time and don't watch this attempt to pump blood into a cadaver: http://www.infoq.com/presentations/Reincarnation-SOA-Anne-Thomas-Manes. This presentation was so staggeringly ineffective and useless that I felt moved to write yet another SOA epitaph.
I believed in SOA at first. That was until I had to get small web-based applications built, quickly. That was until I tried to integrate one of them with Amazon Web Services and went with Amazon's RESTful version (as did an overwhelming majority of all other mash-up developers).
On planet earth, SOA was a vendor-driven monster the best of us
eventually ran from. To survive it, we protected our sanity with a bit
of HTTP armor and plenty of REST.
It was about this time that I fell in love with Ruby and eventually, Rails. Rails, in case you've been living in a SOA catacomb, is a RESTful framework from the smallest brick, on up.
But hang on, buzzword vultures. Even Rails, at the time of this writing, isn't even cutting hype-edge anymore. 'Cloud', whatever that really means, is all the rage.
And yet, technology hype cycles, no matter how overblown, do have real value. Planted in the compost pile of rotting buzz are vibrant seeds of truth.
If nothing else, hype cycles force us to take sides. Sometimes these sides form around the best way to grow a seed of truth.
In fairness to SOA, we were confronted with the idea that standardized system to system interaction over HTTP (with XML and XML Schema) could be an effective building block for highly interoperable systems.
Fair enough. So where did it go wrong?
As I see it, SOA architect-astronauts described the wrong environment for growth of standardized system to system interaction over HTTP. Specifically:
- In reality, there were too many non-standard vendor implementations of WS-* (WS-Death*) which led to ...
- WS-* required wholesale vendor buy-in to expensive tools and software infrastructure. Startups not welcome!
- SOAP didn't effectively reuse aspects of HTTP. It ignored three other useful HTTP verbs completely, missing a huge opportunity to make web services really simple.
- SOA required massive up-front thinking to be even partially useful. Despite SOA evangelists' insistance in top-down/bottom-up agnosticism, SOA was not a bottom-up/organic way of thinking. And, more than we'd like, 'organically' is typically how we must go about building systems.
Sometimes you see a presentation that is so vapid and useless that you're moved to do something about it. Or, just moved to throw up. This was one of those for me.
OK, OK. Being positive ...
A little reminiscing from time to time does help you think about how you got to where you are and the little disasters that, with God's grace, you navigated along the way. For that I'll be forever grateful.
*Organs play ...*