It requires developing a prototype distributed system of choice that consists of clients, servers and/or peers for exchanging information via a developed message protocol. As well as submitting the completed application a written report will also need to be submitted by the deadline and a formal demonstration of the completed software given.
• The submitted report needs to fully detail the design and the development process of the client/server or peer-to-peer application
• The application developed is expected to exchange files (download/upload or publish/share) or messages (send/receive or post/retrieve) over a computer network
• The demonstration is to show the developed solution in operation.
1. Design the application you would like to develop selecting from each of the following alternatives
• 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 chat room, which allows the use of private rooms for exchanging messages but it is controlled by a server, etc.)
• 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 protocols to be used as your application’s transport: TCP, UDP, HTTP (for example, TCP for file transfer application implementation, or HTTP for file transfer applet/servlet application)
• Choice of one of the following user 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, window-based client and command prompt interface for the server, or entirely browser-based client and server)
2. Develop a server-side application and test it using a 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 developed in 2. Hint: Create a separate project for the client application, different from the server application project and place all files fro the client there.
4. Extend the server application to allow multithreading whenever applicable.
1. The deployed software should run using the Java runtime engine only and the demonstration must be done using the deployment version, not development tools (i.e., it must run as a standalone application outside of Eclipse, etc).
2. The written report does not have a fixed structure, but should provide the following:
• Program description with suitable illustration (using UML class and sequence diagram, for example)
• 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)
• Test scenarios with test data and test results (this is different from the illustration of the work through a set of screenshots, it requires systematic tests!)
1. Written report in Word format
2. Software, written in Java