E-Parcel
E-parcel is a program for sending e-mail-like messages with big
attachments.
User Interface
Alice wishes to send a 700MB MPEG file to Bob. Here's how it works:
- Alice launches e-parcel, attaches the file, fills in Bob's
regular e-mail address, and clicks send.
That's it - same as plain old e-mail.
- Bob's receives a regular e-mail with an explanation of e-parcel
and a tiny attachement. When Bob's open the attachment, e-parcel asks
him whether he accepts delivery of Alice's 700MB video (and a warning
not to accept delivery if Bob does not have enough disk space). Bob
accepts delivery. (If Bob declined delivery, Alice would be notified by
e-mail, and no attachment is delivered.)
- After the transmission is complete, Bob receives a second
notification e-mail with a link to a file on the disk of Bob's own
machine. When Bob clicks the link, the video starts playing.
Internals
Easy enough? Well, but how would you implement this?
- Alice and Bob have a continuously running e-parcel daemon. They
can interface with the daemon through another program, called e-parcel,
that they can launch as a regular user application.
- Alice launches e-parcels to send a video to Bob. E-parcels copies
the file for future delivery and, meanwhile, sends an email to Bob with
an e-parcel attachment (in XML) containing a request for delivery.
- When Bob opens the attachment in Alice's e-mail, the e-parcel
program is invoked, reads the attachment, and prompts Bob.
- If Bob accepts delivery, the e-parcel daemons at Alice and Bob
contact each other directly, exchange key to authenticate, authorize,
and encrypt the file transmission.
- The deamons transfer the files over scp and store it on the
e-parcel folder in Bob's drive. When the file transfer completes, Bob
is notified by regular e-mail.
Vincenzo Liberatore
/ vincenzo.liberatore@case.edu