Skip to content. Skip to navigation

Eletronica.org

Sections
Personal tools
You are here: Home Artigos Outros Arquitetura de uma Rede JXTA

Document Actions

Arquitetura de uma Rede JXTA

by Suporte Eletronica .org last modified 05/05/2008 01:01

Este artigo descreve de forma didática a estrutura básica de uma rede de comunicações P2P ("peer-to-peer", ponta-a-ponta).

1.1. – Introdução

 
     A tecnologia JXTA é uma plataforma de desenvolvimento computacional e de redes que foi desenhada para resolver diversos problemas na computação distribuída moderna, especialmente na área conhecida como P2P (cf. GONG, 2001, pg. 1).

     O projeto de JXTA foi direcionado para a criação de um framework  independente de linguagens de programação e protocolos de transporte, que possa ser implementado em qualquer dispositivo conectado a rede IP ou não IP (cf. SUN, 2005).

     Neste artigo, serão apresentados os conceitos básicos da arquitetura P2P e a estrutura da plataforma JXTA.

1.2. – Arquitetura P2P

 
     A tecnologia P2P é caracterizada pela distribuição de responsabilidades/serviços por todos os nós da rede, diferente da arquitetura Cliente-Servidor que concentra as responsabilidades/serviços no Servidor (cf. TELES, 2006).

     Os nós P2P assumem o papel de cliente e servidor ao mesmo tempo, promovendo escalabilidade e confiabilidade a arquitetura. A escalabilidade provém do fato de que o número de recursos é proporcional ao número de clientes, o que é falso na arquitetura Cliente-Servidor. A confiabilidade é advinda da falta de um ponto único de falhas.

     Os nós P2P participam ativamente do provimento de serviços e de informação. Assim o P2P permite que máquinas individuais forneçam serviços a seus pares, sem relações hierárquicas, disponibilizando aos integrantes as mesmas responsabilidades e capacidades (cf. TELES, 2006).

     Aplicações P2P são favorecidas por essa troca de serviços entre os nós da rede, que facilita o compartilhamento de informações e recursos entre os peers. Exemplos de aplicações P2P são: compartilhamento de arquivos, sistemas de mensagens instantâneas, sistemas de colaboração e computação distribuída.

1.2.1. – Modos de Comunicação entre Peers

 
     Segue abaixo os modelos básicos de comunicação entre peers:

  • Ponto-a-Ponto – conexão direta, enviando a mensagem ao peer especificado.
  • Broadcast – utilizada em subnets, a mensagem é enviada uma única vez a todos os membros da rede. É utilizada no processo de descoberta de peers e serviços.
  • Multiponto – parecido com o broadcast, mas cópias da mensagem são enviadas dentro da rede e repassadas para outras redes. É baseada em múltiplas conexões Ponto-a-Ponto. Não garante a entrega de mensagens simultânea aos peers desejados e é não determinística.


1.2.2. – Topologias de Redes P2P 


     Existem três topologias para redes P2P:

  • Pura – é uma rede sem nó central e nem hierarquia. É caracterizado por ter peers que são capazes de se conectar e comunicar com qualquer outro peer da rede. Existem mecanismos de busca e divulgação de serviços sem o auxilio de um nó central.
  • Híbrida - existe uma diferença de relevância entre os nós, um grupo de nós ou um nó central realiza tarefas de controle e indexação de informações. Os outros nós ainda são livres para comunicar diretamente entre si.
  • Centralizado – os peers se conectam a um nó central, onde publicam suas informações e serviços. O nó central ao receber uma solicitação a encaminha ao peer de sua lista que possa respondê-la. O restante da solicitação é realizada entre os dois nós, sem intervenção do nó central.


 

1.2.3 – Benefícios da Arquitetura P2P

 
     Em uma arquitetura P2P os nós dos usuários comunicam e cooperam diretamente entre si, a pouca necessidade de uma infra-estrutura centralizada o que traz uma série de benefícios. Dentre eles podemos destacar alguns listados por MAIBAUM & MUNDT (2002, p.2):

  • Confiabilidade – sistemas P2P são mais confiáveis, quando vários peers implementam o mesmo serviço. Eles ainda evitam o problema de uma única rota que pode se tornar congestionada ou indisponível;
  • Performance – sistemas P2P possuem melhor performance e requerem menores larguras de banda;
  • Melhor utilização dos Recursos Compartilhados – se um peer não precisa de um recurso especial, ele pode oferecê-lo a outros peers;
  • Segurança – P2P suporta comunicação fim-a-fim através de canal seguro.


 

