My "todo" List

I am planning to write some blogs at somepoint of time in the future on the following topics:

Spring Framework, Hibernate, ADO.NET Entity Framework, WPF, SharePoint, WCF, Whats new in Jave EE6, Whats new in Oracle 11G, TFS, FileNet, OnBase, Lombardi BPMS, Microsoft Solution Framework (MSF), Agile development, RUP ..................... the list goes on


I am currently working on writing the following blog

Rational Unified Process (RUP) and Rational Method Composer (RMC)

Monday, January 18, 2010

How are SOA and Cloud Computing Related?

The following diagram shows the relationship between SOA and cloud computing. SOA and cloud computing complement each other. Applications that are built on SOA principles provide loose coupling across applications by defining services that typically exchange information via messages (typically defined in SOAP, although that’s not a mandate, but is the preferred approach).

A typical SOA based platform is shown in the diagram below




As shown in the above diagram, when you built applications that are based on SOA, you have to build services (which is not the same as web services). There are many vendors that provide SOA platform for application development. Oracle provides Oracle SOA Suite, Microsoft provides BizTalk Server in combination with Windows Communication Foundation; the list goes on and on. They are all based on creating services (not web services) that expose business functionality that can be reused by any application within or outside an organization in a loosely coupled manner (via XML messages which tend to utilize SOAP format)
Most of the COTS products that provide a SOA platform for application development provide a variation of the features mentioned in the above diagram. Cloud computing as stated before complements the SOA platform. A typical taxonomy for cloud computing as defined by “www.opencloudmanifesto.org” is shown below.
By building applications that are build on SOA platform (NOTE: its not a requirement to built applications on SOA platform in order for them to be hosted as Cloud Applications, however, SOA based applications are ideal candidates for Cloud Applications), it is possible to deploy the applications as Cloud applications thereby benefiting from what cloud computing has to offer in terms of Software sharing, Platform sharing and infrastructure sharing. The cloud could be

  • Private cloud (intranet)
  • Public cloud (internet)
  • Community cloud (a group and/or organization)
  • Hybrid cloud.

The Service Provider provides different types of services, and the task of the provider varies based on what service is provided. Following shows the typical services that are provided (NOTE: there are variations to the following list but the three listed below are pretty much a standard when someone talks about Cloud Computing and Services)
  • Software as a Service (SaaS) - provides a software as a service, example salesforce.com
  • Platform as a Service (PaaS) – provides the platform to develop the software which can be used as a service. The Service Provider does not have complete control over the hardware platform.
  • Infrastructure as a Service (IaaS) – The infrastructure is provided as a service and the service provider has complete control over the hardware/infrastructure.
NOTE: I have oversimplified, SOA and Cloud computing in this blog, there is so much to this than what I have stated.