Subject Code : CO3219
Country : United Kingdom
Assignment Task -                 
 

Initiation

 

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.

 

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. 

3. Consensus and Leadership 

Users should vote to elect a leader who then has the admin rights. A new leader should be elected  using a consensus protocols (Paxos, Raft etc). This node/user essentially takes charge of the system, we call this node the “leader”. When this node fails, then the system detects this and users should  elect another node to take the leadership role.  

The leader should allow only a selected group of users/peers to write/draw on the whiteboard at the  same time. Other users who want to participate should wait in a queue to be given permission. 

All the peers will see the identical image of the whiteboard, as well as have the privilege of doing all  the operations.  

Only the leader of the whiteboard should be allowed to create a new whiteboard, open a previously  saved one and close the application.  

4. Replication 

The copy of the whiteboard should be saved when all users have agreed to the whiteboard state that  meets their requirements. This should be achieved through implementing a consensus protocol. 

The users/nodes/servers should respond with a “yes” or “no” vote regarding the transaction. If more  than 50 percent servers respond with a “yes” vote, the leader issues a commit operation to the servers  to make the transaction durable; i.e., the whiteboard state has been committed to all participating  servers (strongly consistent vs loosely consistent).  

5. Performance and concurrency 

Users should be able to work on a drawing together in real time, without appreciable delays between  making and observing edits & You can have multiple servers that communicate with each other or a single central one that manages  all the system state.  

You have to consider when/what messages are sent across the network because sending/receiving  too many messages across users will have performance implications. This will require designing an  exchange protocol that establishes which messages are sent in which situation and the replies that  they should generate.  

6. Docker Service

You should create a Docker container for your cloud based whiteboard system and deploy it in the  Docker registry or anther registry of your choice. You should share the client details on how to access  your Docker container for the system so that we can test your implementation. All details accessing and running your service should be written in step by step so that it only takes two minutes (max) to  test the complete functionality.  

 


This CO3219 - IT Assignment has been solved by our IT Experts at UniLearnO. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment Experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.

  • Uploaded By : Roman
  • Posted on : November 30th, 2018
  • Downloads : 257

Whatsapp Tap to ChatGet instant assistance