Académique Documents
Professionnel Documents
Culture Documents
Messenger
INDEX
1. Introduction
2. System Analysis
a. Existing System
b. proposed System
3. Feasibility Report
a. Technical Feasibility
b. Operational Feasibility
c. Economical Feasibility
a. Overview
b. Modules Description
c. Process Flow
d. SDLC Methodology
e. Software Requirements
f. Hardware Requirements
5. System Design
a. DFD
Multithreading Interactive User
Messenger
b. E-R diagram
c. UML
d. Data Dictionary
6. Technology Description
7. Coding
9. Output Screens
10. Reports
12. Bibliography
Multithreading Interactive User
Messenger
INTRODUCTION
Multithreading Interactive User
Messenger
everyday life in the 21st Century. It is in has evolved into a new medium of
communication and developing itself into a register with identifiable elements and
enable the clients to chat with many other clients. This project is to simulate the
multicast chatting. In the case of multicasting when a message is sent, only a single
message is sent to the router. Which means that the client will send the message
only once and based on the location of the clients, the router will either pass the
message to another router or if the clients are in the same local network the router
will send a copy of the message to each client in that network. So this way we are
In this project the client will send a message to the server (which acts
as a router), and then the server will send this message to each of the users
connected to server. In this project there will be only 1 server. So instead of the
client sending a copy of the message to each of the users of that group, it will be
forwarded to the server, which will then take care of propagating the message to
other clients.
Multithreading Interactive User
Messenger
Introduction – Synopsis
The project has been developed in java. The client should first authenticate
itself as a valid user to the server. Once the server validates the user, server will
add it as a member so that this new client can send and receive messages to and
from other clients. The user is also updated with the users lists that are connected
to the server currently. Once connected to the server the client will receive all the
Client1
Msg1
Msg1
Client Server Msg1 Client2
Msg1
Client3
Multithreading Interactive User
Messenger
The user should also be able to send private messages to the selected clients.
At any time the client can leave the server and the server will delete this user from
The basic interaction between the client and the server would be:
Server
Users
List
Connectio
n
Managem
ent
Message
Transmissi
on
Client
Multithreading Interactive User
Messenger
The above specified interactions is being implemented using java tools
and the particular instance where the Server sends the message to all other users
The aim of this project will be to create an application that will try to
work as a multicast server. Since there is only 1 server being used here, so the
actual effect of multicasting will not be directly seen. But the main aim here is to
reduce the traffic in the network by having a server which will actually propagate
the messages in the network instead of the client trying to send the message to
SYSTEM ANALYSIS
Multithreading Interactive User
Messenger
Problem Statement
interact with computers on the same local area network (LAN), within a corporate
resources, users, and other objects accessible from the applications needs to be
organized in a clear and consistent manner. Much of this information can be shared
different networks and applications has grown, the number of specialized directories
of information has also grown resulting in islands of information that are difficult to
Existing System
The existing system the user or the community member uses the legacy system of
carrying interoffice messages by the messengers from one member to other
members of the community .
Multithreading Interactive User
Messenger
The existing system has got the following disadvantages:
Communication delays.
Proposed System:
A user-friendly interface
Multithreading Interactive User
Messenger
FEASIBILITY REPORT
Multithreading Interactive User
Messenger
In this system we are going to develop a facility to a user that he will not
face any difficulty at the time of usage like data missing, one way
technique of speed controlling the frame relay will not be a problem for
Feasibility Study
analysis and Design Process. The study begins by classifying the problem
problem definition has been generated, the analyst develops a logical model
Operational Feasibility:
Project.
Technical feasibility
• Does the proposed equipment have the technical capacity for using the new
system?
platform
• The observer pattern along with factory pattern will update the results
eventually
• The language used in the development is JAVA 1.5 & Windows Environment
Multithreading Interactive User
Messenger
The system developed and installed will be good benefit to the organization.
The system will be developed and operated in the existing hardware and
Modules Description:
Server Module:
This module initializes the server and listens for the clients. Multiple
clients interact with each other through the server. An administrator is started who
acts as a moderator and monitors all the client processes. The following sub
User Management:
Connection Management:
This will provide an interface for online data sharing between multiple
clients. The clients logon to the server and start broadcasting of messages to the
other clients logged in. This interface facilitates the clients to broadcast the
message (transmitted to all the clients logged in simultaneously), which can be text
or initiate a private transmission channel with a specific client. All the clients
Connection Management:
The client should be able to enter into the chart room already available
or he should be able to create a chat room of his choice. Once a client creates a
chat room he becomes the moderator for that chart room. He can invite other
clients to enter his chart room; restrict client from enter into his chart room; or
chat room should view data online. The client will also be enabled to send instant
SDLC METHDOLOGIES
Multithreading Interactive User
Messenger
SDLC METHDOLOGIES
This document play a vital role in the development of life cycle (SDLC) as
developers and will be the basic during testing phase. Any changes made
approval process.
SPIRAL MODEL was defined by Barry Boehm in his 1988 article, “A spiral
the first model to discuss iterative development, but it was the first model
long. Each phase starts with a design goal and ends with a client
reviewing the progress thus far. Analysis and engineering efforts are
applied at each phase of the project, with an eye toward the end goal of
the project.
Multithreading Interactive User
Messenger
product.
• At the customer option, the entire project can be aborted if the risk
final product.
Multithreading Interactive User
Messenger
above.
• The preceding steps are iterated until the customer is satisfied that
ADVANTAGES:
Multithreading Interactive User
Messenger
• Software engineers can get their hands in and start woring on the
SOFTWARE REQUIREMENT
Software Requirements:
Software Requirements :
HARDWARE REQUIREMENT
Hardware Requirements:
• System Configuration
Multithreading Interactive User
Messenger
Pentium III Processor with 700 MHz Clock Speed
SYSTEM DESIGN
Multithreading Interactive User
Messenger
PROCESS FLOW
A graphical tool used to describe and analyze the moment of data through a
delays in the system. Data Flow Diagrams are the central tool and the basis
DFDs are the model of the proposed system. They clearly should show the
requirements on which the new system should be built. Later during design
activity this is taken as the basis for drawing the system’s structure charts.
destination.
System.
Multithreading Interactive User
Messenger
Server
Multithreaded
TCP Network Server
Client
Level -1 Diagram
Client
Multithreading Interactive User
Messenger
Level-2 Diagram
Client1
Client2
Client3
Client4
Multithreading Interactive User
Messenger
UML Diagrams
A UML system is represented using five different views that describe the
perspective.
UML Analysis modeling, this focuses on the user model and structural
Use case Diagrams represent the functionality of the system from a user’s
point of view. Use cases are used during requirements elicitation and
analysis to represent the functionality of the system. Use cases focus on the
Actors are external entities that interact with the system. Examples of actors
include users like administrator, bank customer …etc., or another system like
central database.
Multithreading Interactive User
Messenger
Class Diagram:
Start Server
Admin
Admin Client:
Multithreading Interactive User
Messenger
View Log
Clear Chat
Server
Send Message tO all
Clear Log
AdminClient
View
ServerClient
Receive Message
Exit
Multithreading Interactive User
Messenger
Sequence Diagrams
Client:
Connect()
userList()
Transmission()
Clear()
ClearList()
Multithreading Interactive User
Messenger
Collaboration:
Client:
1: Connect() 2: userList()
Client Connection UserList
Management
5: ClearList()
3: Transmission()
4: Clear()
Messagetrans
mission
Clear Clear
Chat List
Multithreading Interactive User
Messenger
Activity Diagram:
NormalUser:
StartClient
Connected to server
Admin:
Start Client
Deployment Diagram:
Multithreading Interactive User
Messenger
Start Server
Send Message
Chat
Chat
Chat
Component Diagram:
Multithreading Interactive User
Messenger
Server
Client1
Client2
Client.........n
Multithreading Interactive User
Messenger
TECHNOLOGY DESCRIPTION
Multithreading Interactive User
Messenger
About Java:
Initially the language was called as “oak” but it was renamed as “Java” in
1995. The primary motivation of this language was the need for a platform-
programming.
Swings:
Swing, which is an extension library to the AWT, includes new and improved
components that enhance the look and functionality of GUIs. Swing can be used to
build Standalone swing Gui Apps as well as Servlets and Applets. It employs a
model/view design architecture. Swing is more portable and more flexible than
AWT.
Multithreading Interactive User
Messenger
Swing is built on top of AWT and is entirely written in Java, using AWT’s lightweight
component support. In particular, unlike AWT, t he architecture of Swing
components makes it easy to customize both their appearance and behavior.
Components from AWT and Swing can be mixed, allowing you to add Swing support
to existing AWT-based programs. For example, swing components such as JSlider,
JButton and JCheckbox could be used in the same program with standard AWT
labels, textfields and scrollbars. You could subclass the existing Swing UI, model, or
change listener classes without having to reinvent the entire implementation. Swing
also has the ability to replace these objects on-the-fly.
• Three parts
Component set (subclasses of JComponent)
Support classes
Interfaces
The class JComponent, descended directly from Container, is the root class for most
of Swing’s user interface components.
Multithreading Interactive User
Messenger
Swing contains components that you’ll use to build a GUI. I am listing you some of
the commonly used Swing components. To learn and understand these swing
programs, AWT Programming knowledge is not required.
system of that computer. It is more or less like one creating using C or C++.
dynamically downloaded across the network, just like an image. But the
difference is, it is an intelligent program, not just a media file. It can react to
FEATURES OF JAVA:
Security
Every time you that you download a “normal” program, you are risking a
viral infection. Prior to Java, most users did not download executable
programs frequently, and those who did scanned them for viruses prior to
execution. Most users still worried about the possibility of infecting their
exists that must be guarded against. This type of program can gather
Portability
needed .As you will see, the same mechanism that helps ensure security also helps
create portability. Indeed, Java’s solution to these two problems is both elegant and
efficient.
output of Java compiler is Byte code. Byte code is a highly optimized set of
instructions designed to execute by the Java run-time system, which is called the
Java Virtual Machine (JVM). That is, in its standard form, the JVM is an interpreter
Translating a Java program into byte code helps makes it much easier to run a
program in a wide variety of environments. The reason is, Once the run-time
package exists for a given system, any Java program can run on it.
about Java that prevents on-the-fly compilation of byte code into native
code. Sun has just completed its Just In Time (JIT) compiler for byte code.
When the JIT compiler is a part of JVM, it compiles byte code into executable
compile an entire Java program into executable code all at once, because
Java performs various run-time checks that can be done only at run time.
Beyond the language, there is the Java virtual machine. The Java virtual
loading process, a class loader is invoked and does byte code verification
makes sure that the code that’s has been generated by the compiler will not
corrupt the machine that it’s loaded on. Byte code verification takes place at
the end of the compilation process to make sure that is all accurate and
of Java code.
Javac
JavaSourc Java byte code Java
e Virtu
al
.Java .Class
programming uses to produce byte codes and executes them. The first box
indicates that the Java source code is located in a. Java file that is processed
with a Java compiler called JAVA. The Java compiler produces a file called a.
class file, which contains the byte code. The class file is then loaded across
environment is the Java virtual machine, which interprets and executes the
byte code.
Multithreading Interactive User
Messenger
Java Architecture
for development. Java provides portability by compiling the byte codes for
the Java Virtual Machine, which is then interpreted on each platform by the
Compilation of Code
When you compile the code, the Java compiler creates machine code (called
byte code) for a hypothetical machine called Java Virtual Machine (JVM). The
JVM is supposed to execute the byte code. The JVM is created for
overcoming the issue of portability. The code is written and compiled for one
machine and interpreted on all machines. This machine is called Java Virtual
Machine.
During run-time the Java interpreter tricks the byte code file into thinking
running system and all could receive code from any computer through
SIMPLE
Multithreading Interactive User
Messenger
Java was designed to be easy for the Professional programmer to learn and to use
effectively. If you are an experienced C++ programmer, learning Java will be even
easier. Because Java inherits the C/C++ syntax and many of the object oriented
features of C++. Most of the confusing concepts from C++ are either left out of
Object-Oriented
Java was not designed to be source-code compatible with any other language. This
allowed the Java team the freedom to design with a blank slate. One outcome of
this was a clean usable, pragmatic approach to objects. The object model in Java is
simple and easy to extend, while simple types, such as integers, are kept as high-
performance non-objects.
Robust
program, because the program must execute reliably in a variety of systems. The
ability to create robust programs was given a high priority in the design of Java.
Java is strictly typed language; it checks your code at compile time and run time.
which is completely automatic. In a well-written Java program, all run time errors
What is networking?
Multithreading Interactive User
Messenger
Computers running on the Internet communicate to each other using either the
Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP), as this
diagram illustrates:
When you write Java programs that communicate over the network, you are
programming at the application layer. Typically, you don't need to concern yourself
with the TCP and UDP layers. Instead, you can use the classes in the java.net
However, to decide which Java classes your programs should use, you do need to
TCP
establish a connection and send data back and forth over that
dial her phone number and she answers. You send data back and forth over
the connection by speaking to one another over the phone lines. Like the
Multithreading Interactive User
Messenger
phone company, TCP guarantees that data sent from one end of the
connection actually gets to the other end and in the same order it was sent.
Protocol (FTP), and Telnet are all examples of applications that require a
reliable communication channel. The order in which the data is sent and
When HTTP is used to read from a URL, the data must be received in the
order in which it was sent. Otherwise, you end up with a jumbled HTML file,
UDP
The UDP protocol provides for communication that is not guaranteed between two
applications on the network. UDP is not connection-based like TCP. Rather, it sends
Sending datagrams is much like sending a letter through the postal service: The
order of delivery is not important and is not guaranteed, and each message is
the transfer of information from one end of the connection to the other.
In fact, they may be slowed down by the extra overhead or the reliable
Consider, for example, a clock server that sends the current time to its client
when requested to do so. If the client misses a packet, it doesn't really make
sense to resend it because the time will be incorrect when the client receives
it on the second try. If the client makes two requests and receives packets
from the server out of order, it doesn't really matter because the client can
figure out that the packets are out of order and make another request. The
channel is the ping command. The purpose of the ping command is to test
the communication between two programs over the network. In fact, ping
good or bad the connection is. A reliable channel would invalidate this
service altogether.
another. Sending datagrams is much like sending a letter through the mail
service: The order of delivery is not important and is not guaranteed, and
Note: Many firewalls and routers have been configured not to allow UDP packets.
are having trouble connecting to your service, ask your system administrator if UDP
is permitted.
Understanding Ports
Generally speaking, a computer has a single physical connection to the network. All
data destined for a particular computer arrives through that connection. However,
the data may be intended for different applications running on the computer. So
how does the computer know to which application to forward the data? Through the
use of ports.
information that identifies the computer and the port for which it is destined.
data to the right computer on the network. Ports are identified by a 16-bit
number, which TCP and UDP use to deliver the data to the right application.
a socket to a specific port number. This has the effect of registering the
server with the system to receive all data destined for that port. A client can
then rendezvous with the server at the server's port, as illustrated here:
Definition: The TCP and UDP protocols use ports to map incoming data to a
contains the port number of its destination and UDP routes the packet to the
numbers. The port numbers ranging from 0 - 1023 are restricted; they are reserved
for use by well-known services such as HTTP and FTP and other system services.
These ports are called well-known ports. Your applications should not attempt to
bind to them.
Through the classes in java.net, Java programs can use TCP or UDP to
communicate over the Internet. The URL, URL Connection, Socket, and Server
Socket classes all use TCP to communicate over the network. The Datagram
Packet, Datagram Socket, and Multicast Socket classes are for use with UDP.
What Is a URL?
If you've been surfing the Web, you have undoubtedly heard the term URL
and have used URLs to access HTML pages from the Web.
It's often easiest, although not entirely accurate, to think of a URL as the
name of a file on the World Wide Web because most URLs refer to a file on
some machine on the network. However, remember that URLs also can point
output.
Definition: URL is an acronym for Uniform Resource Locator and is a reference (an
The following is an example of a URL which addresses the Java Web site
• Protocol identifier
• Resource name
Note that the protocol identifier and the resource name are separated by a
colon and two forward slashes. The protocol identifier indicates the name of
the protocol to be used to fetch the resource. The example uses the
access different types of resources on the net. Other protocols include File
The resource name is the complete address to the resource. The format of
the resource name depends entirely on the protocol used, but for many
protocols, including HTTP, the resource name contains one or more of the
For many protocols, the host name and the filename are required, while the
port number and reference are optional. For example, the resource name for
an HTTP URL must specify a server on the network (Host Name) and the
path to the document on that machine (Filename); it also can specify a port
number and a reference. In the URL for the Java Web site java.sun.com is the
host name and the trailing slash is shorthand for the file named /index.html.
System Calls
system call returns a small integer value similar to a file descriptor Name.
When a socket is created it does not have nay notion of endpoint address. An
application calls bind to specify the local; endpoint address in a socket. For TCP/IP
protocols, the endpoint address uses the socket address in structure. Servers use
bind to specify the well-known port at which they will await connections.
remote server. An argument to connect allows the client to specify the remote
endpoint, which include the remote machines IP address and protocols port
number. Once a connection has been made, a client can transfer data across it.
Accept creates a new socket for each new connection request and returns the
descriptor of the new socket to its caller. The server uses the new socket only for
the new connections it uses the original socket to accept additional connection
requests once it has accepted connection, the server can transfer data on the new
socket.
Return Value:
description
Listen - place the socket in passive mode and set the number of incoming TCP
connections the system will en-queue. Backlog - specifies how many connections
requests can be queued by the system while it wants for the server to execute the
accept system call it us usually executed after both the socket and bind system
These system calls are similar to the standard read and write system calls, but
CODING
Multithreading Interactive User
Messenger
Socket Server:
package chat.socket;
import chat.*;
import java.io.*;
import java.net.*;
application port
// Status of logon
Socket client;
while (true)
client = ss.accept();
addClient(skel);
skel.start();
// SocketSkeletion thread
ChatClient
receiveSocket = client;
int methodID;
try
broadcastUser(userid);
while(true)
methodID = inInput.readInt();
switch(methodID)
Multithreading Interactive User
Messenger
case INVOKE_BROADCAST:
handleBroadcast();
break;
case INVOKE_GET_HISTORY:
handleGetHistory();
break;
case INVOKE_GET_USER:
handleGetUser();
break;
case INVOKE_DISCONNECT:
handleDisconnectUser();
break;
/*if (methodID<0)
handleDisconnectUser();
}*/
broadcastMessage(message);
addMessageToLog(message);
ChatMessage message;
java.util.Date msgDate;
String msgText;
inOutput.writeInt(count);
{
Multithreading Interactive User
Messenger
message = (ChatMessage)
(messageHistory.elementAt(i));
msgDate = message.messageDate;
msgText = message.messageText;
inOutput.writeLong( msgDate.getTime());
inOutput.writeUTF(msgText);
String user;
inOutput.writeInt(count);
user = (String)
(userServerList.elementAt(i));
inOutput.writeUTF(user);
Multithreading Interactive User
Messenger
IOException
removeClient(this);
broadcastRemovedUser(user);
server!");
//destroy();
LogonFailedException
{
Multithreading Interactive User
Messenger
InputStream is;
OutputStream os;
InetAddress addr;
is = receiveSocket.getInputStream();
os = receiveSocket.getOutputStream();
addr = receiveSocket.getInetAddress();
if (isValidUserInfo(userid, password))
inOutput.writeInt(LOGON_SUCCESSFUL);
os = sendSocket.getOutputStream();
else
inOutput.writeInt(LOGON_FAILED);
userid / password");
return userid;
throws IOException
outOutput.writeInt(SENT_MSG);
Multithreading Interactive User
Messenger
outOutput.writeLong(timeValue);
outOutput.writeUTF(msgText);
// Overwrite methods
outOutput.writeInt(SENT_USER);
outOutput.writeUTF(id);
outOutput.writeInt(REMOVE_USER);
outOutput.writeUTF(id);
outOutput.writeInt(CLEAR_USER);
}
Multithreading Interactive User
Messenger
}
Multithreading Interactive User
Messenger
TESTING
Multithreading Interactive User
Messenger
Testing Concepts
• Testing
• Testing Methodologies
• Levels of Testing
Unit Testing.
Module Testing.
Integration Testing.
System Testing.
• Types Of Testing
Smoke Testing.
Multithreading Interactive User
Messenger
Sanitary Testing.
Regression Testing.
Re-Testing.
Static Testing.
Dynamic Testing.
Alpha-Testing.
Beta-Testing.
Monkey Testing.
Compatibility Testing.
Installation Testing.
Adhoc Testing.
Ext….
• STLC
Test Planning.
Test Development.
Test Execution.
Result Analysis.
Bug-Tracing.
Reporting.
• Manual Testing
Win Runner.
Test Director.
Testing:
satisfaction.
• Testing can demonstrate the presence of bugs, but not their absence
Testing Methodologies:
knowledge.
Levels of Testing:
Multithreading Interactive User
Messenger
Test Planning:
3. Objective of testing,
Used….
Test Development:
Of application.
application
Types Of Testing:
> Smoke Testing: is the process of initial testing in which tester looks for
initially to check for the proper behavior of an application that is to check all
them.
Multithreading Interactive User
Messenger
tested before, is once again tested whenever some new change is added in
functionality which is already tested before to make sure that the defects are
reproducible and to rule out the environments issues if at all any defects are
there.
Adhoc Testing: Adhoc Testing is the process of testing in which unlike the
formal testing where in test case document is used, with out that test case
future which are not covered in that test case document. Also it is intended
• Test Scenario
• Test Procedure
• Test case
This is the sample test case document for the Case Investigate details of
Client project:
Test scope:
Test Scenario:
• When the office personals use this screen for the data entry, adding
Test Procedure:
• The procedure for testing this screen is planned in such a way that the
Negative testing using the corresponding GUI test cases, Positive test
Test Cases:
• Look for Default values if at all any (date & Time, if at all any require)
Multithreading Interactive User
Messenger
value
contain
all the
features
way
Multithreading Interactive User
Messenger
are justified.
are justified.
value
Multithreading Interactive User
Messenger
Password
value
username and
password
2
Multithreading Interactive User
Messenger
SCREENS
Multithreading Interactive User
Messenger
Client-1:
Client Homepage:
Multithreading Interactive User
Messenger
Multithreading Interactive User
Messenger
Multithreading Interactive User
Messenger
Multithreading Interactive User
Messenger
Multithreading Interactive User
Messenger
Multithreading Interactive User
Messenger
FUTURE ENHANCEMENTS
Multithreading Interactive User
Messenger
the user. User requirements keep changing as the system is being used.
Some of the future enhancements that can be done to this system are:
be easily adaptable.
emerging technologies.
Multithreading Interactive User
Messenger
BIBLIOGRAPHY
REFERENCES
Multithreading Interactive User
Messenger
http://www.answers.com
(8) http://it.toolbLox.com/wiki/index.php/Warehouse_Management