jxta protocolos pip e pbp franklin felipe wagner márcio dalle lucca

27
JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

Upload: internet

Post on 22-Apr-2015

109 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

JXTA

Protocolos PIP e PBP

Franklin Felipe WagnerMárcio Dalle Lucca

Page 2: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

Peer Information ProtocolPIP

Page 3: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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.

Peer Information Protocol

Page 4: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

- 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.

Peer Information Protocol

Page 5: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

- 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)

Exemplo de PIP

Page 6: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

Mensagens:- Peer Info Query Message- Peer Info Response Message

Peer Information Protocol

Page 7: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

<?xml version=”1.0” encoding=”UTF-8”?><jxta:PeerInfoQueryMessage xmlns:jxta=”http://jxta.org”>

<sourcePid> . . . </sourcePid><targetPid> . . . </targetPid><request> . . . </request>

</jxta:PeerInfoQueryMessage>

Peer Info Query Message

Page 8: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

<?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>

Peer Info Response Message

Page 9: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

<traffic><lastIncomingMessageAt> . . . </lastIncomingMessageAt><lastOutgoingMessageAt> . . . </lastOutgoingMessageAt><in>

<transport endptaddr=” . . . “> . . . </transport></in><out>

<transport endptaddr=” . . . “> . . . </transport></out>

</traffic>

Peer Info Response Message

Page 10: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

- net.jxta.protocol diferente de - net.jxta.impl.protocol

- PeerInfoQueryMessage e - PeerInfoResponseMsg

Peer Information Protocol

Page 11: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

Pipe Binding ProtocolPBP

Page 12: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

- 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

Introdução

Page 13: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

Definição:

Interface de rede nativa provida por um peer.

Utilização:

Produzir, enviar, receber e usar mensagens através da rede.

Endpoint

Page 14: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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

Endpoint

Page 15: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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.

Pipe

Page 16: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

Pipe: formação

Page 17: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

- O Peer1 cria um input pipe de um Pipe Advertisement e espera mensagens 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.

Pipe: formação

Page 18: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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

<jxta:PipeAdvertisement>

<Id> . . . </Id>

<Type> . . . </Type>

<Name> . . . </Name>

</jxta:PipeAdvertisement>

Pipe Advertisement

Page 19: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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.

Pipe Advertisement

Page 20: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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.

Pipe Advertisement

Page 21: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

O PBP define duas mensagens para permitir que um peer resolva um pipe:

- Pipe Binding Query Message

- Pipe Binding Answer Message

Mensagens

Page 22: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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

<jxta:PipeResolver>

<MsgType>Query</MsgType>

<PipeId> . . . </PipeId>

<Type> . . . </Type>

<Cached> . . . </Cached>

<Peer> . . . </Peer>

</jxta:PipeResolver>

PB Query Message

Page 23: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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.

PB Query Message

Page 24: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

<?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>

PB Answer Message

Page 25: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

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.

PB Answer Message

Page 26: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

- 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 trocando mensagens pela rede.

Esclarecimentos

Page 27: JXTA Protocolos PIP e PBP Franklin Felipe Wagner Márcio Dalle Lucca

Dúvidas?

Referências:

http://translation.jxta.org/ja/docbook/JXTAProtocols.html#proto-pbp

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