According to the publication from Mitre, Cloud Computing and Service Orientated Architecture (SOA), cloud computing has many services that can be viewed as a stack of service categories. These service categories include Infrastructure-as-a-Service (IaaS, Platform-as-a-Service (PaaS), Storage-as-a-Service, Components-as-a-Service, Software-as-a-Service (SaaS) and Cloud Clients. The following figure shows the service categories stack as depicted in the Mitre publication:
SOA is a framework that allows business processes to be highlighted to deliver interoperability and rapid delivery of functionality. It helps system-to-system integration by creating loosely coupled services that can be reused for multiple purposes. The concept of SOA is similar to Object-Orientated Programming where objects are generalized so that they can be reused for multiple purposes.
Now that we have an understanding of the various types of Cloud Computing services and SOA, lets explore how Cloud Computing and SOA are similar and different.
Similarities between Cloud Computing and SOA:
- Reuse – Conceptually speaking, the idea of reuse is inherent both in Cloud Computing and SOA.
- As needed basis – In Cloud Computing, the services are provided to the users on demand and as needed. SOA is similar to this since the system-to-system services are on demand and as needed as well.
- Network Dependency – Cloud Computing and SOA both require an available and reliable network. If a network does not exist then the cloud services provided over the Internet would not be possible. Similarly, if a network does not exist then the communications between systems would not be possible. Thus, both Cloud Computing and SOA are dependent on a network.
- Cloud Contracts – In Cloud Computing, contracts entail the mutual agreement between an organization and cloud service providers. In cloud contracts, there is a cloud service provider and a cloud service consumer (the organization). In the case of SOA, contracts are important and can be either external (e.g., Yahoo! Pipes) and/or internal (e.g., organizational system integration). In SOA contracts, there are service producer(s) and service consumer(s) that are conceptually similar with cloud contracts.
Differences between Cloud Computing and SOA:
Despite the similarities between Cloud Computing and SOA, they are not the same. Following are some of the differences between them:
- Outcome vs. Technology – In Cloud Computing, we are paying for the outcome but in SOA we are paying for technology.
- External vs. External and/or Internal Point-of-View – In Cloud Computing, the services that organizations get are from external organization but in SOA these services can be either from external organizations (e.g., Yahoo! Pipes) and/or internally (e.g., system-to-system integration between two or more systems).
- IaaS, PaaS, SaaS vs. Software Components – In Cloud Computing, the services provided can go up and down the stack but in SOA the services are software components.
- Raines, Geoffrey. “Cloud Computing and SOA.” The MITRE Corporation. The MITRE Corporation, Oct. 2009. Web. http://www.mitre.org/publications/technical-papers/cloud-computing-and-soa
- Gedda, Rodney. “Don’t Confuse SOA with Cloud.” CIO. CIO Magazine, 28 July 2010. Web. http://www.cio.com/article/2414614/cloud-computing/don-t-confuse-soa-with-cloud.html