Companies that want to improve agility while cutting IT expense have been exploring the benefits of cloud computing. Business leaders are especially interested in all the discussion about how a company moving to a cloud environment can improve growth and profitability plus control cost, while better managing risk and compliance. There have even been articles in mainstream publications like Business Week and the Economist on the importance of cloud.
The cloud environment provides potential advantages both within a company, for example using a private cloud to better manage product testing, and outside a company, using a public cloud to provide new functionality and agility quickly, for example using hosted business process management (BPM) tools. Cloud can provide advantages in self-service, scalability, flexibility, pay-as-you-go, and improved time-to-value.
Moving successfully into cloud computing requires an architecture that will support the new cloud capabilities. Many business leaders and analysts agree that moving to cloud requires having a solid, service oriented architecture to provide the infrastructure needed for successful cloud implementation.

“The cloud serves as a good way to deploy services in an SOA environment, says Sanjiva Weerawarana, CEO of open source SOA software vendor WSO2. He notes that SOA and the cloud support each other, but are not based on the same ideas: ‘Cloud computing is a deployment architecture, not an architectural approach for how [to] architect your enterprise IT [as SOA is].” – InfoWorld, “The cloud-SOA connection“ (link resides outside of ibm.com).
SOA can provide the backbone to allow both user front-end applications and enterprise back-end servers to easily access cloud services. With SOA already in place, taking advantage of cloud computing will be easier, faster and more secure.
"The immediate benefit of combining SOA and Cloud Computing is time. Reaching out to the cloud for business or technology capabilities allows SOA initiatives to compress time to value. In the longer term, the benefits include improved collaboration, customer satisfaction and business growth. By offering SOA-based business capabilities to the cloud, businesses can improve interactions with business partners and existing customers, and/or generate new revenue streams." – Brenda M. Michelson, business technology consultant, Elemental Links (link resides outside of ibm.com)
Cloud computing as it relates to SOA
What can SOA provide to allow you to move easily into a cloud computing environment, and what value can you gain from combining SOA and cloud computing? Cloud computing is a new consumption and delivery model inspired by consumer Internet services. Cloud capabilities are defined as services. And this begins to explain why cloud will need the service orientation provided by SOA.
Some pundits have said that cloud is a flavor of SOA or a replacement for SOA. Neither of those statements positions the relationship between cloud and SOA accurately. They are actually complementary. Each supplies unique capability and functionality, and the two work together to provide an enterprise agility solution.
"’SOA is an architectural style for building applications, loosely coupled, allowing composition,’ says Jerry Cuomo, CTO of IBM's WebSphere business. ‘Can we build a datacenter infrastructure on SOA principles? Yes, and that's the cloud, so it's a service-oriented infrastructure,’ he adds. ‘It's taking that architectural principle of SOA and applying it to an infrastructure.’" – InfoWorld, “The cloud-SOA connection” (link resides outside of ibm.com)
SOA is an architectural approach that creates services that can be shared and reused. It converts current vertical applications into a number of components called services that can be reused across multiple applications, thus providing savings and improved agility to make changes faster and more cost effectively.
On the other hand, cloud computing is about providing ease of access to and usage of services. Cloud computing delivers a number of “x as a service” capabilities, such are Software as a Service (SaaS) or Platform as a Service (PaaS).
- Software as a Service (SaaS) provides end-users standardized, network-delivered IT applications. The service provider retains ownership of the software and hardware assets and handles all maintenance and support. The end-user is able to add and subtract licenses on-demand. The most prominent example is Salesforce.com.
- Platform as a Service (PaaS) provides end-users an application development environment delivered over a network (typically the Internet). The PaaS model makes all of the facilities required to support the complete life cycle of building applications entirely available from the network. It is generally billed on a per-seat or per-login basis. Examples include Force.com and Google App Engine.
Cloud computing employs repeatability and standardized, easy access to shared hardware and software at low cost. Together SOA and cloud can provide a complete services-based solution.
An interesting analogy for cloud and SOA is to think of books in a library. The books represent the services that customers can access once the library acquires them, and the library building represents the cloud where people come to check out the books/services. Books are reusable, and several books might make up a series or topic. Someone writes the book once and it is reused many times.
Using our analogy of books in the library, there are two components to consider when thinking about services in a cloud environment. One is the providing of services (books) to the cloud (library). And the other is the consuming (checking out) of those services (books). Each has different requirements.
Prerequisites for providing services in a cloud
Before providing services into a cloud computing environment, you need to make some decisions on a number of requirements that need to be in place if you are to take advantage of cloud computing. Most of these items are just extensions of what you have with SOA, so if you have already implemented SOA, most of the decisions have already been made. For example, to provide Software as a Service requires tools for creating new software services, and these will already be in place.
- Virtualization of your current IT environment so that services can be run in the most cost-effective place. This relates to the horizontal view of services in SOA across the organization. Cloud just extends that definition beyond a single organization. Virtualization in the cloud lets you take services off the local server, helping to cut costs and balance workload.
- Reusability support so that multiple people can use the service at the same time. A consistent deployment methodology makes sure each service does not have to be treated individually.
- Governance and management of services. This is a SOA-related requirement to provide improved governance and management of services within a cloud environment where they may not be under direct control.
- Security and access control. Along with consistent deployment, there is the requirement for well-defined security and access control policies provided, for example, by IBM Tivoli Security Policy Manager.
- Chargeback and pricing for services. This important cloud requirement is also a key SOA focus area: chargeback and pricing for services developed using an industry standard process like the SOA Governance and Management Method.
These key cloud computing areas are based on function available today with SOA.
Prerequisites for consuming services in a cloud
On the service consumption side of cloud computing is another set of requirements related to actually running and exploiting services in the cloud. These items need to be assessed to make sure you are achieving the value you expect from cloud. Again, if you have implemented and are running services in SOA, you should already have seen the value of these services-based computing requirements.
- Ease of access of services. This is a key value proposition for cloud that can be provided by a user interface, such as WebSphere Portal.
- High availability of services. Along with easy access, service usage must be fast and have high availability at a lower cost than when done within your internal IT organization. A well-managed, well-architected SOA environment, helps you to achieve these benefits and be able to measure the value you are gaining from the cloud.
- Service discovery. To consume a service will first require the discovery of that service, which is a key capability provided by a registry product, like WebSphere Service Registry and Repository.
- Security and data privacy. As with the provisioning side of the equation, enforcement of security and data privacy will be key requirements, provided, for example, by WebSphere DataPower SOA Appliance.
As mentioned previously, cloud and SOA need to work together to provide service visibility and governance. Governance is a word that came to prominence with the adoption of SOA. In the world of SOA, it is divided into design-time governance (defining policies to services) and runtime governance (actually applying those policies to real-time traffic). This works the same way using services from a cloud. Service visibility and governance will provide service discovery within a cloud and the SOA governance for managing the lifecycle of services that are available in the cloud. Cloud can take advantage of the SOA governance approach and tools without the need to create new governance overhead.
Summary
So Cloud and SOA are not an either/or situation; cloud computing and SOA are complementary, not replacements for each other. They work best together. They have a number of common characteristics, such as the focus on agility and flexibility, and being based on services and reuse of services. Having SOA and service orientation in place can make moving to cloud easier and less complex because a cloud computing environment is also based on services.
They have both had “hype” cycles. SOA went through one several years ago and cloud is going through one now. As with SOA, customers will understand in time that cloud is not the answer for everything, but has value in certain areas. Ultimately for both, it is all about services.
Having a service oriented architecture already in place helps businesses achieve value from cloud computing more quickly. Both cloud and SOA are all about delivering services to the business with increased agility, speed and cost effectiveness, and that can lead to greater innovation and improved return on investment.
By Fillmore Bowen (Raleigh, North Carolina). Fill is the Program Manager responsible for Smart SOA in IBM Software Group.

