Distributed and Internet Systems
It requires developing of a prototype of a technological solution which requires clients, servers and/or peers for building distributed application for exchanging information over chosen network protocol. It finishes with a written report to be submitted by the deadline and demonstration of the software in a computer Lab during the workshop.
• The report is to describe the design, the development process and the documentation of a simple client/server or peer-to-peer application
• The software to be developed can be used for exchanging files (download/upload), messages (send/receive or post/retrieve) or remote data processing (request/reply)
• The demonstration is to show the developed solution in operation. It will be organised in the Computer Labs and must be attended by each student in order to gain the full mark.
1. Design the application you would like to develop using the following alternatives
• Choice of one of the following data structure to be used for exchanging information in the distributed application: files, messages or parameters (examples: file server for uploading/downloading files on the server/from the server by the client, messaging server to send/post/receive/broadcast messages, etc.)
• Choice of one of the following architectures to be designed: client/server, peer-to-peer, mixed (examples: entirely peer-to-peer chat application which allows chatting with fellows, client/server chat application which uses central server to exchange the messages, or chatroom, which allows to use private rooms for exchanging messages but it is controlled by a server, etc.)
• Choice of one of the following protocols to be used: TCP, UDP, RMI, HTTP (for example, TCP for FTP server implementation, or RMI for FTP server implementation, or HTTP for FTP applet/servlet application)
• Choice of one of the following interfaces to be used: command prompt input/output (using System package), window-based input/output (using [url removed, login to view] and [url removed, login to view] packages), servlet-based input/output (using [url removed, login to view]), applet-based input/output (using [url removed, login to view]) or any applicable combination (i.e., applet for the client and servlet for the server, or window-based client and command prompt interface for the server).
2. Develop a server-side application and test it using suitable test client. Hint: Create a project for the server-side application and place all classes within the same project.
3. Develop a client-side application and test it using the server. Hint: You may wish to organize a separate project for the client application, different from the server application project
4. Extend the server application to allow multithreading whenever applicable
1. The software needs to run using the Java runtime engine only and not using the development tools (all libraries must be included)
2. The written report does not have a fixed structure, but can provide information on the following issues:
• Program description with suitable illustration (using UML sequence diagram, for example)
• Test scenarios with test data and test results
• Deployment instructions (how to install and configure the application)
• A full walkthrough of the working application (set of screen dumps from the client and the server)
3. In the demonstration you can use either a desktop PC in the Lab or your own laptop
1. Written report in Word format .
2. Software written in Java .