Artigo WebMobile 07 - Mobile Peer-to-Peer com JXTA

Utilizando o framework JXTA/JXME em aplicações J2ME para implementação de comunicação P2P entre celulares.

Esse artigo faz parte da revista WebMobile Edição 07. Clique aqui para ler todos os artigos desta edição

 

 

Clique aqui para ler este artigo em PDF

 

Mobile Peer-to-Peer com JXTA

Utilizando o framework JXTA/JXME em aplicações J2ME para implementação de comunicação P2P entre celulares

 As tecnologias e arquiteturas para computação Peer-to-Peer (P2P) têm sido intensamente utilizadas nos últimos anos na construção de aplicações e serviços que se tornaram extremamente úteis e populares, tanto no âmbito do uso pessoal como corporativo. Serviços de mensagens instantâneas, colaboração, troca e compartilhamento de arquivos, e jogos multi-player são alguns exemplos.

Com a explosão do mercado de telefonia móvel e a massificação dos aparelhos capazes de implementar algum tipo de comunicação em rede e de rodar aplicações, um novo leque de oportunidades se abre para o desenvolvimento de novos serviços, ou integração de serviços existentes que utilizam infra-estrutura para computação P2P.

Este artigo irá explorar a utilização do framework JXTA para a criação de uma infra-estrutura de comunicação P2P através da demonstração de um aplicativo simples de mensagens instantâneas desenvolvido para plataformas J2ME que utiliza a API JXTA para J2ME (também conhecida por JXME).

Apesar deste artigo explorar os principais conceitos do framework JXTA e da implementação de clientes JXME mostrando um exemplo prático de utilização, o foco não é o aprofundamento técnico nestas tecnologias e nem o detalhamento de como desenvolver a aplicação J2ME. Ao longo do artigo serão referenciados os links apropriados para a busca de informações mais detalhadas sobre a tecnologia JXTA.

O projeto 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 J2ME, ou JXME, especificamente desenvolvido para plataforma J2ME é 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.

O framework 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 JXTA (ver Figura 1).

 

Figura 1. Arquitetura JXTA.

 

Dentre estas funcionalidades e elementos na camada básica 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 criptografada ou aberta, etc. Estes controles são utilizados ou implementados nas camadas de aplicações e serviços, quando necessário.

 

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." [...] continue lendo...

Artigos relacionados