SOA and Cloud Computing: Are They The Same?

SOA has been a buzzword in enterprise computing for a while. Cloud computing is relatively new one but gaining stronger momentum than SOA. With these two terms, many people get a little confused: is cloud computing just a new name for SOA? And can they play together?

Definitions

Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.

Before drawing a conclusion, let’s take a look at the definitions from wikipedia.org:

Service Oriented Architecture (SOA): is a flexible set of design principles used during the phases of systems development and integration. A deployed SOA-based architecture will provide a loosely-integrated suite of services that can be used within multiple business domains.

Cloud Computing: is Internet-based computing, whereby shared resources, software and information are provided to computers and other devices on-demand, like a public utility.

What’s Common?

As we’ve read in various articles and books, SOA is mainly for enterprise; the cloud computing is, as its definition points out, Internet based services. In my previous blog, I mentioned cloud as architecture pattern (CAA), which can be leveraged in enterprises as well. If we compare the SOA and CAA, they look somewhat similar and share some core principles:

  • Emphasize service concept
    By definition, a service is performance of work by one for another. Both CAA and SOA delegate works to other parts of the system, either by the service provider or other business components. With the delegation, people can use the services without worrying the implementation details and scalability. Also the services can be shared by multiple applications/users for the best use of services.
  • Promote loose coupling
    They demand minimum coupling among different parts of the system. As a result, any change on one part of the system has limited impact on the overall system.

What’s Different?

SOA and CAA differ significantly in these areas:

  • Horizontal vs. vertical services
    The services in SOA are mainly focusing on business. Each service may represent one aspect of the business. Combined together, these services consist of a business application or solution. In this sense, the services are horizontal.
    The services in CAA are mainly layered according to typical software stacks. The lower services support the upper to deliver applications. Therefore, I call them vertical services.
  • Application vs. infrastructure
    SOA is for application architecture. The dividing of different components is based on their roles in the SOA applications. More often than not, you start with a business problem and then abstract out the services. These services can be re-used by other applications in the future.
    Cloud Computing is for IT delivery. The dividing of different services is based on their roles in software stack, therefore mostly well defined. You don’t need a problem before defining the cloud services. The services can be easily re-used by all applications.

Conclusion

SOA and cloud computing share many common principles, but also differs significantly in their role in IT architecture. SOA is mainly an application architecture with horizontal services; while cloud computing is an IT architecture with vertical services.

Given the differences, SOA and cloud computing complement each other very well. I will talk about how to leverage SOA in cloud computing for enterprises in future blogs. Stay tuned.

This entry was posted in Cloud Computing and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.