Develop a simplified P2P file sharing system

Assignment Help Computer Engineering
Reference no: EM131626561

The Assignment

Peer-to-Peer (P2P) is a type of distributed systems, in which every peer is both a client to request services from other peers and a server to provide services to other peers. Chapter 10 of the textbook focuses on P2P systems and there are a lot of published academic articles about P2P systems such as: Rodrigues, R., Druschel, P., 2010. Peer-to-Peer Systems, Communications of the ACM. 53(10), 72-82.

You may need to access the above resources for conceptual understanding of P2P. However, the knowledge and programming skills that you need for this assignment are the TCP streaming and UDP datagram communication between client/server. The unit lab has practised a number of projects for TCP and UDP for client/server communication; in this assignment you will need integrate both the client and the server components into a peer. To complete this assignment, you need to complete the following 2 parts.

Part 1: Peer Programming

Among many P2P applications, file sharing is a typical application to share available files across all peers of an overlay. In this part, you are to develop a simplified P2P file sharing system. The assumptions on the system are specified as follows.

1. Peers form a networking overlay by IP multicast (reference to Chapter 4.4 of the textbook, Week 5 lecture slides, Week 6 lab projects, and search for other academic articles about IP multicast if necessary).

2. Each peer has a unique ID.

3. Each peer possesses a number of files that can be shared by other peers.

4. Each peer multicasts a file sharing request to all other peers in the overlay. The requested file can always be found but can be found from a single peer only.

5. Once the file is found, the peer, which requests the file, will download the file from the peer, which possesses the file.

6. The shared files are just in plain text format only.

The following screenshots show an implementation of the above file sharing system.

1. 3 peers (with ID of PPP1, PPP2 and PPP3) joined the same IP multicast group. Note: 228.5.6.7 and 8888 are the IP multicast address and port number that were used in this example.

2. At the beginning, PPP1 possessed file1, PPP2 possessed file2 and PPP3 possessed file3.

3. PPP1 requests file2, which was found in PPP2 and then downloaded from PPP2 into PPP1.

4. PPP2 requests file3, which was found in PPP3 and then downloaded from PPP3 into PPP2.

5. PPP3 requests file1, which was found in PPP1 and then downloaded from PPP1 into PPP.

The above example shows the equity between peers, that is, every peer is both a client and a server to share files.

To implement the framework, you need to implement. The peer's main thread for starting the application. The main thread will create at least two independent threads, of which one is responsible for sending a request to all other peers by IP multicast and downloading the found file from a peer, and the other thread is responsible for sending a file once it is requested by other peers.

In addition, it is required to use UDP protocol for IP multicast of requests and to use TCP protocol for file sending/downloading. Note: a good practice is to implement the 3 threads by 3 Java classes like Peer.class, PeerService1.class and PeerService2.class in the above screenshots.

Part 2: Documentation

After the implementation of the framework, prepare a document to include:

1. An end user' instruction about how to use your system.

2. Any suggestions about possible improvement of the proposed system.

Textbook - DISTRIBUTED SYSTEMS Concepts and Design, Fifth Edition by George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair.

Attachment:- Assignment File.rar

Reference no: EM131626561

Questions Cloud

Explain matter was solved ethically : Do you believe terry had the opportunity to tell his story, Do you think this matter was solved ethically
Prepare a detailed report for managing innovation : Prepare a detailed report for managing innovation and technology to deliver a specific and defendable operational outcome.
Explain briefly distinguishing features of contract costing : As soon as materials are delivered to the site. they are charged to the Contract Account. A record is also kept of materials as they are actually used.
Emphasize the importance of an organizations culture : Briefly summarize each organization's mission/vision/purpose and values/guiding principles. Organizations will call these by different names.
Develop a simplified P2P file sharing system : In this part, you are to develop a simplified P2P file sharing system. The assumptions on the system are specified as follows
Creating and maintaining personal health records : Increasingly patients are creating and maintaining personal health records (PHRs) with data from a variety of healthcare providers as well as data.
Define rule in favor of coca cola : The court agreed that the original formulation of Coca Cola included cocaine. Why did the court, nonetheless, rule in favor of Coca Cola
Which type of hospital the va hospitals are classified : Hospitals are classified in a number of different ways. For example, the Veterans Administration (VA) hospitals are classified as which type of hospital?
Develop multiple projects : Develop a c++ project with the following features (DO NOT develop multiple projects -- only one project with all the features)

Reviews

len1626561

9/4/2017 7:59:28 AM

Australian student, it’s a 35 marks assignment, I already given first assignment of this subject, and I got 8 marks out of 20. The below attached file is the second assignment, and it’s a 35 marks, its very important for me to get good marks, because i got only 8 marks in my previous assignment, if I did not get good marks. I will definitely fail......I WANT 32 OR 33 MARKS IN THIS ASSIGNMENT OUT OF 35.because I got only 8 marks in assignment 1,...and I need 40 marks to pass..so 32 or 33 I want in this assignment to pass this subject.

len1626561

9/4/2017 7:59:22 AM

You need to provide the following files in your submission. 1. Files of Java source code of the implementation. The in-line comments on the data structure and program structure in the programs are required. These source code files must be able to be compiled by the standard JDK (Java Development Kit) or NetBeans from Oracle. The compiled Java class files of the source code. These Java classes must be runnable on the standard Java Runtime Environment (JRE) or NetBeans from Oracle. A Microsoft Word document to address the issues as specified in Part 2 above. All the required files must be compressed into a zip file for submission. You must submit your assignment via the online submission system from the unit web site. Any hardcopy or email submission will not be accepted. After the marked assignments are returned, any late submissions will not be accepted.

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd