Você está na página 1de 70

CENTRO FEDERAL DE EDUCAO TECNOLGICA DO RIO GRANDE DO NORTE

GERNCIA EDUCACIONAL DE TECNOLOGIA DA INFORMAO


CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE

SISTEMA DE BUSCA DE PERFIL EM CELULARES


UTILIZANDO J2ME, BLUETOOTH E XML SCHEMA

Bruno Gomes de Arajo


Orientador: Ricardo Alexsandro de Medeiros Valentim, MSc.
(CEFET-RN/Mossor)

Natal (RN), maro de 2008

CENTRO FEDERAL DE EDUCAO TECNOLGICA DO RIO GRANDE DO NORTE


GERNCIA EDUCACIONAL DE TECNOLOGIA DA INFORMAO
CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE

SISTEMA DE BUSCA DE PERFIL EM CELULARES


UTILIZANDO J2ME, BLUETOOTH E XML SCHEMA

Bruno Gomes de Arajo


Orientador: Ricardo Alexsandro de Medeiros Valentim, MSc.
(CEFET-RN/Mossor)

Monografia apresentada Banca Examinadora do


Trabalho de Concluso do Curso de Tecnologia
em
Desenvolvimento
de
Software,
em
cumprimento s exigncias legais como requisito
parcial obteno do ttulo de Tecnlogo em
Desenvolvimento de Software.

Natal (RN), maro de 2008

"As razes do estudo so amargas, mas seus frutos


so doces." (Aristteles)

Dedico este trabalho a minha famlia, em especial


meus pais que sempre me deram o apoio necessrio
durante toda esta caminhada.

AGRADECIMENTOS
Agradeo primeiramente a Deus por ter me concedido esta oportunidade de
concluir mais uma etapa de minha vida. Aos meus pais, Italon e Cludia, que
proporcionaram e sempre deram as condies necessrias aos meus estudos, pelas
orientaes na minha vida e tambm pelo apoio em todas as minhas decises.
Agradeo tambm aos meus irmos, Monique e Andr, por estarem sempre ao meu
lado quando precisei, e a minha famlia, em especial meus avs e primos.
A todos os meus velhos amigos que participaram de vrias etapas da minha
vida, aos que foram meus colegas de classe e professores durante o curso TDS que se
tornaram meus verdadeiros amigos, e aos meus companheiros dos projetos SIGA e
SIEP.
Em especial, agradeo a Matheus, Jalerson, Simonne e Luiz Srgio por
disponibilizarem os celulares para realizar os testes da aplicao desenvolvida, e
tambm a Adelson, Gleison e ao casal 20 (Lucas e Rose) pelas ajudas que precisei
durante o desenvolvimento.
Agradeo tambm a Valentim pela orientao, ateno, pacincia e por ter
acreditado em mim ao aceitar ser meu orientador.
Agradeo tambm a Bruno Ghisi, por toda a ajuda e disponibilidade para tirar
todas as dvidas referentes ao Framework Marge criado por ele.
minha namorada, Kaline, que sempre me apoiou e me deu foras necessrias
para a concluso deste trabalho, considerado por ela como TCC Maluco, e por todo o
amor correspondido.

SUMRIO
LISTA DE ABREVIATURAS..................................................................................................................... viii
LISTA DE FIGURAS .....................................................................................................................................x
LISTA DE TABELAS ................................................................................................................................. xii
RESUMO ................................................................................................................................................... xiii
ABSTRACT ............................................................................................................................................... xiv
1.

INTRODUO .................................................................................................................................... 15

1.1.

OBJETIVOS......................................................................................................................................... 18

1.1.1.

OBJETIVO GERAL ............................................................................................................................. 18

1.1.2.

OBJETIVOS ESPECFICOS ................................................................................................................. 18

1.2.

METODOLOGIA ................................................................................................................................... 18

1.3.

ESTRUTURA DO TRABALHO ................................................................................................................. 18

2.

FUNDAMENTAO TERICA .......................................................................................................... 20

2.1.

DISPOSITIVOS MVEIS ........................................................................................................................ 20

2.1.1.
2.2.

TELEFONIA MVEL CELULAR ............................................................................................................ 20


BLUETOOTH ....................................................................................................................................... 21

2.2.1.

PICONET E SCATTERNET .................................................................................................................. 21

2.2.2.

ARQUITETURA BLUETOOTH............................................................................................................... 22

2.2.3.

PESQUISA POR DISPOSITIVOS E SERVIOS........................................................................................ 24

2.2.4.

PERFIS BLUETOOTH ......................................................................................................................... 25

2.3.

MTODOS DE TRANSMISSO DE DADOS .............................................................................................. 27

2.4.

MTODOS DE TROCA DE DADOS.......................................................................................................... 27

2.5.

XML .................................................................................................................................................. 29

2.6.

J2ME ................................................................................................................................................ 29

2.6.1.

ARQUITETURA J2ME ....................................................................................................................... 30

2.6.2.

CONFIGURAES............................................................................................................................. 31

2.6.3.

PERFIS ............................................................................................................................................ 32

2.6.4.

PACOTES OPCIONAIS ....................................................................................................................... 33

3.

SISTEMA DE BUSCA DE PERFIL ..................................................................................................... 35


vi

3.1.

MODELO DO SISTEMA ......................................................................................................................... 35

3.2.

FORMATO DO PERFIL .......................................................................................................................... 36

3.3.

MECANISMO DE LEITURA DO PERFIL .................................................................................................... 38

3.4.

MECANISMO DE COMUNICAO E ENVIO DO PERFIL ............................................................................. 38

3.5.

MECANISMO DE COMPARAO DE PERFIL ........................................................................................... 41

3.6.

CLASSIFICADOS MOBILE WIRELESS .................................................................................................... 42

3.6.1.

REQUISITOS .................................................................................................................................... 43

3.6.2.

CASOS DE USOS .............................................................................................................................. 44

3.6.3.

DIAGRAMA DE CLASSES ................................................................................................................... 56

3.7.

FERRAMENTAS UTILIZADAS................................................................................................................. 61

3.8.

RESULTADOS EXPERIMENTAIS ............................................................................................................ 62

3.8.1.

AMBIENTE DE TESTES ...................................................................................................................... 62

3.8.2.

RESULTADOS................................................................................................................................... 63

4.

CONSIDERAES FINAIS ................................................................................................................ 65

4.1.

CONCLUSO....................................................................................................................................... 65

4.2.

TRABALHOS FUTUROS ........................................................................................................................ 65

5.

REFERNCIAS BIBLIOGRFICAS ................................................................................................... 67

vii

LISTA DE ABREVIATURAS
ACL

Asynchronous Connection-Less Link

ANATEL

Agncia Nacional de Telecomunicaes

API

Application Programming Interface

CDC

Connected Device Configuration

CEFET-RN

Centro Federal de Educao Tecnolgica do Rio Grande do Norte

CLDC

Connected, Limited Device Configuration

CMW

Classificados Mobile Wireless

DTD

Document Type Definition

DUN

Dial-Up Networking

FP

Foundation Profile

FTP

File Transfer Profile

GAP

Generic Access Profile

GIAC

General Inquiry Access Code

GOEP

Generic Object Exchange Profile

HCI

Host Controller Interface

HID

Human Interface Device

HSP

Headset Profile

IAC

Inquiry Access Code

IDE

Integrated Development Environment

IEEE

Institute of Electrical and Electronics Engineers

JAD

Java Application Descriptor

JEE

Java Enterprise Edition

JME

Java Micro Edition

JSE

Java Standard Edition

JSR

Java Specification Request

JVM

Java Virtual Machine

KVM

Kilobyte Virtual Machine

L2CAP

Logical Link Control and Adaptation Protocol

LIAC

Limited Inquiry Access Code

MIDP

Mobile Information Device Profile

OBEX

Object Exchange
viii

OPP

Object Push Profile

PBP

Personal Basis Profile

PDA

Personal Digital Assistant

PP

Personal Profile

RFCOMM

RS-232 Serial Cable Emulation Profile

RP

RMI Profile

SBP

Sistema de Busca de Perfil

SDA

Service Discovery Application

SDDB

Service Discovery DataBase

SDP

Service Discovery Protocol

SIG

Special Interest Group

SPP

Serial Port Profile

SYNC

Synchronization Profile

TCC

Trabalho de Concluso de Curso

UUID

Universally Unique Identifier

WTK

Wireless Toolkit

XML

Extensible Markup Language

ix

LISTA DE FIGURAS
FIGURA 1. CINCO ESTADOS BRASILEIROS DE MAIORES E OS CINCO DE MENORES TELEDENSIDADES EM 2006.
FONTE: ANATEL (2006). ....................................................................................................................... 16
FIGURA 2. EXEMPLO DE DISPOSITIVOS MVEIS. FONTE: CALLEGRIO (2007). ................................................. 20
FIGURA 3. DEMONSTRAO DOS TIPOS DE CONEXES SUPORTADAS PELO BLUETOOTH FONTE: IEEE STANDARDS
(2002). ................................................................................................................................................ 22
FIGURA 4. ARQUITETURA BLUETOOTH. FONTE: APPLE (2008)......................................................................... 23
FIGURA 5. REPRESENTAO DO SDDB E AS ENTRADAS DE REGISTROS DE SERVIOS FONTE: HOPKINS E ANTONY
(2003). ................................................................................................................................................ 24
FIGURA 6. REPRESENTAO DOS ATRIBUTOS DE UM REGISTRO DE SERVIO. FONTE: HOPKINS E ANTONY (2003).
........................................................................................................................................................... 25
FIGURA 7. PERFIS BLUETOOTH MAIS UTILIZADOS. FONTE: APPLE (2008). ........................................................ 25
FIGURA 8. COMUNICAO CLIENTE-SERVIDOR ............................................................................................... 28
FIGURA 9. MODELO PUBLICADOR-SUBSCRITOR .............................................................................................. 28
FIGURA 10. PLATAFORMAS JAVA. FONTE: PALUDO (2003) .............................................................................. 30
FIGURA 11. ARQUITETURA J2ME. ................................................................................................................. 31
FIGURA 12. MODELO DO SBP ....................................................................................................................... 36
FIGURA 13. FORMATO DO SCHEMA DO PERFIL ............................................................................................... 37
FIGURA 14. EXEMPLO DE XML FORMATADO DE ACORDO COM O SCHEMA DO PERFIL........................................ 38
FIGURA 15. DIAGRAMA DE ESTADO REPRESENTANDO O SERVIDOR E O PUBLICADOR ....................................... 40
FIGURA 16. DIAGRAMA DE ESTADO QUANDO O CELULAR SE COMPORTA COMO CLIENTE E SUBSCRITOR ............ 41
FIGURA 17. LOGO DO CLASSIFICADOS MOBILE W IRELESS. ............................................................................. 42
FIGURA 18. CASOS DE USOS DO CMW .......................................................................................................... 44
FIGURA 19. TELAS REFERENTES AO CASO DE USO CADASTRAR DADOS PESSOAIS ........................................... 45
FIGURA 20. TELAS DO CASO DE USO CADASTRAR CONTATOS. ........................................................................ 46
FIGURA 21. TELAS DO CADASTRO VENDA ...................................................................................................... 47
FIGURA 22. XML QUE CONTM TODOS OS INTERESSES................................................................................... 47
FIGURA 23. TELA DO CASO DE USO INICIAR VENDA ......................................................................................... 48
FIGURA 24. DIAGRAMA DE SEQNCIA DO CASO DE USO INICIAR VENDA .......................................................... 49
FIGURA 25. CDIGO RESPONSVEL POR INICIAR O SERVIDOR. ........................................................................ 50
FIGURA 26. TELAS REFERENTES AO CADASTRO COMPRA. .............................................................................. 51
FIGURA 27. TELAS DO CASO DE USO INICIAR BUSCA POR PRODUTOS .............................................................. 52
FIGURA 28. DIAGRAMA DE SEQNCIA DO CASO DE USO INICIAR BUSCA POR PRODUTOS ................................. 53
FIGURA 29. CDIGO RESPONSVEL PELO CASO DE USO INICIAR BUSCA POR PRODUTOS ................................. 55
FIGURA 30. DIAGRAMA DE CLASSES REPRESENTANDO OS RELACIONAMENTOS DAS CLASSES DO CMW ............ 56
FIGURA 31. DIAGRAMA DE CLASSE DA CLASSE LEITURAXML. ......................................................................... 57
FIGURA 32. DIAGRAMA DE CLASSE DA CRIACAOXML. .................................................................................... 58

