Peer-to-Peer em Redes Móveis Bruno Oliveira Silvestre PUC-Rio.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
Sistemas operacionais
ISO Processos do Ciclo de Vida do Software
Bruno Rafael de Oliveira Rodrigues
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Interação Cliente Servidor
Aluno: Fabiano Costa Teixeira
QoS para Realidade Virtual
DAS Sistemas Distribuídos para Automação Industrial
GERENCIAMENTO DE REDES
ESTRUTURA DE COMUNICAÇÃO DE DADOS
Elementos da Arquitetura P2P
Aldo Carvalho e Marcos Lubas
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Sistemas Distribuídos
Modelo de Segurança para Ambientes Cooperativos
Recomendação H.323 da ITU-T
Modelo de referência OSI
Carlos Eduardo Calvente Ribeiro Universidade Federal do Rio de Janeiro
Rodrigo de Souza Couto Redes de Computadores II
1 Modelos de Sistemas Distribuídos. Introdução - Dificuldades e ameaças para SD. Grande variação na utilização de SD )carga de trabalho e requerimentos.
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Funcionalidade e Protocolos da Camada de Aplicação
Conceitos de J2EE para a WEB
Gerenciamento de Redes Utilizando Agentes Móveis
Computing on large scale distributed systems: experience of the XtremWeb project CMP-157 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Prof. Cláudio Fernando Resin.
BD Distribuído Conceitos Iniciais.
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Tópicos Avançados em Redes de Computadores Prof. Fabiano Sabha.
Comunicação.
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Laboratório de Programação
Troca de Mensagens Programação concorrente
1 MAC Computação Móvel Agentes de software para Computação Móvel Aluno: Eduardo Leal Guerra
Padrões de Interação com o Usuário
MONITORAMENTO DE REDE E SERVIDORES UTILIZANDO O CACTIEZ E SNMP
Integração de Ferramentas CASE
CONECTIVIDADE Prof.: Alessandro V. Soares Ferreira
Seminário CI303 Lucas Nascimento Ferreira. Data sharing service: Propriedades Persistência Independentemente da aplicação Permitir o reutilização dos.
Aguilar Figueira Dias Orientador Prof. Dr. João Bosco da Mota Alves
Universidade Federal de Alagoas Instituto de Computação - IC Redes de Computadores 2 Serviços Web Felipe Santos José Oswaldo.
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
Tecnologias de Localização de Serviços Exame de Qualificação IME/USP Fev/2003.
SyncML Apresentação –Introdução Motivação Iniciativa SyncML –XML (eXtensible Markup Language) –Protocolos SyncML –Sincronização em duas vias –Conclusões.
Tratamento de Firewalls e Endereços IP Falsos no Contexto do Projeto InteGrade Antônio Carlos Theóphilo Costa Júnior Orientador: Prof. Markus Endler.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Computação Móvel e Embarcada ANDRÉ GUSTAVO DEGAF UCHÔA DISCIPLINA: ENG. DE SOFTWARE PROF: ALCIDES CALSAVARA & EDSON SCALABRIN.
Capítulo 6: SAD – Arquitetura e aspectos de rede e segurança
A Multilayer P2P Framework for Distributed Synchronous Collaboration Fernando Abrahão Afonso Leonardo Kunz Programação com Objetos Distribuídos Trabalho.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Passagens de Mensagens Prof. Dr. Norian Marranghello
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Seminários.reply Introdução a JavaME Guilherme Carvalho.
Sistemas Distribuídos
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Comunicação Multimídia. Sub-sistema de Aplicação Computação colaborativa = CSCW Dimensões de colaboração –tempo trabalho cooperativo assíncrono trabalho.
Emerson Felipe GOVERNO DO ESTADO DE PERNAMBUCO ESCOLA TÉCNICA ESTADUAL MARIA EDUARDA RAMOS DE BARROS.
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
CMMI Capability Maturity Model Integration
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Peer-to-Peer em Redes Móveis Bruno Oliveira Silvestre PUC-Rio

Sumário Introdução Arquiteturas Konark iMobile ME JXTA for J2ME Conclusão

Introdução Aumento na adoção de dispositivos móveis: notebooks, celulares, PDAs, etc. Maturidade e difusão das redes sem fio. Surgimento de um novo cenário para as aplicações. Características das aplicações P2P, como dinamismo e autonomia, casaram bem com computação móvel.

Konark

Proposto na Universidade da Flórida. Oferece suporte para redes parcialmente e complemente ad-hoc. Utiliza um micro servidor HTTP e mensagens em XML (SOAP). Não faz restrição ao protocolo de rede, mas exige o uso de TCP/IP como protocolo de transporte. O Konark é divido em dois componentes principais: Serviço de Descoberta Serviço de Entrega