1.3. – Plataforma JXTA


     A plataforma JXTA é composta de três camadas, como exposto na figura 1. As camadas são:

  • JXTA Core – encapsula as primitivas mínimas e essenciais que são comuns a todas as aplicações P2P. O que inclui os blocos componentes dos mecanismos chaves de aplicações P2P, incluindo descoberta de recursos, transporte, criação de peers e grupos de peers, e as primitivas de segurança (cf. SUN, 2006, p. 10);
  • JXTA Services – suporta funções de alto-nível como buscas, compartilhamento de arquivos e recursos, indexação e caching (cf. MAUBAIM & MUNDT, 2002, p. 3);
  • Aplicação – faz uso das camadas anteriores para suportar aplicações P2P mais complexas, como: gerenciamento de conteúdo, busca compartilhada, computação distribuída e mensageiros instantâneos.


JXTA Plataforma


Figura 1 : Camadas JXTA


1.3.1. – Componentes da Plataforma JXTA

 
     Uma rede JXTA consiste em um conjunto de nós interconectado, chamados peers. Peers podem se auto-organizar em grupos de peers, que podem prover serviços em comum.

     Os serviços são divulgados utilizando anúncios, que são documentos XML que descrevem os componentes básicos da rede: peers, grupos de peers, pipes e serviços. Os anúncios permitem que outros nós da rede possam saber da existência do servidor provido e como se pode ter acesso ao mesmo.

     Os peers JXTA utilizam pipes, canais virtuais de comunicação unidirecionais, para enviar mensagens entre si.

     Segue abaixo uma descrição dos conceitos mais importantes de JXTA encontrados em SUN (2006):

  • Peers – são dispositivos conectados a rede que implementam um ou mais protocolos JXTA. Peers incluem sensores, celulares, PDAs, como também PCs e servidores. Cada Peer possui um endereço único e divulga um endpoint que permite que outros peers estabeleçam conexões ponto-a-ponto. Peers geralmente são configurados para espontaneamente descobrir outros peers na rede e formar relacionamentos chamados de grupos de peers;
  • Grupo de Peers – é uma coleção de peers que provem serviços em comum, possui endereço único na rede e suas próprias políticas de adesão ao grupo;
  • Rendezvous – são peers com a capacidade de armazenar anúncios, ou encaminhar mensagens ou ambas. Eles são usados na descoberta de anúncios e para ligar dois segmentos diferentes de redes;
  • Serviços de Rede – Peers cooperam e comunicam entre si para descobrir, divulgar e invocar serviços de rede. Serviços podem ser pré-instalados ou carregados da rede;
  • Módulos – são abstrações usadas para representar pedaços de código que implementam comportamentos no mundo JXTA, peers podem aprender novos comportamentos quando adere a um novo grupo;
  • Pipes – são mecanismos unidirecionais e assíncronos de transferência de dados e mensagens;
  • Mensagens – são objetos trocados entre peers JXTA podem ser documentos XML ou representações binárias.


 

1.3.2. – Protocolos JXTA 


     JXTA define seis protocolos, os peers são obrigados a implantar pelo menos um. A Figura 2 mostra a pilha de protocolos.

JXTA Protocolo


Figura 2 : Protocolos JXTA


     Abaixo segue breve descritivos das funcionalidades dos protocolos JXTA encontrados em MAUBAIM & MUNDT (2002):

  • Peer Endpoint Protocol (PEP) – é responsável pelo roteamento em JXTA, descobre rotas entre peers. Uma rota é a seqüência de nós de um endpoint para outro, mas não tem ligação direta com o termo rotear dos protocolos de transporte. O PEP trabalha de forma transparente em relação à camada de transporte de rede. PEP ignora firewalls e a presença de redes lógicas construídas com NAT;
  • Peer Resolver Protocol (PRP) – é o mecanismo pelo qual um peer pode enviar uma requisição genérica a outro. Cada requisição possui um identificador único, que é retornado na resposta da solicitação;
  • Peer Discovery Protocol (PDP) – é utilizado na descoberta de recursos anunciados. PDP usa os rendezvous para descobrir os anúncios;
  • Peer Binding Protocol (PBP) – é usado para estabelecer pipes entre peers;
  • Peer Information Protocol (PIP) – é usado na troca de informações de estado dos peers, que podem incluir carga de tráfego, tempo ativo e outras;
  • Peer Membership Protocol (PMP) – é o mecanismo pelo qual peers se auto-organizam em grupos. PMP coordena as ações de adesão e saída de peers dos grupos.


