What is the hype on SOA ?

As corporations go global and fast forward acquisitions the IT team starts facing more and more challenges in integrating various bespoke and acquired applications. It has been a nightmare for the IT team when there is a deadline given by business to integrate applications which have never been designed with open interfaces.

Hence, to reduce the painstaking effort of re-inventing the wheel everytime, software programmers started thinking, exploring and delivered smarter programs - in a way that pieces of their code could be used "off the shelf" which can be reused and better maintained and supported in the future.

"SOA (Service Oriented Architecture) is a new approach to building IT systems that allow businesses to leverage existing assets and easily enable the inevitable changes required to support the business"(Ref 1)

The basic building blocks of SOA architecture is to build applications around reusable components and define guiding principles of reusing them.

The challenges of integration that an IT team face has been in existence from times immemorial. In the good old days, the only way of integrating 2 different systems was to use a API (Application Programming Interface) call from one application to the other to fetch data which was embedded in the application. The coding was pretty tiring and cumbersome and had to be modified for each and every program requesting for a subset of the same data. With the new SOA way of systems development, things became much easier - instead of programs embedding calls to each other in their source code the new way of development use "defined protocols" ( will be explained later) that describe how programs pass and parse data.

Some feel that SOA is just a revival of modular programming (1970s), event-oriented design (1980s) or interface/component-based design (1990s) . In some respects, one can regard SOA as an architectural evolution rather than as a revolution. (Ref 2) . It's a ongoing advancement of taking the best from the past and overcoming the drawbacks that classical programming had.

So, what are the benefits that SOA bring. According to a published article in ComputerWorld ( Ref 3), here are a few of them :
  1. Application integration savings: Having a service-oriented interface to each application can save 30% to 40% on each integration point. Rather than point-to-point integration, SOA has a hub-and-spoke configuration, reducing integration points substantially.
  2. Reuse of applications: An application to retrieve and report on employee data from a human resources database can be used as a service by identity management systems, employee portals and other applications, rather than redeveloping the code or embedding it in each of these applications. The direct benefits are immediate avoidance of development-and-test labor costs. And as an organization moves more applications to SOA, reuse benefits grow. Short-term savings are typically 5% to 10%, growing to 40% or more for an enterprise wide deployment.
  3. Reduced project risks: Since the "reusable components" have been already tested and deployed it reduces the risks of deployment of the same code in future projects.
  4. Improved application quality: Reducing application integration complexity and allowing reuse also improves application quality.
We will try explaining the technical aspects of SOA, the business perspective and the challenges faced on Implementation of SOA in the next few sessions.



Ref 1 : Service Oriented Architecture for Dummies, 2007, ISBN - 13: 978-0-470-05435-2
Ref 2 : http://en.wikipedia.org/wiki/Service-oriented_architecture
Ref 3 : http://www.computerworld.com/s/article/9001155/Is_There_Real_Business_Value_Behind_the_Hype_of_SOA_?taxonomyId=74&pageNumber=1