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