COMPARTILHAMENTO DE ARQUIVOS EM DISPOSITIVOS MÓVEIS UTILIZANDO A PLATAFORMA JXTA/JXME

Tamanho: px
Começar a partir da página:

Download "COMPARTILHAMENTO DE ARQUIVOS EM DISPOSITIVOS MÓVEIS UTILIZANDO A PLATAFORMA JXTA/JXME"

Transcrição

1 OSVALDO JUNIOR COMPARTILHAMENTO DE ARQUIVOS EM DISPOSITIVOS MÓVEIS UTILIZANDO A PLATAFORMA JXTA/JXME Jaguariúna 2008

2 OSVALDO JUNIOR COMPARTILHAMENTO DE ARQUIVOS EM DISPOSITIVOS MÓVEIS UTILIZANDO A PLATAFORMA JXTA/JXME Monografia apresentada à disciplina Trabalho de Graduação III, do curso de Ciência da Computação da Faculdade de Jaguariúna, sob orientação do Prof. Ms. Peter Jandl Jr, como exigência parcial para conclusão do curso de graduação. Jaguariúna

3 SILVEIRA Junior, Osvaldo Batista da. Compartilhamento de arquivos em dispositivos móveis utilizando a plataforma JXTA/JXME. Monografia defendida e aprovada na FAJ em 12 de dezembro de 2008 pela banca examinadora constituída pelos professores: Prof. Ms. Peter Jandl Jr FAJ orientador Prof. José Arnaldo FAJ Profa. Selma Cintra FAJ 2

4 SILVEIRA Junior, Osvaldo Batista da. Compartilhamento de arquivos em dispositivos móveis utilizando a plataforma JXTA/JXME Monografia (Bacharelado em Ciência da computação) Curso de Ciência da computação da Faculdade de Jaguariúna, Jaguariúna. RESUMO Tendo em vista constante aumento das vendas de dispositivos móveis e o crescimento constante do tráfego de dados em redes de compartilhamento surge à necessidade de levar até a tecnologia móvel um produto que ofereça as mesmas features disponibilizadas em uma aplicação desktop aos celulares, handhelds e smartphones. Os dispositivos móveis nos últimos anos tiveram um considerável upgrade em sua capacidade de processamento e memória para armazenamento, facilitando o desenvolvimento de aplicações para estes devices, em paralelo a isso as aplicações de compartilhamento de arquivos tiveram um grande aumento em sua popularidade. Somando estas variáveis, obtém-se um ambiente perfeito para a criação de uma aplicação peer-to-peer para dispositivos móveis. Diante destas infomações, o objetivo deste trabalho de graduação é estudar aspectos relacionados às redes P2P voltados para as limitações que as redes móveis proporcionam construindo um protótipo híbrido que será capaz de trocar mensagens entre os peers, compartilhar arquivos separados por categorias e grupos, criar grupos de discussão e busca de arquivos pela rede. Palavras-chave: PEER-TO-PEER, DISPOSITIVOS MÓVEIS, COMPARTILHAMENTO DE ARQUIVOS. 3

5 SUMÁRIO Lista de Figuras...5 Lista de Códigos...6 Lista de Siglas INTRODUÇÃO APLICAÇÕES P2P Arquitetura P2P Protocolos de rede sem fio Arquitetura Java ME FRAMEWORK JXTA Arquitetura JXTA JXME Arquitetura JXME Diagrama de classes Protótipo Descrição Requisitos Aplicação client Java ME Aplicação Server Resultados obtidos CONCLUSÃO REFERÊNCIAS BIBLIOGRÁFICAS

6 Lista de Figuras Figura 1 Arquitetura híbrida Figura 2 Arquitetura pura Figura 3 Arquitetura Java ME Figura 4 Arquitetura JXTA Figura 5 Integração JXTA/JXME Figura 6 Diagrama de classes do framework JXME Figura 7 Nokia N70 Figura 8 Nokia E61 Figura 9 BlackBery 7520 Figura 10 Protótipo Figura 11 Tela de configuração da aplicação Figura 12 Tela principal da aplicação Figura 13 Envio de mensagens Figura 14 Envio de arquivos 5

7 Lista de Códigos Código 1 Código 2 Código 3 Código 4 Código 5 Código 6 Criação de um peer na rede Método run da classe ConectorPeer Criação de um objeto da classe Sender Método run da classe Sender Criação de um objeto da classe Receiver Método run da classe Receiver 6

8 Lista de Siglas Wi-Fi GPRS HTTP JXTA XM L Java ME JXME DHT WPAN WLAN WMAN WWAN PDA IEEE GPS API IP UUID URI TCP Wireless Fidelity General Packet Radio Service Hypertext Transfer Protocol Plataforma de desenvolvimento peer-to-peer Extensible Markup Language Java Micro Edition Plataforma de desenvolvimento peer-to-peer para dispositivos móveis Distributed Hash Tables Wireless Personal Area Network Wireless Local Area Network Wireless Metropolitan Area Network Wireless Wide Area Network Personal Digital Assitants Instituto de Engenheiros Eletricistas e Eletrônicos Global Positioning System Application Programing Interfaces Internet Protocol Universally Unique Identifier Uniform Resource Identifier Transmission Control Protocol 7

9 1. INTRODUÇÃO Os dispositivos móveis e as redes de compartilhamento chamadas peer-to-peer tem apresentado um grande crescimento no número de usuários. No entanto existe uma enorme variedade em relação às tecnologias e capacidades distintas para a comunicação sem fio (Wi- Fi, Wi-Max, BlueTooth, GPRS). As diversidades de protocolos de comunicação sem fio destacam um desafio para as redes de compartilhamento aplicadas aos dispositivos móveis. Com o crescimento dos diversos protocolos de comunicação e alteração dos antigos para atender as necessidades dos peers móveis, surge à necessidade de adaptar as idéias implantadas em diversos softwares de compartilhamento de arquivos tais como Emule, Kazaa e o pioneiro Napster aos dispositivos móveis. Estatísticas apresentam que o tráfego de dados referente a estes aplicativos, representam 37% do tráfego de dados da Internet, ficando apenas atrás do tráfego de dados realizado através do protocolo HTTP. Dados divulgados pela Anatel indicam que o Brasil terminou o mês de setembro de 2008 com 140,8 milhões de celulares, isso representa um crescimento de 13 milhões de aparelhos em 5 meses, já que no mês de abril de 2008 a quantidade era de 127,7 milhões de celulares e uma densidade de 73,25 cel/100hab comparado ao mês de abril de 2008 houve um crescimento de 6.41 pontos percentuais. As adições líquidas de 2,4 milhões no mês de setembro superam as de setembro de 2007 que foram de 1,8 milhões (Anatel, 2008). Na edição de julho de 2005 a revista Veja publicou: A empresa de análise e pesquisa britânica Datamonitor prevê que, até 2009, pelo menos 13 milhões de consumidores europeus usarão a transmissão wireless para compartilhar arquivos de áudio e vídeo... (Revista Veja, 2005). A Open Hand Set Aliance uma iniciativa do Google com a participação de um grupo de mais de trinta empresas do ramo de tecnologia móvel, lançou há pouco seu mais novo sistema operacional para dispositivos móveis chamado Android, este sistema operacional foi baseado em uma distribuição de um Kernel Linux. Em Junho de 2001 a Sun MicroSystems lançou um projeto OpenSource chamado JXTA que consiste em um framework baseado em um protocolo XML que padroniza a maneira que os peers se organizam nos peersgroups, publicam e descobrem recursos de outros peers, comunicam e monitoram uns aos outros. Com o passar do tempo viu-se a necessidade de lançar uma versão desta plataforma para os celulares, smartphones e handhelds com 8

