Draft SOAP One-way MEP
"David Orchard" <[email protected]> Thu, 30 Mar 2006 17:01:13 -0800
| Newsgroups | gmane.text.xml.distributed |
|---|---|
| Message-ID | <[email protected]> |
Hi all, I spent today working on the SOAP One-way MEP including a buncho grungy ed work of getting it in xmlspec. It is attached in html and xmlspec, as well as an updated state transition diagram. There are a few decisions of interest in this document. One decision is the name of the message property at the sender and the receiver. There are 2 choices, and I picked the first: 1) Retain request-response mep compatibility which means "outbound" message at sender and "inbound" message at receiver 2) Lose request-response mep compatibility and change to just "message" at sender and receiver. Another decision is whether to have Sending and Receiving states, or just collapse into Init (as proposed by DavidH in http://lists.w3.org/Archives/Public/xml-dist-app/2006Mar/att-0037/one-wa y-MEP.htm). I chose to retain the explicit states for backwards compatibility with req-resp. Another decision is the name. I propose the "SOAP One-way MEP". I don't think this is a "SOAP 1.2 One-way MEP". Small ed point: I know the std diagram is poorly listed as an example. Xmlspec 2.2 lost the caption child of graphic and people are using the example/graphic hack currently. Cheers, Dave .
One-wayMEPSTD.png
(image/png, 16.4 KB) - not displayed
one-way-mep.html
(text/html, 20.8 KB)
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/><title>SOAP One-way MEP</title><style type="text/css">
code { font-family: monospace; }
div.constraint,
div.issue,
div.note,
div.notice { margin-left: 2em; }
li p { margin-top: 0.3em;
margin-bottom: 0.3em; }
div.exampleInner pre { margin-left: 1em;
margin-top: 0em; margin-bottom: 0em}
div.exampleOuter {border: 4px double gray;
margin: 0em; padding: 0em}
div.exampleInner { background-color: #d5dee3;
border-top-width: 4px;
border-top-style: double;
border-top-color: #d3d3d3;
border-bottom-width: 4px;
border-bottom-style: double;
border-bottom-color: #d3d3d3;
padding: 4px; margin: 0em }
div.exampleWrapper { margin: 4px }
div.exampleHeader { font-weight: bold;
margin: 4px}
</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base.css"/></head><body><div class="head">
<h1><a name="title" id="title"/>SOAP One-way MEP</h1>
<h2><a name="w3c-doctype" id="w3c-doctype"/>Editors Copy $Date: 2006/03/30 09:53:43 $ 30 March 2006</h2><dl><dt>This version:</dt><dd><a href="/">/</a></dd><dt>Editor:</dt><dd>David Orchard, BEA Systems</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Copyright">Copyright</a> © 2006 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href="http://www.lcs.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.inria.fr/"><abbr lang="fr" title="Institut National de Recherche en Informatique et Automatique">INRIA</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#W3C_Trademarks">trademark</a>, <a href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document use</a>, and <a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software licensing</a> rules apply.</p></div><hr/><div>
<h2><a name="abstract" id="abstract"/>Abstract</h2><p>SOAP Version 1.2 provides a request-response MEP and a response-only MEP. This, the SOAP One-way MEP, provides a one-way MEP. </p></div><div>
<h2><a name="status" id="status"/>Status of this Document</h2><p><strong>This document is an editors' copy that has
no official standing.</strong></p><p><em>This section describes the status of this document
at the time of its publication. Other documents may
supersede this document. The latest status of this document
series is maintained at the W3C.</em></p></div><div class="toc">
<h2><a name="contents" id="contents"/>Table of Contents</h2><p class="toc">1 <a href="#intro">Introduction</a><br/> 1.1 <a href="#notcon">Notational Conventions</a><br/>2 <a href="#singlereqmep">SOAP One-way Message Exchange Pattern</a><br/> 2.1 <a href="#mepname">SOAP Feature Name</a><br/> 2.2 <a href="#bindinfdesc">Description</a><br/> 2.3 <a href="#bindformdesc">State Machine Description</a><br/> 2.4 <a href="#bindfaulthdn">Fault Handling</a><br/>3 <a href="#refs">References</a><br/> 3.1 <a href="#refs-norm">Normative References</a><br/> 3.2 <a href="#refs-inform">Informative References</a><br/></p>
<h3><a name="appendices" id="appendices"/>Appendix</h3><p class="toc">A <a href="#changelog">Change Log</a> (Non-Normative)<br/></p></div><hr/><div class="body"><div class="div1">
<h2><a name="intro" id="intro"/>1 Introduction</h2><p>SOAP Version 1.2 provides a request-response MEP and a response-only MEP. This, the SOAP One-way MEP, provides a one-way MEP.
</p><div class="div2">
<h3><a name="notcon" id="notcon"/>1.1 Notational Conventions</h3><p>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 <a href="#RFC2119">[RFC 2119]</a>.</p><p>With the exception of examples and sections explicitly marked
as "Non-Normative", all parts of this specification are
normative.</p></div></div><div class="div1">
<h2><a name="singlereqmep" id="singlereqmep"/>2 SOAP One-way Message Exchange Pattern</h2><p>This section defines the message exchange pattern (MEP) called "One-way". The
description is an abstract presentation of the operation of
this MEP. It is not intended to describe a real
implementation or to suggest how a real implementation should
be structured.</p><div class="div2">
<h3><a name="mepname" id="mepname"/>2.1 SOAP Feature Name</h3><p>This message exchange pattern is identified by
the URI (see SOAP 1.2 Part 1 <a href="#SOAP-PART1">[SOAP Part 1]</a><a href="/#procsoapmsgs">SOAP Features</a>):</p><ul><li><p>"http://www.w3.org/2006/03/soap/mep/one-way/"</p></li></ul></div><div class="div2">
<h3><a name="bindinfdesc" id="bindinfdesc"/>2.2 Description</h3><p>The SOAP One-way MEP defines a
pattern for the exchange of a SOAP message. In the absence of failure in the underlying
protocol, this MEP consists of one SOAP message.</p><p>Abnormal operation during a one-way message exchange
might be caused by a failure to transfer the message or a
failure at the receiving SOAP node to process the
message. Such
failures might be silent at either or both of the sending and
recieving SOAP nodes involved, or might result in the generation of a SOAP
or binding-specific fault (see <a href="#bindfaulthdn"><b>2.4 Fault Handling</b></a>).
Also, during abnormal operation
each SOAP node involved in the message exchange might differ in
its determination of the successful completion of the message
exchange. </p><p>The scope of a one-way MEP is limited to
the exchange of a message between
one sending and one receiving SOAP node. Implementations MAY choose
to support multiple meps at the same time.</p></div><div class="div2">
<h3><a name="bindformdesc" id="bindformdesc"/>2.3 State Machine Description</h3><p>The One-way MEP defines a set of properties described in <b><a href="#tabreqresprops">???</a></b>.</p><table border="1" id="tabreqresprops"><caption>Property definitions for One-way MEP</caption><tbody><tr><th rowspan="1" colspan="1">Property Name</th><th rowspan="1" colspan="1">Property Description</th><th rowspan="1" colspan="1">Property Type</th></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/mep/OutboundMessage</code></td><td rowspan="1" colspan="1">An abstract structure that represents the current
outbound message in the message exchange. This
abstracts both SOAP Envelope and any other
information structures that are transferred along
with the envelope.</td><td rowspan="1" colspan="1">Not specified</td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/mep/InboundMessage</code></td><td rowspan="1" colspan="1">An abstract structure that represents the current
inbound message in the message exchange. This
abstracts both SOAP Envelope and any other
information structures that are transferred along
with the envelope.</td><td rowspan="1" colspan="1">Not specified</td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/mep/ImmediateDestination</code></td><td rowspan="1" colspan="1">The identifier of the immediate destination of an
outbound message.</td><td rowspan="1" colspan="1">xs:anyURI</td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/mep/ImmediateSender</code></td><td rowspan="1" colspan="1">The identifier of the immediate sender of an inbound
message.</td><td rowspan="1" colspan="1">xs:anyURI</td></tr></tbody></table><p>To initiate a message exchange conforming to the
One-way MEP, the sending SOAP node instantiates a
local message exchange context. <b><a href="#tabreqcon">???</a></b> describes how
the context is initialized.</p><table border="1" id="tabreqcon"><caption>Instantiation of a Message Exchange Context
for a sending SOAP node</caption><tbody><tr><th rowspan="1" colspan="1">Property Name</th><th rowspan="1" colspan="1">Property Value</th><th rowspan="1" colspan="1">Notes</th></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</code></td><td rowspan="1" colspan="1">"http://www.w3.org/2006/03/soap/mep/one-way/"</td><td rowspan="1" colspan="1"> </td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</code></td><td rowspan="1" colspan="1">"None"</td><td rowspan="1" colspan="1">
A relative URI whose
base URI is the value of
<code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</code></td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</code></td><td rowspan="1" colspan="1">"SendingSOAPNode"</td><td rowspan="1" colspan="1">
A relative URI whose
base URI is the value of
<code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</code></td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/State</code></td><td rowspan="1" colspan="1">"Init"</td><td rowspan="1" colspan="1">
A relative URI whose base URI is the value of
<code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</code></td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/mep/OutboundMessage</code></td><td rowspan="1" colspan="1">An abstraction of the One-way message </td><td rowspan="1" colspan="1"> </td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/mep/ImmediateDestination</code></td><td rowspan="1" colspan="1">An identifier (URI) that denotes the receiving SOAP node </td><td rowspan="1" colspan="1"> </td></tr></tbody></table><p>There may be other properties related to the operation of
the message exchange context instance. Such properties are
initialized according to their own feature specifications.
</p><p>Once the message exchange context is initialized, control
of the context is passed to a (conforming) local binding
instance. </p><p>The diagram below shows the logical state transitions at
the sending and receiving SOAP nodes during the lifetime
of the message exchange. At each SOAP node, the local binding
instance updates (logically) the value of the
<code>http://www.w3.org/2003/05/soap/bindingFramework/
ExchangeContext/State</code> property to reflect the current
state of the message exchange. The state names are relative
URIs, relative to a base URI value carried in the
<code>http://www.w3.org/2003/05/soap/bindingFramework/
ExchangeContext/Role</code> property of the local message
exchange context.</p><div class="exampleOuter">
<div class="exampleHead">Example: One-way MEP State Transition Diagram</div><img src="One-wayMEPSTD.png" alt="One-way MEP State Transition Diagram."/></div><p>When the local binding instance at the receiving SOAP
node starts to receive an inbound One-way message, it
(logically) instantiates a message exchange context. <b><a href="#tabrescon">???</a></b>
describes the properties that the binding initializes as
part of the context's instantiation.</p><table border="1" id="tabrescon"><caption>Instantiation of Message Exchange Context for
an inbound One-way message at a receiving SOAP node</caption><tbody><tr><th rowspan="1" colspan="1">Property Name</th><th rowspan="1" colspan="1">Property Value</th><th rowspan="1" colspan="1">Notes</th></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</code></td><td rowspan="1" colspan="1">"http://www.w3.org/2006/03/soap/mep/one-way/"</td><td rowspan="1" colspan="1">Initialized as early as possible during the life cycle
of the message exchange.</td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</code></td><td rowspan="1" colspan="1">"None"</td><td rowspan="1" colspan="1">A relative URI whose base URI is the value of <code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</code></td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</code></td><td rowspan="1" colspan="1">"ReceivingSOAPNode"</td><td rowspan="1" colspan="1">
A relative URI whose base URI is the value of <code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</code>
Initialized as early
as possible during the life cycle of the message
exchange.
</td></tr><tr><td rowspan="1" colspan="1"><code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/State</code></td><td rowspan="1" colspan="1">"Init"</td><td rowspan="1" colspan="1">A relative URI whose base URI is the
value of <code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</code></td></tr></tbody></table><p>When the sending and receiving SOAP nodes transition between
states, the local binding instance (logically) updates a number of
properties. <b><a href="#tabreqstatetrans">???</a></b> and <b><a href="#tabresstatetrans">???</a></b> describe these updates for the sending
and the receiving SOAP nodes, respectively.</p><table width="100%" border="1" id="tabreqstatetrans"><caption>Sending SOAP Node State Transitions</caption><tbody><tr><th valign="top" rowspan="1" colspan="1">CurrentState</th><th valign="top" rowspan="1" colspan="1">Transition Condition</th><th valign="top" rowspan="1" colspan="1">NextState</th><th valign="top" rowspan="1" colspan="1">Action</th></tr><tr><td valign="top" rowspan="1" colspan="1">"Init"</td><td valign="top" rowspan="1" colspan="1">Unconditional</td><td valign="top" rowspan="1" colspan="1">"Sending"</td><td valign="top" rowspan="1" colspan="1">Initiate transmission of message
abstracted in
<code>http://www.w3.org/2003/05/soap/mep/OutboundMessage</code>.</td></tr><tr><td valign="top" rowspan="2" colspan="1">"Sending"</td><td valign="top" rowspan="1" colspan="1">Message transmission failure</td><td valign="top" rowspan="1" colspan="1">"Fail"</td><td valign="top" rowspan="1" colspan="1">Set
<code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</code> to
"transmissionFailure"</td></tr><tr><td valign="top" rowspan="1" colspan="1">Completed sending message. </td><td valign="top" rowspan="1" colspan="1">"Success"</td><td valign="top" rowspan="1" colspan="1"> </td></tr></tbody></table><p> </p><table width="100%" border="1" id="tabresstatetrans"><caption>Receiving SOAP Node State Transitions</caption><tbody><tr><th valign="top" rowspan="1" colspan="1">CurrentState</th><th valign="top" rowspan="1" colspan="1">Transition Condition</th><th valign="top" rowspan="1" colspan="1">NextState</th><th valign="top" rowspan="1" colspan="1">Action</th></tr><tr><td valign="top" rowspan="1" colspan="1">"Init"</td><td valign="top" rowspan="1" colspan="1">Start receiving message</td><td valign="top" rowspan="1" colspan="1">"Receiving"</td><td valign="top" rowspan="1" colspan="1">Set
<code>http://www.w3.org/2003/05/soap/mep/ImmediateSender</code> to denote the sender of the message (if determinable).
Start making an abstraction of the message available in <code>http://www.w3.org/2003/05/soap/mep/InboundMessage</code>.
Pass control of message exchange context to SOAP processor.</td></tr><tr><td valign="top" rowspan="2" colspan="1">"Receiving"</td><td valign="top" rowspan="1" colspan="1">Message reception failure</td><td valign="top" rowspan="1" colspan="1">"Fail"</td><td valign="top" rowspan="1" colspan="1">Set
<code>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</code> to
"receptionFailure".</td></tr><tr><td valign="top" rowspan="1" colspan="1">Completed receiving message.</td><td valign="top" rowspan="1" colspan="1">"Success"</td><td valign="top" rowspan="1" colspan="1"> </td></tr></tbody></table></div><div class="div2">
<h3><a name="bindfaulthdn" id="bindfaulthdn"/>2.4 Fault Handling</h3><p>During the operation of the One-way MEP, the
participating SOAP nodes may generate SOAP faults. This MEP makes no claims about the disposition or
handling of SOAP faults generated by the sending SOAP node or the receiving SOAP node.</p></div></div><div class="div1">
<h2><a name="refs" id="refs"/>3 References</h2><div class="div2">
<h3><a name="refs-norm" id="refs-norm"/>3.1 Normative References</h3><dl><dt class="label"><a name="SOAP-PART2" id="SOAP-PART2"/>SOAP Part 2</dt><dd><a href="http://www.w3.org/TR/2003/REC-soap12-part2-20030624/">W3C Proposed Recommendation
"SOAP Version 1.2 Part 2: Adjuncts", Martin Gudgin, Marc Hadley, Noah Mendelsohn, Jean-Jacques Moreau,
Henrik Frystyk Nielsen, 24 June 2003</a> (See http://www.w3.org/TR/2003/REC-soap12-part2-20030624/.)</dd><dt class="label"><a name="RFC2119" id="RFC2119"/>RFC 2119</dt><dd><a href="http://www.ietf.org/rfc/rfc2119.txt">IETF "RFC 2119:
Key words for use in RFCs to Indicate Requirement Levels",
S. Bradner, March 1997.</a> (See http://www.ietf.org/rfc/rfc2119.txt.)</dd><dt class="label"><a name="RFC2396" id="RFC2396"/>RFC 2396</dt><dd><a href="http://www.ietf.org/rfc/rfc2396.txt">IETF "RFC 2396:
Uniform Resource Identifiers (URI): Generic Syntax",
T. Berners-Lee, R. Fielding, L. Masinter, August
1998.</a> (See http://www.ietf.org/rfc/rfc2396.txt.)</dd></dl></div><div class="div2">
<h3><a name="refs-inform" id="refs-inform"/>3.2 Informative References</h3><dl><dt class="label"><a name="SOAP-PART0" id="SOAP-PART0"/>SOAP Part 0</dt><dd><a href="http://www.w3.org/TR/2003/REC-soap12-part0-20030624/">W3C Proposed Recommendation "SOAP Version 1.2 Part 0:
Primer", Nilo Mitra, 24 June 2003</a> (See http://www.w3.org/TR/2003/REC-soap12-part0-20030624/.)</dd><dt class="label"><a name="SOAP-PART1" id="SOAP-PART1"/>SOAP Part 1</dt><dd><a href="http://www.w3.org/TR/2003/REC-soap12-part1-20030624/">W3C Proposed Recommendation
"SOAP Version 1.2 Part 1: Messaging
Framework", Martin Gudgin, Marc Hadley, Noah Mendelsohn, Jean-Jacques Moreau,
Henrik Frystyk Nielsen, 24 June 2003</a> (See http://www.w3.org/TR/2003/REC-soap12-part1-20030624/.)</dd><dt class="label"><a name="CommentArchive" id="CommentArchive"/>XMLP Comments</dt><dd><a href="http://lists.w3.org/Archives/Public/xmlp-comments/">XML Protocol Comments Archive</a> (See http://lists.w3.org/Archives/Public/xmlp-comments/.)</dd><dt class="label"><a name="DiscussionArchive" id="DiscussionArchive"/>XMLP Dist-App</dt><dd><a href="http://lists.w3.org/Archives/Public/xml-dist-app/">XML Protocol Discussion
Archive</a> (See http://lists.w3.org/Archives/Public/xml-dist-app/.)</dd><dt class="label"><a name="XMLPCharter" id="XMLPCharter"/>XMLP Charter</dt><dd><a href="http://www.w3.org/2000/09/XML-Protocol-Charter">XML Protocol Charter</a> (See http://www.w3.org/2000/09/XML-Protocol-Charter.)</dd><dt class="label"><a name="RFC2045" id="RFC2045"/>RFC 2045</dt><dd><a href="http://www.ietf.org/rfc/rfc2045.txt">IETF "RFC2045: Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message
Bodies", N. Freed, N. Borenstein, November 1996.</a> (See http://www.ietf.org/rfc/rfc2045.txt.)</dd><dt class="label"><a name="RFC2026" id="RFC2026"/>RFC 2026</dt><dd><a href="http://www.ietf.org/rfc/rfc2026.txt">IETF "RFC 2026:
The Internet Standards Process -- Revision 3", section
4.2.3, S. Bradner, October 1996.</a> (See http://www.ietf.org/rfc/rfc2026.txt.)</dd></dl></div></div></div><div class="back"><div class="div1">
<h2><a name="changelog" id="changelog"/>A Change Log (Non-Normative)</h2><table border="1"><caption>Changes since candidate recommendation.</caption><thead><tr><th rowspan="1" colspan="1">Who</th><th rowspan="1" colspan="1">When</th><th rowspan="1" colspan="1">What</th></tr></thead><tbody><tr><td rowspan="1" colspan="1">DBO</td><td rowspan="1" colspan="1">20041208</td><td rowspan="1" colspan="1">Initial Revision</td></tr><tr><td rowspan="1" colspan="1">DBO</td><td rowspan="1" colspan="1">20060330</td><td rowspan="1" colspan="1">2nd Revision</td></tr></tbody></table></div></div></body></html>
one-way-mep.xml
(text/xml, 18.9 KB)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='xmlspec.xsl'?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.2//EN" "xmlspec.dtd" [
<!ENTITY % entities SYSTEM "entitiesedcopy.dtd">
<!ENTITY wgmb SYSTEM "wgmb.txt">
<!ENTITY prevwgmb SYSTEM "prevwgmb.txt">
%entities;
<!ENTITY status "Editors Copy $Date: 2006/03/30 09:53:43 $">
]>
<spec w3c-doctype="wd" role="editors-copy">
<header>
<title>SOAP One-way MEP</title>
<w3c-designation>&w3c-designation;</w3c-designation>
<w3c-doctype>&status;</w3c-doctype>
<pubdate>
<day>&draft.day;</day>
<month>&draft.month;</month>
<year>&draft.year;</year>
</pubdate>
<publoc>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="&dated;/">&dated;/</loc>
</publoc>
<!-- <latestloc>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://www.w3.org/TR/&shortname;/">http://www.w3.org/TR/&shortname;/</loc>
</latestloc>
-->
<authlist>
<author>
<name>David Orchard</name>
<affiliation>BEA Systems</affiliation>
</author>
</authlist>
<abstract>
<p>SOAP Version 1.2 provides a request-response MEP and a response-only MEP. This, the SOAP One-way MEP, provides a one-way MEP. </p>
</abstract>
<status>
<p>
<emph>This section describes the status of this document
at the time of its publication. Other documents may
supersede this document. The latest status of this document
series is maintained at the W3C.</emph>
</p>
</status>
<langusage>
<language id="en">English</language>
</langusage>
<revisiondesc>
<p>Last Modified: $Date: 2006/03/30 09:53:43 $ CET</p>
</revisiondesc>
</header>
<body>
<div1 id="intro">
<head>Introduction</head>
<p>SOAP Version 1.2 provides a request-response MEP and a response-only MEP. This, the SOAP One-way MEP, provides a one-way MEP.
</p>
<div2 id="notcon">
<head>Notational Conventions</head>
<p>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 <bibref ref="RFC2119"/>.</p>
<p>With the exception of examples and sections explicitly marked
as "Non-Normative", all parts of this specification are
normative.</p>
</div2>
</div1>
<div1 id="singlereqmep">
<head>SOAP One-way Message Exchange Pattern</head>
<p>This section defines the message exchange pattern (MEP) called "One-way". The
description is an abstract presentation of the operation of
this MEP. It is not intended to describe a real
implementation or to suggest how a real implementation should
be structured.</p>
<div2 id="mepname">
<head>SOAP Feature Name</head>
<p>This message exchange pattern is identified by
the URI (see SOAP 1.2 Part 1 <bibref ref="SOAP-PART1"/>
<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" href="&dated;/#procsoapmsgs">SOAP Features</xspecref>):</p>
<ulist>
<item>
<p>
<attval>http://www.w3.org/2006/03/soap/mep/one-way/</attval>
</p>
</item>
</ulist>
</div2>
<div2 id="bindinfdesc">
<head>Description</head>
<p>The SOAP One-way MEP defines a
pattern for the exchange of a SOAP message. In the absence of failure in the underlying
protocol, this MEP consists of one SOAP message.</p>
<p>Abnormal operation during a one-way message exchange
might be caused by a failure to transfer the message or a
failure at the receiving SOAP node to process the
message. Such
failures might be silent at either or both of the sending and
recieving SOAP nodes involved, or might result in the generation of a SOAP
or binding-specific fault (see <specref ref="bindfaulthdn"/>).
Also, during abnormal operation
each SOAP node involved in the message exchange might differ in
its determination of the successful completion of the message
exchange. </p>
<p>The scope of a one-way MEP is limited to
the exchange of a message between
one sending and one receiving SOAP node. Implementations MAY choose
to support multiple meps at the same time.</p>
</div2>
<div2 id="bindformdesc">
<head>State Machine Description</head>
<p>The One-way MEP defines a set of properties described in <specref ref="tabreqresprops"/>.</p>
<table border="1" id="tabreqresprops">
<caption>Property definitions for One-way MEP</caption>
<tbody>
<tr>
<th>Property Name</th>
<th>Property Description</th>
<th>Property Type</th>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/mep/OutboundMessage</att>
</td>
<td>An abstract structure that represents the current
outbound message in the message exchange. This
abstracts both SOAP Envelope and any other
information structures that are transferred along
with the envelope.</td>
<td>Not specified</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/mep/InboundMessage</att>
</td>
<td>An abstract structure that represents the current
inbound message in the message exchange. This
abstracts both SOAP Envelope and any other
information structures that are transferred along
with the envelope.</td>
<td>Not specified</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/mep/ImmediateDestination</att>
</td>
<td>The identifier of the immediate destination of an
outbound message.</td>
<td>xs:anyURI</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/mep/ImmediateSender</att>
</td>
<td>The identifier of the immediate sender of an inbound
message.</td>
<td>xs:anyURI</td>
</tr>
</tbody>
</table>
<p>To initiate a message exchange conforming to the
One-way MEP, the sending SOAP node instantiates a
local message exchange context. <specref ref="tabreqcon"/> describes how
the context is initialized.</p>
<table border="1" id="tabreqcon">
<caption>Instantiation of a Message Exchange Context
for a sending SOAP node</caption>
<tbody>
<tr>
<th>Property Name</th>
<th>Property Value</th>
<th>Notes</th>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</att>
</td>
<td>
<attval>http://www.w3.org/2006/03/soap/mep/one-way/</attval>
</td>
<td> </td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</att>
</td>
<td>
<attval>None</attval>
</td>
<td>
A relative URI whose
base URI is the value of
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</att>
</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</att>
</td>
<td>
<attval>SendingSOAPNode</attval>
</td>
<td>
A relative URI whose
base URI is the value of
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</att>
</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/State</att>
</td>
<td>
<attval>Init</attval>
</td>
<td>
A relative URI whose base URI is the value of
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</att>
</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/mep/OutboundMessage</att>
</td>
<td>An abstraction of the One-way message </td>
<td> </td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/mep/ImmediateDestination</att>
</td>
<td>An identifier (URI) that denotes the receiving SOAP node </td>
<td> </td>
</tr>
</tbody>
</table>
<p>There may be other properties related to the operation of
the message exchange context instance. Such properties are
initialized according to their own feature specifications.
</p>
<p>Once the message exchange context is initialized, control
of the context is passed to a (conforming) local binding
instance. </p>
<p>The diagram below shows the logical state transitions at
the sending and receiving SOAP nodes during the lifetime
of the message exchange. At each SOAP node, the local binding
instance updates (logically) the value of the
<att>http://www.w3.org/2003/05/soap/bindingFramework/
ExchangeContext/State</att> property to reflect the current
state of the message exchange. The state names are relative
URIs, relative to a base URI value carried in the
<att>http://www.w3.org/2003/05/soap/bindingFramework/
ExchangeContext/Role</att> property of the local message
exchange context.</p>
<example id="fig-std">
<head>One-way MEP State Transition Diagram</head>
<graphic source="One-wayMEPSTD.png" alt="One-way MEP State Transition Diagram."/>
</example>
<p>When the local binding instance at the receiving SOAP
node starts to receive an inbound One-way message, it
(logically) instantiates a message exchange context. <specref ref="tabrescon"/>
describes the properties that the binding initializes as
part of the context's instantiation.</p>
<table border="1" id="tabrescon">
<caption>Instantiation of Message Exchange Context for
an inbound One-way message at a receiving SOAP node</caption>
<tbody>
<tr>
<th>Property Name</th>
<th>Property Value</th>
<th>Notes</th>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</att>
</td>
<td>
<attval>http://www.w3.org/2006/03/soap/mep/one-way/</attval>
</td>
<td>Initialized as early as possible during the life cycle
of the message exchange.</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</att>
</td>
<td>
<attval>None</attval>
</td>
<td>A relative URI whose base URI is the value of <att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</att>
</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</att>
</td>
<td>
<attval>ReceivingSOAPNode</attval>
</td>
<td>
A relative URI whose base URI is the value of <att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/ExchangePatternName</att>
Initialized as early
as possible during the life cycle of the message
exchange.
</td>
</tr>
<tr>
<td>
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/State</att>
</td>
<td>
<attval>Init</attval>
</td>
<td>A relative URI whose base URI is the
value of <att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role</att>
</td>
</tr>
</tbody>
</table>
<p>When the sending and receiving SOAP nodes transition between
states, the local binding instance (logically) updates a number of
properties. <specref ref="tabreqstatetrans"/> and <specref ref="tabresstatetrans"/> describe these updates for the sending
and the receiving SOAP nodes, respectively.</p>
<table width="100%" border="1" id="tabreqstatetrans">
<caption>Sending SOAP Node State Transitions</caption>
<tbody>
<tr>
<th valign="top">CurrentState</th>
<th valign="top">Transition Condition</th>
<th valign="top">NextState</th>
<th valign="top">Action</th>
</tr>
<tr>
<td valign="top">
<attval>Init</attval>
</td>
<td valign="top">Unconditional</td>
<td valign="top">
<attval>Sending</attval>
</td>
<td valign="top">Initiate transmission of message
abstracted in
<att>http://www.w3.org/2003/05/soap/mep/OutboundMessage</att>.</td>
</tr>
<tr>
<td valign="top" rowspan="2">
<attval>Sending</attval>
</td>
<td valign="top">Message transmission failure</td>
<td valign="top">
<attval>Fail</attval>
</td>
<td valign="top">Set
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</att> to
<attval>transmissionFailure</attval>
</td>
</tr>
<tr>
<td valign="top">Completed sending message. </td>
<td valign="top">
<attval>Success</attval>
</td>
<td valign="top"> </td>
</tr>
</tbody>
</table>
<p> </p>
<table width="100%" border="1" id="tabresstatetrans">
<caption>Receiving SOAP Node State Transitions</caption>
<tbody>
<tr>
<th valign="top">CurrentState</th>
<th valign="top">Transition Condition</th>
<th valign="top">NextState</th>
<th valign="top">Action</th>
</tr>
<tr>
<td valign="top">
<attval>Init</attval>
</td>
<td valign="top">Start receiving message</td>
<td valign="top">
<attval>Receiving</attval>
</td>
<td valign="top">Set
<att>http://www.w3.org/2003/05/soap/mep/ImmediateSender</att> to denote the sender of the message (if determinable).
Start making an abstraction of the message available in <att>http://www.w3.org/2003/05/soap/mep/InboundMessage</att>.
Pass control of message exchange context to SOAP processor.</td>
</tr>
<tr>
<td valign="top" rowspan="2">
<attval>Receiving</attval>
</td>
<td valign="top">Message reception failure</td>
<td valign="top">
<attval>Fail</attval>
</td>
<td valign="top">Set
<att>http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/FailureReason</att> to
<attval>receptionFailure</attval>.</td>
</tr>
<tr>
<td valign="top">Completed receiving message.</td>
<td valign="top">
<attval>Success</attval>
</td>
<td valign="top"> </td>
</tr>
</tbody>
</table>
</div2>
<div2 id="bindfaulthdn">
<head>Fault Handling</head>
<p>During the operation of the One-way MEP, the
participating SOAP nodes may generate SOAP faults. This MEP makes no claims about the disposition or
handling of SOAP faults generated by the sending SOAP node or the receiving SOAP node.</p>
</div2>
</div1>
<div1 id="refs">
<head>References</head>
<div2 id="refs-norm">
<head>Normative References</head>
<blist>
<bibl key="SOAP Part 2" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://www.w3.org/TR/2003/REC-soap12-part2-20030624/" id="SOAP-PART2">W3C Proposed Recommendation
"SOAP Version 1.2 Part 2: Adjuncts", Martin Gudgin, Marc Hadley, Noah Mendelsohn, Jean-Jacques Moreau,
Henrik Frystyk Nielsen, 24 June 2003</bibl>
<bibl key="RFC 2119" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" id="RFC2119" href="http://www.ietf.org/rfc/rfc2119.txt">IETF "RFC 2119:
Key words for use in RFCs to Indicate Requirement Levels",
S. Bradner, March 1997.</bibl>
<bibl key="RFC 2396" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" id="RFC2396" href="http://www.ietf.org/rfc/rfc2396.txt">IETF "RFC 2396:
Uniform Resource Identifiers (URI): Generic Syntax",
T. Berners-Lee, R. Fielding, L. Masinter, August
1998.</bibl>
</blist>
</div2>
<div2 id="refs-inform">
<head>Informative References</head>
<blist>
<bibl key="SOAP Part 0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://www.w3.org/TR/2003/REC-soap12-part0-20030624/" id="SOAP-PART0">W3C Proposed Recommendation "SOAP Version 1.2 Part 0:
Primer", Nilo Mitra, 24 June 2003</bibl>
<bibl key="SOAP Part 1" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://www.w3.org/TR/2003/REC-soap12-part1-20030624/" id="SOAP-PART1">W3C Proposed Recommendation
"SOAP Version 1.2 Part 1: Messaging
Framework", Martin Gudgin, Marc Hadley, Noah Mendelsohn, Jean-Jacques Moreau,
Henrik Frystyk Nielsen, 24 June 2003</bibl>
<bibl key="XMLP Comments" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://lists.w3.org/Archives/Public/xmlp-comments/" id="CommentArchive">XML Protocol Comments Archive</bibl>
<bibl key="XMLP Dist-App" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://lists.w3.org/Archives/Public/xml-dist-app/" id="DiscussionArchive">XML Protocol Discussion
Archive</bibl>
<bibl key="XMLP Charter" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://www.w3.org/2000/09/XML-Protocol-Charter" id="XMLPCharter">XML Protocol Charter</bibl>
<bibl key="RFC 2045" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://www.ietf.org/rfc/rfc2045.txt" id="RFC2045">IETF "RFC2045: Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message
Bodies", N. Freed, N. Borenstein, November 1996.</bibl>
<bibl key="RFC 2026" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" id="RFC2026" href="http://www.ietf.org/rfc/rfc2026.txt">IETF "RFC 2026:
The Internet Standards Process -- Revision 3", section
4.2.3, S. Bradner, October 1996.</bibl>
</blist>
</div2>
</div1>
</body>
<back>
<inform-div1 id="changelog">
<head>Change Log</head>
<table border="1">
<caption>Changes since candidate recommendation.</caption>
<thead>
<tr>
<th>Who</th>
<th>When</th>
<th>What</th>
</tr>
</thead>
<tbody>
<tr>
<td>DBO</td>
<td>20041208</td>
<td>Initial Revision</td>
</tr>
<tr>
<td>DBO</td>
<td>20060330</td>
<td>2nd Revision</td>
</tr>
</tbody>
</table>
</inform-div1>
</back>
</spec>
entitiesedcopy.dtd
(application/octet-stream, 704 B) - not displayed