1. Homepage
  2. Programming
  3. COMP90015: Distributed Systems Assignment 2: Distributed Shared White Board

COMP90015: Distributed Systems Assignment 2: Distributed Shared White Board

Engage in a Conversation
UnimelbCloud ComputingDistributed SystemsJavaCOMP90015

Assignment 2: Distributed System and Application CourseNana.COM

Project: Distributed Shared White Board CourseNana.COM

  • ◼  In these slides, we are offering mainly guidelines for satisfactory work, but be innovative and creative, which will be valued a lot. CourseNana.COM

  • ◼  Team/Members Size: 1 Individual (like Assignment 1). CourseNana.COM

  • ◼  General help: Ask your tutor during/after tutorial session. Also CourseNana.COM

    use “Discussion Board” in LMS. CourseNana.COM

  • ◼  MarksAllocated:25 CourseNana.COM

  • ◼  Note: We expect all students to just finish and submit only the features noted in this specification. CourseNana.COM

  • ◼  To help you in planning, we propose: CourseNana.COM

Basic Features (first complete a system with these features as they are CourseNana.COM

easier to implement) AdvancedFeatures CourseNana.COM

Shared White Board Distributed Users CourseNana.COM

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. CourseNana.COM

Main Challenges CourseNana.COM

Dealingwithconcurrency CourseNana.COM

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. CourseNana.COM

Structuringyourapplicationandhandlingthesystemstate
For example, you can have multiple servers that communicate with each other or CourseNana.COM

a single central one that manages all the system state. CourseNana.COM

Dealing with networked communication CourseNana.COM

  • ◼  You need to decide when/what messages are sent across the network. CourseNana.COM

  • ◼  You may have to design an exchange protocol that establishes which messages are sent in which situation and the replies that they should generate. CourseNana.COM

  • ◼  If you use RMI, then you need to design your remote interface(s) and servants CourseNana.COM

    ImplementingtheGUI. CourseNana.COM

  • ◼  The functionality can resemble tools like MS Paint. CourseNana.COM

  • ◼  You can use any tool/API/library you want. CourseNana.COM

  • ◼  e.g.: Java2D drawing package (http://docs.oracle.com/javase/tutorial/2d/index.html) CourseNana.COM

Distributed White Board CourseNana.COM

  • ◼  Develop a white board that can be shared between multiple users over the network. CourseNana.COM

  • ◼  The system must be implemented in Java, but you can choose the technology (e.g., it can be even Sockets) you want to use to build your distributed application: CourseNana.COM

    Sockets CourseNana.COM

    • ◼  TCP or UDP? CourseNana.COM

    • ◼  Message format and Exchange protocol? CourseNana.COM

      • ◼  can be XML-based or your own format) CourseNana.COM

      • ◼  Client can broadcast a message with updates to all other clients, other clients reply acknowledging the message. CourseNana.COM

Java RMI?
Remote Objects/Remote Interface? CourseNana.COM

File or Database for Storage
Please Choose any technology of your choice CourseNana.COM

Make sure that can achieve the goal when you are choosing “new” technology (otherwise, stick to what you already know). CourseNana.COM

Requirements 1: Basic Features CourseNana.COM

Whiteboard Multiuser system CourseNana.COM

  • ◼  Multiple users can draw on a shared interactive canvas. CourseNana.COM

  • ◼  Your system will support a single whiteboard that is shared between all of the clients. CourseNana.COM

    KeyElementswithGUI CourseNana.COM

    • ◼  Shapes: at least your white board should support for line, circle, oval, and rectangle. CourseNana.COM

    • ◼  Free draw and erase must be implemented (it will be more convenient if there are several sizes of eraser) CourseNana.COM

    • ◼  Text inputtingallow user to type text anywhere inside the white board. CourseNana.COM

    • ◼  User should be able choose their favourite colour to draw the above features. At least 16 CourseNana.COM

      colours should be available. CourseNana.COM

Of course, you are most welcome to be creative/innovative. CourseNana.COM

Requirements 2: Advanced Features CourseNana.COM

1. Chat Window (text based): To allow users to communicate with each other by typing a text. CourseNana.COM

2. A “File” menu with new, open, save, saveAs and close should be provided (only the manager can control this) CourseNana.COM

3. Allow the manager to kick out a certain peer/user CourseNana.COM

Guidelines on Usage/Operation CourseNana.COM

  • ◼  Users must provide a username when joining the whiteboard. There should be a way of uniquely identifying users, either by enforcing unique usernames or automatically generating a unique identifier and associating it with each username. CourseNana.COM

  • ◼  All the users should see the same image of the whiteboard and should have the privilege of doing all the drawing operations. CourseNana.COM

  • ◼  When displaying a whiteboard, the client user interface should show the usernames of other users who are currently editing the same whiteboard. CourseNana.COM

  • ◼  Clients may connect and disconnect at any time. When a new client joins the system, the client should obtain the current state of the whiteboard so that the same objects are always displayed to every active client. CourseNana.COM

  • ◼  Only the manager of the whiteboard should be allowed to create a new whiteboard, open a previously saved one, save the current one, and close the application. CourseNana.COM

  • ◼  Users should be able to work on a drawing together in real time, without appreciable delays between making and observing edits. CourseNana.COM

Proposed Startup/Operational Model CourseNana.COM

The first user creates a whiteboard and becomes the whiteboard’s manager CourseNana.COM