FIGURA 33. DIAGRAMA DE CLASSE EXIBINDO OS MTODOS E RELACIONAMENTOS DA CLASSE COMUNICACAO COM
AS INTERFACES IMPLEMENTADAS.

......................................................................................................... 59

FIGURA 34. DIAGRAMA DE CLASSE DA CLASSE SEPARADORA. ......................................................................... 60


FIGURA 35. DIAGRAMA DE CLASSE DA CLASSE ARMAZENAMENTODADOS. ....................................................... 60
FIGURA 36. DIAGRAMA DE CLASSE DA CONVERSORA. .................................................................................... 61
FIGURA 37. FERRAMENTAS UTILIZADAS NO DESENVOLVIMENTO (NETBEANS E WTK). ....................................... 61
FIGURA 38. CELULARES UTILIZADOS PARA REALIZAR OS TESTES DA APLICAO CMW. .................................... 63

xi

LISTA DE TABELAS
TABELA 1. PACOTES DA JSR-82.................................................................................................................... 34
TABELA 2. LISTA DE REQUISITOS FUNCIONAIS DO CMW. ................................................................................. 43

xii

RESUMO
GOMES, Bruno. Sistema de Busca de Perfil em Celulares utilizando J2ME,
Bluetooth e XML SCHEMA. Natal, 2008. f. Trabalho de Concluso de Curso
(Tecnologia em Desenvolvimento de Software) Gerncia Educacional de Tecnologia
da Informao, Centro Federal de Educao Tecnolgica do Rio Grande do Norte,
Natal-RN, 2008.
Os atuais mtodos de transmisses publicitrias esto a cada dia se mostrando
problemticos com a atual realidade das sociedades. A partir disto, este trabalho
sugere a criao de um sistema, para celulares, de envio de mensagens publicitrias
atravs do Bluetooth. Atravs de uma busca e comparao de perfis, as mensagens
sero filtradas de acordo com o interesse de cada usurio. Para validar a idia, foi
desenvolvido um sistema de classificados, nomeado como Classificados Mobile
Wireless, com o objetivo de mostrar todos os resultados obtidos com a utilizao do
mecanismo sugerido. Este trabalho tambm visa realizar um estudo sobre as
tecnologias envolvidas no desenvolvimento, que so J2ME (Java2 Micro Edition), XML
(Extensible Markup Language) e Bluetooth, demonstrando as vantagens que cada uma
delas oferece.

Palavras-chave: J2ME, Bluetooth, XML, Publicidade, Celular.

xiii

ABSTRACT
Nowadays, methods of advertising broadcasts are becoming problematic with the
current societies reality. Thus, this work suggests the creation of a mobiles system for
sending advertising messages by Bluetooth. The messages will be filtered based on
interests of each user through a comparison and search of profiles. To validate that
idea, a classified ad system, called as Classificados Mobile Wireless, wich show all the
results obtained with the use of the mechanism suggested. This work also aims to
conduct a study on all technologies involved in the development, such as J2ME (Java2
Micro Edition), XML (Extensible Markup Language) and Bluetooth, demonstrating the
benefits that each one offers.

Keywords: J2ME, Bluetooth, XML, Advertising, Mobiles.

xiv

1. INTRODUO
O impacto que a publicidade vem causando na sociedade moderna cada vez
mais perceptvel - resultado das constantes transformaes impostas pela competio
global. Diversos so os fatores que so influenciados diretamente com este impacto,
como a mudana de comportamentos e atitudes que atingem os mais variados pblicos
(Pereira et al, 2008).
Em uma pesquisa realizada entre 47 pases pela consultoria Nielsen, ficou
comprovado que os brasileiros encabeam um ranking das nacionalidades que mais
acreditam em publicidade (Nielsen, 2008). Isso explica o grande crescimento de
interesses e investimentos na rea, que a cada dia atinge um nmero maior de
pessoas e empresas.
A publicidade utiliza-se de diversas maneiras para atingir o seu pblico,
consistindo num campo extremamente amplo e variado. O seu principal veculo so os
meios de comunicao, utilizados para a difuso de informaes e anncios
publicitrios. Mas nem todos os meios publicitrios oferecem vantagens. Alguns deles,
com o passar do tempo ou mesmo com a sua utilizao incorreta, podem acabar
resultando em desvantagens ou prejuzos para a sociedade. o caso dos outdoors
que, em excesso, proporcionam poluio visual nas cidades. Leis e movimentos contra
este tipo de publicidade vm ganhando fora, como est ocorrendo na cidade de So
Paulo. Nela, foi criada uma lei chamada Cidade Limpa, que entrou em vigor em maro
de 2007 e tem por objetivo coibir publicidade externa e outdoors pela cidade (Lei N
379/06) (Cmara, 2008).
Devido globalizao e prpria necessidade das empresas estarem presentes
no mercado - cada vez mais competitivo - novos meios de divulgao surgem e se
tornam bastante importantes no ramo. Atualmente, um dos principais meios utilizados
a Internet, que se destaca pela sua fcil acessibilidade pelos usurios. A Microsoft
um exemplo de empresa que atualmente est apostando pesado neste ramo de
publicidade. Este mercado cresce a um ritmo elevado, cuja receita correspondeu a US$
28,8 bilhes no ano de 2006 (G1, 2007).
Com o aparecimento das redes sem fios, um novo mercado de dispositivos
surgiu e est se destacando, por proporcionar mobilidade e, conseqentemente,
ganhos de produtividade na execuo das tarefas. O celular vem ganhando grande
15

destaque neste novo mercado, por se tratar de um aparelho eletrnico bastante


presente no dia-a-dia das pessoas. A Figura 1 representa os ndices de teledensidade
(nmero de usurios de celulares por grupo de 100 habitantes) no Brasil, no final de
2006 (Anatel, 2006).

Figura 1. Cinco estados brasileiros de maiores e os cinco de menores teledensidades em 2006. Fonte:
Anatel (2006).

O Distrito Federal o estado que apresenta o maior ndice correspondente a


111,8, ou 1,11 telefone celular em servio para cada habitante. A mdia geral de
teledensidade no Brasil de 53,2, o que significa que para cada dois habitantes, pelo
menos um tem celular. Tal contexto refora as tendncias de aumento das aquisies
de celulares.
O celular se enquadra no grupo dos dispositivos mveis, que oferecem diversas
vantagens em relao aos demais dispositivos eletrnicos, como: conectividade,
mobilidade e portabilidade.
Existe uma grande demanda de desenvolvimento de aplicaes no mercado
para estes dispositivos, isso devido necessidade dos usurios em poder execut-las
nos prprios aparelhos (Callegario, 2007), e lev-las para qualquer lugar. Uma das
16

possibilidades de desenvolvimento desses tipos de aplicaes utilizando a plataforma


Java Micro Edition (J2ME).
A plataforma J2ME uma verso compacta da linguagem Java padronizada
pela Sun, destinada ao desenvolvimento de aplicaes para dispositivos mveis. Ela
uma das plataformas mais encontradas em celulares, pois oferece uma mquina virtual
compacta que suporta as restries de memria destes dispositivos (Paludo, 2003).
Equipamentos que suportam Java esto cada vez mais presentes no cotidiano
das pessoas, sejam produtos de uso pessoal ou de consumo, e que apresentam
freqentemente alguma forma de comunicao e um elevado grau de sofisticao em
relao s tarefas que executam. (Depin, 2002).
Os modelos mais modernos de celulares possuem a tecnologia Bluetooth, que
permite uma comunicao de curto alcance e sem fio entre aparelhos. Esta tecnologia
surgiu devido carncia de um sistema de comunicao que fosse barato, eficaz e que
pudesse ser usado no s por computadores, mas por dispositivos eletrnicos em geral
(Billo, 2003).
Aos poucos, o Bluetooth est ganhando destaque no mercado por apresentar
diversas vantagens em relao s demais formas de comunicao sem fio, entre elas:
o custo; poder ser acoplada a aparelhos de fcil acesso; e baixo consumo de energia.
Diante deste crescimento, as empresas de mdia e publicidade esto adotando
os sistemas mveis como forma de envio de anncios para os celulares das pessoas.
Atualmente, o sistema de publicidade via celular funciona da seguinte maneira: quando
o usurio est localizado a menos de 10 metros de um local que possua um sistema
Bluetooth ativo, ele convidado a ativar esta opo no seu celular para receber alguns
tipos de arquivos, tais como: vdeos; ofertas; ou cupons de descontos. (INFO Online,
2007). Contudo, os mtodos utilizados atualmente de transmisso de anncios no se
mostram eficientes, uma vez que no existem restries no envio e recebimento das
informaes. Um usurio pode, desta maneira, receber anncios e arquivos
indesejados no celular.
Como proposta de soluo deste problema, o presente trabalho sugere a criao
de um sistema de envio de mensagens publicitrias para celular, que disponibiliza o
cadastro de um perfil, igual ao que as comunidades ou redes sociais utilizam para
identificar os usurios cadastrados. Este perfil ter informaes pessoais e de interesse
do usurio.
17

Atravs da criao de um mecanismo de busca, o sistema ficar atuando at


que alguma pessoa, que esteja com o sistema instalado e ativado no celular, entre na
rea de cobertura do Bluetooth. Uma mensagem enviada para este usurio e, atravs
de uma anlise sobre o perfil, o sistema saber quais tipos de informaes so de
interesse do usurio, permitindo exibio ou no da mensagem recebida.

1.1. Objetivos
1.1.1. Objetivo Geral
O objetivo geral deste projeto especificar e desenvolver um sistema para
celulares que possibilite o envio de mensagens, a busca e comparao de perfis
atravs da tecnologia Bluetooth.
1.1.2. Objetivos Especficos
Os objetivos especficos do presente trabalho de pesquisa consiste em:

Estudar as tecnologias necessrias para a implementao do


sistema;

Elicitar os requisitos do sistema que ser desenvolvido;

Modelar o sistema;

Realizar implementao da aplicao;

Testar e validar o sistema desenvolvido;

Documentar o desenvolvimento e os resultados obtidos.

1.2. Metodologia
A metodologia adotada por esse trabalho consiste das fases terica e
experimental. A primeira baseia-se em pesquisar e adquirir o conhecimento necessrio
para a realizao do objetivo deste trabalho. Nesta fase, formada toda a base de
conhecimento necessria para o desenvolvimento da ferramenta proposta. A fase
experimental consiste em descrever o Sistema de Busca de Perfil, modelar e
desenvolver o sistema Classificados Mobile Wireless.

1.3. Estrutura do trabalho


O restante do trabalho encontra-se divido da seguinte forma:
18

O captulo 2 descreve os principais temas relacionados ao trabalho desenvolvido.


Inicia com uma abordagem sobre dispositivos mveis. Em seguida, descreve a
tecnologia Bluetooth e sua estrutura, os mtodos de transmisso e de troca de dados
existentes, XML e, por fim, sobre a plataforma J2ME e sua arquitetura.
O captulo 3 define o Sistema de Busca de Perfil (SBP), o qual o objetivo de
estudo desse trabalho, descrevendo a arquitetura do sistema, o formato, o mecanismo
de leitura e comunicao, envio e comparao do perfil. Tambm descreve o sistema
desenvolvido, Classificados Mobile Wireless, e a sua documentao, focando nas
partes em que utiliza a idia do SBP.
O captulo 4 apresenta as concluses e os possveis trabalhos futuros relacionados
ao tema abordado nesta monografia.

19

2. FUNDAMENTAO TERICA
Neste captulo, so abordados todos os temas estudados do trabalho, iniciando
com uma seo sobre dispositivos mveis, Bluetooth e toda a sua estrutura. Em
seguida, sero abordados os mtodos de transmisso e de recepo de dados.
Tambm ser abordado sobre XML e, por fim, a plataforma J2ME.

2.1. Dispositivos Mveis


Dispositivos mveis so aparelhos versteis, que geralmente possuem meios de
acesso sem fio a conexes de redes, e com poder computacional limitado para
atenderem s necessidades e aplicaes (Lago, 2006). Alguns dos atuais dispositivos
mveis so Personal Digital Assistants (PDAs), celulares, tablets e notebooks
(Callegrio, 2007). Alguns destes dispositivos so mostrados na Figura 2.

