A WWW Collaboration System
Keiron Skillett, BEng Project 2000

 

Discussion

4.1 Successes

The majority of this project has been a success, the messaging, contacts and meeting systems
work very well (apart from a few bugs mentioned in section 4.2). Several screenshots from the finished system are shown below.
 

Figure 4.1 - Login Screen

Figure 4.2 - Messages Screen

The multi-threading works well and several users can use the system at any time (although several functions in the system require two threads).
The working functions of the system are:
 

  • LOGIN SCREEN (Figure 4.1)
    Users can login to the system if they have a valid username and password already stored in the database (the username is not case sensitive but the password is). If the username/password combination is valid then all screens are updated with the current users data, else the user is informed that the username is unknown or that password is invalid and offered the opportunity to try again.
     

  • INFORMATION SCREEN
    This screen can be called from anywhere within the system to display any information that the user may require. Several of its uses include displaying errors, informing user of number of messages sent or confirmation messages.
     

  • MAIN SCREEN
    The main screen provides access to all other areas of the system (even those not implemented yet) and allows users to see at a glance if they have any messages waiting for them.
     

  • MESSAGES SCREEN (Figure 4.2)
    The messages screen checks for all messages address to the current user and prints them in the list box on screen. The “Update” button allows for checking for messages frequently and messages can be deleted quickly and easily with the “Delete” button. From this screen the message sending screen can be accessed.
     

  • MESSAGE SEND SCREEN
    The message send screen allows any username to be input to send a message to and the system will check it exists before attempting to send (if the requested user does not exist then the user is informed). If the user enters “GROUP” as the recipient, the message will be sent to all members of the group to which the current user belongs (group messages cannot be sent to other groups - this prevents misuse of the system).

    If a personal message is sent then confirmation is shown on the screen of the username which it has been sent to, if the message has been sent to a group then the number of recipients is shown on screen.
     

  • CONTACTS SCREEN
    The contacts screen allows for users to enter new contacts either to remain in the personal or to provide a copy of for all members of the group. Users are free to create, copy, and delete contacts as necessary.
     

  • ACONTACT SCREEN
    When being used to create a new contact this screen opens with blank datafields for user entry. When being used to view a contact it opens with the contacts data already in the fields. If the “Save” button is clicked then the old data is not replaced, a new contact is made.
     

  • MEETINGS SCREEN
    The meetings screen allows for users to enter new meetings either to remain in the personal or to provide a copy of for all members of the group. Users are free to create, copy, and delete meetings as necessary.  
     

  • AMEETING SCREEN
    When being used to create a new meeting this screen opens with blank datafields for user entry. When being used to view a meeting it opens with the meetings data already in the fields. If the “Save” button is clicked then the old data is not replaced, a new meeting is made. 

4.2 Problems Encountered

One major problem encountered was that the Microsoft Java Virtual Machine does not have any support for Remote Method Invocation and “RMI.ZIP” needs downloading from the Microsoft Website and placing in the classpath on the machine, to allow for the running of this system.

The system is not secure6, it leaves itself ‘wide open’ for attacks from a variety of angles. It would be very easy to setup a fake server on the correct port, and mimic the correct protocol therefore constantly retrieving information from the users. Also all communication between the client applet and the server is in plain text, this means that any machine this information passes through on the Internet between client and server could quite easily read the information contained in the data packets.

The File system has not been implemented at all, as this would require complete configuration of a complete Web Server for users home directories and group directories, this has not been practical to set up at the current time.

If any two items in a list box have the same name then when one is deleted, both are deleted, e.g. if two contacts have the same name and one is selected for deletion, then the system deletes both items. This is caused by the way listboxes work; only being able to store text (and not a separately invisible ID field).

If the user is viewing contacts or meetings and “Save” is clicked instead of “Exit” then a second item is added to the database, if the name wasn’t edited, when the user tries to delete one copy both will be deleted.

When making calendar bookings in the meeting screen, no conflict checking is done to check whether the user is already occupied at that time. If the system stored the date and time as date/time value (instead of being broken down into day, month and year) then this might be possible. Several of the test users suggested this would be a very useful feature.

The system does not allow users to be members of more than one group (unless they have two usernames). This could be corrected by storing an array of groups for each user.
 

4.3 Further Extensions

The current version of this system is very basic, it is designed more for functionality and speed rather than being interesting to look at. A more Graphical User Interface would make the system easier to use for the novice user, this could include graphical buttons and hints being displayed on screen or a help system.

This system has been designed for Java 1.1, with Java 2 just around the corner and the hope that it will include the new Java Secure Socket Extension6 (JSSE 1.0) which provides an implementation of Secure Socket Layer (SSL) version 3.0 and Transport Layer Security version 1.0, the security of a system could be greatly improved. If this system were to be set up on the Internet permanently then a lot more time would have to be spent on security issues.

System testing highlighted several features that would enhance the system, including:

  • A system for editing contacts or meetings.
  • The ability to be able to delete just one message instead of all messages addressed to the user. This proved difficult in the same way that two contacts or meetings are deleted if they have the same name because Listboxes in Java only store the information displayed, they do not store an ID number of any type.
  • To be able to check who is logged into the system. This would be difficult because each user may only be using the system for a matter of seconds.
  • An easier front end for the administrator than working in Access, possibly form design or another Java applet for remote administration?
  • Server to produce a log file (as well as logging all access to screen), possibly just for errors.
  • A user settings area, for changing password, personal details etc.