Client Server Chatting

download Client Server Chatting

of 66

Transcript of Client Server Chatting

  • 7/24/2019 Client Server Chatting

    1/66

  • 7/24/2019 Client Server Chatting

    2/66

    INTRODUCTION

    PURPOSE OF THE PROJECT

    This Project Entitled as MULTI-CHATROOM is used basically for chatting

    purpose with the remote clients or users on Internet or local networks. Here in

    this project a jaa client ! serer combination is used to chat with remote users.

    "hen a #lient wants to chat with a user on a remote host$ he sends a re%uest to

    the &erer with a identification name like chat'id$ the serer responds to the

    re%uest by identifying the client'id which is already registered in the serer

    domain and when matched his re%uest is granted and the client can begin to chat

    with the remote users present on the internet or local network.

    The power of Internet is such that it integrates together ()*s located across

    dierse software and hardware forms into a single large communication network that

    spans the globe. The client needs to hae a client software such as *etscape

    *aigator or Internet E+plorer to retriee information as well as chat on the

    www. """ is referred to as *etsurfing. )nd it supports chatting$ te+t$ ideo and

    audio.

    The benefit of using ,MULTI-CHATROOM- oer other chatting tools is

    that$ with the help of jaa$ the programmer can create applet applications which can

    be use the internet as a serer. )pplets are machine independent and so jaa programs

    can run on any computer on the internet.

    The term client!serer is used in the conte+t of networking$ what it actually

    means.

    It is important to understand the terms client!serer because the ,MULTI-

    CHATROOM- project is supported completely by client!serer model. ) serer is

    anything that has some resource that can be shared. There are compute serers$ which

    proide computing power$ web serers$ which store web pages. ) client is simply any

  • 7/24/2019 Client Server Chatting

    3/66

    other entity that wants to gain access to a particular serer. The interaction between

    clientserer is like an interaction between an electrical socket and a lamp. The serer

    is a permanently aailable resource while client is free to ,unplug- after it has been

    sered.

    The program's premier feature is its whiteboard drawing utility. You can draw

    freehand, do circles, squares, lines, text, or paste image files to the canvas. This is

    ideal when users want to "sketch" concepts for one another. sers can interact

    publicly with everyone else on the server, or they can chat!draw privately using ava

    #hat's "whisper mode". sers can create and manage chat rooms, which can be

    either "public" or "private". The server will also store and manage answering

    machine$style messages for users who aren't online, and instant messages can be

    sent to those who are. %dditionally, users who aren't watching their screens can be

    paged with sound.

    PROBLEMS EXISTING IN SYSTEM

    Hae u eer thought that we can chat with people residing )t far of places i.e.$

    remote chatting around the world now we can do this$ thats what technology is all

    about and u will be surprised that u can chat with people all oer the globe just sitting

    at your P#$ sounds interesting yes/$ just at the click of a button u can communicate

    and share information between different users who are present on their terminals at

    the time you logged in. )ll this can be done through a program called #H)T and the

    project MULTI-CHATROOM is all about chatting.

    The program is called #hat$ when you are #hatting$ eerything you type will instantly

    be transmitted around the world to other users that might be watching their terminals

    at the time. They can then type something and respond to your messages$ and ice

    ersa. #hatting is based on a client'serer model. #lients are programs that connect to

    a serer0 a serer is a program that transports data$ 1messages2$ from a user client to

    another. There are clients running on many different systems that allow you to

    connect to a #hat serer. Currently most of the current Chat applications are text

    based and few are capable of transferring tiny images, but there lacks a Chat system

    for the technical people who can chat as well as they can represent their ideas in the

  • 7/24/2019 Client Server Chatting

    4/66

    form of drawing the pictures online.Many vendors distribute even these technologies

    separately but to obtain these features at one system will be the haunting task.

    So what should we do and how should we solve the problem that even the technical

    people are benefited by this chatting technology.

    Through current chatting technologies we are able to send only text

    Based messages to people and tiny images, but this type of chatting is not helping the

    technical people to work efficiently when the uestion of sending big pictures like say

    business plans to the customers that is the business clients to approve of the plan or

    the client pro!ect, imagine big business plans and deals getting approved through

    chatting and large business pro!ects started, how beneficial it will be to the technical

    people as well the client on the other side. "et#s see how to solve this problem.

    SOLUTION TO THE PROBLEM

    To solve the inconveniences as mentioned above, an $MULTI-

    CHATROOM% is proposed. The proposed system#s premier feature is its

    whiteboarddrawing utility. &ou can draw freehand, do circles, suares, lines, text, or

    paste image files to the canvas. This is ideal when users want to 'sketch' concepts

    for one another. This feature of $MULTI-CHATROOM% can be a boon for the

    technical people who want to share their ideas or concepts in the pictorial form. This

    system includes the facilities of traditional chat servers and clients like providing a

    window for each (ther user, )hisper chat, multiple chat rooms etc. )ith the help of

    the *)+T- B(/0# drawing utility now the technical people can carry out their

    tasks easily and can share their big picture plans regarding their business to the

    clients, exchange ideas and concepts and many more things, basically exchange as

    well as share the information along with the using the drawing utility even long

    conversations can be made between two users which may be important business

    meetings or deals to be sanctioned and all this is carried out with the support of

    applets with the help of image based web menu images can be transferred.

  • 7/24/2019 Client Server Chatting

    5/66

    Scope of the project

    """ is called the "orld "ide "eb. """ supports many kinds of te+t$

    pictures$ ideo and audio. """ resources through a web browser which basically a

    program that runs on the internet.

    There are two kinds of browsers 32 te+t only browsers and 42 graphical

    browsers. 5raphical browsers like *etscape *aigator and Internet E+plorer are

    popular. These browsers proide you Inline images$ fonts 6 document layouts. "hen

    you access a """ serer$ the document is transferred to your computer and then the

    connection is terminated.

    The "orld "ide "eb is a network of information$ accessible ia an easy'to'

    use interface. The information is often presented in hyperte+t or multimedia and

    proided by serers located around the world. The usability of the "eb depends

    largely on the performance of these serers.

    This application is a 7aa client!serer combination$ which can be used to chat oer

    the Internet or local networks

    "ith these features and with the adent of """$ "eb browsers and with

    ,MULTI-CHATROOM-$ Internet has become the media of applications.

    "e can use ,MULTI-CHATROOM- for following actiities8

    To e+change information and conerse with friends and family.

    To participate in group discussions through public news bulletin board.

    9or Entertainment.

    (eisure actiities.

    )ccess business while at home.

    )t any gien point of time$ up'to'date information is proided.

    HARARE AN! SOFARE SPECIFICATION

  • 7/24/2019 Client Server Chatting

    6/66

    The proposed system should hae the following features8'

    The #hat &erer and #lients Interface should be as simple as possible so that

    they can be configured een by a na:e user.

    &erer should maintain a list of #lients and list of the clients who are currently

    on line.

    &erer should be able to create facility for one to one communication and

    multiple user communication at once.

    ) user can able to sae the chatting information if he feels conersation is

    important.

    SOFTARE " HAR!ARE RE#UIREMENTS FOR CLIENT "

    SER$ER

    OPERATING SYSTEM "I*;

    FRONT EN! 7)D)

    SER$ER SI!E SCRIPTING 7)D) >IPT

    CLIENT SI!E SCRIPTING 7)D) >IPT

    CONNECTION PROTOCOL T#P ! IP

    PROCESSOR PENTIUM IV

    CLOCK SPEED 2 GHZ

    SYSTEM BUS 32 BIT

    RAM 512 MB

    HDD 40GB

    MONITOR SVGA COLOR

    KEY BOARD 108 KEYS

    MODEM 56 KBPS

    MOUSE PS/2

    FDD 1.44 MB

    PROJECT ANALYSIS

    %& STU!Y OF THE SYSTEM

  • 7/24/2019 Client Server Chatting

    7/66

    This application can be mainly diided into two modules8

    3. &erer

    4. #lient

    This project ,MULTI-CHATROOM- is mainly depended on client!serer

    model. The client re%uests the serer and serer responses by granting the clients

    re%uest.

    The proposed system should proide both of the aboe features along with the

    followed ones8

    SER$ER' The serer should be able to perform the following features8

    The first and foremost problem is to find the serer. "e should identify the

    program in the serer which processes the clients re%uest.

    )dministrator #lient who will be acting as a super user.

    #reating of priate room with the password facility to enable priate chats with

    the users online. The serer is always waiting for clients re%uests .The clients

    come and go down but the serer remains the same.

    CLIENT' The client should be able to perform the following features8

    &hould be able to send message to anybody in the room with clients uni%ue chat

    name created in the serer for chatting purpose.

    Should be provided with the drawing tools like free hand, rectangle, oval, line and

    also sending text message over the room.

    In all the network applications$ we find two sort program where the first i.e.$

    serer sends the information and the second i.e.$ client receies the information.

    (& INPUT AN! OUTPUT'

    The user has to proide to which serer it has to connect. In this$ the serer

    name to be proided is local host.

  • 7/24/2019 Client Server Chatting

    8/66

    The user has to proide the username and the password for proceeding with the

    serer for chatting purpose.

    )& PROCESS MO!EL USE! ITH JUSTIFICATION

    The model used here is a SPIRAL MO!EL. This odel demands a direct

    consideration of technical risk at all stages of the project and if properly applied it

    reduces risk before they become problematic$ hence it becomes easier to handle a

    project when using this kind of model where in the end user can ealuate the

    program at the end of each stage and suggest modification if re%uired. In this way

    the >isk anagement of Project is carried out efficiently through &piral model.

  • 7/24/2019 Client Server Chatting

    9/66

    &piral model

    The general idea behind &piral odel is that you dont define eerything in detail atthe ery beginning. Bou start small$ define your important features$ try them out$ get

    feedback from your customers$ and then moe on to the ne+t leel. Bou repeat this

    until you hae the final product. Each time around the &piral inoles @ steps8

    3. ;etermine objecties$ alternaties and constraints.

    4. Identify and resole risks.

    F. Ealuate alternaties.

    G. ;eelop and test the current leel.. Plan the ne+t leel.

    @. ;ecide on the approach for the ne+t leel.

    In this model$ software tester gets a chance to influence the product early by being

    inoled in the preliminary design phases. He can see where the project has comefrom and where is it going. )lso$ the cost of finding problems is low since they are

    found early.

  • 7/24/2019 Client Server Chatting

    10/66

  • 7/24/2019 Client Server Chatting

    11/66

    3. &E'#)&E ;I)5>)8

  • 7/24/2019 Client Server Chatting

    12/66

    !ATA FLO !IAGRAMS

    &BC

  • 7/24/2019 Client Server Chatting

    13/66

    *ero +e,e+ ./0r/1

    #lient re%uests serice to serer and &erer grants the re%uest through a

    response.

  • 7/24/2019 Client Server Chatting

    14/66

    #lient has to first register himself in the serer to begin chatting. &erer

    encrypts the P&"; and client is registered$ welcome message prompted

    by serer.

  • 7/24/2019 Client Server Chatting

    15/66

    #lient can send message to another client through serer.

    #lient can send offline messages to other clients$ serer stores and forwards

    the messages when other users log on.

  • 7/24/2019 Client Server Chatting

    16/66

    #lient logs out of chat$ serer notifies 6 updates all other users by a message.

  • 7/24/2019 Client Server Chatting

    17/66

    &erer shuts down by sending message and closes connection by giing a

    prompt.

    % LE$EL !F!'

  • 7/24/2019 Client Server Chatting

    18/66

    C+/22 !./0r/1 Of Ser,er'

  • 7/24/2019 Client Server Chatting

    19/66

  • 7/24/2019 Client Server Chatting

    20/66

    C+/22 !./0r/1 for C+.e3t'

  • 7/24/2019 Client Server Chatting

    21/66

    Act.,.t4 !./0r/1 For Lo0.3'

  • 7/24/2019 Client Server Chatting

    22/66

    Act.,.t4 !./0r/1 For Ch/tt.30'

  • 7/24/2019 Client Server Chatting

    23/66

    2.11) Se56e3ce !./0r/1'

  • 7/24/2019 Client Server Chatting

    24/66

  • 7/24/2019 Client Server Chatting

    25/66

    OUTPUT SCREENS

  • 7/24/2019 Client Server Chatting

    26/66

    Ser,er St/rte

  • 7/24/2019 Client Server Chatting

    27/66

    C+.e3t St/rte .3 /3other 7.3o7

  • 7/24/2019 Client Server Chatting

    28/66

    C+.e3t Lo0.3 to Ser,er

  • 7/24/2019 Client Server Chatting

    29/66

    Co33ect.o3 E2t/8+.2h.30 Bet7ee3 t7o c+.e3t2

  • 7/24/2019 Client Server Chatting

    30/66

    Ch/tt.30 Bet7ee32 T7o C+.e3t2

  • 7/24/2019 Client Server Chatting

    31/66

    Ch/tt.30 Bet7ee32 three C+.e3t2

  • 7/24/2019 Client Server Chatting

    32/66

    Sho7.30 Ho7 to !.2co33ect

  • 7/24/2019 Client Server Chatting

    33/66

    A++ U2er2 !.2co33ecte

  • 7/24/2019 Client Server Chatting

    34/66

  • 7/24/2019 Client Server Chatting

    35/66

    MY ROLES AN! RESPOSNSIBILITY

    )s team member of this project$ I was gien the following responsibilities8

    I was inoled in the re%uirement gathering for the modules of designing and

    coding.

    I was responsible for documenting the re%uirement.

    I was responsible for creating the client$ serer module.

    I am also responsible for coding and implementation of the modules8

  • 7/24/2019 Client Server Chatting

    36/66

    PROJECT CO!ING

    %9 CO!E EXPLANATION

    The MULTI-CHATROOM application is deeloped used awt 1)bstract

    "indow Toolkit2.

    Thej/,/9/7tpackage is much useful for creating user interfaces and for painting

    graphics and images. ) user interface object such as a button or a scrollbar is

    called$ in )"T terminology$ a component. The #omponent class is the root of all

    )"T components. &ome components fire eents when a user interacts with the

    components. ) container is a component that can obtain components and other

    containers. ) container can also hae a layout manager that controls the isual

    placement of components in the container.

    The j/,/9/7t package implements different interfaces like

    L/4o6tM/3/0er$ which defines the interface for classes that know how to layout

    #ontainers.

    P/.3t interface defines how color patterns can be generated for 5raphics4;

    operations. ) class implementing the Paint interface is added to the 5raphics4;

    conte+t in order to define the color pattern used by the draw and fill methods.

    Thej/,/93et p/c:/0eproides the classes for implementing networking

    applications. sing the socket classes$ one can communicate with any serer on

    the Internet or implement their own Internet serer. ) number of classes are

    proided to make it conenient to user niersal >esource (ocators 1>(s2 to

    retriee data on the Internet.

    The jaa.net package implements different interfaces like

    !/t/0r/1Soc:etI1p+F/ctory for implementing data gram socket

  • 7/24/2019 Client Server Chatting

    37/66

    implementations. #lasses ;atagram&ocket to create actual socket implementation

    use it.

    Soc:etI1p+F/cotr4interface defines a factory for &ocket implementations. It

    is used by the classes socket and &erer&ocket to create actual socket

    implementations.

    Soc:etOpt.o32interface of methods to get!set socket options. Is implemented by

    &ocketImpl and ;atagram&ocketImpl

    OBJECT ORIENTE! PROGRAMMING AN! JA$A

  • 7/24/2019 Client Server Chatting

    38/66

    procedure.2 ) program is diided into functions$ and 1ideally$ at least2 each

    function has a clearly defined purpose and a clearly defined interface to the other

    functions in the program. The idea of breaking a program into functions can be

    further e+tended by grouping a number of functions together into a larger entity

    called a module$ but the principle is similar8 grouping a number of components

    that carry out specific tasks. ;iiding a program into functions and modules is

    one of the cornerstones of structured programming$ the somewhat loosely defined

    discipline that has influenced programming organiJation for more than a decade.

    Pro8+e12 7.th Str6ct6re Pro0r/11.30

    )s programs grow eer larger and more comple+$ een the structured

    programming approach begins to show signs of strain. Bou may hae heard

    about$ or been inoled in$ horror stories of program deelopment. The project is

    too comple+$ the schedule slips$ more programmers are added$ comple+ity

    increases$ costs skyrocket$ the schedule slips further$ and disaster ensures.

    )nalyJing the reasons for these failures reeals that there are weaknesses in the

    procedural paradigm itself. *o matter how well the structured programming

    approach is implemented$ large programs become e+cessiely comple+.

    "hat are the reasons for this failure of procedural languagesL

  • 7/24/2019 Client Server Chatting

    39/66

    data itself. Bet data is gien second'class status in the organiJation of procedural

    languages.

    9or e+ample$ in an inentory program$ the data that makes up the inentory is

    probably read from a disk file into memory$ where it is treated as a global

    ariable. Cy global we mean that the ariables that constitute the data are

    declared outside of any function$ so they are accessible to all functions. These

    functions perform arious operations on the data. They read it$ analyJe it$ update

    it$ rearrange it$ display it$ and write it back to the disk$ and so on.

    "e should note that most languages$ such as Pascal and #$ also support local

    ariables$ which are hidden within a single function. Cut local ariables are not

    useful for important data that must be accessed by many different functions. *ow

    suppose a new programmer is hired to write a function to analyJe this inentory

    data in a certain way.

    nfamiliar with the subtleties of the program$ the programmer creates a function

    that accidentally corrupts the program. This is easy to do$ because eery function

    has complete access to the data. ItMs like leaing your personal papers in the lobby

    of your apartment building8 )nyone can change or destroy them. In the same

    way$ global data can be corrupted by functions that hae no business changing it.

    )nother problem is that$ since many functions access the same data$ the way the

    data is stored becomes critical. The arrangement of the data canMt be changed

    without modifying all the functions that access it. If you add new data items$ for

    e+ample$ youMll need to modify all the functions that access the data so that they

    can also access these new items. It will be hard to find all such functions$ and

    een harder to modify all of them correctly. ItMs similar to what happens when

    your local supermarket moes the bread from aisle G to aisle 34. Eeryone who

    patroniJes the supermarket must figure out where the bread has gone$ and adjust

    their shopping habits accordingly.

  • 7/24/2019 Client Server Chatting

    40/66

    "hat is needed is a way to restrict access to the data$ to hide it from all but a few

    critical functions. This will protect the data$ simplify maintenance$ and offer

    other benefits as well.

    Re+/t.o32h.p to the Re/+ or+

    Procedural programs are often difficult to design. The problem is that their chief

    components''functions and data structures''donMt model the real world ery well.

    9or e+ample$ suppose you are writing a program to create the elements of a

    graphics user interface8 menus$ windows$ and so on. Nuick now$ what functions

    will you needL "hat data structuresL The answers are not obious$ to say the

    least. It would be better if windows and menus corresponded more closely to

    actual program elements.

    Ne7 !/t/ T4pe2

    There are other problems with traditional languages.

  • 7/24/2019 Client Server Chatting

    41/66

    The o8ject or.e3te /ppro/ch

    The fundamental idea behind object'oriented languages is to combine into a

    single unit both data and the functions that operate on that data. &uch a unit is

    called an object.

    )n objects functions$ called member methods in 7aa$ typically proide the only

    way to access its data. If you want to read the item and return the alue to you$

    you call a member function in the object. It will read the item and return the

    alue to you. Bou cant access the data directly. The data is hidden$ so it is safe

    from accidental modification. ;ata and its functions are said to be encapsulated

    into a single entity. ;ata encapsulation and data hiding are key terms in the

    description of object oriented languages. If you want to modify the data in an

    object$ you know e+actly what functions interact with it8 the member functions in

    the object. *o other functions can access the data. This simplifies writing$

    debugging$ and maintaining the program. ) 7aa program typically consists of a

    number of objects$ which communicate with each other by calling one anothers

    members functions. "e should mention that what are called member functions in

    #KK are called methods in 7aa. )lso$ data items are referred to as instance

    ariables. #alling an objects member function is referred to as sending a

    message to the object.

    A3 /3/+o04

    Bou might want to think of objects as departmentsOsuch as sales$ accounting$

    personnel$ and so onOin a company. ;epartments proide an important approach

    to corporate organiJation. In most companies 1e+cept ery small ones2$ people

    dont work on personnel problems one day$ the payroll the ne+t$ and then go out

    in the field as sales people the week after. Each department has its own

    personnel$ with clearly assigned duties. It also has its own data8 payroll$ sales

    figures$ personnel records$ inentory$ or whateer$ depending on the department.

    The people in each department control and operate on those departments data.

    ;iiding the company into departments makes its easier to comprehend and

    control the companys actiities$ and helps them maintain the integrity of the

  • 7/24/2019 Client Server Chatting

    42/66

    information used by the company. The payroll department$ for instance$ is

    responsible for the payroll data. If you are from the sales department$ and you

    need to know the total of all the salaries paid in the southern region in 7uly$ you

    dont just walk into the payroll department and start running through file cabinets.

    Bou send a memo to the appropriate person in the department$ and then you wait

    for that person to access the appropriate person in the department$ and then you

    wait for that person to access the data and send you a reply with the information

    you want. This ensures that the data is accessed accurately and that it is not

    corrupted by inept outsiders. 1This iew of corporate organiJation is show in

    figure2. In the same way$ objects proide an approach to program organiJation$

    while helping to maintain the integrity of the programs data.

    &&( %n approach to organi)ation

    eep in mind that object'oriented programming is not primarily concerned with

    the details of program operation. Instead$ it deals with the oerall organiJation of

    the program.

    #haracteristics of obect$oriented languages(

    (ets briefly e+amine a few of the major elements of object'oriented languages in

    general and 7aa in particular.

    &bects

    "hen you approach a programming problem in an object oriented language$ you

    no longer ask how the problem will be diided into functions$ but how it will be

    diided into objects. Thinking in terms of objects$ rather than functions$ has a

    surprisingly helpful effect on how easily programs can be designed and objects in

    the real world.

    "hat kinds of things become objects'oriented programsL The answer to this is

    limited only by your imagination$ but there are some typical categories to start

    you thinking8

    hysical obects

  • 7/24/2019 Client Server Chatting

    43/66

    )utomobile in a traffic'flow simulation

    Electrical components in a circuit design to a program

    #ountries in an economics model

    )ircraft in an air'traffic control system

    Elements of the computer'user enironment

    o "indows

    o enus

    o 5raphics objects1lines $rectangles$ circles2

    o The mouse and the keyboard

    Programming constructs

    o #ustomiJed arrays

    o &tacks

    o (inked lists

    #ollection of data

    o )n inentory

    o ) personnel file

    o

    ) dictionary) table of the latitudes and longitudes of world cities

    ser defined data types

    o Time

    o )ngles

    o #omple+ numbers

    o Points on the plane

    #omponents in a computer games

    5hosts in maJe game

    Positions in a board game 1chess$ checkers2

    )nimals in an ecological simulation

  • 7/24/2019 Client Server Chatting

    44/66

  • 7/24/2019 Client Server Chatting

    45/66

    engine$ transmission$ and braking systems work. Instead they are free to utiliJe

    the object as a whole.

    ) powerful way to manage abstraction is through the use of hierarchical

    classifications. This allows you to layer the semantics of comple+ systems$

    breaking them into more manageable pieces. 9rom the outside$ the car is a single

    object.

  • 7/24/2019 Client Server Chatting

    46/66

    *ncapsulation

    Encapsulation is the mechanism that binds together code and the data it

    manipulates$ and keeps both safe from outside interference and misuse.

  • 7/24/2019 Client Server Chatting

    47/66

    ariables. The code that operates on that data is referred to as member methods or

    just methods.

    &ince the purpose of a class is to encapsulate comple+ity$ there are mechanisms

    for hiding the comple+ity of the Implementation inside the class. Each method or

    ariable in a class may be marked priate or public. The public interface of a

    class represents eerything that e+ternal users of the class need to know$ or may

    know. The priate methods and data can only be accessed by code that is a

    member of the class. Therefore$ any other code that is not a member of the class

    cannot access a priate method or ariable. &ince the priate members of a class

    may only be accessed by other parts of your program through the class public

    methods$ you can ensure that no improper actions take place.

  • 7/24/2019 Client Server Chatting

    48/66

    attributes and behaior is the class definition for animals. If you wanted to

    describe a more specific class of animals$ such as mammals$ they would hae

    more specific attributes$ such as type of teeth$ and mammary glands. This is

    known as a subclass of animals$ where animals are referred to as mammals super

    class.

    &ince mammals are simply more precisely specified animals$ they inherit all of

    the attributes from animals. ) deeply inherited subclass inherits all of the

    attributes from each of its ancestors in the class hierarchy. Inheritance interacts

    with encapsulation as well. If a gien class encapsulates some attributes$ then any

    subclass will hae the same attributes plus any that it adds as part of its

    specialiJation 1see 9igure 4'42. This is a key concept which lets object'oriented

    programs grow in comple+ity linearly rather than geometrically. ) new subclass

    inherits all of the attributes of all of its ancestors. It does not hae unpredictable

    interactions with the majority of the rest of the code in the system.

    Po+41orph.21

    Polymorphism 1from the 5reek$ meaning ,many forms-2 is a feature that allows

    one interface to be used for a general class of actions. The specific action is

    determined by the e+act nature of the situation. #onsider a stack 1which is a last'

    in$ first'out list2. Bou might hae a program that re%uires three types of stack.

  • 7/24/2019 Client Server Chatting

    49/66

    each situation. Bou$ the programmer$ do not need to make this selection manually.

    Bou need only remember and utiliJe the general interface.

    E+tending the dog analogy$ a dogs sense of smell is polymorphic. If the dog

    smells a cat$ it will bark and run after it. If the dog smells its food$ it will saliate

    and run to its bowl. The same sense of smell is at work in both situations. The

    difference is what is being smelled$ that is$ the type of data being operated upon

    by the dogs nose/ This same general concept can be implemented in 7aa as it

    applies to methods within a 7aa program.

    Po+41orph.21; E3c/p26+/t.o3; /3 I3her.t/3ce or: To0ether

    "hen properly applied$ polymorphism$ encapsulation$ and inheritance combine to

    produce a programming enironment that supports the deelopment of far more

    robust and scaleable programs than does the process'oriented model. ) well'

    designed hierarchy of classes is the basis for reusing the code in which you hae

    inested time and effort deeloping and testing. Encapsulation allows you to

    migrate your implementations oer time without breaking the code that depends

    on the public interface of your classes. Polymorphism allows you to create clean$

    sensible$ readable$ and resilient code.

  • 7/24/2019 Client Server Chatting

    50/66

    brakes$ and the siJe of the tires hae no effect on how you interface with the class

    definition of the pedals. The final attribute$ polymorphism$ is clearly reflected in

    the ability of car manufacturers to offer a wide array of options on basically the

    same ehicle. 9or e+ample$ you can get an antilock braking system or traditional

    brakes$ power or rack'and'pinion steering$ G'$ or @'$ or Q'cylender engines. Either

    way$ you will still press the break pedal to stop$ turn the steering wheel to change

    direction$ and press the accelerator when you want to moe.

  • 7/24/2019 Client Server Chatting

    51/66

    "

  • 7/24/2019 Client Server Chatting

    52/66

    &oftware testing is a critical element of %uality assurance and represents the ultimate

    preiews of specifications$ design and coding. Testing represents an interesting anomaly

    for the software. ;uring the earlier definition and deelopment phase it was attempted to

    build software from an abstract concept to a tangible implementation.

    The testing phase inoles the testing of the deeloped system using arious test data.

    Preparation of list data plays a different role in the system testing. )fter preparing the test

    data the system under study is tested using those test data. "hile testing the system by

    using test data$ errors were found and corrected. Thus a series of lists was performed for

    the proposed system before the system was ready for implementation. The arious types

    of testing done on the system are8

    nit testing.

    Integration testing.

    Dalidation testing.

  • 7/24/2019 Client Server Chatting

    53/66

  • 7/24/2019 Client Server Chatting

    54/66

    )t the culmination of integration testing$ software is completely assembled as a package$

    interfacing errors hae been uncoered and corrected and final series of software test'

    alidation testing begins. Dalidation testing can be defined in many ways$ but a simple

    definition is that alidation succeeds when the software functions in a manner that can be

    reasonably accepted by the user!customer. &oftware alidation is achieed though a series

    of blank bo+ tests that demonstrate conformity with re%uirements$ after alidation list has

    been completed one of two possible conditions e+ists.

    The function or performance characteristics confirm to specification and are

    accepted.

    ) deiation from specification is uncoered and a deficiency list is created.

    ;eiation or errors discoered at this step in this project is corrected prior to

    the completion of the project with the help of users by negotiating to establish a

    method of resoling deficiencies. Thus$ proposed system under consideration

    has been tested by using alidation testing and found to be working

    satisfactorily.

    Dalidation plays an important role in the deelopment for the system. Testing is done to

    check for synta+ and logical errors$ but alidation is done to check whether the system

    works as per planned in the real time enironment.

    Dalidation refers to the process of using software in a lie enironment in order to

    find errors. The feedback from the alidation phase generally produces changes in the

    software to deal with errors and failures that are uncoered. Then a set of user sites is

    selected that puts the system into use on a lie basis. They are called beta test sites.

    The beta test sites use the system in day'to'day actiities. The process lie

    transactions and produce normal system output. The system is lie in eery sense of the

    word$ e+cept that the users are aware they are using a system that can fail. Cut the

    transactions that are entered and the persons using the system are real.

    Dalidation may continue for seeral months. ;uring the course of alidating the

  • 7/24/2019 Client Server Chatting

    55/66

    system. 9ailure may occur and software will be changed. #ontinued use may produce

    additional failures and need for still more changes. Dalidation checking is properly done

    in our project.

    9irstly$ the systems data entry screens are alidated for null alues. If any null

    alues are found$ mail clients are prompted to enter the appropriate mail ids. Each email

    entry is checked for R symbol for confirmation of that it is a e'mail id. Thus alidation

    checks hae been performed in this project.

    OUTPUT TESTING

    )fter performing the alidation testing the ne+t steps are outputs testing of theproposed system$ since no system could be useful if it does not produce the re%uired

    output in the specified format. The output generated are displayed by the system under

    consideration are tested by comparing with the format re%uired by the user. Here theoutput format is considered in two ways on is onscreen and rather is printed format. The

    output format on the screen is found to be correct as the system design phase according to

    the user needs for the hard copy also$ the output comes doesnt testing result in anycorrection in the system.

  • 7/24/2019 Client Server Chatting

    56/66

    @@

    MULTI-CHATROOM

    USER ACCEPTANCE TESTING

    ser acceptance of a system is a key factor to the success of any system. The

    system under consideration was tested for user acceptance by constantly keeping in touch

    with the prospectie system user at the time of deeloping and making changes whereer

    re%uired. This is done with regard to the following points

    Input screen design.

  • 7/24/2019 Client Server Chatting

    57/66

    @@

    MULTI-CHATROOM

    ;ebugging by back tracking inoles the working background as the source code

    from the point where the error was obsered in an attempt to identity the e+act point

    where the error has occurred.

    ) small system error can conceiably e+plode into a much larger problem.

    Effectie testing early in the process translated directly into long term cost saings from a

    reduced number of errors.

    )nother reason for testing is its utility as a user'oriented ehicle before

    implementation. The best program is worthless if it does not meet the user needs.

    nfortunately$ the users demands are often compromised by efforts to facilitate program

    or design efficiency in terms of processing time or memory utiliJation.

  • 7/24/2019 Client Server Chatting

    58/66

    @@

    MULTI-CHATROOM

    THE TEST PLAN'

    The first step in system testing is to prepare a plan that will test all aspects of the

    system in a way that promotes its credibility among potential users. ) test plan entails the

    following actiities.

    Prepare test plan.

    &pecify conditions for user acceptance testing.

    Prepare test data for program testing.

    Prepare test data for transaction path testing.

    Plan user training.

    #ompile ! assemble programs.

    Prepare job performance aids.

    Prepare operational documents.

    UNIT TESTING AN! !EBUGGING'

    In unit testing the module is tested independently. It is done to test that the module doessatisfy the functional specification. This is done to check synta+ and logical errors in

    programs. )t the time of preparation of technical specifications$ unit test data was also

    prepared. The coding for that program was considered after erifying its output against

    this test data.

    &tatic analysis is used to inestigate the structural properties of source code.

    ;ynamic test cases are used to inestigate the behaior of source code by e+ecuting the

    program on the test data. "e use the term program unit to denote a routine or a collection

    of routines implemented by an indiidual programmer.

    nit testing comprises the set of tests performed by an indiidual programmer

    prior to integration of the unit into a larger system. The situations is illustrated as

    follows8

  • 7/24/2019 Client Server Chatting

    59/66

    @@

    MULTI-CHATROOM

    Co.30 " e8600.30 63.t te2t.30 .3te0r/t.o3

    te2t.309

    ) program unit is usually small enough that the programmer who deeloped it can

    test it in a great detail and certainly in greater detail than will be possible when the unit is

    integrated into an eoling software product.

    ;ebugging is the process of isolating and correcting the causes of known errors.

    &uccess at debugging re%uires highly deeloped problem soling skills. #ommonly used

    debugging methods include induction$ deduction and back tracking.

    Induction inoles the following steps8

    #ollect the aailable information.

    (ook for the Patterns.

    9orm one or more hypothesis

    Proe or disproe each hypothesis.

    Implement the appropriate corrections.

    Derify the correction.

    Integration testing is a systematic techni%ue for constructing the program structure

    while conducting tests uncoers errors associated with interfacing. The objecties are the

    take unit test modules and build a program structure that has been dictated by design.

  • 7/24/2019 Client Server Chatting

    60/66

    @@

    MULTI-CHATROOM

    manuals are mainly based upon the system specification. Coth the system operators and

    users need the training.

    sers are to be instructed first$ how to operate the applications. ser training also

    to be gien which would instructs indiiduals in trouble shooting systems$ determines

    whether problem arise due to e%uipment failure or software failure or something that they

    had one in the using system.

    )s most users are familiar with accessing chat applications and had been a regular

    user of #hat$ there was no need of training on this project. Howeer$ the system

    administrators were discussed regarding the implementation of the project by copying the

    .jar file and unJipping it. &erer programs are stored in organiJations serer and in all the

    other places only client applications class file alone are copied. &hortcut icons are placed

    for inoking the client program which connects to the serer after confirmation of the IP

    address and port number. Howeer a walk through of the project and a hands on

    assistance made the project more user friendly.

    E=ec6t.o3 Te2t.30

    This program was successfully loaded and e+ecuted. Cecause of good

    programming there were no e+ecution errors. The complete performance of the

    project ,MULTI-CHATROOM- was good.

    O6tp6t Te2t.30

    The successful output screens are placed in the output screens section aboe with

    brief e+planation about each screen.

  • 7/24/2019 Client Server Chatting

    61/66

    @@

    MULTI-CHATROOM

  • 7/24/2019 Client Server Chatting

    62/66

  • 7/24/2019 Client Server Chatting

    63/66

    @@

    MULTI-CHATROOM

  • 7/24/2019 Client Server Chatting

    64/66

    @@

    MULTI-CHATROOM

    CONCLUSION

    Een though this application has been deeloped with the users own Protocols$

    this can be used in an Internet based organiJation.

    3. This system was deeloped so that people can e+change information as

    well as conerse with each other.

    4. Through this system people can access chat rooms globally.

    F. The system is interactie and friendly.

    G. Entire system is fully automatic to the clients and satisfies the clients

    re%uest

    . -specially the system is more useful to the technical people when the need

    for sending pictures, images it is solved through )+T- B(/0 1T"T&

    (2 $MULTI-CHATROOM%.

  • 7/24/2019 Client Server Chatting

    65/66

    @@

    MULTI-CHATROOM

  • 7/24/2019 Client Server Chatting

    66/66

    MULTI-CHATROOM

    BIBLIOGRAPHY

    Soft7/re E30.3eer.30by ..)ggarwal 6 Bougesh &ingh

    Pro0r/11.30 I3 JA$A ; HCL

    JA$A B+/c: Boo:

    www.google.com

    http://www.google.com/http://www.google.com/