10 capacidade de rodar a plataforma Java ME (Java Micro Edition). O objetivo desta versão é permitir que o JXTA forneça funcionalidades compatíveis com o JME, usando o CLDC (Connected Limited Device Configuration) e o MIDP (Mobile Information Device Profile). Portanto qualquer dispositivo MIDP é capaz de participar de atividades de P2P com outro dispositivo MIDP. A motivação para este trabalho originou-se do desafio que os ambientes sem fio trazem para as aplicações P2P, assim como a pesquisa de outras arquiteturas de compartilhamento que permitam a participação dos peers móveis. O objetivo principal deste trabalho de graduação é estudar aspectos relacionados às redes P2P voltados para as limitações que as redes móveis proporcionam construindo um protótipo híbrido que será capaz de trocar mensagens entre os peers, compartilhar e busca de arquivos pela rede. Como meta secundária pode-se descrever os seguintes itens: 1. Compreender problemas e requisitos dos dispositivos móveis para a participação de uma rede P2P móvel. 2. Identificar as aplicações existentes para dispositivos móveis. 3. Obter maior conhecimento na arquitetura P2P aplicada na estrutura de uma rede sem fio. No capítulo 2 é apresentada uma breve descrição do funcionamento das redes peer-to-peer, suas arquiteturas e os benefícios que cada uma proporciona, bem como os diversos protocolos de rede sem fio existente e suas características. O framework JXTA é apresentado no capítulo 3 com uma rápida descrição de seu surgimento, sua história ao passar dos anos e como surgiu a plataforma JXME, também é apresentada uma explanação de sua arquitetura e principais componentes. O capítulo 4 descreve a história do framework JXME e detalhes de seu funcionamento e arquitetura, bem como suas principais características. No capítulo 5 é apresentado de uma forma detalhada o protótipo proposto para este trabalho de graduação, todos os detalhes técnicos e funcionamento de principais objetos são descritos neste capítulo. Finamente, no capítulo 6 são relatadas as conclusões deste trabalho. No capítulo 7 estão listadas as referências bibliográficas. 9

11 2. APLICAÇÕES P2P 2.1 Arquitetura P2P Os sistemas P2P tradicionais podem ser implementados de maneira híbrida ou totalmente descentralizada (Sistema puro) conforme apresentado nas figuras 1 e 2. Um sistema P2P tradicional puro se subdivide em sistemas puros estruturados e não estruturados, que se diferenciam, respectivamente, pela capacidade de recuperar todas as informações disponíveis na rede ou apenas parte delas. Exemplos de sistemas estruturados são os sistemas baseados em tabelas hash distribuídas (DHT Distributed Hash Tables). Em artigo publicado por Schollmeier, 2001, a diferença mais distinta entre uma rede Cliente/Servidor e uma rede P2P é o conceito de uma entidade que age como Servent, que é utilizada nas redes Peer-toPeer. Servent é um neologismo derivado das palavras Servidor e Client, assim, este termo representa a capacidade dos nós de uma rede P2P agirem ao mesmo tempo como cliente e servidor. Figura 1: Arquitetura híbrida 10

12 Figura 2: Arquitetura pura 2.2 Protocolos de rede sem fio Existem diferentes tipos de redes sem fio que variam em tecnologia e aplicação, sendo possível classificá-las em quatro tipos: WPANs, WLANs, WMANs e WWANs WPAN As redes pessoais sem fio (Wireless Personal Area Network WPAN) são voltadas, principalmente, para a conexão de um computador a dispositivos periféricos, como impressoras, PDAs (Personal Digital Assistants) e telefones celulares, eliminando a necessidade de cabos. As WPANs cobrem pequenas distâncias e oferecem baixas velocidades, se comparada a outras tecnologias wireless. O padrão para WPANs é conhecido como Bluetooth, sendo suportado por um grupo de mais de empresas e, atualmente, incorporado ao IEEE Personal Area Network Working Group WLAN As redes locais sem fio (Wireless Local Area Network WLAN) são redes que oferecem uma pequena dispersão geográfica e altas taxas de transmissão. As WLANs oferecem grande flexibilidade para seus usuários, principalmente os que utilizam computadores portáteis e PDAs. As WLANs são padronizadas pelo IEEE Wireless Local Area Network Working Group WMAN As redes metropolitanas sem fio (Wireless Metropolitan Area Network WMAN) oferecem uma cobertura geográfica maior que as WLANs e altas taxas de transmissão. As WMANs são padronizadas pelo IEEE Wireless Metropolitan Area Network Working Group. 11

13 2.2.4 WWMAN As redes distribuídas sem fio (Wireless Wide Area Network WWAN) são redes com grande dispersão geográfica, voltadas para aplicações móveis que utilizem telefones celulares, pagers, PDAs etc. Existem inúmeras tecnologias para WWANs que limitam a taxa de transmissão e, conseqüentemente, o tipo de serviço que poderá ser oferecido. As redes de celulares estão caminhando rapidamente para tornarem-se a maior aplicação de WWAN. Com o crescente uso de conexões de banda larga, celulares estão transmitindo s, textos, imagens, som e vídeo, com a mesma qualidade e velocidade que os dispositivos ligados por fios. 2.3 Arquitetura Java ME A arquitetura J2ME define configurações, perfis e pacotes opcionais como elementos para construir ambientes de execução completos que preenchem os requisitos para um bom número de dispositivos e mercados-alvo. Cada combinação é otimizada para a memória, capacidade de processamento e de I/O de uma determinada categoria de dispositivos. Atualmente existem duas configurações no JME conforme apresentado na figura 3. CLDC: CDC: A CLDC é a menor das duas configurações, designada para dispositivos com conexões de rede intermitentes, processadores lentos e memória limitada (como celulares, pagers, e PDAs). Estes dispositivos possuem, geralmente, processadores de 16 ou 32 bits e memória disponível entre 128KB e 512KB para a implementação da plataforma JAVA e suas aplicações. A CDC foi feita para dispositivos que possuem mais memória processadores e conexões mais rápidos, como controles-remoto, gateways residenciais, etc. A CDC inclui uma full-featured JVM e uma parte maior do J2SE que o CLDC. Como resultado, a maioria dos dispositivos compatíveis com CDC possui processadores de 32 bits e um mínimo de 2MB de memória disponíveis para a implementação da plataforma JAVA e suas aplicações. 12

14 Figura 3: Arquitetura Java ME 13

15 3. FRAMEWORK JXTA O projeto JXTA surgiu a partir de pesquisas da Sun Microsystems com o intuito de criar soluções para problemas relacionados à computação distribuída, mais especificamente na área denominada computação peer-to-peer, e tem evoluído desde então em uma série de projetos independentes, em diversas categorias, que vão desde os componentes básicos do framework, até aplicações e serviços P2P implementados sobre este framework. O JXTA para Java ME, ou JXME, especificamente desenvolvido para plataforma Java ME é um exemplo de um destes projetos. Em Abril de 2001 a Sun Microsystems abriu o projeto JXTA num modelo de desenvolvimento e licenciamento Open Source, mantido em conjunto por uma comunidade aberta de desenvolvedores e a própria Sun. O nome JXTA vem da palavra juxtaposition, ou justaposição em português, pelo fato de que a tecnologia JXTA cria um modelo de arquitetura oposto ao modelo hierárquico da arquitetura cliente-servidor. Ou seja, na arquitetura JXTA todas as entidades participantes são clientes e ao mesmo tempo servidores, numa configuração muito mais colaborativa e orientada à comunicação. As principais características que direcionam o desenvolvimento da tecnologia JXTA são: Interoperabilidade: a tecnologia JXTA é desenhada de forma a permitir que os peers que estão interconectados se localizem, se comuniquem, e ofereçam serviços uns aos outros de maneira fácil através de diferentes sistemas P2P. Independência de plataforma: a tecnologia JXTA não depende de plataforma de hardware ou sistema operacional (como Microsoft Windows ou sistemas operacionais UNIX), e nem de uma linguagem de programação específica (como C ou Java). Também não depende de uma plataforma de rede específica (como TCP/IP ou Bluetooth). Ubiqüidade: a tecnologia JXTA é projetada para ser implementada em qualquer dispositivo que possua alguma capacidade de processamento e comunicação, como sensores, equipamentos de rede, telefones celulares, PDAs, microcomputadores, sistemas de armazenamento em disco, servidores, etc. 14

