David Linthicum | SOA cloud computing relationship leaves some folks in a fog
All the noise about cloud computing has left many in the government confused about the relationship between service-oriented architectures and cloud computing. Indeed, the most common question I get these days is: “How will our organization move from SOA to cloud computing?” That’s just not logical.
Cloud computing is a hype-fueled hit. Almost all government information technology service providers are retooling for cloud computing, including CSC and Booz Allen Hamilton, and government agencies are deploying projects to leverage cloud computing resources. At the same time, almost all of the same agencies that are moving into cloud computing have SOA or SOA-related projects under way. This is why I am getting so many questions around the relationship between SOA and cloud computing.
Let’s get back to the basics. SOA, at its essence, is an architectural pattern that actually predates the SOA buzzword. It’s about breaking an architecture down to a functional primitive, understanding the information and behaviors, and building it up again using service interfaces that are abstracted into a configuration layer to create and, more importantly, re-create business solutions. Very simple point.
Cloud computing is a type of solution, a way of creating a system in which some or all of its IT resources exist within some third-party cloud computing resource, such as Amazon EC2 or Force.com. Thus, cloud computing is something that can involve part of or all of an architecture. The core difference is that the system is extended to resources that you don’t own or host locally.
Putting this more simply, SOA is all about the process of defining an IT solution or architecture, while cloud computing is an architectural alternative. Thus, SOA can’t be replaced by cloud computing. In fact, most cloud computing solutions are going to be defined through SOA. They don’t compete -- they are complementary notions.
Making the misunderstanding worse are recent analyst comments and blog posts that talk about cloud computing as the next evolution of SOA, which is also not logical. In essence, the people who make those statements, I’m finding, typically don’t know much about either of those topics.
Don’t get me wrong, the movement to cloud computing is a great thing and has been a long time in coming. I’ve been chief executive officer of two cloud computing companies, and the chief technology officer of another. The ability to leverage IT resources, as a service, will make computing more accessible for all businesses, including the government.
Although all systems are not right for cloud computing, there are many instances where this new technology, based upon a very old concept (time-sharing), will bring much-needed efficiency and cost reduction to government agencies. I’m pleased to see the number of cloud computing projects being defined by the government these days, although I’m just a bit concerned by the amount of misinformation out there.
The role of SOA in cloud computing is systemic. The ability to create a successful cloud computing solution means having an information-, service-, and process-level understanding of the problem domain. Then, break the architecture down into services that are decomposed and normalized, and then define core business processes that leverage those services. Finally, you can pick the technology solution, and cloud computing is another weapon in your architectural arsenal to create a successful instance of a SOA.
Another thing to keep your eye on here is the fact that SOA, while being an architectural pattern, is also a strategy. Thus you need to keep your enterprise architecture and the use of SOA in clear view as you look at any new technology or approach coming down the pike. The technology will always be changing, whereas your architecture should be relatively stable.