Friday 8 July 2011

Enterprise Architecture , SOA, Cloud Computing : An Introduction Part 1

Anybody associated with the  Information Industry must have come across the latest buzz words like EA, SOA and Cloud Computing. We will explore and understand the meaning of these terms in a three part  post.
The need for IT
Before we delve into the details let us take step back and ask ourselves this question, "What is the relevance of Information Technology (IT) in a modern organization?"
A simple answer is, "Every organization has certain goals and objectives . IT is an enabler to meet those objectives."
So the growth in the IT Industry represented by the emerging buzz words, new standards, frameworks, methodologies and above all  new technologies, all help IT in meeting the business objectives in an efficient way.This is true for EA,SOA and Cloud as well as we will see next.
Each organization has a vision and they do business based on certain specialized products or services. Growth in revenue, profit and increased presence in various markets, long term stability is usually the implicit end objective of any organization.
Business and business processes existed even before the advent of IT .However with IT new business models came into existence .The demands of business have increased further namely 'to be agile', to eliminate the time lag between ‘idea to market’, need for near  real time B2B(business to business) information exchange and eCommerce , to name a few.
In some organizations IT has become so critical for the success of business that, if IT sytems fail for a prolonged period , companies can go out of business !!
What is SOA 
SOA stands for Service Oriented Architecture.Note that it doesn't simply say Service Architecture .The word Oriented  is used to indicate that SOA is an architectural style that is more aligned towards a concept called Services.
Service the saviour !
Servcies form the heart of  SOA . A service encapsulates a business function, is loosely coupled, stateless and standards based. The service should be consumable by various service clients based on diverse platforms and technologies.
The consumers need not know how the service is  implemented nor where it resides.They can use a feature similar to directory service to get connected to the service.What they should know what is the input for the service and what is the output they would receive .They also need to know how to connect to the service (communication protocol) which can be anything from http or JMS or MQ or any other supported transport mechanism.Web Services are a special type of service which are XML based and mostly based on SOAP. However they can be also be based on another protocol called REST.
So in SOA world everything is a service and as long they conform to certain standards wonders can be expected !!

The need for Service Oriented Architecture 
Historically the development and maintenance of applications in organizations has happened in silos. So each department may have its own application catering to specific needs.This has contributed to duplication of business logic leading to inconsistency and integration challenges.
The need for integration mainly arises from internal factors but are also driven by the need to connect to more and more external systems (outside the organization) for B2B communication. If that is not enough, mergers and acquisitions bring a whole new set of applications which has to be integrated with the new organization. Also there is a need to be regulatory compliant .Not only these compliance rules change frequently but also they vary from country to country(e.g. in Life Sciences there is a equivalent of FDA in each region which formulates the compliance rules).
To cut a long story short organizations face a lot of challenges when the grow and face further challenges when they attempt for  a global footprint .The existing IT systems most of times can not cope with demands of agility and responsiveness in their current form.
How can SOA meet these challenges
As per the principle of service orientation these challenges can be met as long as the business functions and other auxiliary functions are developed, deployed and used as services. Existing functionalities need not be redeveloped they can be published as a service by creating a wrapper around them!!The best part is that existing services can be Composed  to create an altogether new service.
The services can be aggregated  and orchestrated together to create Busines Processes.All these fall under the broad category of SOA and are called Business Process Management (BPM).

                                                  Fig 1 The SOA Layer diagram 

The maximum benefits of the SOA are realized at the business process layer .While the concept of SOA always existed, probably since the Mainframe days, only now the technology and standards have reached a level of maturity,  that can support this idea. With SOA it is easy to extend the notion of Services and orchestrate them together to fabricate business process which can be more responsive and agile than before.

Now real life is not so simple.While the concept of services was great it brought with it a lot of challenges in the form of security, reliability ,performance ,integrity ,long running transactions, compensation services, life cycle management,governance ,asynchronous services, addressing  and unsurprisingly the lack of standards and consensus to address these challenges in a 'service oriented way' !!
We will explore these complexities and how they are being addressed later on.
In part 2 and 3 of this post we will venture into the territory of Enterprise Architecture and Cloud Computing.

 

No comments:

Post a Comment