Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Web Services Description Language

Web Services Description Language

Discussion
Ask a question about 'Web Services Description Language'
Start a new discussion about 'Web Services Description Language'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
The Web Services Description Language (WSDL, pronounced 'wiz-dul') is an XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

-based language that is used for describing the functionality offered by a Web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

. A WSDL description of a web service (also referred to as a WSDL file) provides a machine-readable description of how the service can be called, what parameters it expects and what data structures it returns. It thus serves a roughly similar purpose as a Method signature in a programming language.

The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the D stood for Definition.

Description


The WSDL describes services as collections of network endpoints, or ports. The WSDL specification provides an XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 format
File format
A file format is a particular way that information is encoded for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa. There are different kinds of formats for...

 for documents for this purpose.
The abstract definitions of ports and messages are separated from their concrete use or instance, allowing the reuse of these definitions. A port is defined by associating a network address with a reusable binding, and a collection of ports defines a service. Messages are abstract descriptions of the data being exchanged, and port types are abstract collections of supported operations. The concrete protocol and data format specifications for a particular port type constitutes a reusable binding, where the operations and messages are then bound to a concrete network protocol and message format. In this way, WSDL describes the public interface to the Web service.

WSDL is often used in combination with SOAP and an XML Schema to provide Web services over Internet
Internet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...

. A client program connecting to a Web service can read the WSDL file to determine what operations are available on the server. Any special datatypes used are embedded in the WSDL file in the form of XML Schema. The client can then use SOAP to actually call one of the operations listed in the WSDL file using XML or HTTP.

The current version of the specification is 2.0; version 1.1 has not been endorsed by the W3C
World Wide Web Consortium
The World Wide Web Consortium is the main international standards organization for the World Wide Web .Founded and headed by Tim Berners-Lee, the consortium is made up of member organizations which maintain full-time staff for the purpose of working together in the development of standards for the...

 but version 2.0 is a W3C recommendation
W3C recommendation
A W3C Recommendation is the final stage of a ratification process of the World Wide Web Consortium working group concerning a technical standard. This designation signifies that a document has been subjected to a public and W3C-member organization's review. It aims to standardise the Web technology...

. WSDL 1.2 was renamed WSDL 2.0 because of its substantial differences from WSDL 1.1. By accepting binding to all the HTTP request methods (not only GET and POST as in version 1.1), the WSDL 2.0 specification offers better support for RESTful
Representational State Transfer
Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation...

 web services
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

, and is much simpler to implement. However support for this specification is still poor in software development kits
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...

 for Web Services which often offer tools only for WSDL 1.1. Furthermore, the latest version (version 2.0) of the Business Process Execution Language (BPEL)
Business Process Execution Language
Business Process Execution Language , short for Web Services Business Process Execution Language is an OASIS standard executable language for specifying actions within business processes with web services...

 only supports WSDL 1.1.

Objects in WSDL 1.1 / WSDL 2.0

WSDL 1.1 Term WSDL 2.0 Term Description
Service Service Contains a set of system functions that have been exposed to the Web-based protocols.
Port Endpoint Defines the address or connection point to a Web service. It is typically represented by a simple HTTP URL string.
Binding Binding Specifies the interface and defines the SOAP binding style (RPC
Remote procedure call
In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...

/Document) and transport (SOAP Protocol). The binding section also defines the operations.
PortType Interface Defines a Web service, the operations that can be performed, and the messages that are used to perform the operation.
Operation Operation Defines the SOAP actions and the way the message is encoded, for example, "literal." An operation is like a method or function call in a traditional programming language.
Message n/a Typically, a message corresponds to an operation. The message contains the information needed to perform the operation. Each message is made up of one or more logical parts. Each part is associated with a message-typing attribute. The message name attribute provides a unique name among all messages. The part name attribute provides a unique name among all the parts of the enclosing message. Parts are a description of the logical content of a message. In RPC binding, a binding may reference the name of a part in order to specify binding-specific information about the part. A part may represent a parameter in the message; the bindings define the actual meaning of the part. Messages were removed in WSDL 2.0, in which XML schema types for defining bodies of inputs, outputs and faults are referred to simply and directly.
Types Types Describes the data. XML Schema is used (inline or referenced) for this purpose.

Example code




xmlns:tns="http://www.tmsws.com/wsdl20sample"
xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://www.tmsws.com/wsdl20sample">

xmlns="http://www.tmsws.com/wsdl20sample"
targetNamespace="http://www.example.com/wsdl20sample">





























































type="http://www.w3.org/ns/wsdl/http">

whttp:inputSerialization="application/x-www-form-urlencoded"/>
whttp:inputSerialization="application/x-www-form-urlencoded"/>


type="http://www.w3.org/ns/wsdl/soap"
wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"
wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response">






binding="tns:RESTfulInterfaceHttpBinding"
address="http://www.example.com/rest/"/>
binding="tns:RESTfulInterfaceSoapBinding"
address="http://www.example.com/soap/"/>



History


WSDL 1.0 (Sept. 2000) has been developed by IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

, Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 and Ariba
Ariba
Ariba is a software and information technology services company located in Sunnyvale, California.- Early life :Ariba was founded in 1996 by Bobby Lent, Boris Putanec, Paul Touw, Rob Desantis, Ed Kinsey, Paul Hegarty, and Keith Krach on the idea of using the Internet to enable companies to...

 to describe Web Services for their SOAP toolkit. They built this by combining two service description languages: NASSL (Network Application Service Specification Language) from IBM and SDL
SDL
SDL may refer to:In computing:* Simple Declarative Language, a simple universal language for describing typed data in lists, maps and trees* Specification and Description Language, an ITU-specified system description language...

(Service Description Language) from Microsoft.

WSDL 1.1, published in March 2001, is the formalization of WSDL 1.0. No major changes were introduced between 1.0 and 1.1.

WSDL 1.2 (June 2003) is still a working draft at W3C. According to W3C: WSDL 1.2 is easier and more flexible for developers than the previous version. WSDL 1.2 attempts to remove non-interoperable features and also defined the better HTTP 1.1 binding. WSDL 1.2 was not supported by most of the SOAP servers/vendors.

WSDL 2.0 became a W3C recommendation on June 2007. WSDL 1.2 was renamed to WSDL 2.0 because it has substantial differences from WSDL 1.1. The changes are:
  • Adding further semantics to the description language
  • Removal of message constructs
  • No support for operator overloading
  • PortTypes renamed to interfaces
  • Ports renamed to endpoint.

External links