Cirrus

36
Comparativo - Cirrus x JXTA Afif Fikani, Heron Barreto, Ricardo Teixeira

Transcript of Cirrus

Page 1: Cirrus

Comparativo - Cirrus x JXTA

Afif Fikani, Heron Barreto, Ricardo Teixeira

Page 2: Cirrus

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

Page 3: Cirrus

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

Page 4: Cirrus

Plataforma Flash

Page 5: Cirrus
Page 6: Cirrus

A Plataforma Flash • Flash • Flash Professional • Flash Builder • Flex • AIR • ActionScript • MXML • Flash Media Server

Page 7: Cirrus

Flash Player 1. AVM 1 2. AVM 2 3. Render Engine 4. Stage3D

Page 8: Cirrus

Arquitetura do Flash Player

Page 9: Cirrus

Camadas do Flash Player

Page 10: Cirrus

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

Page 11: Cirrus

Cirrus

Page 12: Cirrus

Cirrus • Servidor de encontro (rendezvous server) online que permite

utilizar o protocolo RTMFP • Pode ser implementado utilizando um serdidor Flash Media Server

Enterprise

Page 13: Cirrus

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

Page 14: Cirrus

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.

Page 15: Cirrus

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.

Page 16: Cirrus

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.

Page 17: Cirrus

Protocolo RTMFP - cirrus 1

Page 18: Cirrus

Protocolo RTMFP - cirrus 2

Page 19: Cirrus

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.

Page 20: Cirrus

Protocolo RTMFP - Caatinga Wars

Page 21: Cirrus

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

Page 22: Cirrus

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

Page 23: Cirrus

ReticUI

Page 24: Cirrus

JXTA (Juxtapose)

Page 25: Cirrus

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

Page 26: Cirrus

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)

Page 27: Cirrus

JXTA - Rendezvous Peer

Page 28: Cirrus

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

Page 29: Cirrus

JXTA - Introdução - Grupos

Page 30: Cirrus

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

Page 31: Cirrus

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

Page 32: Cirrus

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

Page 33: Cirrus

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

Page 34: Cirrus

Cirrus x JXTA

Page 35: Cirrus

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

Page 36: Cirrus

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