Previous chapters introduced the concept of service-oriented architecture (SOA), where consumers discover and invoke services published to service registries. Once a service is discovered,
How does a service consumer know what the service offers?
How does the service consumer know how to invoke the service?
How can the service consumer differentiate between similar services offered by different service providers?
To answer these questions, we have to first understand the different elements of Web service description. The Web services technology stack in Chapter 1 introduced the notions of the service description layer and the service composition layer. These two layers are related, in that the service composition layer builds on the service description layer. In this chapter, we describe in detail the Web Services Description Language (WSDL). The WSDL specification addresses the service description layer but not service composition and collaboration (both of which are also forms of service description).
WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services). WSDL is extensible to allow description of endpoints and their messages regardless of what message formats or network protocols are used to communicate, however, the only bindings described in this document describe how to use WSDL in conjunction with SOAP 1.1, HTTP GET/POST, and MIME. (World Wide Web Consortium)