23
Protocolos PRP e P DP Aldo Carvalho e Marcos Lubas

Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Embed Size (px)

Citation preview

Page 1: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Protocolos PRP e PDP

Aldo Carvalho e Marcos Lubas

Page 2: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Protocolos JXTA

Operações da rede virtual são definidas em

termos de protocolos Se dois peers querem se comunicar, só

precisam entender o protocolo Conseqüência: Peers podem:

– Ser implementados em diferentes linguagens;

– Ser executados em diferentes tipos de máquinas;

– Transmitir mensagens em diferentes camadas de protocolos (TCP, HTTP, Bluetooth).

Page 3: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Protocolos JXTA

Estruturas de dados XML Não precisa que peer tenha capacidade

total de processamento XML Peer com pouco recurso: pré-compila

mensagens na representação binária (não

precisa processar XML)

Page 4: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Protocolos JXTA

Protocolos são expressos em termos de

troca de mensagens Em algum ponto deve traduzir a

mensagem (bind) na linguagem Bindings: Java, C, C++, Perl,

Python,Smalltalk ... Protocolo independente da linguagem

Page 5: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Peer Membership Protocol

Peer Information Protocol

Peer Binding Protocol

Peer Discovery Protocol

Peer Resolver Protocol

Peer EndPoint Protocol

Transport

Peer Membership Protocol

Peer Information Protocol

Peer Binding Protocol

Peer Discovery Protocol

Peer Resolver Protocol

Peer EndPoint Protocol

Peer Group Peer Group

Peer Peer

Resolver Resolver

EndPoint EndPoint

Page 6: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Peer Discovery Protocol

Na maioria das vezes, os Peers, os grupos, e as outras informações não são conhecidas até que um peer use o serviço de descoberta.

As aplicações podem ter algum conhecimento interno, tais como grupos do peer e outras informações. Entretanto, a maioria de Peers sabem muito pouco sobre o que está disponível.

No Java API, os advertisements que são descobertas são armazenados localmente. Por causa do cache local, há dois tipos de descoberta, a descoberta local e a descoberta remota.

A descoberta remota usa o resolver para encontrar advertisements, quando a descoberta local usa o cache.

Page 7: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Peer Discovery Protocol

O protocolo Peer Discovery Protocol é usado para descobrir todos os recursos publicados do peer.

Os recursos são representados por advertisements.

Um recurso pode ser um peer, um peergroup, um pipe, um módulo, ou qualquer outro recurso que tiver advertisements.

Cada recurso deve ser representado por um advertisements.

Page 8: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Peer Discovery Protocol

O protocolo de descoberta do peer (PDP) permite a um peer de encontrar advertisements em seu grupo.

Os serviços feitos sob encomenda da descoberta podem escolher leverage PDP.

Se um grupo do peer não necessitar definir seu próprio protocolo da descoberta, pode usar o peergroup PDP.

Page 9: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Peer Discovery Protocol

A intenção é para que o PDP forneça a infra-estrutura essencial de descoberta para facilitar o trabalho de outros serviços de alto nível na descoberta.

Em muitas situações, a informação da descoberta é melhor tratada por um serviço de alto nível, porque o serviço pode ter um conhecimento melhor da topologia do grupo.

Page 10: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Peer Discovery Protocol

O protocolo de PDP fornece um mecanismo básico para descobrir advertisements e possibilita também que serviços de alto nível e aplicações participem no processo de descoberta.

Os serviços devem dar sugestões para melhorar a descoberta (se decidir que advertisements são mais valiosos ao cache).

O protocolo de PDP utiliza o protocolo do resolver para distribuir perguntas e respostas.

Page 11: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Classes API de descoberta do Peer A descoberta API é executada como um serviço para peer

groups. O API consiste nas seguintes peças chaves:

DiscoveryService - Esta é a interface base que é usada acessar as funcionalidades do núcleo do PDP.

DiscoveryListener – É usado para esperar as mensagens remotas da descoberta.

DiscoveryEvent - O evento passou ao listener que contém a informação sobre os advertisements descobertos.

DiscoveryResponseMsg - O Payload real dos dados que contém as informações sobre os advertisements descobertos

DiscoveryServiceImpl - Execução da interface do DiscoveryService.

Page 12: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas
Page 13: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Requisição Peer Peer

Broadcast Usando todos os Peer Endpoints conhecidos

“JXTA://PDP/DiscoveryQueryMsg”

Unicast Enviando para um Peer rendezvous “JXTA://PDP/DiscoveryQueryMsg”

Unicast <PeerAdvertisement> or <PeerGroupAdvertisement> “JXTA://PDP/DiscoveryResponseMsg”

Page 14: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Protocolos JXTA

Peer Resolver Protocol (PRP) Protocolo fundamental Mensagens são pares pergunta-resposta Respostas assíncronas

Page 15: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Protocolos JXTA

Outros protocolos que precisam de

mecanismo pergunta-resposta usam PRP Pergunta não é endereçada ao peer, mas

a um handler (tratador) Peer registra um handler, que pode

responder perguntas Perguntas e respostas podem se perder

Page 16: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Resolver Service

Permite que sejam trocadas mensagens(perguntas e respostas) entre os membros do peer group

Registra e desregistra handlers

Page 17: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

XML da pergunta

<?xml version=”1.0” encoding=”UTF-8”?>

<jxta:ResolverQuery xmlns:jxta=”http://jxta.org”>

<HandlerName> . . . </HandlerName>

<Credential> . . . </Credential>

<QueryID> . . . </QueryID>

<SrcPeerID> . . . </SrcPeerID>

<Query> . . . </Query>

</jxta:ResolverQuery>

Page 18: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

HandlerName: Elemento obrigatório que contém um nome único do tratador que o serviço Resolver deve chamar para executar a pergunta.

Credential: Elemento opcional, elemento que contém uma identificação do peer de origem e se ele tem autorização para enviar mensagens ao grupo.

QueryID: Opcional, contém um long int(porém no formato de string) para a identificação da mensagem.

Page 19: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

SrcPeer: Obrigatório, contém a ID do peer que envia a pergunta (no formato JXTA URN).

Query: Obrigatório, contém uma string que será enviada para um tratador remoto. Essa string pode ser qualquer coisa é responsabilidade do tratador entender, processar e, se possível, gerar uma resposta.

Page 20: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

XML da resposta

<?xml version=”1.0” encoding=”UTF-8”?>

<jxta:ResolverResponse xmlns:jxta=”http://jxta.org”>

<HandlerName> . . . </HandlerName>

<Credential> . . . </Credential>

<QueryID> . . . </QueryID>

<Response> . . . </Response>

</jxta:ResolverResponse>

Page 21: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas
Page 22: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas
Page 23: Protocolos PRP e PDP Aldo Carvalho e Marcos Lubas

Bibliografia

http://www.gta.ufrj.br/seminarios/semin2003_1/william/Tecnologia.htm http://www.samspublishing.com/articles/article.asp?p=28514&seqNum=11 http://spec.jxta.org/nonav/v1.0/docbook/JXTAProtocols.html http://www.gta.ufrj.br/grad/04_1/p2p/index.html

http://www.brendonwilson.com/projects/jxta-book/

Capítulos 4 e 5.