1.4. – JXTA e Sistemas Embarcados 


     JXTA é uma especificação de um framework para aplicações P2P que não depende de linguagens de programação ou protocolos de transporte. Isso abre espaço para várias implementações de JXTA utilizando diferentes tecnologias.

     Um dos projetos de maior destaque da comunidade JXTA é a versão para pequenos dispositivos baseada na arquitetura do Java Micro Edition. O que abre espaço para o uso da plataforma em aplicações embarcadas.

     Ainda existem algumas iniciativas de usar JXTA para gerenciamento de redes de sensores inteligentes, como mostrado por SILVA(2004). É difícil para um dispositivo embarcado de menor porte, como alguns sensores inteligentes, implementar os protocolos de JXTA, mas pode-se utilizar um aplicativo desktop como gateway de uma rede de sensores com menor poder computacional ou de comunicação. Dessa forma é possível interligar diversas redes de sensores e realizar a descoberta automática de recursos, comunicação entre sensores e outras funcionalidades que o JXTA permite.


1.5. – Conclusão

 
      A tecnologia JXTA é uma plataforma genérica para aplicações P2P em expansão. Diversos trabalhos acadêmicos e comerciais estão em desenvolvimento por uma comunidade de desenvolvedores bastante atuantes.

     Com certeza, com o intenso aumento dos dispositivos móveis surgirá a necessidade de aplicações mais dinâmicas, que poderão usufruir de todos os benefícios de JXTA.
 

1.6. – Referências

 

  • GONG, Li. JXTA: A Network Programming Enviroment. IEEE Internet Computing: maio, 2001.
  • MAIBAUM, Nico. MUNDT, Thomas. JXTA: A Technology Faciliting Mobile Peer-to-Peer Networks. Mobility and Wireless Acess Workshop, 2002.
  • SILVA, Michael da. Self Organized, Fault Tolerant, Peer-to-Peer Management of SNMP Devices, 2004. Disponível em: www.scs.carleton.ca/~arpwhite/documents/honoursProjects/michael-da-silva-summer-2004.pdf
  • SUN. Project JXTA: Java Programmer Guide. Sun Microsystems. Disponível em : http://www.jxta.org.docs/JxtaProgGuide_v2.pdf
  • TELES, Carlos Pedroso. JMED: Uma Arquitetura Peer-to-Peer para aplicações em telemedicina, Fortaleza, 2006. Dissertação de Mestrado em Engenharia de Teleinformática apresentada ao Departamento de Engenharia de Teleinformática da Universidade Federal do Ceará.



Otávio Alcântara


Otávio Alcântara é Tecnólogo em Telemática pelo CEFET-CE e especializado em desenvolvimento de software em tempo real para sistemas embutidos .





Acesso rápido: Lista Completa de Projetos | Diretório de Artigos | Apostilas & E-Books | Política de Privacidade

Publicidade

 
Assine o informativo Eletronica.org Grupos de Usuários O'Reilly

Log in


Forgot your password?
New user?
Recent Changes
All recent changes…
Conheça Também
Sites em Português
  - Neoradix
  - DQSoft
  - Gabiarra
  - SafiraTec
  - Feira de Ciências
  - RoboFEI
  - Transistor548
  - Rogercom.com
  - Pise na Grama
  - Electronics.com.br
  - Tecnocientista.info

Listas em Português
  - PicListBrasil
  - SisEembarcados

Sites em Inglês
  - Embedded.com
  - Hack a Day
  - Electr. Design
  - Arch Embedded!



[O que é isso?]
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: