60ª Reunião Anual da SBPC




A. Ciências Exatas e da Terra - 2. Ciência da Computação - 8. Processamento Paralelo e Distribuído

IMPLEMENTAÇÃO DE UM SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS EM REDES PEER-TO-PEER USANDO O FRAMEWORK JXTA

Francisco Geovane Alves da Silva1

1. UNIVERSIDADE ESTADUAL DO CEARÁ - UECE


INTRODUÇÃO:
A necessidade de se integrar e coordenar dados surge para obter e analisar dados em ambientes distribuídos. Das diversas arquiteturas distribuídas existentes, há de se destacar a Web, a computação em Grid e, de forma mais recente, os sistemas P2P. Amplamente popularizado pelas aplicações e sistemas de compartilhamento de arquivos, as redes P2P de forma conceitual se comportam como uma rede virtual, podendo interligar em sua rede de forma transparente aos participantes, dispositivos de diversas arquiteturas, velocidades de conexão, protocolos de rede e transporte, entre outras características. Neste ambiente, pode ser provida a rede diversos serviços, que são compartilhados por todos, como dados não-estruturados – por exemplo, arquivos de música. Atualmente, uma nova classe de sistema surge para a utilização de redes P2P no compartilhamento de dados estruturados / semi-estruturados, como dados oriundos de bases de dados e / ou arquivos XML, por exemplo. Este trabalho visa apresentar uma implementação do sistema PDMS – Peer Data Management Systems, sistema de gerenciamento de dados em uma rede P2P –, utilizando a plataforma de desenvolvimento de aplicações P2P da Sun Microsystems, JXTA.

METODOLOGIA:
O trabalho foi baseado inicialmente no estudo da arquitetura JXTA, disponibilizado pela Sun para a criação de aplicações P2P e, em seguida, o estudo da arquitetura do PDMS para implementação de sistemas de bancos de dados estruturados e homogêneos. Foram implementados alguns módulos do PDMS - Gerenciador de Consultas e Gerenciador de Cache - usando a linguagem de programação Java, em especial utilizando o framework Java do JXTA, o JXSE, e a rede P2P sendo simulada localmente usando a aplicação JXTA Shell, aplicativo que reúne as funcionalidades do JXTA numa interface semelhante ao Shell de sistemas Unix. Por ter acesso local – cada instância do JXTA Shell representa um ponto –, foi usado o mesmo SGBD - MySQL –, com tabelas distintas para cada ponto, porém todas com o mesmo esquema. A escolha dessa abordagem em detrimento a um acesso a dados não-estruturados ou a realização de testes em um ambiente real visa o entendimento da funcionalidade do PDMS sob as características básicas – dados estruturados, mesmo SGBD e mesmo esquema de tabelas -, e baseado nesta funcionalidade, ampliar a aplicação em trabalhos futuros.

RESULTADOS:
A implementação adotada do JXTA a princípio foi uma simples troca de mensagens – uma consulta como uma string e o resultado desta consulta, como um objeto XML –, utilizando o Peer Resolver Protocol, um dos seis protocolos da especificação JXTA. A troca de mensagens entre duas instancias do JXTA Shell ocorre de forma rápida, como uma consulta convencional ao SGBD. Quanto mais instancias do Shell são adicionadas a rede, maior fica o TTL – Time-to-live – das mensagens originadas do ponto requisitor da consulta. Segundo pesquisas realizadas pelo projeto ECEG - The Royal Institute Of Tecnology, uma rede P2P usando JXTA pode operar com troca intensa de mensagens, de forma satisfatória, em uma rede de até 60 ou 70 pontos. Para os testes, foram usados de duas a cinco instâncias do JXTA Shell, sendo o número de instâncias delimitado pelo TTL das respostas à requisição, e da junção das respostas para a exibição dos resultados. Uma consulta que geralmente levaria menos de um segundo para ser realizada, pode levar cerca de 10 segundos para apresentar os resultados ao usuário. Para isso, foi implementado um cache de resultados a consultas freqüentes requeridas pelo ponto. Isso melhorou o desempenho deste tipo de consulta de forma considerável, considerando as características da simulação, quando os esquemas dos bancos são equivalentes e imutáveis durante a permanência dos pontos na rede.

CONCLUSÕES:
Para a abordagem apresentada, o PDMS se mostra eficaz no ambiente da rede P2P, já que o mapeamento entre os pontos não ocorre de forma centralizada, mas entre os pontos vizinhos, sendo o PDMS unicamente um sistema de consulta aos dados compartilhados. O teste mostrou a importância do gerenciamento de estruturas de cache para o armazenamento de resultado de consultas freqüentes, evitando assim acesso desnecessário à rede, aumentando o tempo de espera pela resposta. Como trabalhos futuros, pode-se destacar a utilização do JXTA e, em especial, sua implementação para Java, para prover mobilidade e interoperabilidade do código entre diversos sistemas (Windows, Linux, Symbian), arquiteturas (x86, ARM, PowerPC) e tipos de dados (estruturados, semi-estruturados, não-estruturados), e também implementando o conceito de vizinhança semântica, que reuniria os pontos em grupos semânticos de acordo com seus esquemas, otimizando as consultas aos dados compartilhados na rede P2P.



Palavras-chave:  PDMS, Java, P2P

E-mail para contato: geovane@larces.uece.br