Este documento compara as plataformas Cirrus e JXTA para aplicações P2P. Cirrus usa o protocolo RTMFP para permitir comunicação direta entre instâncias do Flash Player, enquanto JXTA é uma tecnologia multiplataforma que define protocolos para comunicação e serviços em redes P2P independentes do sistema operacional. Embora ambas suportem grupos, Cirrus os implementa de forma pré-definida no Flash Player, ao passo que JXTA requer implementação personalizada.
2. Roteiro
1. Motivação
2. A Plataforma Flash
3. Flash Player
4. Cirrus
5. Protocolo RTMP
6. Protocolo RTMFP
a. Modelagem
b. Arquitetura
c. Topologia
d. Exemplo de Uso
7. JXTA
a. Introdução
b. Protocolos e Serviços
8. Comparativo Cirrus x JXTA
3. Motivação
1. Nova visão da Adobe para aplicações web
a. Web Console
b. Alta qualidade gráfica
c. Grandes players abraçando a plataforma (Square Enix, Unreal, etc)
1. Uso do P2P nessa nova visão
a. Jogos multiplayer.
b. Media Streaming de áudio e vídeo com economia de banda.
c. Aplicações colaborativas
10. Protocolo RTMP
• Utiliza TCP para transmissão dos dados
• A mensagem passa por um servidor de streaming de mídia ( Flash
Media Server )
• Utiliza objetos no servidor compartilhados entre os usuários
12. Cirrus
• Servidor de encontro (rendezvous server) online que permite
utilizar o protocolo RTMFP
• Pode ser implementado utilizando um serdidor Flash Media Server
Enterprise
13. Protocolo RTMFP
• Real-Time Media Flow Protocol (RTMFP)
• Permite aplicações entre múltiplas instâncias de Flash Players e/ou
Adobe AIR.
• Permite comunicação em tempo real.
• Flash Media Enterprise Server
14. Protocolo RTMFP
• Reduz os custos de banda em aplicações de tempo real.
• RTMFP é capaz de enviar dados diretamente ao clientes sem
necessidade de passar por um servidor.
• Solução mais barata para escalar aplicações.
15. Protocolo RTMFP
• Rápida Reconexão: Conexões são rapidamente reestabelecidas e
voltam ao mesmo estado deixado.
• Mobilidade de IP: Sessões são mantidas mesmo se houver uma
troca de ip pelo cliente.
16. Protocolo RTMFP
• RTMFP é baseado em UDP.
• Todo o tráfego é encripado com uma cifra de 128 bits.
• Cada cliente possui um identificador único de 256bits.
19. Protocolo RTMFP - cirrus 2
• Suporte para grupos.
• Multicast em nivel de aplicação.
• Contato direto com um vizinho do grupo.
• Posting em grupos.
• Replicação de objetos.
21. Protocolo RTMFP - Exemplo Código
private var _outgoingStream:NetStream;
// We create a stream in our net connection for P2P outgoing
_outgoingStream = new NetStream( _netConnection, _groupSpec );
// We add a net status listener to the NetStream
_outgoingStream.addEventListener( NetStatusEvent.NET_STATUS, onNetStatus );
var camera:Camera = Camera.getCamera();
var mic:Microphone = Microphone.getMicrophone();
_outgoingStream.attachAudio(mic);
_outgoingStream.attachCamera(camera);
_outgoingStream.publish( "P2PVideo" );
22. Protocolo RTMFP - Exemplo de Uso
• Exemplo da Adobe -
http://labs.adobe.com/technologies/cirrus/samples/
• ReticUI - ReticularSpaces: Activity-Based Computing Support
for Physically Distributed and Collaborative Smart Spaces
25. JXTA - Introdução
• Tecnologia peer-to-peer multi plataforma desenvolvida pela Sun
em 2001
• Consiste na definição de um conjunto de 7 protocolos de
comunicação em XML, que provêm serviços para dar suporte a
estas redes
• A tecnologia é independente de sistema operacional e de
linguagem
• Centrada nos conceitos de Peer e Grupo
26. JXTA - Introdução - Peers
• No JXTA, peers são definidos como pontos virtuais de comunicação
(nodos) da rede
o Podem ou não disponibilizar serviços
o Possuem um identificador próprio (peerID)
• Peers podem assumir 2 funções especiais na rede JXTA:
o servir de ponto de encontro e distribuição para trocas de pedidos
entre outros peers (Rendezvous Peer)
o um papel de roteador ao implementar um protocolo de
comunicação fim a fim entre peers(Relay Peer)
28. JXTA - Introdução - Grupos
• Em JXTA, Grupos são conjuntos de peers que compartilham
serviços e dados
• Autenticação é requerida para participar desses grupos
o Feita mediante um protocolo JXTA
• Peers autenticados nesse grupo adquirem credenciais, necessárias
para acessar serviços nesse grupo
o Serviços podem conter níveis de segurança para restringir seu uso
por membros não autorizados
30. JXTA - Protocolos e Serviços
• Os 7 Protocolos JXTA abrangem as seguintes funções:
o Descoberta de peers na rede
o Interações entre peers
o Administração das aplicações p2p
o Segurança e monitoramento
• Nem todos precisam ser implementados por cada peer
o Alguns cabem apenas aos peers especiais
• Os protocolos podem ser estendidos e/ou modificados
o Permite ao JXTA se adaptar aos requisitos da aplicação
31. JXTA - Protocolos e Serviços
• Peer Discovery Protocol - Permite que um peer descubra outros
peers, grupos, e serviços na rede. É o serviço de busca usado para
localizar informação
• Peer Resolver Protocol - Permite que um peer envie um pedido a
outro. É o responsável por toda a comunicação, sendo usado por
outros protocolos para enviar seus pedidos
32. JXTA - Protocolos e Serviços
• Peer Information Protocol - Permite que um peer obtenha
informações sobre o estado de outro. Usado parcialmente como
um ping e com um corpo de mensagem adaptável
• Peer Membership Protocol - Permite a um peer entrar ou sair de
um grupo. Também é o responsável pelos serviços de
autenticação, autorização e credenciais
33. JXTA - Protocolos e Serviços
• Pipe Biding Protocol - Usado para criar uma via de comunicação
física entre peers. Fundamentado em informações obtidas pelo
endpoint protocol
• Peer Endpoint Protocol - Gera o roteamento das mensagens entre
peers, para uso do pipe binding protocol.
• Rendezvous Protocol - Controla a propagação de mensagens
dentro de um grupo
35. Cirrus x JXTA
1. 1 Peer = Flash Player 1. 1 Peer = 1 JVM
2. Suporte a grupos; imbutido 2. Suporte a grupos; precisam
no flash player ser implementados
3. Pré-definido e implementado 3. Estensível e modificável
4. Topologias diversas 4. Topologia padrão, porém
5. UDP, porém pode mudar estensível
para TCP se necessário 5. Puramente TCP
36. Bibliografia
• JXTA: Java P2P Programming; por Daniel Brookshier, Darren Govoni, Navaneeth
Krishnan e Juan Carlos Soto; em 22 de Março de 2002
• ReticularSpaces: Activity-Based Computing Support for Physically Distributed and
Collaborative Smart Spaces - Jakob E. Bardram; Sofiane Gueddana; Steven
Houben; Søren Nielsen
• SIP APIs for Voice and Video Communications on the Web - C. Davids et. all
• Cirrus - http://labs.adobe.com/technologies/cirrus/
• Next Generation Flash Player -
http://www.adobe.com/kr/events/max2005/agenda/presentation/b1_flashplayer
.swf