Wednesday 20 July 2011

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

In the previous installations of this post we looked at the basics of SOA and Cloud Computing. In this concluding post of the 3 part series we will explore the concepts behing Enterprise Architecture.
What is Enterprise ?
Enterprise is a very broad term which not only includes a Organization it can also mean an independent organization unit like a division or department. On the other it can also include the concept of an extended organization to account for third part interactions.
What is architecture ?
Architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution(described in ANSI/IEEE Std 1471-2000)
 What is Enterprise Architecture?
The terms used in IT Industry are not always intuitive Enterprise Architecture is no exception !! (another misleading but  interesting term I find is ‘cookies’ !! This is used to denote the session information stored in client browser). If in its conventional sense enterprise means an organization, what does Enterprise Architecture mean?Does it mean a single architecture for the entire organization?Is that  really possible because in an organizations there are so many applications build to cater various needs. There is an architecture which exists for a system or for an application or for integration between various applications.What does it mean to have the  architecture for an entire organization?
 Enterprise architecture doesn’t represent a single entity or a single monolithic architecture but it encompasses various models and architectures of the enterprise ensuring they are aligned towards the organization business strategy.It encompasses the architecture of business functions, applications, business data entities and IT resources of the organization.
In a sense individual architectures fall under the broad spectrum of Enterprise Architecture.It is the primary function of EA to ensure that individual architectures follow a common architecture standard, guidelines, framework and principles.

Enterprise Architecture acts as the bridge between the business needs and its translation into IT artifacts ensuring alignment with business goals and organization strategy.

The following diagram depicts how the EA takes various inputs like Architecture Principles, Frameworks, Business Strategy and come up with the formulation of current architecture and defines the target (future) architecture to meet the business strategy .It also provides a blue print and a  road map to achieve the target architecture



As mentioned earlier Enterprise Architecture comprises of various architecture as mentioned below
Business Architecture 
Includes a representation of organization business capabilities functions and services.It also includes business governance structure and business elements.
Information Architecture 
This is further divided into Application and Data architecture.
Data Architecture 
Includes the data,data flow, data function which model the business entities and which are required to support the business functions and services.This also includes the correlation between various data entities ,data categorization and data models.
Application Architecture 
The individual applications which implement the desired business functions.This includes both custom developed and COTS application.This also includes all package applications like ERP solutions.
Technology architecture 
The complete IT infrastructure required to support the development and deployment of business functions .Includes hardware ,storage architecture and network  architecture.


Goals/Benefits of EA
  1. To facilitate informed decision in decision making process.
  2. To help in Business IT alignment
  3. To provide the blue print for change
  4. To help with management of IT Portfolio
  5. To support budget prioritization
 Enterprise Architecture is always forward looking and guides the organization towards the future.Sometimes it initiates  the changes to meet the business strategy while it strives to support the constant changes driven by business needs and external factors.

 In a future post we will discuss the relationships between Enterprise Architecture,SOA and EA.

Tuesday 12 July 2011

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

In Part 1 of this series we discussed about SOA .In this post we will get acquainted with the concepts of Cloud Computing.

What is Cloud Computing?
In the early part of 4th Century, India’s most famous poet in ancient times Kaildasa wrote a classic poem called Meghadutam which means Cloud Messenger.In this poem a denizen of heaven who has been banished to earth for his transgressions asks a cloud to carry a message to his beloved.
Sixteen Centuries later Cloud has become a metaphor for every possible tangible and intangible thing in an enchanting world created by the web and computers!!
Cloud Computing provides the highest possible level of Abstraction and Virtualization to the central concepts associated with web based Computing.
Cloud Service Types
If you remember the SOA layer diagram in the part 1 of this blog it has various layers called infrastructure layer, components layer, services layer and business process layer.
Now imagine each of these layers are provided as service !!That is Cloud Computing in action .
Infrastructure as a Service – This acts like a hosting solution .The cloud provider has pool of virtualized computing resources and storage which the customer organization can take advantage of. This is on demand computing and takes care of the variation in computing peaks and troughs.
Platform as a Service – Includes operating systems, development and testing platform, middleware and specialized development framework .This enables customer to develop his own applications and host with the Cloud Service provider.
Software as a Service – The applications are developed and hosted by the Cloud Service provider. Services are delivered over Internet.
Business Process as a Service – Business Process sits on top of services layer in our SOA diagram.In BPaaS the entire BPM Solution is hosted in Cloud .This is the newest kid in the block and  the implementation is at relatively nascent stage.
The next question is though all these sound great on paper, is there are any practical implementation for all these services? The answers is a resounding yes .The diagram below shows the different types of Cloud services and the leading providers for them. 
                                           Fig 1 Cloud Service Types and Providers
Cloud Deployment Types
Public - Public cloud infrastructure is available to general public and organizations who can use it on a pay per use.This infrastructure is hosted and owned by a large vendor organization.
Private - The infrastructure can be owned by the organization or the vendor but is for exclusive use of the organization.
Hybrid - A hybrid model which combines both the above two models.
Cloud Concerns
Some old and some new concerns have raised there head as Cloud Computing is becoming popular.Some notable among them are 
Security Since cloud is virtualized there could be multiple organizations sharing the same service or infrastructure.This is known as multi tenancy and this helps in bringing down the cost and making the platform more efficient.However there is a possibility that this may lead to security breach .You have to absolutely trust the provider for this .
Availability  There are times when the cloud service is down .Though this is rare but in recent times AWS and GoogleApps were down for considerable amount of time causing concern among its users.
Auditability Most industries have strict audit requirements .However since in cloud the management and administration is the responsibility of Cloud provider, some time doing an audit and establishing a traceability is not that easy.
Accessibility Since most services in cloud are Internet based, not having access to Internet because of various reasons may prevent users from using the services.
We will explore in subsequent postings how these concerns are being addressed.

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.