Figura 2. Exemplo de Dispositivos Mveis. Fonte: Callegrio (2007).

Devido ao grande avano dos recursos que estes aparelhos podem oferecer,
so inmeras as possibilidades de uso, dentre as quais, podem ser citados:
programao de aplicativos e jogos; armazenamento e busca de informaes; envio e
recebimento de arquivos multimdia e acesso internet.
2.1.1. Telefonia Mvel Celular
Os telefones celulares evoluram bastante, deixando de ser apenas aparelhos de
comunicao por voz, para ser um mecanismo de entretenimento em geral, como
agenda eletrnica, acesso internet, entre outros. (Silva, 2006). Junto ao crescimento
destes aparelhos, est a telefonia mvel, que nos ltimos anos, de acordo com a
Agncia Nacional de Telecomunicaes (Anatel), a quantidade de celulares em
funcionamento no Brasil chegou a 102,875 milhes em abril de 2007 (G1, 2007).

20

2.2. Bluetooth
Bluetooth o nome dado ao protocolo de comunicao sem fio, baseado em
saltos em freqncia (frequency hope) de curto alcance, que visa substituir os cabos de
conexo existentes por uma conexo universal de maneira robusta, barata, e de baixo
consumo.
Foi desenvolvido em 1994 pelo Special Interest Group (SIG), grupo de interesse
formado por algumas empresas lderes mundiais nas telecomunicaes, computao e
indstrias de redes (Billo, 2003), que teve como objetivo desenvolver um padro sem
fio para interconectar dispositivos de computao, comunicao e ainda acessrios.
O Bluetooth pode ser dividido em trs classes (Ghisi, 2007):

Classe 1: Equipamentos com alcance de 100 metros;

Classe 2: Equipamentos com alcance de 10 metros;

Classe 3: Equipamentos com alcance de 1 metro.

2.2.1. Piconet e Scatternet


O Bluetooth permite dois mtodos de comunicao, o ponto-a-ponto, que envolve
duas unidades Bluetooth apenas, e ponto-multiponto, envolvendo mais de duas
unidades.
Quando duas ou mais unidades Bluetooth esto compartilhando o mesmo canal,
chamado de piconet. Nela, existe um dispositivo mestre (master) e um ou mais
escravos (slaves) podendo chegar at o nmero de sete dispositivos. O dispositivo que
inicia uma conexo Bluetooth se torna o mestre da rede, sendo papel dele controlar o
acesso das unidades slaves ao canal. Os escravos no podem se comunicar
diretamente entre eles, fazendo com que toda comunicao tenha que passar
primeiramente pelo mestre (Ghisi, 2007). Quando piconets se conectam entre si,
formam estruturas denominadas scatternets.
A Figura 3 representa os tipos de conexo ponto-a-ponto (a), ponto-multiponto
formando uma piconet (b) e vrios piconets conectadas entre si formando uma
scatternet (c).

21

Figura 3. Demonstrao dos tipos de conexes suportadas pelo Bluetooth Fonte: IEEE Standards
(2002).

2.2.2. Arquitetura Bluetooth


A especificao Bluetooth permite que dispositivos de fabricantes distintos
interconectem-se de forma compatvel (IEEE Standards, 2002). Por isso, no apenas
suficiente a existncia do sistema de rdio em hardware, e sim, uma complexa pilha de
protocolos em software que a arquitetura define.
A pilha de protocolos Bluetooth dividida em duas camadas: A inferior e a
superior (ver Figura 4).
Camada inferior:
o camada de rdio;
o banda de base;
o controlador e gerenciador de enlace.
Camada superior:
o

L2CAP (Logical Link Control and Adaptation Protocol);

o RFCOMM (Radio Frequency Communications);


o OBEX (Object Exchange);
o Perfis.

22

Figura 4. Arquitetura Bluetooth. Fonte: Apple (2008).

Na camada inferior est a camada de Rdio, responsvel por modular e


demodular os dados em freqncias de sinais de rdio para a transmisso e recepo.
Acima est a camada de banda de base (Baseband) juntamente com o controlador de
enlace (Link Controller), que so responsveis pela formatao dos dados trocados
com a camada de rdio e a manipulao da sincronizao da comunicao. O
gerenciador de enlace (Link Manager) controla e configura as comunicaes e gerencia
as requisies entre os dispositivos.
A camada Host Controller Interface (HCI) prov uma interface entre as camadas
inferiores e superiores da pilha de protocolos Bluetooth.
Na camada superior HCI encontra-se a Logical Link Control and Adaptation
Protocol (L2CAP) que estabelece conexes entre os enlaces ACL existentes, que so
as conexes responsveis por transmitir dados do tipo ponto-multiponto. O L2CAP
tambm fica responsvel pela multiplexao entre os diferentes protocolos das
camadas acima e por preparar os dados vindos das camadas acima para as de baixo
(Ghisi, 2007).
Acima da L2CAP encontra-se a camada Service Discovery Protocol (SDP),
usada para encontrar servios em dispositivos Bluetooth remotos.
23

Tambm

acima

da

L2CAP,

encontra

protocolo

Radio

Frequency

Communications (RFCOMM), que emula uma configurao de cabo serial em uma


porta RS-232. Ele se conecta s camadas inferiores atravs da L2CAP.
O protocolo Object Exchange (OBEX) utilizado para transferir objetos como
arquivos entre dispositivos Bluetooth.
2.2.3. Pesquisa por Dispositivos e Servios
Quando um dispositivo est no processo de pesquisa por outros dispositivos,
este receber endereos Bluetooth juntamente com as freqncias dos dispositivos
encontrados. Sendo assim, ele saber identificar todos os dispositivos encontrados
pelos seus endereos (Ghisi, 2007).
Dispositivos tornam-se visveis para que sejam localizados quando entram no
modo inquiry scan. Os dispositivos descobertos fazem uso do Inquiry Access Code
(IAC), que pode ser de dois tipos, o General Inquiry Access Code (GIAC), quando a
pesquisa realizada por um perodo indefinido de tempo, e o Limited Inquiry Access
Code (LIAC), quando realizada num perodo de tempo limitado (Ghisi, 2007).
Assim que um dispositivo Bluetooth localiza outro remoto, poder fazer uma
pesquisa nos servios cadastrados no remoto ou por algum especfico atravs do
protocolo Service Discovery Protocol (SDP).
As informaes sobre os servios cadastrados em um dispositivo localizam-se
no Service Discovery Database (SDDB), que consiste em um repositrio central que
contm as entradas de registros de servios (Figura 5) (Hopkins, 2003).

Figura 5. Representao do SDDB e as entradas de registros de servios Fonte: Hopkins e Antony


(2003).

24

Cada um desses registros contm atributos que descrevem o servio, conforme


a Figura 6, que representa os atributos do primeiro servio registrado. Diferentes
atributos contm valores de vrios tipos e tamanhos (Klingsheim, 2004).

Figura 6. Representao dos atributos de um registro de servio. Fonte: Hopkins e Antony (2003).

O tipo de dado usado para identificar os servios, protocolos, perfis etc.


Universally Unique Identifier (UUID) que consiste num identificador de 128 bits que
garante ser nico em um tempo e espao determinados.
2.2.4. Perfis Bluetooth
Os perfis Bluetooth foram criados para permitir a interoperabilidade entre
diferentes dispositivos Bluetooth. Eles definem um conjunto de funcionalidades para o
correto funcionamento dos dispositivos. (Hopkins, 2008).
Para que dois ou mais dispositivos possam se comunicar entre si, eles tm que
ter suporte ao mesmo perfil. Os perfis mais comuns so representados pela Figura 7.

Figura 7. Perfis Bluetooth mais utilizados. Fonte: Apple (2008).


25

Os perfis representados pela Figura 7 so (Ghisi, 2007) (Hopkins, 2008):

O perfil Service Discovery Application (SDA) permite que uma aplicao


use SDP para pesquisar servios ou dispositivos remotos.

O perfil Human Interface Device (HID) permite a comunicao com uma


classe de dispositivo HID usando conexes Bluetooth.

O Serial Port Profile (SPP) prov a emulao de uma porta serial (RS232) baseado no protocolo RFCOMM.

O perfil Dial-Up Networking (DUN) roda sobre o SPP e descreve como um


dispositivo de terminal de dados, como um laptop, pode usar um outro
dispositivo para servir de gateway, como um celular ou modem, para
acessar uma rede baseada em um telefone.

O Headset Profile (HSP) Define a funcionalidade requerida para a


transferncia de udio entre computadores ou outro dispositivo Bluetooth,
para um fone de ouvido.

O Generic Object Exchange Profile (GOEP) prov um blueprint genrico


para outros perfis usando o protocolo OBEX e define regras para
dispositivos clientes e servidores.

O Object Push Profile (OPP) define regras para clientes e servidores de


leitura. Essas regras so anlogas e devem ser interoperveis entre
dispositivos servidores e clientes distintos, baseados nas regras definidas
pelo GOEP.

O File Transfer Profile (FTP) prov uma guia de regras para aplicaes
que necessitam trocar objetos, tais como pastas e arquivos, o que oferece
uma gama muito maior de objetos que apenas os suportados pelo OPP.

O Synchronization Profile (SYNC) descreve como as aplicaes devem


realizar a sincronizao dos dados entre dispositivos, tais como entre um
PDA e um computador. Ele tambm define regras para clientes e
servidores.

E, por fim, o Generic Access Profile (GAP) responsvel por definir as


funcionalidades bsicas para o estabelecimento de conexo entre os
dispositivos Bluetooth. Alm disso, o GAP tambm define quais
funcionalidades

devem

ser

implementadas

nos

dispositivos,

26

procedimentos genricos para descobrir e conectar dispositivos e a


terminologia bsica para interface com o usurio.

2.3. Mtodos de Transmisso de Dados


Os mtodos de transmisso de dados servem para oferecer suporte ao fluxo de
dados entre dois ou mais pontos de uma rede. Os principais mtodos so o unicast,
multicast e broadcast (Tanenbaum, 2004).
Unicast define uma transmisso ponto a ponto, em que um n da
rede, definido como transmissor, envia os dados para um nico n
destinatrio (Tanenbaum, 2004).
Multicast permite a transmisso de dados de um ponto para um
subconjunto de outros receptores da rede.
Broadcast o mtodo pelo qual possvel um transmissor enviar
dados para todos os receptores que estiverem na mesma rede
(Tanenbaum, 2004).
O mtodo Broadcast geralmente utilizado em redes cujos dispositivos
participam de comunicaes annimas, ou quando os ns precisam enviar uma
informao em larga escala para todos os outros da mesa rede (Mogul, 1984).

2.4. Mtodos de Troca de Dados


Os mtodos de troca de dados so: produtor-consumidor, cliente-servidor e
publicador-subscritor.
O mtodo produtor-consumidor utiliza um conjunto de buffers entre as estaes
da rede. O produtor armazena os dados no buffer de transmisso, a rede copia o
contedo do buffer do produtor para o de recepo e, por fim, o consumidor retira os
dados do buffer de recepo (Lima, 2007).
O modelo cliente-servidor responsvel pela interao entre dois ns
denominados de cliente e servidor. O servidor prov servios que so do interesse dos
ns clientes (Valentim, 2006). Ele funciona atravs do modelo de requisies e
respostas que ocorrem geralmente atravs de comunicaes unicast, conforme ilustra
a Figura 8. As requisies no modelo cliente-servidor so disparadas atravs de um
evento que conduz o sistema a um estado de espera por uma resposta.

27

Primeiro o cliente realiza uma requisio ao servidor, iniciando assim a


comunicao. Aps isso, o servidor envia uma resposta confirmando o recebimento da
solicitao e a conexo com o mesmo. No fim, o cliente envia uma mensagem
confirmando o recebimento da resposta do servidor (Lima, 2007).

Figura 8. Comunicao Cliente-Servidor

No modelo publicador-subscritor, acontece uma troca de dados entre um n


denominado publicador, que ir publicar os dados, e um ou mais ns subscritores, que
iro consumir os dados. A Figura 9 demonstra essa troca de dados. O modelo
publicador-subscritor muito interessante quando o sistema exige um mecanismo de
comunicao annima, no qual os dispositivos participantes da rede no precisam se
conhecer.

Figura 9. Modelo Publicador-Subscritor

Este modelo pode ser dividido em:

Pull: O publicador recebe um pedido de um gerente de publicao remoto


