Project Documentation:-: Online Chat Server
Project Documentation:-: Online Chat Server
Project Documentation:-: Online Chat Server
-: Project Documentation :-
CONTENTS
1. PROBLEM STATEMENT
2. SOFTWARE REQUIREMENTS
3. HARDWARE REQUIREMENTS
4. EXPLANATION OF MODULES
5. PROGRAMMING
6. CONSTRAINTS
7. FUTURE ASPECTS
8. BIBLIOGRAPHY
4
PROBLEM
STATEMENT
Quick messenger is a simulation of the instant messenger which we
have established within a LAN. Instant messaging represents a
medium via which messaging partners can interact in a synchronous
fashion. Correspondence can occur in a near "instant" manner. With
quick messenger we are providing an easy to use and a rich graphical
user interface.
There is a central server handling all communications to and from clients. Each user can
run the client program and connect to server to start chatting. All clients and server will
have list of online users. List is updated as soon as the status of some client changes.
There is one main chat room in which all messages can be seen by all clients.
The user can send instant messages to other clients that are online at
that instant using the
“send” option.
Users can also choose to chat in private with any one on the list.
Multiple chat rooms have not been implemented but provisions are provided in code for
easy deployment.
To end the session the user has to exit the network by using the
“disconnect” option.
SOFTWARE
REQUIREMENTS
Sun Microsystems provides two principal software products in the Java 2 Platform
TM
The JRE provides the libraries, Java virtual machine, and other components necessary for
you to run applets and applications written in the Java programming language. This
runtime environment can be redistributed with applications to make them free-standing.
The JDK includes the JRE plus command-line development tools such as compilers and
debuggers that are necessary or useful for developing applets and applications.
The Java virtual machine is an abstract computing machine that has an instruction set and
manipulates memory at run time. The Java virtual machine is ported to different
platforms to provide hardware- and operating system-independence.
Base Libraries
Classes and interfaces that provide basic features and fundamental functionality
for the Java platform.
Provides the fundamental Object and Class classes, wrapper classes for
primitive types, a basic math class, and more.
I/O
I/O functionality provides for system input and output through data streams,
serialization and the file system. In 1.4, a new I/O (NIO) API was introduced that
provides new features and improved performance.
Networking
The JDBC API provides universal data access from the Java programming
TM
language. Using the JDBC 3.0 API, you developers can write applications that
7
can access virtually any data source, from relational databases to spreadsheets and
flat files. JDBC technology also provides a common base on which tools and
alternate interfaces can be built..
Image I/O
The Java Image I/O API provides a pluggable architecture for working with
images stored in files and accessed across the network. The API provides
provides a framework for the addition of format-specific plugins. Plug-ins for
several common formats are included with Java Image I/O, but third parties can
use this API to create their own plugins to handle special formats.
AWT
The Java platform's Abstract Windowing Toolkit (AWT) provides APIs for
TM
constructing user interface components such as menus, buttons, text fields, dialog
boxes, checkboxes, and for handling user input through those components. In
addition, AWT allows for rendering of simple shapes such as ovals and polygons
and enables developers to control the user-interface layout and fonts used by their
applications..
Swing
The Swing APIs also provide graphical component (GUI) for use in user
interfaces. The Swing APIs are written in the Java programming language without
any reliance on code that is specific to the GUI facilities provided by underlying
operating system. This allows the Swing GUI components to have a "pluggable"
look-and-feel that can be switched while an application is running.
Tool Specifications:
Debugger Architecture
VM Tool Interface
8
The Java Virtual Machine Tool Interface (JVM TI) is a specification for
inspecting the state and controlling the execution of applications running in the
JVM. The Java Virtual Machine Profiler Interface (JVMPI) has been deprecated..
Javadoc Tool
Javadoc is a tool that parses the declarations and documentation comments source
files to produce a set of HTML pages describing the program elements. The
Doclet API provides a mechanism for clients to inspect the source-level structure
of programs and libraries, including javadoc comments embedded in the source.
This API can be used by doclets to generate documentation.
Documentation for the tools and utilities included in the JDK. Covers basic tools
(javac, java, javadoc, apt, appletviewer, jar, jdb, javah, javap, extcheck), security
tools, internationalization tools, RMI tools, IDL and RMI-IIOP tools, deployment
tools, Java Plug-in tools, and Java Web Start tools, monitoring and management
tools, and troubleshooting tools.
Platforms
Sun provides implementations of the JDK and Java Runtime Environment for
Microsoft Windows, Linux, and the Solaris operating systems.
HARDWARE REQUIREMENTS
PROCESSOR: Intel Pentium2 onwards, Asus, Apple
RAM: 128MB onwards
Local Area Network should
Explanation Module :-
9
1. CHAT SERVER:
The interface has been developed in Swing. Interface has been kept separate from
the network processes. The main components of the server interface are as follows
4. Main Menu: The options available for the server. The options
include configure server, shutdown server
2. CHAT CLIENT:
The interface has been developed in Swing. Interface has been kept separate from
the network processes. The main components of the client interface are as follows
Explanation Of Programming
Protocols
Self designed protocols have been defined to enable communications between server and
clients. Protocols have primarily been defined as classed which have required parameters.
The objects of these classes are then exchanged
11
Message Protocol
This defines how messages are to be handled between users and server.
The user can send public and private message. For private message it is
important to know the recipient and the sender of the message.
Fields
• Audience – public or private message
• RoomNumber – Currently of no use. In future can be used for
multiple rooms
• RecieverId – Id of the recipient. Useful only for private messages
• SenderId – Id of sender. Useful only for private messages
• Message – Text that the user wants to send
Fields
• ClientId – Identification number of client within the server.
• ClientName – The login name provided by the user.
Fields
• SenderId – The clientId of the client machine that initiated the
request.
• RecieverId – The clientId of the client machine that is to be
notified.
Fields
• Request Type – Indicates if the user has to be added or removed
• ClientName – The name of the client that the information is about
12
Fields
• Request Type -- Indicates if the user has to be added or removed
• Room Number – RoomId of the room that the user wants to join
Fields
• RoomNumber – Indicates which room the user has been kicked
out of
CONSTRAINTS
1. This application can be implemented only on a LAN and not on
the INTERNET.
13
4. The user can send messages only to the friends who are offline.
FUTURE ASPECTS
FUTURE ENHANCEMENTS:
BIBLIOGRAPHY