System Design
System Design
System Design
which the work of system design is initiated. Much of the activities involved at this stage is of technical nature requiring a certain degree of experience in designing systems, sound knowledge of computer related technology and through understanding of computers available in the market and the various facilities provided by the vendors. Nevertheless, a system cannot be designed in isolation without the active involvement of the user. The user has a vital role to play at this stage too. As we know that data collected during feasibility study wills we utilized systematically during the system design. It should, however be kept in mind that detailed study of the existing system is not necessarily over with the completion of the feasibility study. Depending on the plan of feasibility study, the level of detailed study will vary and the system design stage will also vary in the amount of investigation that still needs to be done. This investigation is generally an urgent activity during the system. Sometimes, but rarely, this investigation may form a separate stage between feasibility study and computer system design. Designing a new system is a creative process, which calls for logical as will as lateral thinking. The logical approach involves systematic moves towards the end product keeping in mind the capabilities of the personnel and the equipment at each decision making step. Lateral thought implies encompassing of ideas beyond the usual functions and equipment. This is to ensure that no efforts are being made to fit previous solutions into new situations. System Design Considerations The system design process is not a step-by-step adherence of clear procedures and guidelines. Though, certain clear procedures and guidelines have emerged in recent days, But still much of design work depends on knowledge and experience of the designer.When designer starts working on system design, he will face different type of problems. Many of these will be due to constraints imposed by the user or limitations of the hardware and software available in the market. Sometimes, it is difficult to enumerate the complexity of the problems and solutions there of since the variety of likely problems is so great and no solutions are exactly similar. However, following considerations should be kept in mind during the system designing phase: Goals After successful completion of this assignment, students will have: 1.A reasonable understanding of client/server interaction 2 Understand basic inter-networking concepts, such as the use of IP addresses, hostnames etc. 3 Understand how the User Datagram Protocol (UDP) works 4 Know how to implement a multi-threaded client 5 Have a reasonable understanding of the Java Sound API.
3 General Specications The objective of this assignment is to implement a working Voice over Internet Protocol (VoIP) system. The program will be used over the local LAN and should enable users to initiate voice conversations with other users. The program will consist of a server and multiple clients. You can code this program in any language you like, although we recommend that you code it in Java. Keep in mind that the student assistants might not know your chosen language and therefore not be able to help you with all coding problems you might have. The practical has however been successfully implemented in Java and the marking scheme has been set up with Java socket programming and multithreading difficulties in mind. The project should be handed in together with a report. The report specications may be found on this web-page. All projects and reports will be checked for plagiarism. If plagiarism is detected there will be serious consequences. You are allowed to work in groups of no more than two.
The Server The role of the server is to coordinates all the activities of the clients in such a way that the clients interact fast and efficient as possible. The Server should implement a minimal GUI to give feedback on client activities. The server will accept connections from multiple clients, but multi-threading is not necessary. When a client terminates its connection, it should be done in a clean fashion where the server operations are not disrupted. With voice calls, the servers only role is to check and see if the requested user is still active, and then to initiate the session. All further communication between the two users are handled by the client programs. 3.2 The Client The role of the client is to interface with the user, translate requested operations, and interact with the server. It is essential for the client to have a GUI, to act as an interface for the user. Clients may initiate voice calls to other clients by having the user give a call command and a host name to call to. Voice communications, between clients are direct, without any server interference. The server should merely act as a proxy and look-up service, assisting clients in making the connections. Text communications should also be possible. Voice communications should occur in real-time