para publicar, logo aps envia sua resposta via broadcast ou multicast
pela rede (Valentim, 2006);

Push: Dois modelos podem ser citados neste caso: o confirmado, em que
o subscritor solicita uma resposta obrigatria ao publicador (semelhante
ao cliente-servidor), e o no confirmado, usado pelo publicador para
distribuir a informao aos subscritores.

28

2.5. XML
XML a abreviao de Extensible Markup Language e representa uma linguagem
de marcao que estruturalmente escrita, padronizada e plenamente extensvel. Ela
derivada da Standard Generalized Markup Language (SGML) e desenvolvida pelo
World Wide Web Consortium (W3C) (Deitel et al, 2003).
A XML surgiu devido dificuldade de comunicao entre computadores no incio
da internet, por causa da existncia de diferentes formatos de arquivos utilizados. A
soluo era a padronizao do formato destes documentos, abrindo portas para as
linguagens de marcaes. Elas representaram um grande avano no desenvolvimento
de aplicaes e transao de informaes.
O crescimento na utilizao do XML se deve s vantagens que a prpria
linguagem oferece, entre elas, a possibilidade de separao do contedo e a
independncia dos dados. A sua simplicidade de criao e manipulao faz com que
seja uma linguagem preferencial no uso de aplicaes para internet e dispositivos de
processamento limitado, j que oferece ganhos de funcionalidade e interoperabilidade,
e ao mesmo tempo reduo de trfego e processamento (Deitel et al, 2003).
O desenvolvedor tambm pode criar suas prprias tags para a manipulao de
informaes, formando uma espcie de glossrio. Isto possvel utilizando Document
Type Definition (DTD), que consiste na definio estrutural para um documento XML,
especificando diversos tipos de informaes, como ordem, nmero ou mesmo os
atributos dos elementos contidos no documento.
Com o avano das tecnologias, surgiu o XML Schema Definition, com a mesma
finalidade dos DTDs, mas com a vantagem de ser escrito na prpria sintaxe XML. Foi
inicialmente publicada em 1999 como working draft no site da W3C (Walsh, 1999) e
recomendada em novembro de 2000. Como o XML Schema utiliza a mesma sintaxe do
XML, acaba facilitando a sua escrita, pois no necessita do aprendizado de uma nova
linguagem. Para um documento ser considerado vlido, todos os elementos que
estiverem no XML tm de estar especificado no Schema. (Franzotte, 2006).

2.6. J2ME
A tecnologia Java foi desenvolvida na dcada de 90 e consiste numa linguagem
de programao, que diferente das outras existentes, compilada para um cdigo
intermedirio, chamado de bytecode, o qual executado por uma Mquina Virtual, a
29

Java Virtual Machine (JVM). Devido o cdigo ser interpretado em tempo de execuo,
faz com que Java seja independente de plataforma, tornando-a portvel (Ghisi, 2007).
Java dividida em trs plataformas: Java Standard Edition (JSE); Java Enterprise
Edition (JEE); e Java Micro Edition (JME), conforme a figura Figura 10.

Figura 10. Plataformas Java. Fonte: Paludo (2003)

J2ME se resume a um conjunto de especificaes, que define uma JVM


simplificada, um conjunto de Application Programming Interface (APIs) especializadas
no desenvolvimento de aplicaes para dispositivos que possuem as seguintes
caractersticas: mobilidade, baixa capacidade de processamento, pouca memria
disponvel, baixo consumo de energia e limitados mtodos de entrada e sada.
(Romeiro, 2005).
A portabilidade da plataforma proporciona a execuo das aplicaes em
qualquer dispositivo de qualquer fabricante, independente de tecnologia de operadora
ou fabricante, desde que exista uma JVM instalada.
2.6.1. Arquitetura J2ME
A plataforma J2ME dividida em configuraes, perfis e pacotes de APIs
opcionais (Microsystems, 2007). Essa diviso foi realizada devido grande quantidade
de dispositivos mveis existentes no mercado, permitindo assim a implementao de
sistemas compatveis com a maioria dos dispositivos. A Figura 11 demonstra como
dividida a arquitetura da plataforma J2ME.

30

Figura 11. Arquitetura J2ME.

Acima da mquina virtual existem os nveis de configurao e perfil que


permitem cada aparelho ser descrito de acordo com suas caractersticas. (Lago, 2006).
2.6.2. Configuraes
Uma configurao fornece um conjunto mnimo de funcionalidades, ou seja,
bibliotecas de classes, APIs e mquina virtual para uma faixa de dispositivos que tm
caractersticas semelhantes, como o poder de processamento, memria, conectividade,
entre outros. Logo, a configurao considerada a base de desenvolvimento das
aplicaes J2ME.
Existem duas configuraes de acordo com (Microsystems, 2007), a
Configurao para Dispositivos Conectados (CDC - Connected Device Configuration) e
Configurao para Dispositivos com Limites de Conexo (CLDC - Connected Limited
Device Configuration).
2.6.2.1. CDC - Connected Device Configuration
A configurao CDC foi feita para equipamentos que exigem mais recursos em
termos de memria e poder de processamento. Exemplos de dispositivos nesta
categoria so: PDAs e set-top boxes. A seguir, algumas das caractersticas dos
dispositivos que possuem essa configurao (Microsystems, 2006):
512 kilobytes, no mnimo, de memria para execuo da aplicao em Java;
256 kilobytes pelo menos, para alocao de memria durante a execuo de
uma aplicao.
Conectividade de rede e largura de banda possivelmente persistente.
31

2.6.2.2. CLDC Connected Limited Device Configuration


A configurao CLDC foi projetada para dispositivos com processamento,
memria e capacidade grfica limitada. As caractersticas dos aparelhos que possuem
a configurao CLDC so (Sun Microsystems, 2007):
No mnimo 128 kilobytes de memria para execuo do Java;
No mnimo 32 kilobytes para alocao de memria durante a execuo de uma
aplicao;
Conectividade a algum tipo de rede (em geral sem-fio) com acessos
intermitentes;
Normalmente, com interface e tela de visualizao restrita para o usurio.
A configurao CLDC possui duas verses, a 1.0 e a atual 1.1, que possibilita a
utilizao de dados do tipo ponto flutuante (Callegario, 2007). Os aparelhos que fazem
parte desta configurao so os celulares.
2.6.3. Perfis
Os perfis funcionam como complementos das configuraes, fornecendo as
bibliotecas necessrias para poder desenvolver aplicativos para um determinado tipo
de dispositivo, tornando-se assim, a camada mais visvel para usurios e
desenvolvedores.
Uma aplicao pode suportar mltiplos perfis. Os mais conhecidos so:
Foundation Profile (FP) - o nvel mais baixo de perfil do CDC. Ele fornece uma
implementao de rede que pode ser usada para construir aplicaes sem
interface com o usurio ou pode tambm ser combinado com o Personal Basis
Profile (PBP) e o Personal Profile (PP) para dispositivos que necessitem de uma
interface com o usurio;
Personal Profile (PP) - o perfil CDC utilizado em dispositivos que necessitam
de um suporte completo para interface ou applet, como PDAs e consoles para
jogos;
Personal Basis Profile (PBP) uma diviso do PP, fornece um ambiente para
dispositivos conectados que suportem um nvel de apresentao grfica mais
leve;
RMI Profile (RP) - Esse perfil adiciona as bibliotecas de invocao remota de
mtodos (Remote Method Invocation - RMI) da JSE;
32

PDA Profile Utilizados em PDAs, exigem mais recursos de processamento e


so mais completos que o MIDP. Este perfil adiciona ao CLDC melhores
recursos de interface com usurio e APIs Java para acessar recursos do sistema
operacional;
Game Profile - O Game Profile, que est ainda no processo de desenvolvimento,
fornecer uma plataforma para o desenvolvimento de jogos em dispositivos do
CDC.
Mobile Information Device Profile (MIDP): o MIDP foi feito para celulares. Ele
oferece a base para a funcionalidade requerida pelas aplicaes mveis,
incluindo interfaces do usurio, conexes com rede, persistncia de dados e
controle de aplicaes. Combinado com o CLDC, o MIDP fornece um ambiente
de execuo Java que minimiza o consumo de memria e energia;
2.6.3.1. MIDP - Mobile Information Device Profile
O perfil MIDP1 consiste no perfil mais popular e usado nos dias atuais e
representa um conjunto de bibliotecas que prov funcionalidades como interfaces com
o usurio, banco de dados, gerenciamento do ciclo de vida de uma aplicao entre
outros.
A combinao da configurao CLDC com o perfil MIDP prov um ambiente
completo para a criao de aplicaes para celulares.
O perfil MIDP foi especificado para dispositivos do tipo MID (Mobile Information
Device) que, alm das configuraes mnimas do CLDC, apresentam (Knudsen, 2003):
8KB de memria no-voltil para persistncia de dados;
Uma tela de no mnimo 96x54 pixels;
Conexo Duplex, possivelmente intermitente.
2.6.4. Pacotes Opcionais
Um pacote opcional um conjunto de APIs que pode ser usado juntamente com
uma configurao ou um perfil, estendendo assim as funcionalidades que os mesmos
oferecem. Eles disponibilizam interfaces para tecnologias existentes como Bluetooth,
web services, multimdia, grficos 3D entre outros (Ghisi, 2007).
1

Aplicativos feitos sobre o perfil MIDP so chamados MIDlets.

33

O Pacote opcional referente ao desenvolvimento de aplicaes que faam uso


do Bluetooth o JSR-82, que dividida em dois pacotes, como mostra a Tabela 1
(Kumar et al, 2003):
Tabela 1. Pacotes da JSR-82

Pacote
javax.bluetooth
javax.obex

Prov
O core da API Bluetooth (SDP, L2CAP, RFCOMM entre
outros)
A API para OBEX (The Object Exchange)

O pacote javax.bluetooth disponibiliza uma API para busca de dispositivos,


pesquisa por servios, disponibilizao de servios e comunicao utilizando os
protocolos L2CAP e RFCOMM.
J o pacote javax.obex prov uma API para o desenvolvimento do protocolo de
transferncia OBEX.

34

3. SISTEMA DE BUSCA DE PERFIL


O Sistema de Busca de Perfil (SBP) define uma forma alternativa aos atuais
mtodos de divulgaes publicitrias e que agrega diversas vantagens. Entre as
vantagens proporcionadas esto: maior permeabilidade na populao, pois a sua
execuo ser em aparelhos bastante acessveis; mecanismo inteligente de
divulgao, pois o sistema de busca sabe em tempo de execuo quais notcias so do
interesse do usurio, portanto, exibindo apenas anncios de interesse particular.
O SBP desenvolve um mtodo eficiente de envio de mensagens publicitrias
para celulares atravs de um sistema de busca que verifica os interesses do usurio
portador do celular. Estas informaes fazem parte do perfil que consiste no conjunto
de todos os dados do usurio cadastrados pela aplicao. Aps a anlise destas
informaes, o sistema saber quais mensagens recebidas devem ser exibidas ao
usurio.
O sistema baseado na plataforma J2ME, que voltada para a criao de
aplicaes para dispositivos mveis, proporcionando assim a portabilidade da mesma.
Dentre as configuraes disponveis da plataforma, foi escolhida a verso 1.1 da
configurao CLDC, que est presente na maioria dos celulares que tem suporte ao
Bluetooth, e tambm proporciona alguns mtodos de manipulao de Thread e de
objetos do tipo String2. O sistema tambm baseado no pacote opcional JSR-82 da
plataforma J2ME, que oferece as implementaes necessrias para a manipulao da
comunicao Bluetooth.

3.1. Modelo do Sistema


O modelo define toda a organizao e funcionamento dos elementos
participantes do sistema. Nela, um celular, atravs do sistema de comunicao, envia
uma mensagem correspondente ao perfil, onde estaro armazenadas as informaes
referentes ao anncio publicitrio e o responsvel por elas, enquanto que outros
celulares que estiverem na rea de cobertura recebero esta mensagem e realizaro
todo o processamento necessrio sobre a mensagem recebida. O modelo
representado atravs da Figura 12.
2

Recursos no oferecidos na verso anterior.


35

Figura 12. Modelo do SBP

O sistema utiliza o Bluetooth como forma de comunicao, e atravs dele que


