In the Service Oriented Cloud, All Roads Lead to SOA
Topic: Cloud Computing
Date: June 2011
Author: Lawrence Wilkes
Abstract: Cloud Computing is intrinsically service-based. But this is not just in the highly generalized sense of the term ‘service’, but also in the more specific Service Oriented Architecture (SOA) use of the term, where capabilities are provided via published service interfaces. In this research note we consider why SOA should not be forgotten just because more fashionable terms have risen to the top of the toybox.
It might be easy to conclude that SOA was yesterday’s issue. In fact according to some pundits SOA is dead and business transformation, application and IT modernization, and Cloud Computing are more fashionable terms today. But SOA hasn’t gone away! Achieving business improvement, modernized applications and leveraging cloud computing requires a solid foundation based on SOA. Most larger organizations have already adopted SOA to some extent, but few have achieved the critical mass that delivers on the original SOA vision. Moreover, organizations need to understand that all roads still lead to SOA. This is the key architectural style that is intrinsic to all strategic initiatives that will deliver radical improvements in cost and agility.
The Service Oriented Cloud
Figure 1 - The Service Oriented Cloud
The service-based business needs to be elastic, able to scale capabilities such as manufacturing in line with demand. The Service-based business therefore outsources non-core capabilities to specialist business service providers. It participates in global supply chains leveraging the business services provided by its business partners. It constantly seeks additional or alternative sources of capability to improve quality, reduce cost, or to support new requirements.
To operate in near real-time, and reduce operational expenditure, the service-based business must be highly automated. As Figure 1 illustrates, the IT solutions that enable the service-based business are therefore assembled from the software services offered by multiple providers. In turn, the service-based business must also offer software services to its own partners and customers.
Whilst most end-users interact with SaaS offerings largely via a browser UI, many SaaS vendors also offer service interfaces that allow the capabilities provided and the information stored to be integrated with other applications. Increasingly SaaS offerings will expose their entire functionality as sets of business services. We refer to this concept as Business as a Service (BaaS) which enable a solutions platform for end-users and partners to layer extend and customize. Salesforce.com is a notable example.
The leading platform offerings, particularly Amazon, Microsoft and Oracle, show that Cloud-based solutions are synonymous with SOA. These leading IaaS and PaaS platforms are all completely service-oriented and demonstrate sophisticated, next generation SOA implementations where all the platform capabilities are delivered and consumed as services.
But SOA is not new. So what is different in the Service Oriented Cloud this time?
- A rapidly increasing inventory of “off the shelf” Services, as illustrated above. A major inhibitor to SOA adoption was the need to build and provide the services before anyone could assemble the solution from them. Few were willing to make the investment other than within the narrow confines of the software architecture for their own project
- Availability on a PAYG basis is also a big factor in this.
- It is no longer a question of “should I use SOA or not?”, as SOA is the way the cloud operates.
- Most developers and many project managers will now be skilled at SOA at a technical level.
Service Oriented Cloud Thinking
Figure 2 – Achieving Transformation and Modernization Goals Requires Service-based Thinking
The inherent nature of SOA in cloud architecture means service-based thinking permeates across the architecture views.
- Service-based Business. Business products, process and capabilities as a collection of Business Services. Enabling transformation to the virtual business and its processes, assembled from a collection of business services from multiple federated providers.
- Service-based Applications. Applications as a collection of Software Services. Where the business is supported by application solutions orchestrating a collection of software services from multiple federated providers.
- Service-based Infrastructure. Infrastructure capabilities as a collection of Infrastructure Services. Where applications are deployed by orchestrating a collection of platform and infrastructure services from multiple federated providers.
Each architecture view is an independent service architecture, offering services to the other layers, as illustrated in Figure 2.
Business transformation, application and IT modernization initiatives such as the use of Cloud Computing can often be seen to have common goals (even though the specific outcome might be different). For example, regardless of whether the outcome is business or IT focused, the intention in all cases is to
- Increase Agility. To meet new requirements, optimize resources…
- Reduce Time to Market. To deliver new business models, products, applications, enter new markets, geographies, leverage new technologies…
- Lower Operational Expenditure. Reduce Business and IT operational costs, development costs…
- Lower Capital Expenditure. Reduce Business and IT infrastructure investment.
- Virtualize Resources. Reduce dependency on where, how, and by whom, Business and IT resources, software and hardware, applications and infrastructure are provided.
- Respond to Changes in Demand. Provide an elastic response to varying levels of demand without increasing CapEx.
Connected by SOA
Figure 3 – Achieving Transformation and Modernization Goals Requires the Interdependency of Service Architectures
Consequently, there is often an interdependency across these initiatives and upon SOA, as illustrated in Figure 3.
- An agile business requires agile applications which in turn require agile infrastructure.
- The decoupling of business resources requires the decoupling of application resources. The decoupling of application resources requires the decoupling of infrastructure resources.
- The unpredictable outcome of new business ventures requires scalable applications, achieved using the elastic infrastructure of Cloud Computing.
- Making optimal use of Cloud Computing capabilities requires well-architected service-based and component-based applications.
- The federation of multiple business, application and infrastructure providers requires a loosely-coupled service-based approach in all layers.
Roads to Service Oriented Cloud. Recommendations.
Many projects, programs and enterprises have made good progress with SOA, but many have found difficulty in adhering to the principles and policies. Critical business pressures, lack of ownership, conventional program and project management practices have all exerted negative pressure on the delivery of the ideal service architecture.
Cloud Computing is currently receiving widespread attention primarily because of opportunities to reduce IT costs. However for many organizations IT cost reduction is a less important issue than business transformation. And here CIOs and business managers need to look very closely at cloud initiatives to ensure that critical architecture patterns and best practices are addressed in order to deliver on this bigger objective.
Key actions are needed to ensure cloud computing delivers the promise of the Service Oriented Cloud
Adherence to SOA Principles
The Service Oriented Cloud demonstrates the delivery of all the baseline SOA principles. To benefit, organizations need to ensure the adhere to the following principles,
- Decoupling (Loose coupling) of Resources. Cloud services decouple the provider and consumer’s resources. Dependency is on the service offered, not its implementation. Service consumers can use alternate cloud services, as long as their service also conforms to the same service specification.
- Encapsulation. The implementation of the cloud service is encapsulated behind the published interface. The service consumer needs to know nothing about how the service is implemented, just how it is used.
- Contract based. Use of the cloud service is defined by behavioral, commercial and service level contracts (SLAs), that define the obligations on both provider and consumer.
- Sharing and Reusability. Cloud services should be designed to be shared by many consumers, or reused in different contexts.
- Autonomy. Cloud services should be independent, and minimize dependencies on other capabilities, other than through their own published services. Cloud services should not be overloaded with multiple capabilities that introduce hidden dependencies (for example on a shared implementation)
- Discoverability. Cloud services and their end-points should be easily discoverable (using standard discovery mechanisms and published meta-data) both at design and run-time.
- Modularity and Composability. The Service Oriented Cloud should be modular and composable. Cloud services should ‘right-grained’. Coarse-grained services should be composed from fine-grained services for flexibility.
Modernization of Current Systems
There is little point in modernizing current systems if the end result is yet another legacy system, albeit re-architected and migrated to a new platform.
Whilst the end-user may choose to deploy conventionally architected applications to the cloud, they would be highly suboptimal in terms of cost, portability and business agility. Just hosting them in the cloud won’t make them any more service-oriented than they already are. Nor will it fully leverage the cloud platform and infrastructure services on offer.
Rather they should be deploying service-oriented business applications that can make best use of the cloud capabilities on offer whilst also enabling integration with other on- or off-premise applications, as well as providing or consuming business services within their ecosystem.
Though re-deployment will be a valid first step to reduce OpEx, it shouldn’t be the last step in the transition to the cloud.
Careful Selection of ‘off the shelf’ Services
A published service is not necessarily a well-formed service. Though business benefits will outweigh IT concerns, both business and IT should nevertheless still evaluate services to see whether they conform to principles. There is no point in using cloud services only to find there is just as much lock in and tight coupling as there was with the inflexible in-house systems that are being replaced.
Attempting business transformation, application and IT modernization, or taking advantage of Cloud Computing requires the application of service-based thinking.
Failure to deliver or take advantage of a well-formed Service Architecture at each layer will lead to sub-optimal results, and reduced agility to meet ever-changing needs.
Organizations need to carefully evaluate existing applications to determine suitability for Cloud Computing deployment. Optimizing applications to take advantage of the benefits offered by Cloud Computing Infrastructure Services is likely to require application modernization.