UNIVERSIDADE DE SANTO AMARO FACULDADE DE SISTEMA DE INFORMAÇÃOBACHARELADO DESENVOLVIMENTO DE APLICATIVO PARA DISPOSITIVO MÓVEL UTILIZANDO MEIOS DE COMUNICAÇÃO ANDRE ALOISE ALEXANDRE DEGOUY LEANDRO AUGUSTO RAFAEL FERREIRA RUDGE RENAN SÃO PAULO 2008 ANDRE ALOISE ALEXANDRE DEGOUY LEANDRO AUGUSTO RAFAEL FERREIRA RUDGE RENAN DESENVOLVIMENTO DE APLICATIVO PARA DISPOSITIVO MÓVEL UTILIZANDO MEIOS DE COMUNICAÇÃO Monografia apresentada à Faculdade de Sistema de Informação da Universidade de Santo Amaro – UNISA, como parte dos requisitos para conclusão do curso de Bacharelado em Sistema de Informação. Orientador: Prof. Eugênio Nassu SÃO PAULO 2008 2 SUMÁRIO Dedicatória ............................................................................................ 4 Agradecimentos ................................................................................... 5 Resumo ................................................................................................. 7 Abstract ................................................................................................. 8 1. Introdução ....................................................................................... 8 1.1. 1.2. Objetivos ...................................................................................................... 9 Estruturas do Trabalho ............................................................................... 9 2. Comunicação para Dispositivos Móveis .................................... 10 2.1. Tecnologias de Comunicação Sem Fio ................................................... 11 2.1.1. Bluetooth ............................................................................................ 12 2.1.1.1. Vantagens.................................................................................... 14 2.1.1.2. Desvantagens ............................................................................. 14 2.1.2. Wireless .............................................................................................. 15 2.1.2.1. Frequency Hopping Spread Spectrum...................................... 17 2.1.2.2. Direct Sequence Spread Spectrum ........................................... 18 2.1.2.3. Modos de Operação ................................................................... 18 2.1.2.4. Vantagens.................................................................................... 19 2.1.2.5. Desvantagens ............................................................................. 19 2.2. Desenvolvimento de Aplicativo ............................................................... 20 2.2.1. UML ..................................................................................................... 20 2.2.1.1. Diagrama de Caso de Uso.......................................................... 21 2.2.1.2. Diagrama de Classes .................................................................. 22 2.2.1.3. Diagrama de Seqüência ............................................................. 23 2.2.2. Java ..................................................................................................... 23 2.2.2.1. J2ME ............................................................................................ 25 2.2.2.2. J2EE ............................................................................................. 26 2.2.2.2.1. Servlet...................................................................................... 26 2.2.2.2.2. JSP ........................................................................................... 27 2.2.3. Banco de Dados ................................................................................. 28 2.2.3.1. SQL .............................................................................................. 31 3. Implementação das Tecnologias e Desenvolvimento ............... 32 3.1. Wireless ..................................................................................................... 32 3.2. UML ............................................................................................................ 33 3.2.1. Caso de Uso ....................................................................................... 33 3.2.2. Diagrama de Atividades .................................................................... 34 3.2.3. Diagrama de Classe ........................................................................... 36 3.2.4. Diagrama de Sequência .................................................................... 36 3.3. J2EE ........................................................................................................... 36 3.3.1. Arquitetura MVC .................................................................................... 36 3.4. Mysql .......................................................................................................... 39 4. Conclusão ..................................................................................... 40 4.1. 4.2. Dificuldades Encontradas ........................................................................ 40 Trabalhos Futuros..................................................................................... 40 5. Referência bibliográfica ............................................................... 41 3 Dedicatória Agradecimento 4 Agradecimentos Agradeço a Deus e aos nossos pais, pela vida. Gostaríamos de agradecer imensamente a todos que contribuíram para este trabalho. Agradecemos às nossas famílias, pelo apoio, compreensão e incentivo, não só durante o curso, mas em todos os momentos importantes de nossas vidas. Agradecemos também ao nosso orientador Professor Eugenio Nassu e amigos em comum que formamos ao longo do curso, e a todos os nossos Mestres que contribuíram para a nossa formação acadêmica, pessoal e profissional. Por fim agradecemos a todos os nossos amigos, namoradas ou esposas que contribuíram de todas as formas para a realização deste trabalho com apoio, incentivos e compreensão. Que a força do medo que tenhamos não nos impeça de ver o que ansiamos... Que a arte nos aponte uma resposta mesmo que ela não saiba e que ninguém a tente complicar pois é preciso simplicidade pra fazê-la florescer. {Porque metade de nós é a criação e na outra habita o criador.} (adaptado de Metade, de Oswaldo Montenegro. ...Porque na natureza, tudo se transforma.) 5 6 Resumo Proposta: Este trabalho tem como objetivo desenvolver uma solução voltada à área escolar, facilitando o desenvolvimento e interação do professor com o aluno na sala de aula através do diário de aula eletrônico. Hoje identificamos que essa possibilidade é possível com meios de comunicação portáteis como celulares smartphones. Utilizando meios de comunicação usando ondas de rádio. Método de pesquisa: os dados serão coletados utilizando um dispositivo móvel, onde serão enviados a um servidor com os dados coletados. Essa possibilidade só será possível dentro do projeto com o desenvolvimento de aplicações em Java. Resultado: com os dados coletados que foram enviados ao servidor, usando esse dispositivo móvel o próprio professor terá informações sobre a presença dos alunos a sua aula e até mesmo o aluno terá acesso as suas próprias informações sobre a presença de aula no mês e aulas que compareceu nos meses das aulas no período escolar. Fator principal: A elaboração desse projeto afirma que a portabilidade usando dispositivos móveis, tem grande ganho no desenvolvimento do aluno e o professor dando confiabilidade nas informações obtidas na sala de aula. 7 Abstract Proposal: The objective of this work is to develop a solution that will make the interaction between teachers and students easier in class, through an electronic class diary which can be developed during class. Today we identified that these kind of method is possible, through portable communicators’ such as smart phone. Or by using radio waves communicators. Research method: A mobile modem will collect all of the data, the data will then be sent to a server were all the collected data will be stored. This project will need to be developed on java. Results: By using the mobile modem the teacher will be able to access the collected data stored in the server, which will provide him information on student’s presence in his classes during the year. These information can also be accessed by students so that they can monitor their presence in school. Principal Fact: The elaboration of this project proves that: by using portable students and teachers will develop their performance in school, and the dates’ will be more trustful and accurate. 1. Introdução Conforme Barros, Santos, Ramalho (2003) com o crescimento da tecnologia de telefonia celular, estes dispositivos, que antes eram centrados na transmissão de voz, 8 passaram cada vez mais a focar seus objetivos em processamento e transmissão de dados. Rodar aplicações, tirar fotos, receber e enviar emails ou navegar na web estão se tornando atividades comuns aos celulares atuais. Devido ao seu grande poder de conectividade e a sua mobilidade. Do mesmo modo como acontece com software para computadores pessoais, nos últimos anos uma tendência que vêm se confirmando é o desenvolvimento de aplicativos para dispositivos móveis, os quais estão se difundindo de forma rápida em todo o mundo. A busca pela portabilidade faz com que haja o crescimento do mercado no desenvolvimento de novos aparelhos que possuem comunicação ágil rápida. Quando se fala de Wi-Fi e Bluetooth que são meios de comunicação de dados bastante conhecidos surge certa confusão nas pessoas. Muita gente acha que as duas coisas têm o mesmo propósito ou, até mesmo, que são a mesma coisa. Na verdade, as duas tecnologias têm propósitos totalmente diferentes um do outro. 1.1. Objetivos Objetivo desse trabalho é demonstrar a implementação de um projeto com intuito de criar um diário de controle de classe utilizando tecnologias e ferramentas que tornem possíveis essa aplicação dentro do sistema educacional focando o seu uso primeiramente na da sala de aula. O aumento da disponibilidade das tecnologias sem fio trouxe ao mercado a facilidade de se trabalhar com diversos dispositivos moveis demonstrando aos seus usuários a sua enorme abrangência possibilitando o uso nos mais diferentes ambientes. 1.2. Estruturas do Trabalho Esse trabalho se encontra dividido em quatro capitulo: No primeiro capitulo, encontra-se a introdução, objetivo a ser alcançado no desenvolvimento do projeto. No segundo capitulo é apresentado a fundamentação 9 teórica, demonstrando as tecnologias disponíveis para a utilização em dispositivos moveis dentre elas bluetooth , wireless e JAVA, padronização de modelagem de sistemas, conceitos de repositórios. O terceiro capítulo aborda o desenvolvimento do trabalho,apresentando os requisitos, especificação e artefatos gerados durante a especificação do projeto, ferramentas utilizadas na especificação, desenvolvimento e execução do protótipo,resultados e problemas encontrados durante o desenvolvimento. E finalmente no quarto capítulo trata das considerações finais sobre o trabalho e sugestões para trabalhos futuros. 2. Comunicação para Dispositivos Móveis Dispositivos móveis são aparelhos que têm como principal característica possibilitar seu uso, mesmo com a mobilidade de quem o utiliza. Dentre estes, os que mais vêm tendo destaque atualmente são os celulares, pois além de fornecerem serviços de comunicação, implementam uma série de funcionalidades adicionais, como jogos, bate-papo, agenda, além de muitos aplicativos com objetivos específicos para cada usuário (Bernal, 2002). Segundo Cesar Costa, sistemas de comunicação de dados desempenham um papel muito importante da sociedade brasileira e mundial, o cenário atual aponta que esse setor se tornará ainda mais importante nos próximos anos. Por comunicação de dados entendemos uma cadeia de comunicação constituída basicamente porte três elementos: fonte de informação, sistema de comunicação e destino, conforme ilustrado na figura abaixo. Fonte de informação Sistema de Comunicação Destino 10 Figura 1. Cadeia de comunicação Pode-se dizer que informação ou mensagem é qualquer sinal que contenha um dado que se deseja transferir da fonte par ao destino. A fonte de informação é a origem da informação a ser transmitida. Costuma apresentar-se na forma de sons, imagens e texto. Um exemplo, a voz humana é uma fonte de informação, um computador, celular. O Sistema de comunicação é o conjunto de equipamentos e materiais, elétricos e eletrônicos, necessários para compor um esquema físico, perfeitamente definido, com o objetivo de estabelecer enlaces de comunicação (links) entre, pelo mesmo, dois distantes, preservando ao máximo as características originais da informação. Por exemplo, sistema de telefonia, as redes de computadores na internet, etc. O destino é onde a informação será utilizada. Por exemplo, celular num sistema móvel de telefonia, terminal de computador na internet. 2.1. Tecnologias de Comunicação Sem Fio Segundo Tanembaum (1997), a busca por novas tecnologias de comunicação entre os dispositivos móveis vem crescendo consideravelmente nos últimos anos. Dentre outras, possibilitar o acesso contínuo a esses dispositivos de qualquer lugar é uma das principais preocupações dos desenvolvedores, com o intuito de tornar o uso viável. Como o próprio nome diz, comunicação sem fio nada mais é do que a troca de informações entre dispositivos sem a necessidade de uma conexão física entre os mesmos. Isso se dá de várias formas, variando de acordo com o dispositivo que está sendo utilizado, bem como com as tecnologias por ele. Segundo Loureiro (2003), dispositivos computacionais moveis não são simples organizadores pessoais. Com o desenvolvimento tecnológico de fabricação de circuitos integrados que ocorreu, principalmente, durante a última década, tem sido possível a fabricação de dispositivos computacionais que possuem um novo paradigma: paradigma mobilidade. Esse paradigma está mudando a forma de 11 trabalharmos, comunicarmos, divertirmos e estudamos e fazemos atividades quando estamos em movimentação ou não desejamos ficar “presos” a uma infra-estrutura fixa de comunicação de dados. Computação móvel esta se tornando uma área madura e parece destinada a tornar o paradigma computacional dominante no futuro com dispositivos moveis, handhelds, PDA’s(Personal Digital Assistants), celulares e dispositivos com interface com GPS (Global Positioning System). Dentre as diversas infra-estruturas de comunicação sem fios existentes, as mais utilizadas são a comunicação celular de segunda geração chamada 2G (baseada nos padrões TDMA, CDMA e GSM) geração 2,5G que é uma solução intermediaria baseada em pacotes, a 3G, redes locais baseadas em padrão IEEE 802.11, redes pessoais baseadas no Bluetooth. 2.1.1. Bluetooth Bluetooth é um padrão proposto pelo Bluetooth SIG (Special Interest Group) [Bluetooth Special Interest Group], que é um consórcio das maiores empresas de telecomunicações e computação do mundo. O padrão opera na faixa ISM (Industrial, Scientific, and Medical) de 2,4 GHz e tem como princípio propor uma tecnologia de baixo custo para conectividade sem fio. Inicialmente o padrão foi projetado como uma solução para substituição de cabos usados na comunicação de periféricos (figura 2) por comunicação via rádio. No entanto, ele permite a conexão entre diferentes tipos de dispositivos possibilitando a formação de redes ad-hoc (figura 2). A estrutura básica de comunicação no Bluetooth é chamada de piconet. A piconet tem a característica de ser uma rede onde um nodo central, definido como mestre se comunica ativamente com os outros nodos chamados de escravos, formando uma topologia em estrela, com no máximo sete elementos. Piconets podem se conectar entre si formando scatternets (figura 2). O pequeno alcance de comunicação dos dispositivos faz com que essas piconets possuam a característica de formarem pequenas redes pessoais, conhecidas como PAN – Personal Área Network. Algumas das principais diferenças entre o Bluetooth e outros tipos de redes sem fio são: 12 _ Redes formadas basicamente de dispositivos com baixa capacidade e pouca energia; _ As conexões entre dois dispositivos possuem diversos estados, com o objetivo de economizar energia e gerenciar a formação de outras piconets; _ Formação espontânea de piconets, possibilitando modificações constantes em sua topologia. Essas modificações não são apenas em função da mobilidade, como normalmente acontece nas redes sem fio; _ As scatternets possuem pequenos diâmetros, sendo formadas por menos do que 10 piconets, pois o Bluetooth prevê que as PAN’s façam comunicação entre usuários e dispositivos; O estabelecimento da conexão entre dois nodos passa por um procedimento de identificação e sincronização que necessita de uma temporização para ocorrer efetivamente. Outro ponto é a maneira que o canal entre o mestre e o escravo é tratado. A comunicação de rádio do Bluetooth usa um esquema de salto de freqüência (frequency hopping) para permitir uma comunicação robusta em ambientes com muita interferência e uma comunicação mais segura e personalizada, com um número mínimo de colisões quando comparado com outros padrões. A especificação define dois sistemas de salto de freqüência, um que trabalha sobre 73 freqüências diferentes, e outro sobre 23. Durante a comunicação, é utilizado o TDD (Time Division Duplex), que possibilita o suporte a comunicação duplex. A seqüência do salto de freqüência é definida pelo identificador único do mestre na rede, um número gerado de forma similar ao especificado pelo IEEE802, e o TDD é controlado por um relógio que se encontra no mestre, o que faz com que todos os nodos que se comunicam com o mestre passem por um processo de identificação e sincronização. 13 Figura 2– Tipos de redes formadas entre dispositivos Bluetooth 2.1.1.1. Vantagens Baixar o custo dos circuitos necessários para adição das características de comunicação móvel em dispositivos portáteis para computação; A tecnologia implementa a interconexão independente da características ou natureza do dispositivo; A tecnologia pode ser facilmente integrada aos protocolos de comunicação, por exemplo, TCP/IP; Baixo consumo de energia; Fácil de usar habilita o produto a não precisar instalar de drives, sendo usá-lo e configurá-lo; Banda de Radio (ISM) não paga, diferentemente da banda GSM, por exemplo, que é necessário firmar um contrato para utilização; O Bluetooth suporta comunicação tanto por voz quanto por dados, sendo útil nas mais diversas aplicações; 2.1.1.2. Desvantagens 14 O número máximo de dispositivos que podem se conectar ao mesmo tempo é limitado, principalmente se compararmos com a rede cabeada; O alcance é bastante curto, por isso uma rede pode ser apenas A taxa de transferência de dados inviabiliza muitas das local; aplicações multimídia atuais; 2.1.2. Wireless A implementação mais comum na topologia sem fio é que utilizam RF (radiofreqüência), baseada no padrão IEEE (Institute of Electrical and Electronic Engineers) 802.11b, que utiliza a faixa de 2.4 GHz do espectro de freqüências. Devido ao crescimento da computação móvel, surgiu a necessidade de novos meios de transmissão de dados. Interligar as redes de dois prédios, adicionar novos usuários e equipamentos a rede e permitir a comunicação onde há dificuldade impossibilidade da passagem de cabos tornou-se possível com o surgimento das Redes Locais Sem Fio (Wireless LAN). Essas redes possibilitam o uso de computadores e envio de dados em qualquer lugar, dentro da cobertura da rede, com uma conexão confiável, flexível, de alto desempenho, e sem a necessidade de estar conectado a rede através de cabos. O transporte de dados por meio de rede wireless envolve três elementos físicos distintos: sinais de rádio, o formato de dados e a estrutura de redes. Cada um desses elementos é independente dos outros dois, portanto é necessário definir os três quando se cria uma nova rede. No que se refere ao modelo de referência da camada OSI, o sinal de rádio opera na camada física, enquanto o formato de dados controla várias das camadas mais elevadas 15 As redes sem fio não visam competir ou substituir as redes cabeadas, mas sim complementá-las, permitir a visualização rápida dos dados independente da localização do usuário. Os dados são transmitidos pelo ar ou espaço livre que se constituem de meios naturais para propagação de sinais eletromagnéticos, provendo uma interconexão completa, e permitindo uma grande flexibilidade na localização das estações. A única diferença entre uma rede sem fio e uma rede tradicional é o meio físico, e justamente para padronizar o acesso ao meio físico sem fio e permitir a interoperabilidade entre fabricantes, o IEEE (Institute of Eletrical and Electronic Engineers) aprovou a norma IEEE 802.11 que regulamenta redes sem fio, operando na faixa de 2,4 GHz. A rede sem fio suporta os principais tipos de protocolos em frames Ethernet: TCP/IP, IPX, NETBEUI. A velocidade varia de 1 a 11 Mbps e a distância chega a 70 km. Segundo essa norma a unidade básica das redes sem fio é a célula – área de cobertura conhecida como BSS (Basic Service Set). O alcance de uma célula depende da força dos sinais de radiofreqüência, das paredes e outros fatores físicos. Uma célula básica é composta por um ponto de acesso e as estações a ele associadas. Em uma área que compreenda vários pontos de acesso conectados à mesma rede, as áreas de cobertura das várias células são ditas sobrepostas. A cobertura sobreposta é importante, pois permite aos usuários com estações de trabalho portáteis movimentarem-se livremente entre as células sem que ocorra perda da conexão. Essa liberdade de movimento é denominada roaming e é transparente ao usuário. Como no padrão Ethernet, a 802.11 possui um protocolo de Controle de Acesso ao Meio (MAC, CSMA/CD). Existem, basicamente, quatro possíveis tipos de tecnologias de transmissão empregadas na construção de redes locais sem fio, são elas: · Infravermelho: A maior vantagem do infravermelho é sua habilidade em carregar uma grande largura banda, podendo atingir até 16 Mbps, operando na faixa de 100 THz. 16 O infravermelho pode ser facilmente obstruído, a luz não passa objetos sólidos e opacos como parede e pode receber interferência de iluminação do ambiente. · Rádio Microondas A tecnologia de microondas não é exatamente uma tecnologia de LAN. Seu principal uso é interconectar rede locais em diferentes prédios. Devem ser usados aparatos para microondas (microwave dish-aparato com formato de uma Atena parabólica) em ambos os lados da conexão. As "microwave dishes" devem ter visada direta (estar na mesma linha de visão) para transmitir e coletar os sinais do microondas. · Laser Os sinais a lazer são os mais comumente utilizados para conexões ponto-aponto de longa distância, como interligação de duas LAN’s em prédios separados, por exemplo. Os sistemas baseados em tecnologias lazer necessitam de visada direta entre os pontos para poder operar, isto é, o receptor deve estar na mesma linha do transmissor para haver comunicação entre os pontos de conexão. Os sistemas wireless a laser estão sujeitos a interferências climáticas, como chuvas nevoeiros que podem interromper a transmissão. · Spread Spectrum É a tecnologia de transmissão mais utilizada por ser menos sensível a interferências do meio, e atravessar obstáculos com mais facilidade que sistemas que utilizam microondas, por fazer uso de freqüências menores, portanto mais fáceis de ultrapassar paredes, por exemplo. A função fundamental dos sistemas Spread Spectrum é aumentar a largura de banda passante (bandwidth). Existem dois tipos de técnicas Spread Spectrum: · Frequency Hopping Spread Spectrum (FHSS – “Freqüência Saltadora”) · Direct Sequence Spread Spectrum (DSSS – “Sequenciamento Direto”) 2.1.2.1. Frequency Hopping Spread Spectrum 17 Nesta técnica, o transmissor envia o sinal sobre uma série aparentemente randômica de freqüências de rádio. Um receptor, “saltando” entre tais freqüências em sintonia com o transmissor, capta o sinal. A mensagem é totalmente recebida apenas se a série de freqüências é conhecida, ou seja, apenas o receptor que conhecer as freqüências nas quais o transmissor “saltará” para enviar o sinal, poderá receber os dados com sucesso, onde o receptor contém o mesmo algoritmo do transmissor. 2.1.2.2. Direct Sequence Spread Spectrum Já nesta tecnologia, os transmissores enviam o sinal com a adição de bits redundantes de dados chamados “chips”, ou seja, com um falso ruído, garantindo a resistência a interferências. São adicionados pelo menos dez chips para cada bit de dado. Um receptor precisa conhecer o código de difusão de um transmissor para poder decifrar os dados corretamente. Uma vez que o receptor tenha captado todos os sinais de dados, ele usa um correlator, baseado no código de difusão, para remover os chips e truncar o sinal ao tamanho original. O código de difusão é o que permite que diversos sistemas de Direct Sequence operem em uma mesma área sem um interferir no outro. 2.1.2.3. Modos de Operação As WLAN’s suportam dois modos de operação: infra-estrutura e peer-topeer. O modo de infra-estrutura usa a tecnologia de redes celulares onde cada célula de rádio é controlada por um access point cobrindo uma determinada área geográfica. Neste módulo, o equipamento móvel comunica-se com outros equipamentos ou com a rede de cabos através do access point. Esse modo é normalmente usado em aplicações comerciais, tanto para ambientes fechados ou em áreas abertas, para assegurar a cobertura em grandes áreas os equipamentos móveis podem se comunicar uns com os outros. 18 O modo de operação peer-to-peer é um tipo de topologia ad-hoc onde os terminais remotos fazem troca de dados sem necessidade de um access point. 2.1.2.4. Vantagens • Mobilidade -. sistemas de redes locais sem fio podem providenciar aos usuários acesso à informação em tempo real em qualquer lugar de suas organizações. • Instalação rápida e simples -. instalar uma rede local sem fio pode ser rápido e fácil, além de eliminar a necessidade de atravessar cabos através de paredes e andares. • Flexibilidade - tecnologia sem fio permite que as redes cheguem aonde cabos não podem ir. • Custo Reduzido-. enquanto que o custo inicial de uma rede local sem fio pode ser maior que de uma rede local fixa, a instalação e o ciclo de vida são significantemente mais baixos. • Escalabilidade -. Redes locais sem fio podem ser configuradas segundo diversas topologias de acordo com as necessidades. Configurações podem ser mudadas facilmente e a distäncia entre as estações adaptadas desde poucos usuários até centenas. Segurança o sistema WEP suporta encriptação Wired Equivalente Privacy (WEP) com chave de até 128 bits. Todo o tráfego de rede passa por uma VPN (Virtual Private Network) utilizando o protocolo IPSec (IP Secure) com chave de 1024 bits, garantindo proteção à rede contra ataques externos.Interligação entre matriz e filiais com a VPN (Rede Privada Virtual) é possível conectar matriz a filiais através da Internet, de forma segura, garantindo autenticação, privacidade e integridade. 2.1.2.5. Desvantagens 19 Custo de implantação - Adaptadores Ethernet de alta velocidade são, em geral, 10 vezes mais baratos que adaptadores para redes sem fio. A implementação de redes sem fio reduz significativamente os custos mensais de telecomunicações o que proporciona uma rápida recuperação do capital investido nestes equipamentos. Soluções proprietárias - Devido ao lento procedimento de padronização, muitas empresas precisam apresentar soluções proprietárias, oferecendo funções padronizadas mais características adicionais (tipicamente uma taxa de transmissão mais rápida utilizando uma tecnologia de codificação patenteada). Porém, estas características adicionais funcionam apenas em um ambiente homogêneo, isto é, quando adaptadores do mesmo fabricante são utilizados em todos os nós da rede. Restrições - Todos os produtos sem fio precisam respeitar os regulamentos locais. Várias instituições governamentais e não-governamentais regulam e restringem a operação das faixas de freqüência para que a interferência seja minimizada. Um grande empecilho para o uso deste equipamentos é necessidade de visada direta entre os pontos. Segurança e privacidade – pelo fato de que a comunicação sem fio pode ser capturada a qualquer receptor sintonizado na mesma freqüência da comunicação , torna-se necessário que exista um mecanismo adicional de segurança na implementação desta topologia tal como criptografia da comunicação. A interferência proveniente de dois pontos, outros dispositivos que atuam na mesma banda de espectro e obstáculos tais como paredes ou naturais, tal como montes. 2.2. Desenvolvimento de Aplicativo 2.2.1. UML 20 De acordo Booch; Rumbaug; Ivar (2003), UML (Unified Modeling Language) é uma linguagem padrão para elaboração da estrutura de projetos de software. A UML poderá ser empregada para a visualização, a especificação, a construção e a documentação de artefatos que façam uso de sistemas complexos de software. A UML é adequada para modelagem de sistemas cuja abrangência poderá incluir sistemas de informação corporativos a serem distribuídas aplicações baseadas em web e até sistemas complexos embutidos de tempo real. È uma linguagem muito expressiva, abrangendo todas as visões necessárias ao desenvolvimento e implantação desses sistemas. Apesar de sua expressividade, não é difícil compreender e usar a UML. Aprender a aplicar a UML de maneira efetiva tem inicio com a formação de um modelo conceitual da linguagem, o que pressupõe e o entendimento de três princípios elementos: os blocos de construção da UML, as regras que determinam como esses blocos de construção deverão ser combinados e alguns mecanismos básicos que se aplicam a toda a linguagem. A UML é apenas uma linguagem e, portanto, é somente uma parte de um método para desenvolvimento de software. A UML é independente do processo apesar de ser perfeitamente utilizada em processo orientado a casos de usos, centrado na arquitetura, iterativo e incremental. 2.2.1.1. Diagrama de Caso de Uso 21 Diagrama de caso de uso é utilizado para facilitar a comunicação com os futuros usuários dos sistema é importante para determinar os recursos necessários para especificação do que o sistema deve ser . O caso de uso escrito no ponto de vista dos atores (o ator é uma entidade externa que interage com o sistema), como um grupo de atividades que produz resultados concretos. Eles representam a interface externa do sistema especificando um conjunto de exigências do que o sistema deverá fazer. É importante lembrar que as regras básicas para a utilização do caso de uso levando em consideração que um relacionamento tem que estar ligado no mínimo a um ator que possui um iniciador (um ator principal) e cada caso de uso liga a um resultado com valor relevante. (Booch; Rumbaug; Ivar, 2003) 2.2.1.2. Diagrama de Classes Diagramas de classes são os digramas encontrados com maior freqüência na modelagem de sistemas orientados á objetos. Um digrama de classes mostra um conjunto de classes, interfaces e colaborações e seus relacionamentos. Os diagramas são importantes não só para visualização, especificação e a documentação de modelos estruturais, mas também para a construção de sistemas executáveis por intermédio de engenharia de produção reversa. (Booch; Rumbaug;Ivar, 2003) Segundo Cleuton (2007) diagrama de classe é uma visão estática de um modelo de objetos. Como um modelo relacional (entidade relacionamento) ele descreve as entidades, neste caso, classes, e os relacionamentos entre elas. 22 2.2.1.3. Diagrama de Seqüência Segundo Alexandre (2007), diagrama de seqüencia UML tem como objetivo determinar uma seqüencia de eventos que ocorrem em um determinado processo, listando quais métodos devem ser disparados entre os atores e objetos envolvidos, bem com a ordem com os quis estes devem ocorrer. Este digrama complementa o diagrama de caso de uso, visto estar baseado neste último mostrando assim a interação do ponto de vista dos sistema entre um ator e uma determinada finalidade. O diagrama de seqüência permite também refinar o diagrama de classes, já que as classes necessárias se fazem presente nas seqüências de interações. 2.2.2. Java Segundo M. Johnson (2007), a tecnologia Java, que foi desenvolvida e disponibilizada pela Sun em 1994, tornou-se muito popular desde então. O sucesso dessa tecnologia é muito grande no meio empresarial e acadêmico. Profissionais de desenvolvimento fazem cursos e provas de certificações que comprovem sua proficiência na linguagem. O sucesso dessa linguagem se deve a facilidade de ser utilizada em diversas plataformas (desktops, servidores, etc.). A Sun desenvolveu a tecnologia Java com o intuito de criar um tipo de linguagem de programação “universal”, a qual poderia ser executada em qualquer tipo de sistema computacional para diversos tipos de hardware. Para isso, a linguagem Java, quando compilada, gera um bytecode, que é lido por interpretador conhecido como Maquina Virtual Java (Java Virtual Machine-JVM). Este traduz, em tempo de execução, as instruções para uma linguagem de maquina compatível com o tipo de processador utilizado. Assim, pode-se utilizar um único código fonte e executar mesmo bytecode em diversos sistemas operacionais diferentes, desde que possuam uma JVM. Então, teoricamente, seria utilizar este bytecode gerado em dispositivos moveis, pois eles também podem ter uma JVM instalada. Veremos adiante que isso é possível em razão das muitas diferenças entre os sistemas de grande poder de processamento (como servidores e computadores desktop) e os dispositivos de computação móvel de pouco poder computacional, como telefones celulares. A plataforma Java definida 23 pela Sun Microsystems é atualmente dividida em quatro grandes grupos (veja a figura). J2SE (Java 2 Standard Edition) é o grupo principal, destinado a computadores pessoais domésticos (end-user). J2EE (Java 2 Enterprise Edition) é mais abrangente que a J2SE, sendo destinada a aplicações do lado do servidor. J2ME (Java 2 Micro Edition) tem o objetivo de disponibilizar aplicativos Java em dispositivos portáteis, como PDA´s, pagers e celulares. Finalmente, JavaCard é uma tecnologia destinada a rodar em smart-cards e outros dispositivos extremamente limitados.(Murukami, 2003). Figura 3- Plataforma Java 24 2.2.2.1. J2ME Segundo Abreu (2006) J2ME é o ambiente de desenvolvimento para dispositivos móveis ou portáteis, como telephones celulares e palmtops. A plataforma J2ME contém configurações e bibliotecas trabalhadas especialmente para a atuação em dispositivos portáteis para auxiliar nas limitações de processamento e memória. Para rodar nestes dispositivos, a linguagem precisaria ser bastante simplificada e otimizada, removendo os componentes que não estão presentes ou não são utilizados nestes dispositivos. Sua arquitetura foi dividia em três camadas: a máquina virtual propriamente dita, os perfis e as configurações. A máquina virtual de J2ME é a KVM – Kilobyte Virtual Machine, e é a base da arquitetura, devendo ser implementada para cada dispositivo, criando uma camada de software que abstrai o sistema operacional e garante a portabilidade. Sobre a máquina virtual são definidas as configurações, que são um conjunto mínimo de classes que provêem as funcionalidades básicas para as categorias de dispositivos. Pode-se relacionar 2 configurações: • CLDC – Connected Limited Device Configuration, projetada para dispositivos com conexões de rede intermitentes, processadores mais lentos e memória limitada, como os telefones celulares e alguns PDA’s; • CDC – Connected Device Configuration, configuração para dispositivos com mais memória e poder de processamento, e uma conexão com uma maior largura de banda, como set-top boxes, sistemas de telemetria de veículos e PDA’s mais poderosos. Sobre a configuração, são definidos os perfis, API’s de alto-nível que disponibiliza um ambiente de execução completo e direcionado para os dispositivos alvo. O perfil utilizado para telefones celulares é o MIDP – Mobile Information Device Profile. Este perfil provê as principais funcionalidades requeridas pelas aplicações 25 para celulares, como interface com o usuário, conectividade, manipulação de arquivos e gerenciamento da aplicação em geral. (Barros; Santos; Ramalho, 2003). 2.2.2.2. J2EE Segundo Abreu (2006), J2EE (Java 2 Enterprise Edition) é a plataforma Java voltada a servidores de aplicação, redes e Internet. Alem disso, aplicações que utilizam o modelo J2EE têm como característica a necessidade de suportar simultaneamente uma grande quantidade de usuários. A plataforma J2EE contem uma serie de especificações, cada uma com funcionalidades distintas, por exemplo, JDBC(Java Database Connectivity), JSP(Java Server Pages) , Servlets, EJB(Enterprise Java Beans), entre outros. 2.2.2.2.1. Servlet No início da Internet, todas as páginas eram compostas por arquivos HTML. Isso logo representou um problema, pois páginas desse tipo possuem uma capacidade limitada de interação com o usuário. Para resolver esse problema, surgiram os scripts CGI. Scripts CGI são programas que rodam no servidor e montam uma página dinamicamente. Isso permite, por exemplo, que o resultado de uma busca em um banco de dados seja mostrada numa página de internet. Java Servlets é a tecnologia Java desenvolvida para substituir a programação CGI. Um servlet é um programa Java rodando no servidor que monta uma página de Internet dinamicamente. As vantagens dos servlets sobre a programação CGI são: · Servlets são mais eficientes que programas CGI. Um processo CGI é iniciado no servidor toda vez que é feita uma solicitação http. No caso de um servlet, a máquina virtual Java permanece rodando durante todo o tempo. Durante uma solicitação http, somente um novo thread Java é criado, o que é muito mais rápido do que iniciar um processo CGI. · A linguagem Java é bastante conhecida, tornando o aprendizado de Java Servlets fácil e rápido. 26 · Java Servlets possui uma ampla biblioteca de recursos, permitindo entre outras coisas, manipulação de cookies, sessões, cabeçalhos http de maneira simples. · Praticamente todos os servidores para Internet possuem suporte a Java Servlets (Murukami, 2003). A seguir é apresentado um exemplo de Java Servlet (adaptado de http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/): import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n" + "<HTML>\n" + "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello WWW</H1>\n" + "</BODY></HTML>"); } } 2.2.2.2.2. JSP Java servlets resolvem o problema de criar páginas dinâmicas. Entretanto, as páginas criadas por servlets são produzidas dentro do código, através de uma série de comandos do tipo “println”. Isso torna difícil a produção do layout da página. Usualmente, o layout de uma página de internet deve ser feito por diagramadores e artistas gráficos, e não por programadores. Assim, seria mais adequado se houvesse um jeito de separar código e interface. Para tentar solucionar esse problema, a Sun criou a tecnologia de Java Server Pages (JSP). Uma página JSP é semelhante a uma página HTML, acrescida de algumas linhas de código Java. O código Java é inserido dentro de tags especiais. As páginas JSP produzidas são instaladas no servidor como se fossem 27 páginas HTML. Durante o primeiro acesso à página, o servidor converte a página JSP em um servlet. Linhas de código HTML são convertidas em comandos “println”, enquanto que linhas de código Java são inseridas no código do servlet. O servlet assim produzido é então utilizado para atender às requisições http. A seguir, é apresentado um exemplo de página em JSP. <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Contador JSP</TITLE> </HEAD> <BODY> <!—- Declaração --> <%! int n = 0; %> <!—- Scriplet --> <% n = n + 1; %> <!—- Expressão --> Essa página foi acessada <%= n %> vezes. </BODY> </HTML> O código JSP permite o uso de vários tipos diferentes de tags (como foi mostrado no exemplo acima). Além disso, é permitida a criação de bibliotecas de tags próprias. São as chamadas taglib´s. A Sun padronizou uma taglib padrão chamada STL (Standard TagLib). A implementação mais importante dessa taglib é a da Apache. (Murukami, 2003). 2.2.3. Banco de Dados Os sistemas de gerenciamento de banco de dados estão em constante evolução, deixando de ser somente uma mera aplicação para gerenciamento de banco de dados para se tornar se tornar parte central de um importante ambiente de computação moderna. Este como ensino torna-se fundamental para os cursos de ciências da computação. 28 O SGBD ou sistema de gerenciamento de banco de dados é constituído por um conjunto de dados associados a um conjunto de programas a fim de efetuar o processamento e busca desses dados. O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente quanto eficiente para a o armazenamento e para a parte de recuperação de informações, dos dados dentro do banco de dados. O SGBD é um sistema que beneficia devido os dados serem mais abstratos possíveis. Isso proporciona ao usuário buscas e consultas mais consistentes e o ocultamento dos detalhes destes dados. A abstração dos dados ajuda a omitir a complexidade da estrutura do banco de dados a fim de ajudar pessoas com pouco conhecimento e que depende de efetuar buscas dentro do banco, isso se deve ao analista fazer o nivelamento do acesso dessas pessoas. Existem alguns níveis de complexidade dentro dos SGBD’s: - Nível físico: é o mais baixo nível de abstração que descreve como esses dados estão de fato armazenados; - Nível lógico: este é o nível médio de abstração que descreve quais dados estão armazenados no banco e quais os inter-relacionamentos entre eles; - Nível de visão: é o mais alto nível de abstração que descreve apenas parte do banco de dados. A despeito das estruturas simples do nível lógico, alguma complexidade permanece devido ao tamanho dos bancos de dados; Os bancos de dados mudam através do tempo à medida que informações são inseridas ou apagadas. A coleção de informações armazenadas no banco de dados em um determinado momento é chamada de instancia. O projeto geral do banco de dados é chamado de esquema de banco de dados. Os esquemas não mudam com freqüência. 29 Existem vários tipos de modelos para banco de dados, eis alguns exemplos: - Modelo de dados: é um conjunto de ferramentas conceituais usadas para a descrição de dados, relacionamentos entre dados, semântica de dados e regras de consistências. - Modelos lógicos com base em objetos: os modelos lógicos com base em objetos são usados na descrição de dados a nível lógico e de visões. São caracterizados por dispor de recursos de estruturação mais flexíveis e por viabilizar a especificação mais explicita das restrições de dados. O modelo de entidade de relacionamento tem por base a percepção do mundo real, consistindo em um conjunto de objetos básico chamado entidade, e se, existir relacionamento entre elas é chamada entidades. O modelo pretende primeiramente servir ao desenvolvimento de um projeto de banco de dados. Foi desenvolvido para facilitar o projeto de banco de dados e para facilitar a especificação do “esquema da empresa”. Esse esquema representa toda a estrutura lógica do banco de dados. Esta estrutura completa pode ser expressa graficamente pelo diagrama de E-R (Entidade de relacionamento). Uma entidade é um objeto que existe e é distinguível de outros objetos. Podemos obter uma distinção por meio da associação de cada entidade a um conjunto de atributos que descreve esse objeto. Um relacionamento é uma associação entre algumas entidades. A coleção de todas as entidades do mesmo tipo é chamada de conjunto de entidades e a coleção de todos os relacionamentos do mesmo tipo é um conjunto de relacionamentos. Uma tarefa importante de um banco de dados é especificar como as entidades e os relacionamentos são diferenciados. Conceitualmente, entidades e relacionamentos individuais são distintos na perspectiva do banco de dados, entretanto essas diferenças precisam ser expressas em termos de seus atributos. Para fazer tais distinções, estabelecemos as chaves primárias de cada conjunto de entidades. A chave primária é um conjunto de um ou mais atributos que, 30 tomados coletivamente, nos permitem identificar de modo único uma entidade dentro de seu conjunto, assim como um relacionamento dentro de um conjunto de relacionamentos. Um conjunto de entidades que não possui atributos suficientes para formar uma chave primária é chamado de conjunto de entidades fracas. Um conjunto de entidades que tem uma chave primária é chamado de conjunto de entidades fortes. Vários recursos oferecidos pelo modelo E-R proporcionam aos projetistas de banco de dados numerosas opções para a escolha da melhor representação da empresa que está sendo modelada. Conceitos e objetos podem, em certos casos, ser representados por entidades, relacionamentos e atributos. Um banco de dados representado por um diagrama E-R pode ser representado por uma coleção de tabelas. Para cada conjunto de entidades e para cada conjunto de relacionamentos em um banco de dados há uma única tabela, que recebe o nome do conjunto de entidades ou do relacionamento correspondente. Cada tabela possui um numero de colunas, também elas com um único nome. A conversão da representação do banco de dados de um diagrama E-R para a forma de tabelas é a base para a derivação do diagrama bem sucedido para um banco de dados relacional. (Silberschatz; F. Korth; Sudarshan, 1999). 2.2.3.1. SQL SQL tem representado o padrão para linguagem de banco de dados relacionais. Existem diversas versões de SQL. A versão original foi desenvolvida pela IBM no Laboratório de Pesquisa de San José (hoje o Centro de Pesquisa Almaden). Essa linguagem, originalmente chamada de Sequel foi implementada como parte do projeto do Sistema R no início dos anos 70. Desde então, a linguagem Sequel foi evoluindo e seu nome foi mudado para SQL (Structured Query Language – 31 Linguagem de Consulta Estruturada). Inúmeros produtos dão suporte atualmente para a linguagem SQL. (Silberschatz; F. Korth; Sudarshan, 1999). 3. Implementação das Tecnologias e Desenvolvimento 3.1. Wireless A tecnologia wireless foi abordada no projeto, seguindo informações obtidas por (Tanembaum, 1997) enfatizando a importância e as facilidades das tecnologias sem fio. Seguindo as informações obtidas por (Loureiro, 2003), wireless se diferencia pela facilidade de implantação ampla usabilidade dentro da arquitetura a qual irá será implantada a facilidade de implantação desse sistema monstra algumas vantagens desse sistema, podemos destacar alguns pontos importantes da tecnologia wireless para a tecnologia Bluetooth: Escabilidade- redes locais sem fio podem ser configuradas segundo diversas topologias de acordo com as necessidades. Configurações podem ser mudadas facilmente e a distância entre as estações adaptadas desde poucos usuários até centenas. A tecnologia sem fio aborda facilidades de comunicação utilizando os padrões e protocolos de comunicação, seguindo as normas do IEEE para dispositivos de comunicação de redes. Segurança- o sistema WEP suporta encriptação Wired Equivalente Privacy (WEP) com chave de até 128 bits. Todo o tráfego de rede passa por uma VPN (Virtual Private Network) utilizando o protocolo IPSec (IP Secure) com chave de 1024 bits, garantindo proteção à rede contra ataques externos. A tecnologia Bluetooth apresenta suas desvantagens se comparada diretamente a tecnologia wireless destaca-se algumas: Limitação a quantidade de usuários 32 Trafego de informações Distancia entre o receptor e o emissor no trafego das informações via radio. O meio de transmissão usado traz benefícios para a implementação do projeto a qual os dispositivos irão ter acesso trazendo a facilidade da comunicação e rapidez ao seu receptor venha ter a utilização de um serviço rápido, seguro e cômodo para quem venha utilizá-lo isso pensando nos usuários a ferramenta para consulta as suas informações. Para o ambiente corporativo destaca-se pela eficiência de implantação de um projeto que apresenta ser pequeno sendo usado apenas para consulta ao diário de sala, mas futuramente poderá ser expandido abrangendo uma infraestrutura maior com vários usuários usufruindo de consultas instantâneas ao sistema que suporte uma grande quantidade de dispositivos móveis consultando esse sistema utilizando o serviço de rede sem fio. 3.2. UML 3.2.1. Caso de Uso Diário de Classe Eletrônico 33 Figura 4 3.2.2. Diagrama de Atividades Acessar o Sistema Diário de Classe Eletrônico Figura 5 34 Fazer a Chamada Figura 6 35 3.2.3. Diagrama de Classe 3.2.4. Diagrama de Sequência 3.3. J2EE Conforme pesquisa realizada, foram levantadas as diversas tecnologias disponíveis para o desenvolvimento de aplicativos para dispositivos móveis e os diversos dispositivos com suas respectivas configurações e tecnologias que suportam. Conseguimos analisar essas informações e identificamos que com a tecnologia J2EE a abrangência e diversidade são bem maiores se comparada a JME. Com isso conseguimos levantar as dificuldades e facilidades de se desenvolver com as duas plataformas e assim desenvolver um projeto que implemente a tecnologia J2EE que conforme a comparação das pesquisas se torna mais . 3.3.1. Arquitetura MVC O aplicativo foi desenvolvido utilizando a arquitetura MVC de desenvolvimento J2EE. Coforme a 36 VIEW CONTROLLER MODEL SERVLET BROWSER JSP NEGÓCIO DAO Action JSP Action ControladorServlet.java JSP JSP Action BANCO DE DADOS Action Figura 7 37 38 3.4. Mysql Figura 8 39 4. Conclusão Com a implementação do DCE, foi possível perceber a importância de um Aplicativo para controle de presença em sala de aula. De acordo com a proposta de desenvolvimento, foram cobertos todos os requisitos do desenvolvimento do aplicativo, que incluíam todo o gerenciamento gráfico e de ferramenta, bem como restrições de desempenho, modularização e reusabilidade. A arquitetura do DCE é muito simples facilitando o desenvolvimento, a performance do aplicativo é extremamente satisfatória, não impactando na usabilidade da ferramenta. 4.1. Dificuldades Encontradas Algumas dificuldades foram encontradas no desenvolvimento do aplicativo. Apesar de existirem vários documentos sobre o desenvolvimento de aplicações em Java – J2EE, comparações, padrões de projeto sendo sua API bastante extensa e não possui uma documentação abrangente. A complexidade do desenvolvimento de um aplicativo para a área escolar também foi um desafio. A necessidade de prover uma solução geral e ao mesmo tempo otimizada, associada as restrições dos diferentes navegadores dos diversos dispositivos mobiles aumentaram com padrões distintos a dificuldade do desenvolvimento deste aplicativo. 4.2. Trabalhos Futuros Como continuação deste trabalho, pode-se extender este aplicativo para implementar os módulos que ainda não são suportados: - Implementar um controle de notas, para poder gerenciar notas de trabalhos e notas de provas. - Implementar na ferramenta, a formula para calculo da aprovação dos alunos. - Implementar um gerenciador de relatório para extração de dados presenciais. 40 5. Referência bibliográfica Abreu, M.E; DTM@JVM: Reuso Dinâmico de Traços em uma maquina Virtual Java. Data 2006, 93 f. Dissertação (Mestrado em Ciência, Engenharia e Sistemas de Informação), Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2006. Disponível em <http://teses.ufrj.br/COPPE_M/EduardoMelioneAbreu.pdf> Acesso em 26-10-2008. Barros, T. G. F; Santos, Dr. A. L. M; Ramalho, Dr. G. L; (2003) “Symbg(r)af – Symbian Games Framework” Disponível em <http://www.cin.ufpe.br/~tg/2003-1/tgfb.pdf> Acessado em 05-11-2008. Bernal, P.S.M; Comunicações Móveis: Tecnologias e Aplicações. 1ª. Ed. São Paulo: Érica, 2002. Booch, G; Rumbaug, J.; Ivar; J; (2003) UML Unified Modeling Language: Guia do Usuário. Rio de Janeiro: Campus, 2003. Capítulos. (2, 8, 17,18), pag.(13, 217, 241). Loureiro, A. A. F; Comunicação sem Fio e Computação Móvel. In: Mini curso – Congresso da Sociedade Brasileira de Computação, Campinas, 2003. Disponível em <http://www.dcc.ufmg.br/~loureiro/cm/docs/jai03.pdf > Acesso em10/06/2008. M. JOHNSON, Thienne; Java para Dispositivos Móveis: Desenvolvendo Aplicações com J2ME. 1ª Ed. São Paulo: Novatec, 2007 capítulo. (2), pags. (25, 26) Melo, A. A; Nascimento, M. G. F. P; PHP Profissional: Aprenda a desenvolver sistemas profissionais orientados a objetos com padrões de projeto. São Paulo. Novatec, 2007. capítulo. (7), pag. (184). Murakami, Alexandre; MobMed. In: Trabalho de Formatura Supervisionado Monografia - Inovando a Prática Médica Através de Sistemas Móveis de Informação,Universidade de São Paulo São Paulo, 2003. Disponível em <http://www.linux.ime.usp.br/~cef/mac49903/monografias/murakami/monografia.html#_Toc5 8295564>Acesso em 05-11-2008. Tanembaum, A. S; Redes de Computadores, LIVRO: Redes de Computadores Rio de Janeiro: Campus, 1997. Tradução da terceira edição pag. (923). Sampaio, C; Aplicações corporativas, Guia do Java Enterprise Edition 5: Desenvolvendo aplicações corporativas. 1ªEd. Rio de Janeiro: Brasport, 2007 capítulo. (5), pag. (23). Silberschatz, A; Korth, H.F; Sudarshan, S; Sistema de Banco de Dados Livro: Sistema de Banco de Dados. 3ªEd. São Paulo: Markron Books, 1999. Bluetooth http://www.students.ic.unicamp.br/~ra007293/bluetooth/bluetooth.html. Acessado em 06-072008. http://www2.eletronica.org/artigos/eletronica-digital/bluetooth. 41 Acesso em 06-07-2008. http://www.devmedia.com.br/articles/viewcomp.asp?comp=7808&hl= Acesso em 07-07-2008. Wireless http://www.italbrasnet.com.br/tecnologia_de_produtos_wireless.html. Acesso em 15-07-2008. http://www.iweb.com.br/iweb/pdfs/20031008-wireless-01.pdf. Acesso em 15-07-2008. http://www.logicengenharia.com.br/mcamara/ALUNOS/Sem_fio.PDF Acesso em 17-07-2008. 42