This document is also available in these non-normative formats: postscript, PDF, XML, and plain text.
Copyright © 2004 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document describes Web Services Description Language (WSDL) Version 2.0 message exchange patterns. These patterns are intended for use with the Web Services Description Language (WSDL).
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This is a W3C Working Draft of the WSDL Version 2.0 Message Patterns specification for review by W3C members and other interested parties.
A diff-marked version against the previous version of this document is available. For a detailed list of changes since the last publication of this document, please refer to appendix B. Change Log. A list of open issues against this document is also available.
This document has been produced as part of the W3C Web Services Activity. The authors of this document are the Web Services Description Working Group members.
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
Comments on this document are invited and are to be sent to the public www-ws-desc@w3.org mailing list (public archive).
This document has been produced under the 24 January 2002 Current Patent Practice as amended by the W3C Patent Policy Transition Procedure. Patent disclosures relevant to this specification may be found on the Working Group's patent disclosure page. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy.
1. Introduction
2. Fault Generation Rules
3. Message Exchange Patterns
4. References
A. Acknowledgements
(Non-Normative)
B. Change Log (Non-Normative)
1. Introduction
1.1 Notational
Conventions
2. Fault Generation Rules
2.1 Fault
Replaces Message
2.2 Message
Triggers Fault
2.3 No Faults
3. Message Exchange Patterns
3.1 In-Only
3.2 Robust
In-Only
3.3 In-Out
3.4 In-Optional-Out
3.5 Out-Only
3.6 Robust
Out-Only
3.7 Out-In
3.8 Out-Optional-In
4. References
4.1 Normative References
4.2 Informative References
A. Acknowledgements
(Non-Normative)
B. Change Log (Non-Normative)
B.1 Changes
Web Services Description Language (WSDL) message exchange 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.
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.
This specification defines several message exchange patterns for use with WSDL Version 2.0 Part 1: Core Language [WSDL 2.0 Core Language].
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [IETF RFC 2119].
WSDL patterns specify their fault generation model using standard rulesets to indicate where faults may occur. The two most common patterns for fault generation are defined here, and referenced by patterns later in the document.
Generation of a fault, regardless of ruleset, terminates the exchange.
Any message after the first in the pattern MAY be replaced with a fault message, which MUST have identical cardinality and direction. The fault message MUST be delivered to the same target node as the message it replaces.
Any message, including the first, MAY trigger a fault message in response. Each recipient MAY generate a fault message, and MUST generate no more than one fault for each triggering message. Each fault message has direction the reverse of its triggering message. The fault message MUST be delivered to the originator of the message which triggered it. If there is no path to this node, the fault MUST be discarded.
No faults may be generated.
Editorial note: Introduction of No Faults ruleset | 12 June 2003 |
The No Faults ruleset has been introduced primarily to clarify the confusion otherwise introduced by applying the Fault Replaces Message ruleset to single-message patterns (which implicitly disallows faults). Some concern has been expressed that a no-fault ruleset could easily be abused. |
WSDL patterns are described in terms of the WSDL component model, specifically the Label and Fault Reference components.
This pattern consists of exactly one message as follows:
A message:
indicated by a Label component whose {label} is 'In' and {direction} is 'in'
received from some node N
This pattern uses the rule 2.3 No Faults.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/in-only'.
This pattern consists of exactly one message as follows:
message:
indicated by a Label component whose {label} is 'In' and {direction} is 'in'
received from some node N
This pattern uses the rule 2.2 Message Triggers Fault.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/robust-in-only'.
This pattern consists of exactly two messages, in order, as follows:
A message:
indicated by a Label component whose {label} is 'In' and {direction} is 'in'
received from some node N
A message:
indicated by a Label component whose {label} is 'Out' and {direction} is 'out'
sent to node N
This pattern uses the rule 2.1 Fault Replaces Message.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/in-out'.
This pattern consists of one or two messages, in order, as follows:
A message:
indicated by a Label component whose {label} is 'In' and {direction} is 'in'
received from some node N
An optional message:
indicated by a Label component whose {label} is 'Out' and {direction} is 'out'
sent to node N
This pattern uses the rule 2.2 Message Triggers Fault.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/in-opt-out'.
This pattern consists of exactly one message as follows:
A message:
indicated by a Label component whose {label} is 'Out' and {direction} is 'out'
sent to some node N
This pattern uses the rule 2.3 No Faults.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/out-only'.
This pattern consists of exactly one message as follows:
message:
indicated by a Label component whose {label} is 'Out' and {direction} is 'out'
sent to some node N
This pattern uses the rule 2.2 Message Triggers Fault.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/robust-out-only'.
This pattern consists of exactly two messages, in order, as follows:
A message:
indicated by a Label component whose {label} is 'Out' and {direction} is 'out'
sent to some node N
A message:
indicated by a Label component whose {label} is 'In' and {direction} is 'in'
sent from node N
This pattern uses the rule 2.1 Fault Replaces Message.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/out-in'.
This pattern consists of one or two messages, in order, as follows:
A message:
indicated by a Label component whose {label} is 'Out' and {direction} is 'out'
sent to some node N
An optional message:
indicated by a Label component whose {label} is 'In' and {direction} is 'in'
sent from node N
This pattern uses the rule 2.2 Message Triggers Fault.
An operation using this message exchange pattern has a {pattern} property with the value 'http://www.w3.org/2004/03/wsdl/out-opt-in'.
This document is the work of the W3C Web Service Description Working Group.
Members of the Working Group are (at the time of writing, and by alphabetical order): Mike Ballantyne (Electronic Data Systems), David Booth (W3C), Allen Brookes (Rogue Wave Softwave), Roberto Chinnici (Sun Microsystems), Glen Daniels (Sonic Software), Alan Davies (SeeBeyond), Mike Davoren (W. W. Grainger), Paul Downey (British Telecommunications), Youenn Fablet (Canon), Yaron Goland (BEA), Martin Gudgin (Microsoft Corporation), Hugo Haas (W3C), Hao He (The Thomson Corporation), Tom Jordahl (Macromedia), Jacek Kopecky (Systinet), Dan Kulp (IONA Technologies), Sandeep Kumar (Cisco Systems), Amelia Lewis (TIBCO Software, Inc.), Kevin Canyang Liu (SAP), Michael Mahan (Nokia), Jonathan Marsh (Microsoft Corporation), Mike McHugh (W. W. Grainger), Michael Mealling (Verisign), Ingor Melzer (DaimlerChrysler Research and Technology), Jeff Mischkinsky (Oracle Corporation), Dale Moberg (Cyclone Commerce), Jean-Jacques Moreau (Canon), David Orchard (BEA), Bijan Parsia (University of Maryland), Arthur Ryman (IBM), Waqar Sadiq (Electronic Data Systems), Adi Sakala (IONA Technologies), Jeffrey Schlimmer (Microsoft Corporation), Igor Sedukhin (Computer Associates), Sandra Swearingen (U.S. Department of Defense, U.S. Air Force), Bryan Thompson (Hicks & Associates), Jerry Thrasher (Lexmark), William Vambenepe (Hewlett-Packard Company), Asir Vedamuthu (webMethods, Inc.), Sanjiva Weerawarana (IBM), Ümit Yalçınalp (Oracle Corporation), Prasad Yendluri (webMethods, Inc.).
Previous members were: Lily Liu (webMethods, Inc.), Don Wright (Lexmark), Joyce Yang (Oracle Corporation), Daniel Schutzer (Citigroup), Dave Solo (Citigroup), Stefano Pogliani (Sun Microsystems), William Stumbo (Xerox), Stephen White (SeeBeyond), Barbara Zengler (DaimlerChrysler Research and Technology), Tim Finin (University of Maryland), Laurent De Teneuille (L'Echangeur), Johan Pauhlsson (L'Echangeur), Mark Jones (AT&T), Steve Lind (AT&T), Philippe Le Hégaret (W3C), Jim Hendler (University of Maryland), Dietmar Gaertner (Software AG), Michael Champion (Software AG), Don Mullen (TIBCO Software, Inc.), Steve Graham (Global Grid Forum), Steve Tuecke (Global Grid Forum).
The people who have contributed to discussions on www-ws-desc@w3.org are also gratefully acknowledged.
Date | Author | Description |
---|---|---|
20040225 | aal | add in-optional-out per minutes of 20 feb 2004 telecon |
20040212 | aal | change {messageReference} to {label} and "Message Reference component" to "Label component" per 20040212 teleconference |
20040205 | aal | change all 'A' and 'B' message labels into 'Out' or 'In', depending upon direction. |
20040205 | aal | s/message pattern/message exchange pattern/gi |
20031204 | jcs | Removed change marks; note that some were on div2 tag and did not show when transformed into HTML. |
20031204 | jcs | Per 4 Dec 2003 telecon, decided to rename 'Asynchronous Out-In' pattern to 'Output-Optional-Input'. |
20031105 | aal | Fix titles of added patterns. Move them to be in conjunction with similar patterns. |
20031022 | aal | Per action item from October 16 teleconference, added the three patterns using message-triggers-fault as published on the mailing list (robust-in-only, robust-out-only, asynch-out-in). |
20031022 | aal | Added internal linkage (using specref) from patterns to the fault rulesets which they use. |
20031022 | aal | Per 9 and 16 Oct 2003 teleconferences, marked in-multi-out and out-multi-in patterns deleted. |
20031022 | aal | Per 16 Oct 2003 teleconference, added a paragraph/sentence stating that generation of a fault terminates an exchange. |
20031007 | JCS | Per 2 Oct 2003 teleconference, changed "broadcast" to "multicast" in the introduction. |
20030922 | JCS | Per 22 Sep 2003 meeting in Palo Alto, CA, removed "Pattern Review" editorial note; added specific editorial notes for In-Multi-Out and Out-Multi-In. |
20030911 | RRC | Changed the "name" property of the message reference component to "messageReference". |
20030904 | JCS | Incorporated clarifications suggested by W3C\David Booth. |
20030801 | JCS | Per 30 July meeting, added recommendations from patterns task force. |
20030612 | AAL | Added fault generation rulesets and references to them from patterns. |
20030313 | MJG | Changed to Part 2 ( from Part 3 ) |
20030306 | JCS | Proposed name for MEP7. |
20030305 | JCS | Per 4 Mar 03 meeting, renamed 'message exchange pattern' to 'message pattern' or 'pattern', added pattern for request-response, added ednote about review of patterns. |
20030217 | MJG | Fixed some issues with entities and validity errors WRT ulists |
20030212 | JCS | Initial draft |