Implementing content addressable network (CAN) protocol using Java RMI and sockets