Re: IM2000 Won't Be Worth It
James Craig Burley <[email protected]> 9 Mar 2004 17:00:48 -0000
| Newsgroups | gmane.mail.im2000 |
|---|---|
| Message-ID | <[email protected]> |
>Ian Lance Taylor <[email protected]> wrote: >> I think the main argument is eliminating bounce messages and >> simplifying mailing lists. > >The no-subscription model of mailing lists is certainly interesting. >But what does it achieve that cannot be achieved via NNTP today? Isn't NNTP a push protocol, requiring its subscribers to, essentially, pay for maintaining incoming messages somehow? Also, NNTP is a store-and-forward protocol, correct? (Been so long since I used it....) So its advantages, and disadvantages, associated with it being able to deliver large chunks of disparate messages across a network that is up for only limited periods of time (e.g. via UUCP), are lost with IM2000. Whereas, IM2000 offers a clean way to implement one model of message submission to the list and its resulting distribution: one in which the *submitter* keeps the message on his outgoing message store, and merely *notifications* are distributed among list members. This will teach people who submit 63K messages that nobody wants to read to lists to not do that, and make people who receive such messages be a bit less annoyed. ;-/ >Also, how do "subscribers" know when there is new mail to be fetched? There are at least three fundamentally different models of list handling I can think of that IM2000 cleanly supports: - Simple exploder, in which contents and notifications get replicated by the exploder bot. This is most like ordinary SMTP-based mailing lists. The exploder must bear the costs for storing such email for as long as anyone might want to read it. Since many exploders are tied in to providing web-based archive access to such messages anyway, that's often just fine with the list maintainer. - Notification exploder, in which notifications get replicated by the exploder bot, but message contents remain with the sender. This is closest to IM2000's vanilla "pull"-style delivery. The person submitting a message to the list must bear the costs for storing the email. This reduces the need for the exploder to deploy aggressive anti-UBM measures, as long as the notifications faithfully record the original envelope and transmission information as received by the exploder from the submitter. - Non-exploder, in which notifications as well as contents must be "pulled", i.e. polled, by recipients. This is kinda like using the news:// (NNTP) protocol, or reading mailing-list discussions by polling their archives. For high-volume lists, all the list maintainer need do is keep track of submissions of notifications, serve up notifications as requested by recipients polling for them, and (therefore) keep track of the "known-notifications" status for each of its subscribers. Though IM2000 doesn't seem naturally architected for this arrangement, it kinda is, in the sense that each such list provides a recipient notificiation agent for each of its subscribers, just as anyone with an ordinary in-box has some recipient notification agent that their MUA queries to learn about new incoming messages. So, MUAs must be distinctly aware of such lists, because they cannot rely on querying just one recipient notification agent to learn about all incoming mail. They'll have to be told of all the agents to query, all the lists to which the recipient is subscribed. The SMTP, or really push, "equivalent" of this would be for lists to push messages not directly to recipient mailboxes as with today's architecture, but into per-recipient mailboxes (a la POP3 or IMAP) that are local to the list systems' themselves. MUAs operating in this environment would also have to know to retrieve emails from those mailboxes, as well as the ordinary one local to the recipient's system. And lists set up this way wouldn't have to deal with the expense of large outgoing mail submissions to SMTP servers; just with pull-style requests for messages already in out-boxes (which would really just be notifications plus links to a single copy of each message). Note that, since a non-exploder list can offer an outgoing message store for submitters to use, the system described by JdBP, in which list messages and their notifications are not "exploded", yet the message contents are stored locally to the list manager a la the "simple exploder" case above, is fairly cleanly supported by IM2000. Either the submitter of a message can directly submit to such a store (his MUA knows about it), or a submission coming from another such store can be handled by the manager taking responsibility for the message and moving it to the local store. In essence, with lists that are "cleanly" managed via IM2000, even though the list manager doesn't have to "push" messages -- it doesn't have to maintain message-based lists of to whom each message has or hasn't been delivered -- it does have to maintain subscriber-based lists of to whom each *notification* has or hasn't been delivered. If a list manager doesn't want to manage anything other than accepting submissions, then IM2000 makes that fairly easy, by basically always notifying anybody who polls about every single message, or leaving it up to each subscriber to provide some indicator of what messages they already know about, which recipient MUAs would have to deal with, by keeping state information on each list. (I can't tell from JdBP's page, offhand, how such information is managed across the boundary between MUAs and recipient notification agents. Note that the issue of notifications is orthagonal to whether the manager wants to maintain an outgoing message store along with the list itself.) However, that's basically the same thing as having a list consist of accepting messages and putting up a web page for each one, leaving it up to recipients and their browsers to decide which messages have already been read. So it's not really IM2000-specific so much as specific to whether messages and/or notifications are pushed and/or pulled (polled), and to whom has responsibility for keeping track of what a given user has already been told about and/or read. >Currently, if I am on a mailing list I know about new messages >essentially immediately. It's not very efficient to have every >"subscriber" contacting the message store every 5 seconds to see if >there is new mail! No, but for lists that would be polled by most subscribers only once every few days or so, it can be *very* efficient compared to on-demand push-style delivery a la SMTP. >> Bounce messages are bad because they are widely mishandled today, and >> there is no realistic prospect for improvement. Today there is no >> good way to know whether somebody received an e-mail message, short of >> telephoning them. IM2000 raises the possibility of solving that >> problem (you still won't know whether the message was read, but you >> will know that it was received). > >What does it achieve that Return-Receipt-To does not already achieve, >or that could not be achieved by a simple protocol to allow MUAs to >inspect their SMTP smarthost's outgoing mail queue? Is it actually >useful to know that a message has been received but not necessarily >read? All SMTP-style DSNs (that I know of) are heavyweight reactions to lightweight actions, so they are simply *wrong*. To the second part of that first question, I say, basically, "nothing": IM2000 isn't the only protocol that can (or would) require a transition to sender-side tracking, since shims connecting SMTP to IM2000 would end up requiring that for people still submitting messages via SMTP. To your second question, I'll say "sometimes", because, for many messages, people just want to know that the mail agent (usually, an MUA, like mutt or a PDA or whatever) closest to the recipient has received the message. And there's simply little or no point, IMO, to trying to go the "extra mile" and automatically confirm whether someone has actually *read* the message, because that gets into issues such as whether the message has appeared on the MUA/PDA screen vs. whether the person read some of it vs. whether the person read all of it vs. whether the person really understand it vs. whether the person has therefore agreed to certain assumptions implicit in it. (Consider a message that says "If you read this and don't respond, I'll assume you agree to a 5% pay cut". There is *no way* it would be semantically useful for the sender of that message to know whether the recipient has read it, because the sender is making an unreasonable request of the recipient; the recipient is entirely within his rights to *read* and *understand* the message, yet choose to not comply, and how he expressed noncompliance can include not responding, which is *not* the same as agreeing to a 5% pay cut, regardless of what the sender presumed. So any system that promises "will tell you whether recipient has read the message" is a dangerous one IMO, because it makes false promises surrounding the semantic confusion over the meaning of the word "read".) -- James Craig Burley Software Craftsperson <http://www.jcb-sc.com>