16 3.1 Arquitetura JXTA O framework JXTA é extremamente flexível e modular, disponibilizando uma série de funcionalidades e elementos básicos sobre os quais é possível a criação de serviços e aplicações. A plataforma JXTA pode ser dividida em três camadas conforme apresentado na figura 4. Figura 4: Arquitetura JXTA Dentre estas funcionalidades e elementos na primeira camada (JXTA Core) temos: Peer Groups: estabelecem um conjunto de peers e os mecanismos e políticas para criação e remoção dos peers, gerenciamento da participação dos peers nos diversos grupos, mecanismos para divulgação e descoberta de grupos e peers, serviços de comunicação, segurança, e compartilhamento de conteúdo. Peer Pipes: proporcionam um canal virtual de comunicação entre peers, no qual trafegam mensagens. Estas mensagens são estruturadas em XML e suportam a transferência de informações de maneira independente de protocolos de rede. Peer Monitoring: possibilita o controle do comportamento e atividades dos peers num grupo e pode ser utilizado para implementar funções de gerenciamento como controle de acesso e prioridade, monitoração de tráfego na rede, e controle de utilização de banda de rede. Segurança: possibilita a implementação de controles de segurança em diversos níveis, como a utilização de usuários anônimos ou registrados, comunicação 15

17 criptografada ou aberta, etc. Estes controles são utilizados ou implementados nas camadas de aplicações e serviços, quando necessário. A segunda camada (JXTA Services) desempenha o papel de suportar as funções de alto nível como a procura, compartilhamento, indexação e caching. Esta camada possibilita a colaboração independente de plataforma. A camada de serviços JXTA oferece serviços que expandem as funcionalidades básicas, assim como bibliotecas de sistema operacional suportam serviços de mais alto nível do que aqueles proporcionados pelo kernel. Dentre estes serviços, temos mecanismos de busca, compartilhamento, indexação e caching de conteúdo. A terceira camada (JXTA Applications) tem acesso tanto à camada de serviços quanto à camada núcleo. Exemplos de aplicação são: gerenciamento de conteúdo, busca de compartilhamento, computação distribuída e mensagem instantânea. 16

18 4. JXME O projeto de desenvolvimento da tecnologia JXTA para dispositivos móveis foi iniciado pela Sun Microsystems, e rapidamente transferido para a comunidade de desenvolvimento JXTA, dada a percepção geral da comunidade de que esta tecnologia poderia ter conseqüências importantes no desenvolvimento da computação para dispositivos como telefones celulares e PDAs. E a plataforma adotada para isso foi o Java ME, a plataforma Java voltada aos dispositivos móveis, devido a sua já consagrada aceitação como padrão entre os diversos fabricantes de dispositivos e também entre a comunidade de desenvolvedores. As principais características que direcionam o desenvolvimento da tecnologia JXME são: Criar uma infra-estrutura para computação P2P adequada aos dispositivos móveis; Proporcionar interoperabilidade com JXTA em outras plataformas como estações de trabalho e servidores; Ser simples e fácil de utilizar pelos desenvolvedores; Ser pequena o suficiente para ser utilizada nos dispositivos que implementam J2ME (a grande maioria deles sendo telefones celulares e PDAs simples); Ser compatível com MIDP (Mobile Information Device Profile), o perfil da plataforma Java ME mais utilizado hoje em dia em telefones celulares. 4.1 Arquitetura JXME Na tecnologia Java ME existem muitas limitações devido a enorme gama de aparelhos e suas variações de implementação, esta variação é comumente conhecida como fragmentação, ela geralmente ocorre em diferentes níveis: Nível de design: os dispositivos apresentam diversos recursos que outros não tem: câmera, GPS, touchscreen, sensor de movimento, etc. Nível de desenvolvimento: ocorre quando o dispositivo não apresenta um conjunto de API s (Application Programming Interfaces) que permitem que o desenvolvedor crie uma aplicação utilizando um recurso físico do aparelho, porém os fabricantes não são obrigados a implementar todas as API s Baseado nisso, existem duas vertentes que podem ser seguidas: a. Desenvolver uma solução para um número limitado de aparelhos, o que incondicionalmente atinge um número menor de usuários finais. 17

19 b. Customizar a aplicação para cada diferente tipo de aparelho e desta maneira atingir a todos os usuários que desejem utilizar a aplicação. Segundo Blundo e Cristofaro (2007, p.2, tradução): Devido às limitações dos recursos, o JXME tem uma grande dependência dos JXTA relays. Relays são JXTA peers que são capazes de gerenciar os pipes, advertisements, groups e routing. Os mobile peers se comunicam com o relay através de uma conexão HTTP binária, utilizando mensagens compatíveis com JXTA. Os Relays peers são encarregados de criar os recursos, procurar recursos enviar e receber mensagens.. Na figura 5 pode ser observar a arquitetura JXME e sua integração com a plataforma JXTA, nela, é possível visualizar a comunicação dos peers moveis com os JXTA relays que efetuam toda a troca de mensagens com os peers conectados à rede. Figura 5: Integração JXTA/JXME 4.2 Diagrama de classes Devido a compactabilidade do framewrok JXME, a API do framework JXME possui apenas três classes e todas elas estão no pacote net.jxta.jxme. A figura 6 apresenta o diagrama de classes do framework de acordo com a especificação UML. 18

20 Figura 6: Diagrama de classes do framework JXME A API do framework JXME possui apenas três classes, todas elas estão no pacote net.jxta.jxme: Element: Representa um elemento dentro de uma mensagem JXTA. Um elemento deve conter nome, namespace, MIMEType e um array binário para armazenamento dos dados Message: Representa uma mensagem JXTA que consiste em vários elementos, a classe Message contém métodos para acessar esses elementos PeerNetwork: É a classe mais utilizada, ela especifica tarefas que o mobile peer pode utilizar através do relay. Existem vários métodos úteis na classe PeerNetwork: a) createinstance(): retorna uma instância de PeerNetwork com um nome especifico para o peer; b) connect(): conecta o peer a um relay através da URL especificada. Este método retorna um array de bytes do estado de persistência da informação, esta informação deve ser passada através do método connect() em todas as conexões subseqüentes ao relay; c) create(): responsável pela criação de peers, grupos e pipes na rede JXTA; d) search(): responsável pela busca de peers, grupos e pipes na rede JXTA; 19

21 e) pool(): responsável pelo recebimento de uma mensagem endereçada ao peer, pode ser chamado iterativamente em uma Thread; f) listen() e close(): responsáveis pela abertura e fechamento de um canal de recebimento de mensagem; g) send():responsável por enviar uma mensagem através de um pipe especifico. 20

22 5. PROTÓTIPO 5.1 Descrição O protótipo deste projeto foi construído baseado na tecnologia Java voltada para dispositivos móveis (Java ME) e é capaz de ser instalado em qualquer dispositivo móvel que possua esta tecnologia embarcada e uma quantidade de créditos para efeito dos encargos de transferência de dados. Tem como objetivo principal efetuar a troca de mensagens e arquivos através da arquitetura P2P entre dois ou mais telefones celulares que estiverem conectados na rede. 5.2 Requisitos A aplicação deverá prover aos usuários a capacidade de troca de mensagens entre os que estiverem online no grupo através de multicasting. Ao acessar pela primeira vez a aplicação, uma tela de configuração será apresentada para que o usuário possa informar o nome que ele será identificado na rede, o endereço IP (Internet Protocol) e porta do servidor relay ao qual ele se conectará. O menu principal da aplicação possui 5 opções: Enviar msg: envio de mensagens multicasting aos usuários online; Enviar arquivo: disponibilização de arquivos para download por outros usuários; Receber msgs: recepção de mensagens enviadas ao grupo; Receber arquivo: recepção de arquivos disponibilizados por outros usuários; Configuração: menu de configuração da aplicação, nesta tela o usuário poderá configurar o endereço IP e porta do servidor relay ao qual ele se conectará; Para atender a funcionalidade de envio de arquivos o aparelho onde será instalada a aplicação deverá implementar a JSR 75 (PDAP PIM & File Data API), que é a especificação para acesso a arquivos e cartões de memória no aparelho (JCP, 2008) e a JSR 37 (MIDP 1.0) ou JSR118 (MIDP 2.0) (JCP, 2008). As figuras 4, 5 e 6 representam alguns aparelhos que atendem a esta especificação: 21

