Is success with SOA required for success with cloud computing?
To break this down, we first need to put a bit more definition around cloud computing. The easiest way to do this is to just separate the offerings into Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). IaaS is about leveraging someone else's infrastructure on a pay-for-what-you-use basis. PaaS takes this up another layer in the stack, where there are software components and middleware available for use by your application. At the top of the stack is SaaS, where you're a user of applications or application services that are hosted and managed by someone else.
In the case of IaaS, it can be easily argued that success with SOA really doesn't have anything to do with success with IaaS. There is a caveat, however, for companies that are already using the information technology infrastructure library (ITIL) and familiar with its emphasis on IT service management (ITSM).
PaaS starts to move a bit more into the application world, but still not at the typical discussions of SOA. PaaS may provide things like a block storage service and a message queuing service. Enterprise SOA discussions are more likely to deal with things like a product pricing service or customer account management service. Many of these "platform" capabilities may still have more to do with an ITIL-based view of the world than an SOA-based view of the world.
When we reach the top of the stack at SaaS, the connections become very clear. Odds are SaaS offerings provide exactly the same kind of capabilities that the "services" in your SOA do, at least at a high level. The reason why SOA is so important, however, is that most SaaS offerings are focused first on providing a user-facing application, and not on providing system interfaces to those same capabilities.
Moving from home grown or locally installed off-the-shelf applications to SaaS applications may provide a better cost model, but it may not make any improvements on exposing the business logic behind those applications to other applications. This is where your service model must come into place. If you've adopted SOA and you've been successful with it, you should have a robust capability model that provides an optimal way of partitioning things. You can now use this as an assessment tool against the interfaces provided by a SaaS provider to determine whether or not it is in alignment with your SOA.
The key takeway from this discussion is that success with SOA (and ITIL) implies a maturity around service management. A mature service management approach should correlate with better decision making on when, where, and how you leverage cloud computing. Is SOA success required for cloud computing success? No. Will success with SOA increase the likelihood that you'll be successful with cloud computing? I believe it will.
This was first published in July 2011