The terminologies used to discuss SOA and Cloud computing and the breadth of what they cover is often interpreted as per-need. One often sees the paradigm stereotyped to a manifestation or specific implementation: SOA to Web services for example or Cloud to computing units. The definitions below attempt to create a generalization of terms and thereby create broad applicability of the technologies, patterns of usage and deployment scenarios.
SOA - Service oriented architecture is an architectural approach for constructing software systems from a set of building blocks, called services. Services differ from components as services are autonomous, defined by their interface, loosely coupled and often support multiple technologies in integration. SOA adoption requires a methodology where these services are developed in tandem by both IT and the business. SOA adoption also requires a governance process where services are defined, changed, modified, combined, versioned, reused and orchestrated to support ever-changing business.
IBM describes it as an emerging computing paradigm where data and services reside in massively scalable data centers and can be ubiquitously accessed from any connected devices over the Internet.
With SOA and Cloud computing, cost reduction and business agility are common drivers, yet the benefits are achieved in different ways. Cost savings is a medium- to long-term driver for SOA as cost savings occur only when reuse of services reach levels where the cost of building the service can be offset.
Dont make the mistake of expecting cost savings in your first SOA project. Your costs will in fact be higher. On the other hand, cost savings are immediate when a Cloud based infrastructure is leveraged appropriately. While rationalization is also a common need of SOA and Cloud computing, the targets vary: business functionality in case of the former and infrastructure that is used to deliver them in case of the latter. The chart below outlines the similarities and differences of the drivers for SOA and Cloud.
Specific stakeholders of an organization are common to both SOA and the Cloud and may have significant interests. This refers to select members of the IT organization―CIO, delivery teams and data center personnel who work to implement services and maybe host them on the Cloud infrastructure.
Its worth mentioning that failed initiatives under both these paradigms are mostly people related, as both require strong processes and governance frameworks to be put in place. While technology related challenges do occur, they are usually overcome eventually. Maturity levels of an organization in using IT and prior demonstration of agility in adopting IT related changes is a good measure of appetite and indication of outcome for such initiatives.
Stakeholders of SOAStakeholders of Cloud Computing Sponsored by Business and implemented by CIO organization, sometimes both by latterSponsored and implemented by CIO organization Requires active participation from Business, IT and Data Center operationsRequires active participation from IT and Data Center operations Often flows from strategic initiatives and mandates in the organizationPresently more often used to meet tactical and very specific needs
Provisioning and Lifecycle
Services often are created to meet tactical needs and evolve into enterprise class as use and reuse grows. Service lifecycle management governs this evolution and is also essential to provide a roadmap and sustenance to enterprise services. On the other hand, its simpler to procure and use Cloud services. Life cycle challenges for Cloud users are mostly limited to compatibility between upgrades, which again is often addressed through SLA guarantees from the service provider.
When it comes to managing the two classes of assets there are differences. However, synergies exist in the way one is used to manage the other and vice versa akin to a process running on an operating system that may itself be a collection of the running process instances. Ubiquity of technologies like HTTP, XML and the Web services standards that emerged, henceforth, have lead to them being used as preferred implementation platforms for SOA and administration of Cloud infrastructures.
Provisioning of ServicesProvisioning of Cloud Computing infrastructure Initiated by one project/program with the intention of being used by othersOften initiated to meet specific project/program needs. Others may follow suit *Service created by using components from diverse platforms and technologies or from other Services*Infrastructure may be created and administered through Web-Services Strong Governance needed throughout Service LifecycleNo concept of Life Cycle. Governance required to regulate employing Cloud based infrastructure Service may be deployed on a Cloud based platformCloud leverages specific software packages and hardware deployment configurations Paradigm Focus
In order to determine how to meet internal vs. external needs, enterprises commonly focus on SOA and Cloud computing as paradigms. These include the business opportunities that each enable for the other. Security concerns are often overlooked when deploying SOA services and overstated when using the Cloud. The reluctance to move critical systems to the Cloud is the biggest limiting factor for its adoption. Industry-wide mindset shifts are needed to create the wave of Cloud adoption.
SOA ParadigmCloud Computing Paradigm Used predominantly to expose services within the Enterprise and with partnersMay be used to further the reach of services through infrastructure available with the Cloud vendor Often used to improve efficiency and reduce cost within the enterpriseMay also be used to realize new business models for service delivery and consumption like SaaS Used to design systems handling sensitive information as Security concern exists only within the EnterpriseEnterprises shy away from deploying sensitive data and systems on the Cloud as infrastructure is shared among Cloud customers
SOA is off the hype curve. It is becoming a viable approach for implementing enterprise applications. There are many lessons learned from successful and failed initiatives. Cloud, on the other hand, is still up there in the hype curve and can go either way.
The synergies between the two weigh slightly in favor of SOA as the Cloud can really further the reach of services beyond the enterprise and open up new business opportunities. Many of the regular concerns are getting trivialized, such as SLAs being met due to rapid growth of a customer base and upfront investments in infrastructure in an unknown market for services offered.
Regunath Balasubramanian leads the Architecture Services group at MindTree and is a practicing architect. He is an advocate of open source both in use and in contribution. He blogs frequently at mailto:http://regumindtrail.wordpress.com.