possvel o envio das mensagens publicitrias e a busca por perfil. O Perfil
constitudo de um arquivo XML, e estar localizado em todos os celulares, tanto no
celular que ir distribuir as mensagens publicitrias, como no que ir receb-las. Isto
necessrio, pois no perfil que estaro localizadas todas as informaes referentes ao
anncio publicitrio e ao responsvel por ela, assim como os dados da pessoa
interessada em receber estes anncios. sobre esses dados cadastrados que o
sistema ir saber se a mensagem publicitria recebida do interesse do portador ou
no. Os celulares que forem utilizar o sistema tm que ter suporte a API JSR-82,
responsvel por possibilitar a utilizao do Bluetooth pela aplicao desenvolvida, e
tambm a configurao CLDC da plataforma J2ME.
Atravs deste sistema, diversas so as possibilidades de criaes de sistemas
que faam uso do SBP, como por exemplo, um sistema em que empresas, lojas ou
mesmo pessoas, possam enviar propagandas de produtos para os celulares que
estejam utilizando o mesmo servio em um Shopping Center. Outra possibilidade seria
a de o SBP ser utilizado numa praa de alimentao, e possibilitar assim, aos
restaurantes enviarem os cardpios aos usurios de acordo com as suas preferncias.

3.2. Formato do Perfil


O perfil constitudo de todas as informaes do usurio que ir utilizar o sistema
e de todos os dados referentes ao que se deseja divulgar. Todas as informaes esto
36

organizadas por categorias, como por exemplo, dados pessoais, de contato ou mesmo
de interesse do usurio, dependendo da necessidade que o sistema ir atender.
O XML foi escolhido como a melhor forma de armazenar estas informaes
referentes ao perfil, pois consiste num arquivo em que possvel separ-las e
organiz-las mais facilmente de acordo com o objetivo do sistema. Para que haja uma
melhor formatao e padronizao destas informaes, foi criado um SCHEMA para
que facilitasse a criao e a manipulao do arquivo XML pelo sistema. O SCHEMA
desenvolvido para representar a formatao do perfil mostrado na Figura 13.

Figura 13. Formato do Schema do Perfil

De acordo com o Schema da Figura 13, todo perfil criado deve comear com a
tag <perfil>, que representa o n raiz do XML. Essa tag do tipo complexType com o
mixed ativado, o que significa que ele aceita elementos filhos e atributos na tag. Em
seguida, o perfil deve conter uma ou mais tags <categoria>, representando todas as
categorias que um perfil possa ter. Nesta tag, existe o atributo nome, que recebe um
valor do tipo texto, especificando o nome da categoria. Esta tag tambm do tipo
complexType e tem o mixed ativado.
Dentro da tag <categoria>, podemos ter uma ou mais tags <valor>, que so
todas as informaes que esto ligadas categoria que ela est contida, e tambm
um atributo nome, que recebe um valor do tipo texto, que define o que uma
37

determinada informao representa. Os valores que as tags <valor> iro receber


representam os dados inseridos pelo usurio durante o cadastro. Um exemplo de XML
formatado de acordo com o Schema proposto apresentado na Figura 14.

Figura 14. Exemplo de XML formatado de acordo com o Schema do Perfil.

3.3. Mecanismo de Leitura do Perfil


Como as informaes esto no formato XML, utilizado um analisador sinttico
para realizar a leitura e interpretao dos dados. Como o sistema foi desenvolvido
para celulares, dispositivos mveis com baixo poder de processamento, o analisador
baseado no mtodo Pull de leitura, processando pequenas pores do XML de cada
vez.
A leitura realizada por partes, recuperando o conjunto de informaes
relacionadas a uma categoria por vez. Os primeiros dados a serem extrados so os
relacionados aos interesses, pois o sistema necessita deles para realizar a comparao
e verificao se o perfil recebido de interesse do usurio. Se o perfil interessar ao
usurio utilizador, realizada uma leitura nos dados das categorias restantes, e
disponibilizadas para que a aplicao possa manipular e exib-las.

3.4. Mecanismo de Comunicao e envio do Perfil


A tecnologia adotada para a comunicao e envio de mensagens entre os
celulares o Bluetooth, por se tratar de uma tecnologia de maior custo-benefcio e
estar presente na maioria dos celulares atuais venda.
38

O desenvolvimento da comunicao Bluetooth dentro da plataforma J2ME


possvel atravs do pacote opcional JSR-82 da plataforma J2ME, que disponibiliza
todas as interfaces e mtodos capazes de criar esta comunicao entre os aparelhos.
A especificao JSR-82 define: para que a comunicao seja realizada, alguns
passos devem ser seguidos, como o da busca por dispositivos, estabelecimento da
conexo entre dispositivos, pesquisa dos servios cadastrados, utilizao do servio e
por fim, envio ou recebimento de mensagens entre eles (Mahmoud, 2007). Como o
formato padro da mensagem trocada numa comunicao Bluetooth do tipo texto, o
perfil, que consiste em um arquivo XML, deve ser convertido para que ele possa ser
enviado para outro celular.
O sistema utiliza dois mtodos de Troca de Dados, o cliente-servidor e logo
depois publicador-subscritor. Ao iniciar o servio, o sistema se comporta como clienteservidor, em que um servidor cria e configura uma rede Bluetooth. Os celulares que
estiverem fazendo papel de cliente, ao entrar na rea de cobertura do servidor, se
comunicam e so adicionados na rede criada.
Aps os celulares estarem na mesma rede, o mtodo utilizado a partir da o
publicador-subscritor, em que o celular que estava fazendo papel de servidor, ir agora
ser o publicador, publicando o perfil e enviando para os demais celulares na rede.
Estes outros celulares, que estavam fazendo papel de cliente, se tornam os
subscritores da comunicao, recebendo o perfil.
A Figura 15 exibe o diagrama de estados dos celulares ilustrando o processo de
transio de servidor para publicador.

39

Figura 15. Diagrama de Estado representando o Servidor e o Publicador

Enquanto o celular estiver fazendo papel de Servidor, ele fica responsvel pela
total configurao da rede e estabelecimento de conexo com outros dispositivos
clientes. Quando a conexo for estabelecida com sucesso, o servidor passa a se
comportar como publicador, publicando o perfil e enviando para todos os celulares da
mesma rede.
A transio de estado do celular Cliente para Subscritor representada pelo
diagrama de estados na Figura 16.

40

Figura 16. Diagrama de Estado quando o celular se comporta como Cliente e Subscritor

O cliente responsvel pela busca de dispositivos que estiverem fazendo papel


de servidor e os seus servios cadastrados, como tambm o estabelecimento de
conexo com eles. Aps isso, o cliente passa a ser subscritor, recebendo um perfil do
publicador conectado e analisando-o para saber se deve exibir ao usurio ou no.
O mtodo de troca de dados utilizado no SBP o Broadcast, no qual possvel
enviar uma informao para diversos receptores ao mesmo tempo. utilizado quando
a aplicao estiver fazendo papel de publicador, no qual, ela envia o perfil para todos
os dispositivos que estiverem cadastrados na mesma rede.

3.5. Mecanismo de Comparao de Perfil


O sistema de comparao de perfil utilizado quando o celular estiver fazendo o
papel de subscritor na comunicao. Ele responsvel por realizar uma leitura sobre o
perfil recebido de um publicador e fazer uma comparao dos dados extrados com os
dados cadastrados no perfil do celular subscritor. Dependendo da necessidade do tipo
de ferramenta que venha a ser desenvolvido utilizando o SBP, o desenvolvedor deve
definir quais dados do perfil devem ser analisados e comparados.
Se durante a comparao, algum dos dados do perfil recebido for do mesmo
interesse do usurio subscritor, a ferramenta automaticamente far uma leitura sobre o
41

restante dos dados recebidos, os quais ficaro disposio para que sejam exibidos
ao usurio.

3.6. Classificados Mobile Wireless


Como forma de validar a idia do Sistema de Busca de Perfil, foi desenvolvida
uma ferramenta, chamada de Classificados Mobile Wireless (CMW), que representa
um sistema para celulares de classificados de produtos diversos. A sua criao foi toda
baseada no SBP, com objetivo de demonstrar como se deve utilizar este sistema em
dispositivos mveis. O logo do sistema representado pela Figura 17.

Figura 17. Logo do Classificados Mobile Wireless.

Neste sistema, possvel que um vendedor cadastre e anuncie qualquer tipo de


produto, enviando o anncio para outros celulares.
Um usurio que estiver interessado em comprar ou procurar por algum produto
que esteja venda, pode tambm realizar uma busca por anncios que sejam de seu
interesse que estiverem cadastrados em outros celulares.
O vendedor sempre enviar uma mensagem para todos os celulares que
estiverem na rea de cobertura. Esta mensagem corresponde ao perfil do vendedor,
onde esto informaes referentes aos seus dados pessoais e de contato, como
tambm do produto venda.
O comprador receber sempre as mensagens de outros celulares que estiverem
fazendo o papel de vendedor na mesma rea de cobertura, e atravs do mecanismo de
leitura de perfil, as informaes so extradas e comparadas ao perfil do mesmo. Se
forem do interesse do comprador, os dados do produto e do vendedor so exibidos na
tela do celular. Se no forem, o comprador continua recebendo anncios de outros
vendedores.
A aplicao consiste em um mdulo que instalado no celular e foi desenvolvida
baseada na Plataforma J2ME e utiliza a mesma configurao que o SBP prope que
o CLDC 1.1. Para o desenvolvimento, tambm foi necessrio a utilizao do Perfil
MIDP, que proporciona a criao das classes responsveis pelas telas de interao
42

com o usurio. Foi utilizada a verso 2.0 do MIDP, por ser compatvel com a verso do
CLDC utilizada.
O cdigo responsvel pela comunicao foi desenvolvido utilizando o
Framework Marge, que est na verso 0.4.0 e tm como objetivos principais diminuir o
tempo de aprendizado da API JSR-82 e simplificar ao mximo o desenvolvimento de
aplicaes que utilizem Bluetooth, pois o framework disponibiliza interfaces
responsveis por abstrair alguns dos processos de comunicao, como conexes,
protocolos ou mesmo o envio e recebimento de mensagens (Marge, 2008).
A leitura de arquivos XML foi desenvolvida utilizando a verso 2 do analisador
sinttico kXML (1999), que baseado no mtodo Pull e foi criado para ser utilizado por
aplicaes da plataforma J2ME e que necessitam ser executadas em aparelhos de
processamento limitado. O kXML disponibiliza tambm implementaes responsveis
por escrita de XML baseado no mtodo Pull (kXML 2, 2008), que foi tambm utilizado
pela aplicao para a gerao dos perfis antes de serem enviados pelo Bluetooth.
3.6.1. Requisitos
Como forma de oferecer uma melhor compreenso do Classificados Mobile
Wireless, foram definidos requisitos que representam as funcionalidades e as restries
do sistema.
3.6.1.1. Requisitos Funcionais
Os requisitos funcionais representam as principais funcionalidades que o
sistema deve ser capaz de realizar. Eles so representados pela Tabela 2.
Tabela 2. Lista de requisitos funcionais do CMW.

Cdigo
F01
F02
F03
F04
F05
F06

Nome
Descrio
Controlar Dados Pessoais Permite ao usurio cadastrar
informaes referentes aos seus
dados pessoais.
Controlar Contatos
Permite ao usurio cadastrar
informaes referentes aos seus
contatos.
Controlar Venda
Permite ao usurio cadastrar
informaes referentes venda
Controlar Interesses
Permite ao usurio selecionar os
seus interesses
Realizar uma venda
Permite ao usurio anunciar o
produto cadastrado
Realizar uma busca por
Permite
ao
usurio
buscar
43

produtos

produtos de seu interesse

3.6.2. Casos de Usos


De acordo com a Figura 18, o CMW composto por seis casos de usos e dois
atores. O ator comprador interage com os casos de usos cadastro compra, iniciar
busca por produtos, cadastros dados pessoais e cadastro contatos. O ator vendedor
interage com os casos de usos Cadastro Venda, Iniciar venda e tambm com o
cadastro dados pessoais e cadastro contatos.

Figura 18. Casos de Usos do CMW

