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
It describes a web service, the operations that can be performed, and the messages that are involved.
The
WSDL Messages
The
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
For maximum platform neutrality, WSDL uses XML Schema syntax to define data types.
WSDL Bindings
The
WSDL Example
This is a simplified fraction of a WSDL document:
|
In this example the
The "getTerm" operation has an input message called "getTermRequest" and an output message called "getTermResponse".
The
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
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