I made an imlplementation of Chord protocol it can be found
here in CVS repository
Here is a brief explanation of code: there are two subprojects one named
site and one named
hub.
Site project is a site to be used as a registry where every Chord node says "I'm alive!".
I used this approach because I needed a dinamic way to find "the known node" to be used for join method at node's bootstrap.
Site is build onto
Springframework and it keeps an in-memory registry of alive nodes. At moment it has no way to know is a node is down. Nodes communicate with site via XML on HTTP.
Hub project is the actual implementation of Chord protocol.
I wanted to concentrate on chord protocol so I used some open source framework and toolkit for common tasks.
Hub lifecycle is managed throught
Picocontainer , an IOC framework.
Stabilization tasks are scheduled by
Quartz scheduler; HTTP comunication is made by Jakarta HTTP commons client, logging is delegated to Log4j and administration is made using JMX and MX4J.