I thought with all the hype around SOA these days (everything is suddenly an SOA tool and everyone is suddenly an SOA expert and every company is “implementing” SOA) that a review of the roots of SOA might be in order.
‘Service Oriented’ Architecture was first described by Roy Schulte some years back. You’d think probably just a few years back like 2001 or something–but no, it was over ten years ago in 1996. Clearly Uncle Roy was on to something. (Edit: I’m sure SOA may have come from something even earlier, but I can’t find any reference.)
Since then we’ve heard talk of “implementing” SOA, using powerful new SOA tools, how SOA is a ‘break-through’ in software development, how this new ‘technology’ will revolutionize the industry.
As with most things that have a life of its own, the notion of SOA has been abused, subsumed, consumed, morphed, tweaked, adopted, promoted, and hyped until it’s hardly recognizable. Some claim that SOA has technical requirements, such as a service registry, or messaging, or orchestration, etc. How can a design approach have technical requirements? Must an SOA-type solution have a messaging component? Is the use of an ESB required? Well, no not really.
The only thing an SOA-style solution really must have is, well, services. Everything else is nice to have. Sure, the everything elses can go a long way to making use and reuse of those services more effective, but they are not requisite.
[Edit]A service doesn’t need to be a web service. Heck, it doesn’t even need to use what we’d consider a classic communication protocol at all. I saw the wikipedia entry for SOA and it mentioned that even a file-based solution could be considered a service, and thus fit in the SOA style. A service needs a contract and a way to talk to it–e.g. “drop a file named this in a directory named that to invoke service X.” Would you consider this to be a service? If not, why not?
This Gartner article tries to distinguish between the useful and the hype regarding SOA. Read it through and then look at when it was written. It scared me how applicable it still seemed even though it long predates most of the current SOA hype.
Alternative POVs welcome and encouraged.