A idia inicial dos casos de usos responsveis pelos cadastros era armazenar as
informaes diretamente em um arquivo XML, que representaria o perfil do usurio,
mas no foi possvel devido s limitaes que os celulares apresentam quanto
criao de arquivos e tambm pela diferena de compatibilidade de acesso a arquivos
que esto em diretrios diferentes da aplicao. Outra possibilidade seria a criao de
um arquivo XML dentro do pacote da aplicao em tempo de execuo, mas tambm
no foi possvel devido a restries da tecnologia.
Neste contexto, a soluo mais apropriada para o armazenamento dos dados
cadastrados pelo usurio foi a utilizao de Record Store, que consiste em uma
coleo de registros responsveis por persistir array de bytes dentro da plataforma
J2ME, e disponibilizar estas informaes para que sejam invocadas pelos MIDlets
criados (RecordStore, 2008).
Devido ao Record Store s armazenar array de bytes e tambm pelo fato de no
oferecer um sistema de busca eficiente aos dados gravados, foi necessrio criar um
mecanismo de armazenamento que proporcionasse uma melhor manipulao das
informaes gravadas. Esse mecanismo consiste em concatenar todos os dados
referentes a uma categoria em um nico objeto do tipo String, separados por um
caractere especfico. A primeira informao da String consiste no nome da categoria,
para facilitar no momento em que se realizar a busca. Os dados seguintes so

44

concatenados de acordo com a seqncia das tags <valor> do perfil. O caractere


escolhido para separar as informaes foi o : (dois Pontos).
Para efetuar uma busca por alguma informao referente a uma categoria
armazenada, necessrio realizar uma leitura em todas as posies do Record Store,
e a cada String recuperada, feita uma leitura na primeira informao concatenada
dela. Esta primeira informao corresponde a qual categoria as informaes contidas
na String esto contidas. Se a String for referente categoria buscada, ela
recuperada pela aplicao.
Aps a recuperao da String, criada uma classe responsvel por separar
todas as informaes concatenadas nela, e armazen-las em um array de Strings,
facilitando assim, a manipulao dos dados para a criao do XML. A criao desta
classe foi necessria, pois na plataforma no existe mtodo que execute essa tarefa.
3.6.2.1. Cadastro Dados Pessoais
O caso de uso Cadastro Dados Pessoais responsvel pelo cadastro das
informaes pessoais do usurio utilizador, como o nome, idade e profisso. Essas
informaes esto presentes no perfil do vendedor, pois se existir algum comprador
interessado no produto anunciado, estas informaes dos dados pessoais sero
exibidas na tela do celular.
A Figura 19 representa as telas referentes ao caso de uso. Nela esto
representados a tela do menu, cadastro e exibio dos dados armazenados
respectivamente.

Figura 19. Telas referentes ao caso de uso Cadastrar Dados Pessoais

45

3.6.2.2. Cadastro Contatos


Responsvel por armazenar todas as informaes referentes aos contatos do
utilizador, como telefone e email. Essas informaes tambm so exibidas junto aos
dados pessoais do vendedor caso o produto anunciado seja de interesse do
comprador, possibilitando assim, o contato entre eles. A Figura 20 representa as telas
do caso de uso.

Figura 20. Telas do caso de uso Cadastrar Contatos.

3.6.2.3. Cadastro Venda


O caso de uso Cadastro Venda realiza o registro das informaes referentes ao
produto que ir ser anunciado pelo sistema. O cadastro realizado em duas etapas: a
primeira responsvel pelas informaes referentes ao produto, como nome, valor e
descrio; o segundo passo selecionar os interesses a que o produto esteja ligado,
para que depois, o sistema possa comparar com os interesses dos compradores. A
Figura 21 mostra as telas das duas etapas do cadastro, e por fim, a exibio das
informaes armazenadas respectivamente.

46

Figura 21. Telas do Cadastro Venda

Para que a segunda etapa do cadastro funcione, os interesses tm que estar


armazenados para que sejam listados para o usurio visualizar e escolher. Para isso,
foi criado um XML utilizando o mesmo Schema do perfil. Desta forma, facilitando o
cadastro dessas informaes antes que a aplicao seja distribuda e instalada nos
celulares, j que s necessrio adicionar estas informaes no arquivo XML sem
fazer alterao no cdigo Java. A Figura 22 ilustra o XML que contm os interesses.

Figura 22. XML que contm todos os interesses.


47

3.6.2.4. Iniciar Venda


O caso de uso Iniciar Venda consiste na criao e configurao da conexo da
rede Bluetooth, como tambm, na publicao e envio do perfil com as informaes da
venda. J que o armazenamento dos dados do usurio esto em Record Store, o caso
de uso tambm fica responsvel pela recuperao desses dados e, a partir deles, criar
o perfil no formato XML para que seja enviado. A Figura 23 demonstra a tela do
sistema assim que o servio da venda iniciado.

Figura 23. Tela do caso de uso Iniciar Venda

O funcionamento do caso de uso Iniciar Venda demonstrado na Figura 24,


atravs de um diagrama de seqncia.

48

Figura 24. Diagrama de seqncia do caso de uso Iniciar Venda

O usurio, ao iniciar a venda, a classe MidpCMW, responsvel pelas telas do


sistema, cria uma nova instncia da classe Comunicao, que controla toda a
comunicao Bluetooth do sistema. Ela configura a conexo que ir ser criada atravs
da classe ServerConfiguration, passando valores correspondentes autenticao,
nome do servidor e o nmero mximo de conexes. Para o nmero mximo de
conexes passado o valor 8, que corresponde ao nmero mximo de dispositivos que
uma rede Bluetooth suporta. Toda esta configurao passada como parmetro no
mtodo waitClients() da classe CommunicationFactory, que inicia o servidor e fica
responsvel por adicionar os clientes encontrados na rede.
Quando um cliente encontrado e a conexo estabelecida, o dispositivo servidor
ainda realiza duas configuraes atravs da classe ServerDevice, que abstrada na
instanciao da classe pelo framework. A primeira responsvel por iniciar a escuta da
comunicao entre os dispositivos, representada pelo mtodo startListening(), e a outra
responsvel por configurar o servidor a enviar mensagens tambm para os

49

dispositivos clientes encontrados em broadcast. As classes ServerConfiguration,


CommunicationFactory, e ServiceDevice fazem parte do Framework Marge.
Aps o incio do servidor, a classe Comunicacao acessa CriacaoXML,
responsvel pela gerao do XML. Como esta gerao a partir dos dados
cadastrados

pelo

usurio,

classe

CriacaoXML

tem

que

acessar

ArmazenamentoDados para que recupere as informaes armazenadas nos Record


Stores. Depois de recuperadas, inicia o processo de criao do XML, armazenando-o
em um objeto do tipo texto, formato pelo qual ser enviado para os clientes.
Por fim, para todos os celulares que forem estabelecidas as comunicaes e
adicionados na rede, enviado este XML correspondente ao perfil em broadcast. O
cdigo referente ao caso de uso Iniciar Venda ilustrado pela Figura 25.

Figura 25. Cdigo responsvel por iniciar o Servidor.

Baseado na Figura 25, os principais mtodos responsveis pelo incio do


servidor so representados pelas linhas 1, 11 e 18 respectivamente. O iniciarServidor()
o primeiro a ser chamado e responsvel pela configurao inicial. Esta
configurao, citada anteriormente, representada pelas linhas 4, 5 e 6. neste
mtodo tambm que criado o XML do perfil do usurio (linha 8). O segundo mtodo a
ser chamado o connectionEstabilished(), responsvel por estabelecer a conexo com
outros dispositivos (linha 12 a 14), e chamar o mtodo de envio do perfil (linha 15).

50

Por fim, o sendMessage(), mtodo responsvel por enviar o perfil, convertendo-o


para o tipo array de bytes atravs da linha 19, formato utilizado pelo framework para
envio de mensagem entre dispositivos.
3.6.2.5. Cadastro Compra
O cadastro das informaes referentes compra realizado pelo caso de uso
Cadastro Compra. Ele constitudo de apenas um passo, em que o usurio seleciona
os interesses que estejam ligados aos produtos que deseja buscar.

Figura 26. Telas referentes ao Cadastro Compra.

A Figura 26 demonstra as telas de seleo dos interesses e da exibio aps o


armazenamento. O usurio pode cadastrar vrios interesses para que, na hora da
busca, eles sejam comparados com os dos produtos recebidos dos vendedores.
3.6.2.6. Iniciar Busca Por Produtos
A busca por algum produto realizada pelo caso de uso Iniciar Busca Por
Produtos. Ele responsvel pela busca por dispositivos e servios, e pelo recebimento
do perfil. A Figura 27 representa as telas do caso de uso, mostrando quando o servio
iniciado, e a tela correspondente exibio de um produto quando o mesmo for do
interesse do comprador.

51

Figura 27. Telas do caso de uso Iniciar Busca por Produtos

A idia deste caso de uso automatizar ao mximo o processo de comunicao,


abstraindo para o usurio algumas configuraes de rede e seleo de servios e
dispositivos disponveis. A Figura 28 demonstra o diagrama de seqncia
correspondente ao caso de uso Iniciar Busca Por Dispositivos, mostrando o
procedimento para que se realize a comunicao entre os aparelhos.

52

Figura 28. Diagrama de Seqncia do caso de uso Iniciar Busca por Produtos

A classe MidletCMW cria uma nova instncia da classe Comunicacao, dando


incio a aplicao Cliente. Atravs da classe DeviceDiscoverer, possvel realizar uma
busca por dispositivos que estiverem na rea de cobertura e tentar a comunicao com
os mesmos. A Classe ServiceDiscoverer responsvel pela leitura dos servios
cadastrados nos dispositivos encontrados. Se a comunicao for realizada com
sucesso aps esses dois passos, criada uma nova configurao para este cliente
53

atravs da Classe ClienteConfiguration e, logo em seguida, estabilizada a conexo


com o servidor encontrado, sendo adicionado na rede do mesmo. Enquanto isto, o
atributo condicaoCompra, correspondente ao status da comunicao, e ele recebe o
valor de verdadeiro, para indicar que o cliente est conectado a um servidor. As
Classes DeviceDiscoverer, ServiceDiscoverer e ClienteConfiguration fazem parte do
Framework Marge.
Aps estabilizar a conexo com o servidor, o cliente ir ficar disponvel para
receber a mensagem correspondente ao perfil. Enquanto isto, a classe MidpCMW
acessa o atributo correspondente ao status da comunicao, e assim que esse status
for verdadeiro, acessado o XML, para que o mesmo possa ser comparado com o
perfil do comprador. Se no for de mesmo interesse, o sistema volta a pesquisar em
outros dispositivos. Se for do mesmo interesse, este XML recebido e enviado para
a Classe LeituraXML, para que os dados possam ser extrados e exibidos para o
usurio. Esta classe ainda acessa a Conversora, para que o XML, que est no formato
String, possa ser convertido para InputStream e, assim, possibilitar a leitura e extrao
dos dados contidos nele. A Figura 29 representa o cdigo responsvel pelo controle da
comunicao do caso de uso Iniciar a Busca por Produtos.

54

Figura 29. Cdigo responsvel pelo Caso de uso Iniciar Busca por Produtos

O primeiro mtodo, localizado na linha 1, responsvel por iniciar o cliente. Ele


cria novas instncias das classes responsveis pela configurao, busca por
dispositivos e servios (linhas 3, 4 e 5). Aps isso, iniciada a busca por dispositivos
(linha 6), sendo chamado logo em seguida o mtodo responsvel por adicionar todos
os dispositivos encontrados em uma lista (linhas 9 e 10). O mtodo localizado entre as
linhas 13 e 16 responsvel por realizar a leitura nos servios cadastrados no celular
atual que estiver tentando a conexo. Aps isso, ao encontrar o servio especfico,
tenta-se estabilizar a comunicao entre os dispositivos (linhas 20 e 21). O incio da
comunicao representado pela linha 25. Logo aps, o Perfil recebido e na linha 31
verificado se do mesmo interesse do usurio comprador. Se for, o perfil

55

adicionado em uma varivel da Classe Comunicacao que, posteriormente, ser


acessado para a exibio das informaes.
3.6.3. Diagrama de Classes
O diagrama de Classes demonstra os diversos tipos de objetos encontrados no sistema
e os vrios relacionamentos que existem entre eles. Tambm responsvel por mostrar
atributos e operaes de uma classe e as restries (Fowler, 2004).

O projeto composto por quatro estruturas de pacotes, de acordo com a Figura


30.

Figura 30. Diagrama de Classes representando os relacionamentos das classes do CMW

O pacote br.cefetrn.tcc.bruno.tela responsvel pela classe MidletCMW, que


