Followers

Saturday, December 28, 2013

SOA - What is it to a Layman

SOA - What is it to a Layman


SOA is a buzz word these days...But what is SOA all about?
I wont go much into the technical aspects in this post, but will give you an idea on what SOA is all about.
What is SOA...
Is it a platform? Is it an Architecture? Is it a Pattern? Is it a product or a Solution?
SOA is basically an Architectural style of building business applications,
and by Business applications, I mean what makes sense to business.
And we normally hear SOA is all about Webservices...And its not true.
SOA is an architectural style, may be realized by WebServices, but SOA is not just about WebServices.
WebService is all about exposing the implementation in a standard way, whereas SOA is concerned about Integration.
It is neither a software, nor a product, but an approach to build business applications in an Enterprise, that offer agility. It basically aligns your IT infrastructure towards the changing trends in the business.
Let us look at a simple scenario.
Lets say, there is a company that had its IT infrastructure first developed in late 80's, and was completely running on Mainframe.
And in late 90's, business grew up in many new areas, and the business wanted their IT infrastructure to support all those. At this point, IT dept had many alternatives to Mainframe, and lets assume have leveraged those new technologies to provide new solutions. But as these new ones belong to the same old enterprise, they need an integration to the existing ones. But since they are of different technologies, they follow different protocols, and so the communication cannot happen directly, they need some sort of a layer in between that acts as a translator. And so, the IT department had to write the intercommunication layers to talk to the legacy code.
Everything went on well till a point when the competition in business grew up too much and is constantly increasing at a huge pace, s/w components in various technologies keep coming in to the enterprise, and the IT department suddenly realized the existing practice would not suffice their needs. This ultimately leads to a Business-IT Gap.
Adding to this, it had become even more difficult to integrate their existing systems with the new ones coming in as part of new acquisitions &mergers.
This created a real headache to integrate their existing system with a new ones coming as part of the acquisitions, which is(might have been) completely written in their native framework, which did not support extensibility at all!!!
All those cross-technology interactions had become too much to the IT department, both to develop as well as to maintain.
What's the solution??
SOA.
Using SOA at core architecture of your IT, it would cater to such fast changing business needs, integrations between various technologies, and at the same time, with a greater ROI to the company in long run.
SOA is like a set of standards that have to be followed while building business applications, which enable applications to be easily extendable, flexible, and makes the overall application cost-effective.
SOA aims at a greater alignment between your business and IT infrastructure
It is aimed at businesses which change quite rapidly, and always want their IT infrastructure to align with them in the same rapid pace.
 SOA can help businesses respond more quickly and more cost-effectively to changing market conditions, govt regulations, customer tastes, technology changes, etc. This style of architecture promotes reuse at the macro level rather than micro level. By macro, I mean at a service level rather than at a class level. It can also simplify interconnection to – and usage of – existing IT (legacy) assets.
SOA proposes certain concepts which you need to incorporate in your IT so that it becomes a 100% SOA based application and cater all needs to the business, both in terms of technology and revenue.
SOA is basically an architectural style of building business applications, using loosely coupled services which act like black boxes, and can be orchestrated to achieve a specific functionality.
SOA would propose certain concepts to be followed  to have a better IT infrastructure, but how is it realized?
There are many solutions that implement SOA concepts, and one such solution is the Oracle SOA Suite.
Oracle SOA suite offers out-of-the-box components which can be used to build a 100% SOA based solution for the enterprise.
Please note that SOA involves huge investments to the company both in terms of the development and infrastructure.
Having SOA implemented in the enterprise is a trade-off between the
cost incurred(that would incur in its realization) versus the advantage(ROI) to the company

Hope this post gave you a basic understanding on Service Oriented Architecture. Please go through the next posts for a more detailed view on SOA.
here's no standard definition for SOA, it is just a methodology followed, and each one has his own definition for it. The best I feel is
SOA is an architectural style of building business applications using loosely coupled services, that act like black boxes, that can be orchestrated in a particular fashion to attain a specific business functionality.
SOA aims at a greater alignment between your business and IT infrastructure.
For a service to be a candidate in a SOA Application, it has to adhere to certain principles, otherwise called SOA Principles
Below are the principles each individual candidate in a SOA Application has to satisfy, as defined by Thomas Earl
  1. Standardized service contract – Services adhere to a communications agreement, as defined collectively by one or more service-description documents. Services express their purpose and capabilities via a service contract. The Standardized Service Contract design principle is perhaps the most fundamental part of service-orientation
  1. Service Loose Coupling – Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
  1. Service Abstraction – Beyond descriptions in the service contract, services hide logic from the outside world. This principle emphasizes the need to hide as much of the underlying details of a service as possible.
  1. Service reusability – Logic is divided into services with the intention of promoting reuse. The principle of Service Reusability emphasizes the positioning of services as enterprise resources with agnostic functional contexts.
  1. Service autonomy – Services have control over the logic they encapsulate. significant degree of control over its environment and resources.
  1. Service statelessness - Services minimize resource consumption by deferring the management of state information when necessary
  1. Service discoverability – Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted. For services to be positioned as IT assets with repeatable ROI they need to be easily identified and understood when opportunities for reuse present themselves.
  1. Service Composability – Services are effective composition participants, regardless of the size and complexity of the composition.
Any technology component that adheres to all these principles would be a candidate to be used in SOA, and the best software component that we could think of that satisfy all these features is a Webservice, and morevoer it is highly evolved, widely supported, and more that anything, ease of use. It has become the defacto standard for realizing SOA.
 The main goal of SOA is to connect disparate systems. In order that these disparate system work they should talk to each other seamlessly. SOA gives it a way of doing it thru ESB (Enterprise service bus) that acts like a reliable post office which guarantees delivery of messages between systems in a loosely coupled manner.
By organizing the enterprise IT around services instead of around applications, SOA helps companies to achieve faster time-to-service and respond more flexibly to fast-paced changes in business requirements.
It aims at building systems that are extendible, flexible and fit with legacy systems.

Hope this gave you a better understanding of SOA and its principles. My next post aims at introducing you to the Service Component Architecture which realizes all the SOA principles

No comments:

Post a Comment