next up previous contents
Next: UDDI - Universal Description, Up: Principles of SOAP Web Previous: Security   Contents

WSDL - Web Services Definition Language

After finding the appropriate Web Service, the next step is to access it. To accomplish this task, a technical description of the service is needed. This is where WSDL comes into play. WSDL stands for ``Web Services Definition Language'' and is a standardized and XML-based language for describing Web Services.

WSDL documents are typically not written by hand, they are merely generated with tools. The WSDL documents are then publicly offered along with the Web Service itself. When writing a client for a specific Web service which is described by a WSDL definition, the programmer can build a skeleton out of this definition with special tools that are included in most SOAP frameworks.

Although most programmers will normally not create or read WSDL documents by hand, there can be cases where tools cannot be used which may also apply to certain applications in this thesis. This requires some basic knowledge of the WSLD language.

A WSDL document consists of certain sections that must be in a specific order. The basic composition of such a document is illustrated in figure 13. The meaning of these sections is as following:

Figure 13: The composition of a WSDL document

Data types
: This section defines what kinds of data types will be part of the Web Service. Data types could be integers, strings or arrays. Moreover, also special data types can be defined. The data types definition has to follow the XML Schema syntax which is thoroughly described in [VLI02].

With this section it is possible to define the input and output parameters of a SOAP Web Service. Messages contain one or more ``parts'' that represent either an element or a type20.

An operation is a well defined sequence of messages. This construct accomplishes a correct exchange of messages. There are three possible types of operation messages:
  1. Input messages
  2. Output messages
  3. Fault messages
Input and output messages may occur not more than one time, hence it is not possible to specify two input messages in one operation.

With this definition it is possible to establish ``request-response'', ``one-way'', ``solicit-response'' and ``notification'' operations. The most common type will probably be the ``request-response'' operation, where the Web Service receives an input message (request) and answers with an output message (response).

Port types:
This definition makes it possible to create sequences of operations, e.g. multiple request-response sequences. Operations have to be packed into a port type, also if there is only one operation.

After specifying data types and port types there still lacks an association with a transport protocol and a data format. This is accomplished with a so-called binding. The WSDL languag can describe bindings to any transport protocol and any data format. Anyway, the most commonly transport protocol will be HTTP and the most often used data format will be SOAP. Therefore the WSDL definition contains a HTTP and SOAP extension to simplify the WSDL specification procedure.

This element specifies the location of the Web Service. This is accomplished by defining a so-called ``port''21. In the port definition a WSDL binding is associated with a location, which could e.g. be a URL. One or more ports are then packed into a ``service'' element.

As stated above, the WSDL specification also covers a SOAP and HTTP extension as these protocols will be most commonly described with WSDL.

SOAP extensions:
This extension supports the SOAP data format, especially a way to connect a binding to the SOAP protocol, the URI for the ``SOAPAction'' field in the HTTP header and a list of definitions for SOAP headers.
HTTP extensions:
This extension makes it possible to bind messages to HTTP without having to tie it to a certain data format.

Further information on WSDL can be found in [LIV02] and [WAL02].

next up previous contents
Next: UDDI - Universal Description, Up: Principles of SOAP Web Previous: Security   Contents
Hermann Himmelbauer 2006-09-27