Service Oriented Architecture – SOA


 

It
is considered that the most superior software system, which is simple enough to
be user friendly, yet maintaining a complexity level to carry out the tasks it
has been designed for. However, since new software is based on its older
versions, the required simplicity is often not achieved. Various dependencies
are created in the process, and it becomes important to reduce them. This
reduction of dependencies is called loose coupling.

 

The
goal of SOA is to achieve the required loose coupling between interactive
software agents. The service is a unit of work undertaken by a service provider
to achieve the desired results for a service consumer. In this case, however,
the software agents, on behalf of their owners, play both the roles of provider
and consumer.

 

To
understand the above concept, let us look at a simple example. A CD can be
played on a portable CD player or on your stereo. Hence, you can interchange
one CD player with the other, which means that they offer the same CD playing
service, but the quality of the service may be affected. Similarly, SOA usually
results in a change of state for consumers. Sometimes it also results in a
change of state for the provider.

 

The
main reason for using SOA for building software is that we may not have the
expertise to deal with everything ourselves. Therefore, we assign the job to an
expert, who will not only do a thorough job but also will be economic, because
buying a service is usually cheaper than experimenting.