Upas—a simpler approach to network mail

David L. Presotto, William Cheswick · W. B. Saunders Company eBooks · 1990

Upas* is a mail interface that routes messages between existing network specific mailers, users, and user mailboxes. It uses a regular expression based mini-language to convert mail addresses into the commands needed to route the mail to the intended destination. Upas is the mail interface for the Eighth Edition of the Unix† Time-Sharing System. Introduction Our entry in the ‘mail race’ sprang from events similar to those motivating the development of many mail systems. For many years a short and simple mailer was used to deliver local mail and to route mail via our home grown networks. Although its user interface left a little to be desired, its reliability was so high that great trust was put into it. However, as we gained access to more and more networks, particularly ones over which we had no control, the situation quickly deteriorated. Each of these networks had their own mail ‘standards’ and addressing conventions. With some trepidation, we absorbed these standards into our mailer. Its simplicity was quickly lost along with its fabled reliability. Realizing our danger, we decided to step back and see if there was a way to get back to a simple, well understood, and thereby reliable mail system. The job to be performed by a network mail system is illustrated by figure 1. A mail system is essentially a large switch for handling the routing and delivery of messages. As a router it must be conversant in the various network protocols, be able to decipher destination addresses, and pass messages along to the next network. Sometimes it actually gets to deliver a piece of mail to a mailbox. Also, since there is no common mail format, the mail system must convert messages from one format to another as it routes them from network to network. Because of the number of networks and mail formats, this can easily lead to thousands of lines of code. Our task was to decide how to partition the task in order to create a manageable yet efficient mail system. Some Observations The task of interfacing to a particular network is often a messy and arbitrary thing. Fortunately, most entities (corporations, governments, committees) that design network protocols also provide code (i.e. mail programs) that understand these protocols. In our experience, it has always been easier to interface one of these mailers to our mail system than to incorporate the new protocols into our existing mailer. Also, code provided by someone else is supported by someone else. As network protocols change it is easier to pick up the new version of the network mailer than to rewrite our mailer. Although there are many networks, there are far fewer message formats. It is clear that a message needs a destination address and possibly even a reply address. However, the imposition of further structure on the message is at best distasteful, at worst obstructive. Imagine what postal delivery would be like if the __________________ * upas,1 u pas, n. (in full u pas-tree ), a fabulous Javanese tree that poisoned everything for miles around; Javanese tree (Antiaris toxicara, of the mulberry family): the poison of its latex. [Malay, poison.] † Unix is a trademark of AT&T Bell Laboratories

Read the paper · More papers on PaperTik