Universidade Federal de Pernambuco Graduação em Ciência da Computação



Baixar 197.47 Kb.
Página7/7
Encontro29.07.2016
Tamanho197.47 Kb.
1   2   3   4   5   6   7

4. 1 - Procedimento do Aplicativo

O primeiro passo é configurar o Relay para que os peers possam se conectar a ele para receber suas mensagens como já foi explicado anteriormente. Foi decidido utilizar o JXTA Shell (uma aplicação padrão de JXTA) para desempenhar esse papel. O Relay foi configurado da seguinte forma, para funcionar como localhost:



Fig10 – Configuração da rede JXTA


Os detalhes importantes dessa configuração é que na parte de Service Settings deve estar sempre marcados “Act as Relay” e “Act as a JXME Proxy”.
Com o Relay configurado o próximo passo é rodar a aplicação usando o emulador Wireless Toolkit (WTK 2.3 beta). Após a aplicação ser inicializada no emulador, antes de realizar a conexão com a rede p2p, é necessário entrar numa tela de configuração:

Fig11 – Tela de configuração


Nos campos relay host e relay port devem ser colocados respectivamente o ip do relay e a porta da aplicação jxta que está rodando no mesmo. No campo identity é o nome do peer, no poll interval o usuário define de quanto em quantos segundos o dispositivo vai se conectar ao relay para enviar ou receber sua informações.
Após ser feita a configuração, o peer está apto para se conectar a rede, isso é feito na opção conectar no menu principal. Com a conexão estabelecida, o usuário pode enviar mensagens (send ou reply) e ler as mensagens enviadas pelo peers da rede:

Fig12 – Tela do Chat

No menu principal existe também a opção de ver a lista de peers que estão participando do Chat.

Fig13 – Lista de Peers


Quando os peers são adicionados a lista de peers, sua localização já está disponível para ser visualizada pelo usuário, é só ele selecionar um peer e depois escolher OK, com isso aparecerá uma tela com as informações sobre as coordenadas do peer que ele escolheu, e a distância do usuário até aquele peer.

Fig14 – Informações de Localização

Nessa tela o usuário tem a latitude e a longitude em graus, e a distância e os outros detalhes em metros.
Selecionando a opção “show map” o usuário tem a possibilidade de visualizar num mapa a sua localização em relação à localização do peer escolhido. Como já foi dito para a demonstração da aplicação foi usado o mapa de uma cidade fictícia apenas para demonstrar o recurso:

Fig15 –Posicionamento no Mapa


Para essa primeira versão essas são basicamente as telas e as funcionalidade desenvolvidas, no capítulo 6 serão apresentadas outra abordagens futuras que enriquecerão mais a aplicação.

4. 2 - Ferramentas Utilizadas

Para o desenvolvimento, testes, e emulação dos dispostivos celulares e da geração de coordenadas GPS, foram utilizados os seguintes aplicativos respectivamente:



  • Netbeans 4.0 com Mobility Pack

  • Sun Java Wireless Tool Kit 2.3 beta (WTK 2.3)

  • Skylab GPS Simulator



5 - Conclusões

Neste trabalho foi apresentada uma abordagem que visa popularizar o uso de Location- Based Services para interações dos usuários em comunidades virtuais. Além disso, mostrou-se também que JXTA pode ser usada como uma abordagem de comunicação P2P integrando dispositivos móveis com outros tipos de dispositivos e que a implementação de JXTA para J2ME (JXME) apesar de todas as suas limitações pode ser usada para criar aplicações para celulares realizarem comunicação P2P.


Foi apresentada uma aplicação como prova de conceito, demonstrando de forma real a interação entre as tecnologias apresentadas nesse trabalho, e dando uma idéia de como o usuário real pode vivenciar uma experiência de comunicação P2P através do celular e compartilhar em comunidade sua informação geográfica.

5.1 - Dificuldades Encontradas

