SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
Fabricio Soares Kronbauer




ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM
       AMBIENTE EDUCACIONAL UBÍQUO




           Trabalho de Conclusão de Curso




               CRUZ ALTA-RS, 2010
1




               Fabricio Soares Kronbauer




ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM
       AMBIENTE EDUCACIONAL UBÍQUO




                        Trabalho de Conclusão de Curso apresentado
                        ao Curso de Ciência da Computação, da
                        Universidade de Cruz Alta, como requisito
                        parcial para obtenção do grau de Bacharel em
                        Ciência da Computação.




          Orientador: Prof. M. Sc. Josiane Kroll




            CRUZ ALTA - RS, JULHO 2010
2




                   Universidade de Cruz Alta – UNICRUZ
            Departamento de Ciências Agrárias, Exatas e da Terra
                     Curso de Ciência da Computação




     ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM
                AMBIENTE EDUCACIONAL UBÍQUO




                               Elaborado por


                         Fabricio Soares Kronbauer




                                  Como requisito parcial para obtenção do título
                                  de Bacharel em Ciência da Computação.




                          Comissão Examinadora:


Prof. M. Sc. _______________________________________________/UNICRUZ
Prof. M. Sc. _______________________________________________/UNICRUZ
Prof. M. Sc. _______________________________________________/UNICRUZ




               Cruz Alta, ____ de ______________ de ______
3




                             AGRADECIMENTOS




      Mais um trecho de meu caminho se encontra completo. E não poderia deixar
de agradecer a todos aqueles que estiveram ao meu lado nesta jornada.
      Em primeiro lugar quero agradecer a meu pai, um homem digno e batalhador
que através de muito esforço conseguiu graduar três filhos em universidades
particulares. Um herói nesses tempos.
      Um agradecimento especial aos meus irmãos, mãe, tios e avôs, que sempre
me apoiaram em tudo que foi preciso.
      Agradeço a minha namorada por sempre estar ao meu lado, em todos os
momentos, sejam eles bons ou não.
      Também aos meus colegas e amigos pela boa companhia que foram e pelas
ajudas prestadas.
      Obrigado a todos que de um jeito ou de outro estiveram presentes em minha
jornada.
4




                                       RESUMO




      ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM AMBIENTE
                               EDUCACIONAL UBÍQUO




                           Autor: Fabricio Soares Kronbauer
                         Orientador: Prof. M. Sc. Josiane Kroll




       O atual ambiente onde estão inseridas as pessoas requer uma busca
frequente por eficiência, rapidez e desempenho. Uma forma de alcançar estes
objetivos é através do uso de dispositivos suportados pela computação móvel como
ferramenta para auxílio na busca de informações. A tecnologia bluetooth é um padrão
aberto de comunicação sem fio, através de enlace de radiofrequência, para redes ad
hoc que permite a transmissão de dados e informações entre dispositivos eletrônicos
a uma curta distância, com gasto mínimo de recursos e com transmissão segura e
rápida de dados. Contudo a integração, através de bluetooth, entre dispositivos
móveis e servidores de dados ainda é pouco explorada. Neste trabalho foi abordado
um estudo sobre a eficiência da comunicação bluetooth em um ambiente
computacional ubíquo. Para isso foi desenvolvido um aplicativo para a comunicação
entre um servidor de dados em um ambiente educacional ubíquo. Foram utilizados
dispositivos móveis com tecnologia bluetooth para troca de informações com o
servidor. Com o estudo realizado observou-se que a tecnologia bluetooth se
diferencia de outras formas de redes de comunicação sem fio principalmente por se
tratar de um padrão rápido, aberto e gratuito. Contudo com o avanço das redes Wi-Fi
a tecnologia perdeu sua força inicial e parece estar restrita a substituição de fios.


PALAVRAS-CHAVE: Comunicação bluetooth. Dispositivos móveis. Computação
ubíqua. Ambientes educacionais.
5




                                     ABSTRACT



    STUDY ON THE BLUETOOTH COMMUNICATION IN AN EDUCATIONAL
                            ENVIRONMENT UBÍQUITOUS


                          Author: Fabricio Soares Kronbauer
                           Advisor: Prof. M. Sc. Josiane Kroll




          The environment current where people are included requires a common quest
for efficiency, speed and performance. One way to achieve these goals is by using of
devices supported by mobile computing as a tool to aid in finding information.
Bluetooth technology is an open standard for wireless communication using radio,
used for ad hoc networks, which allows the transmission of data and information
between electronic devices located in a short distance each other with minimum
costs, secure and fast data transmission. However, the integration between mobile
devices and data servers, by bluetooth, are still little explored. This work was dealt a
study on the efficiency of the bluetooth communication in a ubiquitous computing
environment. This way, an application for communication between a data server and
a ubiquitous learning environment was developed. Mobile devices with bluetooth
technology were used to capture information from the environment coming from a
server.    The realized studies showed that the Bluetooth technology differentiates
itself from other forms of wireless communication networks mainly because it is a
fast, open and free standard. However, because the advancement of network Wi-Fi,
the bluetooth technology lost its initial strength and appears to be restricted to
replacement of wires.


KEYWORDS:         Bluetooth communication. Mobile devices. Ubiquitous computing.
Educational environments.
6




                           LISTA DE ILUSTRAÇÕES




Figura 1    Scatternet formando por duas piconets...........................................22

Figura 2    Pilhas de protocolos da arquitetura bluetooth.................................24

Figura 3    Pilha de perfis do bluetooth.............................................................30

Figura 4    Diagrama de procedimento de conexão bluetooth..........................34

Figura 5    Estágios de comunicação num sistema bluetooth..........................35

Figura 6    Visão geral do ambiente..................................................................44

Figura 7    Visão geral de camadas envolvidas no servidor bluetooth.............45

Figura 8    Diagrama da pilha bluetooth com Java e Bluecove........................48

Figura 9    Tela de projeto do sistema..............................................................74

Figura 10   Tela de inicialização do servidor ....................................................74

Figura 11   Telas do dispositivo móvel..............................................................75

Figura 12   Tela de finalização do servidor........................................................75
7




                                 LISTA DE TABELAS




Tabela 1   Versões do bluetooth.........................................................................20

Tabela 2   Classes de dispositivos bluetooth.....................................................25

Tabela 3   Perfis bluetooth.................................................................................31

Tabela 4   Ambiente de desenvolvimento do projeto.........................................43
8




            LISTA DE ABREVIATURAS E SIGLAS




ACL      Asynchronous ConnectionLess
API      Application Programming Interface
CLDC     Connected Limited Device Configuration
DBM      Power Ratio in Decibels
EDR      Extended Data Rate
FHSS     Frequency Hopping Spread Spectrum
FM       Frequency Modulation
GAP      Generic Access Profile
GCF      Generic Connection Framework
GHz      Giga Hertz
GIAC     General Inquiry Access Code
HCI      Host Controller Interface
HS       High Speed Technology
IDE      Integrated Development Environment
IEEE     Instituto de Engenheiros Eletricistas e Eletrônicos
IrDA     Infrared Data Association
ISM      Industrial, Scientific and Medicine
JCP      Java Community Process
JDK      Java SE Development Kit
J2EE     Java2 Enterprise Edition
J2ME     Java2 Standard Edition
J2SE     Java2 Micro Edition
JSR      Java Specification Requests
JSR-82   Java Specification Requests APIs for Bluetooth
L2CAP    Logical Link Control and Adaptation Protocol
LMP      Link Manager Protocol
MBPS     Megabit por Segundo
MIDP     Mobile Information Device Profile
MW       Miliwatts
9



OBEX     Object Exchange
PDA      Personal Digital Assistants
PPP      Point-to-Point Protocol
PSK      Phase Shift Keying
RFCOMM   RS-232 Serial Cable Emulation Profile
SDA      Service Discovery Application
SDDB     Service Discovery Database
SDP      Service Discovery Protocol
SIG      Bluetooth Special Interest Group
SP2      Service Pack 2
SPP      Serial Port Profile
TCP/IP   Transmission Control Protocol / Internet Protocol
USB      Universal Serial Bus
UUID     Universally UniqueI Dentifier
WAP      Wireless Application Protocol
Wi-Fi    Wireless Fidelity
WTK      Java Wireless Toolkit
10



                                                     SUMÁRIO


1 INTRODUÇÃO ...................................................................................................... 11
1.1 OBJETIVOS ....................................................................................................... 12
1.1.1 OBJETIVO GERAL.......................................................................................... 12
1.1.2 OBJETIVOS ESPECÍFICOS ........................................................................... 12
1.2 JUSTIFICATIVA ................................................................................................. 12
1.3 ESTRUTURA DO TRABALHO ........................................................................... 13
2 FUNDAMENTAÇÃO TEÓRICA ............................................................................. 14
2.1 TECNOLOGIAS DE COMPUTAÇÃO MÓVEL E REDES SEM FIO ................... 14
2.2 DISPOSITIVOS MÓVEIS ................................................................................... 15
2.3 COMUNICAÇÃO BLUETOOTH .......................................................................... 17
2.3.1 ESPECIFICAÇÕES DA TECNOLOGIA........................................................... 19
2.3.2 INFRA-ESTRUTURA....................................................................................... 20
2.3.3 PROTOCOLOS ............................................................................................... 22
2.3.4 PERFIS ADOTADOS ...................................................................................... 29
2.3.5 ESTADOS E MODOS DE CONEXÃO ENTRE DISPOSITIVOS ..................... 32
2.3.6 ANATOMIA DE UMA APLICAÇÃO BLUETOOTH .......................................... 36
2.4 COMPUTAÇÃO UBÍQUA . ................................................................................. 38
2.4.1 COMPUTAÇÃO CONSCIENTE DE CONTEXTO ........................................... 40
2.5 TRABALHOS RELACIONADOS ........................................................................ 41
3 DESENVOLVIMENTO PRATICO.......................................................................... 43
3.1 TECNOLOGIAS EMPREGADAS ....................................................................... 43
3.1.1 JAVA ............................................................................................................... 46
3.1.2 JSR-82 ............................................................................................................ 47
3.1.3 BLUECOVE ..................................................................................................... 47
4 ANÁLISE DO SISTEMA DESENVOLVIDO ........................................................... 49
4.1 ANÁLISE DOS RESULTADOS .......................................................................... 54
5 CONCLUSÃO......................................................................................................... 56
5.1 TRABALHOS FUTUROS .................................................................................... 57
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 58
APÊNDICE A – CÓDIGO FONTE ............................................................................. 62
APÊNDICE B – TELAS DO SISTEMA ...................................................................... 74
11



1     INTRODUÇÃO


      A evolução na área computacional propicia o uso de diversos tipos de
dispositivos móveis juntamente com outros vários de redes sem fio. Proporcionando
continuo avanço e tornando atraente aos mais variados tipos de usuários que
buscam facilidade e disponibilidade de informações (FORTES, 2009).
      Aliado a isso existe uma série de possibilidades existentes no uso em
conjunto de tecnologias móveis, como a comunicação entre os indivíduos, realização
dos mais diversos tipos de tarefas, e principalmente a disponibilização da mobilidade
necessária ao aumento de produtividade.
      Tudo isso pode ocorrer em um ambiente móvel, onde o conceito de
intercomunicação entre os dispositivos cresce na mesma proporção que a
necessidade de encontrar a informação desejada com maior rapidez, segurança e
comodidade.
      Cada vez mais pessoas carregam junto de si dispositivos capazes de
processar informações pertinentes ao seu meio. Nesse ambiente surge a
necessidade de comunicação e interação entre esses dispositivos. Um tipo de
conectividade essencial para se viver em ambientes colaborativos (ARIMA, 2009).
      A tecnologia sem fio bluetooth é um padrão de rádio de curto alcance que
proporciona novas oportunidades para dispositivos sem fio. Originalmente a
tecnologia foi concebida como uma forma de eliminar os cabos de quase todos os
dispositivos eletrônicos de consumo. No entanto, as metas para a tecnologia
cresceram, permitindo a criação de um novo tipo de rede sem fio entre dispositivos.
      Dispositivos móveis com tecnologia sem fio bluetooth são cada vez mais
comuns, graças a sua capacidade inerente de proporcionar a transmissão de voz e
dados de uma maneira segura e com um custo relativamente baixo, se comparado a
outras tecnologias de redes sem fio (Bluetooth Special Interest Group, 2009).
      Nesse sentido, foi feita uma análise da comunicação bluetooth para a
transferência de informações entre dispositivos móveis e servidores de dados, em
um ambiente educacional ubíquo, onde a informação deve estar disponível a
qualquer pessoa, através de vários meios de consulta e principalmente no momento
que se deseja, ou seja, a informação certa, no momento certo e de maneira correta
(Barbosa, 2007).
12



1.1      Objetivos


1.1.1    Objetivo Geral


        Baseado na evolução da computação móvel e das redes sem fio, esse
trabalho tem como objetivo o estudo dos processos de transferência de dados e
informações em comunicações envolvendo o protocolo de redes sem fio bluetooth e
dispositivos móveis em um ambiente educacional ubíquo.


1.1.2 Objetivos Específicos


      • Identificar os principais protocolos de transferência de dados adequados à
comunicação móvel, principalmente a comunicação de redes sem fio bluetooth.
      • Fazer um estudo aprofundado sobre as características da comunicação
bluetooth, seus conceitos, implementações, seus protocolos, seus perfis e suas
aplicabilidades.
      • Estudar linguagens de programação que possibilitem integração com o
bluetooth.
      • Verificar ferramentas, bibliotecas, pacotes e métodos para implementação do
protocolo bluetooth.
      • Desenvolver um sistema experimental que comprove a possibilidade e
viabilidade do projeto e abordar aspectos envolvidos nesses processos, buscando
uma validação ao uso das tecnologias envolvidas no projeto, assim como suas
vantagens e desvantagens de seu uso.




1.2     Justificativa


        A cada ano o número de dispositivos móveis no mercado brasileiro cresce
impulsionado pela difusão das tecnologias de redes móveis, bem como pela grande
gama de serviços e funções que esses dispositivos proporcionam. Nesse meio viu-
se a necessidade de um maior entendimento sobre as formas com que esses
aparelhos fazem acesso e realizam suas comunicações, seu funcionamento e a
13



aplicabilidade dos protocolos de comunicação sem fio, principalmente no âmbito dos
servidores de conteúdo e aplicação.
       Além disso, a miniaturização de computadores na forma de celulares,
Personal Digital Assistants (PDA) e outros dispositivos móveis forneceram novas
maneiras para os usuários interagirem em ambiente móvel. Isso também trouxe a
necessidade de desenvolver e redistribuir aplicações de desktop para usuários
móveis (LEE; SCHNEIDER; SCHELL, 2005).
       A escolha pela tecnologia bluetooth foi feita principalmente pela característica
desta de estar presente num grande número de aparelhos, porém, ser pouco
explorada e utilizada no ambiente proposto pelo atual trabalho. Por ser uma
tecnologia que possui um chip barato, o que permite uma integração crescente aos
vários tipos de dispositivos. Além de possuir uma distância de cobertura
relativamente alta para o que a tecnologia se propõe, variando de 10 a 100 metros
dependendo da classe do dispositivo. Ainda o chip do bluetooth possui uma maior
economia de energia se comparado ao Wireless Fidelity (Wi-Fi). Outro fator de
escolha foi o fato do bluetooth obter suporte da linguagem Java. Uma linguagem
muito usada graças a seu grande poder de portabilidade. E por fim, pelo fato de usar
uma faixa de rádio livre, que permite tráfego de dados sem cobrança. Tudo isso está
tornando a tecnologia um padrão para conexões de curta distância (GHISI, 2007).
       Tendo como base a importância do tema, e o crescimento no mercado móvel,
vê-se necessário um estudo aprofundado sobre as tecnologias envolvidas no
mercado de dispositivos móveis e redes sem fio, principalmente no que se refere ao
padrão bluetooth juntamente com a linguagem de programação Java .




1.3     Estrutura do Trabalho


      O trabalho está organizado em 5 capítulos. No capítulo 1 são apresentados os
aspectos introdutórios. No capitulo 2 é abordado a fundamentação teórica para o
trabalho. No capitulo 3 são apresentadas as tecnologias envolvidas no trabalho. No
capítulo 4 é apresentado a analise do desenvolvimento de uma aplicação para testar
as tecnologias envolvidas. No capitulo 5 são apresentados os resultados obtidos a
partir do estudo feito, bem como sugestões para trabalhos futuros.
14



2     FUNDAMENTAÇÃO TEÓRICA


2.1 Tecnologias de Computação Móvel e Redes Sem Fio


      Cada vez mais os indivíduos estão dependentes de dispositivos móveis. Isso
se deve primeiramente ao fato de possibilitar ao usuário, corporativo ou não, acesso
a informações em tempo real, de uma maneira rápida e fácil, em qualquer lugar que
se encontre.
      Segundo Lee, Schneider e Schell (2005) a maioria das pessoas faz uso de
soluções móveis para comunicação, trabalho, entretenimento, educação e
localização. Nas comunicações, onde a mobilidade agrega seu principal valor,
encontram-se o trafego de dados, voz, textos e imagens. No trabalho as aplicações
móveis dão agilidade aos processos como intercambio de informações e emissão de
instruções.
      Na última década é possível notar o crescimento no desenvolvimento de
tecnologias para comunicação em redes sem fio. Permitindo acesso a informações e
abrindo inúmeras possibilidades de serviços e aplicações facilitadoras aos usuários
de dispositivos móveis (FIGUEIREDO; NAKAMURA, 2003).
      O termo computação móvel pode assumir muitos significados, mas
basicamente o ponto em comum é que envolve alguma forma de mobilidade, o que
permite ao usuário com um dispositivo móvel se desloque dentro da área de acesso
da rede sem fio local, buscando acesso a informações em qualquer lugar. Unindo
assim a portabilidade, acessibilidade e conectividade das redes sem fio. Nesse meio,
a portabilidade é fornecida pelo dispositivo, permitindo que o usuário se desloque
para qualquer lugar. Quanto à conectividade, basta que o usuário esteja dentro do
raio de cobertura de uma das varias tecnologias móveis (Augustin, 2004).
      Figueiredo e Nakamura (2003) definem computação móvel como sendo um
novo paradigma computacional que engloba processamento, mobilidade e
comunicação se fio com o objetivo maior de obter informação em qualquer lugar e a
qualquer momento.
      Segundo os autores Lee, Schneider e Schell (2005) a mobilidade esta
diretamente ligada a capacidades como portabilidade, usabilidade, funcionalidade e
conectividade. A portabilidade se define como a facilidade de transportar um
15



dispositivo móvel, tendo em vista seu tamanho e seu peso. Usabilidade remete ao
fato de como um dispositivo é utilizado pelos usuários em relação ambiente que
estes se encontram. Funcionalidade está associada aos tipos de aplicações que
esses dispositivos rodam. Conectividade é a capacidade fundamental dos
dispositivos móveis, pois estes têm como função primordial conectar pessoas e
sistemas, possibilitando troca de dados e informações.
      Numa era onde a informação tende a circular quase em tempo real, a
possibilidade de obter o mesmo conteúdo em diversos meios diferentes facilita e
torna a vida mais produtiva. Nesse meio, a computação móvel agregada ao uso da
tecnologia bluetooth possibilita uma mobilidade que agiliza as comunicações entre
vários dispositivos (BRANDELERO, 2007).
      As aplicações para a tecnologia móvel evoluem em capacidade de
processamento, e este contexto é favorável para o advento de aplicações móveis
cada vez mais poderosas e para os mais diversos fins.
      O ambiente da computação móvel disponibiliza ao programador uma serie de
possibilidades de aplicações e serviços, num mercado onde surge a todo o momento
oportunidades no desenvolvimento de produtos. Existe uma serie de aplicações que
podem fazer uso do meio em prol da mobilidade, como por exemplo, o acesso a
informações, transferência e consulta de dados, acesso remoto, apoio a tomada de
decisão, em áreas de venda, estoque, transporte e automação, transações e
operações    financeiras,   em   ambientes   educacionais,    militares,   segurança,
entretenimento e informações em geral.
      Para atingir o nível de mobilidade desejado pelos usuários desses aparelhos,
a indústria estuda e desenvolve uma serie de tecnologias e protocolos que permitem
a comunicação sem fio a esses dispositivos. Há ainda um grande esforço por parte
dos fabricantes de hardware e software para difusão do aumento do uso da internet
móvel por aparelhos portáteis (Bluetooth Special Interest Group, 2009).


2.2   Dispositivos Móveis


      Existem no mercado diversos tipos de dispositivos móveis destinados tanto a
usuários corporativos quanto aos consumidores em geral. As capacidades
16



intrínsecas, funções, sistemas, portabilidade e custo de cada um desses dispositivos
móveis variam significativamente (LEE; SCHNEIDER; SCHELL, 2005).
       O autor Luiz Barbosa (2006) lista os tipos de dispositivos usados em
computação móvel como: controles inteligentes, utensílios inteligentes, sistemas de
entretenimento e dispositivos de acesso à informação. Sendo este último o tipo de
dispositivo abordado no presente trabalho.
       A classificação dos dispositivos móveis varia muito de autor para autor, mas
geralmente dispositivos móveis de acesso à informação podem ser classificados
como PDA, telefones celulares e smartphones (BOEMO, 2007).
       Segundo Boemo (2007) dispositivos móveis utilizados em processos de
computação móvel tornaram-se muito mais que assistentes pessoais e agendas
eletrônicas, tornaram-se facilitadores da mobilidade, acesso a informações e coleta
de dados. São equipamentos que atribuem facilidades ao seu usuário, por terem
tamanho reduzido, baixo consumo de energia, proporcionam ainda ganhos de tempo
e eficiência.
       Os dispositivos móveis possuem várias formas de acesso à rede sem fio,
como Wi-Fi, Infrared Data Association (IrDA), rede de telefonia celular e a tecnologia
abordada nesse trabalho, o bluetooth (KLEINSCHMIDT, 2004). A seguir são
descritos alguns dispositivos móveis que utilizam comunicação bluetooth:
       • Aparelho celular: Um dispositivo celular se comunica através de ondas
eletromagnéticas presentes em uma determinada área geográfica denominada
célula, que deu nome ao dispositivo. Essas ondas magnéticas são disponibilizadas
ao usuário do dispositivo pela operadora de telefonia celular, e segue padrões de
difusão baseada no tipo de compressão usada na distribuição do sinal. Esses
dispositivos oferecem múltiplos serviços e funções além dos serviços básicos de
telefonia. São players de áudio e vídeo, mensagens de texto, imagem e som, rádio,
câmera fotográfica, câmera filmadora, acesso a internet, jogos, além de vários tipos
de aplicações personalizadas (LEE; SCHNEIDER; SCHELL, 2005).
       • PDA: Derivado do inglês Personal Digital Assistent, os PDA são dispositivos
