Friday, 6 February 2009

SOA is not Dead, its alive and kicking and has help shape service design patterns in the Cloud

The much talked about SOA demise is not surprising given the long history of its movement to establish a paradigm shift architectural design framework for open, encapsulated, loosely coupled abstraction of physical technology from usage. The many publications, Vendors, industrial standards bodies have all developed elaborate thesauri of the definition of service design management. One might say many have made a very good living out of lecturing and writing about SOA !   The architectural goals of SOA  have not gone away indeed it has thrived and taken on many forms in service orientated design approaches that seek flexibility through virtualization, web 2.0 mash-ups and simple web service exchanges.  

The first chinks in the armour appeared a few years ago with the WS* versus REST debate entitled “SOA versus WOA” which, realizing that the governance of web services in SOA had an overhead sought to simplify the service message exchange and “get back to the original stateless concept of the Internet”.  

Gartner proclaimed last year that SOA had its 10th birthday and the continuation of “what is a platform” debate is moving into on-demand elastic and the various forms of business and IT alignment.
Its not surprising that particularly in these economic times there is a sense of needing a new idea and approach to competitiveness, sustainability and value.

SOA has contributed  to creating the Cloud services and management

The goals of SOA have not changed, they fundamentally brought together the principle of “one fact, one place” and built on object orientation, componentization and model driven architecture MDA to become an agnostic services framework for infrastructure and applications transactions. While SOA has been seen as business enterprise application and integration centric its concepts have been found in many areas of IT and Business standardization and shared service design. These still remain core design principles even as the lifecycles of SaaS multi-tenancy, utility computing and agile development such as Scrum have increased the rationalization, abstraction and speed of code development and deployment. 

So how have these principles been seen in the evolution of the cloud that we see today?

Virtualized infrastructure has been codified with semantic methods for volume, image and component modelling such that the physical architecture can be described as a Utility service.

Application multi-tenancy design principles have evolved into a connection between the Infrastructure as a service (IaaS) into the applications layer to enable abstraction at the Operating System level and user level of the Application Service.

Marketplace orientation of the solution has created “managed services”  that are service catalogue based or a hybrid version that is either open source, proprietary or a combination of both.  The exchange of IT resources has become a service.

Some examples of where these design connections can be seen.

Cloud Design features emerging today

Examples of related SOA Design Patterns           

Elastic  availability of Storage, compute capacity

Adaptation and extensions of Session Façade, Aggregator(EIP), Unit of Work(PEAA)

Massive parallelism of computation

Adaptation and extensions of Session Façade, Aggregator(EIP), Unit of Work(PEAA)

Cloud Bursting – pass through appliance alerts

Adaptation and extensions of Command pattern (GoF)

Interceptor (POSA2)

Broker (POSA1)

Federated on-demand availability – geographical independence

Context Object management

Command pattern (GoF)
Façade (GoF)

Domain Store

Service Registry

Agnostic service tier

Federated Identify management / SSO

Adapter(GoF)  in definition of security protocols

Domain Model (PEAA)

Protocol Security management

Software as a Service Multi-tenancy

Adaptation and extensions of Service layer(PEAA)

Domain Model (PEAA)

Adaptation and extensions of Refactoring Patterns for optimizing design for better modularity, reusability and maintainability
Abstract factory (GoF)

Service Inventory

Canonical Meta Data Model

Agnostic Service tier

Marketplace Catalogue Provisioning

Front Controller pattern

Intercepting Filter

Service to worker pattern adapter
Business Delegate
Service Locator

Proxy (GoF)


On-demand packages and composite solutions

Composite Pattern (GoF)

Application Controller (PEAA)

Web Service Broker



Cloud computing does introduce new architectural design features often found in grid computing created by the new elastic capacity capabilities. Existing n-tier and distributed architectures will need to evolve to be able to exploit these new properties of massive parallel computation, distributed components and location independence.  But at the heart there is the need to decouple the virtualized infrastructure; describe the service in a encapsulated meta language with a degree of physical independence;  request distributed services via open protocols and manage the monitoring of services to defined SLAs and performance.  

New design patterns have emerged from the development of the cloud architectures and by no means has this been completed. There are still many aspects on interoperability and semantic engineering that are yet to be fully realized. We still see multiple versions of cloud solutions from vendors with varying degrees of proprietary aspects that can either lock in or free up IT services to exploit the goals of on-demand pay as you go.

Lets not be too hasty, the desire for service oriented IT is still very strong and arguably will become even more desirable as ways to focus on paying for what you really need and actually use rather than the costs of overheads, operating efficiencies and change impact take hold.  

Being able to quickly assess business processes needs for services and the ability to provision and apply appropriate solutions to meet current and future business operational needs will be essential design skills for any service providers to meet the aspirations of CEO’s, CIO’s, CFO’s, CTO’s and COO’s.

Solutions change but the path to using services in IaaS, PaaS, SaaS and other marketplace orchestrations will be through an effective, secure and economically compelling price and usage model that the cloud promises and some of the design techniques from SOA are a strong candidate to help get there.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.