Team-based Project of Peer-to-Peer Content Distribution and Distributed Query
This assignment is a team-based software development project. You will work in a small team for the design and development of the Peer-to-Peer distributed application. You will practise to work collaboratively and communicate effectively as part of a productive team.
In this assignment, you are to develop a particular Peer-to-Peer (P2P) application - content distribution and distributed query. The application allows peers to form an overlay and share information on the entire peer overlay. In this assignment, you will need to upgrade a client and a server to a peer. The peers are to form an overlay by IP multicast and the information held by a peer can be shared by any other peers. When a peer (requester) queries a question, it multicasts a request including the question to the peer overlay. Any peers (repliers) that have an answer to the question will respond to the requester. To query a question, a UDP datagram via IP multicast is used. Once the answer is found, replying the answer is to use another separate UDP communication between the requester and the replier. To complete this assignment, you need to complete the following 2 parts. In addition to multithreading and UDP packets, IP multicast must be used to form the peer overlay. Thus, you will need to review 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) before starting the assignment. Client/server model is also useful for this assignment as a peer is a client and a server at the same time.
The assignment specification is as follows.
Part 1: Software Development and Documentation.
In this part, you are to develop a simplified system of Content Distribution and Distributed Query. The assumptions on the system are specified as follows.
1. Each peer has a unique ID.
2. Peers form a networking overlay by IP multicast.
3. Each peer has answers to some questions that can be shared by other peers.
4. Once a peer has a question, it needs to compose a request, including the question and communication information such as the reply IP address and port number.
5. Each peer can multicast a query request to all other peers in the overlay. After that, the peer is waiting on the reply port for answers.
6. To simplify the problem, we assume that the answer to a query question can always be found from at least one peer.
7. Once the answer to the question is found, the replier peer (the one who has the answer) will use a UDP datagram to send the answer to the requester peer (the one who asks the question).
8. A peer needs to ignore the requests from itself because by default IP multicast sends a message to every peer on the overlay.
The aforementioned rules have shown the equity between peers, that is, every peer is both a client and a server to share contents by distributed processing. Your implementation must satisfy all the aforementioned requirements in order to get a full mark.
On completion of the implementation of the framework, prepare a document to include:
1. An end user instruction about how to compile, run and test your system.
2. Description of key potential problems with IP multicast.
1. At least 3 peers in 3 individual folders, of which each folder contains:
- Files of Java source code of the implementation. The in-line comments on the data structure and program structure in the programs are required. The source code files must be able to be compiled by the standard JDK (Java Development Kit) or NetBeans IDE from Oracle.
- The compiled Java class files of the source code. The Java classes must be runnable on the standard JRE (Java Runtime Environment) from Oracle.
Note: an easy way to provide the source code and executables is to submit them in a NetBeans project.
2. A Microsoft Word document to address the issues as specified previously in Part 1.
Part 2: Teamwork Report
A student, who completes the whole project as a member of a productive team, is to prepare a document in the following format and address the following questions.
Template A
1. Team Details
a. Team Name (optional):
b. Your Name and Student ID:
c. Team Leader (Name and Student ID):
d. Other Team Members (Name and Student ID):
2. Teamwork Report
a. Describe team forming, task assigning and your role and responsibility, and the project timeline
b. Describe how the teamwork is conducted for the project
c. Describe a collaborative problem in the teamwork and how the problem is negotiated and solved by the team.
A student, who separates/quits a team in the middle of project, is to prepare a document in the following format and address the following questions.
Template B
1. Team Details
a. Team Name (optional):
b. Your Name and Student ID:
c. Team Leader (Name and Student ID):
d. Team Members (Name and Student ID):
2. Teamwork Report
a. Describe team forming, task assigning and your role and responsibility, and the project timeline
b. Describe why the teamwork has failed.
c. Describe and justify the impact on you and other team members caused by the failure of teamwork
Attachment:- Content Distribution and Distributed Query.rar