Service Oriented Architecture (SOA) is a set of services that work and communicate with each other, in order to facilitate a task or process. These services or functions are independent of each other and of the infrastructure components that utilize them. SOA services are also not platform dependent. They can be used across platforms and technologies.

Loose coupling of services

SOA is based on the concept of loose coupling. In today’s ever expanding world of software services, it is difficult to build software systems from scratch. Instead, it is easier to reprocess existing software systems and use their inherent functionalities to work with new ones. SOA provides the framework for diverse software systems to communicate with each other and seamlessly co-exist, without having to completely depend on each other.

Loose coupling ensures that software systems can be deployed in different environments and the corresponding service will support each deployment. For example, MP3 music files can be played using different MP3 players and CD players which recognize the MP3 file format. These MP3 players and CD players provide the necessary interface to play MP3 files. They also recognize other file formats as well. If such interoperability did not exist, you would have to buy a separate MP3 player or CD player for each audio file format. This sort of loose coupling is achieved by:

  • Creating a concise and omnipresent group of interfaces which is accessible to all software components within the SOA. These interfaces should be available to every one of the providers and customers.
  • Creating descriptive coding contained within an extensible schema which is delivered through the interfaces. The schema should be flexible enough to permit new versions of services, without disrupting other services.

The key factor in SOA is interfacing. Without proper interfacing in place, software systems will fail. A proper interface has to define and interpret system behavior and this at times is quite expensive and may not be fault-free. In order to ensure such interfaces function correctly across different platforms and technologies, it is advisable to re-use interfaces for all applications.

Web services as a SOA

Web services can be classified and implemented as a SOA. Web services refer to the technologies that enable connections to be established. The services are the technologies that are connected together, and a single service is basically the conclusion of a connection. These connections are also supported by a computer system. This sort of inner and outer combination of services qualifies web services as a SOA.

The two key types of Web services implementation are as follows:

  • SOAP web services

A SOAP (Simple Object Access Protocol) web service is the most widespread web service in use today. SOAP web services provide a robust structure in which messages can be swapped over a range of protocols. There are two varieties
of SOAP web services: SOAP RPC and document-centric SOAP web service.

 

  • Rest web services

A REST (Representational state transfer) web service is based on the concept of URI (Uniform Resource Identifier). Anything on the Internet that has a URI is a resource. REST web services are easy to implement and needs minimal infrastructure support as they use basic HTTP and XML processing technologies.