23 Figura 7: Nokia N70 Figura 8: Nokia E61 Figura 9: BlackBerry

24 5.3 Aplicação client Java ME Conforme já citando anteriormente, a tecnologia escolhida para o desenvolvimento desta pesquisa foi a Java ME, plataforma Java voltada para dispositivos móveis. A plataforma JXME proporciona de uma maneira simples, o desenvolvimento facilitado de uma aplicação P2P através dos métodos disponibilizados pelo framework Criação e conexão de um peer No primeiro acesso à aplicação uma tela de configuração é apresentada, nela o usuário informa o nome que ele será identificado na rede, o endereço IP e porta do servidor relay ao qual ele se conectará, a classe responsável por efetuar esta conexão é ConnectorPeer, ela é responsável por instanciar um peer JXME na rede, conectá-lo à esta rede salvar a configuração e fazer com que este peer escute um pipe específico, do tipo JXTA Propagate. Este tipo de pipe suporta multicasting, o que significa que todos os peers conectados a ele podem receber uma mensagem ou arquivo caso este esteja escutando o pipe no momento do envio, no código 1 pode se ver um exemplo da criação de um peer na rede: Código 1: Criação de um peer na rede Este método recebe como parâmetro de entrada, quatro objetos: JxmePeer:midlet: Instância da classe principal da aplicação que é responsável por todo o controle de exibição de telas, mensagens enviadas e recebidas, esta classe contem os métodos de controle da aplicação Java ME, startapp(), pauseapp() e destroyapp(); String:relayHost: Número de IP ou DNS (Domain Name Service) ao qual a aplicação irá se conectar para efetuar o registro do peer na rede; String:relayPort: Número da porta do servidor que é responsável pelo registro do peer na rede; 23

25 String:pipeID: Identificação do pipe ao qual a aplicação irá se comunicar com o servidor e com outros peers que estiverem escutando este mesmo pipe. O formato de identificação deste objeto de comunicação são do tipo UUIDs, estas identificações são representadas por um conjunto de 64 bytes, sendo o último byte reservado para identificar o tipo de objeto conforme exemplo: urn:jxta:uuid Segundo Oaks (JXTA in a Nutshell, p.340, tradução), este ID é representado da seguinte maneira: o ultimo byte é sempre identificado como o byte à posição #63, independente da quantidade de bytes definida no ID. No caso do exemplo acima, tem-se então o byte #63 com o valor 04, o que define um ID do tipo pipe. Na especificação do ID para pipes, os primeiros 16 bytes são utilizados para a identificação do peergroup ao qual o pipe pertence. Os 16 bytes subseqüentes definem a identificação do pipe propriamente dita. Os 31 bytes seguintes não são utilizados na identificação de pipes. Portanto não é necessário identifica-los. O sistema assume o valor zero para os mesmos quando não especificam. No código 2 é exibido o método run da classe ConnectorPeer que realiza as tarefas descritas anteriormente. Para instanciar o peer é utilizado o método createinstance da classe PeerNetwork, passando como parâmetro uma string que define o nome do peer, este método retorna um objeto do tipo PeerNetwork, que representa o peer que acabou de ser criado. Após a instanciação do peer, a conexão é feita através do método connect do mesmo, este método recebe dois parâmetros, o primeiro define a URL do relay (endereço de IP e porta), o segundo especifica um array de bytes que identifica o peer na rede durante a sessão criada. Por se tratar da criação de um peer, o segundo parâmetro deve ser nulo devido à ainda não existir a identificação do peer, este método retorna uma nova identificação do peer. Após o retorno da identificação do peer é necessário verificar se o pipe utilizado para a comunicação já foi criado ou não, para tanto, o método search() do objeto peer é utilizado passando como parâmetro um inteiro representando o objeto que está sendo buscado (PeerNetwork.PIPE), uma string para o critério de busca, a string de busca e um inteiro que define o numero máximo de respostas que se quer obter. Depois do inicio da busca é necessário à captura da mensagem de rede, esta captura é feita através do método poll(), este método recebe um parâmetro do tipo inteiro que representa o tempo em mili-segundos que o método deve aguardar pela resposta, este método retorna um objeto do tipo Message. 24

26 Caso não haja sucesso na busca pelo pipe, este deverá ser criado, essa criação é feita através do método create() do objeto peer que recebe como parâmetro o objeto que está sendo criado (PeerNetwork.PIPE), duas strings uma para o nome do objeto e outra para a identificação do recurso (UUID) e um inteiro que informa o tipo do pipe (PeerNetwork.PROPAGATE_PIPE), a captura de possíveis mensagens trafegando nesse pipe é feita de maneira similar à feita na busca pelo pipe. Código 2: Método run da classe ConectorPeer 25

27 5.3.2 Envio de mensagens/arquivos ao servidor Uma das classes principais da aplicação é a classe Sender, ela é responsável pelo envio de todas as mensagens digitadas e arquivos selecionados para o compartilhamento na rede, no código 3 é possível visualizar um objeto da classe Sender, que é instanciado em uma Thread toda vez que o usuário seleciona a opção Ok na tela onde o texto da mensagem é digitado ou um arquivo é selecionado para o envio. Código 3: Criação de um objeto da classe Sender Este método recebe como parâmetro de entrada quatro objetos: JxmePeer:midlet: Instância da classe principal da aplicação que é responsável por todo o controle de exibição de telas, mensagens enviadas e recebidas, esta classe contem os métodos de controle da aplicação Java ME, startapp(), pauseapp() e destroyapp(); byte[]:msg: Array de bytes representando a mensagem a ser enviada; String:peerName: Nome do usuário informado na tela de configuração da aplicação; String: MIMEtype: Identificação do MIMEtype da mensagem que está sendo enviada; Para criar a mensagem/arquivo a ser enviado, que é um objeto da classe Message, é necessária a definição dos elementos que irão compor a mensagem, estes elementos são armazenados em um array de objetos da classe Element. O construtor da classe Element recebe como parâmetros uma string que representa o nome do elemento, um array de bytes que representa o conteúdo do elemento a ser enviado, uma string que representa o namespace ao qual o elemento pertence e uma string que representa o MIMEtype associado ao conteúdo do elemento. Após a definição dos elementos, é necessária a criação do objeto Message passando como parâmetro o array de Element criado anteriormente, o envio da mensagem é feito através do metod send() do objeto peer, passando como parâmetro a string que representa a identificação 26

28 (UUID) do pipe criado anteriormente e o objeto Message que representa a mensagem à ser enviada, conforme apresentada no código 4. Código 4: método run da classe Sender Recebimento de mensagens/arquivos Outra classe de extrema importância na aplicação é a classe Receiver, ela é responsável pelo recebimento de todas as mensagens/arquivos a ser recebidos pela aplicação através do pipe, no código 5 é apresentado o objeto da classe Receiver que é instanciado em um Thread separada toda vez que o usuário seleciona a opção Buscar na tela de menu de mensagens. Código 5: Criação de um objeto da classe Receiver Este método recebe como parâmetro de entrada apenas um objeto: 27

29 JxmePeer:midlet: Instância da classe principal da aplicação que é responsável por todo o controle de exibição de telas, mensagens enviadas e recebidas, esta classe contem os métodos de controle da aplicação Java ME, startapp(), pauseapp() e destroyapp(); Conforme apresentado no código 6, para o recebimento da mensagem o peer executa o método pool() que tem como objetivo escutar o pipe ao qual está conectado enquanto o conteúdo do array de bytes for igual a vazio. Quando uma mensagem é recebida através do pipe, um objeto Message é valorizado e através da classe MessageParser os dados são extraídos para persistência caso seja um arquivo de mídia ou imagem e caso seja do tipo mensagem de texto haverá adição na lista de mensagens. 5.4 Aplicação Server Código 6: Método run da classe Receiver Para a conexão com o servidor foi utilizada uma aplicação pronta que implementa um peer JXTA que trabalha como um relay, esta aplicação é o jxtashell, disponível no site oficial do JXTA. Nesta aplicação toda a configuração do servidor é feita nela, pode-se configurar a porta que servirá de comunicação com os peers móveis, e as configurações de comunicação TCP e HTTP. 5.5 Resultados obtidos 28

