J.A.V.A. Mail Reader Design Document

Winter Quarter 1996
2/9/96

Document Author:

Joel Furnsinn

Project Sponsors:

Gregory Abowd
Ian Smith

The Just Another Version of Anarchy Team:

Brice Wilson (Manager/Programmer)
Jay Bredenberg (Architect)
Aaron Sims (Manager/Architect)
John Stevens (Programmer)
Joel Furnsinn(Technical Writer)


Contents

1.0 Project Description
2.0 High-Level Architecture
3.0 Design Specification
4.0 Class Descriptions
5.0 User Interface

1.0 Project Description

The idea behind this project is to build a mail reader that will function independently of the platform it is being used on. Ideally, the only thing that the user will need to run this mail reader is a browser capable of using Java applets. The user should be able to go to any computer available to him and, given a Java capable browser, read his mail.

This mail reader should also allow the user to organize his mail in an orderly way. We propose to allow the user to be able to sort his mail into multiple folders, and allow him to move his mail between the folders as he wishes.

In addition, because many files that are sent over the network are not simply text files, we propose to include a way to handle files in the MIME Internet standard format. Although what the extent of this support will be has not yet been determined, some mechanism for the handling of these files will be available.

Finally, we wish to try and make this mail reader original. We want to distinguish it from the readers already out there and try to create an original format for it. Although this may not be possible, after all there's only so much you can do with mail, we will certainly try to create something original.

This mail reader will be built on an existing toolkit called JavaIMAP which implements the Interactive Mail Access Protocol (IMAP) version 4. JavaIMAP will provide the direct interface to the mail server, so we will not have to worry about this aspect of the project.


2.0 High-Level Architecture

Figure 1: High Level Architecture of JAVA Mail Application

The JAVA applet is a means for users to gain access to their mailboxes from any location where they have access to the World Wide Web and Netscape 2.0 or other Java Beta capable browser. The benefit of using the IMAP architecture is that it allows you to read mail messages without downloading them to the local client. Therefore when a user switches between machines to check their mail, they don't have to worry about whether a certain message they need to read/reread is on that particular machine.

The users of the JAVA mail reader only need two things: Netscape 2 (Java capable browser) and the desktop metaphor JAVA mail applet. Whenever the user makes a request for the mail message information, the JAVA mail applet accesses Ian Smith's IMAP classes which actually produces requests for the IMAP server. The request travels through the NIC (Network Interface Card) to the network. When a response is received, the data is passed back to the JAVA mail interface throughthe IMAP classes. The data is then displayed to the user via the JAVA interface classes.

But what happens from the server's view? There are two type of requests to the server that we are concerned with: IMAP, and HTTP protocol requests. The HTTP requests that we are going to take advantage of are those that request the JAVA binary executable be sent to the client. When these are received, the server will send the executable to the Netscape client via the HTTP protocol. The IMAP requests that come in are handled by the IMAP daemon. When they are recognized, the IMAP daemon goes to the file system to retrieve the requested information. The server then returns the message information to the client. The server then waits for another request from any IMAP client.


3.0 Design Specification

Figure 2: Object Representation of JAVA Interface Classes




Figure 3: Object Representation of Subclass under Ian's IMAP classes


4.0 Class Descriptions

Text_Window

List_Window

Login Window

Desktop_Window

Folder

Virtual_Folder

Physical_Folder

Virtual_Mailbox


5.0 User Interface

The User interface for the JAVA email reader is to resemble a desktop metaphor where the user can have multiple folders, and messages open all at the same time. The interface is going to be made to resemble the Macintosh OS more than any other type of Desktop. Prototypes for all of the windows except for the desktop have been prototyped under Unix in a GUI designer called XForms. The final interface will not look exactly the same because the widgets have a different appearance than the AWT widgets.

Figure 4: Prototype representation of login window that comes up immediately when application is loaded.




Figure 5: Prototype representation of List_Window object - that lists all the messages available in the chosen mailbox.




Figure 6: Prototype representation of the message window that is shown when a specific window is selected.





Link to J.A.V.A. Project Notebook
Last Modified 2/9/96 -- Joel Furnsinn