Assignment 2: Distributed System and Application
Project: Distributed Shared White Board |
2
◼ Basic Features (first complete a system with these features as they are easier to implement) ◼ AdvancedFeatures |
Shared White Board – Distributed Users |
3 ◼ Sharedwhiteboardsallowmultipleuserstodrawsimultaneouslyona canvas. There are multiple examples found on the Internet that support a range of features such as freehand drawing with the mouse, drawing lines and shapes such as circles and squares that can be moved and resized, and inserting text. |
Main Challenges |
4 ◼ Dealingwithconcurrency ◼ Regardless of the technology you use, you will have to ensure that access to shared resources is properly handled and that simultaneous actions lead to a reasonable state. ◼ Structuringyourapplicationandhandlingthesystemstate a single central one that manages all the system state. ◼ Dealing with networked communication
|
Distributed White Board |
5
◼ Java RMI? ◼ File or Database for Storage ◼ Make sure that can achieve the goal when you are choosing “new” technology (otherwise, stick to what you already know). |
Requirements 1: Basic Features |
6 ◼ Whiteboard – Multiuser system
◼ Of course, you are most welcome to be creative/innovative. |
Requirements 2: Advanced Features |
7 1. Chat Window (text based): To allow users to communicate with each other by typing a text. 2. A “File” menu with new, open, save, saveAs and close should be provided (only the manager can control this) 3. Allow the manager to kick out a certain peer/user |
Guidelines on Usage/Operation |
8
|
Proposed Startup/Operational Model |
9 ◼ The first user creates a whiteboard and becomes the whiteboard’s manager ◼ java CreateWhiteBoard <serverIPAddress> <serverPort> username
◼ A dialog showing “someone wants to share your whiteboard”.
|
Guidelines/Suggestions for Implementation |
10 ◼ These phases are suggestions for timely progression, you are most welcome to follow your own approach. ◼ Phase 1 (whiteboard) – (aim to finish within 2 weeks of announcement) ◼ As a starting point: Single-user standalone whiteboard (OR) You are most welcome to implement a single user and single server. ◼ Task A: Implement a client that allows a user to draw all the expected elements. ◼ Task B: Implement a server so that client and server are able to communicate entities created in Task A |
Guidelines/Suggestions for Implementation |
11 ◼ Phase 2 (user management skeleton)
|
Guidelines – Suggestions (You are most welcome follow your own approach) |
12 ◼ Phases 3 (Final) management skeleton (phases 1 and 2) ◼ Design issues: ◼ What communication mechanism will be used? ◼ Socket, RMI, or any other frameworks of your choice. ◼ How to propagate the modification from one peer to other peers? ◼ You may need an event-based mechanism ◼ How many threads do we need per peer? ◼ At least one for drawing, one for messaging |
Deliverables and Marks |
13 ◼ Report (4 marks) Distributed Users, Shared Whiteboard: ◼ Basic System (16 marks) ◼ FAQ (Frequently Asked Question) ◼ NOTE: You are NOT allowed to use ANY code taken from any existing shared whiteboard implementation. Full design, code, report has to be Your OWN work. Copying code/content from other sources carries penalty & disciplinary action as per the University rules. |
Final Submission |
14 ◼ Report
|
Milestone: Demonstration |
15 ◼ Demonstrations during the demos. |
Deadline and Penalties |
16 ◼ Deadline: ◼ Assignments submitted late will be penalized in the following way: ◼ 1 day late: -1 mark |