As principais dificuldades encontradas nesse trabalho, foram realmente encontrar referências ou trabalhos correlatos sobre o assunto e as plataformas tecnológicas apresentadas.


Na Location API existe muito pouca informação de como implementar os provedores de localização a partir dos métodos de posicionamento, e praticamente nenhum estudo em relação a isso, fica aqui até uma sugestão para que pesquisas nesse aspecto sejam desenvolvidas, a área parece ser ampla e o campo está aberto.
Em JXME dos poucos exemplos que existem, nenhum realmente demonstra tudo que é dito que a plataforma pode fazer, como busca de peers e de peer groups. Além disso algumas potencialidades novas colocadas a pouco tempo no código da API não possuíam comentários e não estavam devidamente documentadas, sendo assim arriscado seu uso, por isso não foram colocadas nessa primeira versão do aplicativo.

5.2 - Trabalhos Futuros



Estender a localização para grupos:
Nessa funcionalidade uma analogia que poderia ser feita é a de que criar um grupo seria como fincar uma bandeira num lugar. Quando um usuário criasse um grupo este teria a localização do usuário no momento da criação e mesmo que o usuário se movesse, a localização do grupo não mudaria, isso tornaria mais simples o gerenciamento das informações do grupo, e além disso, informações sobre restrições geográficas poderiam ser adicionadas ao grupo também, proferindo assim uma seletividade na hora de permitir conexões com este grupo de acordo com as necessidades de uma aplicação ou do próprio usuário. Um exemplo básico seria criar um grupo onde só pudessem entrar nele quem estivesse a no máximo 10 Km de distância do mesmo. Isso seria possível adicionando-se informações extras no advertisements padrão dos peer groups de JXTA, o mais importante é que com a flexibilidade que JXTA disponibiliza isso não geraria nenhuma incompatibilidade, pois aplicações JXTA puras que não fossem capazes de reconhecer o aspecto de localização dos advertisements pegariam apenas as informações que lhes fossem pertinentes. Um exemplo de como ficariam os advertisements pode ser visto na comparação abaixo:



Advertisement de grupo normal

NetPeerGroup




NetPeerGroup by default

urn:jxta:jxta-NetGroup





Um exemplo de Advertisement de grupo com localização

NetPeerGroup




NetPeerGroup by default



65.34.12 N

50.23.11 W


urn:jxta:jxta-NetGroup





Implementar a busca por peers e por grupos usando a localização como restrição:
Supondo que a localização para grupos já fosse uma realidade, teríamos agora peers, grupos e suas localizações. A busca que existe atualmente para encontrar peers ou grupos se baseia ou numa busca por nomes do peer, ou por recursos (nome de arquivos, de grupos, tipos de arquivos), ou por serviços (para o caso dos peer groups). Então porque não poder fazer a busca através da localização? Para isso um estudo aprofundado deveria ser feito no Peer Discovery Protocol, para encontrar a melhor forma para esse tipo de informação funcionar como filtro. Isso ajudaria também na questão de performance e uso da banda da rede, pois peers que não estivessem dentro dos requisitos de localização não enviariam respostas as requisições.
Prover implementações para outros tipos de métodos de posicionamento:
Um estudo sobre outros métodos de posicionamento, e descobrir ou até mesmo implementar formas de simular métodos de posicionamento baseados em redes, para implementar outros tipos de provedores de localização para a aplicação. Pelo menos dois métodos seriam o alvo mais imediato por serem os mais usados: O Cell-ID e o A-GPS.
Prover uma versão usando JXME Proxyless:
Com a popularização dos chamados SmartPhones os celulares cada vez se tornam mais poderosos, a 4° Geração já começa a se tornar uma realidade. Cada vez mais os Relays Peers deixarão de ser necessários, então prevendo este quadro uma implementação usando a versão proxyless de JXME poderia ser feita e comparada com a versão atual.
A idéia é realmente levar a frente a abordagem apresentada nesse trabalho. e dar-lhe maturidade e estrutura para que aplicações variadas e mais complexas possam se aproveitar das vantagens dessa visão. Para isso um dos planos é abrir o código do que foi feito e apresentar isso como um projeto open source no site da plataforma JXTA.


