Email binding, notes
David Hull <[email protected]> Tue, 29 Aug 2006 01:31:02 -0400
| Newsgroups | gmane.text.xml.distributed |
|---|---|
| Message-ID | <[email protected]> |
Attached please find a sketch of a binding of the one-way MEP to email,
taking the existing email binding note as a starting point. As one
would hope, the meat of it is in the mapping between properties and
email content (Table 2) and in the mapping of error conditions to SOAP
faults (which I've completely punted -- but then am I required to do
anything?).
Random notes taken along the way:
* The original refers to the RequestingSOAPNode and
RespondingSOAPNode roles. We don't define these.
* Hmm ... what if a given node gets the sent email twice? This is a
general issue. I don't think we specifically mention it in the
MEP spec yet.
* It looks like it might be better to have a single Message
property, instantiated at each node, rather than separate
InboundMessage and OutboundMessage properties, with only one or
the other instantiated at a given node. Most of Table 2 is
identical for sender and receiver. This is the only exception.
* The original binding treats SOAP nodes as being attached to email
interfaces. This seems good and right, and I follow it. But I
note that a given email interface need not have a SOAP node
attached to it, in which case a message sent will normally reach a
receiver, but not a SOAP node. For that matter, there could be
multiple SOAP nodes attached to a given email interface and
address (or to the same address at different interfaces, depending
on what we mean by an email interface). In such cases, a single
message sent to a single address will still reach multiple SOAP nodes.
* Goodness, those state tables took up a lot of room.
one-way-email.htm
(text/html, 13.4 KB)
<!DOCTYPE html PUBLIC "-W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>SOAP Version 1.2 Email One-way Binding</title> <meta content="Ñandú 0.6" name="GENERATOR"> <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> </head> <body> <div class="head"> <a href="http://www.w3.org/"><img alt="W3C" src="http://www.w3.org/Icons/w3c_home" height="48" width="72"></a> <h1>SOAP Version 1.2 Email One-way Binding</h1> <h2>W3C Note 26 June 2002</h2> <dl> <dt>This version:</dt> <dd><a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626">...</a></dd> <dt>Latest version:</dt> <dd><a href="http://www.w3.org/TR/soap12-email">...</a></dd> <dt>Authors:</dt> <dd><a href="mailto:[email protected]">David Hull</a>, TIBCO<br> </dd> </dl> <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice-20000612#Copyright">Copyright</a> © 2002 <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 title="Institut National de Recherche en Informatique et Automatique" lang="fr">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> <h2><a name="abstract" id="abstract">Abstract</a></h2> <p>This document is meant to supplement the <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626">existing SOAP email binding</a> to implement the SOAP one-way MEP. In practice, the material here unique to the one-way MEP binding would be incorporated into the existing document.<br> </p> <h2><a name="status" id="status">Status of this document</a></h2> <p>This document is a NOTE made available by the W3C for discussion only. Publication of this Note by W3C indicates no endorsement of its content by W3C, nor that W3C has, is, or will be allocating any resources to the issues addressed by the Note. This document is a work in progress and may be updated, replaced, or rendered obsolete by other documents at any time.</p> <p>This document is the result of the Transport Binding Task Force(TBTF), which is part of the XML Protocol WG.</p> <p>A list of current W3C technical documents can be found at the <a href="http://www.w3.org/TR/">Technical Reports page</a>.</p> <h2><a name="motivation" id="motication">Motivation</a></h2> <p>The motivation for this document is to illustrate the SOAP 1.2 Protocol Binding Framework and the creation of a protocol binding for the proposed SOAP one-way MEP. This binding is meant to validate the one-way MEP for completeness and usability. Please note that this document is a non-normative description of an Email Binding.</p> <p>It is not the responsibility of this SOAP binding to mandate a specific email infrastructure, therefore specific email infrastructure protocol commands (such as SMTP, POP3, etc) are not covered in this binding document. The underlying email infrastructure and the associated commands of specific email clients and servers along the message path are outside the scope of this email binding.</p> <h3><a name="nc" id="nc">Notational Conventions</a></h3> <p>The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALLNOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#KEYWORDS">[KEYWORDS]</a>.</p> <p>Namespace URIs of the general form "some-URI" represent some application-dependent or context-dependent URI as defined in RFC2396 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#URI">[URI]</a>. The namespace prefixes "SOAP-ENV" and "ds" used in this document are associated with the namespaces "http://schemas.xmlsoap.org/soap/envelope/" and "http://www.w3.org/2000/09/xmldsig#", respectively.</p> <div class="div1"> <h2><a name="toc" id="toc">Table of Contents</a></h2> 1 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NDAD">Introduction</a><br> 2<a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NE1F">Binding Name</a><br> 3 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NE33">Supported Message Exchange Patterns</a><br> 4 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NE69">Request-Response Exchanges</a><br> 4.1 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NEAB">Behaviour of Requesting SOAP Node</a><br> 4.1.1 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NED7">Init</a><br> 4.1.2 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NFDC">Sending</a><br> 4.1.3 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N131C">Sending + Receiving</a><br> 4.1.4 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N13DE">Success and Fail</a><br> 4.2 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N13E7">Behaviour of Responding SOAP Node</a><br> 4.2.1 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N1413">Init</a><br> 4.2.2 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N1550">Receiving</a><br> 4.2.3 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N15E3">Receiving + Sending</a><br> 4.2.4 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N1750">Success and Fail</a><br> 5 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N176C">Features Expressed External to the Message Envelope</a><br> 5.1 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#correlation"> Message Correlation Using msg-id</a><br> 6 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#N18F7">SOAP Email Examples</a><br> 7 <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#ref">References</a><br> </div> <div class="div2"> <h3><a name="NDAD" id="NDAD"></a>1 Introduction</h3> <p>This SOAP binding specification adheres to the SOAP Protocol Binding Framework (see <a href="http://www.w3.org/TR/2002/WD-soap12-part1-20020626/#transpbindframew"> SOAP Protocol Binding Framework</a>), and as such uses abstract properties as a descriptive tool for defining the functionality of certain features.</p> <p>Properties are named with XML qualified names (QNames). Property values are determined by the Schema type of the property, as defined in the specification which introduces the property. The following tables lists the standard prefix mappings which we assume to hold throughout this specification:</p> <table border="1"> <caption>Table 1: Standard prefix mappings</caption> <tbody> <tr> <th>Prefix</th> <th>Namespace</th> </tr> <tr> <td>context</td> <td> http://www.example.org/2001/12/soap/bindingFramework/ExchangeContext/</td> </tr> <tr> <td>mep</td> <td>http://www.example.org/2001/12/soap/mep/</td> </tr> <tr> <td>fail</td> <td>http://www.example.org/2001/12/soap/mep/FailureReasons/</td> </tr> <tr> <td>reqresp</td> <td>http://www.example.org/2001/12/soap/mep/request-response/</td> </tr> </tbody> </table> <p>Email applications MUST use the media type "application/soap+xml" according to <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#soap-media-type"> [soap-media-type]</a> when including SOAP 1.2 messages in Email exchanges. See <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#soap-media-type"> [soap-media-type]</a> for parameters defined by this media type and their recommended use.</p> </div> <div class="div2"> <h3><a name="NE1F" id="NE1F"></a>2 Binding Name</h3> <p>The binding described here is identified with the URI:</p> <ul> <li> <p>http://www.example.org/2002/02/soap/bindings/Email/one-way</p> </li> </ul> <p>This binding is provided as an example binding when using Email and the standard Internet Message Format described in rfc2822. Unlike HTTP, Email does not inherently provide a request/response Message Exchange Operation. An Email message meant to be a response to the original request will be sent back to the original sender. A means of correlating the original request to the resulting response will be descibed as a binding feature.</p> </div> <div class="div2"> <h3><a name="NE33" id="NE33"></a>3 Supported Message Exchange Patterns</h3> <p>An instance of a binding to Email<a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#RFC2822">[RFC2822]</a> conforming to this binding specification MUST support the following message exchange pattern:</p> <ul> <li> <p>http://www.example.org/2001/12/soap/mep/one-way/ </p> </li> </ul> </div> <div class="div2"> <h3><a name="NE69" id="NE69"></a>4 One-way Message Exchange Operation</h3> <div class="div3"> <p>The "http://www.w3.org/2002/06/soap/mep/one-way/" message pattern is described in ...</p> <p>For binding instances conforming to this specification:</p> <ul> <li> <p>A SOAP Node instantiated at an email protocol interface may take on the role (i.e. the property <span style="font-family: monospace;">one-way</span><code>:Role</code>) of <span style="font-family: monospace;">Sending</span><code>SOAPNode</code>.</p> </li> <li> <p>A SOAP Node instantiated at an email protocol interface may take on the role (ie. the property <span style="font-family: monospace;">one-way</span><code>:Role</code>) of <span style="font-family: monospace;">Receiving</span><code>SOAPNode</code>.</p> </li> </ul> <p>The remainder of this section consists of descriptions of the MEP properties, and their particular relation to RFC 2822. <br> </p> <div class="div4"> <div class="div5"> <h6>4.1 Mapping of MEP properties to email fields<br> </h6> In sending and receiving SOAP messages, the properties of the exchange context correspond to the content of an email message as follows:<br> <br> <table border="1"> <caption>Table 2: Email Fields</caption> <tbody> <tr> <td>Field Descriptions</td> <td><br> </td> </tr> <tr> <td>Originator and Destination Fields</td> <td>"From:" sender-uri CRLF<br> "To:" receiver-uri CRLF<br> "Message-ID:" correlation:requestMessageID CRLF<br> </td> </tr> <tr> <td>Sender URI</td> <td>The value of the URI carried in the <span style="font-family: monospace;">one-way</span><code>:ImmediateSender</code> property of the message exchange context.</td> </tr> <tr> <td>Receiver URI</td> <td>The value of the URI carried in the <span style="font-family: monospace;">one-way</span><code>:ImmediateDestination</code> property of the transport message exchange context.</td> </tr> <tr> <td>Correlation Request Message ID</td> <td>The Request email msg-id value is automatically generated at the requesting node's email interface. The correlation feature <code>correlation:requestMessageID</code> is described in Section 5.1.</td> </tr> <tr> <td>Content-Type (MIME) header</td> <td>"application/soap+xml" (see <a href="http://www.w3.org/TR/2002/NOTE-soap12-email-20020626#NDAD"><b>Introduction</b></a>)</td> </tr> <tr> <td>Email message body</td> <td>XML 1.0 serialisation of the SOAP message XML Infoset carried in the <code>one-way:OutboundMessage </code>property (or <code>one-way:InboundMessage</code> property, for a receiving node) of the transport message exchange context.</td> </tr> </tbody> </table> </div> <div class="div5"> <h6><a name="NFDC" id="NFDC"></a></h6> </div> <h5><a name="NEAB" id="NEAB"></a>4.2 Behaviour of Sending SOAP Node</h5> <p>The overall flow of the behaviour of a Requesting SOAP Node follows the description contained in <a href="http://www.w3.org/TR/2002/WD-soap12-part2-20020626/#singlereqrespmep"><b>...</b></a> In each instance of the MEP, the sending node formulates an email message from the properties of the exchange context according to table 2 above.<br> </p> <h6><a name="NED7" id="NED7"></a></h6> </div> <div class="div4"> <h5><a name="N13E7" id="N13E7"></a>4.3 Behaviour of Receiving SOAP Nodes</h5> <p>In each instance of the one-way MEP, each receiving SOAP node whose email interface receives the message sent populates the properties of the exchange context from the content of the email message as described in table 2 above. As per the normal rules of email, there may be zero or more receivers for any particular message.</p> <div class="div5"> <h6><a name="N1413" id="N1413"></a></h6> </div> </div> </div> </div> <div class="div2"> <h3><a name="N176C" id="N176C">5. Features Expressed External to the Message Envelope</a></h3> <span style="font-style: italic;">This section is identical to the original</span><br> <div class="div3"><br> </div> <h3><a name="N18F7" id="N18F7">6. SOAP Email Examples</a></h3> <span style="text-decoration: underline; font-style: italic;">TBD</span><a href="http://www.w3.org/TR/2002/WD-soap12-part0-20020626/#SMTP"></a> <h3><a name="ref" id="ref">7. References</a></h3> <dl> <dt><a name="KEYWORDS" id="KEYWORDS"><span style="font-style: italic;">This section is identical to the original, except for references to the MEP in question<br> </span></a></dt> </dl> </div> </body> </html>