TomP2P is an extended DHT, which stores multiple values for a key. Each peer has a table (either disk-based or memory-based) to store its values. A single value can be queried / updated with a secondary key. The underlying communication framework uses Java NIO to handle many concurrent connections.
Keywords: Overlay Network, Peer-to-Peer (P2P), Distributed Hash Table (DHT), Java DHT implementation, Kademlia.
New major release of TomP2P 4.0.4. The new major features are:
TomP2P moved from Subversion to Git. The project source code can be found on GitHub. The subversion repository is still read-only accessible.
New major release of TomP2P 4.0.3. The new major features are:
New major release of TomP2P 4.0.2. The new major features are:
New major release of TomP2P 4.0.1. The new major features are:
TomP2P is used in academia in several projects at the Communication Systems Group and several papers were published that used TomP2P. The target version of TomP2P is Java 5 and TomP2P also has been sucessfully tested and used on Android. TomP2P is distributed under the Apache License, Version 2.0.
" ... With your implementation I was able to overcome two exams with honors last week, making an application based on DHT. [...] Thank you again, Alessandro ... "
TomP2P has been successfully used in academic projects: EC-GIN (Europe-China Grid InterNetworking), EMANICS (European Network of Excellence for the Management of Internet Technologies and Complex Services), and "SmoothIT (Simple Economic Management Approaches of Overlay Traffic in Heterogeneous Internet Topologies):http://www.smoothit.org/. Within these projects features and bug fixes have been added to make TomP2P a stable and flexible P2P library.
The following list provides an overview over similar Java DHT implementations that have recently showed activity (mailing list, releases). If you think that a project is missing here, please concact me!
The first TomP2P version was created in 2004 by Thomas Bocek and used for his master’s thesis for a distributed DNS. This version used blocking IO operations and did not scale well. Thus, TomP2P version 2 has been created and used Apache MINA. This second version with the asynchronous communication framework scaled better, but TomP2P was not well designed for non-blocking operations and a third version has been designed from scratch. The third version of TomP2P uses Netty, which is a high performance Java NIO framework. The design of the third version was tailored to non-blocking operations and have been used successfully in many academic projects.