View
308
Download
1
Category
Preview:
Citation preview
Comparativo - Cirrus x JXTA
Afif Fikani, Heron Barreto, Ricardo Teixeira
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
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
Plataforma Flash
A Plataforma Flash • Flash • Flash Professional • Flash Builder • Flex • AIR • ActionScript • MXML • Flash Media Server
Flash Player 1. AVM 1 2. AVM 2 3. Render Engine 4. Stage3D
Arquitetura do Flash Player
Camadas do Flash Player
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
Cirrus
Cirrus • Servidor de encontro (rendezvous server) online que permite
utilizar o protocolo RTMFP • Pode ser implementado utilizando um serdidor Flash Media Server
Enterprise
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
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.
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.
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.
Protocolo RTMFP - cirrus 1
Protocolo RTMFP - cirrus 2
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.
Protocolo RTMFP - Caatinga Wars
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" );
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
ReticUI
JXTA (Juxtapose)
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
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)
JXTA - Rendezvous Peer
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
JXTA - Introdução - Grupos
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
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
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
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
Cirrus x JXTA
Cirrus x JXTA 1. 1 Peer = Flash Player 2. Suporte a grupos; imbutido
no flash player 3. Pré-definido e implementado 4. Topologias diversas 5. UDP, porém pode mudar
para TCP se necessário
1. 1 Peer = 1 JVM 2. Suporte a grupos; precisam
ser implementados 3. Estensível e modificável 4. Topologia padrão, porém
estensível 5. Puramente TCP
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
Recommended