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).
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.
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.
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.
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.