W3C home > Mailing lists > Public > xml-dist-app@w3.org > July 2001

Re: TBTF: SOAP over SMTP Binding Proposal - HTML

From: Hugo Haas <hugo@w3.org>
Date: Thu, 19 Jul 2001 14:42:38 -0400
To: "XML Distributed Applications List (E-mail)" <xml-dist-app@w3.org>
Message-ID: <20010719144237.E16547@jibboom.w3.org>
Thanks Highland Mary.

Here are a few comments (note that figure 1 is still missing, so I
did without it).

* Mountain, Highland M <highland.m.mountain@intel.com> [2001-07-19 09:03-0700]
[..]
>1         SMTP Binding Proposal
>
>1.1.1            Related Documents
>
>   
>   The Simple Mail Transport Protocol (SMTP) is specified through a
>   series of RFC documents.  Readers of this Transport Binding proposal
>   should refer primarily to the following documents:
[..]

RFC821[18] is the specification of the protocol itself. SMTP transfers
mail data, which is described in RFC822[12]:

>[12]RFC822 STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
[..]
>1.1.2            SOAP SMTP Requests
>
>   (Sending an Email Message)
>   
>1.1.2.1         Addressing and Dates
>
>   All email header addresses MUST be RFC 822 compliant email addresses.
>   
>   The date header field MUST be RFC 822 compliant date.

I think that this is the discussion we just had on the telcon: how
much of other specifications should there be in the definition of a
binding.

Saying that the serialization uses RFC822 should be enough IMHO.

[..]
>1.1.3.1         Alternatives
>
>   
>   SOAP Node Processing Distinct from SMTP Delivery Status
>   
>   Email Delivery Status is separate from SOAP layer message processing.
>   Resulting SOAP responses to the contained SOAP data will be processed
>   through a new email message with no link to the original requesting
>   email at the SMTP level.
>   
>   
>   SOAP Node Processing Bound to SMTP Delivery Status 
>   
>   Email Delivery Status is tied and bound to SOAP message-processing
>   request and the MUA's processing of MDN's is held until the SOAP node
>   completes processing of the SOAP envelope received.  The resulting MDN
>   will carry information of the success or failure of the SOAP request.
>   
>   
>   Questions for discussion:
>   
>   Shall the MUA be tied to the SOAP node regarding MDN processing?

There is a similarity here with the 200 OK status code of HTTP. When
and on what evidence can the underlying protocol say "ok"?

I think that it really depends on what the MUA wants to report.
"dispatched" is "ok, I have forwarded that to the SOAP layer". The
"processed" status needs a tighter interaction indeed, with the SOAP
layer reporting back to the binding that it's done.

I was having a look at the abstract model[19] and I am still
struggling to see how, in the case of a one-way message, the binding
can be notified of the end of the processing. I will have to get back
to that.

>   Shall we use MDN's to notify sender of successful processing of SOAP
>   data, or shall we have a distinct break between email delivery success
>   and failure and SOAP message processing success and failure?
[..]

In my (layered) view, these are two separate things:

"dispatched" means that the SOAP layer has been handed the message.
"processed" that the SOAP layer did something about it.

Do you intend to make this reporting mandatory? I originally had in mind
a very simple SMTP binding which was:
- stick the message in an RFC822-compliant format.
- identify the endpoint with mailto: URI.
- send a one-way message.

[..]
>2.1.1            Notes to SOAP Application Developers
>
>   
>   Application developers can use the Internet email infrastructure to
>   move data as either email text or attachments.  It is the application
>   developer's responsibility to parse through the email contents and
>   pass it to the appropriate software module for processing, potentially
>   creating a proprietary data exchange format.  If the data cargo is
>   passed as an attachment, verifications have to be made to ensure that
>   the attachment is of the correct type.  There is also the complication
>   of partial email messages.  These occur when an email message is
>   larger than an email infrastructure allows.  The original message is
>   split up and numbered for reassembly.  There is no guarantee that the
>   partial email messages will be delivered in the proper order.  This
>   creates the need to place the partial messages back in the correct
>   order and then piece them all together once they arrive.  Delays in
>   email delivery will further complicate development, creating the need
>   for predefined timeout periods.