cria as telas de interao com o usurio. No pacote br.cefetrn.tcc.persistencia fica a
classe ArmazenamentoDados responsvel pela persistncia dos dados. O pacote
56

br.cefetrn.tcc.bruno.controle

contm

as

classes

CriacaoXML,

LeituraXML

Comunicacao, que so responsveis por todo o controle do funcionamento do sistema.


Por fim, o pacote br.cefetrn.tcc.utilidades, que contm as classes Separadora e
Conversora, e foram criadas para adicionar algumas funes que so utilizadas pelo
sistema, como a leitura das informaes concatenadas do perfil no celular e realizar as
converses necessrias dos dados para a transmisso entre os celulares.
3.6.3.1. MidletCMW
A classe MidletCMW responsvel pela construo dos componentes grficos
para exibio das informaes e interao do usurio com o sistema. Isto foi possvel
devido s classes do pacote javax.microedition.lcdui oferecido pelo perfil MIDP. Nela,
localizam-se quatro tipos de display, o Form, responsvel pelas exibies e cadastro
das informaes, o List, pela criao dos menus, o Alert, que consiste nas telas de
confirmaes, e WaitScreen, responsvel pelas telas de espera quando o celular
estiver buscando por dispositivos.
3.6.3.2. LeituraXML
A classe LeituraXML realiza todas as leituras sobre os perfis. Para tanto, utiliza o
analisador kXML 2 na sua implementao. Existem duas maneiras pelas quais o
sistema pode realizar a leitura sobre o XML:
Diretamente em um arquivo;
Sobre um objeto do tipo String que tenha as informaes formatadas em XML.
Esta segunda opo ocorre quando o perfil for recebido de outro aparelho. Para
isso, deve-se acessar um mtodo da classe Conversora responsvel por converter
essa String para o tipo InputStream, que o tipo correspondente ao que o kXML aceita
como entrada. A Figura 31 representa o diagrama de classe da classe LeituraXML.

Figura 31. Diagrama de Classe da classe LeituraXML.

A classe composta por trs mtodos. O mtodo retornaCategoria


responsvel por retornar todas as informaes de uma determinada categoria, que
57

passada no parmetro categoria. O outro parmetro, o xml, corresponde ao XML que


se deseja retirar as informaes.
O segundo e o terceiro mtodo so responsveis pela verificao e comparao
dos interesses do perfil recebido com o do cadastrado no celular. Os retornos destes
mtodos so do tipo boolean. O mtodo a ser chamado o verificarInteresses(). Como
parmetro, passado o XML para que ele possa extrair os interesses e armazen-los
em uma lista. Esta lista passada como parmetro no mtodo compararInteresses(). O
mtodo ir realizar uma comparao entre os interesses recebidos e os do comprador
que esto cadastrado no celular. Se algum deles for igual, o mtodo ir retornar o valor
true. Ao receber o retorno, o mtodo verificarInteresses() ir tambm retornar o mesmo
valor para confirmar que o produto possa ser exibido ao comprador.
3.6.3.3. CriacaoXML
A classe CriacaoXML responsvel por recuperar todas as informaes
armazenadas nos Record Stores e, a partir delas, gerar um novo XML, armazenando-o
em um objeto do tipo String. O objeto gerado do tipo String devido o fato de facilitar a
manipulao do mesmo, e tambm pela fcil converso para o tipo byte array, que
consiste no tipo padro do envio e recebimento de mensagens da comunicao
Bluetooth utilizando o Framework Marge.
Essa criao possvel devido ao kXML 2, que disponibiliza mtodos que
encapsulam e facilitam todo o processo da criao do XML utilizando o mesmo modelo
da leitura que o SBP utiliza, que o Pull.
A classe CriarcaoXML contm o mtodo escreverXML() que responsvel por
recuperar as informaes gravadas e, a partir delas, gerar um XML no formato String
(ver Figura 32).

Figura 32. Diagrama de Classe da CriacaoXML.

3.6.3.4. Comunicacao
A classe Comunicao responsvel por toda a manipulao da comunicao
Bluetooth, que consiste na busca por dispositivos e servios, envio e recebimento de
58

mensagens entre os aparelhos. Sua implementao foi realizada utilizando o


Framework Marge.
O seu desenvolvimento baseado em quatro interfaces que so implementadas
pela classe Comunicacao, as quais adicionam mtodos responsveis pelo manuseio da
comunicao.

As

interfaces

so

ConnectionListener,

CommunicationListener,

InquiryListener, ServiceSearchListener. A Figura 33 representa o diagrama de classe


que exibe o relacionamento entre a classe Comunicacao e as interfaces
implementadas, assim como suas operaes.

Figura 33. Diagrama de Classe exibindo os mtodos e relacionamentos da Classe Comunicacao com as
interfaces implementadas.

A interface ConnectionListener responsvel por estabelecer a conexo entre


os dispositivos por parte do vendedor. Os mtodos implementados pela interface so
os connectionEstablished() e errorOnConnection().
InquiryListener a interface que representa a busca por dispositivos que estejam
na

rea

de

cobertura

do

Bluetooth.

Os

mtodos

implementados

so

os

deviceDiscovered(), inquiryCompleted() e inquiryError(). Estes mtodos so utilizados


pelo comprador.
A interface ServiceSearchListener consiste na leitura e escolha dos servios
localizados

em

um

dispositivo.

Os

mtodos

contidos

da

interface

so

serviceSearchCompleted(), deviceNotReachable() e serviceSearchError(), e so


utilizados pelo Comprador.

59

CommunicationListener representa os mtodos responsveis pelo envio e


recebimento de mensagens entre os dispositivos. Os mtodos implementados so
receiveMessage(), errorOnReceiving() e errorOnSending(). So utilizados tanto pelo
vendedor, como pelo comprador.
3.6.3.5. Separadora
A classe Separadora foi criada para que fossem separadas as informaes
armazenadas nos Record Stores, pois as mesmas se encontram concatenadas.
composta por um nico mtodo, que recebe como parmetro, o texto a ser separado, e
o caractere responsvel pela concatenao, como mostra o diagrama de classe
representado pela Figura 34. O retorno deste mtodo um array de Strings, contendo
as informaes em cada posio do array.

Figura 34. Diagrama de Classe da classe Separadora.

3.6.3.6. ArmazenamentoDados
ArmazenamentoDados a classe responsvel por toda a persistncia dos dados
do usurio. Ela utiliza Record Store para o armazenamento e contm mtodos
responsveis por gravar e recuperar as informaes cadastradas conforme mostrado
na Figura 35.

Figura 35. Diagrama de Classe da classe ArmazenamentoDados.

3.6.3.7. Conversora
A classe Conversora foi criada para que fosse possvel a converso do XML do
formato String para o InputStream, pois consiste no formato padro de leitura do
60

Framework kXML. composta de apenas um mtodo, conforma ilustrado no diagrama


de classe da Figura 36.

Figura 36. Diagrama de Classe da Conversora.

3.7. Ferramentas Utilizadas


Para o desenvolvimento do SBP e do CMW foi utilizado a IDE de
desenvolvimento NetBeans 6.0 (NetBeans , 2008), que permite o desenvolvimento de
aplicaes e interfaces grficas para dispositivos mveis atravs da extenso
denominada Mobility Pack. Esta extenso permite tambm a integrao com o J2ME
Wireless Toolkit (WTK) para ser realizado as simulaes e testes das aplicaes
desenvolvidas, conforme mostra a Figura 37.

Figura 37. Ferramentas utilizadas no desenvolvimento (Netbeans e WTK).

O WTK fornecido pela SUN e consiste num conjunto de ferramentas


responsveis pela emulao de aplicaes baseadas na configurao CLDC e perfil
MIDP da plataforma J2ME (Sun Microsystems, 2008). A verso usada foi a 2.5.1, e foi

61

utilizada para realizar os testes com diversos emuladores abertos executando a mesma
aplicao, simulando uma comunicao sem fio entre elas.

3.8. Resultados Experimentais


Esta seo responsvel por demonstrar os resultados experimentais com a
utilizao dos Classificados Mobile Wireless. Foram realizados dois testes: no primeiro,
foi utilizado o simulador do Wireless Toolkit; o segundo foi realizado em dois celulares
(teste em ambiente real).
3.8.1. Ambiente de Testes
O primeiro teste foi realizado utilizando o simulador do Wireless Toolkit. O
objetivo deste teste foi o de verificar se a ferramenta desenvolvida estava atendendo a
todos os requisitos do sistema. Nele, foram realizadas trs simulaes com cinco
simuladores abertos.
As simulaes foram realizadas de maneira que pudesse verificar se realmente
os dispositivos conseguiam se comunicar entre si, e se o sistema de comparao
estava funcionando, exibindo ou no os perfis recebidos.
Dois simuladores estavam fazendo papel de vendedor e trs de comprador. Os
dois vendedores realizaram os cadastros dos dados pessoais, contatos e da venda.
Um deles estava vendendo um computador, com os interesses Eletronicos e
Informatica selecionados, e o outro estava vendendo um carro, com os interesses
Automobilismo e Viagem selecionados.
Na primeira simulao, foi iniciado um celular com papel de comprador. Foram
selecionados os interesses Informatica e Eletronicos. O segundo simulador foi
iniciado com os interesses Automobilismo e Cinema selecionados, e o terceiro
selecionou os interesses CD e DVD.
No segundo teste, foram utilizados dois celulares da marca Nokia, o N95 e o
5200 (ver Figura 38). Os dois tm suporte configurao CLDC 1.1, perfil Midp 2.0 e
ao pacote opcional JSR-82.

62

Figura 38. Celulares utilizados para realizar os testes da aplicao CMW.

O objetivo do segundo teste era a validao do sistema em ambientes reais. Um


usurio realizou a venda de um produto, e ao mesmo tempo, outro usurio realizou
uma busca por produtos de mesmo interesse do que estava vendendo, para observar
se o que estava realizando a busca iria realizar a comunicao e receber informaes
referentes ao produto anunciado e do prprio vendedor.
O cadastro referente venda foi realizado no N95, em que foram cadastrados os
dados pessoais, contatos e as informaes referentes venda. Como interesses
ligados ao produto foram escolhidos o Automobilismo e Bebidas. O cadastro
referente ao comprador foi realizado no celular 5200, onde o usurio selecionou os
interesses por determinados produtos. Os interesses selecionados foram os mesmos
do produto que o outro usurio cadastrou para vender.
3.8.2. Resultados
O primeiro teste atendeu a todos os requisitos e funcionou de maneira esperada.
Todos os cadastros foram realizados com sucesso. Na primeira simulao, o
comprador conseguiu se comunicar com o vendedor do computador, recebendo assim
o seu perfil e exibindo-o na tela, pois era do mesmo interesse. O segundo comprador,
interessado em um dos interesses da venda do carro, conseguiu tambm se comunicar
com o outro simulador, recebendo tambm o perfil e exibindo-o. A partir da, comprova63

se que a comunicao est sendo realizada com todos os vendedores. O terceiro


simulador, que tinha interesses cadastrados diferentes dos dois produtos que estavam
sendo vendidos, realizou a comunicao com os dois vendedores, e logo em seguida
exibiu a tela de que no tinha encontrado nenhum produto de interesse do usurio.
O resultado do segundo teste tambm foi bastante satisfatrio, uma vez que o
sistema se comportou da maneira esperada e semelhante com o dos testes realizados
nos simuladores. Todos os cadastros foram realizados com sucesso, sendo exibidos ao
usurio. O celular que estava vendendo iniciou o servio normalmente, sendo acionado
o Bluetooth do aparelho, e o celular que estava fazendo papel de comprador realizou
uma busca por todos os celulares que estavam com o Bluetooth acionado no local,
pedindo a permisso de comunicao somente com o aparelho que estava com o
sistema CMW instalado. Aps a confirmao, o perfil foi recebido, processado e aps a
comprovao de que o produto era do mesmo interesse do comprador, foram exibidas
ao usurio todas as informaes referentes ao vendedor e ao produto anunciado na
tela do celular.

64

4.

CONSIDERAES FINAIS

