Tapestry é uma Tabela Hash Distribuída (DHT - Distributed Hash Table) que fornece localização de objeto, roteamento, e infraestrutura de multicast descentralizados para aplicações distribuídas. Ele é composto de uma rede de sobreposição par-a-par que oferece um roteamento para recursos próximos de forma eficiente, escalável, auto-reparável e ciente de localização.

Introdução editar

A primeira geraçào de aplicações par-a-par, incluindo Napster, Gnutella, tinham limitações como um diretório central para o Napster e consultas baseadas em inundação do Gnutela, limitando a escalabilidade. Para resolver esses problemas, uma segunda geração de aplicações P2P foram desenvolvidas incluindo o Tapestry, Chord, Pastry, e CAN. Essas sobreposições implementam um infraestrutura extensível que fornece localização de objetos e roteaento descentralizados focando na eficiência e minimizando a latência da mensagem. Isso é obtido uma vez que o Tapestry constrói localmente tabelas de roteamento ótimas na inicialização e mantém essas tabelas a fim de reduzir o impacto do roteamento. Além disso, o Tapestry permite a determinação da distribuição de objetos de acordo com as necessidades de uma dada aplicação. Similarmente, o Tapestry permite que aplicações implementem multicast na rede de sobreposição.