Thursday, March 23, 2006


SOA is a much touted term nowadays. So, here are my two cents. Let us start with some definitions:

Definition 1: A service-oriented architecture is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed.” {Source}

Definition 2: “A service-oriented architecture (SOA) is the underlying structure supporting communications between services. In this context, a service is defined as a unit of work to be performed on behalf of some computing entity, such as a human user or another program. SOA defines how two computing entities, such as programs, interact in such a way as to enable one entity to perform a unit of work on behalf of another entity.” {Source}

Now, while the definitions, and most of the chatter seems to focus on technology, we got to understand that technology is only there to support business objectives. In effect, the shape of the technology is directly derived from the focus of the businesses it is going to serve. So what is the impact of SOA on business?

In a Service-oriented model, it becomes easier to just “plug and play” different applications. Interoperability increases, since you are already publishing services, and hence the effort for integrations go down. The technology becomes more adaptable to changing business needs, and hence the quality of applications increases. SOA also helps you leverage existing sources of data. For example, if you are publishing you customer (or consumer) information as a service, any new application using which needs this data can just consume the service. Hence, discrepancy in records is avoided by having just the one source of information.

SOA major benefit is what I choose to call ‘future readiness’. As an organization moves towards SOA, its readiness to handle changing business scenarios (and evolving business processes) increases. This also reduces the cost of future development, and the implementation time & effort. Quality of the applications increases as well.

That was just one side of the coin though. There are numerous challenges to SOA as well. Specially in large organizations where disparate legacy systems exist, unaware of one another, or at least integrated point to point on a need basis. If such organizations don’t have some “backbone” applications, it becomes difficult to manage and maintain the SOA, because there is not sufficient communication between the different development silos.

Interesting perspective on SOA, here and here. Do let me know your thoughts.


Post a Comment

Links to this post:

Create a Link

<< Home