Tuesday, September 11, 2012

SOA – Service Oriented Architecture


Service simply put is a Component capable of performing a task 

What is Service Oriented Architecture?
Service-oriented architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for different purposes. SOA design principles are used during the phases of systems development and integration.(Wikipedia)

Understood …No!!! … Neither did I at first … so here is an example

Suppose we are in a business and we have different departments in our organization. In the initial years our business functionality is limited, thus the use of programs is limited but as our business grows the use of programs increases i.e. the number of business processes is increased to process the information more efficiently and quickly. Secondly since the business processes are all linked to one another thus a lot of time is spent in integrating the data for the functioning of the whole business process. Moreover some of the individual parts of the business processes perform the same function. So if any change is made in one part of the process you have to make changes in all the other processes too so as to have standardization of processes all over, meaning a lot of wastage of time as well as a lot of cost to the company. Now this is where SOA comes into picture. In SOA we break down our business process into services. Some services come out to be same and some different. Whenever we want to use a process we pick up those services only, merge them and use them i.e. we make simple modules and use those modules only whenever required. This structure is based on SOA. Rather than focusing on the complete package we use simple modules as per our requirements.

Thus SOA is a set of guidelines, policies and practices which gives us a service orientation to the business process. This architecture has a lot of advantages.

Advantages of this Approach:
  • Reusability: Existing business functionality in an application can be reused to meet new business requirements. A business process is decomposed into discrete reusable functional components
  • Interoperability: Communication between services and the business process is not dependent on the platform and are standards enabled. The services are also not tightly coupled to the application.
  • Scalability: Applications are flexible to the changing business requirements
  • Cost Efficiency: This is highly cost efficient as integrating the business resources is standards based. Instead of integrating the whole business process we are integrating just the services.

CBDI defines SOA as a style resulting from the use of particular policies, practices and frameworks that deliver services that conform to certain norms.

In simple words talking about business its dividing your business core functions into small services so that you can incorporate in your business adaptability so that environment/technological/economical or political changes in the environment does not increase your costs. Also you have an added advantage of flexibility as well as interoperability which helps decrease your integration costs.


For a more detailed description of SOA check out the mentioned link:

-Ishan Chawla
PGPIM
MDI 2012-14