4. DEFINIÇÃO DO SISTEMA PROPOSTO – ROSA P2P
4.2 Definição do ambiente P2P
4.2.2 Estratégias Adotadas
4.2.2.8 Comunicação Entre Peers e Super-peers – Índices SP/P e SP/SP
Segundo Nejdl et al. [Nejdl et al., 2003], o uso de índices de roteamento nos super-peers reduz significativamente o tempo de distribuição da consulta entre os peers que são relevantes. Desta forma, embora muitas estruturas de índices sejam apresentadas na bibliografia, às vezes faz-se necessário que seja definida uma estrutura própria, de acordo com as características do sistema. O uso de uma tabela hash, por exemplo, não seria adequada para o ambiente P2P proposto, uma vez que consultas submetidas ao sistema são semanticamente ricas, não se adaptando a esse tipo de índice. Portanto, de acordo com o estudo de sistemas similares, conforme apresentado na seção 2.5, o sistema se baseará em
Com o intuito de permitir a comunicação e pesquisa eficiente entre os peers, o sistema adotará uma estratégia que utilizará duas estruturas de dados, denominadas de índices de roteamento. Uma será referente à comunicação entre o super-peer e seus respectivos peers (SP/P) e a outra entre um super-peer e seus super-peers (SP/SP).
Embora não faça parte da arquitetura P2P, o portal ROSA também faz parte do sistema. Desta forma, torna-se necessário definir uma estrutura de dados para que ele possa localizar os super-peers relevantes às consultas submetidas pelos usuários. O mesmo é necessário para o serviço de diretório que armazena as referências de todos os super-peers do sistema. Essa estrutura de dados será a mesma utilizada para a comunicação entre um super-peer e seus
super-peers (SP/SP) e será detalhada mais adiante.
Índice de roteamento SP/P:
Cada super-peer possui um índice de roteamento super-peer/peer, conforme mostra a FIG. 4.12. Ela contém informações sobre os metadados de todos os seus peers e a informação referente à quantidade destes peers que se encontram “on-line”, a qual são de suma importância para o funcionamento do sistema.
FIG. 4.12 – Índice de roteamento SP/P no sistema
Essas informações são fornecidas por todos os peers conectados ao super-peer, através do envio de um sub-conjunto das informações contidas na tabela de propriedades e também por ele próprio e podem ser definidas conforme a TAB. 4.2.
P2 Super-Peer P1 Metadados P3 Índice de roteamento SP/P
TAB. 4.2 – Índice de roteamento SP/P
Informação Descrição
Localização do peer Informação sobre o IP do peer.
Características para agregação Informações sobre o(s) assunto(s) e a localização geográfica do peer.
Tipo de peer Informação se o peer é instituição de ensino ou não.
Opção por ser super-peer Informação se o peer deseja ser um super-peer ou não.
Status Informação se o peer está “on-line” ou “off-line”. O peer
com o status “on-line” significa que está ativo no sistema. Características físicas Informações sobre a estabilidade, largura de banda, poder
de processamento e capacidade de memória do peer.
Quantidade de peers Informação sobre o total de peers “on-line”. Indica o total
de peers “on-line” contidos na agregação.
Sua implementação foi realizada através de uma instância em XML e de seu esquema de validação em DTD, os quais podem ser visto na FIG. 4.13 e no apêndice 2, respectivamente.
<?xml version="1.0" encoding="UTF-8"?> <Peers> <peer> <IP>127.0.0.1</IP> <assunto>Engenharia elétrica</assunto> <localizacao>Brasil</localizacao> <tipo>Instituicao de ensino</tipo> <desejaSerSuperpeer>Sim</desejaSerSuperpeer> <status>on-line</status> <caracteristicasFisicas> <estabilidade>Medio</estabilidade> <larguraBanda>Medio</larguraBanda> <poderProcessamento>Medio</poderProcessamento> <capacidadeArmazenamento>Medio</capacidadeArmazenamento> </caracteristicasFisicas> </peer> <qtdPeers>1</qtdPeers> </Peers>
Como em qualquer ambiente dinâmico, essas informações devem ser mantidas atualizadas, para não comprometer nem o desempenho e nem a confiabilidade do sistema. Portanto, cada peer é responsável pela manutenção de suas informações, para os quais
triggers serão implementados de modo a fazer com que quaisquer alterações destas
informações sejam detectadas e enviadas ao(s) respectivo(s) super-peer(s) para as devidas atualizações.
Por outro lado, conforme já discutido na seção 4.2.2.2, caso um peer deixe o sistema, o
super-peer, além de mudar o seu status para “off-line”, deve manter as suas respectivas
informações por um período de tempo (parametrizável), como por exemplo, uma semana. Passado este tempo, as referências devem ser removidas. Isto faz com que o índice de roteamento SP/P mantenha-se atualizado, ao mesmo tempo em que permite que a conexão ou a re-conexão de um peer ao sistema seja mais rápida.
O índice de roteamento SP/P é uma estrutura de dados fundamental para que consultas possam ser direcionadas eficientemente aos peers relevantes e, conseqüentemente, serem respondidas mais rapidamente. Desta forma, ao receber uma consulta relevante a sua agregação, o super-peer analisará as informações de metadados de cada um dos seus peers, reenviando-a automaticamente para aqueles aptos a respondê-la, otimizando assim todo o seu processamento.
Índice de roteamento SP/SP
O índice de roteamento super-peer/super-peer está presente no portal ROSA, assim como em cada super-peer do sistema, conforme ilustra a FIG. 4.14.
FIG. 4.14 – Índice de roteamento SP/SP no sistema Super- Peer 1 Metadados Super-Peer2 Metadados Super-Peer 3 Metadados Índice de roteamento SP/SP Referências a outro super-peer Referência a outro super-peer Portal ROSA Metadados
Ele contém as informações sobre os metadados de cada super-peer conectado ao portal ROSA e/ou ao super-peer, sendo também de suma importância para o funcionamento do sistema. Este índice também está presente no serviço de diretório, onde é povoado com referências a todos os super-peers do sistema.
Essas informações são fornecidas pelos super-peers, através do envio de um sub-conjunto das informações contidas na tabela de propriedades, ao portal ROSA, ao serviço de diretório e aos super-peers a eles conectados, assim como por eles próprios. São basicamente as mesmas contidas no índice de roteamento SP/P, porém são referentes ao super-peer, conforme mostra a TAB. 4.3.
TAB. 4.3 – Índice de roteamento SP/SP
Informação Descrição
Localização do super-peer Informação sobre o IP do super-peer.
Características para agrupamento Informações sobre o(s) assunto(s) e a localização do
super-peer.
Status Informação se o super-peer está “on-line” ou “off-line”.
Quantidade de super-peers Informação sobre o total de super-peers “on-line”.
Indica o total de super-peers “on-line” a qual se está conectado.
Quantidade de super-peers que tratam do mesmo assunto
Informação sobre o total de super-peers “on-line” e que tratam do mesmo assunto. Indica o total de super-peers “on-line” do agrupamento. É utilizada quando se deseja saber para quanto super-peers uma determinada consulta está sendo reenviada (seção 4.3.2.3.4.1).
Sua implementação foi realizada através de uma instância em XML e de seu esquema de validação em DTD, os quais podem ser vistos na FIG. 4.15 (exemplo) e no apêndice 3 respectivamente.
<?xml version="1.0" encoding="UTF-8"?> <Peer> <superpeer> <IP>127.0.0.1</IP> <assunto>Engenharia elétrica</assunto> <localizacao>Brasil</localizacao> <status>on-line</status> </superpeer> <qtdSuperpeers>1</qtdSuperpeers> <qtdSuperpeersMesmoAssunto>1</qtdSuperpeersMesmoAssunto> </Peer>
FIG. 4.15 – Exemplo de uma instância do índice de roteamento SP/SP
A manutenção deste índice ocorre da mesma maneira que a do índice de roteamento SP/P, isto é, cada super-peer é responsável pela manutenção de suas informações exportadas.
Triggers serão implementados de modo a fazer com que quaisquer alterações destas
informações sejam detectadas e enviadas ao portal ROSA, ao serviço de diretório e ao(s) respectivo(s) super-peer(s) para as devidas atualizações.
Quando o portal ROSA, o serviço de diretório ou um super-peer detecta ou recebe uma mensagem de que um super-peer está ausente (o super-peer pode ter deixado o sistema ou se tornado um peer comum), estes além de mudarem o seu status para “off-line”, devem manter as suas respectivas informações por algum período de tempo (parametrizável), como por exemplo, uma semana. Passado este tempo, as referências devem ser removidas. Isto faz com que o índice de roteamento SP/SP mantenha-se atualizado, ao mesmo tempo em que permite que o portal ROSA ou um super-peer não perca tempo tentando localizar o ex-super-peer, permitindo desta forma que a distribuição da consulta seja mais rápida. Este procedimento, como se pode observar, é bem semelhante ao realizado no índice de roteamento SP/P. Com relação ao serviço de diretório, permite que este informe aos novos peers somente referências a super-peer válidos, aumentando o desempenho e qualidade das conexões iniciais no sistema.
O índice de roteamento SP/SP é uma estrutura de dados fundamental para que consultas possam ser direcionadas eficientemente aos super-peers relevantes e, conseqüentemente, serem respondidas mais rapidamente. Desta forma, ao receber uma consulta, o portal ROSA ou o super-peer analisará as informações de metadados de cada um dos super-peers a ele conectado, reenviando a consulta aos super-peers relevantes e estes aos seus peers, otimizando assim todo o processamento. No caso do serviço de diretório, atua oferecendo aos
novos peers todas as possibilidades de conexão possíveis segundo suas características particulares, possibilitando que este possa se unir ao sistema.