5.3 - Considerações Finais

A abordagem apresentada nesse trabalho pode servir como ponto de partida para um conhecimento maior da plataformas aqui apresentadas, e os problemas e questões levantadas no decorrer da realização são pertinentes e devem ser discutidos, podendo dar origem a outros trabalhos como este.



Referências Bibliográficas

[Sundsted01] Sundsted Todd. The practice of peer-to-peer computing: Introduction and history. March 2001.

[Eberspächer et al04] Eberspächer Jörg, Schollmeier Rüdiger, Zöls Stefan, Kunzmann Gerald and für Kommunikationsnetze Lehrstuhl. Structured P2P Networks in Mobile and Fixed Environments. July 2004. Disponível em: http://www.comp.brad.ac.uk/het-net/HET-NETs04/CameraPapers/T4.pdf

[Biström04] Biström Johnny. Mobile P2P – Creating a Mobile File-Sharing Environment. December 2004.

[Klein & Hlavacs] Klein Bernhard and Hlavacs Helmut. A Seamless Mobile Community Support System. Disponível em: http://www.pervasive.ifi.lmu.de/adjunct-proceedings/doctoral-colloquium/p137-144.pdf

[Sandvine02] Sandvine Whitepapers. Peer-to-Peer File Sharing. December 2002. Disponível em: http://www.sandvine.com/

[Sandvine04] Sandvine Whitepapers. Meeting the Challenge of Today’s Evasive P2P Traffic. September 2004. Disponível em: http://www.sandvine.com/

[Brookshier02] Brookshier D. et al. JXTA: Java P2P Programming. 1ª ed. Sams. 2002.

[Wilson02] Wilson B. JXTA. 1ª ed., New Riders, 2002.

[Gradecki02]Gradecki D. Josep. Mastering JXTA. Wiley. 2002

[Wilding03] Wilding-Macbride, D. Java Development on PDAs: Building Applications for PocketPC and Palm Devices. Addison Wesley. 2003

[JXTA] JXTA official site. Disponível em: http://www.jxta.org

[JXTA Especification] JXTA Protocols Specification. Disponível em: http://spec.jxta.org/nonav/v1.0/docbook/JXTAProtocols.html

[Yuan03] Yuan J. Michael. Mobile P2P messaging, Part 2: Develop mobile extensions to generic P2P networks. Janeiro 2003. Disponível em: http://www-128.ibm.com/developerworks/java/library/wi-p2pmsg2/

[Knudsen02] Knudsen jonathan. Getting Started with JXTA for J2ME. July 2002

[Muchow02] Muchow J.W.: Core J2ME technology & MIDP, JAVA series. The Sun Microsystem press, Prentice Hall, 2002.

[Nokia05] Nokia. Capitalizing On The Location-Based Services Opportunity. March 2005.

[JSR-179 Expert Group 03] JSR-179 Expert Group. Location API for Java 2 Micro Edition. September 2003.

[JSR-179] JSR-179 Especification. Disponível em: http://www.jcp.org/en/jsr/detail?id=179

[Mahmoud04] Mahmoud, H. Q. J2ME and Location-Based Servic”, Sun DeveloperNetwork, Março 2004. Disponível em: http://developers.sun.com/techtopics/mobility/apis/articles/location/

[Northstream05] Northstream Whitepapers. The Next Step For Location-Based Services, fevereiro de 2005. Disponível em: http://www.northstream.se/page/custom/northnews/get_news_file.asp?id=84

[Macnaughtan04] Macnaughtan, M. D.; Drane, C.R. Mobile Positioning: An Overview ,Seek Wireless, 2004.

[Reinghold93] Reinghold Howard. The Virtual Community. 1993. Disponível em: www.rheingold.com/vc/book/intro.html

