Generation II Peer-to-Peer Distributed System (Java)