Reflect on research findings and demonstrate ability in

Assignment Detail:- DDE602 Distributed Development Implement a Large-Scale Distributed System Learning Outcome 1: Prioritise and distinguish the core elements of distributed system technologies and trends in the industry; Learning Outcome 2: Work independently with a distributed system-based problem and demonstrate knowledge of the core concepts of distributed development; Learning Outcome 3: Reflect on research findings and demonstrate ability in developing large-scale distributed applications- Learning Outcome 4: Critically evaluate distributed system development considering realistic planning- Learning Outcome 5: Research and analyse various types of distributed system development projects considering scalability and fault tolerance- Learning Outcome 6: Create and analyse a design strategy informing the development of distributed applications- Part Summary In this assignment, you will be implementing a peer-to-peer -P2P- application- The system will have a master and slaves and will be responsible for basic file sharing between peers- The master in the system will implement a centralised index and be responsible for discovering new slaves, monitoring them, keeping track of what files they have and finally, redirecting peers to them to download the file- In summary, you will • Demonstrate an understanding of P2P computing concepts;• Apply P2P concepts in code; and• Produce scalable, fault tolerant and robust systems- Context Master The master will listen on a well-known port for slaves to join the network- A slave will connect to the master when it wishes to advertise files available for download- The master will make note of that slave and periodically test its responsiveness- In the event that the slave cannot be reached, the master will remove the slave from its memory and no longer advertise it or its services to other peers- Once joined, a slave will advertise to the master what files it has available for download- In this network, the names of the objects are mutually exclusive; that is, no other slave can advertise the same file name- Slaves In this network, slaves can either advertise files that can be downloaded by peers or they can search and download a specified file from a peer once it has been discovered by the master- When a slave wishes to advertise files available for download, it contacts the master and advertises the file is available for download- Similarly, a slave may revoke a file being downloaded at any time- When this occurs, the master updates its central index of what is available on what peer- When a slave wishes to download a file, it contacts the master and performs a search- If the file is found in the centralised index, the master returns the address of the slave and the requesting slave attempts to download the object from its peer- Architecture and Behaviour As the developer of this system you have complete design authority over how it will be implemented- In developing the system, you should take reasonable steps to ensure its robustness and best performance- Part Instructions To complete this assignment, follow these steps: Step 1: Implement a P2P environment with one master instance and multiple slave instances, all listening to different ports- This can be implemented in a single computer or over multiple computers- Then, write programs for all the instances to connect with each other using necessary protocols- Step 2: Implement your P2P system, such that if the master fails, peers can continue to discover and download files from one another- Step 3: Implement the following: o A protocol is implemented in the master to accept registrations from peers-o The master implements an algorithm to monitor peers and manage the registrations of failures to connect to peers-o The master is able to accept registrations of a file from peers and enforce mutual exclusion constraints-o Peers implement a protocol to register availability and the files to the master-o Slaves implement threads to act as both peers and slaves as outlined above- Both peers and slaves have the ability to identify and download objects using sockets-o The master and slaves should be able to do all of the above in a scalable fashion with a growing number of activities between them- Step 4: You can use the programming language of your choice- However, Python is recommended for this type of project- The code must be well formatted and conform to Python naming conventions- You also need to provide sufficient comments in the code- Referencing It is essential that you use appropriate APA style for citing and referencing research- Attachment:- Distributed Development-rar




Most Recent Questions

Captcha

Helping Students for Excellence in Academics, GET Help with Assignment? Order Now