UNIVERSIDADE FEDERAL DE SANTA CATARINA Florianópolis, 5 de junho de 2007. Disciplina: Projetos I Aluno: Bruno Bruggemann – 01238035 Resumo da Dissertação Tema da Dissertação: WEB2PEER: uma infra-estrutura baseada em redes peer-to-peer para a publicação de páginas na internet. – CURITIBA - 2007 Autor: Heverson Borba Ribeiro Descrição da dissertação: apresentada ao Programa de Pós-Graduação em Informática da Pontifícia Universidade Católica do Paraná como requisito para obtenção do título de Mestre em Informática. Área de Concentração: Ciência da Computação Orientador: Prof. Dr. Lau Cheuk Lung A dissertação lida conta um breve histórico sobre a internet, insere alguns conhecimentos sobre a mesma e descreve o “mecanismo” para a publicação de páginas no modo como é feito atualmente destacando suas limitações. A proposta do trabalho é uma infra-estrutura descentralizada para a publicação de páginas na internet através de redes peer-to-peer. É abordada sua principal vantagem, que seria a independência de servidores centralizados ou endereços HTTP. A proposta em questão permitiria que qualquer pessoa fazendo uso de, por exemplo, uma conexão adls pudesse publicar e replicar páginas a partir da sua máquina sem necessidade de recorrer a servidores ou serviços especializados. Para isto foi criado o Web2peer, que é um navegador web que utiliza redes peer-to-peer para acessar a web. Continuando são colocados os conceitos sobre redes peer-to-peer, citando suas características, vantagens e classificações de forma a justificar a escolha desta. São colocadas várias definições retiradas de literaturas, e algumas com comentários do autor discordando das mesmas. Também é explicado como funciona a replicação nelas, e as formas como pode ser feita. Juntamente com todo o material teórico sobre o assunto são citadas diversas redes peer-to-peer já difundidas, com um breve histórico e descrição do funcionamento, tais como o Napster, Gnutella, FreeNet. É explicado que o protocolo JXTA, que é a tecnologia utilizada para o desenvolvimento da aplicação, é uma tentativa de padronização do desenvolvimento de redes peer-to-peer para permitir a interoperabilidade entras elas. Ele foi concebido inicialmente pela Sun em 2001, e desenvolvido com a participação de instituições acadêmicas. Ele estabelece uma rede overlay sobre a internet permitindo que os nós interajam diretamente e se auto-organizarem independentemente da conectividade e topologias das suas redes de origem. Também são colocadas explicações sobe as tabelas hash distribuídas (DHT), que são tabelas que fornecem o mapeamento das chaves em valores como as tabelas hash originais, com o diferencial de particionar a tabela entre os diversos nós participantes da sua rede. No software será utilizada a OpenDHT, que utiliza uma implementação chamada de BAMBOO, que é uma implementação da tabela hash distribuída Pastry. Os nós da openDHT ficam distribuídos em laboratórios de instituições cientificas ao redor do mundo trabalhando de forma colaborativa. Como a aplicação proposta possui características similares à outros trabalhos, mesmo sem estes terem apresentados as mesmas funcionalidades, foram citados características e históricos destes outros trabalhos, como o FreeWeb que propõe-se a oferecer uma publicação de páginas mais simplificada, porém com recursos extremamente fracos. O browser compartilhado associando a tecnologia JXTA a um navegador para trabalhos colaborativos. E O Coral oferecendo aumento na disponibilidade de conteúdos através de uma rede peer-to-peer localizada entre o servidor e o cliente. Mas é colocado que nenhum apresenta benefícios mais amplos como os do Web2Peer. Após é apresentado a estrutura do Web2Peer, explicando seu funcionamento e que sua implementação dentro de um web browser e mantendo as características tradicionais deste. É explicado que a medida que se vai acessando os conteúdos das páginas replicas vão sendo criadas e tornando o modelo independente de servidores centralizados. Nessa infraestrutura o DHT permitirá realizar buscas mais precisas das páginas em comparação com a tradicional do JXTA. É explicado também como é o mecanismo de publicação de páginas e localização de páginas. Para evitar problemas também foi um mecanismo para controle de atualização de páginas tendo em vista devida a descentralização do conteúdo pode-se não saber mais qual é a versão mais atual. No capitulo seguinte são colocados dados sobre a implementação e a avaliação dos resultados, começando pelo navegador, o cliente DHT, a rede JXTA que foi criada usando a API da biblioteca p2psockets. Esta é uma implementação da biblioteca sockets do JAVA para trabalhar sobre a rede JXTA. São colocadas diversas informações extremamente técnicas sobre os assuntos e explicando as razões do uso dos mesmos. Por fim são apresentados os resultados obtidos informando que foi utilizado como linguagem de programação o JAVA 2 SE em conjunto com a IDE Eclipse. Também são colocadas informações sobre a criação do servidor. Os resultados mostraram que o tempo de conexão ficou extremamente menor. O ambiente de testes e validação também foi citado explicando como foram executados os testes. Nos últimos capítulos foram apresentados a conclusão e os futuros trabalhos que o sistema proposto pode propiciar além das referencias bibliográficas..