Winter Quarter 1996
Document Author: Project Sponsors: Gregory AbowdIan Smith |
The Just Another Version of Anarchy Team:
Brice Wilson (Manager/Programmer) |
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.
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.
Figure 2: Object Representation of JAVA Interface
Classes Figure 3: Object Representation of Subclass
under Ian's IMAP classes
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.
3.0 Design Specification
4.0 Class Descriptions
Text_Window
Constructors
Methods
List_Window
Constructors
Methods
(int return values report status of completion in each method)
Login Window
Constructors
Methods
(int return values report status of completion in each method)
Desktop_Window
Constructors
Methods
(int return values report status of completion in each method)
Folder
Constructors
Methods
Virtual_Folder
Constructors
Methods
Physical_Folder
Constructors
Methods
Virtual_Mailbox
Constructors
Methods
5.0 User Interface
Link
to J.A.V.A. Project Notebook
Last Modified 2/9/96 -- Joel Furnsinn