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/