30 Após o desenvolvimento deste trabalho pode se observar que a aplicação exige alguns requisitos mínimos que nem todos os aparelhos que suportam MIDP/CLDC possuem, um desses requisitos é a especificação JSR-75 que trata do acesso aos arquivos do device. Apesar desta limitação um ponto que deve ser ressaltado é a flexibilidade da plataforma JXME, que independe de modelo de celular e plataforma, tornando uma ferramenta poderosa para desenvolvimento de aplicações P2P móveis. As figuras 07, 08, 09 e 10 apresentam o protótipo. Figura 10: Protótipo 29

31 Figura 11: Configuração da aplicação Figura12: Menu principal da aplicação Figura 13: Envio de mensagens Figura 14: Envio de arquivos O protótipo que foi desenvolvido atende aos propósitos deste trabalho, através dele é possível trocar mensagens e arquivos entre os usuários conectados na rede P2P. 30

32 6. CONCLUSÃO Pode se concluir que o framework JXTA/JXME é uma ferramenta poderosa para o desenvolvimento de aplicações P2P para dispositivos móveis, devido à simplicidade e facilidade de utilização da API JXME. Esta plataforma tem muito a crescer com a difusão das redes 3G e o crescimento da capacidade de processamento dos celulares. Para o protótipo desenvolvido existem muitas melhorias a serem implementadas futuramente, tendo em vista que o objetivo principal foi alcançado, no futuro poderão ser desenvolvidas funcionalidades de cadastramento e autenticação de peers, gerenciamento de lista de contatos, gerenciamento de grupos de peers, notificação de usuário online ou offline, thread de sincronismo de mensagens automáticas e gerenciamento de conteúdos entre outras capacidades. Contudo, muitas dificuldades ainda servem como barreira para o desenvolvimento de uma aplicação P2P utilizando JXTA, a falta de documentação, a escassez de livros e referencias e a pouca quantidade de pessoas que adotaram esta plataforma para desenvolvimento são algumas das dificuldades encontradas. 31

33 7. REFERÊNCIAS BIBLIOGRÁFICAS BLUNDO, Carlo e Cristofaro, Emiliano de, A Bluetooth-based JXME infrastructure, 2007 Disponível em: Recuperado em 18/11/2008 BRENDON, J. Wilson, JXTA New Riders Publishing, JCP. JSR-37. J2ME Mobile Information Device Profile. disponível em: recuperado em: 11/05/2008. JCP. JSR-75. Java Specification Requests.disponivel em: recuperado em: 11/05/2008. JXME, página do projeto JXME disponível em recuperado em 04/05/2008. JXTA FREE, Disponível em recuperado em 04/05/2008 JXTA ZONE. Demystifying Pipes, JxtaSockets, JxtaMulticastSocket, and JxtaBiDiPipes, Disponível em: recuperado em 03/04/2008. OAKS SCOTT, Travaset Bernard, Gong Li, JXTA in a Nutshell, O'Reilly, 2002 SCHOLLMEIER, Rüdiger, A Definition of Peer-to-Peer Networking for the Classification of Peer-to-Peer Architectures and Applications. Peer-to-Peer Computing, 2001 SUN Microsystems. JavaME API Documentation. Disponível em recuperado em 09/04/2008. TANEMBAUM, A. S. Redes de Computadores. 32

34 TELECO, informação em telecomunicações, disponível em recuperado em 29/03/2008. Unified Modeling Language, UML: disponível em Web Mobile, Edição nº 7 da revista Web Mobile. 33

Software para compartilhamento de arquivos entre celulares usando a tecnologiapeer-to-peer aliada à plataforma JXME

Software para compartilhamento de arquivos entre celulares usando a tecnologiapeer-to-peer aliada à plataforma JXME Software para compartilhamento de arquivos entre celulares usando a tecnologiapeer-to-peer aliada à plataforma JXME Orientador: Francisco Adell Péricas Acadêmico: Roger Robert Kock Roteiro da apresentação

Leia mais

FRAMEWORK CELEPAR MANUAL DE INSTALAÇÃO/UTILIZAÇÃO DE JVM EM POCKET PC

FRAMEWORK CELEPAR MANUAL DE INSTALAÇÃO/UTILIZAÇÃO DE JVM EM POCKET PC FRAMEWORK CELEPAR MANUAL DE INSTALAÇÃO/UTILIZAÇÃO DE JVM EM POCKET PC Outubro 2007 Sumário de Informações do Documento Tipo do Documento: Relatório Título do Documento: MANUAL DE INSTALAÇÃO/UTILIZAÇÃO

Leia mais

Por Bruno T Aquino, Roberto Luiz e Ricardo Vinicius Fabri, Abril 14, 2009.

Por Bruno T Aquino, Roberto Luiz e Ricardo Vinicius Fabri, Abril 14, 2009. J2ME E O PERFIL MIDP Por Bruno T Aquino, Roberto Luiz e Ricardo Vinicius Fabri, Abril 14, 2009. INTRODUÇÃO Com o passar do tempo os aparelhos celulares deixaram de ser apenas para ligações e agenda para

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Aplicações Móveis Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito Introdução às Redes de Computadores www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução Com os computadores conectados através da Internet a informação é disseminada

Leia mais

Redes de Computadores e Aplicações

Redes de Computadores e Aplicações Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Redes de Computadores e Aplicações Aula 13 - Camada de Aplicação Visão Geral Prof. Diego Pereira