de dimensões reduzidas e grande capacidade computacional. Os PDA são
comumente chamados de handhelds ou palmtops. Na verdade pode-se classificá-los
como um computador de tamanho reduzido, graças às funções que equipam esses
aparelhos, como capacidade de processamento, memória e armazenamento,
funções de entrada e saída, funções de multimídia, sistema de escritório e
17



capacidade de comunicações em diversos tipos de redes, como Wi-Fi e o bluetooth
(FIGUEIREDO; NAKAMURA, 2003). Contendo originalmente funções básicas como
agenda, lista de contatos, calendário, relógio, o PDA ganhou ao longo do tempo
maior poder de processamento, sistemas operacionais personalizados, maior
capacidade de memória e de armazenamento, o que proporcionou um aumento de
suas funções, que agora incluem correio eletrônico, acesso a Internet, jogos,
informações e aplicações personalizadas. Atualmente é comum que fabricantes
combinem os PDA com características de telefones celulares, reprodutores
multimídia e outros equipamentos eletrônicos (LEE; SCHNEIDER; SCHELL, 2005).
      • Smartphones: Dispositivos que integram funcionalidades de PDA com as
de telefones celulares. É tanto um celular com capacidades de PDA quanto um PDA
tradicional com capacidades de telefone celular. Suas principais funcionalidades são
a de navegar na internet, verificar e-mails, players de áudio e vídeo, edições de
arquivos, além de receber e fazer chamadas telefônicas (LEE; SCHNEIDER;
SCHELL, 2005). Apesar da restrição quanto à capacidade computacional, se
comparados com os PDA, essa mistura de tecnologia celular com a dos PDA torna
esse tipo de dispositivo um dos mais procurados hoje no mercado.




2.3   Comunicação Bluetooth


      A tecnologia bluetooth foi originalmente desenvolvida para acabar com o uso
de cabos entre dispositivos a curta distância, permitindo uma conexão sem fio entre
diversos aparelhos como celulares, dispositivos computacionais portáteis de
pequeno porte, acessórios e periféricos como fones de ouvido, microfones, teclados
e mouse, e computadores. No entanto, não se restringe apenas a substituição dos
cabos. A conectividade sem fio entre dispositivos fixos e móveis permite muitos
outros cenários de utilização. Como o abordado no presente trabalho.
      A tecnologia promete se tornar um dos principais padrões de mercado na sua
área de aplicação, graças às inúmeras possibilidades que disponibiliza em diversas
áreas, e ao grande número de dispositivos que saem de fábrica com suporte a
tecnologia. Como por exemplo: celulares, PDA, notebooks, câmeras, projetores,
18



teclados, mouses, e ainda uma serie de eletrodomésticos (FIGUEIREDO;
NAKAMURA, 2003).
      A tecnologia sem fio bluetooth permite com que um dispositivo se comunique
com outro aparelho em seu raio de alcance, através de um chip que nada mais é do
que um micro rádio transceptor operando na faixa de frequência de 2.4 Giga Hertz
(GHz), na banda Industrial, Scientific and Medical (ISM). A tecnologia bluetooth é
uma especificação de frequência de rádio para comunicações de curto alcance,
segura, aberta, livre de royalties, e de baixo consumo, o que a torna ideal para
dispositivos portáteis de baixo custo. Possibilita tráfego sem fio de voz e dados e
pode operar em qualquer lugar do mundo já que opera em frequência livre
(THOMPSON; KLINE; KUMAR, 2008).
      É uma opção de comunicação sem fio considerada barata, de baixo custo e
eficaz entre dispositivos que se comunicam a uma pequena distância. O grande
propulsor da tecnologia é o custo baixo na produção do chip bluetooth que pode ser
encontrado pelo preço de três dólares americanos. Tudo isso, aliado a baixa
complexidade e ao reduzido consumo (Bluetooth Special Interest Group, 2009).
     Dispositivos com chips bluetooth podem ser sincronizados com um
computador, o que lhes permite transferir arquivos entre eles, troca de dados e até
acessar a internet. É possível ainda criar uma rede de área pessoal permitindo a
comunicação sem fio de diversos tipos de dispositivos.
      O objetivo do Bluetooth Special Interest Group (SIG), órgão regulador da
tecnologia, é a construção de um rádio em um único chip, de baixo consumo de
energia e reduzido custo de fabricação, possibilitando a inserção em diversos tipos
de dispositivos que precisem se comunicar através de um ambiente sem fio. O que
torna a tecnologia ideal para uso em dispositivos móveis (TAURION, 2002).
     Concebida como um sistema de rede sem fio de baixo custo para todas as
classes de dispositivos portáteis, os dispositivos bluetooth têm a capacidade de
formar redes ad hoc. Estas redes permitem conexões dinâmicas e transparentes,
onde o usuário pode se vincular rapidamente através de ligações fáceis e
convenientes para impressoras, acesso à internet, e a dispositivos pessoais tanto no
trabalho como em casa (THOMPSON; KLINE; KUMAR, 2008).
      A seguir a tecnologia terá aprofundamento através de sua especificação,
abordando um pouco sobre suas origens e características principais.
19



2.3.1    Especificações da Tecnologia


        Os estudos originaram-se em 1994 quando a empresa Ericsson começou as
pesquisas para encontrar alternativas para ligar acessórios aos seus telefones
móveis eliminando os cabos entre eles, e buscas por novas tecnologias para
interfaces de comunicações de baixo custo entre telefones e acessórios
(THOMPSON; KLINE; KUMAR, 2008).
        No início de 1998, a Ericsson se juntou a Intel, IBM, Nokia e Toshiba e
formou-se o SIG, uma empresa privada sem fins lucrativos para se concentrar no
desenvolvimento de uma especificação aberta para a tecnologia sem fio bluetooth
(GHISI, 2007). Em julho de 1999, o SIG publicou a versão 1.0 da especificação
bluetooth. Em abril de 2009 foi anunciado a última versão do bluetooth (Bluetooth
Special Interest Group, 2009).
        A principal tarefa do SIG é publicar as especificações do bluetooth e
disseminar o uso da tecnologia. O trabalho conjunto dessas empresas em prol do
desenvolvimento da tecnologia seguiu um caminho onde houvesse uma rápida
aceitação de mercado. Para tal, mantém o protocolo aberto e compatível a muitas
tecnologias de mercado (Bluetooth Special Interest Group, 2009).
        Hoje o SIG inclui as empresas promotoras: Ericsson, Intel, Lenovo, Microsoft,
Motorola, Nokia e Toshiba, e aproximadamente 12 mil empresas adeptas e
associadas. Essas empresas envolvidas no consórcio estão fazendo um esforço
considerável em prol da disseminação da tecnologia (Bluetooth Special Interest
Group, 2009).
        O SIG através de cooperação com as diversas empresas que formam o
consórcio lançou uma especificação industrial aberta, definindo assim como deve ser
o comportamento do padrão e a compatibilidade com os mais diferentes produtos.
Ela define o sistema completo, partindo do hardware até as camadas mais altas de
software.
        A especificação contém duas partes, o núcleo e os perfis. O núcleo define as
características do rádio e a pilha de protocolos para a comunicação entre dois
dispositivos. Os perfis especificam quais protocolos da pilha devem ser
implementados para determinada aplicação (THOMPSON; KLINE; KUMAR, 2008).
        O SIG lança de tempos em tempos novas especificações para o protocolo,
existindo assim varias versões do bluetooth, conforme tabela 1.
20



                             Tabela 1 - Versões do bluetooth

Data       Versão                              Características

1999         1.0               Primeira versão, problemas de incompatibilidade.
2001         1.1           Acontece o reconhecimento pela IEEE do padrão 802.15.1.
                      Compatibilidade, aumento de velocidade para 1 megabit por
2003         1.2
                      segundo (Mbps), Frequency Hopping Spread Spectrum (FHSS).
                      Aumento de velocidade para 3 Mbps, melhorias no broadcast e
2005     2.0 + EDR
                                                  multicast.
2007     2.1 + EDR              Melhoria na segurança e consumo de energia.
                       Considerável aumento de velocidade para 26 Mbps ao utilizar
2009      3.0 + HS
                                  novo protocolo 802.11, o mesmo do Wi-Fi.


        As versões 1.0 e 1.1 foram responsáveis por dividir a especificação em duas
partes, uma responsável por descrever o núcleo do padrão e outra descrevendo os
perfis. A versão 2.0 + Extended Data Rate (EDR) multiplicou por três a taxa
transmissão, aumentando a velocidade para 3 Mbps, graças à mudança no padrão
de modulação do protocolo. A última versão do bluetooth é a 3.0, lançada na
especificação SIG em 21 de abril de 2009, chamada High Speed Technology (HS).
Nela há uma mudança significativa ao passar a utilizar o protocolo 802.11(Wi-Fi),
aumentando sua velocidade para 26 Mbps (Bluetooth Special Interest Group, 2009).


2.3.2    Infra-Estrutura


        Uma rede de computadores é formada por um conjunto de dispositivos
capazes de trocar informações e compartilhar recursos, interligados por um sistema
de comunicação (KLEINSCHMIDT, 2004). No caso de redes sem fio, ou wireless, há
troca de dados e informações sem o uso de cabos ou qualquer outra forma de
conexão física. Neste caso a transferência de informações acontece através do ar
como meio físico de propagação, por meio de ondas eletromagnéticas, infravermelho
ou por laser. E para que estas redes sem fio sejam consideradas móveis, o
dispositivo devem ser capaz de se deslocar durante a comunicação sem que esta
seja interrompida (KLEINSCHMIDT, 2004).
21



      As redes sem fio são divididas e classificadas de acordo com seu mecanismo
de rotas, através do modo infra-estruturado ou ad hoc (BARBOSA, L., 2006).
      Uma rede infra-estruturada é quando dispositivos se comunicam diretamente
com o ponto de acesso central, como é o caso de redes celulares e redes Wi-Fi. Em
redes ad hoc, não existe um ponto de acesso central, e os dispositivos se
comunicam diretamente com os dispositivos mais próximos. Este é o caso de redes
bluetooth, que permite a criação de redes pessoais sem fio, uma rede de curto
alcance que faz conexão entre vários tipos de dispositivos (KLEINSCHMIDT, 2004).
     A tecnologia bluetooth permite a formação de dois tipos de redes possíveis em
uma topologia de rede conhecida como ad hoc. Uma piconet ou uma scatternet.
Uma piconet é formada de no mínimo dois e no máximo oito dispositivos bluetooth,
onde o dispositivo que inicia uma conexão se torna o mestre e os demais são
chamados de escravos. Os escravos não podem se comunicar entre si, logo toda
comunicação passa pelo controle do mestre. Numa piconet existe apenas um
mestre, e seus escravos podem participar de outras piconets com o esquema de
multiplexação de tempo. Nesse meio um mestre de uma piconet pode ser um
escravo em outra. Já uma scatternet é o conjunto de várias piconets. Essas redes
podem ser formadas por várias piconets e a comunicação entre elas é feita pelos
dispositivos mestre de cada piconet (TAVARES; LOBATO; WESTPHALL, 2004).
     Segundo Sacks (2003), nesse tipo de arquitetura, o dispositivo que assume o
papel de mestre fica encarregado de executar funções de gestão de recursos de
rádio no canal, coordenando e orientando através de instruções e comandos os seus
respectivos   escravos.   Os   dispositivos   restantes,   os   escravos,   ao   serem
sincronizados ao mestre, executam operações coordenadas pelo mestre.
     O número máximo de dispositivos que podem fazer parte de uma rede piconet
são oito dispositivos, sendo que um necessariamente deva ser um mestre e os
restantes escravos. Como esse número é pequeno, implementou-se a tecnologia a
técnica de scatternet, que permite a sobreposição de vários piconets, aumentando
assim a capacidade da rede. O limite máximo de sobreposições é de dez piconets.
      Na figura 1 pode-se ver o exemplo de duas redes piconets formando uma
rede scatternet.
22




                       Figura 1 – Scatternet formada por duas piconets
                             Fonte: Adaptado de Boemo (2007)



        Na figura 1 é possível notar a presença de duas redes piconets, cada uma
contendo um dispositivo mestre. Ao se estabelecer uma ligação direta entre o mestre
e seus escravos temos uma condição de conexão ad hoc que é chamada de
piconet. Nota-se a interposição de duas redes piconets, formando uma scatternet.
         A scatternet se forma quando um dispositivo participa de duas ou mais
piconets. Um dispositivo bluetooth pode atuar como mestre ou escravo, já que o
hardware utilizado é o mesmo (PRIESS, 2003).




2.3.3     Protocolos


         Alguns autores como Horstmann (2002) e Goelzer (2006) dividem a pilha de
protocolos de acordo com sua função. Assim protocolos como rádio, banda base,
Link Manager Protocol (LMP), Logical Link Control and Adaptation Protocol (L2CAP)
e o Service Discovery Protocol (SDP) são considerados protocolos principais, o
núcleo do sistema. O RS-232 Serial Cable Emulation Profile (RFCOMM) é o
protocolo de substituição de cabos. E existem ainda os protocolos adotados ou
suportados, como o Point-to-Point Protocol (PPP), Transmission Control Protocol /
Internet Protocol (TCP/IP), Wireless Application Protocol (WAP) e Object Exchange
23



(OBEX). Por fim, o bluetooth ainda dá suporte a protocolos de controle e
especificação de telefonia.
      Apesar de estarmos citando todos os possíveis protocolos e perfis, só serão
explicados os que terão utilização direta no trabalho. Por exemplo, o OBEX não será
explicado, apesar de fazer parte da especificação.
      Já autores como Tanenbaum (2003) dividem a arquitetura bluetooth e as suas
características técnicas em especificações chamadas de núcleo e perfis. O núcleo
define como o sistema funciona. Os perfis determinam como os diversos elementos
do sistema podem ser utilizados. Assim a divisão constaria de uma camada de rádio
contendo o transceptor que estabelece comunicação entre dispositivos; uma
camada de banda base, que seria a parte computacional, com memória e
processador, que interage com hardware; uma camada de pilha de software que
administra a comunicação entre banda básica e os aplicativos: e por fim a camada
do programa aplicativo, que seria o software que promove a interface do sistema
com o usuário. O núcleo do bluetooth pode ser dividido em quatro camadas, L2CAP,
LMP, banda base e camada de rádio. Eles podem ser implementados no hardware e
firmware do dispositivo. O que eliminaria a necessidade do Host Controller Interface
(HCI), já que o L2CAP e a banda base comunicam-se diretamente. Contudo o mais
comum é que o L2CAP seja implementado em software, surgindo assim a
necessidade da camada HCI para comunicar o L2CAP com as camadas inferiores
(TANEMBAUM, 2003).
       Siqueira (2006) divide o bluetooth em três grupos lógicos: grupos de
protocolos de transporte, grupo de protocolos de middleware e grupo de aplicação.
O grupo de protocolos de transporte possui camadas de rádio, banda base, LMP e
L2CAP. Estas permitem que dispositivos bluetooth localizem outros dispositivos e
gerenciem links físicos e lógicos para as camadas superiores.          O grupo de
protocolos de middleware possui camadas de protocolos de padrões industriais e
outros desenvolvidos por terceiros. Estes protocolos permitem que aplicações já
existentes e novas aplicações operem sobre bluetooth. Esses protocolos de padrões
industriais incluem PPP, TCP/IP, WAP. Outros protocolos desenvolvidos pelo próprio
SIG também foram incluídos como o RFCOMM, o TCS e o SDP. Por fim, o grupo de
aplicação consiste das próprias aplicações que utilizam links bluetooth. Estas podem
incluir aplicações legadas ou aplicações orientadas a bluetooth.
24



      Outro método de divisão, encontrado em Priess (2003) e Sacks (2003) é
classificar a pilha de protocolos bluetooth em duas porções de camadas. As
camadas superiores formadas pelos protocolos L2CAP, RFCOMM, OBEX, e os
perfis, e as camadas inferiores formadas pelo rádio, banda base, controlador de
enlace e gerenciador de enlace. Neste caso fica claro uma divisão da pilha de
protocolos bluetooth com ênfase nas camadas de hardware e software. Assim a
camada de hardware e firmware representam as camadas de rádio, banda base e
LMP. O HCI serve de ligação e as camadas superiores como L2CAP, RFCOMM e as
demais são desenvolvidas em software. Na figura 2 é mostrado um exemplo da pilha
de protocolos e a seguir a descrição de cada camada.




                   Figura 2 – Pilhas de protocolos da arquitetura bluetooth
                                   Fonte: PRIESS (2003)



      •   Rádio: essa camada é responsável pela comunicação no nível mais baixo,
o nível físico, responsável por modular e demodular os dados em frequências de
sinais de rádio para transmissão e captação no ar. É a camada de tráfego físico dos
dados, que ocorre a transmissão entre dois chips de rádio bluetooth. A especificação
da camada de rádio corresponde essencialmente a operações do transceptor
bluetooth, provendo compatibilidade entre os rádios e qualidade para o sistema. Sua
função é movimentar os bits entre os dispositivos mestre e escravos (THOMPSON;
KLINE; KUMAR, 2008).
25



       A tecnologia de rádio usada pelo bluetooth permite com que seu raio de
alcance não se limite a uma linha reta, mas a um perímetro num raio de alcance que
varia, de acordo com a classe do dispositivo, entre 1, 10 e 100 metros (SACKS,
2003). O transmissor de cada aparelho pode ser classificado em três diferentes
classes de potência e transferência de dados, que por sua vez leva em consideração
o alcance da onda de rádio dos dispositivos (MELO, 2005), conforme tabela 2.


                   Tabela 2 – Classes de dispositivos bluetooth
        Classe      Alcance                      Potência
           1     ~ 100 metros    1 mW (0dBm) e 100 mW (20dBm)
           2     ~ 1 0 metros    0.25 mW (-6dBm) e 2.5 mW (4dBm)
           3     ~ 1 metro       Até 1 mW (0dBm)


      Os dispositivos classe 1 foram desenvolvidos para grandes distâncias,
podendo atingir nominalmente 100 metros com uso de potência máxima de 100
miliwatts (mW), o que decorre num consumo de energia na casa dos 20 power ratio
in decibels (dBm). Contudo, para se atingir o alcance máximo de 100 metros os dois
dispositivos devem ser de classe 1 (MELO, 2005). Já um dispositivo classe 2 possui
alcance médio de 10 metros com potência de 2.5mW e consumo de 4 dBm. Aqui são
encontrados a maioria dos dispositivos presentes no mercado. Por fim existem
dispositivos de classe 3, os mais fracos do mercado, podendo atingir apenas 1
metros são destinados a curtíssimo alcance. Atinge potência máxima de 1mW com 0
dBm de consumo (SACKS, 2003).
      O bluetooth é um protocolo de rádio com interface universal que opera na
frequência de rádio não licenciada ISM destinada a aplicações industriais, médicas e
científicas cuja faixa destinada é de 2,4 GHz. Esta faixa de frequência vai de 2400
MHz a 2483,5 MHz (GRAZZIOTIN, 2006).
      Essa banda é formada por vários canais formados pela técnica de
espalhamento espectral. Isso é possível porque no intervalo de banda usado pela
tecnologia, 2400 MHz a 2483,5 MHz, há um total de 79 frequências disponíveis,
começando pelo canal 0 ao 78, cada uma com 1 MHz. Cabe deixar claro que cada
transmissão ou recepção de pacotes de dados que ocorrem em um único intervalo
de tempo, utilizam uma única frequência, porém com a técnica de salto, a faixa total
utilizada pela tecnologia é maior, contendo 79 frequências possíveis para troca de
26



dados. Essas 79 frequências diferentes possibilitam 1600 variações por segundo
para evitar ou reduzir colisões com outros tipos de dados que circula na mesma faixa
de banda de rádio. A tecnologia permite com que o dispositivo mestre fique saltando
de frequência para evitar colisões, e após o salto, sincroniza o restante dos escravos
(PRIESS, 2003).
      O consórcio SIG definiu os modos de modulação como: um modo básico e
obrigatório, chamado de Basic Rate que usa modulação Frequency Modulation (FM)
e um modo opcional chamado de Enhanced Data Rate (EDR) que usa modulação
Phase Shift Keying (PSK), que aumentou taxas de 1 Mbps para 2 e 3 Mbps (SACKS,
2003). Contudo, a última especificação trouxe mudanças significativas nesses modos
de modulação. Segundo release 3.0 a tecnologia passa a usar High Speed
Technology e a utilizar o protocolo 802.11 aumentando sua taxa de velocidade para
26 Mbps (Bluetooth Special Interest Group, 2009).
      O modo de transmissão acontece por espalhamento espectral conhecido
como Spread Spectrum, que faz uso da técnica de salto de frequência chamada
Frequency Hopping, que permite com que um algoritmo alterne entre as frequências
numa velocidade de 1600 saltos por segundo, para assim evitar erros, colisões,
interferência. Neste caso, com 1600 saltos por segundo, daria um salto a cada
0,000625 segundos, ou 625 microsegundos. Essa duração é conhecida como time
slot, ou seja, uma unidade de tempo no sistema (SACKS, 2003).


      • Banda Base: é uma camada física da pilha de protocolos que é
responsável pela gerência da banda base através de controle das conexões físicas
via rádio, gerência de enlace montando os pacotes e formatação dos dados de
transmissão recebidos e enviados para a camada de rádio. Além disso, ela é
responsável pela sincronização da comunicação na piconet gerenciando o frequency
hoppig e controlando a seleção de saltos. Além de fazer o controle de erros e ser
responsável pela segurança dos dados (GHISI, 2007).
      Esta camada também é responsável pelo descobrimento dos dispositivos,
através de page e inquiry para acessar os dispositivos, formação do link, formato e
controle de pacotes e pelos canais lógicos e físicos (GRAZZIOTIN, 2006). Definindo
assim como os dispositivos bluetooth localizam e se conectam a outros dispositivos.
Funcionando como um administrador de enlace síncronos e assíncronos fazendo
rotinas de conexão.
27



      Na realidade a banda base monta os pacotes de dados vindos dos níveis
superiores para enviar a camada de rádio, assim como faz o contrário, ao receber
bits da camada de rádio e montar pacotes para enviar a camada superior
(MONTEIRO, 2006). A função da camada é transformar um fluxo de bits em frames.
Ou seja, uma sequência de bits em quadros. Na transmissão dos frames são
estabelecidos links, onde cada quadro é transmitido sobre um canal entre o mestre e
o escravo (FIGUEIREDO, 2008).
      O canal físico é subdividido em unidades de tempos denominados slots. Os
