WSDL for Web Service Description
A Web service publishes the description of the service not the actual service code. The service customer uses the aspects of the service description to look or find a Web service. The service customer uses this description since it can exactly detail what is required by the client to bind to the Web service. Service description can be partitioned into:
- Parts used to describe individual Web services.
- Parts used to describe relationships between sets of Web services.
Our main focus will be on the first group, describing individual Web services. The second group which describes relationships between sets of Web services will be reviewed in later in this book.
The most important language for describing individual Web services currently is the Web Services Definition Language (WSDL). WSDL has a dual purpose of specifying:
- the Web service interface (operation names and their signatures, used in the service invocation), and
- the Web service implementation (network location and access mechanism for a particular instance of the Web service).
The interface specifies what goes in and what comes out, regardless of where the service is located or what are its performance characteristics. This is why the Web service interface is usually referred to as the abstract part of the service specification. Conversely, the implementation specifies the service’s network location and its non-functional characteristics, such as performance, reliability, and security. This is why the Web service implementation is usually referred to as the concrete part of the service specification. This section describes how WSDL is used for describing the service interface and implementation.
WSDL grammar (schema) is defined using XML Schema. The WSDL service description is an XML document conformant to the WSDL schema definition. WSDL provides the raw technical description of the service’s interface including what a service does, how it is accessed and where a service is located (as we’ll see in Figure 7-1 in the next chapter). Since the Web service can be located anywhere in the network, the minimum information needed to invoke a service method is:
- What is the service interface, that is, what are its methods (operations), method signatures, and return values?
- Where in the network (host address and port number) is the service located?
- What communication protocol does the service understand?