[Recuero01] Recuero da C. Raquel . Comunidades Virtuais: Uma abordagem teórica. 2001.

Apêndice A : J2ME


J2ME ou Java Micro Edition é a combinação de uma máquina virtual e de APIs Java para o desenvolvimento de aplicações para dispositivos móveis ou de pequeno porte (celulares, palms, Set Top Box, etc...).
A tecnologia J2ME pode ser dividida em 3 partes:

  • Configuração

  • Profile

  • Pacotes opcionais.

A configuração é uma especificação, define o mínimo de bibliotecas Java e capacidades da máquina virtual para o desenvolvimento de aplicações. É a plataforma mínima para uma família de dispositivos. Neste trabalho foi usada a configuração CLDC 1.1 (Connected Limited Device Configuration), que é definida para dispositivos com a seguinte configuração:



  • 160Kb a 512Kb de memória disponível para Java

  • Energia limitada (bateria)

  • Conectividade Limitada com a rede (wireless)

  • Interfaces Gráficas limitadas, telas pequenas

Profile é uma coleção de APIs de tecnologias que oferecem mais opções a uma configuração. Na aplicação implementada neste trabalho foi usado o profile MIPD 2.0.


Pacotes opcionais, são pacotes que geralmente não vem junto com o dispositivo, e sim com a aplicação. O pacote opcional usado neste trabalho foi o de JXME.

Apêndice B: Formato de dados NMEA

Criado pela National Marine Electronic Association (NMEA), surgiu como um padrão de estrutura de dados para vários tipos de equipamentos eletrônicos de uso marítmo. O dispositivo GPS é definido por essa especificação. A idéia por trás de NMEA é enviar uma linha de dados chamada sentença que é independente de outras sentenças. Todas as sentenças padrão tem duas letras de prefixo que definem o tipo de dispositivo capaz de entender aquela sentença, e mais três letras que definem o conteúdo da sentença. Esse apêndice se limita a fazer um resumo das sentenças para dispositivos GPS (prefixo GP).


Existem muitas sentenças no padrão NMEA. Abaixo estão listadas as sentenças principais para GPS, as quais o parser da aplicação apresentada neste trabalho dá suporte:

  • BOD- Bearing Origin to Destination

  • GGA - Fix information

  • GLL - Latitude/Longitude data

  • GSA - Overall Satellite data

  • GSV - Detailed Satellite data

  • RTE - Route message

  • RMB - Recommended navigation data for gps

  • RMC - Recommended minimum data for gps

  • VTG - Vector track an Speed over the Ground



B.1 - Exemplo de decodificação de uma sentença


$GPGLL,4916.45,N,12311.12,W,225444,A,*31


Campo

Decodificação

GPGLL

Posição Geográfica, Latitude e Longitude

4916.45,N

Latitude 49°16’45’’ Norte

12311.12,W

Longitude 123°11’12’’ Oeste

225444

Timestamp 22:54:44 UTC

A

Dados Ativos

*31

Checksum


B.2 - Exemplo de mensagem completa usada na aplicação

$GPRMC,090256,A,6127.5276,N,02350.7837,E,18.6,166.4,131102,6.8,E,A*2C

$GPRMB,A,,,,,,,,,,,,A,A*0B

$GPGGA,090256,6127.5276,N,02350.7837,E,1,11,1.0,141.6,M,20.7,M,,*47

$GPGSA,A,3,03,08,10,15,17,,23,26,27,28,29,31,2.1,1.0,1.9*33

$GPGSV,3,1,12,03,11,018,00,08,61,095,46,10,29,216,42,15,16,331,39*72

$GPGLL,6127.5276,N,02350.7837,E,090256,A,A*44

$GPBOD,,T,,M,,*47



$GPVTG,166.4,T,159.6,M,18.6,N,34.4,K*4C

$GPRTE,1,1,c,*37
1   2   3   4   5   6   7


©principo.org 2016
enviar mensagem

    Página principal