To invoke a contract (i.e.,function) provided by a web service, you need to know in advance how the SOAP messages are structured,which protocol will be used, the internet address of the Web Service, name of the contract, and the number of parameters as well as types of each parameters. WSDL represents a contract between a Web Service Consumer and Web Service Provider in which it specifies the exact message format, Internet protocol, Internet address of the Web service provider, etc.
With WSDL, one can automate the generation of proxies for Web services in a truly language-independent and platform-independent way. JAX-RPC is one of technologies which can interpret a WSDL document to generate interfaces and network stubs for its described Web service.
WSDL has been designed such that it can express bindings to protocols other than SOAP, our main concern here is WSDL as it relates to SOAP over HTTP.
Using WSDL, a client can locate a web service and invoke any of its publicly available functions. With WSDL-aware tools, you can also automate this process, enabling applications to easily integrate new services with little or no manual code. WSDL therefore represents a cornerstone of the web service architecture, because it provides a common language for describing services and a platform for automatically integrating those services.
WSDL describes the following critical pieces of data:
WSDL document defines services as collections of network endpoints, or ports. In WSDL, the abstract definition of endpoints and messages is separated from their concrete network deployment or data format bindings. This allows the reuse of abstract definitions: messages, which are abstract descriptions of the data being exchanged, and port types which are abstract collections of operations. The concrete protocol and data format specifications for a particular port type constitutes a reusable binding. A port is defined by associating a network address with a reusable binding, and a collection of ports define a service.
The WSDL submission allows building web-based information and computing-services targeted to computer programs rather than to human users. It allows using an XML-based language to describe Web Services in terms of the type and number of parameters passed to a service, the type and structure of the result returned etc. WSDL also gives example mappings of WSDL descriptions onto a number of Web protocols that can be used for passing parameters and results (SOAP, URL-encoded parameter passing in HTTP and multipart MIME transported via HTTP).