EEL5718 Spring 2002 Project

 

 

 

IMPLEMENTATION OF AN INSTANT MESSAGING SERVICE IN JAVA

 

  

Bharath Balaji Kannan

Suman Srinivasan

 

 

 

 

Instructor: Dr. Haniph. A. Latchman

Associate Professor,

Electrical and Computer Engineering,

University of Florida.

 

 

1. Introduction

The Internet has changed the way we communicate. E-Mail has virtually replaced ordinary letters; e-greetings have supplanted normal snail-mail greetings, and so on. Even the telephone is now under threat, from a new ‘killer application’ on the web that has caught on, especially since 1999. This system is called Instant Messaging.

 

Instant Messaging is a service that has burst into popularity recently, but has existed for some time. Popular Instant Messaging systems are AOL Instant Messenger (AIM), ICQ, MSN Windows Messenger and Yahoo Messenger.

 

Basically, what an instant messaging system allows people to do is to maintain a list of other people whom they wish to interact with, called a contact list. When a person on the contact list comes online, the Instant Messenger will inform the user, and the user can choose to initiate a messaging session with the other user if he so desires.

 

Most Instant Messengers today provide the following features:

 

Figure 1: An IM session (in Yahoo Messenger)

 

 

2. How an instant messaging system works

An Instant Messaging System works as described below:

  1. A user loads the instant messaging application (on the client side).
  2. The user logs on using a unique ID, and password. This ID will be used to identify the user on the Instant Messaging system.
  3. This information is transmitted to the server. The server authenticates the user’s ID and password, and then connects to the server.
  4. The user is now online.
  5. When the user wants to initiate a chat session with another user, she double-clicks on the name, and types out a message.
  6. The message is passed on to the server, which then sends it to the correct recipient.
  7. The recipient gets the message, and can send back a reply.

 

The process is shown graphically below:

 

 

 

3. Project

In our project, we plan to implement an instant messaging system in Java. We will program the client and server and code it to include industry-standard features.

 

3.1 Server functions

The server will be a stand-alone Java application that will perform the following functions:

  1. Authenticate user with log in and ID.
  2. Maintain a database of users currently online.
  3. Receive and forward messages between users.
  4. Handle ‘chat’ sessions, where there could be many users participating in the chat.

 

 

3.2 Client functions

The client could be either an applet (that could run in a browser) or an application (that can run stand-alone and would be more flexible) that would perform the following operations:

  1. Provide a GUI for all functions.
  2. Connect the user to the server.
  3. Allow the user to communicate with other users.
  4. Allow the users to come together in a ‘chat’ session.

 

The project will initially focus on simple text messaging. The following additional features will be implemented in the long run:

 

4. Work Assignment

 

Bharath Balaji

Suman Srinivasan

 

Study of Instant Messaging Systems, their design and standards

 

Modeling the system, defining the protocols

 

Coding the server end of the system

 

Coding the client end of the system

 

5. References