Cirrus

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