CS6002 Distributed and Internet Systems Management

Question:

Summary

This coursework is worth 25% of the total module mark. It requires developing of a prototype of a distributed system for exchanging information over chosen network protocol between clients, servers and/or peers, written report to be submitted by the deadline and demonstration of the software in a computer Lab.

Tasks

Design the application you would like to develop after picking one of each of the following alternative choices

  1. Choice of one of the following architectures to be designed: client/server, peer-to-peer or mixed (Examples: entirely peer-to-peer chat application which allows direct chatting between the users, client/server chat application which uses central server to exchange the messages between the users, or a chatroom, which allows to use private rooms for exchanging messages as well as common meeting room, etc.)
  2. Choice of one or more of the following data structures to be used for exchanging information in the distributed application: text messages, multi-media messages, text files, binary files, text feeds, multi-media streaming (Examples: text messaging with binary file attachments, multimedia messaging, uploading/downloading binary files to/from the server, broadcasting multimedia messages with file attachments, etc.)
  3. Choice of one of the following protocols to be used: TCP, UDP, HTTP, IIOP or RTP (Examples: TCP for desktop messaging application with attachments, UDP for multimedia broadcasting over the Internet, HTTP for instant chatting on the Web, etc.)
  4. Choice of one of the following interfaces to be used: command prompt input/output (using System package), Swing-based input/output (using swing and java.awt packages), Web form-based input/output (using javax.servlet), Applet-based input/output (using java.applet) or any applicable combination (Examples: applet for the client and servlet for the server, window-based client and command prompt interface for the server, browser-based peer-to-peer application)
  5. Develop the software to match the design
  6. Develop the basic server-side application, test it using suitable test client and create deployable version of it. (Hint: Place all files of the client in a single Eclipse project).
  7. Develop the client-side application and test it using the server-side. (Hint: Create a separate project for the client application, different from the server application project).
  8. Extend the server-side and the client-side applications to allow any additional functionality whenever applicable (i.e., graphical UI, multi-threading, password control, attachments, etc.)
  9. Test the system produced

Some tests can be already reported as part of the development process (i.e,, unit tests), but this section should include the tests of the separate components (integration testing) and the entire application (functional testing)

  1. Write the report

The report structure should follow the process of working – titlepage, table of contents, introduction, design, development, deployment, application walktrough, testing, conclusion.

Requirements

1.Your choices must be registered with the teaching team by Week 6. Your submission must match the registered choices.

 
2.The deployed software should run using the Java runtime engine only and the demonstration must be done using the deployed version, not using the development tools (i.e., no Eclipse, NetBeans, etc). All non-standard libraries must be included in the archives of the deployed version.
 

3. The written report must provide information on the following issues:

  • Application design with suitable illustration of the software architecture (at least one UML diagram).
  • Software Development (at least one class/package/component diagram for the structure and one collaboration/sequence/statechart diagram for the functionality).
  • System Deployment (how to install, configure and run the application).
  • Application Walkthrough of the working application (set of screen dumps from the client and the server).
  • Software and/or System Testing with suitable test cases (test strategy, testing scenarios, test data, test results and analysis).
  1. In the demonstration you can use either a desktop PC in the Lab, or your own laptop. The demonstration will not be marked, but if the application is not demonstrated the marks for the software will be set to 0 and only the report will be marked.

Deliverables

  1. Written report, submitted by the deadline to WebLearn (one .pdf file)
  2. Java application, submitted by the deadline to WebLearn (Eclipse or NetBeans project with all sources plus deployment files in .jar and/or .war format – all in a single .zip archive)
  3. Demonstration, presented during the workshops in Week 12 (using university computer remotely or laptop from home)

Notes:

  1. All code files must be submitted to WebLearn in a single .zip archive (.arj, .rar or any other archive formats are not supported and using them may cause the entire submission to be discarded)
  2. The report must be submitted in a single .pdf file

Marking Scheme

  • Basic server-side functionality
  • Basic client-side functionality
  • Additional functionality up to
  • GUI
  • Multi-threading
  • User-to-user delivery extra
  • Multi-part communication (attachments)
  • Session Contextualization (chatrooms, folders, boxes, etc.)
  • User authentication (file or database registration)
  • Operation Auditing (log file)
  • Design, Development and Testing up to 5 marks
  • Deployment, Documentation and Quality

Notes:

  1. The demonstration is not marked but without demonstration the mark for the software will be set to 0 and only the report will be marked with max mark 40% (practically fail)
  2. The basic functionality may be sufficient to pass but without additional functionality the max mark will be 60% (no first class)
  3. The report is not compulsory but without it the max mark will be 60% (no first class)
Read less
✍️ Get Writing Help