Service Oriented Architecture – Basics

SOA – Service Oriented Architecture – is an architectural design pattern, where an application is developed as a set of logically & functionally separate and independent services. Each of these services can be implemented in any platform, programming language using any of the available technologies. These services can communicate with each other to fulfill their needs and can send & receive pieces of information from other services as well. One service can interact with more than one service to get the desired things done. SOA can be implemented using web services, since the protocols & standards of internet are very much platform & programming language independent. The main purpose of SOA is to reduce the coupling between the modules.

Requirements of SOA
1) We should make use of standards & protocols supported by most of the platforms since these services may be distributed among wide verity of them. (Means, there should be a standard and widely accepted mechanism for the services to talk with each other)
2) There should be a “clear & unambiguous” service interface syntax.
3) There should be a service registry mechanism to retrieve the suitable services.

SOA Building Blocks
Service provider: Provides a set of services to the requesting clients/services. The provider can restrict the services they offer as well as define the service scope to public or private. Public services can be accessed by anyone over the internet but the private services are restricted to certain clients. The service provider should register the interface & service access information with the service registry.

Service Broker/Service Registry: Provides the interface & service access information to any service requestors. The implementer can also decide the scope of the registry too.

Service requestor: It’s a web service client. The requester searches the service registry using different search methods to find a service entry and then binds to the corresponding service provider to get the things done.

Useful links