4.1. Concluso
O projeto desenvolvido neste trabalho possibilitou a criao de um novo mtodo
de divulgao publicitria, contornando os problemas surgidos com a utilizao de
outros mtodos existentes, como os outdoors por exemplo. Como vantagens, o sistema
demonstrou ser bastante acessvel, pelo fato de poder ser executado em aparelhos
celulares de baixo custo e tambm eficiente, devido ao mecanismo de busca de perfil,
uma vez que ele, em tempo de execuo, sabe quais informaes interessam ao
usurio que est utilizando o sistema. Outra vantagem que somente possvel a
comunicao entre os dispositivos que tenham o sistema instalado, evitando assim, o
envio de mensagens em massa e indesejveis para outros celulares.
O sistema desenvolvido se mostrou uma tima soluo para o anncio de
produtos ou mesmo de promoes em ambientes de bastante movimento, j que s
preciso ter o mdulo instalado no prprio aparelho celular, e no precisa
necessariamente o usurio est parado em um local para receber as mensagens.
A

utilizao

das

tecnologias

adotadas

foi

bastante

importante

no

desenvolvimento deste trabalho, atendendo a todos os requisitos do sistema.

4.2. Trabalhos Futuros


Como trabalho futuro, sugere-se a definio de critrios de segurana no sistema
de busca de perfil, para que se torne mais seguro o trfego de dados pela rede
Bluetooth e a comunicao entre os dispositivos.
Tambm como proposta, sugere-se a criao de um mdulo desktop do sistema,
responsvel apenas para o cadastro e envio de mensagens publicitrias para os
mdulos que estiverem localizados nos celulares. Isto ir facilitar a utilizao do
sistema por parte de lojas ou mesmo empresas, por causa dos equipamentos utilizados
e o seu custo-benefcio.
Tambm sugerido que se adicione mais funcionalidades ao sistema, como a de
transformar o canal de comunicao entre os dispositivos bidirecional, ou seja, os
celulares poderiam enviar e receber mensagens ao mesmo tempo, possibilitando
assim, um dispositivo ter todos os comportamentos possveis da aplicao. Outra
sugesto a de melhorar o sistema de busca e comparao em um perfil,
65

possibilitando assim, ele comparar uma maior variedade de informaes referentes ao


usurio, e ser mais preciso na seleo dos interesses do mesmo.
A refatorao do Schema tambm apontada como um fator importante nos
trabalhos futuros, para possibilitar o cadastro de outros tipos de dados e tambm
facilitar na validao das informaes armazenadas.
Prope-se tambm a criao de um sistema utilitrio de comunicao entre os
dispositivos, como um bate-papo, por exemplo, para que facilite a comunicao entre
dispositivos que tenham os mesmos interesses.

66

5. REFERNCIAS BIBLIOGRFICAS
Anatel. Agncia Nacional de Telecomunicaes. Relatrio Anual 2006. Disponvel em:
<http://www.anatel.gov.br/hotsites/relatorio_anual_2006/cap_03.htm>. Acesso em: <15
de outubro de 2007>.
Apple. Bluetooth Device Access Guide. Bluetooth Architecture. Disponvel em:
<http://developer.apple.com/documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Bl
uetooth_Basics/chapter_2_section_4.html#//apple_ref/doc/uid/TP30000997-CH214CHDJHFEF>. Acesso em: <15 de maro de 2008>.
Billo, Eduardo Afonso. Uma pilha de protocolos Bluetooth adaptvel aplicao.
Trabalho de Concluso de Curso (Bacharelado em Cincia da Computao) Departamento de Informtica e Estatstica, Universidade Federal de Santa Catarina,
Florianpolis, 2003.
Bluetooth.com.
Get
Technical.
Disponvel
em:
<http://www.bluetooth.com/Bluetooth/Technology/> Acesso em: <10 de maro de
2008>.
Callegario, Simonne. Sistema de Monitoramento Voluntrio via GPS. Trabalho de
Concluso de Curso (Tecnologia em Desenvolvimento de Software) Departamento
Acadmico de Tecnologia da Informao, Centro Federal de Educao Tecnolgica do
Rio Grande do Norte, Natal, 2007.
Cmara, So Paulo. ntegra do substitutivo do Projeto. Disponvel em:
<http://www.camara.sp.gov.br/noticias_detalhe.asp?id=121>. Acesso em: <25 de
maro de 2008>.
Deitel, Harvey M., Deitel, Paul J., Nieto, Ramon, Lin, T. M., Sadhu, P. XML Como
Programar. Porto Alegre. Editora Bookman, 2003.
Depin, Fbio Marcelo. Prottipo De Software Para Dispositivos Mveis Utilizando
Java ME Para Clculo De Regularidade Em Rally. Trabalho De Concluso de Curso
(Bacharelado em Cincias da Computao) Centro de Cincias Exatas e Naturais,
Universidade Regional De Blumenau, 2002.
Fowler, Martin; UML Essencial, 3 Edio. So Paulo. Editora Bookman, 2004.
Franzotte, Ledyvnia. Utilizando anlise de mutantes para realizar o teste de
documentos XML SCHEMA. Dissertao de Mestrado. Setor de Cincias Exatas da
Universidade Federal do Paran. 2006.
G1.
Brasil
tem
54,5
celulares
para
cada
100
habitantes.
<http://g1.globo.com/Noticias/Economia_Negocios/0,,MUL38870-9356,00.html> Acesso
em: <05 de outubro de 2007>.
G1. Lei de outdoors pode virar referncia para outras cidades. Disponvel em:
<http://g1.globo.com/Noticias/Brasil/0,,AA1468536-5598,00.html>. Acesso em: <3 de
outubro de 2007>.
67

G1.
Microsoft
entra
no
negcio
de
publicidade
na
internet.
<http://g1.globo.com/Noticias/Tecnologia/0,,AA1543383-6174,00.html> Acesso em: <05
de outubro de 2007>.
Ghisi, Bruno Cavaler. Marge: framework para desenvolvimento de aplicaes em Java
que faam uso da tecnologia Bluetooth. Trabalho de Concluso de Curso (Bacharel
em Sistemas de Informao) - Programa de Graduao em Sistemas de Informao,
Universidade Federal de Santa Catarina, Florianpolis, 2007.
Hopkins, Bruce. Getting Started with Java and Bluetooth. Disponvel em
<http://today.java.net/pub/a/today/2004/07/27/bluetooth.html>. Acesso em 01 de maro
de 2008.
Hopkins, Bruce. Antony, Ranjith. Bluetooth for Java. New York. Apress, 2003
IEEE Standards. Part 15.1: Wireless Medium Access Control (MAC) and Physical Layer
(PHY) Specifications for Wireless Personal Area Networks (WPANs). Publicado por The
Institute of Electrical and Electronics Engineers. New York. 2002.
INFOOnline. Publicidade invadir celulares, diz anlise. Disponvel em:
<http://info.abril.com.br/aberto/infonews/092007/14092007-17.shl> Acesso em: <2 de
outubro de 2007>.
Klingsheim, Andr N. J2ME Bluetooth Programming. 2004. 183f. Dissertao
(Mestrado) da University of Bergen, Bergen, 2004.
Knudsen, Jonathan. Wireless Java Developing with J2ME, Second Edition. Apress,
2003
Kumar, C Bala , Kline, Paul, Thompson, Tim. "Bluetooth Application Programming with
the Java APIs". Morgan Kaufmann Publishers Inc,US. 2003.
Lago, A. B. Coleta de Dados para o Sistema SIG@Livre Utilizando Dispositivos
Mveis. Trabalho de Concluso de Curso (Bacharelado em Cincias da Computao)
Centro de Engenharias e Cincias Exatas, Universidade Estadual do Oeste do
Paran, Foz do Iguau, 2006.
Lima, Jalerson. XRTPS Extensible Real-Time Publish-Subscribe: Um Middleware
para troca de dados em Redes Industriais de Tempo Real baseado em XML utilizando
Multicast. Natal, 2007. f. Trabalho de Concluso de Curso (Tecnologia em
Desenvolvimento de Software) Gerncia Educacional de Tecnologia da Informao,
Centro Federal de Educao Tecnolgica do Rio Grande do Norte, Natal-RN, 2007.
Mahmoud, Qusay H. Wireless Application Programming with J2ME and Bluetooth.
Disponvel em: <http://developers.sun.com/mobility/midp/articles/bluetooth1/>. Acesso
em: <15 de dezembro de 2007>.
Marge. What is Marge?. Disponvel em: <https://marge.dev.java.net/>. Acesso em:
<01 de maro de 2008>.
Muchow, John W. Core J2ME Technology & MIDP. Makron Books, 2001.
68

Nielsen. Nova pesquisa da Nielsen prova que boca-a-boca a mais poderosa


ferramenta
de
vendas.
Disponvel
em:
<http://www.acnielsen.com.br/news/publicidade_2007.shtml>. Acesso em: <24 de
maro de 2008>.
Oliveira, R. B. Servio de Distribuio de Contedos RSS para Dispositivos Mveis
Atravs de WebServices. Trabalho de Concluso de Curso (Bacharelado em Cincias
da Computao) Departamento de Sistemas Computacionais, Universidade de
Pernambuco, Recife, 2005.
Paludo, L. Um Estudo Sobre as Tecnologias JAVA de Desenvolvimento de Aplicaes
Mveis. Dissertao (Especialista em Cincia da Computao) - Departamento de
Informtica e Estatstica - Universidade Federal de Santa Catarina, Florianpolis, 2003.
Pereira, Nilton de Paula, Mulinari, Priscilla Domingues, Alves, Smia Cristina, Pereira,
Tnia Cristina. Mdia de massa x mdia interativa: Transio do comportamento do
consumidor
de
reativo
para
pr-ativo.
Disponvel
em:
<http://www.facef.br/rec/ed02/ed02_art03.pdf>. Acesso em: <01 de abril de 2008>.
RFC 919, Mogul, J., Broadcasting Internet Datagrams, Computer Science
Department, Stanford University, October 1984.
Romeiro, B. G. Desenvolvimento de Aplicativos para Dispositivos Mveis na
Plataforma J2ME. Trabalho de Concluso de Curso (Bacharelado em Engenharia da
Computao) Departamento de Sistemas Computacionais, Universidade de
Pernambuco, Recife, 2005.
Schaefer, Carine. Prottipo de Aplicativo Para Transmisso de Dados a Partir de
Dispositivos Mveis Aplicado a uma Empresa de Transportes. Trabalho De Concluso
de Curso (Bacharelado em Cincias da Computao) Centro de Cincias Exatas e
Naturais, Universidade Regional De Blumenau, 2004.
Sun Microsystems, "MIDP APIs for Wireless Applications". Disponvel em:
<http://java.sun.com/products/midp/midp-wirelessapps-wp.pdf. 2001>. Acesso em: <13
de maro de 2008>.
Sun
Microsystems.
Class
RecordStore.
Disponvel
em:
<http://java.sun.com/javame/reference/apis/jsr118/javax/microedition/rms/RecordStore.
html>. Acesso em: <02 de maro de 2008>.
Sun Microsystems. J2ME Building Blocks for Mobile Devices. Disponvel em:
<http://java.sun.com/products/cldc/wp/KVMwp.pdf>. Acesso em: <20 de outubro de
2007>.
Sun
Microsystems.
Java
ME
Platform
Overview.
Disponvel
em:
<http://java.sun.com/javame/technology/index.jsp>. Acesso em: <17 de outubro de
2007>.
Sun Microsystems. Sun Java Wireless Toolkit for CLDC. Disponvel em:
<http://java.sun.com/products/sjwtoolkit/>. Acesso em: <01 de maro de 2008>.

69

Sun Microsystems. Wireless Application Programming with J2ME and Bluetooth.


Disponvel
em:
<http://developers.sun.com/mobility/midp/articles/bluetooth1/index.html>. Acesso em:
<02 de maro de 2008>.
Tanenbaum, Andrew S.; Redes de Computadores; Editora Campus. 4. Ed. 2004
Valente, S. D. Tecnologia J2ME: JAVA 2 MICRO EDITION. Trabalho de Concluso de
Curso (Bacharelado em Sistemas da Informao) Uniminas, Uberlndia, 2005.
Valentim, R. A. M. Anlise de Desempenho Experimental de Redes IEEE 802.3.
Dissertao de Mestrado. Laboratrio de Engenharia de Computao e Automao da
Universidade Federal do RN. 2006.
Walsh,
Norman.
Understanding
XML
Schemas.
Disponvel
em:
<http://www.xml.com/pub/a/1999/07/schemas/index.html?page=1. 1999>. Acesso em:
<15 de maro de 2008>.

70

Você também pode gostar