Leia mais

Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes. Personal Area Networks)

Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes. Personal Area Networks) Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.2 Camada Física Tecnologias Alternativas de Meios Físicos * WPANs (Wireless( Personal Area Networks) Curso Técnico Integrado

Leia mais

UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME

UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática UM FRAMEWORK DE CONECTIVIDADE PARA APLICAÇÕES MÓVEIS EM JAVA ME PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno: Carlos

Leia mais

Definição Rede Computadores

Definição Rede Computadores Definição Rede Computadores Uma rede de computadores consiste na interconexão entre dois ou mais computadores e dispositivos complementares acoplados através de recursos de comunicação, geograficamente

Leia mais

Redes sem Fio WPANs (IEEE ) Wireless Personal Area Networks. Ricardo Kléber. Ricardo Kléber

Redes sem Fio WPANs (IEEE ) Wireless Personal Area Networks. Ricardo Kléber. Ricardo Kléber Redes sem Fio 2016.1 WPANs (IEEE 802.15) Wireless Personal Area Networks Curso Superior de Tecnologia em Sistemas para Internet Turma: TEC.SIS.5M Redes sem Fio Onde Estamos? Sistemas de comunicação wireless

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES CURSO TÉCNICO DE INFORMÁTICA Módulo A REDES DE COMPUTADORES Modelos de Referência em Arquitetura de Redes SIGA O MODELO Um modelo de referência ajuda a entender como dois dispositivos interconectados se

Leia mais

Arquitetura de Rede. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I

Arquitetura de Rede. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I Arquitetura de Rede Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I 2 Tipos de arquiteturas Cliente-Servidor Peer-to-Peer Arquitetura Híbrida Cliente-Servidor

Leia mais

AULA 1 INTRODUÇÃO AO JAVA

AULA 1 INTRODUÇÃO AO JAVA AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede

Leia mais

Redes de Computadores

Redes de Computadores Instituto Superior Politécnico de Ciências e Tecnologia Redes de Computadores Prof Pedro Vunge I Semestre de 2017 SUMÁRIO I - Introdução às Redes de Computadores 1.1 Considerações iniciais 1.2 O surgimento

Leia mais

WAP. Determinação de Superfícies. Visíveis. José Almir Freire de Moura Júnior.

WAP. Determinação de Superfícies. Visíveis. José Almir Freire de Moura Júnior. WAP Determinação de Superfícies José Almir Freire de Moura Júnior Visíveis {jafmj@cin.ufpe.br} Tópicos Motivação Introdução Histórico Visão geral Modelo WAP Rede WAP Arquitetura WAP WAE WML WSP WTP WTLS

Leia mais

Browser é um programa desenvolvido para permitir a navegação pela web, capaz de processar diversas linguagens, como HTML, ASP, PHP.

Browser é um programa desenvolvido para permitir a navegação pela web, capaz de processar diversas linguagens, como HTML, ASP, PHP. Browser é um programa desenvolvido para permitir a navegação pela web, capaz de processar diversas linguagens, como HTML, ASP, PHP. Sua interface vai variar de acordo com a marca, onde quem escolhe é o

Leia mais

Desenvolvedor Android: Avançado. Plano de Estudo

Desenvolvedor Android: Avançado. Plano de Estudo Desenvolvedor Android: Avançado Plano de Estudo Descrição do programa A Certificação Android fornece as ferramentas necessárias para projetar e implementar aplicativos para dispositivos Android, com base

Leia mais

Estruturas de Sistemas Operacionais

Estruturas de Sistemas Operacionais Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte Escola Maria Eduarda Ramos de Barros Curso técnico em redes de computadores Carpina - PE Roteiro Aplicações de Rede Transporte

Leia mais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda

Leia mais

Processamento distribuído em ambiente peer-to-peer

Processamento distribuído em ambiente peer-to-peer Processamento distribuído em ambiente peer-to-peer Alexandre Helfrich Orientando Prof. Paulo Fernando da Silva Orientador Roteiro Introdução e Objetivos Fundamentação Teórica, Conceitos e Contexto Atual

Leia mais

4. Rede de Computador. Redes de computadores e suas infraestruturas

4. Rede de Computador. Redes de computadores e suas infraestruturas Redes de computadores e suas infraestruturas Definição Uma rede de computadores é formada por um conjunto de módulos processadores capazes de trocar informações e compartilhar recursos, interligados por

Leia mais

Classificação das redes sem fio

Classificação das redes sem fio Classificação das redes sem fio Introdução As redes são classificadas de acordo com sua abrangência geográfica, isto é, pela distância em que podem operar. As redes cabeadas já possuem essa classificação

Leia mais

Redes de Computadores e Internet

Redes de Computadores e Internet Redes de Computadores e Internet CEA145 Teoria e Fundamentos de Sistemas de Informação Universidade Prof. MSc. Federal George de H. G. Ouro Fonseca Preto DECEA / João Monlevade Universidade

Leia mais

Aplicações Visuais Mobile com Netbeans 6.0

Aplicações Visuais Mobile com Netbeans 6.0 Aplicações Visuais Mobile com Netbeans 6.0 Ramon Lopes Sun Campus Ambassador Ramon.Lopes@Sun.COM Agenda O que é o Netbeans? O que é Java ME? CLDC & MIDP Mobile Demo! Próximos Passos O que é o NetBeans?

Leia mais

Funcionalidade e Protocolos da Camada de Aplicação

Funcionalidade e Protocolos da Camada de Aplicação Funcionalidade e Protocolos da Camada de Aplicação Network Fundamentals Capítulo 3 1 Aplicações A Interface entre usuário e Rede de Dados A Camada de aplicação provê recursos para enviar e receber dados

Leia mais

Redes de Computadores

Redes de Computadores Prof. Universidade Federal de Mato Grosso do Sul brivaldo@facom.ufms.br 17 de abril de 2017 Sumário 1 Introdução 2 Componentes de Rede Serviços de Rede Protocolo 3 Acesso Residencial O que é uma Rede?

Leia mais

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare). 1 Introdução 1.1 Contextualização Recentemente, tem-se percebido um movimento de integração de comunidades físicas e comunidades virtuais. As pessoas utilizam cada vez mais a Internet para se comunicar

Leia mais

Programação Distribuída. Arquiteturas

Programação Distribuída. Arquiteturas Programação Distribuída Arquiteturas Programação Distribuída A arquitetura de um Sistema Distribuído diferencia entre a organização de componentes de software e a realização física. A organização de sistema

Leia mais

Redes de Computadores

Redes de Computadores Instituto Superior Politécnico de Ciências e Tecnologia Redes de Computadores Prof Pedro Vunge I Semestre de 2017 SUMÁRIO I - Introdução às Redes de Computadores 1.4 Principais componentes de uma rede

Leia mais

Preparação AV3 Fundamentos de Redes de Computadores

Preparação AV3 Fundamentos de Redes de Computadores Preparação AV3 Fundamentos de Redes de Computadores 1 - Em uma rede de computadores existem dispositivos responsáveis por distribuir as informações por toda a rede. Quando falamos de dispositivos que atuam

Leia mais

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1 ÍNDICE 12. Sistemas Operacionais de Redes 2 12.1. Conceito 2 12.2. Redirecionador 3 12.3. Arquiteturas 3 12.4. Par a Par 4 12.5. Cliente-Servidor 4 12.6. Os Sistemas Operacionais de Redes e as Arquiteturas

Leia mais

Backup e Restauração Banco de Dados. Evandro Deliberal

Backup e Restauração Banco de Dados. Evandro Deliberal Backup e Restauração Banco de Dados Evandro Deliberal evandro@deljoe.com.br https://www.linkedin.com/in/evandrodeliberal Redes de armazenamento: Tecnologias e Virtualização Agenda I. DAS e Introdução a

Leia mais

Sistemas de Informação (SI) Telecomunicações, Internet e tecnologia sem fio (I)

Sistemas de Informação (SI) Telecomunicações, Internet e tecnologia sem fio (I) Sistemas de Informação (SI) Telecomunicações, Internet e tecnologia sem fio (I) Prof.ª Dr.ª Symone Gomes Soares Alcalá Universidade Federal de Goiás (UFG) Regional Goiânia (RG) Faculdade de Ciências e

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda

Leia mais

ATENÇÃO O TCP/IP não é um protocolo. TCP/IP é um conjunto de diversos protocolos em 04 camadas próprias que se relaciona com o modelo OSI.

ATENÇÃO O TCP/IP não é um protocolo. TCP/IP é um conjunto de diversos protocolos em 04 camadas próprias que se relaciona com o modelo OSI. PROTOCOLOS DE TRANSMISSÃO DE DADOS PROTOCOLO TCP/IP Trata-se da sigla da palavra inglesa Transmission Control Protocol / Internet Protocol ou, simplesmente Protocolo de Controle de Transmissão / Protocolo

Leia mais

Aula 05. Telecomunicações, Internet e tecnologia sem fio Pearson. Todos os direitos reservados.

Aula 05. Telecomunicações, Internet e tecnologia sem fio Pearson. Todos os direitos reservados. Aula 05 Telecomunicações, Internet e tecnologia sem fio slide 1 Telecomunicações, Internet e tecnologia sem fio 1. Quais são os principais componentes das redes de telecomunicações e quais são as principais

Leia mais

Desenvolvimento para dispositivos móveis JavaME

Desenvolvimento para dispositivos móveis JavaME Desenvolvimento para dispositivos móveis JavaME Marcio Seiji Oyamada Aula 1 UNIOESTE Universidade Estadual do Oeste do Paraná Curso de Informática Cascavel - Brasil Introdução Ementa Conceituação de mobilidade

Leia mais

Curso: Redes de Computadores

Curso: Redes de Computadores Curso: Redes de Computadores Cadeira de Introdução a Sistemas Operacionais. Bibliografia Sistemas Operacionais Modernos Andew S. Tanembaum Sistema Operacionais Abraham Silberchatz, Peter Galvin e Greg

Leia mais

Protocolos de Aplicação WAP

Protocolos de Aplicação WAP Protocolos de Aplicação WAP WAP - Wireless Application Protocol Protocolo para aplicações sem fio; Padrão internacional para aplicações que utilizam comunicações sem fio; Foi desenvolvido para prover serviços