Serviço de Descoberta

Realiza a descoberta de serviços na rede. A descoberta pode ser iniciada pelo cliente ou pelo servidor. Processo controlado pelo Konark SDP Manager. Utiliza uma estrutura em árvore para armazenar os serviços – tanto os anunciados como os locais.

Estrutura em árvore do Konark Dois tipos de nós: Nó de classificação Nó de serviço Por definição, os nós mais próximos da raiz recebem classificações genéricas, e os mais distantes recebem classificações mais específicas. Os nós também são classificados como: todos, genéricos e específicos.

Estrutura em árvore do Konark

Um serviço é identificado utilizando o caminho dele até a raiz. RootService:Services:Entretainment:Games:Chess Para diferenciar dois serviços providos por nós diferentes, o Konark utiliza a URL de localização do serviço.

Serviço de Descoberta Quando o serviço não é se encontra na estrutura interna, a busca é realizada. Um cliente que deseja descobrir um serviço, envia uma mensagem contendo dois campos: Palavra-chave ou Caminho Porta de retorno Devido aos recursos limitados, o cliente pode empregar filtros nos anúncios.

Serviço de Descoberta Um servidor pode anunciar seus serviços espontaneamente ou em reposta a uma busca. Pode-se utilizar a classificação todos, genéricos e específicos na pesquisa/anúncio. Um anúncio contém cinco campos: Nome, Caminho, Tipo, URL e TTL

Serviço de Entrega É responsável por receber as requisições, invocar o método e retornar o resultado. Todos os serviços são compostos de um arquivo de descrição (em XML) e uma parte computacional – por exemplo, uma DLL ou uma classe Java.

Serviço de Entrega

Serviço de Entrega Para um nó requisitar um serviço, primeiro ele deve obter o arquivo XML de descrição contendo os parâmetros necessários para a realização da requisição.

Serviço de Entrega URL Servidor Arquivo XML Cliente Árvore de Serviços Requisição

iMobile ME

iMobile Foi inicialmente desenvolvido para servir como proxy para os dispositivos sem fio – iMobile SE (Standard Edition). Executava em servidor na rede infra-estruturada. O iMobile SE é baseado em três componentes principais: devlets applets infolets

Arquitetura do iMobile SE

iMobile Micro Edition Para dar suporte a aplicações P2P, o iMobile SE foi portado para os dispositivos móveis. Foram feitas modificações na arquitetura e a principal mudança foi a retirada dos applets. Também foi acrescentado caixas de mensagens. Sem os applets o iMobile ME possibilita apenas o compartilhamento de dados.

iMobile ME

Não há padronização para os x-lets, deixando o desenvolvedor livre para implementar qualquer tipo de modelo ou protocolo – se suportado. Três x-lets desempenham papeis importantes na arquitetura: console (devlet): permite que o usuário interaja com o sistema. rcmd (devlet): responsável por receber e tratar as requisições vindas de outros dispositivos. rpc (infolet): responsável por interagir com os rcmds para obter informações de outros dispositivos.

Caixas de Mensagem O iMobile ME utiliza caixas de mensagens para garantir uma sessão de comunicação mais confiável, evitando problemas de desconexão ou variação de largura de banda. O usuário é responsável por iniciar o processo de sincronização. Caso o iMobile SE não localize o destinatário da mensagem na hora do roteamento, a mensagem é armazenada e será entregue quando o usuário se conectar.

Descoberta de Recursos iMobile ME não suporta redes ad-hoc. Todo o processo de descoberta de recursos disponíveis e roteamento das mensagens é realizado pelo iMobile SE. Os nós móveis devem manter seus dados atualizados no iMobile SE.

JXTA for J2ME

JXTA Arquitetura aberta para desenvolvimento de aplicações P2P. Criada pela Sun Microsystems, e, hoje, mantida por colaboradores de todo o mundo. Tem como ideais: Interoperabilidade. Independência de plataforma. Ubiquidade.

Arquitetura JXTA

A arquitetura do JXTA pode ser dividida em três camada: Core: encapsula as primitivas essenciais (descoberta de grupos e nós, transporte, etc.) Service: acomoda serviços adicionais comumente utilizado ou desejáveis pelas aplicações (busca e indexação, diretórios, etc.) Application: aplicações específicas que utilizam os serviços da rede.

Elementos do JXTA Peer Peer Group Pipe Mensagem Advertisements Segurança Protocolos

Peer Qualquer dispositivo que faça parte da rede JXTA. Cada nó opera independente e assincronamente dos outros. Os nós publicas os seus peer endpoints, por onde eles recebem conexões. Classificados como: Minimal edge peer Full-feature edge peer Rendezvous peer Relay peer

