The aim of this project is to develop an multi-user chat system to facilitate communicate between users with in the corporate or scientific organization. Chat application is to allow user for private chat, group chat (conference chat), share files while chatting, store and archive communicated messages.
Chat application should allow do download desktop based application installed on local system to connect chat server and user should bale to communicate with in the organization in secure manner.
ASIT Consultancy Ltd well knows software product Development Company and it has rich experience on developing many software applications over the year.
During the survey a questionnaire was created and sent to some random student for opinion. Most of them were happy with the project which they said would help them maintain their experiment and simulations.
What has not been done yet is the Logical, conceptual and physical design. This would be done; this would be done in the next phase when the actual project implementation starts.
Prototype of the chat application is included in this report only part of functionality is demonstrated to stake holders.
The purpose of this Feasibility Study is to come up with business use case about a chosen project ‘Design and implement a multi-user internet chat system in java’ whether it is viable to build a multi-user chat application using the latest Java technology and allow user to download and install desktop based chat application and chat secure manner.
The project lifecycle of this proposed solution contained in this document includes project aim and Objectives, Designed Gantt chart, Costing, functional requirement and design requirement, Reports, Mile Stone – Phases to determine the viability of the Multi-user chat system, Conclusion and Recommendation..
This would be designed and implemented for user community for website who can chat with other users as private chat, public chat, sharing files. The system would be user-friendly, such as simple graphical user interface for chatting, file sharing, archiving messages etc.
The Feasibility Study is the culmination of a proposal presented to the stakeholders and the program manager Mr Shan on the 13th May 2010. The information contained in the proposal will serve as a comprehensive guide in the development of this feasibility study and is the primary point of reference throughout this study
The progress to Date 28th May 2010
The project began three weeks after the project Title was chosen and Proposal was handed in on the 10th March 2010. It outlined the feasibility study, intended deliverables, hardware and software requirements and reason for chosen the project.
Project preparation form was prepared and signed by both parties including project stakeholders.
Feasibility study plan was initiated
Background reading was started as the Title was new to me and a lot to take on board
Started practicing on Java to update myself which would be on going. Have set aside 1 hour everyday to study that.
1.1 Team and Resources
The feasibility study would included mainly development and design team
Project Architect, ching chu , providing expertise in the design of the new multi-user chat system, using advanced Java.
Dr Clarke my Supervisor would support and guide me through the project.
In web2.0 era communication between registered users are common activity. Users who register for community expect more and more attractive functionality to register with website. In this multi-user application user can chat with other logged-in user privately, publicly (group chat) and can share files and can archive chat messages and retrieve whenever he need to check chat history.
There are many well known multi-user chat application are available in the internet. Gtalk (Google), Yahoo messenger (yahoo) and MSN or live (Microsoft) are widely used chat applications. These chat applications are provide users other than chat facility many other attractive options.
ASIT is planned to develop multi-user chat application similar to other well known chat application, only difference in this mult-user chat application is If this deployed on any corporate only within the same corporate employees can chat with other employees. If the application is deployed on any education institute only same education institute professors and students can communicate with other students or professors.
One of the major challenges with this multi-user chat system is secure communication between the users. The corporate or scientific organization may have information which need be protected with intruders or hacker. The chat system should implemented such a way that the information need be secured.
The aim of this project is to develop desktop chat application incorporated with java multi threaded client-server program which would allow users to communicated private and public way and share resources while chatting and archive communicated messages.
This report is to use java, swing, multi threading and TCP-IP technology to design and create desktop based multi-user chat application design for chat and communicated over internet.
The methodology for this report is to understand how to carry out research into multi-user chat application, resource sharing while communicating through the Internet. Also finding out how users would feel. Interviews and research would be ongoing before starting the actual designing to identify the key elements of the project.
Methodology – General Approach
When messages are communicated over the network there is a possibility that intruder introduce unwanted information with the transferred information. It is important that the data need to be communicated secure encrypted manner. So that other end of the receiving application can decrypt the information and use the information.
The volume of the messages and shared files while chatting will dominate problems and limit our ability to extract for results. As massages and these shared files are sometime very critical it need to it send and receive with reliable networking technology and privacy and authorization of user access control etc are very important. Encryption technologies are adopted for communication such that public key infrastructure algorithm to protect the data and chat messages.
Communicated data need to be stored in a persistence layer such as relational database can be used to store this critical information for future reference. A java persistence API’s such as JDBC, hibernate or JDO is used for archiving these information in secondary storage and only authorized user can retrieve the archived message.
5.1 Java multi-Threading API’s
Concurrency is the ability to run multiple parts of a program or multiple programs in parallel. Concurrency can greatly improve the performance of a application if certain tasks can be executed asynchronously or in parallel.
Threads are also called lightweight processes which have their own call stack but an access shared resource. Every thread has its own memory cache and if a thread reads shared data it stores this data in its own stack of memory cache and used in the process of execution.
5.2 Java Swings API’s
Swing was developed to provide a more light weight set of graphical user interface components than the earlier Abstract Window Toolkit. Swing build as lightweight component which provides a native look and feel that emulates platform dependent look on particular platforms, and swing also supports a pluggable way of look and feel that allows applications customize and to have a look and feel unrelated to the defined platform.
5.3 Java network API’s
One can write java applications that communicate over the network mean you are programming at the application layer. Typically, someone writing programs no need to concern about the TCP and UDP layers. Instead of this you can make use of the classes in the java.net package and these classes provide platform independent network communication.
Through the classes in java.net, Java programs can use UDP or TCP to communicate over the network. The classes URL, URLConnection, ServerSocket and Socket all use for TCP to communicate over the network and the classes DatagramPacket, DatagramSocket, and MulticastSocket are for use with UDP.
5.4 Java Cryptography and Security API’s.
The Java platform strongly emphasizes programming concept like security, including byte code language security, cryptography, public key infrastructure (PKI), and authentication, secure communication, and access control.
The Java Cryptography Architecture is a big implementation piece of the platform and it have a provider architecture implementation and a set of application programming interface for digital signatures, encryption and decryption, message digests, certificates and certificate validation, secure key management and generation and secure random number generation, to name a few. Using these application programming interface one can easily integrate security into their business logic application code.
5.5 Java Database Connectivity (JDBC)
The Java Database Connectivity is the trade name for Java API, which supports Java, programs that access relational database. It also gives programmers uniform Interface for access and manipulate a wide range of relational database. By using JDBC API gives application written in the Java Programming Language allows it to execute SQL statements, retrieve results, present data in user-friendly interface and propagate changes back to the database
Developing Multi-User Chat Application Using Java
Java is an object oriented programming language expressly designed for use in the enterprise environment of the Internet. Java can be used to create end to end applications that may run on a single computer or be distributed among servers and clients in a network.
Any application you develop there should be proper architecture for future enhancement, performance, reliability, availability should be considered. The Chat application is developed using client server architecture with layered approach. Client application is developed using java swing API’s and java network API’s.
Server is developed using java multithreaded API’s, java network API’s and encryption API’s. Client connects to the server and server need to send messages to connected other client. The messages need to be encrypted using any of the public key infrastructure algorithms.
The communicated messages need to be archived and retrieved using jdbc API’s. Using SQL statements the information is stored or retrieved from the database.
Java Security API’s
Java Encryption API’s
Java networking API’s
Java database connectivity API’s
HTML/ CSS for website reports
Servlet/JSP programming for chat Administration Application.
The minimum hardware requirements are:
The software requirements are as follows:
Windows 2000/Windows XP
Database Oracle, SQL, JDK 1.6, Java IDE like eclipse
The overall costs in terms of design/development, software and the new web/database design will be:
Cost break down
Labour Cost = £50ph
10 days @ £1000 Architect and design cost =1,000
30 days @ £20.00 per hour
(5hrs a day for 30 days)
There is some consideration that needs to take into account for chat and archiving purposes
How does the solution limit access to restricted data?
Would the solution always available? Can data be access when required or does it have to be requested?
Can the solution hold the amount of data planned for without hampering performance/integrity?
Is it cost effective, both initial design and ongoing ?
Would the functionality be suitable for connection to whoever may want to use it. For example someone from America considering the time difference.
Can the solution carry our multi user chat in real time? Can application be enhanced for user performance?
Is it going to be user friendly without spending too much time and money training and getting use to the system.
How it going to be use
User should able to chat with other connected user
Group chat(public chat)
This is kind of conference chat. A group of people can chat together.
Share files or resource(while chatting)
User should able to share files, desktop or other media while chatting.
User should able to store the messages for future reference.
Manage Chat Server
The administrator check and access the bandwidth of message flows and take the decision of performance bench marking etc.
Modification of user privileges
Able to create / delete users modify the privileges for the user.
Changes access condition
Administrator should able to give access to shared resources like file sharing , desktop sharing etc.
Prototype of chat window
Prototype for Admin Screen.
The most important key here are: it would be simple, focus on ease of use and simple client server application can be deployed on internal to the corporate or research organization.
It is cost effective to use MySQL, has many advantages and features that makes it popular and open source thereby makes it as the world’s most used open source relational database application and many science students, Scientist and Engineering Researchers would benefit from it.
The project should continue based on the lines described in the document which is the supplements the Project plan. The research plan outlined in the document should be worked through as the primary instrument for deliver project results and outcomes.
Other things needs to note are:
availability of hardware and software
Easy to set up the client server chat application and admin web application
Internet Minimum Bandwidth 64Mb
Admin need be deployed on militarized hosting zone.
Table for work breakdown structure
Depends on steps
In-depth preparatory consultations with Supervisor
Initial draft on chat system plan
Develop, submit Proposal
Create an outline Final Report based on Initial draft and detailed research plan for in-depth technical and costs stages of work
Main technical investigations
Tools Software and Cost specified
Draft Final Report created, agreed, and sent
Draft Final Report
Submit Final Report