dados são transmitidos entre dispositivos bluetooth em pacotes que são
posicionados nestes slots. Dentro de um canal físico, um link físico é formado entre
quaisquer dois dispositivos, e transmitem pacotes em ambas as direções. Existe
um link físico entre cada escravo e mestre. Contudo não há formação de links físicos
diretamente entre escravos.
      Geralmente em um intervalo de tempo é enviado um pacote de dados.
Contudo em determinados sistemas o envio de um único pacote pode levar mais de
uma unidade de tempo, neste caso o pacote é transmitido antes de acontecer o
salto, estendendo a unidade de tempo padrão.


      • Link Manager Protocol (LMP): é responsável pelo controle e configuração
das conexões entre os dispositivos, gerenciando todos os aspectos funcionais que
envolvem a ligação entre eles (Bluetooth Special Interest Group, 2009). É
responsável pelos enlaces entre os dispositivos (GRAZZIOTIN, 2006).
      Esse controle de enlace é feito através de mensagens do protocolo,
interrogações e respectivas respostas, que são interpretadas pelos gerenciadores
dos dispositivos destinatários (SACKS, 2003). O gerenciador de enlace (LMP) traduz
os comandos da interface de controle do host (HCI) que ele recebe, em operações
na camada de banda de base. Ou seja, as mensagens produzidas no LMP são
filtradas e interpretadas pelo link controller da camada banda base. Protocolo fica
responsável pela configuração e gerenciamento das propriedades do meio de
transmissão entre os dispositivos, nas conexões da banda base (GHISI, 2007).


      • Host Controller Interface (HCI): prove um método de acesso às
funcionalidades das camadas mais baixas, LMP e banda base, através de uma
28



interface de controle e parâmetros de configuração (Bluetooth Special Interest
Group, 2009).
      Assim a camada provê a comunicação entre o controlador host e o módulo
bluetooth, caracterizando uma ponte entre o software e o hardware, fazendo uma
abstração entre o hardware das camadas inferiores e o software das camadas
superiores (SACKS, 2003).
      Melo (2005) classifica a camada em: HCI firmware, que implementa os
comandos para a parte do hardware, acessando banda base e o LMP. O HCI Driver,
que é a parte em software do modulo de driver no servidor que recebe notificações
de eventos HCI. E o Host Controller Transport Layer, que é a camada por onde o
HCI firmware e o HCI Driver se comunicam. É o canal de transporte que comunica o
hardware com o software. Geralmente sendo do tipo Universal Serial Bus (USB).


      • Logical Link Control and Adaptation (L2CAP): faz a interface com as
camadas de nível superior e os protocolos de transporte de camadas inferiores,
escondendo os detalhes de implementação da camada de rádio e banda base,
sendo responsável pelos tipos de aplicações capazes de rodarem sobre redes
bluetooth (GHISI, 2007). Entre as funções do protocolo temos a multiplexação e
desmultiplexação, segmentação e remontagem de pacotes, qualidade de serviço e
criação de canais lógicos entre camadas acima e abaixo. Esta camada é usada
apenas para enlaces do tipo Asynchronous ConnectionLess (ACL) e usa conceitos
de canais lógicos, onde cada um é identificado por um identificador local chamado
de Channel Identification (CID) ( KLEINSCHMIDT, 2004).
      A camada faz o processo de segmentação de pacotes, pelo fato da camada
inferior banda base permitir carga baixa em seus pacotes, enquanto as camadas
superiores permitem pacotes de tamanho maior. Logo esses pacotes devem ser
segmentados, fragmentados em vários outros pacotes permitindo assim a
transmissão (GRAZZIOTIN, 2006).
      O processo de multiplexação é a propriedade do protocolo de pegar os
pacotes de dados da camada de banda base e enviar para a camada de aplicação
correta acima. Basicamente a camada recebe os pacotes das camadas superiores e
dividem eles em frames para que ocorra a transmissão e a remontagem nos
dispositivos de destino. O processo de desmultiplexação é responsável por
29



fragmentar e remontar pacotes de dados que recebe das camadas acima no formato
esperado pelas camadas abaixo (MONTEIRO, 2006).


        • Rfcomm: a camada RS-232 Serial Cable Emulation Profile é o protocolo
de transporte que emula uma configuração de cabo serial sobre o protocolo L2CAP
e é usado para fornecer transferência de dados serial suportando diferentes
aplicações legadas que façam uso da porta serial, além de também permitir
implementações de protocolos mais complexos sobre ele, e ainda dos perfis
bluetooth. RFCOMM liga as camadas inferiores da pilha de protocolo bluetooth
através da camada L2CAP (GHISI, 2007).
        É através dessa camada que se implementou a comunicação no presente
trabalho e será posteriormente explicado com mais detalhes.


        • Service Discovery Protocol (SDP): é a camada de descobrimento de
serviços comum em todo dispositivo bluetooth. Serve para divulgar os serviços de
um dispositivo mestre quando um dispositivo escravo entra na área de cobertura do
sinal bluetooth. Ele é um protocolo do tipo cliente-servidor, onde o servidor mantém
uma lista de serviços e os clientes podem obter acesso a esses serviços
(KLEINSCHMIDT, 2004).
        O dispositivo bluetooth mantém as informações dos serviços armazenados
em um Service Discovery Database (SDDB) que possui atributos com registros que
os descrevem. Esses atributos são representados por um número hexadecimal
chamado de identificador de atributo (GHISI, 2007). O Universally Unique Identifier
(UUID) é o tipo de dado usado para identificar os atributos de serviços, protocolos e
perfis. Um UUID é um identificador universal que garante ser único em um tempo e
espaço determinado. Na identificação de um serviço a Java Specification Requests
APIs for Bluetooth (JSR-82) dispõe da classe Javax.bluetooth.UUID para definir
esses identificadores. Esse número deve ser reconhecido tanto pelo mestre quanto
pelo escravo, servidor ou cliente, já que é através dele que será realizada a busca
por pelo serviço (POVOA, 2005).


2.3.4    Perfis Adotados


        A especificação do bluetooth definiu aplicações especificas suportada pelas
30



pilhas de protocolos. Formando uma gama de perfis para diferentes tipos de tarefas.
      Os perfis são uma combinação de protocolos e procedimentos para uma
implementação de serviços específicos e para diminuir os riscos de falhas de
interoperabilidade entre equipamentos de fabricantes distintos, permitindo assim
uma comunicação confiável e descrevendo como as implementações devem ser
utilizadas nos diferentes ambientes onde se faz uso da tecnologia, atingindo assim
diversos cenários de uso (FIGUEIREDO, 2008).
      A figura 3 exemplifica os perfis suportados pelos dispositivos com bluetooth.




                             Figura 3 – Pilha de perfis bluetooth
                        Fonte: Bluetooth Special Interest Group (2009)



      O presente trabalho não tem por objetivo fazer uma descrição ou analise
completa dos perfis bluetooth, até mesmo porque os desenvolvedores do consórcio
SIG trabalham para que esse numero seja sempre crescente.
      O que será visto a seguir é uma análise dos principais perfis da tecnologia e
os perfis que foram utilizados durante a implementação do presente trabalho.
      A tabela 3 foi adaptada de Bluetooth Special Interest Group (2009) mostra os
principais perfis e protocolos utilizados no presente trabalho.
31



                              Tabela 3: Perfis bluetooth
  Perfis                                  Características
  GAP        Perfil de acesso genérico. Base para os demais perfis.
   SDA       Descreve como usar o SDP para descobrir serviços em um dispositivo
   SPP       Descreve como configurar portas seriais virtuais e conectar 2 dispositivos


Protocolos    Os perfis acima funcionam em conjunto com os protocolos abaixo
RFCOMM       Emula configurações de cabo serial e status de uma porta serial RS-232 e
             é usado para fornecer transferência de dados serial
   SDP       Protocolo de descoberta de Serviços.


      Abaixo segue a descrição dos principais perfis utilizados no presente trabalho.


      • Generic Acess Profile (GAP): é um perfil básico de transporte onde os
demais são construídos. O GAP é à base de todos os outros perfis, pois sobre ele os
outros perfis são aplicados. Define os procedimentos genéricos relacionados ao
estabelecimento de conexões entre dois dispositivos, incluindo a descoberta de
dispositivos, a gestão e configuração de links, e os procedimentos relacionados com
a utilização de segurança. Logo controla a ligação entre dois dispositivos,
semelhante ao que ocorre na camada de rede do modelo tradicional (THOMPSON;
KLINE; KUMAR, 2008).


      • Service Discovery Application (SDA): descreve as operações básicas
necessárias para que serviços sejam descobertos. Este perfil define os protocolos e
os procedimentos a ser usado por aplicativos para localizar serviços em outros
dispositivos com bluetooth habilitado (FIGUEIREDO, 2008). O SDA descreve como
um aplicativo deve usar o SDP para descobrir serviços em um dispositivo remoto,
através de inquiry e inquiry scan via SDP. As idéias contidas nas especificações
SDA somam-se as previstas no GAP, no SDP, e em outros processos básicos de
detecção de dispositivos. O SDA define dois papéis, um para o dispositivo local que
inicia o processo de descoberta de serviços, e o dispositivo remoto que pode ser
qualquer dispositivo que participa no processo de descoberta de serviços,
32



respondendo às indagações de serviço geradas por um dispositivo local (Bluetooth
Special Interest Group, 2009).


        • Serial Port Profile (SPP): é um perfil de transporte que suporta a
emulação de uma configuração de cabo serial usando o protocolo RFCOMM para
prover esse serviço. O SPP facilita a comunicação entre dispositivos bluetooth,
fornecendo um fluxo baseado em interface para o protocolo RFCOMM, que está
sobre o protocolo L2CAP, emulando uma conexão serial RS-232 (Sun Developer
Network, 2009).
        Foi desenvolvida para que programas antigos pudessem ser usados sem
necessidade de reprogramação. Sendo assim, esse perfil permite que, sem
nenhuma modificação, aplicações legadas possam utiliza o bluetooth como se o
mesmo fosse uma conexão a uma porta serial. Esse perfil serve de base para vários
outros, bem como dar suporte a conexões PPP para acesso local entre dois
dispositivos (THOMPSON; KLINE; KUMAR, 2008).
        Seu uso se restringe a computadores desktop e laptops. Um cenário típico de
uso seria dois dispositivos, como dois notebooks, ligados através da tecnologia
bluetooth emulando portas seriais virtuais, já que o perfil SPP define como configurar
portas seriais virtuais e conectar dois dispositivos bluetooth (Bluetooth Special
Interest Group, 2009).


2.3.5   Estados e Modos de Conexão entre Dispositivos


        Mesmo que uma rede bluetooth trabalhe com uma tecnologia sem fios,
apenas uma única ligação física pode existir entre dois dispositivos bluetooth.
Apesar de ser apenas uma única ligação física, pode haver várias ligações entre os
dois dispositivos. Semelhante à rede cabeada, onde existe apenas um cabo entre
dois dispositivos, mas ainda pode haver várias ligações entre estes dispositivos.
        Os dispositivos bluetooth são munidos da capacidade de descobrir novos
dispositivos nas proximidades da rede, além de descobrir os serviços disponíveis na
rede. Para isso todo dispositivo bluetooth tem associado a si um endereço e um
relógio interno com um contador, e durante a pesquisa, o dispositivo eu esta
33



pesquisando recebe os endereços bluetooth e as frequências dos dispositivos
encontrados, para assim identificá-los na rede (GHISI, 2007).
     Após acionado o bluetooth em um dispositivo móvel, o software inicia um
processo chamado de inquiry, onde o dispositivo varre a rede atrás de pontos de
acesso que estão próximos. Todos os pontos de acesso respondem com seu
endereço físico. Já que cada módulo bluetooth tem um endereço físico único no
mundo, gravado no momento da fabricação. O dispositivo móvel escolhe então um
destes pontos de acesso.
     Para se estabelecer uma ligação bluetooth é necessário que os dispositivos
efetuem um procedimento conhecido como pareamento, o que permite a criação de
um canal físico entre os dois dispositivos. O dispositivo que efetua os pedidos de
pareamento é o mestre, enquanto que o receptor dos pedidos é o escravo.
         Quando o dispositivo esta operando no modo de descoberta (inquiry scan) ele
se torna possível de ser descoberto pelo mestre. Para que o pareamento se
estabeleça, o dispositivo escravo deve estar com o bluetooth ativado, ou seja, ele
deve estar escutando os envios de pedidos do mestre. Assim que receba o pedido, o
escravo manda ao mestre uma resposta, este por sua vez, após confirmação, envia
ao escravo um pacote com o seu endereço bluetooth e com o relógio interno, este
pacote permite ao escravo tomar conhecimento de todas as informações para criar a
ligação entre os dois dispositivos. Esse processo é conhecido como paging, e é aqui
que o dispositivo móvel procura sincronizar-se com o ponto de acesso (GHISI,
2007).
         Estabelecido o link físico, ocorre a etapa da varredura e descoberta por
serviços disponibilizados. Essa busca utiliza o protocolo SDP, onde o cliente envia
requisições a um servidor, que por sua vez, envia as informações de serviços
disponíveis. Um identificador UUID é usado para identificar os serviços, protocolos,
perfis e demais informações do dispositivo (GRAZZIOTIN, 2006).
         Se for descoberto algum serviço, o protocolo L2CAP será criado
possibilitando assim a comunicação entre os dispositivos. Para que essa
comunicação ocorra com sucesso, o protocolo RFCOMM emula uma interface serial
sobre o canal L2CAP que permite trafego de dados. Na figura 5 pode-se observar
um exemplo padrão de procedimentos para conexão de dispositivos bluetooth.
34




                 Figura 4: Diagrama de procedimento de conexão bluetooth
                                 Fonte: MONCH (2007)



      Conformo o modelo apresentado na figura 4, um dispositivo A fica enviando
mensagens de busca por outros dispositivos. Esta etapa chama-se fase de
descobrimento (discovery). Um outro dispositivo B, que esteja na área de cobertura
do sinal, pode receber essa mensagem se estiver com esse serviço habilitado
(discoverable). O dispositivo B então responde a mensagem ao dispositivo A. Após
fase inicial de pesquisa, ocorre a fase de pareamento, onde o dispositivo A pede
uma senha (PIN) para o dispositivo B. Se a resposta de B coincide com o pedido de
A, os dispositivos estão pareados e podem iniciar a comunicação entre ambos
(MONCH, 2007).
      Conforme a explicação acima, percebe-se que um dispositivo bluetooth pode
operar em vários estados. Ele pode assumir um estado de espera (standby) ou
estado de conexão. Entre esses dois principais estados encontra-se estados
intermediários usados para estabelecimento de conexão e adicionamento de novos
dispositivos a rede. Entre esses podemos citar um estado de pesquisa (inquiry),
juntamente com a escuta de pesquisa (inquiry scan), um estado de resposta da
pesquisa (page) e escuta de chamada (page scan).
      A figura 5 exemplifica esse processo, além de visualizar os papeis do mestre
e do escravo.
35




                 Figura 5 – Estágios de comunicação num sistema bluetooth
                               Fonte: GRAZZIOTIN (2006)


      Conforme descrito acima, um dispositivo pode inicialmente assumir dois
estados: espera (standby) ou conectado. Antes de estar conectado a uma rede
piconet, diz-se que o dispositivo esta em estado normal. Neste estado de pré-
conexão o dispositivo pode assumir por default o estado de stanby, e a partir desse
assumir estados de page, page scan, inquiry scan ou inquiry, conforme figura 5
acima.
      Um dispositivo entra em estado standby ao ser ativado a função bluetooth. O
dispositivo assume então um método de consumo de energia, disparando
mensagens a cada 10ms a procura de dispositivos. A partir desse modo pode
assumir o estado de page ou inquiry.
      Quando um dispositivo mestre entra no modo inquiry, ele faz uma
investigação para identificar e descobrir, na sua área de cobertura, dispositivos
visíveis ao seu alcance. E assim colher informações pertinentes à futura conexão.
Neste caso o escravo deve estar no modo inquiry scan para ser visto.
      O mestre através do inquiry obtém uma lista de dispositivos em seu alcance,
assim como seus endereços. Inquiry possibilita ao dispositivo descobrir outros em
seu alcance, assim como o endereço e o clock. No estado de inquiry o dispositivo
mestre envia um tipo especifico de pacote para descobrir quais os dispositivos
36



presentes na sua área de alcance, com o objetivo de descobrir o endereço do
escravo (MARTINCOSKI, 2003).
        De tempos em tempos, o dispositivo vai para o estado inquiry scan para tentar
ser descoberto por outros dispositivos. Se receber algum pacote de inquiry enquanto
estiver neste estado, responderá com um inquiry response, onde mandará seu
endereço ao dispositivo que enviou o inquiry para que este tome conhecimento de
sua presença na rede.
        Logo após, o dispositivo mestre entra no estado de page, onde ocorre uma
convocação pelo dispositivo escravo que ira se conectar a rede piconet. Para tal o
mestre usa o endereço obtido anteriormente. O estado de page é usado para
estabelecer conexão com um futuro escravo cujo endereço seja previamente
conhecido. Nesse caso é estabelecida a conexão sem precisar passar pelo estado
de pesquisa, escuta da pesquisa e resposta da pesquisa. Isso se o mestre já tenha a
identificação do escravo a qual ele deseja se conectar. O dispositivo escravo deve
estar com o modo page scan habilitado para que responda a esta convocação
realizada pelo mestre. No estado de page scan o futuro escravo busca em sua área
de cobertura um futuro mestre no estado de page que esteja enviando o seu
endereço. Em caso de novas conexões, o dispositivo mestre não precisa passar pelo
modo inquiry, pois ele já conhece o endereço do escravo (MARTINCOSKI, 2003).
        Resumindo o processo de descoberta e conexão, o dispositivo mestre
executa inquiry e depois page, enquanto o(s) escravo(s) executa inquiry scan e page
scan. Durante uma operação, um canal físico de rádio é compartilhado por um grupo
de dispositivos que estão sincronizados a um clock comum e a um padrão de saltos
de frequência. Um dispositivo mestre provê assim a sincronização de referência.


2.2.6     Anatomia de uma Aplicação Bluetooth


        Basicamente o envio de dados para dispositivos móveis através do bluetooth
segue os seguintes princípios:
        • Pesquisa de dispositivos. Tanto um dispositivo servidor ou um cliente
podem fazer varredura na rede para achar novos dispositivos ou serviços. Para ser
encontrado, um dispositivo deve estar no modo de descoberta, inquiry scan.
        • Obtenção da lista de serviços nos dispositivos encontrados ou de um
serviço específico. Essa busca de serviços usa o protocolo SDP.
37



         • O dispositivo que esta efetuando a pesquisa recebe endereços bluetooth e
frequências dos dispositivos encontrados, permitindo assim sua identificação.
         • Pedido de envio para os dispositivos encontrados e que suportam o serviço
de envio de arquivos.
         • Envio de arquivos
         Após a análise desses passos básicos na comunicação bluetooth, precisa-se
aprofundar os conhecimentos envolvendo a tecnologias Java. Para tal segue abaixo
alguns critérios que envolvem a anatomia de um sistema usando esses ambientes.
Essa anatomia de aplicação bluetooth tem cinco partes (Sun Developer Network,
2009):
         •   A pilha de inicialização,
         •   Gerenciamento de dispositivos,
         •   A descoberta do dispositivo,
         •   A descoberta de serviços e comunicação.
         A pilha de inicialização é responsável por controlar o dispositivo bluetooth. Por
isso é necessário inicializar a pilha bluetooth antes de tudo. O processo de
inicialização compreende uma série de medidas cujo objetivo é fazer com que o
dispositivo fique pronto para a comunicação sem fio.
         A segunda parte da anatomia de uma aplicação bluetooth é o gerenciamento
do dispositivo. A Application Programming Interface (API) Java para bluetooth conter
algumas classes principais que servem no gerenciamento, como a classe Local
Device que representa o dispositivo, a classe RemoteDevice que representa um
dispositivo remoto dentro de uma faixa de alcance e fornece métodos para recuperar
informações sobre o dispositivo, como seu nome e endereço bluetooth. E ainda a
classe DeviceClass que serve para recuperar o tipo de dispositivo e os tipos de
serviços (Sun Developer Network, 2009).
         A terceira parte da anatomia de uma aplicação bluetooth é a descoberta de
dispositivos remotos, que permite encontrarem dispositivos e ter acesso às suas
capacidades. As classes DiscoveryAgent e DiscoveryListener            fornecem serviços
necessários para essa descoberta (Sun Developer Network, 2009).
         A quarta parte da anatomia de uma aplicação bluetooth é a descoberta de
serviços em dispositivos remotos. Após a descoberta de dispositivos, ocorre a
procura de serviços disponíveis, que nada mais são que aplicação bluetooth que
38



podem realizar uma tarefa especifica. A descoberta de serviços é muito parecida
com a descoberta de dispositivo, logo o uso da classe DiscoveryAgent também
fornece métodos para descobrir serviços em um servidor de dispositivo bluetooth, e
para iniciar as operações de serviços descoberta (Sun Developer Network, 2009).
      A quinta parte é o serviço de registro. Um serviço antes de poder ser
descoberto, deve primeiro ser registrado, ou seja, anunciado em um servidor de
dispositivo bluetooth. O servidor é responsável por criar um serviço de registro que
descreve o serviço oferecido, além de adicioná-lo ao SDDB, tornando o serviço
visível e disponível para os clientes em potencial. E por fim o servidor deve aceitar
as conexões de clientes em busca de serviços (Sun Developer Network, 2009).
      Essas características serão revistas e devidamente explicadas no capitulo 4,
que faz a análise do sistema desenvolvido.




2.4     Computação Ubíqua


      Santos (2009) propõem uma diferenciação entre os termos computação
ubíqua e computação pervasiva, classificando como computação pervasiva modelos
com dispositivos com alto grau de acoplamento e baixo grau de mobilidade,
enquanto que computação ubíqua seriam os modelos com dispositivos com alto grau
de acoplamento e alto grau de mobilidade.       Contudo afirma que apesar dessa
proposta de diferenciação, nota-se que não há uma distinção bem definida ou
unânime pela maioria dos autores. Por esse motivo o presente trabalho fará uso do
termo computação ubíqua.
      A computação ubíqua agrega um novo paradigma computacional baseado em
equipamentos de pequeno porte, com poder computacional adequado à sua função
e com ampla conectividade a quaisquer outros dispositivos (SANTOS, 2009).
      Segundo Araújo (2003), a característica primordial da computação ubíqua é
mover a computação para fora das estações de trabalho e computadores pessoais e
torná-la ubíqua a vida cotidiana das pessoas.
      Jorge Barbosa (2007) afirma que as pesquisas sobre computação móvel e