java CreateWhiteBoard <serverIPAddress> <serverPort> username CourseNana.COM

  • ◼  Other users can ask to join the whiteboard application any time by CourseNana.COM

    inputting server’s IP address and port number CourseNana.COM

    java JoinWhiteBoard <serverIPAddress> <serverPort> username CourseNana.COM

  • ◼  Anotificationwillbedeliveredtothemanagerifanypeerwantsto CourseNana.COM

    join. The peer can join in only after the manager approves CourseNana.COM

A dialog showing “someone wants to share your whiteboard”. CourseNana.COM

  • ◼  An online peer list should be maintained and displayed CourseNana.COM

  • ◼  Allthepeerswillseetheidenticalimageofthewhiteboard,aswellas have the privilege of doing all the operations. CourseNana.COM

  • ◼  Onlinepeerscanchoosetoleavewhenevertheywant.Themanager can kick someone out at any time. CourseNana.COM

  • ◼  When the manager quits, the application will be terminated. All the peers will get a message notifying them. CourseNana.COM

Guidelines/Suggestions for Implementation CourseNana.COM

These phases are suggestions for timely progression, you are most welcome to follow your own approach. CourseNana.COM

Phase 1 (whiteboard) (aim to finish within 2 weeks of announcement) CourseNana.COM

As a starting point: Single-user standalone whiteboard (OR) You are most welcome to implement a single user and single server. CourseNana.COM

Task A: Implement a client that allows a user to draw all the expected elements. CourseNana.COM

Task B: Implement a server so that client and server are able to communicate entities created in Task A CourseNana.COM

Guidelines/Suggestions for Implementation CourseNana.COM

Phase 2 (user management skeleton) CourseNana.COM

  • ◼  Allow the manager to create a whiteboard CourseNana.COM

  • ◼  Allow other peers to connect and join in by getting approval from the manager CourseNana.COM

  • ◼  Allow the manager to choose whether a peer can join in join in means the peer's name will appear in the user list CourseNana.COM

  • ◼  Allow the joined peer to choose quit CourseNana.COM

  • ◼  Allow the manager to close the application, and all peers get CourseNana.COM

    notified CourseNana.COM

  • ◼  Allow the manager to kick out a certain peer/user CourseNana.COM

Guidelines Suggestions (You are most welcome follow your own approach) CourseNana.COM

Phases 3 (Final)
Integrate the whiteboard with the user CourseNana.COM

management skeleton (phases 1 and 2) Design issues: CourseNana.COM

What communication mechanism will be used? Socket, RMI, or any other frameworks of your choice. CourseNana.COM

How to propagate the modification from one peer to other peers? CourseNana.COM

You may need an event-based mechanism CourseNana.COM

How many threads do we need per peer? At least one for drawing, one for messaging CourseNana.COM

Deliverables and Marks CourseNana.COM

Report (4 marks)
Code and Demo of Network-based CourseNana.COM

Distributed Users, Shared Whiteboard: CourseNana.COM

Basic System (16 marks)
Advanced Features (5 marks) CourseNana.COM

FAQ (Frequently Asked Question)
Can I submit without competing Advanced Features? Yes, you can. But you will NOT get associated marks! CourseNana.COM

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. CourseNana.COM

Final Submission CourseNana.COM

Report CourseNana.COM

  • ◼  You should write a report that includes the system architecture, communication protocols and message formats, design diagrams (class and interaction), implementation details, new innovations CourseNana.COM

  • ◼  Don’t document anything you haven’t implemented in the report. This is misconduct and will result in severe penalties. CourseNana.COM

    You need to submit the following via LMS: CourseNana.COM

  • ◼  Your report in PDF format only. CourseNana.COM

  • ◼  The executable jar files used to run your system’s clients/server(s) CourseNana.COM

  • ◼  Your source files in a .ZIP or .TAR archive only. CourseNana.COM

Milestone: Demonstration CourseNana.COM

Demonstrations
You will showcase your system and discuss your design choices CourseNana.COM

during the demos.
Date and venue will be announced closer to the submission date. CourseNana.COM

CourseNana.COM

Deadline and Penalties CourseNana.COM

Deadline:
May 17, 2024 (Friday) at 5:00pm CourseNana.COM

Assignments submitted late will be penalized in the following way: CourseNana.COM

1 day late: -1 mark
2 days late: -2 marks
3 days late: -3 marks
4 days late: -4 marks
etc. (that is, -1 mark for each day delay). CourseNana.COM

Get in Touch with Our Experts

WeChat WeChat
Whatsapp WhatsApp
Unimelb代写,Cloud Computing代写,Distributed Systems代写,Java代写,COMP90015代写,Unimelb代编,Cloud Computing代编,Distributed Systems代编,Java代编,COMP90015代编,Unimelb代考,Cloud Computing代考,Distributed Systems代考,Java代考,COMP90015代考,Unimelbhelp,Cloud Computinghelp,Distributed Systemshelp,Javahelp,COMP90015help,Unimelb作业代写,Cloud Computing作业代写,Distributed Systems作业代写,Java作业代写,COMP90015作业代写,Unimelb编程代写,Cloud Computing编程代写,Distributed Systems编程代写,Java编程代写,COMP90015编程代写,Unimelbprogramming help,Cloud Computingprogramming help,Distributed Systemsprogramming help,Javaprogramming help,COMP90015programming help,Unimelbassignment help,Cloud Computingassignment help,Distributed Systemsassignment help,Javaassignment help,COMP90015assignment help,Unimelbsolution,Cloud Computingsolution,Distributed Systemssolution,Javasolution,COMP90015solution,