I was just reading a thoughtful piece by Clive Longbottom entitled ‘SOA- Strategic or arbitrary’, in which Clive was discussing views of some who are predicting the death of SOA.
My own view is that, although the phrase ‘service-oriented architecture’, and the acronym ‘SOA’ might disappear from common usage, the shift in thinking ushered in by SOA is permanent.
I see it as a similar situation to OO, Object-Oriented. Back in the 80s (wow, that DOES seem a long time ago!) software engineers were raging about OO, and the related ‘objects’. Eventually, as the world turned and the market moved on, OO became rather a dirty word, and fell from usage. But its impact remains.
The reason is that at its underlying core, OO was about sensible programming discipline. What is was really all about, when you cut through all the obfuscation the IT market frequently generates, was about separating code into self-contained chunks, with a clean input and output. In fact, ancient COBOL programmers would have told you at the time that it is really just what used to be called ‘structured programming’. The driving force is that by building objects where code and what it does is self-contained, you get an improvement in quality as well as the opportunity to share or reuse pieces more easily.
Now switch to SOA. Despite all the talk about ESBs, Adapters, BPM, Registries, Repositories, Brokers and so on, what is SOA REALLY about? It is about extending the OO thinking to relate these self-contained pieces of code with pieces of business functionality – the SOA service – and providing a ‘simple’ (or should I say simpler!) discovery and invocation mechanism, in a similar way to OO with its objects, classes and methods. The result is sharable/reusable services with boundaries that fit in a business as opposed to an IT context.
This gives real benefits, if you can achieve it. But even if the market moves on to something else, and drops the SOA word, the basic concept of shared services with business as opposed to technical visibility has so much to offer that it will not be thrown away. Like OO, it will continue to play a role in whatever acronyms and buzzwords come next.