Peer

Peer Group Os nós podem se auto-organizar em grupos, estabelecendo políticas internas. Os motivos que levam a criação de grupo varia. Ex.: Definição de escopo computacional, comunicação segura e monitoramento. Grupos podem ser usados para prover serviços com tolerância a falha – se um membro ficar indisponível, outro pode tratar a requisição.

Pipes São canais de comunicação assíncronos e unidirecionais. Não há nenhuma restrição sobre o tipo de dado que trafega por um pipe. Os pipes são dividos em pipe de entrada e de saída, provendo dois modos de comunicação: Ponto-a-Ponto: conecta um pipe de saída a um pipe de entrada Propagação: conecta um pipe de saída a vários pipes de entrada.

Modos de Comunicação

Mensagem Uma mensagem pode ser representada em formato binário ou em formato XML. Elas são formadas de uma seqüência de elementos. Os elemento possuem um nome, um tipo e conteúdo.

Formato XML <Element name="jxta:SourceAddress“ mime_type= "text/plain"> tcp:// <Element name="stuff“ encoding="base64“ mime_type= "application/octet-stream">

Formato Binário jxmg proxy 05 jxel request 06 search jxel type 04 Peer jxel attr 04 Name jxel value 06 Waxsys jxel requestId 01 1 Obs.: A mensagem em formato binário não possui espaços em branco ou quebras de linhas.

Advertisements São os anúncios utilizados para descoberta de serviços, nós, grupos e pipes. São representados por documentos XMLs e também utilizam TTL para manutenção da arquitetura. Na implementação para J2SE, é provido pelos rendezvous peers um serviço de indexação para otimizar a busca.

Advertisements

Segurança Os desenvolvedores do JXTA querem que os protocolos de comunicação sejam compatíveis com os protocolos de transporte seguro já difundidos (SSL, TLS, etc.). O uso de XML dá suporte a essa compatibilidade (certificado, digests, etc.).

Protocolos A arquitetura JXTA já fornece um conjunto de protocolos padrões, que são divididos em duas categorias: Core Specification: protocolos obrigatórios que devem ser implementados. Standard Service: protocolos opcionais, mas que facilitam os desenvolvimento.

Java Micro Edition J2ME é uma tecnologia Java destinada à pequenos dispositivos, como pagers, celulares, PDAs, set-top boxes, etc. Fornece dois tipos de configurações: CDC e CDLC. Fornece diversos profiles: MIDP, FP, PP, etc.

JXTA for J2ME O projeto visa: Manter compatibilidade com o JXTA rodando em desktops Prover infra-estrutura para desenvolvimento de facilitado de aplicações P2P Ser compatível com CLDC e MIDP Ser pequeno o suficiente para rodar em aparelhos celulares

Adaptações na Arquitetura Devido à limitações, tanto dos equipamentos quanto da tecnologia Java, os desenvolvedores optaram por utilizar os relay peers como proxies para os dispositivos móveis. Eles provêem a interoperabilidade com a rede infra-estruturada, filtram os dados e fazem a conversão entre XML e binário. As APIs e serviços também foram reduzidos para se acomodar às limitações. Não fornece suporte à segurança.

Exemplo

Conclusões

Konark Redes parcialmente ou totalmente ad-hoc. Utiliza padrões bem disseminados – HTTP e SOAP. Mas pode necessitar de mais recursos computacionais. Estrutura de armazenamento em árvore com classificação auxilia na busca. Utilização de propriedades nos serviços. Não há suporte a segurança.

iMobile ME Utiliza a rede infra-estruturada (iMobile SE). Arquitetura centralizada. Suporte ao compartilhamento de recursos. Não há padronização, o que torna a arquitetura flexível, mas não interoperável. Suporte a desconexão através das caixas de mensagens.

JXTA for J2ME Utiliza os relay peers para a execução de tarefas, como busca e criação de pipes. Não permite a criação de redes ad-hoc. Ubiquidade. Interoperabilidade com a rede infra- estruturada. Independência de plataforma.

KonarkiMobileJXTA Infra-estruturaNãoSim Protocolo Transporte HTTP sobre TCP/IP Independente Protocolo de RedeIndependente- Tipo de MensagemXML-XML ou Binária Suporte Desconexão NãoSimNão Protocolos Padronizados SimNãoSim Descoberta de Recursos Anúncio/ Pesquisa Via iMobile SEAnúncio/ Pesquisa CentralizadoNãoSimNão* Demanda de Recursos AltoVariávelBaixo

Perguntas?!? Obrigado!