Estudo de CI.C.S.; aso / CSOLER, ase Estudy FEDECHEN, E.A.; CATARINO, L. Gerenciamento de Mensagens Internas Via Comunicação Bluetooth Desktop-Celular Internal Messages Management Via Desktop-Celular Bluetooth Comunication Emerson André Fedechena*; Iolanda Cláudia Sanches Catarinoa; Luciano Solera Curso de Engenharia da Computação, Universidade Norte do Paraná, PR, Brasil a *E-mail: [email protected] Resumo Este artigo apresenta uma ferramenta para o gerenciamento de mensagens dentro de ambiente organizacional via comunicação Bluetooth entre um servidor desktop e celulares clientes. O propósito desta solução é melhorar a organização e a entrega de mensagens entre o meio administrativo empresarial e seus colaboradores. O projeto concentrou-se na facilidade de uso e disponibilidade no lado servidor (Desktop) baseado na tecnologia J2SE – Java Standard Edition, biblioteca BlueCove e em interface simples com configurações mínimas exigidas no lado cliente (celular) para prover rapidez de uso e exigir o mínimo de memória do dispositivo durante a execução das consultas. Ao final deste artigo é apresentada a aplicação desta ferramenta na comunicação interna entre a coordenação e alunos dos cursos de Engenharia da Computação e Tecnologia em Análise e Desenvolvimento de Sistemas da unidade CCET da Unopar – Londrina. Palavras-chave: Bluetooth. Desktop. Celular. J2ME. Abstract This article presents a Bluetooth messages management tool for organizational environments via desktop server and cellular clients communication. This purpose of this solution is to improve the organization and delivery of messages between administrative center and its employees. The project focus in the simplicity and availability in the server side (Desktop) based on J2SE technology – Java Standard Edition, Bluecove libraries, and in simple interface with minimum configuration required in the client side (cellular) in order to provide fast operation and minimum memory demand of the device during the execution of the consultations. In the end of this paper the application of this tool as communication interface between coordination room and students of Computer and Technology in Analysis and System Development of CCET Unopar - Londrina. Keywords: Bluetooth. Desktop. Celular. J2ME 1 Introdução Comunicação basicamente trata-se do processo de troca de informações entre elementos. Em um ambiente empresarial, a comunicação é a relação da empresa com o seu público interno e externo, envolvendo um conjunto de procedimentos e técnicas destinados à intensificação do processo de comunicação (MATOS, 2009). Em um ambiente universitário, a comunicação interna entre a área administrativa e os alunos tende a ser mais intensa do que a encontrada em outras organizações empresariais, visto que cada aluno representa um interesse pessoal único que se relaciona com todas as camadas administrativas. Os canais de comunicação geralmente utilizados pelas universidades para se comunicar com seus públicos internos constituem-se em: jornal institucional, revista institucional, mural, site/portal, Intranet, rádio, TV universitária, newsletter, ouvidoria, caixa de sugestões, etc. (CRUZ, 2009). Ao criar um processo de comunicação interno bem estruturado, cria-se um mecanismo que fortalece o interrelacionamento entre as partes capaz de intensificar a participação e coleta de novos dados que poderão ser utilizados em tomadas de decisões futuras. UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 55-59, Nov. 2011 A elaboração de um sistema de gerenciamento de mensagens internas baseado na comunicação Bluetooth entre um servidor Desktop e unidades clientes móveis (celular) visa criar um meio de comunicação ágil que fortalecerá o inter-relacionamento entre o meio administrativo e os alunos. O propósito inicial do projeto é gerenciar localmente um banco de dados com mensagens administrativas e propagálas de forma direta (pessoal) ou por departamentos conforme requisitadas pelas aplicações móveis instaladas nos celulares dos participantes. O sistema foi desenvolvido dentro do projeto PROMIDIA, que visa o desenvolvimento de softwares para plataformas móveis, fortalecendo o aprendizado do grupo por meio da pesquisa e prática aplicada na análise, planejamento, implementação e aplicação da solução no Centro de Ciências Exatas e Tecnológicas da Universidade Norte do Paraná (UNOPAR). 2 Tecnologias Aplicadas A integração de sistemas computacionais vem ocorrendo de forma cada vez mais frequente, eliminando barreiras e facilitando a vida de milhares de pessoas com novos serviços sendo oferecidos. Sabe-se também que junto com esta 55 Gerenciamento de Mensagens Internas Via Comunicação Bluetooth Desktop-Celular integração, a utilização de aparelhos celulares tem crescido muito nos últimos anos, chegando a mais de 197 milhões no Brasil (ANATEL, 2010), e que associado com os demais dispositivos tem se mostrado de grande importância no dia a dia. Para que toda esta integração ocorra foi necessário o estudo de tecnologias específicas para criação, transmissão e recebimento da informação de forma íntegra e concisa. Dentre estas tecnologias podemos citar o Bluetooth e Java. Piconet A Scatternet Piconet B 2.1 Sistema de comunicação Bluetooth Bluetooth é uma forma de conexão de dispositivos sem fio. Sua rede transmite voz e dados via ondas de baixa potência e consumo de energia. Feita para funcionar no mundo todo, fez-se necessário a adoção de uma faixa de frequência de rádio aberta chamada de ISM (Industrial, Scientific, Medical) que opera na faixa 2,45GHz. Por utilizar radiofrequência para comunicação entre os elementos que compõem a rede, o Bluetooth pode se comunicar com qualquer dispositivo que esteja em sua área de alcance, não necessitando que os dispositivos estejam um de frente para o outro como no caso do infravermelho (SIG, 2010). Ao utilizar uma faixa aberta de rádio, é necessário garantir que o sinal não sofra e não gere interferências, para isso foi criado o esquema de comunicação FH-CDMA (Frequency Hopping Code Division Multiple Access), que faz com que a frequência seja dividida em vários canais (79). Utiliza-se então o salto de frequência a partir do momento que o dispositivo efetua a conexão, fazendo com que o dispositivo troque de canal a cada 625 µs (microssegundos). Estas 1600 trocas por minuto praticamente impossibilita que dispositivos A e B transmitam dados ao mesmo tempo e na mesma frequência para um dispositivo C, evitando problemas de transmissão. Quando os dispositivos com Bluetooth se comunicam ocorre uma troca de dados para determinar se eles possuem serviços compatíveis ou se um deve controlar o outro (mestre / escravo). Quando esta comunicação ocorre é formada uma rede entre os dispositivos chamada de piconet. A piconet (Figura 1) pode suportar até 8 dispositivos conectados simultaneamente (1 mestre / 7 escravos), entretanto é possível fazer sobreposição de redes piconet, formando uma rede maior chamada de scatternet (Figura 2). Piconet A Dispositivo escravo na Piconet A Figura 1: Piconet 56 Dispositivo Escravo na Piconet A - Mestre Piconet B Dispositivo escravo na Piconet A Dispositivo escravo na Piconet B Figura 2: Scatternet Para que seja possível programar e utilizar diversos recursos que o Bluetooth disponibiliza foi criado a especificação JSR82 que padroniza as APIs Java, facilitando na integração dos dispositivos no ambiente Bluetooth. 2.2 JSR-82 Para que fosse possível padronizar a utilização da tecnologia Bluetooth em dispositivos móveis, foi desenvolvida a JSR82 (Java Specification Request). Esta especificação permite o desenvolvimento de aplicações que troquem dados através de uma comunicação Bluetooth de forma mais simples e segura. A JSR-82 é dividida em dois pacotes: javax.bluetooth e javax.obex. O primeiro apresenta classes genéricas e representa o núcleo da API já o segundo pacote fornece transferência de objetos com o protocolo OBEX (Object Exchange), sendo opcional e não implementado em alguns dispositivos. Apesar de ser considerado padrão, a especificação JSR82 não é intuitiva e requer um bom conhecimento sobre arquitetura Bluetooth, o que dificulta muito a utilização por programadores menos experientes. Felizmente existem diversos projetos que abstraem parte do código da comunicação entre dispositivos, o que torna a programação mais fácil e intuitiva, como é o caso do projeto de código aberto Bluecove utilizado no desenvolvimento deste trabalho. 3 Projeto e Implementação Dispositivo Mestre na Piconet A Scatternet Dispositivo Mestre na Piconet A O desenvolvimento deste trabalho foi dividido basicamente em três etapas: a primeira concentrou-se na composição da camada de comunicação entre um computador pessoal (desktop), para atuar como servidor de mensagens, e as estações clientes (celulares) via Bluetooth; a segunda consistia em desenvolver a camada de apresentação do servidor, baseado em Java Web, e por fim, os módulos de manipulação das mensagens para ambas as partes comunicantes. UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 55-59, Nov. 2011 FEDECHEN, E.A.; CATARINO, I.C.S.; SOLER, L. 3.1 Comunicação Bluetooth desktop/celular A implementação da comunicação Bluetooth por meio da linguagem Java está disponível através da Plataforma Java 2 Micro Edition (J2ME). No entanto estas facilidades não foram definidas de forma nativa para a Plataforma J2SE. Com o objetivo de resolver esta limitação, criou-se a Bluecove, uma biblioteca Java para Bluetooth (implementação JSR82) que pode ser utilizada por uma aplicação J2SE sobre os sistemas operacionais Windows, Mac OS e Linux como pode ser visto na figura 3. Java VM Applications BlueCove CLDC API (GCF) API for Bluetooth (JSR-82) BlueCove JNI libraries Operating System & Bluetooth Stack Service Discovery Protocol (SDP) OBEX (object exchange) RFCOMM (serial emulation) Logical Link Control and Adaptation Protocol (L2CAP) public UUID uuid = new UUID(“102030405060708090A1 B1C1D1E1F111”, false); String nomeServico = “BluetoothUNOPAR”; String url = “btspp://localhost:” + uuid.toString() +”;name=”+ nomeServico; public StreamConnectionNotifier conexaoServidor = (StreamConnectionNotifier)Connector.open( url ); A classe “Connector” é definida pela J2ME e contém os métodos usados para criar todos os objetos de conexão (IBM, 2010). Dispositivos Bluetooth mantém informações sobre seus serviços em um Service Discovery DataBase (SDDB). Um SDDB contém entradas de registros de serviços onde cada um desses registros contém atributos que o descrevem. A seguir, é criado um “template” e é definido nele os atributos do serviço: “0x0008” para identificação do atributo e “0xFF” para indicar que o serviço está disponível. ServiceRecord template = dispositivo.getRecord( conexaoServidorStream ); template.setAttributeValue( 0x0008, new DataElement( DataElement.U_INT_1, 0xFF ) ); template.setDeviceServiceClasses( SERV_CLASS ); Host controller interface (HCI) Bluetooth Controller Link Manage Protocol (LMP) Baseband Link Controller (LC) Bluetooth Radio Fonte: http://bluecove.org/index.html Figura 3: Interface Bluecove com sistemas operacionais Dentre os serviços básicos oferecidos pela biblioteca, podemos citar a descoberta de dispositivos Bluetooth nas proximidades, a busca e disponibilização de serviços e, por fim, o envio e o recebimento de dados. O sistema começa com o módulo servidor ativado e permitindo a sua descoberta por tempo indeterminado, demonstrado no código Java abaixo: LocalDevice dispositivo = LocalDevice.getLocalDevice(); dispositivo.setDiscoverable(DiscoveryAgent.GIAC); Para viabilizar a sua descoberta, o servidor recebe um identificador universal de 128 bits para este caso, e o serviço de mensagens recebe um nome para diferenciá-lo, informações úteis no estabelecimento de uma conexão: UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 55-59, Nov. 2011 O argumento “SERV_CLASS” é uma constante definida no projeto com valor “0x400000” (classe de serviço de telefone) para declarar o tipo de Classe de Serviço que será iniciada. A partir daí o servidor começa a aceitar conexões clientes, ficando bloqueado enquanto um cliente estiver conectado. StreamConnection conexao = conexaoServidorStream. acceptAndOpen(); RemoteDevice dispositivoRemoto = RemoteDevice. getRemoteDevice( conexao ); As classes “DataInputStream” e “DataOutputStream” implementam as classes para codificação e decodificação dos dados no padrão UTF-8 (Unicode Transformation Format) de 8 bits. DataInputStream entrada = conexao. openDataInputStream(); DataOutputStream saida = conexao. openDataOutputStream(); Imediatamente depois de enviada a resposta, a conexão é fechada e o servidor fica aguardando por novas conexões. O lado cliente trabalha de modo semelhante, começando 57 Gerenciamento de Mensagens Internas Via Comunicação Bluetooth Desktop-Celular com a busca por servidores e em seguida por serviços como o descrito abaixo: máquina Desktop e as unidades clientes instaladas nos celulares dos alunos. private DiscoveryAgent agenteDescoberta = dispositivo. getDiscoveryAgent(); boolean resultado = agenteDescoberta. startInquiry(DiscoveryAgent.GIAC, new BluetoothListener()); agenteDescoberta.searchServices(null, servicoUUIDs, dispositivoRemoto, new BluetoothListener() ); Após detectados os serviços disponíveis, o processo de envio e recebimento de mensagens segue o mesmo princípio do servidor. 3.2 Camada de apresentação – Módulo Servidor Durante a criação do servidor de mensagens, ressaltaramse dois aspectos importantes: a facilidade e a disponibilidade de uso. Preocupando-se em atender a estas características que se utilizou da tecnologia Java para aplicações Web, direcionando a aplicação para o formato de sistema distribuído, acessível de qualquer lugar da Internet. Visando oferecer uma interface amigável e interativa ao usuário, utilizou-se a tecnologia Flex que, com seus componentes e funcionalidades, possibilitou alcançar uma apresentação rica e agradável rapidamente. Inicialmente o acesso à interface do módulo servidor ficará restrito aos usuários com o perfil administrativo, mas já criando a base para o acréscimo de serviços a todos os demais. 3.3 A manipulação das mensagens O gerenciamento das mensagens, foco principal deste sistema, é um processo simples, mas que atende às necessidades básicas da comunicação empresarial. O sistema começa com a inserção de novas mensagens pelos usuários administradores. Esta operação pode ser feita local ou remotamente e precisa respeitar o preenchimento dos campos obrigatórios requisitado pela interface servidora (Flex). Com estas informações, o sistema fará o processo de distribuição (Bluetooth) conforme requisitado pelos usuários clientes, previamente cadastrados e classificados pelos seus perfis. As mensagens são mantidas em um banco de dados local (MySQL) até que o seu prazo pré-determinado expire. Outras atribuições imediatas do sistema são a limpeza de mensagens antigas e geração de relatórios de uso e acesso de todos os integrantes do sistema de comunicação. 4 Estudo de Caso: Sistema de Gerenciamento de Mensagens Internas - UNOPAR O sistema de comunicação interna para a Universidade Norte do Paraná foi projetado para se basear na comunicação Bluetooth entre uma unidade servidora, instalada em uma 58 Figura 4: Unidade cliente em execução A escolha deste sistema foi fundamentada na facilidade de acesso e custo reduzido dos dispositivos envolvidos. A operação começa pelo sistema servidor que dependerá de uma antena Bluetooth ativa para poder disponibilizar o serviço. A interface com o usuário implementada no servidor é bastante simples e permite o cadastro de mensagens associadas às turmas, semestres ou matrícula. O usuário deste módulo será a pessoa com acesso e permissão às mensagens que deverão ser publicadas aos alunos. As mensagens possuirão um prazo para expirar e após este prazo o sistema apagará automaticamente as mensagens do banco de mensagens. O sistema servidor gera também listagens com informações de acesso e serviços requisitados no sistema. O processo de uso do sistema cliente resume-se nos seguintes passos: Passo 1: Na área de cobertura, o aluno faz o download do software via diretório compartilhado por Bluetooth no servidor. Passo 2: Na primeira conexão, o aluno fará um rápido cadastro via aplicação onde será requisitado o nome, turma, matrícula, semestre e senha. Este cadastro poderá ser alterado caso o aluno troque de aparelho ou deseja redefinir o seu perfil. Passo 3: Diariamente o aluno poderá executar o programa para consultar o sistema por novas mensagens, que serão filtradas através dos dados do seu cadastro. Como opção, o aluno poderá escolher receber apenas as mensagens novas ou todas as mensagens disponíveis (Figura 5). UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 55-59, Nov. 2011 FEDECHEN, E.A.; CATARINO, I.C.S.; SOLER, L. Passo 5: A comunicação é encerrada. As mensagens podem ser salvas localmente para posteriormente serem relidas ou excluídas permanentemente. 5 Conclusão A ferramenta de comunicação interna baseada na tecnologia Bluetooth mostrou-se solução viável para organizações que necessitam prover um sistema de comunicação entre os setores administrativos e os seus colaboradores. A principal vantagem foi o aproveitamento de uma infraestrutura formada graças à tecnologia já presente em grande parte dos dispositivos utilizados pelos colaboradores e a facilidade de acesso aos demais mecanismos presentes no sistema, Hardware e Software. Como limitação pode-se citar os casos dos colaboradores que não possuem o aparelho com suporte Figura 5: Escolha de serviços oferecidos pelo sistema de mensagens internas Unopar. Passo 4: Após recebidas as mensagens o aluno terá os títulos destas na forma de uma lista que permitirá a seleção para leitura, exclusão ou salvamento local. Bluetooth e a cobertura do sinal que é limitada principalmente por barreiras comumente presentes nos ambientes estudados. Referências ANATEL. Agência Nacional de Telecomunicações. Brasil tem 197,53 milhões de celulares. Disponível em: http://www.anatel. gov.br/Portal/exibirPortalInternet.do#. Acesso em: 21 dez 2010. COMER, D.E. Redes de computadores e internet. 4.ed. São Paulo: Editora Bookman, 2007. CRUZ, C.M.L. Análise da comunicação interna em universidades no Rio Grande do Sul. In: INTERCOM – SOCIEDADE BRASILEIRA DE ESTUDOS INTERDISCIPLINARES DA COMUNICAÇÃO. CONGRESSO BRASILEIRO DE CIÊNCIAS DA COMPUTAÇÃO. 32. Curitiba, 2009. FOROUZAN, B.A. Comunicação de dados e redes de computadores, 3.ed. Porto Alegre: Bookman, 2006. HAR-SHAI, L. et al. Inter-piconet scheduling in bluetooth scatternets. Technion – Israel Institute of Technology, Departament of Electrical Engineering, Haifa, Israel, 2002. IBM. Networking with J2ME. Disponível em: http://www.ibm. com/developerworks/java/library/wi-jio/. Acesso em 13 dez. 2010. IEEE 802. IEEE 802.15 WPAN Task Group 1 (TG1). Disponível em: http://www.ieee802.org/15/pub/TG1.html. Acesso em: 12 dez. 2010. MATOS, G.G. Comunicação empresarial sem complicação. 2.ed. São Paulo: Manole, 2009. Figura 6: Mensagem exibida no modulo cliente UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 55-59, Nov. 2011 SIG. The bluetooth special interest group. Disponível em: http:// www.bluetooth.com. Acesso em: 13 dez. 2010. 59 Gerenciamento de Mensagens Internas Via Comunicação Bluetooth Desktop-Celular 60 UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 55-59, Nov. 2011