Am I wrong when I read that as: "The SOAP stuff could be anywhere in
the message"?

As Chris did in his HTTP binding[20], the message body should be the
SOAP message, specified through the Content-Type as defined by
RFC2045:

        Content-Type: application/soap+xml
	        (or whatever is chosen)

It could also be specified that other encapsulation mechanisms could
be used (e.g. a mime/multipart package).

>   While SMTP is not a guaranteed delivery protocol, Delivery
>   Notification mechanisms exist, but also are not guaranteed.  Email
>   users have grown accustom to requesting Delivery Receipts and Read
>   Receipts for the email messages they send.  The underlying protocol
>   mechanisms are called Delivery Status Notifications (DSN's) and
>   Message Disposition Notifications (MDN's).  These notifications take
>   the form of email messages sent to the email address specified in the
>   mail header.  Applications, as well as email end users, can use these
>   mechanisms to provide a status of an email transmission.  The
>   application developer must fully understand the capabilities and
>   limitations of these Delivery Notifications or risk assuming a data
>   delivery when none occurred.
>   
>   Delivery Status Notifications (DSN's) acknowledge the delivery of an
>   email message to a destination mailbox on a mail server or MTA.  DSN's
>   are provided through Extended SMTP servers, which have been partially
>   deployed throughout the industry at the date of this writing.  Due to
>   the partial deployment of ESMTP, a DSN request may be inconclusive if
>   a non-ESMTP server is found along the email delivery path.  DSN's only
>   notify the sender that the email message has been delivered to the
>   appropriate mailbox, not that the intended recipient (or application)
>   has opened the message and processed it.  ESMTP servers are mandated
>   by the protocol to honor DSN requests.

I think that this discussion of DSN should be left out, telling people
that they can augment the SMTP binding for (more) reliable delivery by
using extensions such as DSN.

>   Message Disposition Notifications (MDN's) acknowledge to the sender
>   that the intended recipient has received and opened a particular email
>   message.  SMTP, being first and foremost an email protocol, protects
>   an end user's right to privacy by allowing a mailbox user, at the MUA,
>   to ignore requests for read/processed return receipts.   Put in common
>   language, a user not wanting others to know when he has opened an
>   email message, can elect to ignore such request.  Application
>   developers need to understand this potential disregard of MDN requests
>   while developing SMTP data transmissions.  Decisions will have to be
>   made to handle a no MDN response situation, because it could mean that
>   MDN replies have been disabled, or it could mean that the email system
>   did not complete the delivery to the end destination.

Again, I think that MDN should be an unspecified extension.

One think that should be mentioned is that RFC822 does provide message
correlation out of the box.

Section 4.6.1 defines the Message-Id header field, and section 4.6.2
defines its counterpart, the In-Reply-To header field. It also
provides some sort of "conversational correlation" (i.e. references to
several related messages) with the References header field.

  12. http://www.ietf.org/rfc/rfc0822.txt?number=822
  13. http://www.ietf.org/rfc/rfc2045.txt?number=2045
  14. http://www.ietf.org/rfc/rfc2046.txt?number=2046
  15. http://www.ietf.org/rfc/rfc1894.txt?number=1894
  16. http://www.ietf.org/rfc/rfc2852.txt?number=2852
  17. http://www.ietf.org/rfc/rfc2298.txt?number=2298
  18. http://www.ietf.org/rfc/rfc0821.txt
  19. http://www.w3.org/TR/xmlp-am/#Sec5.1.3
  20. http://lists.w3.org/Archives/Public/xml-dist-app/2001Jul/att-0161/01-xmlp-soap-1_2-sect6.html
-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/ - tel:+1-617-452-2092
Received on Thursday, 19 July 2001 14:42:38 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:59:02 GMT