Leia mais

PTC Aula Princípios das aplicações de rede 2.2 A Web e o HTTP. (Kurose, p ) (Peterson, p ) 21/03/2017

PTC Aula Princípios das aplicações de rede 2.2 A Web e o HTTP. (Kurose, p ) (Peterson, p ) 21/03/2017 PTC 3450 - Aula 05 2.1 Princípios das aplicações de rede 2.2 A Web e o HTTP (Kurose, p. 62-73) (Peterson, p. 425-444) 21/03/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All

Leia mais

Arquitetura da Internet TCP/IP

Arquitetura da Internet TCP/IP Arquitetura da Internet TCP/IP A Internet Internet é a rede mundial de computadores, à qual estão conectados milhões de computadores do mundo todo; A idéia de concepção de uma rede mundial surgiu nos Estados

Leia mais

SI06 DIMENSÃO TECNOLÓGICA I

SI06 DIMENSÃO TECNOLÓGICA I 1 2 1. Apresentar os principais tipos de software. 2. Compreender os componentes básicos de uma rede de telecomunicações. 3. Compreender como o uso da internet participa no processo de acesso à informação.

Leia mais

Curso online de Fundamentos em Android. Plano de Estudo

Curso online de Fundamentos em Android. Plano de Estudo Curso online de Fundamentos em Android Plano de Estudo Descrição do programa A Certificação Android ensina como usar as ferramentas necessárias para projetar e implantar aplicativos Android para dispositivos

Leia mais

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento Grupo 11 1. Em um SID a segurança é de grande importância, ela deve garantir que apenas usuários autorizados acessem recursos e garantir que a informação transmitida pela rede somente possa ser alcançada

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar - Aula 7 - MODELO DE REFERÊNCIA TCP O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande utilidade para entender

Leia mais

I CICLO CIENTÍFICO FAPAN

I CICLO CIENTÍFICO FAPAN I CICLO CIENTÍFICO FAPAN Instalação e configuração de Redes Locais LAN, em ambientes Microsoft Windows e GNU/Linux Ademar Alves Trindade Roberto Tikao Tsukamoto Júnior Cáceres-MT, 4 a 6 de maio de 2011.

Leia mais

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o Sistemas Operacionais um pouco da história... - Evolução dos SO s através do tempo - Novas técnicas não são assimiladas simultaneamente por todos - Década de 40, não existia SO - O programador é o faz

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas Nomeação Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura Comunicação

Leia mais

Capítulo 7. A camada de aplicação

Capítulo 7. A camada de aplicação Capítulo 7 A camada de aplicação slide 1 2011 Pearson Prentice Hall. Todos os direitos reservados. Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, Pearson Education-Prentice Hall,

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.

Leia mais

27/05/2014 REDES LOCAIS

27/05/2014 REDES LOCAIS REDES LOCAIS Um grupo de computadores conectados com a finalidade de compartilhar recursos. Os computadores em uma rede local são normalmente ligados por um cabo de transmissão dentro de uma pequena área,

Leia mais

Introdução ao Desenvolvimento de

Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo

Leia mais

Professor: Jarbas Araújo.

Professor: Jarbas Araújo. Professor: Jarbas Araújo professorjarbasaraujo@gmail.com O que é rede de computadores e para que Serve? Como surgiu? Como era antes das redes? Componentes de uma rede Tipos de rede O que é rede de computadores?

Leia mais

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID Roteiro Introdução Fundamentação teórica Desenvolvimento Conclusões Introdução Plataformas

Leia mais

Uso de Software de Monitoramento em Projetos Educacionais Metasys Monitor. Home

Uso de Software de Monitoramento em Projetos Educacionais Metasys Monitor. Home Uso de Software de Monitoramento em Projetos Educacionais Metasys Monitor Home Metasys Monitor Ferramenta de Gestão de Recursos de TI, e da sua utilização pelos usuários, em redes corporativas, telecentros

Leia mais

PROJETO LÓGICO DE REDE

PROJETO LÓGICO DE REDE Instituto Federal de Santa Catarina Campus Lages Curso de Ciência da Computação Redes de Computadores Alberto Felipe Friderichs Barros Robson Costa Leonardo André de Oliveira Correa Lucas dos Anjos Varela

Leia mais

Sérgio Koch Van-Dall

Sérgio Koch Van-Dall PROTÓTIPO PARA ATUALIZAÇÃO ASSÍNCRONA DE DADOS UTILIZANDO WEB SERVICES Sérgio Koch Van-Dall sergiod@inf.furb.br Orientador: Prof. Paulo Fernando da Silva UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE CIÊNCIAS

Leia mais

Acessibilidade de instrumentos em campo: Sem fio e sem complicação!

Acessibilidade de instrumentos em campo: Sem fio e sem complicação! Products Solutions Services Acessibilidade de instrumentos em campo: Sem fio e sem complicação! Slide 1 Comunicação para instrumentos de campo Diversos protocolos de comunicação Características específicas

Leia mais

Redes de Computadores I REDES AD HOC. Seminário Novas Tecnologias em Redes. Katharine Schaeffer Fertig Kristhine Schaeffer Fertig

Redes de Computadores I REDES AD HOC. Seminário Novas Tecnologias em Redes. Katharine Schaeffer Fertig Kristhine Schaeffer Fertig Redes de Computadores I Seminário Novas Tecnologias em Redes REDES AD HOC Katharine Schaeffer Fertig Kristhine Schaeffer Fertig Introdução Ad Hoc: como o conceito é possível? Equipamentos poderosos, maior

Leia mais

Definição. São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

Definição. São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar Redes Peer-to to-peer Arquitetura de Redes P2P Exemplos de Redes P2P Indexação e Busca Integridade e Proteção 1 Redes Peer-to-Peer Redes Peer-to-Peer (P2P) São sistemas distribuídos nos quais os membros

Leia mais

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA: Sistemas Distribuídos Prof. Msc. André Luiz Nasserala Pires nassserala@gmail.com! EMENTA: Plano de Curso! Conceitos. Comunicação entre processos (IPC). Programação de aplicações cliente- servidor. Sincronização

Leia mais

Camada de Aplicação da Arquitetura TCP/IP

Camada de Aplicação da Arquitetura TCP/IP Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.1 Camada de Aplicação da Arquitetura TCP/IP Curso Técnico Integrado em Informática Turma: INT.INF.3M Arquitetura de Redes

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos P2P Peer to Peer Fonte: Carlos Alberto Kamienski e Webaula Estácio Evolução dos Modelos de Rede da Internet A Internet era P2P no início Qualquer computador funcionava como cliente

Leia mais

Desenvolvimento de Aplicações Distribuídas

Desenvolvimento de Aplicações Distribuídas SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura

Leia mais

Uma Visão Geral de Redes de Computadores

Uma Visão Geral de Redes de Computadores Uma Visão Geral de Redes de Computadores Prof: José Marcos Silva Nogueira jmarcos@dcc.ufmg.br Universidade Federal de Minas Gerais Departamento de Ciência da Computação http://www.dcc.ufmg.br Belo Horizonte

Leia mais

Aula 5. Fundamentos de Rede e Telecomunicações Sistemas de Telecomunicação Serviços de Rede Protocolo de Rede. Tipos de Redes de computadores

Aula 5. Fundamentos de Rede e Telecomunicações Sistemas de Telecomunicação Serviços de Rede Protocolo de Rede. Tipos de Redes de computadores Aula 5 Fundamentos de Rede e Telecomunicações Sistemas de Telecomunicação Serviços de Rede Protocolo de Rede Estratégias de Processamento em Rede Tipos de Redes de computadores Sistemas de Telecomunicação

Leia mais

INTERNET P R O F. M A R C O A N T Ô N I O PROF. MARCO ANTÔNIO

INTERNET P R O F. M A R C O A N T Ô N I O PROF. MARCO ANTÔNIO INTERNET P R O F. M A R C O A N T Ô N I O PROF. MARCO ANTÔNIO Conceito É uma rede de computadores interligadas, que possibilita o acesso a informações sobre e em qualquer lugar do mundo. Rede das Redes

