SOA and Web services


In the last decade, SOA has created a huge BUZZ around the world and almost all the organizations have adopted SOA at some point of time. When certain organisations tasted success, some of them failed to utilise it in the right way, due to lack of knowledge and planning. As we all know, SOA is not a technology as such. It is an architectural style and the way in which it should be adopted and utilised is the sole discretion of the organisation. So what kind of technologies can be used to implement SOA and get the complete benefit out of it?

Well one of the answers is Web Services. Since SOA is an architectural style, we can neither bind it within any single platform nor claim that SOA is best suited only for certain platforms like Java or .Net. But to taste the true power of a cross platform architectural style like SOA, we needed a cross platform technology, to implement it. That is why SOA is often used along with web Services. Even if you take a tour around the internet searching for a SOA based solution, most of them would have been implemented using Web Services.

Web services use technologies like XML and SOAP over HTTP for communications between the services and the outside world. Both XML and SOAP are universal standards for representing a message and they are platform independent as well. So Web Services are used throughout the enterprises to build blocks of services which form the basis for Service Oriented Architecture (SOA).

Though SOA and Web Services are used extensively around the enterprises, we should be clear about the fact that Web Services and SOA are completely different entities. Many people used to think that SOA and Web Services are the same and they should always be used together. In fact before the Web Services specification was used extensively, SOA was already used across some organisations  But when SOA was used along with Web Services, interoperable SOA solutions have become easy to adopt and manage.

There are obviously other communication and transport protocol options (JMS, SOAP/JMS, REST, HTTP). When using an ESB you can actually abstract this out. This article's aim is to explain the relation between Web Services and SOA.