ubíqua possuem origem no crescente uso de dispositivos móveis e a ampla difusão
de redes sem fio. Sua analise nós leva aos estudos sobre mobilidade em sistemas
39



distribuídos que vêm sendo impulsionados pelo aumento dos dispositivos móveis
como os celulares, PDA e netbooks aliado ao uso de novas tecnologias de redes
sem fio como o Wi-Fi, o bluetooth e a rede celular.
      Araújo (2003) afirma que a convergência das tecnologias de redes sem fio,
dos microprocessadores cada vez menores e potentes e dos dispositivos móveis
pessoais está levando ao conceito de ubiquidade no qual dispositivos inteligentes,
móveis e estacionários, coordenam-se entre si para prover aos usuários acesso
imediato e universal a novos serviços, de forma transparente, que visam aumentar
as capacidades humanas permitindo uma maior produtividade e comodidade.
      Na computação ubíqua, a computação e seus diversos sistemas podem
interagir com o ser humano a todo o momento, não importando onde ele esteja,
constituindo um ambiente altamente distribuído, heterogêneo, dinâmico, móvel e
interativo. Nesse modelo, as aplicações precisam se adaptar ao ambiente,
compreender o contexto em que estão inseridas e estar disponíveis ao usuário, em
qualquer lugar e a qualquer tempo. Além disso, devem manter o acesso à rede e a
seu ambiente computacional, independente de dispositivo (ARAÚJO, 2003).
      Santos (2009) afirma que a computação ubíqua         pode    representar    uma
profunda evolução na área de tecnologia da informação, à medida que entre
no cotidiano das pessoas, tornando-se uma tecnologia intrínseca a vida dos
indivíduos. Nesse novo paradigma os sistemas irão coletar informações do ambiente
de acordo com o contexto em que estão embutidos e utilizarão estas informações
para construir modelos computacionais específicos.
      Santos (2009) defende ainda que a expectativa com a computação ubíqua é
de que esse quadro se altere drasticamente. Os computadores estarão presentes
em qualquer lugar, na cidade, no aeroporto, na         floresta ou na praia.     Esses
dispositivos estarão conectados entre si, formando uma grande rede ubíqua e irão
interagir buscando auxiliar nas atividades das pessoas, instituições e empresas, seja
em tarefas simples como acordar, participar de uma reunião, ou em tarefas mais
complexas como o monitoramento da saúde de uma pessoa, no controle de estoque
de uma grande empresa ou na manutenção de equipamentos.
      Para isso, há dois pontos chaves na computação ubíqua, o tamanho desses
dispositivos e seu contexto.       O tamanho é importante, pois quanto mais
imperceptível ao usuário (ou portátil) melhor. O contexto também é importante para
que o objeto saiba com quais outros dispositivos ele pode interagir.
40



2.4.1    Computação Consciente de Contexto


        Segundo   Jorge   Barbosa   (2007)   a   computação   ubíqua   vem   sendo
potencializada pelo uso de informações de contexto. O autor afirma que a
disseminação da computação ubíqua ocasionará um impacto significativo em
diferentes áreas de atuação da sociedade. Principalmente ao que se refere às
trocas de informações baseadas em contexto.
        No cenário das trocas de informações baseadas em contexto apoiada pela
computação ubíqua, novos pressupostos devem ser pensados, uma vez que os
dados podem ser acessados a qualquer momento e em qualquer lugar. O suporte
ubíquo permite a construção de softwares específicos relacionados com questões
dinâmicas do contexto do usuário (Barbosa, J., 2007).
        Jorge Barbosa (2007) afirma que a computação consciente do contexto teve
grande impulso com a mobilidade aliada à difusão da comunicação sem fio, o que
permitiu aos serviços computacionais serem disponibilizados em contextos
específicos.
        O ambiente controla as aplicações orientadas à informação pertinente,
possibilitando que o contexto seja vinculado com o usuário especifico. A informação
neste cenário é dinâmica e estão distribuídos em contextos.
        A computação consciente do contexto se beneficia do uso de informações
contextuais para aprimorar a interação com seus usuários. O contexto pode
descrever informações sobre localização, dispositivos, perfis de equipamentos e da
rede, atividades, objetos computacionais e outros. Assim, essa forma de
computação pode ser entendida como aquela em que as aplicações tomam
decisões de acordo com um contexto particular proveniente do ambiente e da
situação em que se encontram (Barbosa, J., 2007).
        Mas o mais importante é que em um cenário em que a informação encontra-
se disponível de forma globalizada, o desafio de um sistema ubíquo não consiste
somente em disponibilizar a informação para qualquer pessoa, em qualquer lugar e
com vários formatos, mas principalmente em disponibilizar a informação certa, no
momento certo e da maneira correta (Barbosa, J., 2007).
        Ao analisar os conceitos de tecnologia bluetooth e computação ubíqua
percebesse que existe uma relação muito próxima entre os dois. Nota-se que ao
afirmar que a computação ubíqua é voltada a interação de usuários juntamente a
41



ambientes fixos e móveis onde há obtenção de uma informação, processamento da
mesma e após a disponibilização do resultado ao usuário, fica claro a inter-relação
entre eles e a capacidade de utilização dessas tecnologias, principalmente em um
ambiente dinâmico onde a mobilidade do usuário é o requisito principal e sua
revisitação deva ser tratada pelo sistema a fim de melhorar a qualidade do sistema.




2.5   Trabalhos Relacionados


      Como pesquisa relacionada ao assunto, foi revisada uma serie de trabalhos
como artigos, monografias e teses, a fim de obter um bom referencial bibliográfico. A
seguir serão listados alguns trabalhos que tiveram importância na presente
monografia.
      A dissertação de mestrado Uma Arquitetura de Conectividade para
Dispositivos Móveis na Plataforma JAMP apresentada por Luiz Barbosa ao
programa de pós-graduação em ciência da computação da universidade de São
Carlos no ano de 2006 trata da criação de um framework de conectividade num
ambiente Java e bluetooth, onde um dispositivo móvel faz uso de serviços presentes
em um computador desktop remoto usado como ponto de acesso. Esse trabalho
serviu de base teórica e referencial para o estudo das tecnologias Java e bluetooth.
Além de importante fonte de material que relaciona computação ubíqua e bluetooth.
      Outro trabalho que aborda sobre o assunto é Sistema de Gerenciamento de
Redes e Processos Através de Computadores Portáveis via bluetooth, apresentada
por Anelise Godolphim Sacks ao programa de graduação em ciência da computação
da universidade federal do Rio de Janeiro no ano de 2003. O trabalho serviu para
embasamento teórico sobre tecnologias usadas para comunicação ponto a ponto
entre dispositivos móveis e servidores. Abordando conceitos como protocolo,
transferência e armazenamento de informações. O trabalho serviu de base para o
referencial bibliográfico relacionado ao bluetooth, seus protocolos e infra-estrutura.
Por fim, mas não menos importante, faz-se referência ao trabalho Utilizando
Dispositivos Móveis e Bluetooth para Aplicação de Avaliação em Meio Digital de
Leydson Pontes Ferreira apresentado como parte dos requisitos para a obtenção do
Título de bacharel em engenharia de computação, pela universidade federal do Rio
42



Grande do Norte. No trabalho o autor faz uso da tecnologia bluetooth e Java em
meio móvel, agregado funções a um ambiente de ensino à distância. O ambiente
usado foi muito semelhante ao trabalho atual por fazer uso do Windows juntamente
com Bluecove do lado do servidor desktop e fazer uso do Connected Limited Device
Configuration (CDLC), Mobile Information Device Profile (MIDP) e JSR-82 do lado do
cliente móvel. O trabalho se diferencia dos demais por abordar um ambiente muito
parecido com o projeto o qual se deseja implementar, além de ter uma boa
qualidade bibliográfica e exemplos muito bem descritos dos fontes.
43



3     DESENVOLVIMENTO PRÁTICO


       Este capítulo tem como objetivo demonstrar como foi desenvolvida a
aplicação que faz uso do bluetooth para consulta de dados em um contexto
educacional.


3.1 Tecnologias Empregadas


       Desenvolver aplicações móveis baseadas em contexto consiste em projetar,
desenvolver e implementar softwares dentro de um contexto onde eles possam se
tornar válidos. Para concretizar e fundamentar o estudo se desenvolveu uma
interface de apoio capaz de permitir o acesso a informações por meio de dispositivos
móveis e com o uso do protocolo bluetooth. Com isso se pretende disponibilizar uma
opção de consulta móvel a informações tidas como pertinentes em um ambiente
educacional, o que permitirá ao aluno fazer consulta a uma base de dados, em
qualquer lugar, desde que dentro da área de cobertura da tecnologia bluetooth, e
não apenas através de um desktop e uma rede fixa. A aplicação construída tem
como objetivo demonstrar na prática como funciona o protocolo de transferência e
comunicação sem fio bluetooth entre dispositivos móveis e servidores de dados.
Assim como fazer uma demonstração de uso dos principais recursos e tecnologias
envolvidas no projeto.
       Diversas ferramentas podem ser usadas como solução para programação de
dispositivos móveis usando bluetooth e Java. De um modo geral, as tecnologias
envolvidas no projeto podem ser divididas em tecnologia para o cliente e tecnologia
para o servidor. A tabela 4 retrata o ambiente escolhido para o projeto.


                 Tabela 4: Ambiente de desenvolvimento do projeto
    Sistema         Windows 7        Domínio de mercado, versão com winsock.
Linguagem                Java        Melhor opção para trabalhar com bluetooth.
     IDE             NetBeans        Excelente desempenho, livre.
API ligação          Bluecove        Permite uso do bluetooth em desktops
Dispositivo          Celulares       Devem possuir bluetooth e suportar Java
  Móveis
44



      A escolha pelo sistema operacional da Microsoft Windows 7 se deve pelo fato
deste possuir a pilha de protocolo bluetooth conhecida por Microsoft Bluetooth
Winsock que liga o sistema operacional ao dispositivo de rádio bluetooth, a mesma
presente no sistema operacional Windows XP com Service Pack 2 (SP2). A
linguagem de programação Java para implementar a comunicação bluetooth entre o
servidor e o cliente, juntamente com a Integrated Development Environment (IDE) de
programação NetBeans, e por fim a biblioteca que permite uso do Java com o
bluetooth no ambiente desktop, o Bluecove. A figura 6 apresenta uma visão geral do
ambiente proposto.




                             Figura 6: Visão geral do ambiente


      A típica pilha de protocolos bluetooth para desenvolvimento Java do lado do
servidor pode ser visto na figura 7 abaixo.
45




              Figura 7: Visão geral de camadas envolvidas no servidor bluetooth
                          Fonte: Adaptado de Luiz Barbosa (2006)


      A figura 7 exemplifica a divisão do protocolo, bem como as tecnologias
usadas no projeto do lado do servidor. As camadas de baixo são desenvolvidas em
hardware e firmware, enquanto as camadas acima são desenvolvidas em software.
Na camada de rádio bluetooth foi usado um adaptador USB bluetooth V2.0 modelo
ES-388 do fabricante Cambridge Silicon Rádio Ltd. O sistema operacional usado foi
o Windows 7. Presente no ambiente existe ainda a biblioteca Bluecove versão 2.1.0,
ligando a pilha winsock do sistema à linguagem de programação Java
implementando partes do framework Java Specification Requests 82 (JSR-82) para
ambientes desktops. Na verdade só podemos fazer uso do bluetooth em um
ambiente desktop porque o Bluecove implementa a API JSR-82, além disso seu uso
depende da pilha oferecida pelo sistema operacional, permitindo uma comunicação
entre um servidor e um cliente (GOELZER, 2006).
      A linguagem de programação escolhida foi a Java, em suas versões Java 2
Micro Edition (J2ME) para o aplicativo cliente e Java 2 Standard Edition (J2SE) para
o sistema servidor, juntamente com o ambiente de desenvolvimento Java SE
Development Kit (JDK) 5.0 e por fim o IDE de desenvolvimento Netbeans 6.8 para
construção dos aplicativos.
46



3.1.1   Java


        Buscando por uma linguagem de programação para dispositivos móveis,
constatou-se que uma das melhores opções seria a utilização da linguagem Java,
pelos seguintes fatores: portabilidade independe de marcas, modelos ou sistema;
suporte a sistemas distribuídos; relativa velocidade de desenvolvimento e facilidade
de programação; o custo, já que o Java é uma linguagem livre e a grande
quantidade de IDEs e APIs para os desenvolvedores.
        Luiz Barbosa (2006) relata a divisão da plataforma de desenvolvimento Java
em três grupos, tendo como enfoque o tipo de ambiente para o qual se deseja
desenvolver:
        • O Java Enterprise Edition (J2EE) é a plataforma Java voltada para
desenvolvimento em redes, como a internet e intranets. Contém bibliotecas
especialmente desenvolvidas para o acesso a servidores, a sistemas de e-mail, a
banco de dados.
        • O Java Standard Edition (J2SE) é o ambiente de desenvolvimento voltado
a estações de trabalho, como computadores desktops e notebooks. Esse é o
ambiente utilizado para implementar o programa servidor.
        • O Java 2 Micro Edition (J2ME) é o ambiente de desenvolvimento para
dispositivos móveis ou portáteis, como PDA, telefones celulares e smartphones. Foi
utilizado para implementar o programa cliente.
        Para fazer uso da linguagem de programação Java, num ambiente do desktop
com     uso    do   sistema   Windows,   utilizou-se   um   ambiente   integrado   para
desenvolvimento de software (IDE) conhecido como Netbeans, em sua versão 6.8. O
ambiente permite uma abstração no desenvolvimento de sistemas usando como
base a linguagem Java. Sua escolha se deve pelo fato de ser uma das melhores
tecnologias livres para programação de softwares.
        Para criação e testes no ambiente J2ME fez-se uso do Java Wireless Toolkit
(WTK), um conjunto de ferramentas, desenvolvido pela Sun Developer Network
(SUN), para criação de aplicações Java para dispositivos portáteis, e que contém
ferramentas para criação de aplicações, utilitários e um emulador de dispositivos
móveis. Por razões desconhecidas, o emulador não se comportou da maneira
esperada, portanto os testes foram feitos em meio real através do telefone celular
Nokia modelo 5130, que oferece suporte ao Java e bluetooth.
47



3.1.2   JSR-82


        O Java Specification Requests 82 (JSR-82) é um documento que descreve as
especificações para o uso do J2ME com o bluetooth. Definido pelo Java Community
Process (JCP) como um processo onde os interessados na tecnologia possam se
envolver nas futuras versões e funcionalidades, para fornecer um padrão para
desenvolvimento de aplicações bluetooth em Java. É um padrão aberto e não
proprietário para o desenvolvimento de aplicações bluetooth.
        A API JSR-82 oculta a complexidade do protocolo bluetooth atrás de um
conjunto de APIs Java que permite emulação de porta serial (POVOA, 2005). Por
esse motivo, fez-se uso no presente trabalho.
        Para desenvolver um aplicativo em Java e bluetooth utilizando a JSR-82,
precisa-se possuir ainda de uma pilha bluetooth. Que pode ser um ambiente
simulado como o WTK, ou uma pilha bluetooth real para o Java, como o Bluecove.
        Se estiver sendo usado um simulador, não será necessário o uso de
dispositivos bluetooth reais. Caso contrário, para testar a sua aplicação no mundo
real, através de uma pilha bluetooth Java, precisa-se de um dispositivo com sistema
bluetooth. Isso pode ser um dongle bluetooth USB conectado a um computador, ou
um dispositivo com bluetooth interno, como a maioria dos celulares modernos (Sun
Developer Network, 2009).




3.1.3    Bluecove


        O Bluecove é uma biblioteca J2SE para bluetooth, uma implementação do
JSR-82 para uso em desktops que possuam o sistema operacional Windows XP
com Service Pack 2 (SP2), utilizem o Windows 7, ou ainda algum outro sistema
especificado pelo desenvolvedor. Foi escolhido por ser gratuito e possuir uma versão
considerada estável, que implementa os principais protocolos bluetooth, como
RFCOMM, L2CAP, SDP e OBEX, e ainda perfis como o GAP, SDA e SPP A figura 7
abaixo mostra a pilha completa de protocolos usados no presente trabalho.
48




                  Figura 8: Diagrama da pilha bluetooth com Java e Bluecove
                                 Fonte: BLUECOVE (2010)



      Na figura 7 vêem-se os protocolos envolvidos, onde a camada abaixo é
formada pelo hardware bluetooth, apresentado no trabalho como o dongle USB e
pelos protocolos envolvidos e citados acima.
      A camada intermediaria é formada pela parte de software do sistema
operacional e a pilha bluetooth que implementa os protocolos HCI, L2CAP,
RFCOMM e SDP, ligando o hardware de rádio com o sistema operacional. Essa
camada intermediaria depende do sistema operacional usado. Neste caso o
Windows 7 com stack winsock, uma pilha bluetooth disponível para windows
desenvolvida na linguagem C. Para que o Bluecove, desenvolvido em Java, tenha
uma integração com essa pilha desenvolvida em C utilizou-se Java Native Interface
(JNI), uma tecnologia que possibilita aplicações Java utilizarem códigos nativos em
linguagem C.
      A camada superior é formada pela biblioteca Bluecove que implementa
funções do bluetooth com o J2SE, dependendo da pilha stack winsock oferecida
junto ao sistema operacional.
      E por fim, no topo do diagrama, o aplicativo base do trabalho, neste caso o
servidor responsável por disponibilizar um serviço ao aplicativo cliente.
49



4    ANÁLISE DO SISTEMA DESENVOLVIDO


                Não é objetivo de esse trabalho fazer um estudo comparativo de
tecnologias, marcas, padrões e protocolos envolvidos em computação móvel. Mas
sim apresentar a possibilidade e viabilidade de desenvolvimento de um ambiente de
consulta usufruindo de uma tecnologia ainda pouco usada por pessoas portadoras
de dispositivos móveis, o bluetooth. Logo, neste trabalho, o enfoque principal foi
dado à tecnologia bluetooth e aos processos que dela decorrem. Assim, a aplicação
prática teve como objetivo se aprofundar nos temas estudados e assim validar o que
foi estudado.
      O ambiente do sistema é formado basicamente por um servidor e um ou mais
clientes. Para que a aplicação desenvolvida funcione corretamente será necessário
que o cliente e o servidor atendam alguns requisitos de software e hardware.
      Assim, o cliente, representado por dispositivos móveis como um celular,
deverá possuir a plataforma J2ME Connected Limited Device Configuration (CLDC),
o perfil MIDP 2.0 e a API do bluetooth com Java JSR-82 presente no dispositivo.
Geralmente aparelhos com bluetooth vindo de fábrica já possuem esse suporte.
      Do lado do servidor foi utilizado um notebook, com dispositivo adaptador
bluetooth dongle USB. E como já mencionado acima, o sistema operacional deve
dar suporte a uma pilha de implementação bluetooth, assim, foi utilizado o Windows
7, por possuir uma pilha que pode ser utilizada junto ao Bluecove.
      A partir das tecnologias já tratadas acima, e tendo como base as concepções
e especificações das mesmas, programou-se um sistema de apoio ao acesso a
informações relativas ao ambiente educacional dos discentes de uma instituição
fictícia, com uso da tecnologia de redes sem fio bluetooth. Especificamente, uma
consulta de notas das disciplinas de um determinado aluno.
      O sistema tem como objetivo verificar a possibilidade e viabilidade de se
fornecer mais uma opção de acesso a informações a um ambiente de consulta
acadêmico, fazendo uso de uma tecnologia pouco utilizada para essa tarefa, mas que
se encontra disponível na maioria dos dispositivos móveis, o bluetooth.
      O sistema deve permitir que um discente possa fazer uma consulta rápida a
suas notas mesmo quando não estiver a sua disposição um computador conectado a
50



internet, mas carregando um dispositivo de acesso móvel contendo funções de rede
bluetooth, como a maioria dos celulares.
       Assim, o programa pretende agregar um serviço, uma possibilidade a mais de
se fazer uma consulta em um ambiente escolar, utilizando essa tecnologia presente,
contudo pouco explorada.
       O software do lado do servidor caracteriza-se como uma espécie de totem
bluetooth, aguardando conexões dos usuários. O programa emula através do
RFCOMM uma porta serial implementando o perfil SPP, disponibilizando um serviço
e esperando por uma conexão. Um cliente, após uma busca por dispositivos
bluetooth achará o servidor e poderá assim receber as notas cadastradas a este
usuário. O servidor fica responsável por disponibilizar um serviço para o cliente. O
cliente fica responsável por descobrir os dispositivos e buscar os serviços, no caso,
no servidor. Todo código escrito para desenvolver o programa servidor e o programa
cliente pode ser revisado através do Apêndice A.
       Abaixo será detalhado como foi desenvolvido o sistema, explicando suas
classes e métodos mais importantes. Os códigos e as telas do sistema encontram-se
nos Apêndices A e B respectivamente.
       O programa servidor foi desenvolvido na IDE Netbeans, criando um projeto
Java que possui duas classes. A classe principal que contem o cerne do programa e
uma classe secundaria responsável pela consulta dos dados.
       Primeiro o servidor inicia a pilha de protocolos bluetooth (parte implementada
em software e parte em hardware, como já descrito acima) e fica rodando o serviço
no modo de descoberta General Inquiry Access Code (GIAC), onde o serviço fica
sempre ativo e rodando a espera de conexões. Ou seja, o aplicativo do servidor
disponibiliza   um   serviço   e   aguarda   conexões    de    clientes.   O   método
acceptAndOpen() fica travado esperando até que uma conexão seja estabelecida.
Quando isso ocorre ele retorna um objeto StreamConnection que nesse caso
representa a conexão bluetooth. A seguir um potencial cliente deve fazer uma
pesquisa por dispositivos, um inquiry, e ao encontrar ocorre o pareamento entre o
servidor e o cliente. Após isso o cliente faz uma pesquisa por serviços disponíveis no
servidor. O servidor então envia os dados para o cliente através da conexão
RFCOMM e por fim o cliente recebe os dados.
       A linguagem Java através do JSR-82 possibilita uso de pacotes, classes e
métodos específicos para se desenvolver e trabalhar com o bluetooth. Um exemplo
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional
Estudo Bluetooth em Ambiente Educacional

Mais conteúdo relacionado

Semelhante a Estudo Bluetooth em Ambiente Educacional

"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004
"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004
"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004Vando Batista
 
Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...
Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...
Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...Jéssica Gessoli
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na NévoaBruno Oliveira
 
