CO3219 Internet and Cloud Computing.

Publish By: Admin,
Last Updated: 05-Sep-23
Price: $120

Assignment - Cloud based Collaborative Whiteboard

There are over 250 members in a class. You need to design and develop a Cloud based Collaborative Whiteboard that can be shared between multiple users of this class over the network. You need to run this whiteboard in a distributed environment where people can join in either from their own machines or from distributed class rooms. Your whiteboard should support for basic drawing features such as line, circle, and rectangle as well as text anywhere in the whiteboard.

The Cloud based Collaborative Whiteboard should have the following features:

1. Distributed System Design

You should propose a suitable architecture for your distributed whiteboard and then propose an implementation plan to build the proposed system architecture.
You should consider mechanisms to achieve consistency, scalability, fault tolerance, concurrency and performance in your architecture. You should also propose a suitable network model to manage traffic and provide fault tolerance.
You should produce (and draw) an architecture of your distributed whiteboard system so that it can be deployed in a cloud environment at later stages.

You should evaluate available cloud and distributed server architectures before you design and implement your own distributed whiteboard system. You should have convincing reasons to justify the technology choices that you have made for your architecture.

In this task you should have a clear understanding and justification of the tools and technologies that you will use to implement your Cloud based Collaborative whiteboard.

2. Distributed State Management

The Cloud based Collaborative Whiteboard should allow multiple users to draw simultaneously on a shared interactive canvas.

When a new person joins the system the user should obtain the current state of the whiteboard so that the same objects are always displayed to every active user.

The system should support a single whiteboard that is shared between all of the clients.

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

When displaying the whiteboard, the user interface should show the usernames of other users who are currently editing the same whiteboard. Users must provide a username when joining the whiteboard.