Sunday, November 30, 2008

SOA Components

  1. Application Front end: Generally it is web browser based but thick client is also preferred in some cases.

  2. Service: In most of the real time implementations it is Web service but other types of services are based on CORBA, RMI, etc.

  3. Service Repository: If service is implemented using Web Service, it is UDDI (Universal Description, Discovery and Integration)

  4. Service Hosting Environment: In most of the implementations it is ESB ( Enterprise Service Bus)

  5. Contract: If service is Web Service then contract is WSDL (Web Services Description Language)

  6. Implementation: It is web service in most of the cases.

  7. Interface: In most of the cases it is Web based ( SOAP over HTTP)

  8. Business Logic: It can reside in any language, platform.

  9. Data: It can reside in any language, platform.

SOA Principles

  • Follow the standards

  • Optimize the granularity of service

  • Make conscious decision that when not to use SOA

  • SOA is gradual process, do not emulate Big Bang.

  • SOA effectiveness is not in number of services but in reusability and compos-ability of services

  • SOA is for application and also for Enterprise, make conscious choice

SOA Evolution

First Generation: Client Server

Second Generation: With Service Repository

Third Generation: With Service Hosting Environment (SHE)

Challenges in adopting SOA

Business Challenges

  • SOA is a strategic decision not the tactical

  • Vendor centric SOA view

  • Resistance to standardization

  • Fear of losing control

Technical Challenges

  • Lack of technical understanding

  • Re-usability of services

  • Isolated implementation of SOA

  • High demand on network and hardware

What & Why SOA ??

What is SOA
SOA is an architecture style, which exposes business or technical functionalities as reusable, compos-able and self describing stateless service over network.

Advantages of SOA

There are only three advantages of SOA:

  1. Re usability
  2. Frugality of IT Assets
  3. Agility
  • Business
  • Technical

All other advantages can be derived from these three.

Business & Technical Case for SOA


  • Fast pace business environment
  • Customers taste change
  • Merger, acquisition & split
  • Change in business processes & procedures
  • Ever changing legal environment
  • Ever changing IT environment
  • Never ending race for cost cutting


  • Spaghetti of technologies
  • Independence from Technology and/or Vendor
  • Shrinks SDLC efforts
  • Reusable, compos-able services available over network

SOA offer the following advantages over traditional approaches to distributed computing:

  • Business services across the platforms
  • Provide location independence
  • Services need not be at a particular system or particular network
  • Completely loosely coupled approach
  • Authentication and authorization support at every level
  • The search and connectivity to other services is dynamic

Short-term benefits of implementation:

  • Enhances reliability
  • Reduces hardware acquisition costs
  • Leverages existing development skills
  • Accelerates movement to standards-based server and application consolidation
  • Provides a data bridge between incompatible technologies

Long-term benefits of implementation:

  • Provides the ability to build composite applications
  • Creates a self-healing infrastructure that reduces management costs
  • Provides truly real-time decision-making applications
  • Benefits from the perspective of Business Value Ability to more quickly meet customer demands
  • Lower costs associated with the acquisition and maintenance of technology
  • Management of business functionality closer to the business units
  • Leverages existing investments in technology
  • Reduces reliance on expensive custom development

    When to say NO to SOA

Every one is advocating for SOA. But there must be some scenarios when not to use SOA.

  • In Homogeneous IT environment.
  • When real time performance is critical.
  • When Business and IT environment is static.
  • When tight coupling is advantageous not a disadvantageous.
  • When huge amount of data transfer is happening.
  • When data sharing is in batch mode.

Friday, November 21, 2008

Just Started

In this blog I will try to jouney through software architecture mostly independent of tools and technology.

In this blog I will iterate my thoughts on:

1. Enterprise Architecture
2. Enterprise SOA
3. Enterprise BPM
4. EAI - A2A and B2B
5. Application Architecture
6. Application level SOA
7. Application level BPM