Segurança em redes wi-fi: estudo de caso em uma instituição de educação superior
Segurança em redes wi-fi: estudo de caso em uma instituição de educação superiorSegurança em redes wi-fi: estudo de caso em uma instituição de educação superior
Segurança em redes wi-fi: estudo de caso em uma instituição de educação superiorAllan Reis
 
Analysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networksAnalysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networksMarlon Henry Schweigert
 
Monografia- ThingProvider
Monografia- ThingProviderMonografia- ThingProvider
Monografia- ThingProviderKevin Martins
 
Redes de computadores e a internet
Redes de computadores e a internetRedes de computadores e a internet
Redes de computadores e a internetIRaza Gomes
 
Internet das coisas protocolo mqtt para comunicação dos dispositivos e sens...
Internet das coisas  protocolo mqtt para comunicação dos  dispositivos e sens...Internet das coisas  protocolo mqtt para comunicação dos  dispositivos e sens...
Internet das coisas protocolo mqtt para comunicação dos dispositivos e sens...Marcelo Machado Pereira
 
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IVPROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IVHenry Jackman
 
Redes de computadores e internet.
Redes de computadores e internet.Redes de computadores e internet.
Redes de computadores e internet.valdarnini
 
Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...
Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...
Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...Anderson A. Rezende
 

Semelhante a Estudo Bluetooth em Ambiente Educacional (20)

ARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUX
ARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUXARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUX
ARTIGO CLUSTER DE ALTA DISPONIBILIDADE EM SISTEMAS LINUX
 
"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004
"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004
"Descobrindo a Computação Ubíqua" UNIFOR Abril 2004
 
Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...
Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...
Smart Grid Prospecção Tecnológica do Compartilhamento de Receita das Redes In...
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na Névoa
 
Segurança em redes wi-fi: estudo de caso em uma instituição de educação superior
Segurança em redes wi-fi: estudo de caso em uma instituição de educação superiorSegurança em redes wi-fi: estudo de caso em uma instituição de educação superior
Segurança em redes wi-fi: estudo de caso em uma instituição de educação superior
 
Analysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networksAnalysis of the GNS3 as a teaching tool by simulated networks
Analysis of the GNS3 as a teaching tool by simulated networks
 
Monografia- ThingProvider
Monografia- ThingProviderMonografia- ThingProvider
Monografia- ThingProvider
 
Redes de computadores e a internet
Redes de computadores e a internetRedes de computadores e a internet
Redes de computadores e a internet
 
Internet das coisas protocolo mqtt para comunicação dos dispositivos e sens...
Internet das coisas  protocolo mqtt para comunicação dos  dispositivos e sens...Internet das coisas  protocolo mqtt para comunicação dos  dispositivos e sens...
Internet das coisas protocolo mqtt para comunicação dos dispositivos e sens...
 
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IVPROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
 
Apostila cantu
Apostila cantuApostila cantu
Apostila cantu
 
Redes de computadores e internet.
Redes de computadores e internet.Redes de computadores e internet.
Redes de computadores e internet.
 
Apostila redes
Apostila redesApostila redes
Apostila redes
 
Apostila cantu
Apostila cantuApostila cantu
Apostila cantu
 
Apostila redes e internet
Apostila redes e internetApostila redes e internet
Apostila redes e internet
 
Projeto banco de_dados_cloud
Projeto banco de_dados_cloudProjeto banco de_dados_cloud
Projeto banco de_dados_cloud
 
reede.pdf
reede.pdfreede.pdf
reede.pdf
 
redes.pdf
redes.pdfredes.pdf
redes.pdf
 
Pim iv
Pim ivPim iv
Pim iv
 
Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...
Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...
Características e Base Estrutural dos Métodos de CRC utilizados em Sistemas d...
 

Último

Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoMary Alvarenga
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 anoandrealeitetorres
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 

Último (20)

Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu Abrigo
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 ano
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 

