- From: Amelia Lewis via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 14 Mar 2005 18:58:20 +0000
- To: public-ws-desc-eds@w3.org
Update of /sources/public/2002/ws/desc/wsdl20 In directory hutz:/tmp/cvs-serv19780 Added Files: wsdl20-meps.frag.xml Log Message: Created fragment from old part two for inclusion into combined "adjuncts" document --- NEW FILE: wsdl20-meps.frag.xml --- <div1 id="meps"> <head>Predefined Message Exchange Patterns</head> <p diff="add"> A <em>node</em> is an agent <bibref ref="agent-def" /> that can transmit and/or receive message(s) described in WSDL description(s) and process them. </p> <note> <p diff="add">A node may be accessible via more than one physical address or transport.</p> </note> <p> Web Services Description Language (WSDL) message exchange patterns (hereafter simply 'patterns') define the sequence and 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). </p> <p> 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. </p> <p> 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. </p> <p> 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. </p> <p> 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. </p> <p>This specification defines several message exchange patterns for use with <emph>WSDL Version 2.0 Part 1: Core Language</emph> <bibref ref='WSDL-PART1' />.</p> <div2 id="fault-rules"> <head>Fault Propagation Rules</head> <p>WSDL patterns specify their fault propagation model using standard rulesets to indicate where faults may occur. The most common patterns for fault propagation are defined here, and referenced by patterns later in the document.</p> <p>WSDL patterns specify propagation of faults, not their generation. Nodes which generate a fault MUST attempt to propagate the faults in accordance with the governing ruleset, but it is understood that any delivery of a network message is best effort, not guaranteed. The rulesets establish the direction of the fault message and the fault recipient, they do not provide reliability or other delivery guarantees. When a fault is generated, the generating node MUST attempt to propagate the fault, and MUST do so in the direction and to to the recipient specified by the ruleset.</p> <p>Generation of a fault, regardless of ruleset, terminates the exchange.</p> <p>Bindings, features, or extension specifications may override the semantics of a fault propagation ruleset, but this practice is strongly discouraged.</p> <div3 id="fault-replacement"> <head>Fault Replaces Message</head> <p>Any message after the first in the pattern MAY be replaced with a fault message, which MUST have identical direction. The fault message MUST be delivered to the same target node as the message it replaces. If there is no path to this node, the fault MUST be discarded. </p> </div3> <div3 id="fault-trigger"> <head>Message Triggers Fault</head> <p>Any message, including the first, MAY trigger a fault message in response. Each recipient MAY propagate a fault message, and MUST propagate 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. </p> </div3> <div3 id="no-fault"> <head>No Faults</head> <p>No faults may be propagated.</p> </div3> </div2> <div2 id="patterns"> <head>Message Exchange Patterns</head> <p>WSDL patterns are described in terms of the WSDL component model, specifically the Message Label and Fault Reference components. </p> <div3 id="in-only"> <head>In-Only</head> <p> This pattern consists of exactly one message as follows: </p> <olist> <item> <p> A message: </p> <ulist> <item> <p> indicated by a Message Label component whose {message label} is 'In' and {direction} is 'in' </p> </item> <item> <p> received from some node N </p> </item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='no-fault'/>.</p> <p> An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-in-only;'. </p> </div3> <div3 id="robust-in-only"> <head>Robust In-Only</head> <p>This pattern consists of exactly one message as follows:</p> <olist> <item><p>A message:</p> <ulist> <item><p>indicated by a Message Label component whose {message label} is 'In' and {direction} is 'in'</p></item> <item><p>received from some node N</p></item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='fault-trigger'/>.</p> <p>An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-robust-in-only;'.</p> </div3> <div3 id="in-out"> <head>In-Out</head> <p>This pattern consists of exactly two messages, in order, as follows:</p> <olist> <item> <p> A message: </p> <ulist> <item> <p> indicated by a Message Label component whose {message label} is 'In' and {direction} is 'in' </p> </item> <item> <p> received from some node N </p> </item> </ulist> </item> <item> <p> A message: </p> <ulist> <item> <p> indicated by a Message Label component whose {message label} is 'Out' and {direction} is 'out' </p> </item> <item> <p> sent to node N </p> </item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='fault-replacement'/>.</p> <p> An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-in-out;'. </p> </div3> <div3 id="in-opt-out"> <head>In-Optional-Out</head> <p>This pattern consists of one or two messages, in order, as follows:</p> <olist> <item><p>A message:</p> <ulist> <item><p>indicated by a Message Label component whose {message label} is 'In' and {direction} is 'in'</p></item> <item><p>received from some node N</p></item> </ulist> </item> <item><p>An optional message:</p> <ulist> <item><p>indicated by a Message Label component whose {message label} is 'Out' and {direction} is 'out'</p></item> <item><p>sent to node N</p></item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='fault-trigger'/>.</p> <p>An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-in-opt-out;'.</p> </div3> <div3 id="out-only"> <head>Out-Only</head> <p>This pattern consists of exactly one message as follows:</p> <olist> <item> <p> A message: </p> <ulist> <item> <p> indicated by a Message Label component whose {message label} is 'Out' and {direction} is 'out' </p> </item> <item> <p> sent to some node N </p> </item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='no-fault'/>.</p> <p> An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-out-only;'. </p> </div3> <div3 id="robust-out-only"> <head>Robust Out-Only</head> <p>This pattern consists of exactly one message as follows:</p> <olist> <item><p>message:</p> <ulist> <item><p>indicated by a Message Label component whose {message label} is 'Out' and {direction} is 'out'</p></item> <item><p>sent to some node N</p></item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='fault-trigger'/>.</p> <p>An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-robust-out-only;'.</p> </div3> <div3 id="out-in"> <head>Out-In</head> <p>This pattern consists of exactly two messages, in order, as follows:</p> <olist> <item> <p> A message: </p> <ulist> <item> <p> indicated by a Message Label component whose {message label} is 'Out' and {direction} is 'out' </p> </item> <item> <p> sent to some node N </p> </item> </ulist> </item> <item> <p> A message: </p> <ulist> <item> <p> indicated by a Message Label component whose {message label} is 'In' and {direction} is 'in' </p> </item> <item> <p> sent from node N </p> </item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='fault-replacement'/>.</p> <p> An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-out-in;'. </p> </div3> <div3 id="out-opt-in"> <head>Out-Optional-In</head> <p>This pattern consists of one or two messages, in order, as follows:</p> <olist> <item><p>A message:</p> <ulist> <item><p>indicated by a Message Label component whose {message label} is 'Out' and {direction} is 'out'</p></item> <item><p>sent to some node N</p></item> </ulist> </item> <item><p>An optional message:</p> <ulist> <item><p>indicated by a MessageLabel component whose {message label} is 'In' and {direction} is 'in'</p></item> <item><p>sent from node N</p></item> </ulist> </item> </olist> <p>This pattern uses the rule <specref ref='fault-trigger'/>.</p> <p>An operation using this message exchange pattern has a {pattern} property with the value '&wsdl-mep-out-opt-in;'.</p> </div3> </div2><!-- message exchange patterns --> </div1><!-- section on meps -->
Received on Monday, 14 March 2005 18:58:21 UTC