After a long run as the technology catch phrase of the naughties the term SOA (Service Oriented Architecture) fell out of favor with many IT companies; even more so with their marketing teams. The principles of SOA still remain completely valid, more now than ever, but the attention lately has been paid to The Cloud. At first this irritated me and struck me as just another marketing fad moving on to something shiny and new. All the marketing about SOA was in full force before anyone had any practical working examples of how SOA can really work or be used. Most of early “SOA” was simply a replacement for distributed programming and was just as brittle and left a bad impression. Indeed I would argue that most “SOA” done to date is not really SOA at all, it is rehashed tools and techniques from the past. Real SOA is still quite rare.
What makes this remarkable is that as the focused moved from SOA to Services and then to the Cloud we find ourselves in a new technology landscape where SOA is more relevant than ever and more practical as well. The cloud is really about services; about making details that were once hardware and platform specific become simple and transparent. Storage, runtime, and infrastructure were the first truly successful advents of the cloud, but even many of these were still retooled legacy platforms presented via the internet. As these services have progressed to completely new platforms they have truly become services. The space in which they operate, data centers with massive bandwidth and computational capabilities, even allows them to be mixed and matched between vendors and sites to create applications tailored for each customer.
In reality what we are seeing in many respects is the next stage of computing as we know it. I say this not from a marketing perspective (sorry you guys are just easy targets), but truly from a technical perspective. If we look back at the last few decades of computing we can see this same sort of leap forward repeating itself as our level of abstraction gets higher:
We leap forward every 10-15 years. Cloud computing is really just another leap forward. As we leap forward we move our focus further from the computer (hardware, operating system, network, database) and closer to the business process we’re trying implement. The truth of the matter is that we have not actually achieved this Cloud phase, but we are coming close. What we really have today is just the beginning.
Most current cloud offerings, though compelling from every major vendor, are still early version products designed to fit into the existing computing landscape. That is to replace an existing on premise functional service with an off premise one. There is nothing wrong with this, this is a necessary step and provides tremendous value in itself, but it is not the real destination of this leap forward.
Just as we no longer contend with disk reads and writes we will no longer contend with database reads and writes or with threading and processes and many other aspects of technology today that may be interesting to us tech guys, but don’t help us deliver value to our organizations. The fact of the matter is that for the vast majority of us in IT our organizations don’t care how cool something is technically, they care about costs and capabilities from a business perspective.
So what does this have to do with SOA?
As the cloud matures we can see that we are beginning to be able to architect applications out of separate services provided by different sources to fit the specific needs we have: these architectures are truly service oriented. Perhaps this is not Service Oriented Architecture in the way that we first imagined, but few technical innovations turn out how we first imagine. We don’t really know exactly where this will all go yet, but I have some friends in Redmond who seem to be on the cusp of this leap.