Estudo Bluetooth em Ambiente Educacional

  • 1. Fabricio Soares Kronbauer ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM AMBIENTE EDUCACIONAL UBÍQUO Trabalho de Conclusão de Curso CRUZ ALTA-RS, 2010
  • 2. 1 Fabricio Soares Kronbauer ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM AMBIENTE EDUCACIONAL UBÍQUO Trabalho de Conclusão de Curso apresentado ao Curso de Ciência da Computação, da Universidade de Cruz Alta, como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação. Orientador: Prof. M. Sc. Josiane Kroll CRUZ ALTA - RS, JULHO 2010
  • 3. 2 Universidade de Cruz Alta – UNICRUZ Departamento de Ciências Agrárias, Exatas e da Terra Curso de Ciência da Computação ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM AMBIENTE EDUCACIONAL UBÍQUO Elaborado por Fabricio Soares Kronbauer Como requisito parcial para obtenção do título de Bacharel em Ciência da Computação. Comissão Examinadora: Prof. M. Sc. _______________________________________________/UNICRUZ Prof. M. Sc. _______________________________________________/UNICRUZ Prof. M. Sc. _______________________________________________/UNICRUZ Cruz Alta, ____ de ______________ de ______
  • 4. 3 AGRADECIMENTOS Mais um trecho de meu caminho se encontra completo. E não poderia deixar de agradecer a todos aqueles que estiveram ao meu lado nesta jornada. Em primeiro lugar quero agradecer a meu pai, um homem digno e batalhador que através de muito esforço conseguiu graduar três filhos em universidades particulares. Um herói nesses tempos. Um agradecimento especial aos meus irmãos, mãe, tios e avôs, que sempre me apoiaram em tudo que foi preciso. Agradeço a minha namorada por sempre estar ao meu lado, em todos os momentos, sejam eles bons ou não. Também aos meus colegas e amigos pela boa companhia que foram e pelas ajudas prestadas. Obrigado a todos que de um jeito ou de outro estiveram presentes em minha jornada.
  • 5. 4 RESUMO ESTUDO SOBRE A COMUNICAÇÃO BLUETOOTH EM UM AMBIENTE EDUCACIONAL UBÍQUO Autor: Fabricio Soares Kronbauer Orientador: Prof. M. Sc. Josiane Kroll O atual ambiente onde estão inseridas as pessoas requer uma busca frequente por eficiência, rapidez e desempenho. Uma forma de alcançar estes objetivos é através do uso de dispositivos suportados pela computação móvel como ferramenta para auxílio na busca de informações. A tecnologia bluetooth é um padrão aberto de comunicação sem fio, através de enlace de radiofrequência, para redes ad hoc que permite a transmissão de dados e informações entre dispositivos eletrônicos a uma curta distância, com gasto mínimo de recursos e com transmissão segura e rápida de dados. Contudo a integração, através de bluetooth, entre dispositivos móveis e servidores de dados ainda é pouco explorada. Neste trabalho foi abordado um estudo sobre a eficiência da comunicação bluetooth em um ambiente computacional ubíquo. Para isso foi desenvolvido um aplicativo para a comunicação entre um servidor de dados em um ambiente educacional ubíquo. Foram utilizados dispositivos móveis com tecnologia bluetooth para troca de informações com o servidor. Com o estudo realizado observou-se que a tecnologia bluetooth se diferencia de outras formas de redes de comunicação sem fio principalmente por se tratar de um padrão rápido, aberto e gratuito. Contudo com o avanço das redes Wi-Fi a tecnologia perdeu sua força inicial e parece estar restrita a substituição de fios. PALAVRAS-CHAVE: Comunicação bluetooth. Dispositivos móveis. Computação ubíqua. Ambientes educacionais.
  • 6. 5 ABSTRACT STUDY ON THE BLUETOOTH COMMUNICATION IN AN EDUCATIONAL ENVIRONMENT UBÍQUITOUS Author: Fabricio Soares Kronbauer Advisor: Prof. M. Sc. Josiane Kroll The environment current where people are included requires a common quest for efficiency, speed and performance. One way to achieve these goals is by using of devices supported by mobile computing as a tool to aid in finding information. Bluetooth technology is an open standard for wireless communication using radio, used for ad hoc networks, which allows the transmission of data and information between electronic devices located in a short distance each other with minimum costs, secure and fast data transmission. However, the integration between mobile devices and data servers, by bluetooth, are still little explored. This work was dealt a study on the efficiency of the bluetooth communication in a ubiquitous computing environment. This way, an application for communication between a data server and a ubiquitous learning environment was developed. Mobile devices with bluetooth technology were used to capture information from the environment coming from a server. The realized studies showed that the Bluetooth technology differentiates itself from other forms of wireless communication networks mainly because it is a fast, open and free standard. However, because the advancement of network Wi-Fi, the bluetooth technology lost its initial strength and appears to be restricted to replacement of wires. KEYWORDS: Bluetooth communication. Mobile devices. Ubiquitous computing. Educational environments.
  • 7. 6 LISTA DE ILUSTRAÇÕES Figura 1 Scatternet formando por duas piconets...........................................22 Figura 2 Pilhas de protocolos da arquitetura bluetooth.................................24 Figura 3 Pilha de perfis do bluetooth.............................................................30 Figura 4 Diagrama de procedimento de conexão bluetooth..........................34 Figura 5 Estágios de comunicação num sistema bluetooth..........................35 Figura 6 Visão geral do ambiente..................................................................44 Figura 7 Visão geral de camadas envolvidas no servidor bluetooth.............45 Figura 8 Diagrama da pilha bluetooth com Java e Bluecove........................48 Figura 9 Tela de projeto do sistema..............................................................74 Figura 10 Tela de inicialização do servidor ....................................................74 Figura 11 Telas do dispositivo móvel..............................................................75 Figura 12 Tela de finalização do servidor........................................................75
  • 8. 7 LISTA DE TABELAS Tabela 1 Versões do bluetooth.........................................................................20 Tabela 2 Classes de dispositivos bluetooth.....................................................25 Tabela 3 Perfis bluetooth.................................................................................31 Tabela 4 Ambiente de desenvolvimento do projeto.........................................43
  • 9. 8 LISTA DE ABREVIATURAS E SIGLAS ACL Asynchronous ConnectionLess API Application Programming Interface CLDC Connected Limited Device Configuration DBM Power Ratio in Decibels EDR Extended Data Rate FHSS Frequency Hopping Spread Spectrum FM Frequency Modulation GAP Generic Access Profile GCF Generic Connection Framework GHz Giga Hertz GIAC General Inquiry Access Code HCI Host Controller Interface HS High Speed Technology IDE Integrated Development Environment IEEE Instituto de Engenheiros Eletricistas e Eletrônicos IrDA Infrared Data Association ISM Industrial, Scientific and Medicine JCP Java Community Process JDK Java SE Development Kit J2EE Java2 Enterprise Edition J2ME Java2 Standard Edition J2SE Java2 Micro Edition JSR Java Specification Requests JSR-82 Java Specification Requests APIs for Bluetooth L2CAP Logical Link Control and Adaptation Protocol LMP Link Manager Protocol MBPS Megabit por Segundo MIDP Mobile Information Device Profile MW Miliwatts
  • 10. 9 OBEX Object Exchange PDA Personal Digital Assistants PPP Point-to-Point Protocol PSK Phase Shift Keying RFCOMM RS-232 Serial Cable Emulation Profile SDA Service Discovery Application SDDB Service Discovery Database SDP Service Discovery Protocol SIG Bluetooth Special Interest Group SP2 Service Pack 2 SPP Serial Port Profile TCP/IP Transmission Control Protocol / Internet Protocol USB Universal Serial Bus UUID Universally UniqueI Dentifier WAP Wireless Application Protocol Wi-Fi Wireless Fidelity WTK Java Wireless Toolkit
  • 11. 10 SUMÁRIO 1 INTRODUÇÃO ...................................................................................................... 11 1.1 OBJETIVOS ....................................................................................................... 12 1.1.1 OBJETIVO GERAL.......................................................................................... 12 1.1.2 OBJETIVOS ESPECÍFICOS ........................................................................... 12 1.2 JUSTIFICATIVA ................................................................................................. 12 1.3 ESTRUTURA DO TRABALHO ........................................................................... 13 2 FUNDAMENTAÇÃO TEÓRICA ............................................................................. 14 2.1 TECNOLOGIAS DE COMPUTAÇÃO MÓVEL E REDES SEM FIO ................... 14 2.2 DISPOSITIVOS MÓVEIS ................................................................................... 15 2.3 COMUNICAÇÃO BLUETOOTH .......................................................................... 17 2.3.1 ESPECIFICAÇÕES DA TECNOLOGIA........................................................... 19 2.3.2 INFRA-ESTRUTURA....................................................................................... 20 2.3.3 PROTOCOLOS ............................................................................................... 22 2.3.4 PERFIS ADOTADOS ...................................................................................... 29 2.3.5 ESTADOS E MODOS DE CONEXÃO ENTRE DISPOSITIVOS ..................... 32 2.3.6 ANATOMIA DE UMA APLICAÇÃO BLUETOOTH .......................................... 36 2.4 COMPUTAÇÃO UBÍQUA . ................................................................................. 38 2.4.1 COMPUTAÇÃO CONSCIENTE DE CONTEXTO ........................................... 40 2.5 TRABALHOS RELACIONADOS ........................................................................ 41 3 DESENVOLVIMENTO PRATICO.......................................................................... 43 3.1 TECNOLOGIAS EMPREGADAS ....................................................................... 43 3.1.1 JAVA ............................................................................................................... 46 3.1.2 JSR-82 ............................................................................................................ 47 3.1.3 BLUECOVE ..................................................................................................... 47 4 ANÁLISE DO SISTEMA DESENVOLVIDO ........................................................... 49 4.1 ANÁLISE DOS RESULTADOS .......................................................................... 54 5 CONCLUSÃO......................................................................................................... 56 5.1 TRABALHOS FUTUROS .................................................................................... 57 REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 58 APÊNDICE A – CÓDIGO FONTE ............................................................................. 62 APÊNDICE B – TELAS DO SISTEMA ...................................................................... 74
  • 12. 11 1 INTRODUÇÃO A evolução na área computacional propicia o uso de diversos tipos de dispositivos móveis juntamente com outros vários de redes sem fio. Proporcionando continuo avanço e tornando atraente aos mais variados tipos de usuários que buscam facilidade e disponibilidade de informações (FORTES, 2009). Aliado a isso existe uma série de possibilidades existentes no uso em conjunto de tecnologias móveis, como a comunicação entre os indivíduos, realização dos mais diversos tipos de tarefas, e principalmente a disponibilização da mobilidade necessária ao aumento de produtividade. Tudo isso pode ocorrer em um ambiente móvel, onde o conceito de intercomunicação entre os dispositivos cresce na mesma proporção que a necessidade de encontrar a informação desejada com maior rapidez, segurança e comodidade. Cada vez mais pessoas carregam junto de si dispositivos capazes de processar informações pertinentes ao seu meio. Nesse ambiente surge a necessidade de comunicação e interação entre esses dispositivos. Um tipo de conectividade essencial para se viver em ambientes colaborativos (ARIMA, 2009). A tecnologia sem fio bluetooth é um padrão de rádio de curto alcance que proporciona novas oportunidades para dispositivos sem fio. Originalmente a tecnologia foi concebida como uma forma de eliminar os cabos de quase todos os dispositivos eletrônicos de consumo. No entanto, as metas para a tecnologia cresceram, permitindo a criação de um novo tipo de rede sem fio entre dispositivos. Dispositivos móveis com tecnologia sem fio bluetooth são cada vez mais comuns, graças a sua capacidade inerente de proporcionar a transmissão de voz e dados de uma maneira segura e com um custo relativamente baixo, se comparado a outras tecnologias de redes sem fio (Bluetooth Special Interest Group, 2009). Nesse sentido, foi feita uma análise da comunicação bluetooth para a transferência de informações entre dispositivos móveis e servidores de dados, em um ambiente educacional ubíquo, onde a informação deve estar disponível a qualquer pessoa, através de vários meios de consulta e principalmente no momento que se deseja, ou seja, a informação certa, no momento certo e de maneira correta (Barbosa, 2007).
  • 13. 12 1.1 Objetivos 1.1.1 Objetivo Geral Baseado na evolução da computação móvel e das redes sem fio, esse trabalho tem como objetivo o estudo dos processos de transferência de dados e informações em comunicações envolvendo o protocolo de redes sem fio bluetooth e dispositivos móveis em um ambiente educacional ubíquo. 1.1.2 Objetivos Específicos • Identificar os principais protocolos de transferência de dados adequados à comunicação móvel, principalmente a comunicação de redes sem fio bluetooth. • Fazer um estudo aprofundado sobre as características da comunicação bluetooth, seus conceitos, implementações, seus protocolos, seus perfis e suas aplicabilidades. • Estudar linguagens de programação que possibilitem integração com o bluetooth. • Verificar ferramentas, bibliotecas, pacotes e métodos para implementação do protocolo bluetooth. • Desenvolver um sistema experimental que comprove a possibilidade e viabilidade do projeto e abordar aspectos envolvidos nesses processos, buscando uma validação ao uso das tecnologias envolvidas no projeto, assim como suas vantagens e desvantagens de seu uso. 1.2 Justificativa A cada ano o número de dispositivos móveis no mercado brasileiro cresce impulsionado pela difusão das tecnologias de redes móveis, bem como pela grande gama de serviços e funções que esses dispositivos proporcionam. Nesse meio viu- se a necessidade de um maior entendimento sobre as formas com que esses aparelhos fazem acesso e realizam suas comunicações, seu funcionamento e a
  • 14. 13 aplicabilidade dos protocolos de comunicação sem fio, principalmente no âmbito dos servidores de conteúdo e aplicação. Além disso, a miniaturização de computadores na forma de celulares, Personal Digital Assistants (PDA) e outros dispositivos móveis forneceram novas maneiras para os usuários interagirem em ambiente móvel. Isso também trouxe a necessidade de desenvolver e redistribuir aplicações de desktop para usuários móveis (LEE; SCHNEIDER; SCHELL, 2005). A escolha pela tecnologia bluetooth foi feita principalmente pela característica desta de estar presente num grande número de aparelhos, porém, ser pouco explorada e utilizada no ambiente proposto pelo atual trabalho. Por ser uma tecnologia que possui um chip barato, o que permite uma integração crescente aos vários tipos de dispositivos. Além de possuir uma distância de cobertura relativamente alta para o que a tecnologia se propõe, variando de 10 a 100 metros dependendo da classe do dispositivo. Ainda o chip do bluetooth possui uma maior economia de energia se comparado ao Wireless Fidelity (Wi-Fi). Outro fator de escolha foi o fato do bluetooth obter suporte da linguagem Java. Uma linguagem muito usada graças a seu grande poder de portabilidade. E por fim, pelo fato de usar uma faixa de rádio livre, que permite tráfego de dados sem cobrança. Tudo isso está tornando a tecnologia um padrão para conexões de curta distância (GHISI, 2007). Tendo como base a importância do tema, e o crescimento no mercado móvel, vê-se necessário um estudo aprofundado sobre as tecnologias envolvidas no mercado de dispositivos móveis e redes sem fio, principalmente no que se refere ao padrão bluetooth juntamente com a linguagem de programação Java . 1.3 Estrutura do Trabalho O trabalho está organizado em 5 capítulos. No capítulo 1 são apresentados os aspectos introdutórios. No capitulo 2 é abordado a fundamentação teórica para o trabalho. No capitulo 3 são apresentadas as tecnologias envolvidas no trabalho. No capítulo 4 é apresentado a analise do desenvolvimento de uma aplicação para testar as tecnologias envolvidas. No capitulo 5 são apresentados os resultados obtidos a partir do estudo feito, bem como sugestões para trabalhos futuros.
  • 15. 14 2 FUNDAMENTAÇÃO TEÓRICA 2.1 Tecnologias de Computação Móvel e Redes Sem Fio Cada vez mais os indivíduos estão dependentes de dispositivos móveis. Isso se deve primeiramente ao fato de possibilitar ao usuário, corporativo ou não, acesso a informações em tempo real, de uma maneira rápida e fácil, em qualquer lugar que se encontre. Segundo Lee, Schneider e Schell (2005) a maioria das pessoas faz uso de soluções móveis para comunicação, trabalho, entretenimento, educação e localização. Nas comunicações, onde a mobilidade agrega seu principal valor, encontram-se o trafego de dados, voz, textos e imagens. No trabalho as aplicações móveis dão agilidade aos processos como intercambio de informações e emissão de instruções. Na última década é possível notar o crescimento no desenvolvimento de tecnologias para comunicação em redes sem fio. Permitindo acesso a informações e abrindo inúmeras possibilidades de serviços e aplicações facilitadoras aos usuários de dispositivos móveis (FIGUEIREDO; NAKAMURA, 2003). O termo computação móvel pode assumir muitos significados, mas basicamente o ponto em comum é que envolve alguma forma de mobilidade, o que permite ao usuário com um dispositivo móvel se desloque dentro da área de acesso da rede sem fio local, buscando acesso a informações em qualquer lugar. Unindo assim a portabilidade, acessibilidade e conectividade das redes sem fio. Nesse meio, a portabilidade é fornecida pelo dispositivo, permitindo que o usuário se desloque para qualquer lugar. Quanto à conectividade, basta que o usuário esteja dentro do raio de cobertura de uma das varias tecnologias móveis (Augustin, 2004). Figueiredo e Nakamura (2003) definem computação móvel como sendo um novo paradigma computacional que engloba processamento, mobilidade e comunicação se fio com o objetivo maior de obter informação em qualquer lugar e a qualquer momento. Segundo os autores Lee, Schneider e Schell (2005) a mobilidade esta diretamente ligada a capacidades como portabilidade, usabilidade, funcionalidade e conectividade. A portabilidade se define como a facilidade de transportar um
  • 16. 15 dispositivo móvel, tendo em vista seu tamanho e seu peso. Usabilidade remete ao fato de como um dispositivo é utilizado pelos usuários em relação ambiente que estes se encontram. Funcionalidade está associada aos tipos de aplicações que esses dispositivos rodam. Conectividade é a capacidade fundamental dos dispositivos móveis, pois estes têm como função primordial conectar pessoas e sistemas, possibilitando troca de dados e informações. Numa era onde a informação tende a circular quase em tempo real, a possibilidade de obter o mesmo conteúdo em diversos meios diferentes facilita e torna a vida mais produtiva. Nesse meio, a computação móvel agregada ao uso da tecnologia bluetooth possibilita uma mobilidade que agiliza as comunicações entre vários dispositivos (BRANDELERO, 2007). As aplicações para a tecnologia móvel evoluem em capacidade de processamento, e este contexto é favorável para o advento de aplicações móveis cada vez mais poderosas e para os mais diversos fins. O ambiente da computação móvel disponibiliza ao programador uma serie de possibilidades de aplicações e serviços, num mercado onde surge a todo o momento oportunidades no desenvolvimento de produtos. Existe uma serie de aplicações que podem fazer uso do meio em prol da mobilidade, como por exemplo, o acesso a informações, transferência e consulta de dados, acesso remoto, apoio a tomada de decisão, em áreas de venda, estoque, transporte e automação, transações e operações financeiras, em ambientes educacionais, militares, segurança, entretenimento e informações em geral. Para atingir o nível de mobilidade desejado pelos usuários desses aparelhos, a indústria estuda e desenvolve uma serie de tecnologias e protocolos que permitem a comunicação sem fio a esses dispositivos. Há ainda um grande esforço por parte dos fabricantes de hardware e software para difusão do aumento do uso da internet móvel por aparelhos portáteis (Bluetooth Special Interest Group, 2009). 2.2 Dispositivos Móveis Existem no mercado diversos tipos de dispositivos móveis destinados tanto a usuários corporativos quanto aos consumidores em geral. As capacidades
  • 17. 16 intrínsecas, funções, sistemas, portabilidade e custo de cada um desses dispositivos móveis variam significativamente (LEE; SCHNEIDER; SCHELL, 2005). O autor Luiz Barbosa (2006) lista os tipos de dispositivos usados em computação móvel como: controles inteligentes, utensílios inteligentes, sistemas de entretenimento e dispositivos de acesso à informação. Sendo este último o tipo de dispositivo abordado no presente trabalho. A classificação dos dispositivos móveis varia muito de autor para autor, mas geralmente dispositivos móveis de acesso à informação podem ser classificados como PDA, telefones celulares e smartphones (BOEMO, 2007). Segundo Boemo (2007) dispositivos móveis utilizados em processos de computação móvel tornaram-se muito mais que assistentes pessoais e agendas eletrônicas, tornaram-se facilitadores da mobilidade, acesso a informações e coleta de dados. São equipamentos que atribuem facilidades ao seu usuário, por terem tamanho reduzido, baixo consumo de energia, proporcionam ainda ganhos de tempo e eficiência. Os dispositivos móveis possuem várias formas de acesso à rede sem fio, como Wi-Fi, Infrared Data Association (IrDA), rede de telefonia celular e a tecnologia abordada nesse trabalho, o bluetooth (KLEINSCHMIDT, 2004). A seguir são descritos alguns dispositivos móveis que utilizam comunicação bluetooth: • Aparelho celular: Um dispositivo celular se comunica através de ondas eletromagnéticas presentes em uma determinada área geográfica denominada célula, que deu nome ao dispositivo. Essas ondas magnéticas são disponibilizadas ao usuário do dispositivo pela operadora de telefonia celular, e segue padrões de difusão baseada no tipo de compressão usada na distribuição do sinal. Esses dispositivos oferecem múltiplos serviços e funções além dos serviços básicos de telefonia. São players de áudio e vídeo, mensagens de texto, imagem e som, rádio, câmera fotográfica, câmera filmadora, acesso a internet, jogos, além de vários tipos de aplicações personalizadas (LEE; SCHNEIDER; SCHELL, 2005). • PDA: Derivado do inglês Personal Digital Assistent, os PDA são dispositivos de dimensões reduzidas e grande capacidade computacional. Os PDA são comumente chamados de handhelds ou palmtops. Na verdade pode-se classificá-los como um computador de tamanho reduzido, graças às funções que equipam esses aparelhos, como capacidade de processamento, memória e armazenamento, funções de entrada e saída, funções de multimídia, sistema de escritório e
  • 18. 17 capacidade de comunicações em diversos tipos de redes, como Wi-Fi e o bluetooth (FIGUEIREDO; NAKAMURA, 2003). Contendo originalmente funções básicas como agenda, lista de contatos, calendário, relógio, o PDA ganhou ao longo do tempo maior poder de processamento, sistemas operacionais personalizados, maior capacidade de memória e de armazenamento, o que proporcionou um aumento de suas funções, que agora incluem correio eletrônico, acesso a Internet, jogos, informações e aplicações personalizadas. Atualmente é comum que fabricantes combinem os PDA com características de telefones celulares, reprodutores multimídia e outros equipamentos eletrônicos (LEE; SCHNEIDER; SCHELL, 2005). • Smartphones: Dispositivos que integram funcionalidades de PDA com as de telefones celulares. É tanto um celular com capacidades de PDA quanto um PDA tradicional com capacidades de telefone celular. Suas principais funcionalidades são a de navegar na internet, verificar e-mails, players de áudio e vídeo, edições de arquivos, além de receber e fazer chamadas telefônicas (LEE; SCHNEIDER; SCHELL, 2005). Apesar da restrição quanto à capacidade computacional, se comparados com os PDA, essa mistura de tecnologia celular com a dos PDA torna esse tipo de dispositivo um dos mais procurados hoje no mercado. 2.3 Comunicação Bluetooth A tecnologia bluetooth foi originalmente desenvolvida para acabar com o uso de cabos entre dispositivos a curta distância, permitindo uma conexão sem fio entre diversos aparelhos como celulares, dispositivos computacionais portáteis de pequeno porte, acessórios e periféricos como fones de ouvido, microfones, teclados e mouse, e computadores. No entanto, não se restringe apenas a substituição dos cabos. A conectividade sem fio entre dispositivos fixos e móveis permite muitos outros cenários de utilização. Como o abordado no presente trabalho. A tecnologia promete se tornar um dos principais padrões de mercado na sua área de aplicação, graças às inúmeras possibilidades que disponibiliza em diversas áreas, e ao grande número de dispositivos que saem de fábrica com suporte a tecnologia. Como por exemplo: celulares, PDA, notebooks, câmeras, projetores,
  • 19. 18 teclados, mouses, e ainda uma serie de eletrodomésticos (FIGUEIREDO; NAKAMURA, 2003). A tecnologia sem fio bluetooth permite com que um dispositivo se comunique com outro aparelho em seu raio de alcance, através de um chip que nada mais é do que um micro rádio transceptor operando na faixa de frequência de 2.4 Giga Hertz (GHz), na banda Industrial, Scientific and Medical (ISM). A tecnologia bluetooth é uma especificação de frequência de rádio para comunicações de curto alcance, segura, aberta, livre de royalties, e de baixo consumo, o que a torna ideal para dispositivos portáteis de baixo custo. Possibilita tráfego sem fio de voz e dados e pode operar em qualquer lugar do mundo já que opera em frequência livre (THOMPSON; KLINE; KUMAR, 2008). É uma opção de comunicação sem fio considerada barata, de baixo custo e eficaz entre dispositivos que se comunicam a uma pequena distância. O grande propulsor da tecnologia é o custo baixo na produção do chip bluetooth que pode ser encontrado pelo preço de três dólares americanos. Tudo isso, aliado a baixa complexidade e ao reduzido consumo (Bluetooth Special Interest Group, 2009). Dispositivos com chips bluetooth podem ser sincronizados com um computador, o que lhes permite transferir arquivos entre eles, troca de dados e até acessar a internet. É possível ainda criar uma rede de área pessoal permitindo a comunicação sem fio de diversos tipos de dispositivos. O objetivo do Bluetooth Special Interest Group (SIG), órgão regulador da tecnologia, é a construção de um rádio em um único chip, de baixo consumo de energia e reduzido custo de fabricação, possibilitando a inserção em diversos tipos de dispositivos que precisem se comunicar através de um ambiente sem fio. O que torna a tecnologia ideal para uso em dispositivos móveis (TAURION, 2002). Concebida como um sistema de rede sem fio de baixo custo para todas as classes de dispositivos portáteis, os dispositivos bluetooth têm a capacidade de formar redes ad hoc. Estas redes permitem conexões dinâmicas e transparentes, onde o usuário pode se vincular rapidamente através de ligações fáceis e convenientes para impressoras, acesso à internet, e a dispositivos pessoais tanto no trabalho como em casa (THOMPSON; KLINE; KUMAR, 2008). A seguir a tecnologia terá aprofundamento através de sua especificação, abordando um pouco sobre suas origens e características principais.
  • 20. 19 2.3.1 Especificações da Tecnologia Os estudos originaram-se em 1994 quando a empresa Ericsson começou as pesquisas para encontrar alternativas para ligar acessórios aos seus telefones móveis eliminando os cabos entre eles, e buscas por novas tecnologias para interfaces de comunicações de baixo custo entre telefones e acessórios (THOMPSON; KLINE; KUMAR, 2008). No início de 1998, a Ericsson se juntou a Intel, IBM, Nokia e Toshiba e formou-se o SIG, uma empresa privada sem fins lucrativos para se concentrar no desenvolvimento de uma especificação aberta para a tecnologia sem fio bluetooth (GHISI, 2007). Em julho de 1999, o SIG publicou a versão 1.0 da especificação bluetooth. Em abril de 2009 foi anunciado a última versão do bluetooth (Bluetooth Special Interest Group, 2009). A principal tarefa do SIG é publicar as especificações do bluetooth e disseminar o uso da tecnologia. O trabalho conjunto dessas empresas em prol do desenvolvimento da tecnologia seguiu um caminho onde houvesse uma rápida aceitação de mercado. Para tal, mantém o protocolo aberto e compatível a muitas tecnologias de mercado (Bluetooth Special Interest Group, 2009). Hoje o SIG inclui as empresas promotoras: Ericsson, Intel, Lenovo, Microsoft, Motorola, Nokia e Toshiba, e aproximadamente 12 mil empresas adeptas e associadas. Essas empresas envolvidas no consórcio estão fazendo um esforço considerável em prol da disseminação da tecnologia (Bluetooth Special Interest Group, 2009). O SIG através de cooperação com as diversas empresas que formam o consórcio lançou uma especificação industrial aberta, definindo assim como deve ser o comportamento do padrão e a compatibilidade com os mais diferentes produtos. Ela define o sistema completo, partindo do hardware até as camadas mais altas de software. A especificação contém duas partes, o núcleo e os perfis. O núcleo define as características do rádio e a pilha de protocolos para a comunicação entre dois dispositivos. Os perfis especificam quais protocolos da pilha devem ser implementados para determinada aplicação (THOMPSON; KLINE; KUMAR, 2008). O SIG lança de tempos em tempos novas especificações para o protocolo, existindo assim varias versões do bluetooth, conforme tabela 1.
  • 21. 20 Tabela 1 - Versões do bluetooth Data Versão Características 1999 1.0 Primeira versão, problemas de incompatibilidade. 2001 1.1 Acontece o reconhecimento pela IEEE do padrão 802.15.1. Compatibilidade, aumento de velocidade para 1 megabit por 2003 1.2 segundo (Mbps), Frequency Hopping Spread Spectrum (FHSS). Aumento de velocidade para 3 Mbps, melhorias no broadcast e 2005 2.0 + EDR multicast. 2007 2.1 + EDR Melhoria na segurança e consumo de energia. Considerável aumento de velocidade para 26 Mbps ao utilizar 2009 3.0 + HS novo protocolo 802.11, o mesmo do Wi-Fi. As versões 1.0 e 1.1 foram responsáveis por dividir a especificação em duas partes, uma responsável por descrever o núcleo do padrão e outra descrevendo os perfis. A versão 2.0 + Extended Data Rate (EDR) multiplicou por três a taxa transmissão, aumentando a velocidade para 3 Mbps, graças à mudança no padrão de modulação do protocolo. A última versão do bluetooth é a 3.0, lançada na especificação SIG em 21 de abril de 2009, chamada High Speed Technology (HS). Nela há uma mudança significativa ao passar a utilizar o protocolo 802.11(Wi-Fi), aumentando sua velocidade para 26 Mbps (Bluetooth Special Interest Group, 2009). 2.3.2 Infra-Estrutura Uma rede de computadores é formada por um conjunto de dispositivos capazes de trocar informações e compartilhar recursos, interligados por um sistema de comunicação (KLEINSCHMIDT, 2004). No caso de redes sem fio, ou wireless, há troca de dados e informações sem o uso de cabos ou qualquer outra forma de conexão física. Neste caso a transferência de informações acontece através do ar como meio físico de propagação, por meio de ondas eletromagnéticas, infravermelho ou por laser. E para que estas redes sem fio sejam consideradas móveis, o dispositivo devem ser capaz de se deslocar durante a comunicação sem que esta seja interrompida (KLEINSCHMIDT, 2004).
  • 22. 21 As redes sem fio são divididas e classificadas de acordo com seu mecanismo de rotas, através do modo infra-estruturado ou ad hoc (BARBOSA, L., 2006). Uma rede infra-estruturada é quando dispositivos se comunicam diretamente com o ponto de acesso central, como é o caso de redes celulares e redes Wi-Fi. Em redes ad hoc, não existe um ponto de acesso central, e os dispositivos se comunicam diretamente com os dispositivos mais próximos. Este é o caso de redes bluetooth, que permite a criação de redes pessoais sem fio, uma rede de curto alcance que faz conexão entre vários tipos de dispositivos (KLEINSCHMIDT, 2004). A tecnologia bluetooth permite a formação de dois tipos de redes possíveis em uma topologia de rede conhecida como ad hoc. Uma piconet ou uma scatternet. Uma piconet é formada de no mínimo dois e no máximo oito dispositivos bluetooth, onde o dispositivo que inicia uma conexão se torna o mestre e os demais são chamados de escravos. Os escravos não podem se comunicar entre si, logo toda comunicação passa pelo controle do mestre. Numa piconet existe apenas um mestre, e seus escravos podem participar de outras piconets com o esquema de multiplexação de tempo. Nesse meio um mestre de uma piconet pode ser um escravo em outra. Já uma scatternet é o conjunto de várias piconets. Essas redes podem ser formadas por várias piconets e a comunicação entre elas é feita pelos dispositivos mestre de cada piconet (TAVARES; LOBATO; WESTPHALL, 2004). Segundo Sacks (2003), nesse tipo de arquitetura, o dispositivo que assume o papel de mestre fica encarregado de executar funções de gestão de recursos de rádio no canal, coordenando e orientando através de instruções e comandos os seus respectivos escravos. Os dispositivos restantes, os escravos, ao serem sincronizados ao mestre, executam operações coordenadas pelo mestre. O número máximo de dispositivos que podem fazer parte de uma rede piconet são oito dispositivos, sendo que um necessariamente deva ser um mestre e os restantes escravos. Como esse número é pequeno, implementou-se a tecnologia a técnica de scatternet, que permite a sobreposição de vários piconets, aumentando assim a capacidade da rede. O limite máximo de sobreposições é de dez piconets. Na figura 1 pode-se ver o exemplo de duas redes piconets formando uma rede scatternet.
  • 23. 22 Figura 1 – Scatternet formada por duas piconets Fonte: Adaptado de Boemo (2007) Na figura 1 é possível notar a presença de duas redes piconets, cada uma contendo um dispositivo mestre. Ao se estabelecer uma ligação direta entre o mestre e seus escravos temos uma condição de conexão ad hoc que é chamada de piconet. Nota-se a interposição de duas redes piconets, formando uma scatternet. A scatternet se forma quando um dispositivo participa de duas ou mais piconets. Um dispositivo bluetooth pode atuar como mestre ou escravo, já que o hardware utilizado é o mesmo (PRIESS, 2003). 2.3.3 Protocolos Alguns autores como Horstmann (2002) e Goelzer (2006) dividem a pilha de protocolos de acordo com sua função. Assim protocolos como rádio, banda base, Link Manager Protocol (LMP), Logical Link Control and Adaptation Protocol (L2CAP) e o Service Discovery Protocol (SDP) são considerados protocolos principais, o núcleo do sistema. O RS-232 Serial Cable Emulation Profile (RFCOMM) é o protocolo de substituição de cabos. E existem ainda os protocolos adotados ou suportados, como o Point-to-Point Protocol (PPP), Transmission Control Protocol / Internet Protocol (TCP/IP), Wireless Application Protocol (WAP) e Object Exchange
  • 24. 23 (OBEX). Por fim, o bluetooth ainda dá suporte a protocolos de controle e especificação de telefonia. Apesar de estarmos citando todos os possíveis protocolos e perfis, só serão explicados os que terão utilização direta no trabalho. Por exemplo, o OBEX não será explicado, apesar de fazer parte da especificação. Já autores como Tanenbaum (2003) dividem a arquitetura bluetooth e as suas características técnicas em especificações chamadas de núcleo e perfis. O núcleo define como o sistema funciona. Os perfis determinam como os diversos elementos do sistema podem ser utilizados. Assim a divisão constaria de uma camada de rádio contendo o transceptor que estabelece comunicação entre dispositivos; uma camada de banda base, que seria a parte computacional, com memória e processador, que interage com hardware; uma camada de pilha de software que administra a comunicação entre banda básica e os aplicativos: e por fim a camada do programa aplicativo, que seria o software que promove a interface do sistema com o usuário. O núcleo do bluetooth pode ser dividido em quatro camadas, L2CAP, LMP, banda base e camada de rádio. Eles podem ser implementados no hardware e firmware do dispositivo. O que eliminaria a necessidade do Host Controller Interface (HCI), já que o L2CAP e a banda base comunicam-se diretamente. Contudo o mais comum é que o L2CAP seja implementado em software, surgindo assim a necessidade da camada HCI para comunicar o L2CAP com as camadas inferiores (TANEMBAUM, 2003). Siqueira (2006) divide o bluetooth em três grupos lógicos: grupos de protocolos de transporte, grupo de protocolos de middleware e grupo de aplicação. O grupo de protocolos de transporte possui camadas de rádio, banda base, LMP e L2CAP. Estas permitem que dispositivos bluetooth localizem outros dispositivos e gerenciem links físicos e lógicos para as camadas superiores. O grupo de protocolos de middleware possui camadas de protocolos de padrões industriais e outros desenvolvidos por terceiros. Estes protocolos permitem que aplicações já existentes e novas aplicações operem sobre bluetooth. Esses protocolos de padrões industriais incluem PPP, TCP/IP, WAP. Outros protocolos desenvolvidos pelo próprio SIG também foram incluídos como o RFCOMM, o TCS e o SDP. Por fim, o grupo de aplicação consiste das próprias aplicações que utilizam links bluetooth. Estas podem incluir aplicações legadas ou aplicações orientadas a bluetooth.
  • 25. 24 Outro método de divisão, encontrado em Priess (2003) e Sacks (2003) é classificar a pilha de protocolos bluetooth em duas porções de camadas. As camadas superiores formadas pelos protocolos L2CAP, RFCOMM, OBEX, e os perfis, e as camadas inferiores formadas pelo rádio, banda base, controlador de enlace e gerenciador de enlace. Neste caso fica claro uma divisão da pilha de protocolos bluetooth com ênfase nas camadas de hardware e software. Assim a camada de hardware e firmware representam as camadas de rádio, banda base e LMP. O HCI serve de ligação e as camadas superiores como L2CAP, RFCOMM e as demais são desenvolvidas em software. Na figura 2 é mostrado um exemplo da pilha de protocolos e a seguir a descrição de cada camada. Figura 2 – Pilhas de protocolos da arquitetura bluetooth Fonte: PRIESS (2003) • Rádio: essa camada é responsável pela comunicação no nível mais baixo, o nível físico, responsável por modular e demodular os dados em frequências de sinais de rádio para transmissão e captação no ar. É a camada de tráfego físico dos dados, que ocorre a transmissão entre dois chips de rádio bluetooth. A especificação da camada de rádio corresponde essencialmente a operações do transceptor bluetooth, provendo compatibilidade entre os rádios e qualidade para o sistema. Sua função é movimentar os bits entre os dispositivos mestre e escravos (THOMPSON; KLINE; KUMAR, 2008).
  • 26. 25 A tecnologia de rádio usada pelo bluetooth permite com que seu raio de alcance não se limite a uma linha reta, mas a um perímetro num raio de alcance que varia, de acordo com a classe do dispositivo, entre 1, 10 e 100 metros (SACKS, 2003). O transmissor de cada aparelho pode ser classificado em três diferentes classes de potência e transferência de dados, que por sua vez leva em consideração o alcance da onda de rádio dos dispositivos (MELO, 2005), conforme tabela 2. Tabela 2 – Classes de dispositivos bluetooth Classe Alcance Potência 1 ~ 100 metros 1 mW (0dBm) e 100 mW (20dBm) 2 ~ 1 0 metros 0.25 mW (-6dBm) e 2.5 mW (4dBm) 3 ~ 1 metro Até 1 mW (0dBm) Os dispositivos classe 1 foram desenvolvidos para grandes distâncias, podendo atingir nominalmente 100 metros com uso de potência máxima de 100 miliwatts (mW), o que decorre num consumo de energia na casa dos 20 power ratio in decibels (dBm). Contudo, para se atingir o alcance máximo de 100 metros os dois dispositivos devem ser de classe 1 (MELO, 2005). Já um dispositivo classe 2 possui alcance médio de 10 metros com potência de 2.5mW e consumo de 4 dBm. Aqui são encontrados a maioria dos dispositivos presentes no mercado. Por fim existem dispositivos de classe 3, os mais fracos do mercado, podendo atingir apenas 1 metros são destinados a curtíssimo alcance. Atinge potência máxima de 1mW com 0 dBm de consumo (SACKS, 2003). O bluetooth é um protocolo de rádio com interface universal que opera na frequência de rádio não licenciada ISM destinada a aplicações industriais, médicas e científicas cuja faixa destinada é de 2,4 GHz. Esta faixa de frequência vai de 2400 MHz a 2483,5 MHz (GRAZZIOTIN, 2006). Essa banda é formada por vários canais formados pela técnica de espalhamento espectral. Isso é possível porque no intervalo de banda usado pela tecnologia, 2400 MHz a 2483,5 MHz, há um total de 79 frequências disponíveis, começando pelo canal 0 ao 78, cada uma com 1 MHz. Cabe deixar claro que cada transmissão ou recepção de pacotes de dados que ocorrem em um único intervalo de tempo, utilizam uma única frequência, porém com a técnica de salto, a faixa total utilizada pela tecnologia é maior, contendo 79 frequências possíveis para troca de
  • 27. 26 dados. Essas 79 frequências diferentes possibilitam 1600 variações por segundo para evitar ou reduzir colisões com outros tipos de dados que circula na mesma faixa de banda de rádio. A tecnologia permite com que o dispositivo mestre fique saltando de frequência para evitar colisões, e após o salto, sincroniza o restante dos escravos (PRIESS, 2003). O consórcio SIG definiu os modos de modulação como: um modo básico e obrigatório, chamado de Basic Rate que usa modulação Frequency Modulation (FM) e um modo opcional chamado de Enhanced Data Rate (EDR) que usa modulação Phase Shift Keying (PSK), que aumentou taxas de 1 Mbps para 2 e 3 Mbps (SACKS, 2003). Contudo, a última especificação trouxe mudanças significativas nesses modos de modulação. Segundo release 3.0 a tecnologia passa a usar High Speed Technology e a utilizar o protocolo 802.11 aumentando sua taxa de velocidade para 26 Mbps (Bluetooth Special Interest Group, 2009). O modo de transmissão acontece por espalhamento espectral conhecido como Spread Spectrum, que faz uso da técnica de salto de frequência chamada Frequency Hopping, que permite com que um algoritmo alterne entre as frequências numa velocidade de 1600 saltos por segundo, para assim evitar erros, colisões, interferência. Neste caso, com 1600 saltos por segundo, daria um salto a cada 0,000625 segundos, ou 625 microsegundos. Essa duração é conhecida como time slot, ou seja, uma unidade de tempo no sistema (SACKS, 2003). • Banda Base: é uma camada física da pilha de protocolos que é responsável pela gerência da banda base através de controle das conexões físicas via rádio, gerência de enlace montando os pacotes e formatação dos dados de transmissão recebidos e enviados para a camada de rádio. Além disso, ela é responsável pela sincronização da comunicação na piconet gerenciando o frequency hoppig e controlando a seleção de saltos. Além de fazer o controle de erros e ser responsável pela segurança dos dados (GHISI, 2007). Esta camada também é responsável pelo descobrimento dos dispositivos, através de page e inquiry para acessar os dispositivos, formação do link, formato e controle de pacotes e pelos canais lógicos e físicos (GRAZZIOTIN, 2006). Definindo assim como os dispositivos bluetooth localizam e se conectam a outros dispositivos. Funcionando como um administrador de enlace síncronos e assíncronos fazendo rotinas de conexão.
  • 28. 27 Na realidade a banda base monta os pacotes de dados vindos dos níveis superiores para enviar a camada de rádio, assim como faz o contrário, ao receber bits da camada de rádio e montar pacotes para enviar a camada superior (MONTEIRO, 2006). A função da camada é transformar um fluxo de bits em frames. Ou seja, uma sequência de bits em quadros. Na transmissão dos frames são estabelecidos links, onde cada quadro é transmitido sobre um canal entre o mestre e o escravo (FIGUEIREDO, 2008). O canal físico é subdividido em unidades de tempos denominados slots. Os dados são transmitidos entre dispositivos bluetooth em pacotes que são posicionados nestes slots. Dentro de um canal físico, um link físico é formado entre quaisquer dois dispositivos, e transmitem pacotes em ambas as direções. Existe um link físico entre cada escravo e mestre. Contudo não há formação de links físicos diretamente entre escravos. Geralmente em um intervalo de tempo é enviado um pacote de dados. Contudo em determinados sistemas o envio de um único pacote pode levar mais de uma unidade de tempo, neste caso o pacote é transmitido antes de acontecer o salto, estendendo a unidade de tempo padrão. • Link Manager Protocol (LMP): é responsável pelo controle e configuração das conexões entre os dispositivos, gerenciando todos os aspectos funcionais que envolvem a ligação entre eles (Bluetooth Special Interest Group, 2009). É responsável pelos enlaces entre os dispositivos (GRAZZIOTIN, 2006). Esse controle de enlace é feito através de mensagens do protocolo, interrogações e respectivas respostas, que são interpretadas pelos gerenciadores dos dispositivos destinatários (SACKS, 2003). O gerenciador de enlace (LMP) traduz os comandos da interface de controle do host (HCI) que ele recebe, em operações na camada de banda de base. Ou seja, as mensagens produzidas no LMP são filtradas e interpretadas pelo link controller da camada banda base. Protocolo fica responsável pela configuração e gerenciamento das propriedades do meio de transmissão entre os dispositivos, nas conexões da banda base (GHISI, 2007). • Host Controller Interface (HCI): prove um método de acesso às funcionalidades das camadas mais baixas, LMP e banda base, através de uma
  • 29. 28 interface de controle e parâmetros de configuração (Bluetooth Special Interest Group, 2009). Assim a camada provê a comunicação entre o controlador host e o módulo bluetooth, caracterizando uma ponte entre o software e o hardware, fazendo uma abstração entre o hardware das camadas inferiores e o software das camadas superiores (SACKS, 2003). Melo (2005) classifica a camada em: HCI firmware, que implementa os comandos para a parte do hardware, acessando banda base e o LMP. O HCI Driver, que é a parte em software do modulo de driver no servidor que recebe notificações de eventos HCI. E o Host Controller Transport Layer, que é a camada por onde o HCI firmware e o HCI Driver se comunicam. É o canal de transporte que comunica o hardware com o software. Geralmente sendo do tipo Universal Serial Bus (USB). • Logical Link Control and Adaptation (L2CAP): faz a interface com as camadas de nível superior e os protocolos de transporte de camadas inferiores, escondendo os detalhes de implementação da camada de rádio e banda base, sendo responsável pelos tipos de aplicações capazes de rodarem sobre redes bluetooth (GHISI, 2007). Entre as funções do protocolo temos a multiplexação e desmultiplexação, segmentação e remontagem de pacotes, qualidade de serviço e criação de canais lógicos entre camadas acima e abaixo. Esta camada é usada apenas para enlaces do tipo Asynchronous ConnectionLess (ACL) e usa conceitos de canais lógicos, onde cada um é identificado por um identificador local chamado de Channel Identification (CID) ( KLEINSCHMIDT, 2004). A camada faz o processo de segmentação de pacotes, pelo fato da camada inferior banda base permitir carga baixa em seus pacotes, enquanto as camadas superiores permitem pacotes de tamanho maior. Logo esses pacotes devem ser segmentados, fragmentados em vários outros pacotes permitindo assim a transmissão (GRAZZIOTIN, 2006). O processo de multiplexação é a propriedade do protocolo de pegar os pacotes de dados da camada de banda base e enviar para a camada de aplicação correta acima. Basicamente a camada recebe os pacotes das camadas superiores e dividem eles em frames para que ocorra a transmissão e a remontagem nos dispositivos de destino. O processo de desmultiplexação é responsável por
  • 30. 29 fragmentar e remontar pacotes de dados que recebe das camadas acima no formato esperado pelas camadas abaixo (MONTEIRO, 2006). • Rfcomm: a camada RS-232 Serial Cable Emulation Profile é o protocolo de transporte que emula uma configuração de cabo serial sobre o protocolo L2CAP e é usado para fornecer transferência de dados serial suportando diferentes aplicações legadas que façam uso da porta serial, além de também permitir implementações de protocolos mais complexos sobre ele, e ainda dos perfis bluetooth. RFCOMM liga as camadas inferiores da pilha de protocolo bluetooth através da camada L2CAP (GHISI, 2007). É através dessa camada que se implementou a comunicação no presente trabalho e será posteriormente explicado com mais detalhes. • Service Discovery Protocol (SDP): é a camada de descobrimento de serviços comum em todo dispositivo bluetooth. Serve para divulgar os serviços de um dispositivo mestre quando um dispositivo escravo entra na área de cobertura do sinal bluetooth. Ele é um protocolo do tipo cliente-servidor, onde o servidor mantém uma lista de serviços e os clientes podem obter acesso a esses serviços (KLEINSCHMIDT, 2004). O dispositivo bluetooth mantém as informações dos serviços armazenados em um Service Discovery Database (SDDB) que possui atributos com registros que os descrevem. Esses atributos são representados por um número hexadecimal chamado de identificador de atributo (GHISI, 2007). O Universally Unique Identifier (UUID) é o tipo de dado usado para identificar os atributos de serviços, protocolos e perfis. Um UUID é um identificador universal que garante ser único em um tempo e espaço determinado. Na identificação de um serviço a Java Specification Requests APIs for Bluetooth (JSR-82) dispõe da classe Javax.bluetooth.UUID para definir esses identificadores. Esse número deve ser reconhecido tanto pelo mestre quanto pelo escravo, servidor ou cliente, já que é através dele que será realizada a busca por pelo serviço (POVOA, 2005). 2.3.4 Perfis Adotados A especificação do bluetooth definiu aplicações especificas suportada pelas
  • 31. 30 pilhas de protocolos. Formando uma gama de perfis para diferentes tipos de tarefas. Os perfis são uma combinação de protocolos e procedimentos para uma implementação de serviços específicos e para diminuir os riscos de falhas de interoperabilidade entre equipamentos de fabricantes distintos, permitindo assim uma comunicação confiável e descrevendo como as implementações devem ser utilizadas nos diferentes ambientes onde se faz uso da tecnologia, atingindo assim diversos cenários de uso (FIGUEIREDO, 2008). A figura 3 exemplifica os perfis suportados pelos dispositivos com bluetooth. Figura 3 – Pilha de perfis bluetooth Fonte: Bluetooth Special Interest Group (2009) O presente trabalho não tem por objetivo fazer uma descrição ou analise completa dos perfis bluetooth, até mesmo porque os desenvolvedores do consórcio SIG trabalham para que esse numero seja sempre crescente. O que será visto a seguir é uma análise dos principais perfis da tecnologia e os perfis que foram utilizados durante a implementação do presente trabalho. A tabela 3 foi adaptada de Bluetooth Special Interest Group (2009) mostra os principais perfis e protocolos utilizados no presente trabalho.
  • 32. 31 Tabela 3: Perfis bluetooth Perfis Características GAP Perfil de acesso genérico. Base para os demais perfis. SDA Descreve como usar o SDP para descobrir serviços em um dispositivo SPP Descreve como configurar portas seriais virtuais e conectar 2 dispositivos Protocolos Os perfis acima funcionam em conjunto com os protocolos abaixo RFCOMM Emula configurações de cabo serial e status de uma porta serial RS-232 e é usado para fornecer transferência de dados serial SDP Protocolo de descoberta de Serviços. Abaixo segue a descrição dos principais perfis utilizados no presente trabalho. • Generic Acess Profile (GAP): é um perfil básico de transporte onde os demais são construídos. O GAP é à base de todos os outros perfis, pois sobre ele os outros perfis são aplicados. Define os procedimentos genéricos relacionados ao estabelecimento de conexões entre dois dispositivos, incluindo a descoberta de dispositivos, a gestão e configuração de links, e os procedimentos relacionados com a utilização de segurança. Logo controla a ligação entre dois dispositivos, semelhante ao que ocorre na camada de rede do modelo tradicional (THOMPSON; KLINE; KUMAR, 2008). • Service Discovery Application (SDA): descreve as operações básicas necessárias para que serviços sejam descobertos. Este perfil define os protocolos e os procedimentos a ser usado por aplicativos para localizar serviços em outros dispositivos com bluetooth habilitado (FIGUEIREDO, 2008). O SDA descreve como um aplicativo deve usar o SDP para descobrir serviços em um dispositivo remoto, através de inquiry e inquiry scan via SDP. As idéias contidas nas especificações SDA somam-se as previstas no GAP, no SDP, e em outros processos básicos de detecção de dispositivos. O SDA define dois papéis, um para o dispositivo local que inicia o processo de descoberta de serviços, e o dispositivo remoto que pode ser qualquer dispositivo que participa no processo de descoberta de serviços,
  • 33. 32 respondendo às indagações de serviço geradas por um dispositivo local (Bluetooth Special Interest Group, 2009). • Serial Port Profile (SPP): é um perfil de transporte que suporta a emulação de uma configuração de cabo serial usando o protocolo RFCOMM para prover esse serviço. O SPP facilita a comunicação entre dispositivos bluetooth, fornecendo um fluxo baseado em interface para o protocolo RFCOMM, que está sobre o protocolo L2CAP, emulando uma conexão serial RS-232 (Sun Developer Network, 2009). Foi desenvolvida para que programas antigos pudessem ser usados sem necessidade de reprogramação. Sendo assim, esse perfil permite que, sem nenhuma modificação, aplicações legadas possam utiliza o bluetooth como se o mesmo fosse uma conexão a uma porta serial. Esse perfil serve de base para vários outros, bem como dar suporte a conexões PPP para acesso local entre dois dispositivos (THOMPSON; KLINE; KUMAR, 2008). Seu uso se restringe a computadores desktop e laptops. Um cenário típico de uso seria dois dispositivos, como dois notebooks, ligados através da tecnologia bluetooth emulando portas seriais virtuais, já que o perfil SPP define como configurar portas seriais virtuais e conectar dois dispositivos bluetooth (Bluetooth Special Interest Group, 2009). 2.3.5 Estados e Modos de Conexão entre Dispositivos Mesmo que uma rede bluetooth trabalhe com uma tecnologia sem fios, apenas uma única ligação física pode existir entre dois dispositivos bluetooth. Apesar de ser apenas uma única ligação física, pode haver várias ligações entre os dois dispositivos. Semelhante à rede cabeada, onde existe apenas um cabo entre dois dispositivos, mas ainda pode haver várias ligações entre estes dispositivos. Os dispositivos bluetooth são munidos da capacidade de descobrir novos dispositivos nas proximidades da rede, além de descobrir os serviços disponíveis na rede. Para isso todo dispositivo bluetooth tem associado a si um endereço e um relógio interno com um contador, e durante a pesquisa, o dispositivo eu esta
  • 34. 33 pesquisando recebe os endereços bluetooth e as frequências dos dispositivos encontrados, para assim identificá-los na rede (GHISI, 2007). Após acionado o bluetooth em um dispositivo móvel, o software inicia um processo chamado de inquiry, onde o dispositivo varre a rede atrás de pontos de acesso que estão próximos. Todos os pontos de acesso respondem com seu endereço físico. Já que cada módulo bluetooth tem um endereço físico único no mundo, gravado no momento da fabricação. O dispositivo móvel escolhe então um destes pontos de acesso. Para se estabelecer uma ligação bluetooth é necessário que os dispositivos efetuem um procedimento conhecido como pareamento, o que permite a criação de um canal físico entre os dois dispositivos. O dispositivo que efetua os pedidos de pareamento é o mestre, enquanto que o receptor dos pedidos é o escravo. Quando o dispositivo esta operando no modo de descoberta (inquiry scan) ele se torna possível de ser descoberto pelo mestre. Para que o pareamento se estabeleça, o dispositivo escravo deve estar com o bluetooth ativado, ou seja, ele deve estar escutando os envios de pedidos do mestre. Assim que receba o pedido, o escravo manda ao mestre uma resposta, este por sua vez, após confirmação, envia ao escravo um pacote com o seu endereço bluetooth e com o relógio interno, este pacote permite ao escravo tomar conhecimento de todas as informações para criar a ligação entre os dois dispositivos. Esse processo é conhecido como paging, e é aqui que o dispositivo móvel procura sincronizar-se com o ponto de acesso (GHISI, 2007). Estabelecido o link físico, ocorre a etapa da varredura e descoberta por serviços disponibilizados. Essa busca utiliza o protocolo SDP, onde o cliente envia requisições a um servidor, que por sua vez, envia as informações de serviços disponíveis. Um identificador UUID é usado para identificar os serviços, protocolos, perfis e demais informações do dispositivo (GRAZZIOTIN, 2006). Se for descoberto algum serviço, o protocolo L2CAP será criado possibilitando assim a comunicação entre os dispositivos. Para que essa comunicação ocorra com sucesso, o protocolo RFCOMM emula uma interface serial sobre o canal L2CAP que permite trafego de dados. Na figura 5 pode-se observar um exemplo padrão de procedimentos para conexão de dispositivos bluetooth.
  • 35. 34 Figura 4: Diagrama de procedimento de conexão bluetooth Fonte: MONCH (2007) Conformo o modelo apresentado na figura 4, um dispositivo A fica enviando mensagens de busca por outros dispositivos. Esta etapa chama-se fase de descobrimento (discovery). Um outro dispositivo B, que esteja na área de cobertura do sinal, pode receber essa mensagem se estiver com esse serviço habilitado (discoverable). O dispositivo B então responde a mensagem ao dispositivo A. Após fase inicial de pesquisa, ocorre a fase de pareamento, onde o dispositivo A pede uma senha (PIN) para o dispositivo B. Se a resposta de B coincide com o pedido de A, os dispositivos estão pareados e podem iniciar a comunicação entre ambos (MONCH, 2007). Conforme a explicação acima, percebe-se que um dispositivo bluetooth pode operar em vários estados. Ele pode assumir um estado de espera (standby) ou estado de conexão. Entre esses dois principais estados encontra-se estados intermediários usados para estabelecimento de conexão e adicionamento de novos dispositivos a rede. Entre esses podemos citar um estado de pesquisa (inquiry), juntamente com a escuta de pesquisa (inquiry scan), um estado de resposta da pesquisa (page) e escuta de chamada (page scan). A figura 5 exemplifica esse processo, além de visualizar os papeis do mestre e do escravo.
  • 36. 35 Figura 5 – Estágios de comunicação num sistema bluetooth Fonte: GRAZZIOTIN (2006) Conforme descrito acima, um dispositivo pode inicialmente assumir dois estados: espera (standby) ou conectado. Antes de estar conectado a uma rede piconet, diz-se que o dispositivo esta em estado normal. Neste estado de pré- conexão o dispositivo pode assumir por default o estado de stanby, e a partir desse assumir estados de page, page scan, inquiry scan ou inquiry, conforme figura 5 acima. Um dispositivo entra em estado standby ao ser ativado a função bluetooth. O dispositivo assume então um método de consumo de energia, disparando mensagens a cada 10ms a procura de dispositivos. A partir desse modo pode assumir o estado de page ou inquiry. Quando um dispositivo mestre entra no modo inquiry, ele faz uma investigação para identificar e descobrir, na sua área de cobertura, dispositivos visíveis ao seu alcance. E assim colher informações pertinentes à futura conexão. Neste caso o escravo deve estar no modo inquiry scan para ser visto. O mestre através do inquiry obtém uma lista de dispositivos em seu alcance, assim como seus endereços. Inquiry possibilita ao dispositivo descobrir outros em seu alcance, assim como o endereço e o clock. No estado de inquiry o dispositivo mestre envia um tipo especifico de pacote para descobrir quais os dispositivos
  • 37. 36 presentes na sua área de alcance, com o objetivo de descobrir o endereço do escravo (MARTINCOSKI, 2003). De tempos em tempos, o dispositivo vai para o estado inquiry scan para tentar ser descoberto por outros dispositivos. Se receber algum pacote de inquiry enquanto estiver neste estado, responderá com um inquiry response, onde mandará seu endereço ao dispositivo que enviou o inquiry para que este tome conhecimento de sua presença na rede. Logo após, o dispositivo mestre entra no estado de page, onde ocorre uma convocação pelo dispositivo escravo que ira se conectar a rede piconet. Para tal o mestre usa o endereço obtido anteriormente. O estado de page é usado para estabelecer conexão com um futuro escravo cujo endereço seja previamente conhecido. Nesse caso é estabelecida a conexão sem precisar passar pelo estado de pesquisa, escuta da pesquisa e resposta da pesquisa. Isso se o mestre já tenha a identificação do escravo a qual ele deseja se conectar. O dispositivo escravo deve estar com o modo page scan habilitado para que responda a esta convocação realizada pelo mestre. No estado de page scan o futuro escravo busca em sua área de cobertura um futuro mestre no estado de page que esteja enviando o seu endereço. Em caso de novas conexões, o dispositivo mestre não precisa passar pelo modo inquiry, pois ele já conhece o endereço do escravo (MARTINCOSKI, 2003). Resumindo o processo de descoberta e conexão, o dispositivo mestre executa inquiry e depois page, enquanto o(s) escravo(s) executa inquiry scan e page scan. Durante uma operação, um canal físico de rádio é compartilhado por um grupo de dispositivos que estão sincronizados a um clock comum e a um padrão de saltos de frequência. Um dispositivo mestre provê assim a sincronização de referência. 2.2.6 Anatomia de uma Aplicação Bluetooth Basicamente o envio de dados para dispositivos móveis através do bluetooth segue os seguintes princípios: • Pesquisa de dispositivos. Tanto um dispositivo servidor ou um cliente podem fazer varredura na rede para achar novos dispositivos ou serviços. Para ser encontrado, um dispositivo deve estar no modo de descoberta, inquiry scan. • Obtenção da lista de serviços nos dispositivos encontrados ou de um serviço específico. Essa busca de serviços usa o protocolo SDP.
  • 38. 37 • O dispositivo que esta efetuando a pesquisa recebe endereços bluetooth e frequências dos dispositivos encontrados, permitindo assim sua identificação. • Pedido de envio para os dispositivos encontrados e que suportam o serviço de envio de arquivos. • Envio de arquivos Após a análise desses passos básicos na comunicação bluetooth, precisa-se aprofundar os conhecimentos envolvendo a tecnologias Java. Para tal segue abaixo alguns critérios que envolvem a anatomia de um sistema usando esses ambientes. Essa anatomia de aplicação bluetooth tem cinco partes (Sun Developer Network, 2009): • A pilha de inicialização, • Gerenciamento de dispositivos, • A descoberta do dispositivo, • A descoberta de serviços e comunicação. A pilha de inicialização é responsável por controlar o dispositivo bluetooth. Por isso é necessário inicializar a pilha bluetooth antes de tudo. O processo de inicialização compreende uma série de medidas cujo objetivo é fazer com que o dispositivo fique pronto para a comunicação sem fio. A segunda parte da anatomia de uma aplicação bluetooth é o gerenciamento do dispositivo. A Application Programming Interface (API) Java para bluetooth conter algumas classes principais que servem no gerenciamento, como a classe Local Device que representa o dispositivo, a classe RemoteDevice que representa um dispositivo remoto dentro de uma faixa de alcance e fornece métodos para recuperar informações sobre o dispositivo, como seu nome e endereço bluetooth. E ainda a classe DeviceClass que serve para recuperar o tipo de dispositivo e os tipos de serviços (Sun Developer Network, 2009). A terceira parte da anatomia de uma aplicação bluetooth é a descoberta de dispositivos remotos, que permite encontrarem dispositivos e ter acesso às suas capacidades. As classes DiscoveryAgent e DiscoveryListener fornecem serviços necessários para essa descoberta (Sun Developer Network, 2009). A quarta parte da anatomia de uma aplicação bluetooth é a descoberta de serviços em dispositivos remotos. Após a descoberta de dispositivos, ocorre a procura de serviços disponíveis, que nada mais são que aplicação bluetooth que
  • 39. 38 podem realizar uma tarefa especifica. A descoberta de serviços é muito parecida com a descoberta de dispositivo, logo o uso da classe DiscoveryAgent também fornece métodos para descobrir serviços em um servidor de dispositivo bluetooth, e para iniciar as operações de serviços descoberta (Sun Developer Network, 2009). A quinta parte é o serviço de registro. Um serviço antes de poder ser descoberto, deve primeiro ser registrado, ou seja, anunciado em um servidor de dispositivo bluetooth. O servidor é responsável por criar um serviço de registro que descreve o serviço oferecido, além de adicioná-lo ao SDDB, tornando o serviço visível e disponível para os clientes em potencial. E por fim o servidor deve aceitar as conexões de clientes em busca de serviços (Sun Developer Network, 2009). Essas características serão revistas e devidamente explicadas no capitulo 4, que faz a análise do sistema desenvolvido. 2.4 Computação Ubíqua Santos (2009) propõem uma diferenciação entre os termos computação ubíqua e computação pervasiva, classificando como computação pervasiva modelos com dispositivos com alto grau de acoplamento e baixo grau de mobilidade, enquanto que computação ubíqua seriam os modelos com dispositivos com alto grau de acoplamento e alto grau de mobilidade. Contudo afirma que apesar dessa proposta de diferenciação, nota-se que não há uma distinção bem definida ou unânime pela maioria dos autores. Por esse motivo o presente trabalho fará uso do termo computação ubíqua. A computação ubíqua agrega um novo paradigma computacional baseado em equipamentos de pequeno porte, com poder computacional adequado à sua função e com ampla conectividade a quaisquer outros dispositivos (SANTOS, 2009). Segundo Araújo (2003), a característica primordial da computação ubíqua é mover a computação para fora das estações de trabalho e computadores pessoais e torná-la ubíqua a vida cotidiana das pessoas. Jorge Barbosa (2007) afirma que as pesquisas sobre computação móvel e ubíqua possuem origem no crescente uso de dispositivos móveis e a ampla difusão de redes sem fio. Sua analise nós leva aos estudos sobre mobilidade em sistemas
  • 40. 39 distribuídos que vêm sendo impulsionados pelo aumento dos dispositivos móveis como os celulares, PDA e netbooks aliado ao uso de novas tecnologias de redes sem fio como o Wi-Fi, o bluetooth e a rede celular. Araújo (2003) afirma que a convergência das tecnologias de redes sem fio, dos microprocessadores cada vez menores e potentes e dos dispositivos móveis pessoais está levando ao conceito de ubiquidade no qual dispositivos inteligentes, móveis e estacionários, coordenam-se entre si para prover aos usuários acesso imediato e universal a novos serviços, de forma transparente, que visam aumentar as capacidades humanas permitindo uma maior produtividade e comodidade. Na computação ubíqua, a computação e seus diversos sistemas podem interagir com o ser humano a todo o momento, não importando onde ele esteja, constituindo um ambiente altamente distribuído, heterogêneo, dinâmico, móvel e interativo. Nesse modelo, as aplicações precisam se adaptar ao ambiente, compreender o contexto em que estão inseridas e estar disponíveis ao usuário, em qualquer lugar e a qualquer tempo. Além disso, devem manter o acesso à rede e a seu ambiente computacional, independente de dispositivo (ARAÚJO, 2003). Santos (2009) afirma que a computação ubíqua pode representar uma profunda evolução na área de tecnologia da informação, à medida que entre no cotidiano das pessoas, tornando-se uma tecnologia intrínseca a vida dos indivíduos. Nesse novo paradigma os sistemas irão coletar informações do ambiente de acordo com o contexto em que estão embutidos e utilizarão estas informações para construir modelos computacionais específicos. Santos (2009) defende ainda que a expectativa com a computação ubíqua é de que esse quadro se altere drasticamente. Os computadores estarão presentes em qualquer lugar, na cidade, no aeroporto, na floresta ou na praia. Esses dispositivos estarão conectados entre si, formando uma grande rede ubíqua e irão interagir buscando auxiliar nas atividades das pessoas, instituições e empresas, seja em tarefas simples como acordar, participar de uma reunião, ou em tarefas mais complexas como o monitoramento da saúde de uma pessoa, no controle de estoque de uma grande empresa ou na manutenção de equipamentos. Para isso, há dois pontos chaves na computação ubíqua, o tamanho desses dispositivos e seu contexto. O tamanho é importante, pois quanto mais imperceptível ao usuário (ou portátil) melhor. O contexto também é importante para que o objeto saiba com quais outros dispositivos ele pode interagir.
  • 41. 40 2.4.1 Computação Consciente de Contexto Segundo Jorge Barbosa (2007) a computação ubíqua vem sendo potencializada pelo uso de informações de contexto. O autor afirma que a disseminação da computação ubíqua ocasionará um impacto significativo em diferentes áreas de atuação da sociedade. Principalmente ao que se refere às trocas de informações baseadas em contexto. No cenário das trocas de informações baseadas em contexto apoiada pela computação ubíqua, novos pressupostos devem ser pensados, uma vez que os dados podem ser acessados a qualquer momento e em qualquer lugar. O suporte ubíquo permite a construção de softwares específicos relacionados com questões dinâmicas do contexto do usuário (Barbosa, J., 2007). Jorge Barbosa (2007) afirma que a computação consciente do contexto teve grande impulso com a mobilidade aliada à difusão da comunicação sem fio, o que permitiu aos serviços computacionais serem disponibilizados em contextos específicos. O ambiente controla as aplicações orientadas à informação pertinente, possibilitando que o contexto seja vinculado com o usuário especifico. A informação neste cenário é dinâmica e estão distribuídos em contextos. A computação consciente do contexto se beneficia do uso de informações contextuais para aprimorar a interação com seus usuários. O contexto pode descrever informações sobre localização, dispositivos, perfis de equipamentos e da rede, atividades, objetos computacionais e outros. Assim, essa forma de computação pode ser entendida como aquela em que as aplicações tomam decisões de acordo com um contexto particular proveniente do ambiente e da situação em que se encontram (Barbosa, J., 2007). Mas o mais importante é que em um cenário em que a informação encontra- se disponível de forma globalizada, o desafio de um sistema ubíquo não consiste somente em disponibilizar a informação para qualquer pessoa, em qualquer lugar e com vários formatos, mas principalmente em disponibilizar a informação certa, no momento certo e da maneira correta (Barbosa, J., 2007). Ao analisar os conceitos de tecnologia bluetooth e computação ubíqua percebesse que existe uma relação muito próxima entre os dois. Nota-se que ao afirmar que a computação ubíqua é voltada a interação de usuários juntamente a
  • 42. 41 ambientes fixos e móveis onde há obtenção de uma informação, processamento da mesma e após a disponibilização do resultado ao usuário, fica claro a inter-relação entre eles e a capacidade de utilização dessas tecnologias, principalmente em um ambiente dinâmico onde a mobilidade do usuário é o requisito principal e sua revisitação deva ser tratada pelo sistema a fim de melhorar a qualidade do sistema. 2.5 Trabalhos Relacionados Como pesquisa relacionada ao assunto, foi revisada uma serie de trabalhos como artigos, monografias e teses, a fim de obter um bom referencial bibliográfico. A seguir serão listados alguns trabalhos que tiveram importância na presente monografia. A dissertação de mestrado Uma Arquitetura de Conectividade para Dispositivos Móveis na Plataforma JAMP apresentada por Luiz Barbosa ao programa de pós-graduação em ciência da computação da universidade de São Carlos no ano de 2006 trata da criação de um framework de conectividade num ambiente Java e bluetooth, onde um dispositivo móvel faz uso de serviços presentes em um computador desktop remoto usado como ponto de acesso. Esse trabalho serviu de base teórica e referencial para o estudo das tecnologias Java e bluetooth. Além de importante fonte de material que relaciona computação ubíqua e bluetooth. Outro trabalho que aborda sobre o assunto é Sistema de Gerenciamento de Redes e Processos Através de Computadores Portáveis via bluetooth, apresentada por Anelise Godolphim Sacks ao programa de graduação em ciência da computação da universidade federal do Rio de Janeiro no ano de 2003. O trabalho serviu para embasamento teórico sobre tecnologias usadas para comunicação ponto a ponto entre dispositivos móveis e servidores. Abordando conceitos como protocolo, transferência e armazenamento de informações. O trabalho serviu de base para o referencial bibliográfico relacionado ao bluetooth, seus protocolos e infra-estrutura. Por fim, mas não menos importante, faz-se referência ao trabalho Utilizando Dispositivos Móveis e Bluetooth para Aplicação de Avaliação em Meio Digital de Leydson Pontes Ferreira apresentado como parte dos requisitos para a obtenção do Título de bacharel em engenharia de computação, pela universidade federal do Rio
  • 43. 42 Grande do Norte. No trabalho o autor faz uso da tecnologia bluetooth e Java em meio móvel, agregado funções a um ambiente de ensino à distância. O ambiente usado foi muito semelhante ao trabalho atual por fazer uso do Windows juntamente com Bluecove do lado do servidor desktop e fazer uso do Connected Limited Device Configuration (CDLC), Mobile Information Device Profile (MIDP) e JSR-82 do lado do cliente móvel. O trabalho se diferencia dos demais por abordar um ambiente muito parecido com o projeto o qual se deseja implementar, além de ter uma boa qualidade bibliográfica e exemplos muito bem descritos dos fontes.
  • 44. 43 3 DESENVOLVIMENTO PRÁTICO Este capítulo tem como objetivo demonstrar como foi desenvolvida a aplicação que faz uso do bluetooth para consulta de dados em um contexto educacional. 3.1 Tecnologias Empregadas Desenvolver aplicações móveis baseadas em contexto consiste em projetar, desenvolver e implementar softwares dentro de um contexto onde eles possam se tornar válidos. Para concretizar e fundamentar o estudo se desenvolveu uma interface de apoio capaz de permitir o acesso a informações por meio de dispositivos móveis e com o uso do protocolo bluetooth. Com isso se pretende disponibilizar uma opção de consulta móvel a informações tidas como pertinentes em um ambiente educacional, o que permitirá ao aluno fazer consulta a uma base de dados, em qualquer lugar, desde que dentro da área de cobertura da tecnologia bluetooth, e não apenas através de um desktop e uma rede fixa. A aplicação construída tem como objetivo demonstrar na prática como funciona o protocolo de transferência e comunicação sem fio bluetooth entre dispositivos móveis e servidores de dados. Assim como fazer uma demonstração de uso dos principais recursos e tecnologias envolvidas no projeto. Diversas ferramentas podem ser usadas como solução para programação de dispositivos móveis usando bluetooth e Java. De um modo geral, as tecnologias envolvidas no projeto podem ser divididas em tecnologia para o cliente e tecnologia para o servidor. A tabela 4 retrata o ambiente escolhido para o projeto. Tabela 4: Ambiente de desenvolvimento do projeto Sistema Windows 7 Domínio de mercado, versão com winsock. Linguagem Java Melhor opção para trabalhar com bluetooth. IDE NetBeans Excelente desempenho, livre. API ligação Bluecove Permite uso do bluetooth em desktops Dispositivo Celulares Devem possuir bluetooth e suportar Java Móveis
  • 45. 44 A escolha pelo sistema operacional da Microsoft Windows 7 se deve pelo fato deste possuir a pilha de protocolo bluetooth conhecida por Microsoft Bluetooth Winsock que liga o sistema operacional ao dispositivo de rádio bluetooth, a mesma presente no sistema operacional Windows XP com Service Pack 2 (SP2). A linguagem de programação Java para implementar a comunicação bluetooth entre o servidor e o cliente, juntamente com a Integrated Development Environment (IDE) de programação NetBeans, e por fim a biblioteca que permite uso do Java com o bluetooth no ambiente desktop, o Bluecove. A figura 6 apresenta uma visão geral do ambiente proposto. Figura 6: Visão geral do ambiente A típica pilha de protocolos bluetooth para desenvolvimento Java do lado do servidor pode ser visto na figura 7 abaixo.
  • 46. 45 Figura 7: Visão geral de camadas envolvidas no servidor bluetooth Fonte: Adaptado de Luiz Barbosa (2006) A figura 7 exemplifica a divisão do protocolo, bem como as tecnologias usadas no projeto do lado do servidor. As camadas de baixo são desenvolvidas em hardware e firmware, enquanto as camadas acima são desenvolvidas em software. Na camada de rádio bluetooth foi usado um adaptador USB bluetooth V2.0 modelo ES-388 do fabricante Cambridge Silicon Rádio Ltd. O sistema operacional usado foi o Windows 7. Presente no ambiente existe ainda a biblioteca Bluecove versão 2.1.0, ligando a pilha winsock do sistema à linguagem de programação Java implementando partes do framework Java Specification Requests 82 (JSR-82) para ambientes desktops. Na verdade só podemos fazer uso do bluetooth em um ambiente desktop porque o Bluecove implementa a API JSR-82, além disso seu uso depende da pilha oferecida pelo sistema operacional, permitindo uma comunicação entre um servidor e um cliente (GOELZER, 2006). A linguagem de programação escolhida foi a Java, em suas versões Java 2 Micro Edition (J2ME) para o aplicativo cliente e Java 2 Standard Edition (J2SE) para o sistema servidor, juntamente com o ambiente de desenvolvimento Java SE Development Kit (JDK) 5.0 e por fim o IDE de desenvolvimento Netbeans 6.8 para construção dos aplicativos.
  • 47. 46 3.1.1 Java Buscando por uma linguagem de programação para dispositivos móveis, constatou-se que uma das melhores opções seria a utilização da linguagem Java, pelos seguintes fatores: portabilidade independe de marcas, modelos ou sistema; suporte a sistemas distribuídos; relativa velocidade de desenvolvimento e facilidade de programação; o custo, já que o Java é uma linguagem livre e a grande quantidade de IDEs e APIs para os desenvolvedores. Luiz Barbosa (2006) relata a divisão da plataforma de desenvolvimento Java em três grupos, tendo como enfoque o tipo de ambiente para o qual se deseja desenvolver: • O Java Enterprise Edition (J2EE) é a plataforma Java voltada para desenvolvimento em redes, como a internet e intranets. Contém bibliotecas especialmente desenvolvidas para o acesso a servidores, a sistemas de e-mail, a banco de dados. • O Java Standard Edition (J2SE) é o ambiente de desenvolvimento voltado a estações de trabalho, como computadores desktops e notebooks. Esse é o ambiente utilizado para implementar o programa servidor. • O Java 2 Micro Edition (J2ME) é o ambiente de desenvolvimento para dispositivos móveis ou portáteis, como PDA, telefones celulares e smartphones. Foi utilizado para implementar o programa cliente. Para fazer uso da linguagem de programação Java, num ambiente do desktop com uso do sistema Windows, utilizou-se um ambiente integrado para desenvolvimento de software (IDE) conhecido como Netbeans, em sua versão 6.8. O ambiente permite uma abstração no desenvolvimento de sistemas usando como base a linguagem Java. Sua escolha se deve pelo fato de ser uma das melhores tecnologias livres para programação de softwares. Para criação e testes no ambiente J2ME fez-se uso do Java Wireless Toolkit (WTK), um conjunto de ferramentas, desenvolvido pela Sun Developer Network (SUN), para criação de aplicações Java para dispositivos portáteis, e que contém ferramentas para criação de aplicações, utilitários e um emulador de dispositivos móveis. Por razões desconhecidas, o emulador não se comportou da maneira esperada, portanto os testes foram feitos em meio real através do telefone celular Nokia modelo 5130, que oferece suporte ao Java e bluetooth.
  • 48. 47 3.1.2 JSR-82 O Java Specification Requests 82 (JSR-82) é um documento que descreve as especificações para o uso do J2ME com o bluetooth. Definido pelo Java Community Process (JCP) como um processo onde os interessados na tecnologia possam se envolver nas futuras versões e funcionalidades, para fornecer um padrão para desenvolvimento de aplicações bluetooth em Java. É um padrão aberto e não proprietário para o desenvolvimento de aplicações bluetooth. A API JSR-82 oculta a complexidade do protocolo bluetooth atrás de um conjunto de APIs Java que permite emulação de porta serial (POVOA, 2005). Por esse motivo, fez-se uso no presente trabalho. Para desenvolver um aplicativo em Java e bluetooth utilizando a JSR-82, precisa-se possuir ainda de uma pilha bluetooth. Que pode ser um ambiente simulado como o WTK, ou uma pilha bluetooth real para o Java, como o Bluecove. Se estiver sendo usado um simulador, não será necessário o uso de dispositivos bluetooth reais. Caso contrário, para testar a sua aplicação no mundo real, através de uma pilha bluetooth Java, precisa-se de um dispositivo com sistema bluetooth. Isso pode ser um dongle bluetooth USB conectado a um computador, ou um dispositivo com bluetooth interno, como a maioria dos celulares modernos (Sun Developer Network, 2009). 3.1.3 Bluecove O Bluecove é uma biblioteca J2SE para bluetooth, uma implementação do JSR-82 para uso em desktops que possuam o sistema operacional Windows XP com Service Pack 2 (SP2), utilizem o Windows 7, ou ainda algum outro sistema especificado pelo desenvolvedor. Foi escolhido por ser gratuito e possuir uma versão considerada estável, que implementa os principais protocolos bluetooth, como RFCOMM, L2CAP, SDP e OBEX, e ainda perfis como o GAP, SDA e SPP A figura 7 abaixo mostra a pilha completa de protocolos usados no presente trabalho.
  • 49. 48 Figura 8: Diagrama da pilha bluetooth com Java e Bluecove Fonte: BLUECOVE (2010) Na figura 7 vêem-se os protocolos envolvidos, onde a camada abaixo é formada pelo hardware bluetooth, apresentado no trabalho como o dongle USB e pelos protocolos envolvidos e citados acima. A camada intermediaria é formada pela parte de software do sistema operacional e a pilha bluetooth que implementa os protocolos HCI, L2CAP, RFCOMM e SDP, ligando o hardware de rádio com o sistema operacional. Essa camada intermediaria depende do sistema operacional usado. Neste caso o Windows 7 com stack winsock, uma pilha bluetooth disponível para windows desenvolvida na linguagem C. Para que o Bluecove, desenvolvido em Java, tenha uma integração com essa pilha desenvolvida em C utilizou-se Java Native Interface (JNI), uma tecnologia que possibilita aplicações Java utilizarem códigos nativos em linguagem C. A camada superior é formada pela biblioteca Bluecove que implementa funções do bluetooth com o J2SE, dependendo da pilha stack winsock oferecida junto ao sistema operacional. E por fim, no topo do diagrama, o aplicativo base do trabalho, neste caso o servidor responsável por disponibilizar um serviço ao aplicativo cliente.
  • 50. 49 4 ANÁLISE DO SISTEMA DESENVOLVIDO Não é objetivo de esse trabalho fazer um estudo comparativo de tecnologias, marcas, padrões e protocolos envolvidos em computação móvel. Mas sim apresentar a possibilidade e viabilidade de desenvolvimento de um ambiente de consulta usufruindo de uma tecnologia ainda pouco usada por pessoas portadoras de dispositivos móveis, o bluetooth. Logo, neste trabalho, o enfoque principal foi dado à tecnologia bluetooth e aos processos que dela decorrem. Assim, a aplicação prática teve como objetivo se aprofundar nos temas estudados e assim validar o que foi estudado. O ambiente do sistema é formado basicamente por um servidor e um ou mais clientes. Para que a aplicação desenvolvida funcione corretamente será necessário que o cliente e o servidor atendam alguns requisitos de software e hardware. Assim, o cliente, representado por dispositivos móveis como um celular, deverá possuir a plataforma J2ME Connected Limited Device Configuration (CLDC), o perfil MIDP 2.0 e a API do bluetooth com Java JSR-82 presente no dispositivo. Geralmente aparelhos com bluetooth vindo de fábrica já possuem esse suporte. Do lado do servidor foi utilizado um notebook, com dispositivo adaptador bluetooth dongle USB. E como já mencionado acima, o sistema operacional deve dar suporte a uma pilha de implementação bluetooth, assim, foi utilizado o Windows 7, por possuir uma pilha que pode ser utilizada junto ao Bluecove. A partir das tecnologias já tratadas acima, e tendo como base as concepções e especificações das mesmas, programou-se um sistema de apoio ao acesso a informações relativas ao ambiente educacional dos discentes de uma instituição fictícia, com uso da tecnologia de redes sem fio bluetooth. Especificamente, uma consulta de notas das disciplinas de um determinado aluno. O sistema tem como objetivo verificar a possibilidade e viabilidade de se fornecer mais uma opção de acesso a informações a um ambiente de consulta acadêmico, fazendo uso de uma tecnologia pouco utilizada para essa tarefa, mas que se encontra disponível na maioria dos dispositivos móveis, o bluetooth. O sistema deve permitir que um discente possa fazer uma consulta rápida a suas notas mesmo quando não estiver a sua disposição um computador conectado a
  • 51. 50 internet, mas carregando um dispositivo de acesso móvel contendo funções de rede bluetooth, como a maioria dos celulares. Assim, o programa pretende agregar um serviço, uma possibilidade a mais de se fazer uma consulta em um ambiente escolar, utilizando essa tecnologia presente, contudo pouco explorada. O software do lado do servidor caracteriza-se como uma espécie de totem bluetooth, aguardando conexões dos usuários. O programa emula através do RFCOMM uma porta serial implementando o perfil SPP, disponibilizando um serviço e esperando por uma conexão. Um cliente, após uma busca por dispositivos bluetooth achará o servidor e poderá assim receber as notas cadastradas a este usuário. O servidor fica responsável por disponibilizar um serviço para o cliente. O cliente fica responsável por descobrir os dispositivos e buscar os serviços, no caso, no servidor. Todo código escrito para desenvolver o programa servidor e o programa cliente pode ser revisado através do Apêndice A. Abaixo será detalhado como foi desenvolvido o sistema, explicando suas classes e métodos mais importantes. Os códigos e as telas do sistema encontram-se nos Apêndices A e B respectivamente. O programa servidor foi desenvolvido na IDE Netbeans, criando um projeto Java que possui duas classes. A classe principal que contem o cerne do programa e uma classe secundaria responsável pela consulta dos dados. Primeiro o servidor inicia a pilha de protocolos bluetooth (parte implementada em software e parte em hardware, como já descrito acima) e fica rodando o serviço no modo de descoberta General Inquiry Access Code (GIAC), onde o serviço fica sempre ativo e rodando a espera de conexões. Ou seja, o aplicativo do servidor disponibiliza um serviço e aguarda conexões de clientes. O método acceptAndOpen() fica travado esperando até que uma conexão seja estabelecida. Quando isso ocorre ele retorna um objeto StreamConnection que nesse caso representa a conexão bluetooth. A seguir um potencial cliente deve fazer uma pesquisa por dispositivos, um inquiry, e ao encontrar ocorre o pareamento entre o servidor e o cliente. Após isso o cliente faz uma pesquisa por serviços disponíveis no servidor. O servidor então envia os dados para o cliente através da conexão RFCOMM e por fim o cliente recebe os dados. A linguagem Java através do JSR-82 possibilita uso de pacotes, classes e métodos específicos para se desenvolver e trabalhar com o bluetooth. Um exemplo