Develop a simplified P2P file sharing system

Assignment Help Computer Engineering
Reference no: EM131644483

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 PPP3.

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.

Attachment:- Assignment Files.rar

Reference no: EM131644483

Questions Cloud

What is a parametric and nonparametric test : Choose one of the following three questions and post your answer: In your own words, what is a nonparametric test? What is a parametric test (Section 13-2)?
What is the probability that you pay a positive amount : In Problem from the previous section, we stated that the damage amount is normally distributed.
Compare and contrast unshielded twisted pair and coaxial : Describe one or two of the advantages and/or disadvantages associated with using each cable type for a business's network infrastructure
What is a literature review : Review of the literature, presentation of the case, analysis of case dynamics and political outcome, policy recommendations, conclusion.
Develop a simplified P2P file sharing system : You may need to access the above resources for conceptual understanding of P2P. In this part, you are to develop a simplified P2P file sharing system
Discuss about innovative leadership : What did you learn. What were your expectations vs. their responses. Do you believe this person is an innovative leader
Analyze the potential for a material misstatement : Analyze the potential for a material misstatement in the financial statements based on the issues identified in your initial evaluation.
Demonstrates hypoxemia and mild respiratory alklosis : TV is hospitalized with DVT in her left leg as a complication of abdominal surgery. She is being treated with bedrest and anticoagulant therapy.
Discuss characteristics of the triangular distribution : Continuing the previous problem, assume, as in Problem, that the damage amount is normally distributed with mean $3000 and standard deviation $750.

Reviews

len1644483

9/16/2017 3:06:26 AM

Australian student, please make sure that quality should be good and I need good marks in this assignments for pass. Submission - You need to provide the following files in your submission. 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.

len1644483

9/16/2017 3:06:19 AM

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. The Marking Criteria- Part 1: Peer Programming (compilable Java source code file with necessary in-line comments, runnable Java class files).

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