1 / 27

JXTA Protocolos PIP e PBP

JXTA Protocolos PIP e PBP. Franklin Felipe Wagner Márcio Dalle Lucca. Peer Information Protocol PIP. Peer Information P rotocol. O que é? - Permite que os peers obtenham a informação de status dos peers previamente descobertos. - Uptime e quantidade de tráfego processada pelo par.

mandy
Download Presentation

JXTA Protocolos PIP e PBP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JXTA Protocolos PIP e PBP Franklin Felipe WagnerMárcio Dalle Lucca

  2. Peer Information ProtocolPIP

  3. Peer Information Protocol O que é? - Permite que os peers obtenham a informação de status dos peers previamente descobertos. - Uptime e quantidade de tráfego processada pelo par. - Futuro: monitoração.

  4. Peer Information Protocol - O PIP fica numa camada acima do Peer Resolver Protocol. - PIP é um protocolo opcional do JXTA. - Nenhuma, uma ou múltiplas respostas podem ser recebidas a qualquer pergunta.

  5. Exemplo de PIP - Peer 1 manda um Peer Info Query Message para um peer especifico (2) - Os peer´s recebem a msg e comparam o Peer ID da mensagem. - se for igual o seu (2), respondem para o peer source com uma Peer Infor Response Message - Senão, não faz nada (12)

  6. Peer Information Protocol Mensagens: - Peer Info Query Message - Peer Info Response Message

  7. Peer Info Query Message <?xml version=”1.0” encoding=”UTF-8”?> <jxta:PeerInfoQueryMessage xmlns:jxta=”http://jxta.org”> <sourcePid> . . . </sourcePid> <targetPid> . . . </targetPid> <request> . . . </request> </jxta:PeerInfoQueryMessage>

  8. Peer Info Response Message <?xml version=”1.0” encoding=”UTF-8”?> <jxta:PeerInfoResponse xmlns:jxta=”http://jxta.org”> <sourcePid> . . . </sourcePid> <targetPid> . . . </targetPid> <uptime> . . . </uptime> <timestamp> . . . </timestamp> <response> . . . </response> <trafic> . . . </trafic> </jxta:PeerInfoQueryMessage>

  9. Peer Info Response Message <traffic> <lastIncomingMessageAt> . . . </lastIncomingMessageAt> <lastOutgoingMessageAt> . . . </lastOutgoingMessageAt> <in> <transport endptaddr=” . . . “> . . . </transport> </in> <out> <transport endptaddr=” . . . “> . . . </transport> </out> </traffic>

  10. Peer Information Protocol - net.jxta.protocol diferente de - net.jxta.impl.protocol - PeerInfoQueryMessage e - PeerInfoResponseMsg

  11. Pipe Binding ProtocolPBP

  12. Introdução - Pipes são utilizados para troca de mensagens entre peers. - Antes de ser utilizado, um pipe precisa estar ligado a dois endpoints, para que os peers criem input e outputs pipes e então formem um Pipe. - O processo de ligar um pipe a um endpoint é definido pelo Pipe Binding Protocol

  13. Endpoint Definição: Interface de rede nativa provida por um peer.Utilização: Produzir, enviar, receber e usar mensagens através da rede.

  14. Endpoint • Outros serviços JXTA são construídos em cima de endpoints, direta ou indiretamente. • Existem duas maneiras de acessar a rede P2P sem utilizar diretamente os endpoints: • Através do serviço Resolver • Através do uso de Pipes

  15. Pipe Um Pipe é formado quando dois endpoints querem se comunicar. Ele provê conexão entre um endpoint remetente e um ou mais endpoints destinatários. Embora o JXTA especifique outros tipos de Pipe, o único requerido é o Pipe unidirecional e assíncrono.

  16. Pipe: formação

  17. Pipe: formação • O Peer1 cria um input pipe de um Pipe Advertisement e esperamensagens chegarem.- O Peer2, querendo mandar mensagens para o Peer1 usando o mesmo Pipe Advertisement, precisa criar um output pipe. Para isso ele envia uma PB Query Message para todos os seus peers e rendezvous peers conhecidos.- Peer1, ao receber a PB Query Message do Peer2, checa seu cache de pipes para ver se bate. Se sim, ele responde com uma PB Answer Message contendo seu Peer Advertisement. • - Peer2 recebe de PB Answer Message e extrai a informação de endpoint do Peer Advertisement. Com ela ele cria um output pipe. Feito isso, o Peer2 pode mandar mensagens para o Peer1.

  18. Pipe Advertisement <?xml version=”1.0” encoding=”UTF-8”?> <jxta:PipeAdvertisement> <Id> . . . </Id> <Type> . . . </Type> <Name> . . . </Name> </jxta:PipeAdvertisement>

  19. Pipe Advertisement ID: ID único do Pipe. Type: JxtaUnicast - comum, JxtaUnicastSecure - comum com TLS, JxtaPropagate - provê conexão entre endpoints remetentes e múltiplos destinatários. Name: Nome simbólico do Pipe, que pode ser usado pelo Discovery service para descobrir o Pipe Advertisement.

  20. Pipe Advertisement Percebe-se que o Pipe Advertisement não possui Peer ID. Isso é definido para que vários peers possam prover acesso a um serviço utilizando o mesmo Pipe Advertisement. E é por isso que os pipes precisam ser resolvidos com o PBP. Quando um peer quer enviar dados usando um pipe, ele precisa encontrar um peer que já ligou um pipe com o mesmo Pipe ID a um endpoint e que está esperando por dados.

  21. Mensagens O PBP define duas mensagens para permitir que um peer resolva um pipe: - Pipe Binding Query Message - Pipe Binding Answer Message

  22. PB Query Message <?xml version=”1.0” encoding=”UTF-8”?> <jxta:PipeResolver> <MsgType>Query</MsgType> <PipeId> . . . </PipeId> <Type> . . . </Type> <Cached> . . . </Cached> <Peer> . . . </Peer> </jxta:PipeResolver>

  23. PB Query Message MsgType: pode ser Query ou Answer, nesse caso é Query. PipeId: ID do Pipe Type: Corresponde ao campo Type do Pipe Adv., pode ser JxtaUnicast, JxtaUnicastSecure ou JxtaPropagate. Cached: Opcional. Define se o peer usa seu cache de Pipes resolvidos pra responder à query. Peer: Opicional. Especifica um único Peer ID para responder a query.

  24. PB Answer Message <?xml version=”1.0” encoding=”UTF-8”?> <jxta:PipeResolver> <MsgType>Answer</MsgType> <PipeId> . . . </PipeId> <Type> . . . </Type> <Peer> . . . </Peer> <Found>false</Found> <PeerAdv> . . . </PeerAdv> </jxta:PipeResolver>

  25. PB Answer Message MsgType: Answer Found: Opcional. Serve para indicar se foi encontrado o Pipe ID. Por default é considerado que sim. PeerAdv: Quando encontrado o Pipe ID correto, a resposta é enviada com o PeerAdv. do peer que o possui.

  26. Esclarecimentos - Quando o Peer1 cria o input pipe, nada é mandado pela rede. Ele simplesmente começa a esperar no seu endpoint local por mensagens que possuam o Pipe ID especificado no Pipe Adv. - O Pipe Adv. não necessariamente precisa ser comunicado através da rede.Embora o Pipe Adv. é normalmente descoberto através do Discovery service, ele pode ser codificado na aplicação ou pode ser trocado usando o Resolver service. - Binding significa a troca de mensagens PB para formar um pipe. Para criar um input pipe, não é necessário fazer o binding, ou seja, não são enviadas mensagens. - Os endpoints que na verdade são responsáveis por enviar e receber dados. O Pipe só auxilia na identificação de quais endpoints estarão trocandomensagens pela rede.

  27. Dúvidas? Referências: http://translation.jxta.org/ja/docbook/JXTAProtocols.html#proto-pbp http://www.brendonwilson.com/projects/jxta-book/

More Related