W3C Last Call Working Draft documents have been released for the Web Services Description Language (WSDL) specification Version 2.0. The documents have been authored by members of the Web Services Description Working Group, produced as part of the W3C Web Services Activity.
The WSDL 2.0 Core Language (Part 1) document describes the Web Services Description Language (WSDL) Version 2.0, "an XML language for describing Web services. This Part 1 specification defines the core language which can be used to describe Web services based on an abstract model of what the service offers. It also defines criteria for a conformant processor of this language. WSDL enables one to separate the description of the abstract functionality offered by a service from concrete details of a service description such as 'how' and 'where' that functionality is offered."
The WSDL 2.0 Predefined Extensions (Part 2) document "describes extensions for the Web Services Description Language (WSDL) Version 2.0 . These extensions include Message Exchange Patterns (MEPs), features, SOAP modules, and bindings of features. The Working Group has discussed and approved these extensions, and recommends their use with WSDL.
The WSDL Version 2.0 Bindings (Part 3) specification describes how to use WSDL in conjunction with SOAP 1.2 Part 1: Messaging Framework.MIME, and and HTTP/1.1, as well as other versions of HTTP. This Bindings specification depends on WSDL Version 2.0 Core Language.
The W3C Web Services Description Working Group received three formal objections from Working Group participants against portions of the WSDL 2.0 specification draft. The WG especially invites feedback on these minority opinions as part of the Last Call review. The three objections pertain to compositors, feature and properties, and requiring unique GEDs or required feature to distinguish operations.
The Web Services Description Working Group welcomes public comment on the WSDL Version 2.0 drafts through October 4, 2004.
Bibliographic References
Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language. Edited by Roberto Chinnici (Sun Microsystems), Martin Gudgin (Microsoft), Jean-Jacques Moreau (Canon), Jeffrey Schlimmer (Microsoft), and Sanjiva Weerawarana (IBM Research), W3C Working Draft 3-August-2004. Version URL: http://www.w3.org/TR/2004/WD-wsdl20-20040803. Latest version URL: http://www.w3.org/TR/wsdl20. Previous version URL: http://www.w3.org/TR/2004/WD-wsdl20-20040326.
Web Services Description Language (WSDL) Version 2.0 Part 2: Predefined Extensions. Edited by Martin Gudgin (Microsoft), Amy Lewis (TIBCO), and Jeffrey Schlimmer (Microsoft). W3C Working Draft 3-August-2004. Version URL: http://www.w3.org/TR/2004/WD-wsdl20-extensions-20040803. Latest version URL: http://www.w3.org/TR/wsdl20-extensions. Previous version URL: http://www.w3.org/TR/2004/WD-wsdl20-patterns-20040326.
Web Services Description Language (WSDL) Version 2.0 Part 3: Bindings. Edited by Hugo Haas (W3C), Philippe Le Hégaret (W3C), Jean-Jacques Moreau (Canon), David Orchard (BEA Systems), Jeffrey Schlimmer (Microsoft), and Sanjiva Weerawarana (IBM Research). W3C Working Draft 3-August-2004. Version URL: http://www.w3.org/TR/2004/WD-wsdl20-bindings-20040803. Latest version URL: http://www.w3.org/TR/wsdl20-bindings. Previous version URL: http://www.w3.org/TR/2003/WD-wsdl12-bindings-20030611.
Overview of WSDL 2.0
WSDL 2.0 enables one to separate the description of a service's abstract functionality from concrete details of how and where that functionality is offered.
An interface describes what a Web service is. The abstract functionality of a service is described in terms of the messages it sends and receives. Messages are described independent of any specific wire format using a type system, typically XML schema. A message exchange pattern defines the sequence and cardinality of the abstract messages a service exchanges with its clients. A binding describes how to access a Web service. It specifies transport and wire format details for one or more interfaces. A service endpoint describes where to access a service. It associates a concrete network address with a binding of an interface.
This layering of interface, binding and service endpoint facilitates different levels of reusability and distribution of work in different stages of the lifecycle of a service. As one typical use case, an interface describes the functionality and supported features of a service, and is used at design time. It has the highest level of reusability, and should be abstract and reusable for different bindings; A binding is used at configuration time. It provides transport protocol specific information about how to access a service, and should be reusable by different endpoints. An endpoint provides concrete location of a service, and is used at run time. It's most concrete, specific to a particular instance of a service, and not reusable.
Scope: It's important to note that the scope of WSDL2.0 is limited to the description of a single stateless Web service from a service provider's viewpoint. Its extensibility and composeability with other Web services specifications makes it an essential building block for a complete solution, but WSDL itself does not provide the complete solution for building real world application using Web services. For example, several individual Web services can be composed to provide more complex functionalities which may involve process definition, transaction management, state mangement, and reliable messaging. Though WSDL does not preclude the description of such composition of individual services, the way two or more services could be composed is considered out of scope of WSDL..." [from the Web Services Description Language (WSDL) Version 2.0 Part 0: Primer]
About Web Services and WSDL
WSDL describes a Web service in two fundamental stages: one abstract and one concrete. Within each stage, the description uses a number of constructs to promote reusability of the description and separate independent design concerns.
At an abstract level, WSDL describes a Web service in terms of the messages it sends and receives; messages are described independent of a specific wire format using a type system, typically XML Schema.
An operation associates a message exchange pattern with one or more messages. A message exchange pattern identifies the sequence and cardinality of messages sent and/or received as well as who they are logically sent to and/or received from. An interface groups together operations without any commitment to transport or wire format.
At a concrete level, a binding specifies transport and wire format details for one or more interfaces. An endpoint associates a network address with a binding. And finally, a service groups together endpoints that implement a common interface. [Part 1]
About Predefined Message Exchange Patterns
Web Services Description Language (WSDL) message exchange patterns (hereafter simply 'patterns') define the sequence and cardinality of abstract messages listed in an operation. Message exchange patterns also define which other nodes send messages to, and receive messages from, the service implementing the operation. WSDL message exchange patterns describe the interaction at the abstract (interface) level, which may be distinct from the pattern used by the underlying protocol binding (e.g., SOAP Message Exchange Patterns).
By design, WSDL message exchange patterns abstract out specific message types. Patterns identify placeholders for messages, and placeholders are associated with specific message types by the operation using the pattern.
Unless explicitly stated otherwise, WSDL message exchange patterns also abstract out binding-specific information like timing between messages, whether the pattern is synchronous or asynchronous, and whether the message are sent over a single or multiple channels.
Like interfaces and operations, WSDL message exchange patterns do not exhaustively describe the set of messages exchanged between a service and other nodes; by some prior agreement, another node and/or the service may send other messages (to each other or to other nodes) that are not described by the pattern. For instance, even though a pattern may define a single message sent from a service to one other node, the Web Service may multicast that message to other nodes.
To maximize reuse, WSDL message exchange patterns identify a minimal contract between other parties and Web Services, and contain only information that is relevant to both the Web Service and another party... [from Part 2]
Principal references:
- Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language. See the diff-marked version.
- Web Services Description Language (WSDL) Version 2.0 Part 2: Predefined Extensions. See the diff-marked version.
- Web Services Description Language (WSDL) Version 2.0 Part 3: Bindings. See the diff-marked version.
- XML Schema for WSDL 2.0
- XML Schema for WSDL 2.0 SOAP 1.2 binding
- XML Schema for WSDL 2.0 HTTP binding
- Web Services Description Language (WSDL) Version 2.0 Part 0: Primer. Edited by David Booth (W3C Fellow / Hewlett-Packard) and Canyang Kevin Liu (SAP Labs). Editors' copy.
- WSDL 2.0 Last Call Issues List
- Mail Archives for 'public-ws-desc-comments' A W3C public mailing list for comments on Web Services Description Working Group documents.
- Mail Archives for 'www-ws-desc@w3.org' A W3C public mailing list used by the Web Services Description Working Group for technical discussions.
- Minority Opinion on 'Compositors' From IONA, Oracle, Sonic, and Sun.
- Minority Opinion objection to features and properties. From IBM and Microsoft. See also the follow-on posting from SAP.
- Minority Opinion objection to requiring unique GEDs or required feature to distinguish operations. From IBM. Microsoft, and TIBCO.
- W3C Web Services Activity
- W3C Web Services Activity Statement
- W3C Web Services Description Working Group
- W3C Web Services Description WG Charter
- Earlier news:
- "Proposed Technical Specification for Web Services Addressing and Referencing Framework."
- "WS-MessageDelivery Specification Integrates with WSDL Message Exchange Patterns."
- "W3C Updates Web Services Description Language (WSDL) Version 2.0 Drafts."
- "W3C Releases Three Web Services Description Language (WSDL) 1.2 Working Drafts ."
- "W3C Publishes Web Services Description Language (WSDL) Version 1.1."
- "Web Services Description Language (WSDL)" - Main reference page.