Elementos da Arquitetura P2P (Parte I) Fernanda Marília TIPOS DE PEER Há três tipos de peer: - simple peers - rendezvous peers - router peers No último o nome difere pela capacidade de terem ou não algumas funcionalidades fundamentais para a criação de grupo. Os peers roteadores mantém uma tabela interna com os usuários aptos a entrarem e usarem os serviços do grupo. TIPOS DE PEER - Peer Simples: É designado a servir um único usuário final, permitindo a este prover e consumir serviços da rede. - Peer Rendezvous: Fornece as localizações na rede para a descoberta de outros peers e de seus recursos disponíveis. - Peer Router: Fornece um mecanismo para que os peers se comuniquem através de firewalls ou NATs. PEER GROUPS Peer Group (segurança/integridade dos dados): Um grupo de peers com um conjunto comum de interesses ou objetivos. Peer groups podem fornecer aos seus membros serviços que não estão diretamente acessíveis aos outros peers da rede. Eles podem ser divididos por: - Aplicação a ser executada no grupo em si - Requisitos de segurança dos peers envolvidos - Necessidades de informações de estado dos seus membros PEER GROUPS Na arquitetura OSI, um peer group é um grupo formado por unidades funcionais numa dada camada da rede na qual todas as funções realizadas por uma unidade funcional se estendem pelo sistema na mesma camada. PEER GROUPS Groups services: funcionalidades que um grupo oferece a qualquer membro desse grupo. Pode ser disponibilizada por vários peers permitindo redundância. Desde que um peer esteja num peer group os serviços desse grupo estão disponíveis. ENDPOINTS, PIPES E MENSAGENS Infraestrutura de Transporte: - Endpoints: a origem ou destino de qualquer porção de dados transmitida na rede. Correspondem às interfaces de rede usadas para enviar e receber dados. É definido por um par de hosts, cada um com seu ip e porta. Já que TCP identifica uma conexão por um par de endpoints, um número de porta pode ser compartilhado por múltiplas conexões na mesma máquina. TCP define um endpoint como um par de inteiros (host,port). ENDPOINTS, PIPES E MENSAGENS Qualquer par de endpoints pode abrir um socket e "conversar" diretamente entre eles mesmos. Ex: Cartão de visitas de uma pessoa: – Telefone, endereço, e-mail, fax, celular... • Um peer pode ser alcançável por um número de endereços virtuais ou endpoints ENDPOINTS, PIPES E MENSAGENS Por que usar endpoints? • Mudanças no estado do peer • Um endpoint pode não estar sempre disponível • Peer pode usar somente um protocolo específico (requisitos de segurança, p.ex.). ENDPOINTS, PIPES E MENSAGENS - Pipes: canais de comunicação virtuais, unidirecionais, assíncronos, conectando dois ou mais endpoints. Ex: • Um canal de comunicação entre dois peers tem uma ID • Os pontos finais do canal são identificados pelos endpoints • Se o endereço IP muda? A rede JXTA ajusta o roteamento da mensagem • Dois endpoints podem usar diferentes protocolos ENDPOINTS, PIPES E MENSAGENS • Pipes não são confiáveis (condições da rede) • Confiabilidade pode ser garantida por uma camada de software (garantir integridade da mensagem) • Também podem ser seguros (usando criptografia na mensagem) ENDPOINTS, PIPES E MENSAGENS - Mensagens: Recipientes de dados que estão sendo transmitidos em um pipe de um endpoint a outro. São objetos enviados entre peers JXTA, ou seja é a unidade básica de troca de dados entre peers. Mensagens são enviadas e recebidas por serviços de pipes e por endpoints. ENDPOINTS, PIPES E MENSAGENS Aplicações utilizam serviço de pipes para criar, enviar e receber mensagens. O conteúdo das mensagens podem ser de tipos arbitrários e cada plataforma de software descreve como uma mensagem é convertida de uma estrutura de dados nativa (como exemplo objetos da linguagem Java ou C) para uma representação conhecida por toda arquitetura JXTA. REDE DE TRANSPORTE Transmissão utilizando Pipes: Primeiro o peer precisa achar os endpoints: um ponto para ser a fonte da mensagem e outro para cada destino da mensagem. Assim se forma um canal virtual entre cada um dos pontos. Quando este canal virtual estiver formado as mensagens podem ser transmitidas de um ponto a outro. REDE DE TRANSPORTE - As mensagens contêm os dados a serem transmitidos - Peers utilizam output pipe para enviar dados, e o peer que recebe a mensagem utiliza input pipe para extrair os dados da mensagem recebida - Um pipe de comunicação entre peers pode ser somente unidirecional: para haver comunicação entre dois peers deve haver dois pipes de comunicação entre eles - Embora uma comunicação bidirecional faça parte de qualquer rede moderna existente, uma comunicação unidirecional pode ser modelada em qualquer ambiente de rede PROTOCOLOS DE TRANSPORTE DE MENSAGEM - Peer Discovery Protocol: este protocolo permite ao peers noticiarem seus recursos e buscarem recursos que estão disponíveis de outros pares. • Discovery Query Message: usada para encontrar peers ou grupos de peers • Discovery Response Message: usado para responder uma discovery query message PROTOCOLOS DE TRANSPORTE DE MENSAGEM - Peer Resolver Protocol: este protocolo permite peers enviarem uma consulta para um ou múltiplos peers e receberam uma resposta a uma consulta realizada. • Resolver Query Message: usado para enviar um resultado de uma consulta para outro peer. Consultas que possuem uma identidade única. • Resolver Response Message: usado para responder a uma Resolver Query Message. Resposta enviada com a identidade única do remetente. PROTOCOLOS DE TRANSPORTE DE MENSAGEM - Peer Information Protocol: permite a um peer descobrir informações de status sobre outros peers, isto é, estado, uptime e capacidades. • Ping Message: envida para verificar se o peer está ativado e pegar informações sobre o peer. • PeerInfo Message: envia uma resposta ao uma ping message. PROTOCOLOS DE TRANSPORTE DE MENSAGEM - Pipe Binding Protocol: é um mecanismo que permite aos peers realizarem um canal de comunicação virtual (pipe) entre dois ou mais peers. • Pipe Binding Query Message: um peer procurando por um pipe endpoint envia esta mensagem. • Pipe Binding Answer Message: a resposta retornada para o peer requisitor. PROTOCOLOS DE TRANSPORTE DE MENSAGEM - Endpoint Routing Protocol: este protocolo permite aos peers descobrirem uma rota entre dois peers. • Route Query Request: enviada por um peer roteador para outro que fez o requerimento. • Route Answer Request: enviada em resposta ao route query request. PROTOCOLOS DE TRANSPORTE DE MENSAGEM - Rendezvous Protocol: este protocolo permite os peers se tornarem membros de um serviço de propagação (grupo). • Membership Apply Message: mensagem enviada ao autenticador. Uma resposta irá conter uma credencial e um anúncio do grupo que lista o serviço da sociedade. • Membership Join Message: enviado por um peer para o autenticador. Esta é uma aplicação para se juntar ao grupo. Para fazê-lo o peer deve passar a credencial. • Membership ACK Message: é enviada pelo autenticador para indicar ao peer quando este consegue o acesso a uma aplicação ou a uma sociedade completa. • Membership • Membership Renew Message: enviar um novo acesso ao grupo de peers. Cancel Message: enviar um cancelamento da sociedade para o grupo de pares. BIBLIOGRAFIA http://www.gta.ufrj.br/grad/04_1/p2p/ http://www.javaworld.com/javaworld/jw-05-2005/jw-0509jxta.html http://gnomo.fe.up.pt/~eol/MEMBERS/nuno_sousa/old/ppc/ar tigo.html