Assignment 4

The purpose of this assignment is to introduce students to Peer-to-Peer Computing and the Chord Distributed Hash Table (DHT) system. In assignment solutions, students shall demonstrate how peer-to-peer techniques can be used to construct scalable, resilient, and self-managing software systems in distributed network environments.

In this assignment, students are to implement the Chord DHT algorithms for building a decentralized message delivery system. Note: Students are NOT allowed to use the OpenChord framework (the framework used in the P2P tutorial) for the assignment, the task of the assignment is for students to implement the Chord logic themselves. Messages have the following format:

Field Type Size Description
id string 32 characters unique message identifier
sender string 1-255 characters message sender
recipient string 1-255 characters message recipient
topic string 1-255 characters message topic
timestamp long integer 64 bits timestamp of message creation
content string 0-65536 characters message content

For this assignment, students are free to develop their own communication and synchronization routines but are advised to base them on an existing solution they know work, e.g., the web service message delivery routine developed in assignment 1. Design of the system, including data representations and protocol issues are left to students as part of the exercise. A brief assignment report documenting design decisions, issues encountered, and a discussion of the solution is required as part of the assignment.

Extra Credit

For extra credit, students can secure the message exchanges and communication in the system using the routines developed in assignment 2.

Development Environment

For this assignment, students are recommended to make use of the provided Restlet or Axis 2 development packages. See the Web Services and Peer-to-Peer Computing tutorials for information on the development environments.

Examination

The assignment is to be solved individually. Place all files pertaining to your solution in

~/edu/5dv153/assignment4/

Source code should be placed in

~/edu/5dv153/assignment4/src/

You assignment report should be placed in

~/edu/5dv153/assignment4/report/

Deadline

See the course schedule for assignment deadlines.