Most of the time when we are developing any functionality in our day-to-day work, we need to implement some functionality/utility. All of sudden we get to know such utilities are provided by third party libraries; which are well verified, tested and optimized. Similarly some time we have to process data or even get some processed data example: list of all products, list of customers, payment gateway integration. In such cases, we prefer to use services provided by third-party vendor or services exposed within or outside the application. Here the web service comes into picture.
In this rapid development era, most of the organization don't prefer to build everything of their own. In the same race most of the organizations started to identify such services that can be exposed as a resource/component which can be used by multiple clients irrespective of the platform and language they have been developed. Such services are known as web services. They allow different applications to interact with each other. They can be used within or outside the application.
There are different message formats through which client(service consumer) and server(service provider) interact with each other like: SOAP, REST.
SOAP is an XML-based protocol for exchanging information across network. It uses set of rules for translating application & platform specific data types into XML representations which can be shared across network irrespective of application or platform. SOAP relies on XML standards like XML schema, XML namespaces for its definition and functions.
This is very much important to understand that to share data between heterogeneous systems, you need to agree on a common representation. SOAP provides this facility/service. We will discuss standard encoding of message in our upcoming chapter.
Now the question comes in our mind is how client will know that which all are the services that are been provided by any web service and what is the data that should be transmitted to execute the services. For example: Suppose I have web service which has two functions: getCustomerList and getArticles. one way is to communicate it via manual and this can be coded at client side, but what if things get changed. These methods need to be changed manually which is error prone. To avoid such circumstance, WSDL came into the picture. Let us discuss WSDL in detail:
The WSDL(Web Service Description Language) was created to describe & publish the format and protocols of a web service in a standard way; which helps service provider not to interact with each client in special way. So this WSDL file needs to be registered at global, public, online directory so that any business/company can discover this service. Let us understand about UDDI:
UDDI(Universal Description, Discovery and Integration) is a specification designed to let business find each other & share business information. We can say that it is a global, public and online directory that gives business a uniform way to describe their services, discover other companies services. In other words, UDDI is typical means to get WSDL.