Someone (they didn't leave a name) recently suggested I should stay off the coffee before I start talking about SOA, hence the picture (thanks consumerist.com for the use of), fellow GWB'er Chris Williams also suggested I should get things off my chest, so here goes.
I’m sick of SOA and the state of affairs it’s in now. SOA is suffering from a very major credibility issue that threatens to kill off the term and therefore I fear the ideal. Ironically, the cause of the problem is the very people who are trying to sell it.
Microsoft have jumped off the bandwagon already, you aren’t going to find much of an appetite for a good SOA discussion in Redmond these days only other to talk about were it has gone wrong, but they will happily talk to the cows come home about Service Orientation and System Interoperability, so in other words they are happy to promote the principle and a particular technology best practice but perhaps not the term that has been used up until now to label it.
So what are the major issues?
1) The acronym has been over used. The populace is sick of hearing it and now tend to disbelieve the promise. Familiarity breeds contempt.
2) Each vendor’s definition isn’t consistent with one another.
Each vendor wants to promote their solution as being better, easier and quicker than the competition, fair-enough everyone has to pay the bills, but the different pictures are just confusing the consumer. For instance, when has BPEL, ESB or EAI all been part of SOA? Here lies the crux of the problem, SOA’s definition is ambiguous. Yes, SOA’s definition is so wide open you could drive a London bus through it. This is a fantastic opportunity for the marketing guys as SOA’s brief is pretty thin they can basically adapt a more detailed definition to fit their product range.
As SOA does at least have web services going for it. Huh? SOA is supposed to be technologically agnostic, right? Well yes, but all the big vendors implement SOA using web services sighting that web services are closer to the vision and it’s a pain in the neck to use any other technology.
So if I was ‘King for day’ what would I do about it?
1) Give it a new name, SOA4WS (Service Orientated Architectures 4 Web Services) tying SOA to a technology, i.e. Web Services officially will allow it to develop stronger best practices and eventually industry wide standards.
2) To promote industry wide standards I would hand over SOA4WS to the WS-I, yes this may slow down innovation but an agreed consensus is ultimately better for the consumer as it gives them the freedom of choice in vendor selection with the reassurance that they can change.
3) Standards also take the definition of SOA away from the marketers and places it squarely back with the engineers.
4) If BPEL, ESB or EAI is essential, debate and cook off, just prove it in other words and then amend the definition so it is clearly stated. So we are all going to turn into Standards watchers, well there’s nothing new in that.
Anyway, enough food for thought, I’m away next week on leave (I’m off to sunny climbs) so I will ponder some more. Meanwhile have a think yourselves and feedback.
Lets see if we can get the SOA or SOA4WS house in order.