Wednesday, October 10, 2007

Service Oriented Architecture (SOA)

A service-oriented architecture (SOA) is a collection of services which thus lead to automation logic. These services may or may not communicate with each other to accomplish the application task...

When we say services, it refers to a discretely defined set of contiguous and autonomous business or technical functionality. A service is much like a function that is well-defined, self-contained, and does not depend on the context or state of other services. In fact, they just provide/offer a service by it’s own.

The term service oriented approach is not new; it is there from the long olden age of COM /DCOM and still survives and finds its existence in the software architecture space. Recently Microsoft has used this approach to design and implement WCF (Windows Communication foundation formerly known as Indigo) in Microsoft .Net framework 3.0

In an SOA environment independent services can be accessed without knowledge of their underlying platform implementation or other internal details which helps us greatly in interconnection like scenarios.Normally in this scenario, there will be a service consumer or service agent sending a service request message to a service provider. The service provider returns a response message to the service agent. The request and subsequent response connections are defined in some way that is understandable to both the service consumer and service provider
One of the other features of this approach is that the client is not tightly coupled to these services, both the client and services are independent of each other, thus the client is free to interact with whatever services are required