Tabale Hash

Bom dia Pessoal.
Preciso muito da ajuda de todo mundo…
Preciso fazer um trabalho que contenha as seguintes funcionalidades:

O objetivo deste trabalho é o projeto e implementação de uma agenda telefônica que utilize tabela hash distribuída (DHT) para armazenar os dados. Pode-se usar qualquer proposta de DHT da literatura como por exemplo CAN, Chord, Patry, Tapestry e Kademlia. A agenda deve ter funções para:

  1. Armazenar um registro (nome e telefone).

  2. Obter o telefone a partir de um nome.

  3. Remover um registro (nome e telefone).

  4. Listar todos os registros armazenados (função opcional).

Esse é basicamente um trabalho de pesquisa; faça-o.

De qualquer forma, vou pô-lo no site inicial:

(Acho melhor você usar o link da Wikipedia em inglês, porque ele tem mais links para coisas interessantes:
http://en.wikipedia.org/wiki/Distributed_hash_table )

A partir daqui você pode tentar encontrar os links para essas tais propostas.

Algumas dessas propostas são bem mais complexas que outras; primeiramente, estude-as, e então escolha a que for menos complexa para ser implementada. Não adianta, por exemplo, baixar o código-fonte do E-Mule (que implementa uma DHT) e não entender bulhufas o que foi feito.

Você conhece algum código pronto que eu posso ter por base?
Não tenho ideia de como posso fazer essa implementação…

Bom, eu já dei uma pista - o eMule (que provavelmente você já deve ter usado) está disponivel no SourceForge, em http://sourceforge.net/projects/emule/ ).

Então, na verdade eu sei quais são os aplicativos que empregam essa tecnologia…
Preciso de uma ajuda para desenvolver o codigo…eu baixar o emule não vai me ajudar em nada…
Preciso de uma aplicação com codigo livre para er utilizar no meu trabalho… se souber de um trabalho pronto por favor me mande o link…

Muito provavelmente você vai ter de passar alguns minutos no Google.

Procure pelas tais tecnologias descritas (CAN, Chord, Patry, Tapestry e Kademlia); algumas delas devem ter até uma implementação de referência. Como os nomes são um pouco comuns, é bom adicionar “DHT” na sua busca.

Eu passei o link da Wikipedia, porque ele tem links para os lugares onde foram descritas as tais tecnologias; é sempre melhor você começar pelo site dos autores que descreveram, por exemplo, o Kademlia. A partir desses sites, você pode procurar se há uma implementação Java dessas coisas.

A propósito, se você baixar o eMule ou o BitTorrent, provavelmente a parte de DHT está meio “perdida” no meio dos fontes, e nem sei se eles descrevem qual algoritmo de DHT foi usado. É melhor você fazer sua pesquisa.