WSDL Tutorial

What is WSDL?

  • WSDL stands for Web Services Description Language
  • WSDL is written in XML
  • WSDL is an XML document
  • WSDL is used to describe Web services
  • WSDL is also used to locate Web services
  • WSDL is not yet a W3C standard

WSDL Describes Web Services

WSDL stands for Web Services Description Language.

WSDL is a document written in XML. The document describes a Web service. It specifies the location of the service and the operations (or methods) the service exposes.


WSDL Development History at W3C

WSDL 1.1 was submitted as a W3C Note by Ariba, IBM and Microsoft for describing services for the W3C XML Activity on XML Protocols in March 2001.

(a W3C Note is made available by the W3C for discussion only. Publication of a Note by W3C indicates no endorsement by W3C or the W3C Team, or any W3C Members)

The first Working Draft of WSDL 1.2 was released by W3C in July 2002.

The WSDL Document Structure

A WSDL document describes a web service using these major elements:

Element

Defines

The operations performed by the web service

The messages used by the web service

The data types used by the web service

The communication protocols used by the web service

The main structure of a WSDL document looks like this:

   definition of types........
 
   definition of a message....
 
   definition of a port.......
 
   definition of a binding....
 

A WSDL document can also contain other elements, like extension elements and a service element that makes it possible to group together the definitions of several web services in one single WSDL document.

For a complete syntax overview go to the chapter WSDL Syntax.


WSDL Ports

The element is the most important WSDL element.

It describes a web service, the operations that can be performed, and the messages that are involved.

The element can be compared to a function library (or a module, or a class) in a traditional programming language.


WSDL Messages

The element defines the data elements of an operation.

Each message can consist of one or more parts. The parts can be compared to the parameters of a function call in a traditional programming language.


WSDL Types

The element defines the data type that are used by the web service.

For maximum platform neutrality, WSDL uses XML Schema syntax to define data types.


WSDL Bindings

The element defines the message format and protocol details for each port.


WSDL Example

This is a simplified fraction of a WSDL document:

   
 
   











In this example the element defines "glossaryTerms" as the name of a port, and "getTerm" as the name of an operation.

The "getTerm" operation has an input message called "getTermRequest" and an output message called "getTermResponse".

The elements define the parts of each message and the associated data types.

Compared to traditional programming, glossaryTerms is a function library, "getTerm" is a function with "getTermRequest" as the input parameter and getTermResponse as the return parameter.

WSDL Ports

The element is the most important WSDL element.

It defines a web service, the operations that can be performed, and the messages that are involved.

The port defines the connection point to a web service. It can be compared to a function library (or a module, or a class) in a traditional programming language. Each operation can be compared to a function in a traditional programming language.


Operation Types

The request-response type is the most common operation type, but WSDL defines four types:

Type

Definition

One-way

The operation can receive a message but will not return a response

Request-response

The operation can receive a request and will return a response

Solicit-response

The operation can send a request and will wait for a response

Notification

The operation can send a message but will not wait for a response


One-Way Operation

A one-way operation example:

   
   
   
      
   

In this example the port "glossaryTerms" defines a one-way operation called "setTerm".

The "setTerm" operation allows input of new glossary terms messages using a "newTermValues" message with the input parameters "term" and "value". However, no output is defined for the operation.


Request-Response Operation

A request-response operation example:

   
 
   











In this example the port "glossaryTerms" defines a request-response operation called "getTerm".

The "getTerm" operation requires an input message called "getTermRequest" with a parameter called "term", and will return an output message called "getTermResponse" with a parameter called "value".

Binding to SOAP

A request-response operation example:

   
 
   











transport="http://schemas.xmlsoap.org/soap/http" />
  
    
     soapAction="http://example.com/getTerm"/>
    
      
    
    
      
    
  

The binding element has two attributes - the name attribute and the type attribute.

The name attribute (you can use any name you want) defines the name of the binding, and the type attribute points to the port for the binding, in this case the "glossaryTerms" port.

The soap:binding element has two attributes - the style attribute and the transport attribute.

The style attribute can be "rpc" or "document". In this case we use document. The transport attribute defines the SOAP protocol to use. In this case we use HTTP.

The operation element defines each operation that the port exposes.

For each operation the corresponding SOAP action has to be defined. You must also specify how the input and output are encoded. In this case we use "literal".

No comments:

Post a Comment