Leia mais

CashDriver Android Instalação

CashDriver Android Instalação CashDriver Android Instalação Descreve os processos de instalação e carga inicial Baseado na Release 13.11.015 BD:3 Versão 1 13/11/2013 Resumo da apresentação Pré- condições Atualização e configuração

Leia mais

Caracterização de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos Caracterização de Sistemas Distribuídos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29 Sumário Introdução Exemplos de Sistemas Distribuídos Tendências em Sistemas Distribuídos

Leia mais

Compreenda a solução do iwag para dados do móbil 3G

Compreenda a solução do iwag para dados do móbil 3G Compreenda a solução do iwag para dados do móbil 3G Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Informações de Apoio Acrônimos Explicação da terminologia usada Compreenda os Serviços

Leia mais

1.3 Noções básicas de sistemas operacionais. Lêda Monteiro

1.3 Noções básicas de sistemas operacionais. Lêda Monteiro 1.3 Noções básicas de sistemas operacionais Sistemas Operacionais Conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória,

Leia mais

Redes de Computadores.

Redes de Computadores. Redes de Computadores www.profjvidal.com REDES PONTO-A-PONTO E CLIENTE-SERVIDOR REDES DE COMPUTADORES Uma rede de computadores é formada por um conjunto de módulos processadores capazes de trocar informações

Leia mais

Introdução Introdução

Introdução Introdução Introdução 14 1 Introdução Dispositivos computacionais móveis estão se tornando cada vez mais leves, com maior capacidade de processamento e de armazenamento, e com preços mais acessíveis. Ao mesmo tempo

Leia mais

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016 Frankley Gustavo F. Mesquita Tamiris Souza Fonseca 27 de junho de 2016 Sumário 1 2 3 4 5 6 7 8 O padrão Web foi desenvolvido pelo Laboratório Europeu de Física de Partículas (CERN - European Particle Physics

Leia mais

HMI: UM MIDDLEWARE PARA OBJETOS DISTRIBUÍDOS SOBRE O PROTOCOLO HTTP

HMI: UM MIDDLEWARE PARA OBJETOS DISTRIBUÍDOS SOBRE O PROTOCOLO HTTP HMI: UM MIDDLEWARE PARA OBJETOS DISTRIBUÍDOS SOBRE O PROTOCOLO HTTP Aluno: Abel Luiz Cechinel Orientador: Paulo Fernando da Silva Sumário Introdução; Fundamentação Teórica; Desenvolvimento; Conclusão;

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi fabianotaguchi@gmail.com http://fabianotaguchi.wordpress.com BENEFÍCIOS MODELO OSI Menor complexidade; Interfaces padronizadas; Interoperabilidade entre

Leia mais

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS Modelos: Para que um sistema, ao ser projetado, alcance as características de um sistema distribuído, esse deve ser desenvolvido em cima de algum modelo de computação

Leia mais

Como a Internet funciona:

Como a Internet funciona: navegação Ana acessa news.com usando VPN. Ela entra na sua própria sua conta. Esse diagrama apresenta o que pode ser coletado ao longo do caminho considerando se ela conecta-se ao site usando http ou https

Leia mais

Desenvolvimento de Software I

Desenvolvimento de Software I Desenvolvimento de Software I Prof. Arnaldo Martins Hidalgo Junior arnaldo@flash.tv.br http://aulashidalgo.wordpress.com 5 h/a (2 aulas semanais) http://aulashidalgo.wordpress.com 1 Competências Avaliar

Leia mais

CFTV Digital. CFTV Digital. Componentes Básicos de um Sistema de CFTV. Endereço IP.

CFTV Digital. CFTV Digital.   Componentes Básicos de um Sistema de CFTV. Endereço IP. Brasil, 22 de novembro de 2007 Marcelo Peres CREA 92.033td 1 Componentes Básicos de um Sistema de CFTV Conjunto Câmera/Lente Meio de Transmissão Processamento de Vídeo e Gravação Monitor Página 3 Redes

Leia mais

Tecnologias Atuais de Redes

Tecnologias Atuais de Redes GOVERNO DO ESTADO DE PERNAMBUCO ESCOLA TÉCNICA ESTADUAL MARIA EDUARDA RAMOS DE BARROS Tecnologias Atuais de Redes Redes Wireless Curso Técnico em Redes de Computadores Professor Emerson Felipe Módulo II

Leia mais

Redes de computadores. Douglas Wildgrube Bertol DEE - Engenharia Elétrica CCT

Redes de computadores. Douglas Wildgrube Bertol DEE - Engenharia Elétrica CCT Redes de computadores Douglas Wildgrube Bertol DEE - Engenharia Elétrica CCT AS1RAI1 Redes para Automação Industrial JOINVILLE 23/02/2017 Introdução contextualização Como conectar dois equipamentos fisicamente

Leia mais

Informática Básica. Aula 03 Internet e conectividade

Informática Básica. Aula 03 Internet e conectividade Informática Básica Aula 03 Internet e conectividade O Protocolo de comunicação O TCP (Transmission Control Protocol) e o IP (Internet Protocol) são dois protocolos que inspiraram o nome da rede. Eles englobam

Leia mais

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

A linguagem Java foi projetada tendo em vista os seguintes objetivos: Java Disciplina: Programação II Professora: Mai-Ly Vanessa Histórico do Java Em 1991 a Sun Microsystems financiou uma pesquisa sobre o que seria a nova onda digital. Desta pesquisa resultou a criação da

Leia mais

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais Sistemas Operacionais e Introdução à Programação Módulo 1 Sistemas Operacionais 1 Competências: SOP 1. Compreender as abstrações de um sistema operacional e operar um sistema operacional Unix/Linux como

Leia mais

Introdução a Computação em Nuvem

Introdução a Computação em Nuvem Introdução a Computação em Nuvem Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia

Leia mais

5 Infraestrutura de TI

5 Infraestrutura de TI Hardware consiste na tecnologia para processamento computacional, armazenamento, entrada e saída de dados. Ex: grandes mainframes, servidores, computadores pessoais, laptops e dispositivos móveis. 1 2

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 02: INTRODUÇÃO

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 02: INTRODUÇÃO ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 02: INTRODUÇÃO Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação DO QUE É COMPOSTO UM SISTEMA COMPUTACIONAL?

Leia mais

Noções sobre Redes de Computadores. Aula 16/06 Secretariado Executivo

Noções sobre Redes de Computadores. Aula 16/06 Secretariado Executivo Noções sobre Redes de Computadores Aula 16/06 Secretariado Executivo Conceito básico de redes Conjunto de computadores interligados compartilhando, softwares, arquivos e periféricos Objetivos Compartilhamento

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão Unidade 5 Camada de Transporte e Aplicação Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 Protocolo UDP 5.2 Protocolo TCP 5.3 Principias Protocolos de Aplicação 5.3.1 SMTP

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES TP1

FUNDAMENTOS DE REDES DE COMPUTADORES TP1 LEIA COM ATENÇÃO AS INSTRUÇÕES ABAIXO Em sala de aula foram distribuídos pontos em exercícios e atividades extraclasse Número de Questões Total da Avaliação 5 Pontos 10 5 Pontos Cada questão tem peso 0,5

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES TP2

FUNDAMENTOS DE REDES DE COMPUTADORES TP2 LEIA COM ATENÇÃO AS INSTRUÇÕES ABAIXO Em sala de aula foram distribuídos pontos em exercícios e atividades extraclasse Número de Questões Total da Avaliação 5 Pontos 10 5 Pontos Cada questão tem peso 0,5

Leia mais

Introdução a Computação em Nuvem

Introdução a Computação em Nuvem Introdução a Computação em Nuvem Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi fabianotaguchi@gmail.com http://fabianotaguchi.wordpress.com SUÍTE TCP 1 Camada de aplicação Protocolo Hypertext Transfer Protocol 2 HTTP Uma página WWW

Leia mais