100 likes | 290 Views
Reinventing Email using REST. Anything addressable by a URI is called a resource GET, PUT, POST, DELETE WebDAV (MOVE, LOCK). Resources as collections?. Sending a Message Directly.
E N D
Anything addressable by a URI is called a resource • GET, PUT, POST, DELETE • WebDAV (MOVE, LOCK)
Sending a Message Directly • An outgoing message has two parts. One is the actual content to be sent. It may be any kind of resource. The second is a notification that the content is available.
Delegate Delivery • Once the recipient mailbox receives the notification, it would then turn around and do a GET on the message content to retrieve it. • Adding a Queuing Mailbox
When a notification message is POSTed to the outgoing mailbox, it is given a unique URI and this is returned to the mail user agent. • The user agent may use this URI to allow the user to check on the progress of the message later.
Progress information is part of the metadata managed by the outgoing mailbox. • There is no way to request status updates for messages in the current mail system, but this falls naturally out of the REST design because a GET (or perhaps even a HEAD) request on the URI would naturally return useful metadata about the message and progress information is useful metadata.
Summary of REST Benefits • Re-use of standard server side tools like Apache, Squid, standard web resource search and management tools. • Compatibility with generic web client-side tools like browsers. Every web browser becomes a mailbox browser "for free". Web site management tools become mailbox management tools. • Integration of email namespace with Web namespace means that Web documents may refer to mail messages/mailboxes and vice versa. • Integration of email namespace with Web namespace would allow individuals to have one identifying URI per "persona" rather than a home page URI and a mailto: URI. This could be achieved today if mail programs could extract the appropriate metadata from a home page, but this kind of extraction is a core concept of REST: "hypermedia is the engine of application state." • Features of HTTP protocol become available to mail programs "for free" (e.g. security, caching, reliability extensions, etc.) • Implementing a mail user agent requires knowledge not of three protocols but of one: HTTP.