BLUETOOTH COMO ESTRUTURA DE COMUNICAÇÃO APLICADA A CAMPANHAS PUBLICITÁRIAS

Tamanho: px
Começar a partir da página:

Download "BLUETOOTH COMO ESTRUTURA DE COMUNICAÇÃO APLICADA A CAMPANHAS PUBLICITÁRIAS"

Transcrição

1 UNIVERSIDADE SÃO FRANCISCO Curso de Engenharia de Computação RILDO DOS SANTOS GONÇALVES BLUETOOTH COMO ESTRUTURA DE COMUNICAÇÃO APLICADA A CAMPANHAS PUBLICITÁRIAS Itatiba 2010

2 i RILDO DOS SANTOS GONÇALVES BLUETOOTH COMO ESTRUTURA DE COMUNICAÇÃO APLICADA A CAMPANHAS PUBLICITÁRIAS Monografia apresentada à disciplina Trabalho de Conclusão de Curso, do curso de Engenharia de Computação da Universidade São Francisco, como exigência para conclusão do curso de graduação. Orientador: Prof. Marcelo Augusto Gonçalves Bardi Itatiba 2010

3 ii GONÇALVES, Rildo dos Santos. BLUETOOTH COMO ESTRUTURA DE COMUNICAÇÃO APLICADA A CAMPANHAS PUBLICITÁRIAS Monografia defendida e aprovada em 09 de Dezembro de 2010.

4 iii Dedico este trabalho aos meus pais, Benedito Gonçalves e Dalva A. dos Santos Gonçalves e aos meus amigos da universidade por estarem ao meu lado em horas tão difíceis e ao mesmo tempo tão gratificantes.

5 iv AGRADECIMENTOS Agradeço a realização deste trabalho a minha família por me darem o suporte necessário até aqui. Eu integro a minha família natural, meus queridos amigos da universidade que por incontáveis vezes me incentivaram a continuar quando eu pensava em desistir. Agradeço também ao meu orientador, Marcelo Augusto Gonçalves Bardi, por persistir e acreditar na elaboração desse trabalho. Obrigado.

6 v Não preciso de modelos, não preciso de heróis. Eu tenho meus amigos... (Renato Russo)

7 vi RESUMO Bluetooth é uma tecnologia de comunicação por rádio de baixa freqüência e baixo alcance, desenvolvida para efetuar troca de dados sem fio a curtas distâncias. Essa tecnologia possibilita conectar dispositivos que estão próximos facilmente, simplificando tarefas do dia a dia que até então necessitavam da passagem de cabos pelo meio da sala para interligar os dispositivos utilizados. Atualmente, a grande maioria de aparelhos celulares traz o Bluetooth integrado. O Bluetooth nasceu da união de cinco empresas da área de tecnologia que buscavam uma solução para conectar equipamentos móveis e que não gastasse muita energia para economizar as baterias desses equipamentos. Hoje, várias companhias integram o SIG, sigla em inglês para Grupo Especial de Interesse Bluetooth. Outra tecnologia que abrange a grande maioria de dispositivos móveis é a linguagem de programação Java. O Java foi desenvolvido, inicialmente, para rodar em tudo que tivesse um microprocessador, mas explodiu mesmo com o surgimento da World Wide Web, onde foi utilizado para criar páginas de conteúdo dinâmico. A partir de então, o Java começou a ser utilizado também em dispositivos móveis, aparelhos receptores de sinal de TV Digital, para construção de jogos e muito mais. Boa parte desse sucesso se deve a importante característica do Java de não depender da plataforma onde irá executar, desde que exista uma máquina virtual Java para essa plataforma. Dada a grande importância dos dispositivos móveis existentes hoje, esse trabalho vem agregar essas duas tecnologias em um aplicativo que possibilite a distribuição de material de propaganda e de informação a usuários que tenham celulares ou smartphones para que sejam utilizados para visualizar esse conteúdo e que ainda, possam interagir com a aplicação no intuito de fazer pesquisas ou obter informações específicas sobre produtos. Palavras-chave: Bluetooth; Java ME; Java SE; Linux.

8 vii ABSTRACT Bluetooth is a radio communications technology of low frequency and low range, designed to exchange data wireless over short distances. This technology allows connecting devices that are coming easily, simplifying the daily tasks that until now required the passage of cables through the middle of the room to connect the devices. Currently, the vast majority of mobile devices brings the Bluetooth communication integrated. Bluetooth was born for five technology companies that was seeking a solution for connecting mobile devices and do not spend much energy to conserve battery power such equipment. Today, several companies integrate Bluetooth SIG, abbreviation for Bluetooth Special Interest Group. Another technology that covers the vast majority of mobile devices is the Java programming language. Java was developed initially to run on everything that had a microprocessor, but came to be known with the emergence of the World Wide Web, which was used to create dynamic content pages. Since then, Java was being used also in mobile devices, receiver devices Digital TV signal, to build games and more. Much of this success is due to the important characteristic of Java is independent of the platform where it will run, since there is a Java virtual machine for that platform. Given the importance of mobile devices available today, this work is to aggregate these two technologies in an application that enables the distribution of advertisement material and information to users who have smartphones or cell phones to be used to view such content and it also can interact with the application in order to do research or obtain information about specific products. keywords: Bluetooth; Java ME; Java SE; Linux.

9 viii SUMÁRIO 1 INTRODUÇÃO Objetivos Estrutura do trabalho ASPECTOS TEÓRICOS Dispositivos Móveis A Tecnologia Bluetooth Arquitetura Bluetooth Pilhas de protocolos do Bluetooth JAVA Java Standard Edition Java Micro Edition API Bluetooth Java Linux METODOLOGIA DE DESENVOLVIMENTO Ferramentas Utilizadas Modelagem do Sistema Descrição do Sistema Funcionalidades e Diagramas de Casos de Uso Diagramas de Seqüência Diagramas de Classes Protótipo das Telas do Aplicativo Servidor Estruturação das Bases de Dados Codificação do Aplicativo Cliente Codificação do Aplicativo Servidor Resultados e discussões Conclusões Sugestões de Trabalhos Futuros REFERÊNCIAS BIBLIOGRÁFICAS... 41

10 ix LISTA DE SIGLAS BCC Bluetooth Control Center BNEP Bluetooth Network Encapsulation Protocol CDC Connected Device Configuration CLDC Connected, Limited Device Configuration GPL General Public License HCI Host Controller Interface HID Human Interface Device Protocol IEEE Institute of Electrical and Electronic Engineers IDE Integrated Development Environment IDE Integrated Development Environment IP Internet Protocol JCP Java Community Process JDK Java Development Kit JRE Java Runtime Environment JSR Java Specification Request JVM Java Virtual Machine L2CAP Logical Link Control and Adaptation Protocol OBEX Object Exchange PAN Personal Area Network PPP Point to Point Protocol RFCOMM Radio Frequency Communication RI Reference Implementation SDDB Service Discovery Database SDP Service Discovery Protocol SDK Software Development Kit SIG Special Interest Group TCK Technology Compatibility Kit TCS-BIN Telephony Control Protocol Specification UUID Universal Unique Identifier UDP User Datagram Protocol WAP Wireless Access Protocol

11 x Lista de Figuras Figura 1 - Scatternet formada por duas piconets... 4 Figura 2 - Camadas do Protocolo Bluetooth... 6 Figura 3 - Processo de criação de um programa Java... 9 Figura 4 - Plataforma Java... 9 Figura 5 - Configurações e Perfis mais comuns Figura 6 - SDDB e dois Registros de Serviços suportados Figura 7 - Atributos em um ServiceRecord Figura 8 - Dongle Bluetooth Figura 9 - Visão geral das funcionalidades dos atores Figura 10 - Funcionalidades do ator administrador Figura 11 - Funcionalidades do ator usuário Figura 12 - Diagrama de seqüência de consulta de produtos Figura 13 - Diagrama de seqüência para enviar uma campanha Figura 14 - Diagrama de classes aplicativo cliente Figura 15 - Diagrama de classes do aplicativo servidor Figura 16 - Tela de login Figura 17 - Tela Principal Figura 18 - Tela de produtos Figura 19 - Aplicativo Cliente Figura 20 - Telas diversas do aplicativo Figura 21 - Procura de dispositivos Figura 22 - Dispositivo encontrado Figura 23 - Envio de uma mensagem publicitária ao usuário Figura 24 - Envio de uma solicitação de pesquisa ao servidor... 39

12 xi Lista de Tabelas Tabela 1 - Os perfis do Bluetooth... 7 Tabela 2 - Kits de Desenvolvimento e suas Empresas Tabela 3 - Modos de visibilidade do dispositivo Bluetooth Tabela 4 - Classes de dispositivos Bluetooth Tabela 5 - UUID referentes aos protocolos Bluetooth Tabela 6 - UUID referentes aos Perfis Bluetooth Tabela 7 - Casos de uso do ator administrador Tabela 8 - Casos de uso do ator usuário Tabela 9 - Estrutura Base de Dados... 32

13 1 1 INTRODUÇÃO Nos últimos anos, a sociedade tem vivenciado uma avalanche de dispositivos eletrônicos com as mais variadas funcionalidades, que vem contribuindo para tornar nossas vidas mais práticas e prazerosas. O maior expoente entre esses dispositivos é o celular, que já se tornou um companheiro inseparável na vida de muitas pessoas. Já existe até uma doença ligada a sua falta: a nomofobia, que é o medo do indivíduo de ficar incomunicável ou desconectado (FANTÁSTICO, 2010). De acordo com estatísticas de outubro de 2010, no Brasil já existe mais celulares que habitantes (UOL, 20010) e os índices não param de crescer. Portanto, utilizar o celular como forma de negócio é cada vez mais comum. Assim, investir em aplicativos para celulares e smartphones é investir em um mercado que está certamente aquecido e que continuará ainda a manter essa tendência por muito tempo. Considerando que empresas como a Apple e a Google estão investindo pesado em aplicativos para essas plataformas indica que esse mercado dará muitos frutos a programadores que tenham boas idéias para problemas do dia a dia e a usuários que contam com as facilidades proporcionadas. O Bluetooth é uma tecnologia que vem sendo muito utilizada em dispositivos móveis e tem sido eficaz naquilo que se propõe: conectar equipamentos de diversos tipos e fabricantes facilmente e sem o uso de cabos e instalação de softwares específicos. Java é uma linguagem de programação que também tem sido largamente usada para desenvolvimento de aplicativos para dispositivo de capacidade de processamento e armazenamento reduzidos como celulares. O celular é o equipamento que mais freqüentemente utiliza aplicativos Java e também o que mais faz uso da comunicação por Bluetooth, seja para transferência de arquivos ou para escutar músicas com um fone de ouvido sem fios. Muitas funcionalidades ainda podem ser agregadas, facilitando cada vez mais o dia-a-dia das pessoas. Em face disso, esse projeto busca o desenvolvimento de um aplicativo que transforme o celular em um panfleto eletrônico que receba informações referentes ao ambiente em que se encontra. Por traz do desenvolvimento desse aplicativo, está a oportunidade do estudo do desenvolvimento de softwares em Java utilizando Bluetooth como meio de comunicação nas plataformas Desktop e de dispositivos móveis.

14 2 1.1 Objetivos Esse trabalho tem por objetivo a construção de um aplicativo que permita que um aparelho celular possa trocar informações de caráter promocional e informativo com um computador onde esteja instalado o processo servidor sendo executado sobre a plataforma GNU/Linux. As informações devem ser trocadas utilizando o Bluetooth como via de comunicação e o Java como linguagem de programação. 1.2 Estrutura do trabalho O capítulo 2 ASPECTOS TEÓRICOS introduz as tecnologias Bluetooth e Java, aqui empregadas. As definem e traz seus históricos. Também é descrita a arquitetura dos dispositivos móveis e a forma como são classificados. Existe também uma breve descrição do Sistema Operacional empregado e o porquê de seu uso. O capítulo 3 METODOLOGIA DE DESENVOLVIMENTO descreve as ferramentas para edição utilizadas, o sistema operacional usado e os Vendors-SDK que foram instalados. Também traz toda a documentação do desenvolvimento dos aplicativos e mostra os códigos comentados. No capítulo 4 RESULTADOS E DISCUSSÕES é possível apreciar os testes efetuados nos protótipos criados assim como breve discussão acerca do desenvolvimento dos aplicativos. O último capítulo CONCLUSÕES trata das conclusões sobre as ferramentas utilizadas e dos resultados atingidos. Ficam também disponíveis algumas sugestões de continuação desse trabalho.

15 3 2 ASPECTOS TEÓRICOS Esse capítulo traz a contextualização das tecnologias utilizadas no desenvolvimento do trabalho. Além de descrever a tecnologia Bluetooth e Java, também fala da utilização da API Bluetooth Java, utilizada por todo o trabalho. 2.1 Dispositivos Móveis Dispositivos móveis são equipamentos capazes de processar e armazenar dados assim como computadores pessoais, mas se diferenciam desses pelo seu tamanho e capacidade de mobilidade. Seu maior ícone é o celular está presente na vida de grande parte da população. Pode ser ainda dividido quanto às características específicas dependendo da forma como é analisado, como será visto no capítulo sobre a linguagem Java. 2.2 A Tecnologia Bluetooth Bluetooth é uma tecnologia de comunicação por rádio de baixa freqüência e de alcance entre 1 e 100 metros usado, principalmente, para interligar equipamentos eletrônicos e efetuar troca de dados a pequenas distâncias. Foi inicialmente desenvolvida como uma nova forma de conexão para dispositivos móveis e que aliasse baixo custo na integração com seus produtos e um baixo consumo de energia. A baixa potência de seus transmissores, apesar de limitar a distância pode aumentar a autonomia das baterias dos equipamentos portáteis (BRUCE & GILSTER, 2002). Originalmente criada pela empresa Ericsson e desenvolvida em conjunto com a IBM, Intel, Nokia e Toshiba, a tecnologia propunha interligar telefones a outros dispositivos, como PDAs e fones de ouvido de forma sem fio. Essas empresas formaram a SIG, um consórcio que hoje conta com mais de 13 mil empresas (The Official Bluetooth Technology info Site, 2010). O nome Bluetooth foi dado em homenagem a Harald Blaatand (Bluetooth) II ( ), rei viking que unificou a Dinamarca e a Noruega (BRUCE & GILSTER, 2002). A idéia inicial era apenas interligar equipamentos sem a necessidade de cabos, utilizando ondas de rádio e circuitos baratos que pudessem ser incorporados sem muito ônus. Mas logo se tornou uma concorrente a redes WLans.

16 4 Em 1999 o consórcio Bluetooth emitiu um documento de 1500 páginas da versão 1.0 da nova tecnologia. Pouco depois, o IEEE, que também estudava a área de redes sem fio, adotou a especificação do padrão Bluetooth e começou a alterá-la, a qual difere da padronização criada pelo SIG principalmente no que diz respeito ao foco dos estudos. O Bluetooth é um padrão completo, que vai desde a camada física até a camada de aplicação. O IEEE se compromete a padronizar apenas as camadas física e de enlace (TANENBAUM, 2003). O padrão Bluetooth formalizado pelo IEEE está descrito dentro da pilha de protocolos que formaliza as Pans. Isso não quer dizer que o SIG, como se conheceu, deixou de existir ou enfraqueceu, mas o que se espera é que futuramente os dois venham a se juntar em um único padrão Arquitetura Bluetooth Uma rede Bluetooth se organiza conceitualmente por um nó mestre e até seis nós escravos ativos. Esses nós ficam em uma distância de até 10 metros, porém dependendo da potência da antena essa distância pode aumentar. Tal organização é denominada piconet. Várias piconets podem coexistir dentro de um mesmo ambiente. Nesse caso, elas se interligam por um nó de ponte. Várias piconets interligadas são denominadas uma scatternet (TANENBAUM, 2003). Mas uma piconet não se limita a sete membros conectados apenas. Podem fazer parte da mesma piconet ainda 255 nós inativos. São ditos estacionados e ficam em estado de baixa energia. Eles podem apenas responder a um sinal de ativação passado pelo nó mestre. Com isso eles são ativados e tomam o lugar de algum outro nó ativo anteriormente (TANENBAUM, 2003). A seguinte imagem exibe duas piconets, A e B, formando uma scatternet: Figura 1 - Scatternet formada por duas piconets

17 5 O motivo para que seja utilizada a arquitetura tipo mestre/escravo é que seus arquitetos pretendiam disponibilizar circuitos Bluetooth por menos de cinco dólares (TANENBAUM, 2003) Pilhas de protocolos do Bluetooth Como descrevem Hopkins e Antony (2003), a pilha de protocolos Bluetooth é o agente de controle que atua sobre o dispositivo Bluetooth. Ela pode estar na forma de software, firmware, hardware ou um misto dos três. A pilha de protocolos permite a comunicação com outros dispositivos Bluetooth e também a comunicação com o próprio dispositivo. Os protocolos se dividem entre camadas e perfis. A seguir estão descritas as camadas e o modo que elas agem conforme descrito por Hopkins e Antony (2003) e a Figura 2 exibe como elas estão organizadas: A Interface de Controle do Nó (HCI) é a camada que entrega os dados diretamente para o dispositivo Bluetooth. Por ela trafega tudo a ser recebido ou enviado (voz e dados). O Protocolo de Adaptação e Controle do Link, também chamado de L2CAP, faz o empacotamento de segmentos de dados antes de serem enviados e remonta os pacotes entrantes tal como um protocolo multiplexador. Se for detectado um segmento de dados muito grande, esse protocolo quebra-o em pedaços menores para o envio. Cuida apenas de dados, pois o áudio tem acesso direto à camada HCI. O Protocolo de Descoberta de Serviço (SDP) é usado para descobrir os serviços que cada dispositivo Bluetooth oferece. Os serviços devem ser publicados para que outros dispositivos o conheçam. Um bom exemplo de serviço oferecido é dado por uma impressora. Ela oferece o serviço de impressão de documentos. A descoberta de serviços será mais bem tratada em capítulo posterior. RFCOMM é uma porta de comunicação serial. Por ser Wireless é conhecida como Porta de Comunicação por Rádio Freqüência e é capaz de simular uma porta serial comum. A camada de Especificação do Protocolo de Controle de Telefonia (TCS-BIN) é usada para envio de sinais de controle ao dispositivo quando algum aplicativo utiliza áudio, como uma chamada telefônica com uso de fones de ouvido sem fio.

18 6 O Protocolo de Acesso sem Fio (WAP) é utilizado para conexão de internet. Foi um protocolo adotado pelo SIG para suprir necessidades do Bluetooth e requer que os protocolos PPP, IP e UDP estejam presentes. OBEX é o protocolo usado para transferência de arquivos entre dispositivos Bluetooth. Foi inicialmente desenvolvido para ser utilizado na comunicação Infra-Vermelho e, assim como o Protocolo de Acesso sem Fio foi adotado para ser utilizado no Bluetooth. O Protocolo de Encapsulamento de Redes Bluetooth (BNEP) possibilita transmitir outros protocolos de rede por meio do Bluetooth. Finalmente, o Protocolo de Dispositivo de Interface Humana (HID) lista as regras para transmissão de informações de dispositivos como teclados e mouse. Figura 2 - Camadas do Protocolo Bluetooth Perfis da Pilha de Protocolos Bluetooth Normalmente, o arquiteto da aplicação utiliza a estrutura dos protocolos de rede e tenta descobrir como utilizá-los para servir ao propósito de seu aplicativo. O protocolo em si não dá pistas de como e para qual propósito deve ser utilizado. Diferentemente disso, o padrão Bluetooth em sua versão 1.1 identificava 13 tipos de aplicações diferentes que poderiam ser usadas pelos projetistas. Para se comunicar, os dispositivos deveriam implementar as mesmas

19 7 funcionalidades. Os chamados perfis, listados na tabela abaixo mostram bem quais eram as idéias principais do consórcio Bluetooth. Tabela 1 - Os perfis do Bluetooth Nome Acesso genérico Descoberta de serviço Porta serial Intercâmbio genérico de objetos Acesso de LAN Rede dial-up Fax Telefonia sem fio Intercomunicador Fone de ouvido Push de objetos Transferência de arquivos Sincronização Descrição Procedimento de gerenciamento de enlaces Protocolo para descobrir serviços oferecidos Substitui um cabo de porta serial Define o relacionamento cliente/servidor para movimentação de objetos Protocolo entre um computador móvel e uma LAN fixa Permite que um notebook se conecte através de um celular Permite que um equipamento de faz móvel se comunique com um telefone móvel Conecta um aparelho telefônico à sua estação-base local Intercomunicação digital Permite a comunicação de voz sem o uso das mãos Fornece um meio para intercambiar objetos simples Fornece um recurso mais geral de transferência de arquivos Permite sincronizar um PDA com outro computador. A base para todos os outros perfis está no perfil de acesso genérico e junto com o perfil de descoberta de serviço, que tenta descobrir quais os serviços disponíveis em outros aparelhos, forma a base do Bluetooth e todos os aparelhos devem utilizar, pelo menos, esses dois perfis. O perfil de porta serial é utilizado pela maioria dos outros perfis, pois programas que já utilizem a comunicação por portas seriais podem facilmente migrar para a rede sem fio Bluetooth. Interage diretamente com a camada RFCOMM. 2.3 JAVA Java é uma linguagem de programação orientada a objetos que é compilada para um código intermediário, o Bytecode, que é processado por uma máquina virtual no momento da execução do programa. O Java tem como importante característica a não dependência da

20 8 plataforma onde irá ser executada, desde que exista uma máquina virtual Java para essa plataforma. Têm sido muito utilizada em dispositivos de comunicação móveis, aparelhos receptores de sinal de TV digital, computadores e todo tipo de aparelhos que tenha um microprocessador. Em 1991, a Sun Microsystems financiou um projeto de pesquisa corporativa interna com o codinome Green, que deu origem ao desenvolvimento de uma linguagem de programação baseada em C++ batizada de Oak pelo seu criador James Gosling. Mais tarde, foi descoberto que esse nome já era usado para outra linguagem e em uma cafeteria local o nome Java (cidade de origem de um café importado) foi sugerido e aceito. Inicialmente, o projeto Green previa uma linguagem de programação que rodasse em tudo que pudesse ter um microprocessador. O projeto passava por dificuldades, pois o mercado de equipamentos eletrônicos inteligentes, alvos da nova linguagem a ser desenvolvida, não estava se desenvolvendo tão rapidamente como era previsto e havia o risco do projeto ser cancelado. Nessa mesma época, a World Wide Web explodia e a Sun viu possibilidade de utilizar o Java para criar conteúdo dinâmico para páginas Web. Isso deu nova razão de existir ao Java(DEITEL, H.; DEITEL P., 2005). Segundo Mary Campione e Kathy Walrath (2010) a linguagem de programação Java tem as seguintes características: Orientada a Objetos Simples Distribuída Multithread Dinâmica Portátil De Alto Desempenho Robusta Segura Para ser executado, um código Java escrito recebe a extensão.java. O código é então compilado pelo compilador Javac. Um arquivo.class é criado e contém um código na

21 9 linguagem da Máquina Virtual chamado Bytecode. Ao ser executado uma nova instância da Máquina Virtual é lançada e traduz o código em Bytecodes para a linguagem nativa do sistema. É pela tradução do Byitecode em código nativo em tempo de execução que o arquivo.class pode ser executado em qualquer sistema nativo que tenha uma Máquina Virtual Java desenvolvida sem modificações (Mary Campione e Kathy Walrath, 2010). A Figura 3 mostra o esquema de construção de um programa em Java: Figura 3 - Processo de criação de um programa Java JRE é um Kit que contém a máquina Virtual Java e bibliotecas utilizadas apenas para executar uma aplicação Java. A plataforma Java é composta da Máquina Virtual e das APIs. As APIs são conjuntos de classes prontas para serem adicionadas ao projeto. APIs com características parecidas são agrupadas em bibliotecas e recebem o nome de pacotes. A Figura 4 exibe a integração entre máquina virtual e a API Java. Figura 4 - Plataforma Java Conforme Jandl (2003) para escrever um programa Java são necessários um editor de textos ASCII e um Kit de desenvolvimento Java (JDK).

22 10 Ao invés de se usar um editor de texto comum, existe a opção de utilizar um IDE (Ambiente de Desenvolvimento Integrado) para facilitar a digitação. O editor do IDE facilita a digitação do código-fonte e agilizando o processo. O Java Deveolpment Kit é composto por: Um compilador para linguagem Java Uma máquina virtual Um programa para geração de documentação (Javadoc) Um utilitário para criar arquivos compactados Java Archive (jar) Uma extensa biblioteca de classes padronizadas Java Um ambiente de execução Java Os Kits de desenvolvimento mais utilizados atualmente são os oferecidos pela Sun Microsystems e se dividem em: Java SE Java Standard Edition é utilizado para desenvolver a maioria dos aplicativos. É o padrão para se começar a desenvolver em Java. Java EE Java Enterprise Edition inclui um servidor de aplicativos, um servidor web, APIs específicas, suporte a Enterprise JavaBeans, Java Servlets APIs e suporte a tecnologia Java Server Pages (JSP). Java ME Utilizada para escrever aplicativos para plataformas com menor poder de processamento e memória, como é o caso de aplicativos para celulares e Set-up Boxes. Java FX Java FX Script Technology é uma linguagem que possibilita o desenvolvimento com alta produtividade de conteúdo para o ambiente Java. Em seguida são descritos os Kits usados no desenvolvimento desse projeto Java Standard Edition Java SE é composto das Bibliotecas necessárias para se executar um programa Java, da máquina virtual Java e ferramentas para se escrever programas Java, como compiladores e debugadores. É a base para desenvolver aplicativos Java e deve estar instalada mesmo que outro Kit seja utilizado. Como descrito no site da Oracle (2010), atualmente o Java SE se encontra na versão 6.

23 Java Micro Edition Conforme Knudsen e Li (2005), Java ME é o Kit da plataforma Java da Oracle utilizado para desenvolvimento de aplicativos para dispositivos de tamanho, processamento e quantidade de memória reduzidos tais como celulares, smartphones, pagers e set-up boxes. O Java ME divide os dispositivos em três categorias: Configuração, Perfis e APIs opcionais. A configuração dos aparelhos se baseia na capacidade de processamento e memória. Há duas famílias de configuração: CDC e CLDC. Dispositivos classificados como CDC tem no mínimo 512 KB de memória de acesso somente de leitura (ROM), 256 KB de memória de acesso volátil (RAM), algum tipo de conexão de rede e devem aceitar uma versão completa da JVM. São representados por aparelhos GPS e set-up Boxes. CLDC são aparelhos como menor poder de processamento e memória. Devem ter um mínimo de 160 KB de ROM Os Perfis de dispositivos têm como base a configuração, mas classificam os dispositivos quanto a características mais específicas como se o aparelho possui display, qual seu método de armazenamento estático e quais os métodos de conexão, por exemplo. Além de configuração e perfil, podem ser disponibilizadas APIs específicas para cada dispositivo. A Figura abaixo mostra algumas das configurações e perfis mais comuns. Figura 5 - Configurações e Perfis mais comuns

24 API Bluetooth Java Como descrito por Ropkins e Antony (2003), para se tornar um padrão Java aceito pela comunidade de desenvolvedores e empresas da área uma nova tecnologia deve passar por alguns processos de testes e certificações a fim de garantir sua aplicabilidade e eficiência. A JCP é uma comissão formada por empresas líderes do setor e por técnicos renomados que criam regras e testes para padronizar a tecnologia recém criada. JSR é um documento que contém as especificações dessa nova proposta de padronização. A JSR-82 faz parte da JCP que trata da API Bluetooth e é liderada pela Motorola tendo ajuda de mais dezessete empresas do setor e ainda auxílio individual de Peter Dawson, Steven Knudsen e Bread Threatt. A comissão encarrega-se da criação de normas que norteiem a utilização da tecnologia, a Implementação de Referência (RI) e de um Kit para desenvolvimento (TCK). Qualquer empresa que se baseie na JSR pode utilizá-la para criar seu próprio Kit de Desenvolvimento de Software (SDK). Existem muitas empresas que desenvolvem seu próprio SDK Java para Bluetooth e algumas estão listadas abaixo e uma versão atualizada dessa lista pode ser conseguida em Tabela 2 - Kits de Desenvolvimento e suas Empresas Nome da empresa Suporte a API Javax.Bluetooth Suporte a API Javax.obex Plataformas Java Suportadas Sistemas Operacionais Suportados Atinav Sim Sim Java Micro Edition, Java Standart Edition Win-32, Linux, Pocket PC BlueCove Sim Sim Java Standart Edition Win-32, Mac OS X, Linux, Pocket PC Ericson Não Não Java Standart Edition Win-32, Linux Esmertec Sim Não Java Micro Edition Win-32, Palm OS, Pocket PC, outros Harald Não Não Java Standart Edition Win-32, Linux, outros Possio Sim Sim Java Micro Edition Win-32, Linux Rococo Sim Sim Java Micro Edition, Java Standart Edition Win-32, Linux, Palm OS, Pocket PC Smart Network Sim Não Java Micro Edition HyNetOS Device SuperWaba Não Não Waba JVM PalmOS Zucotto Não Não Java Micro Edition, Java Standart Edition Win-32

25 13 Fazem parte dos aplicativos Java Bluetooth os seguintes componentes (Ropkins e Antony, 2003): Pilha de Inicialização Gerenciamento do dispositivo Descoberta de dispositivos Descoberta de Serviços Registro de Serviços Comunicação A Central de Controle Bluetooth (BCC) define algumas configurações de segurança para o dispositivo Bluetooth. Más, apesar de estar presente na JSR-82 como sendo um item a ser implementado, não define como isso deve ser feito. Isso leva os fabricantes a construírem cada um seu próprio BCC, seja usando Java, seja usando uma linguagem nativa como C ou C++. Além disso, as funcionalidades definidas para cada BCC também podem variar. Algumas funcionalidades descritas na JSR-82 são: Configurações básicas de segurança Mantém lista dos dispositivos já pareados (o dispositivo não precisa estar pareado naquele instante) Mantém lista dos dispositivos considerados seguros Contem mecanismo para pareamento de dispositivos Contem mecanismo para autorizar requisições de conexão Suas configurações não devem ser modificadas a não ser por ele mesmo Pilha de Inicialização Para preparar o dispositivo para operar, a pilha de protocolos deve ser inicializada. A pilha é a última camada de contato com o hardware do dispositivo e o habilita para transferir os dados. Para isso é utilizada uma seqüência de comandos que podem variar em relação ao Kit de desenvolvimento utilizado. Alguns Kits já configuram a pilha de uma maneira padrão e não necessitam que o programador o faça.

26 Gerência do Dispositivo Continuando com a descrição da API Java Bluetooth feita por Ropkins e Antony (2003) e baseando-se na API Java Standart edition, para se obter informações a respeito do dispositivo utilizado e dos dispositivos pareados foram criadas as classes LocalDevice e RemoteDevice. Essas classes fazem parte do Perfil de Acesso Genérico e é a partir delas que é obtido acesso às configurações dos dispositivos. A classe DeviceClass é utilizada para obter informações sobre como é classificada a configuração que o dispositivo próximos tem, como smartphones, celulares, computadores, pontos de acesso, etc. Classe Javax.Bluetooth.LocalDevice: Essa classe é usada para se obter informações e manipular o dispositivo Bluetooth em uso. Só é possível ter uma instância dela por Máquina Virtual (JVM) já que para cada dispositivo Bluetooth em funcionamento é lançada uma instância da JVM. Para se instanciar um objeto apto a obter as informações do dispositivo é usado o método static getlocaldevice(): LocalDevice localdevice = LocalDevice.getLocalDevice(). Esse método pode lançar uma exceção do tipo BluetoothStateException se o dispositivo não estiver funcionando corretamente. public String localdevice.getbluetoothaddress(): O método getbluetoothaddress() devolve o endereço Bluetooth do dispositivo. Esse endereço é constituído por uma string de 12 caracteres de números hexadecimais. public boolean localdevice.setdiscoverable(int modo): Habilita a opção de ficar visível para os outros dispositivos Bluetooth. A tabela 3 exibe as opções para modo disponíveis:

27 15 Tabela 3 - Modos de visibilidade do dispositivo Bluetooth Modo de Nome Completo Descrição Valor Valor Acesso Inteiro Hexadecimal NOT_DISCO Invisível Não permite que outros 0 0 VERABLE dispositivos o detecte GIAC Código de acesso a Permite deixar o x9E8B00 pesquisa geral ou ilimitada dispositivo visível LIAC Código de acesso a pesquisa limitada Permite deixar o dispositivo visível pelo tempo de 1 minuto x9E8B33 public int localdevice.getdiscoverable(): Retorna os estado de visibilidade atual do dispositivo. As constantes NOT_DISCOVERABLE, GIAC OU LIAC são retornadas em forma de números inteiros. Classe Javax.Bluetooth.RemoteDevice: Oferece acesso a um único dispositivo que esteja próximo. public final String getbluetoothaddress(): Esse método retorna o endereço do dispositivo. public String getfriendlyname(boolean alwaysask): Devolve um nome amigável do dispositivo remoto questionado. Classe Javax.Bluetooth.DeviceClass: Essa classe possui dois métodos usados para descobrir a qual classe o dispositivo questionado faz parte. Os métodos public int getminordeviceclass() e public int

28 16 getmajordeviceclass() retornam um número inteiro que pode ser usado para descobrir a classe de dispositivos. A tabela 4 relaciona algumas dessas classes. Tabela 4 - Classes de dispositivos Bluetooth Classe Maior Classe Menor Descrição da Classe Maior Descrição da Classe Menor Computer Desktop Computer Notebook Computer PDA Celular Celular Celular Smartphone Dispositivo de Audio Fone de ouvido Periféricos de Computador Teclado Periféricos de Computador Mouse Dispositivo de Imagem Câmera Dispositivo de Imagem Impressora Descoberta de Dispositivos Classe Javax.Bluetooth.DiscoveryAgent: Essa classe é utilizada para descobrir os dispositivos que estão disponíveis ao redor. O objeto localdevice instanciado para obter as propriedades do dispositivo local é utilizado também para instanciar um objeto que fará a busca por outros dispositivos: LocalDevice localdevice = LocalDevice.getLocalDevice() DiscoveryAgent discoveryagent = localdevice.getdiscoveryagent() Essa classe possui dois métodos para efetuar a busca por dispositivos: public boolean startinquiry(int codacesso, DiscoveryListener listener): Com esse método é possível iniciar uma pesquisa por dispositivos próximos. O codacesso pode ser uma das três constantes: NOT_DISCOVERABLE, LIAC ou GIAC. Um objeto de uma classe que implementa a interface DiscoveryListener deve ser passado como

29 17 segundo parâmetro. Eventos são repassados a esse objeto à medida que novos dispositivos são encontrados. public RemoteDevice[] retrievedevice(int opcao): Retorna uma lista de objetos do tipo RemoteDevice que possam ter sido encontrados pelo método startinquiry(). A variável opcao pode conter as constantes CACHED (0) ou PREKNOWN (1). CACHED pode ser um dispositivo encontrado em uma pesquisa recente, enquanto que PREKNOWN pode ser um dispositivo freqüentemente acessado. Interface Javax.Bluetooth.DiscoveryListener: Essa interface deve estar implementada na classe principal do aplicativo para que essa classe seja avisada quando um novo dispositivo for encontrado. public void devicediscovered(remotedevice btdevice, DeviceClass code): Esse método é chamado pela máquina virtual quando o método startinquiry() retorna um dispositivo encontrado. O RemoteDevice é uma referência ao dispositivo encontrado, enquanto que DeviceClass é o tipo de dispositivo encontrado referente a tabela Descoberta de Serviços Com as instruções acima é possível instanciar o próprio dispositivo, procurar por dispositivos novos e instanciar os novos dispositivos. Mas para que seja possível executar alguma ação útil é necessário saber quais os tipos de serviço que cada dispositivo encontrado pode oferecer. Como exemplo, uma impressora encontrada tem o serviço de impressão registrado no seu SDDB. SDDB é um banco de dados de pequeno porte usado para armazenar os serviços de cada dispositivo. Outra forma de encontrar o serviço disponibilizado por um dispositivo é consultar a classe de dispositivos da qual ele faz parte. Mas o serviço registrado no SDDB é mais específico do que os baseados apenas na classe de dispositivo, portanto mais utilizado. No SDDB ficam armazenados os registros dos serviços que cada dispositivo pode executar na forma de um ServiceRecord.

30 18 Figura 6 - SDDB e dois Registros de Serviços suportados Entradas em um ServiceRecord são chamadas de atributos e contêm um ID e um valor a ele atribuídos. Figura 7 - Atributos em um ServiceRecord Os valores dos atributos chamados DataElements podem ser do tipo int, boolean, UUID ou uma enumeração. Classe Javax.Bluetooth.UUID: A classe UUID identifica os serviços possíveis da pilha de protocolos Bluetooth. Como exemplo, para enviar um arquivo por meio do perfil de entrega de objetos OBEX, deve-se efetuar a descoberta de serviços utilizando o UUID 0x1105 que é o UUID do OBEX. Abaixo a tabela 7 mostra os UUID de cada protocolo e a tabela 8 exibe alguns dos perfis mais utilizados. Utilizar um UUID de um protocolo ou de um perfil define a especificidade da ação desejada. Cabe lembrar que um perfil é sempre baseado em um protocolo Bluetooth e por isso é apenas mais específico em relação à ação a executar, mas continua usando o protocolo base.

31 19 Tabela 5 - UUID referentes aos protocolos Bluetooth Protocolo UUID (Decimal) UUID (Hexadecimal) SDP 1 0x0001 RFCOMM 3 0x0003 L2CAP 256 0x0100 HTTP 12 0x000C FTP 10 0x000A TCP 4 0x0004 IP 9 0x0009 UDP 2 0x0002 BNEP 15 0x000F OBEX 8 0x0008 TCS-BIN 5 0x0005 Tabela 6 - UUID referentes aos Perfis Bluetooth Perfil Nome do UUID UUID Serviço (decimal) (Hexadecimal) Porta Serial Porta Serial x1101 Transferência OBEX x1105 de Objetos Acesso HeadSet x1108 Genérico Impressora Impressão x1122 Básica Dispositivos Mouse, x1125 de Interface Teclado Humana Bluetooth Rede Genérica n/a x1201 public UUID(long uuidvalue): do tipo long. Esse é o método construtor da classe UUID. Ele simplesmente depende de um valor public UUID(String uuidvalue, boolean shortuuid): Já esse método permite construir um UUID apartir de uma String. Se shortuuid estiver setado como verdadeiro, o valor de retorno terá 16 bits ao invés de 128 como o normal. Não deve ser inserido o 0x de hexadecimal para se utilizar esse método.

32 20 Javax.Bluetooth.DiscoveryAgent: Essa classe, já utilizada para prover a descoberta de dispositivos, também é usada para a descoberta de serviços. Os dois métodos seguintes são utilizados para descobrir os serviços disponíveis em dispositivos remotos. public int searchservices(int[] attrset, UUID[] uuidset, RemoteDevice btdev, DiscoveryListener disclistener): Com esse método é possível procurar por uma lista de serviços disponíveis em um único dispositivo por vez. O parâmetro uuidset do tipo UUID[] é uma lista dos serviços que se procura no dispositivo e já dever ter sido criada. Quando o dispositivo remoto sinaliza possuir um dos serviços relacionados na lista de serviços procurados a lista attrset é preenchida com os atributos relacionados aos serviços que batem. O objeto btdev da classe RemoteDevice é uma referência ao dispositivo pesquisado. Também deve ser implementado um objeto que seja a interface da classe DiscoveryListener para que seja possível receber chamadas de eventos quando um serviço relacionado for encontrado. public String selectservice(uuid uuid, int security, boolean master): Esse método é usado para procurar por um serviço específico em qualquer dispositivo disponível. Se houver algum serviço encontrado que bata com os solicitados, esse método retorna uma String que deve ser usada por Conector.open() que cria uma conexão com o dispositivo. Interface Javax.Bluetooth.DiscoveryListener: Essa interface também é utilizada para instanciar um objeto para fazer a busca por serviços e seus métodos principais são: public void servicediscovered(int transid, ServiceRecord[] servrecord): Esse é um método chamado pela JVM quando serviços procurados são encontrados no dispositivo remoto e o método DiscoveryAgent.searchServices() implementar a interface

33 21 DiscoveryListener. Com esse método pode-se obter um identificador da transação e uma lista do tipo ServiceRecord com os serviços oferecidos pelo dispositivo remoto. Com um ServiceRecord é possível conectar ao dispositivo e fazer uso desse serviço. Classe Java.Bluetooth.ServiceRecord: Essa é a classe usada para instanciar um objeto do tipo ServiceRecord que é usado como entrada na tabela SDDB e que especifica os serviços oferecidos pelo dispositivo. Classe Java.Bluetooth.DataElement: Cada ServiceRecord é formado por um conjunto de atributos da classe DataElement. Um DataElement pode ser formado apartir dos sequintes tipos: Inteiros Booleanos Strings UUIDs Seqüência dos tipos acima Registro de Serviços Para um dispositivo servidor poder oferecer um serviço, esse serviço deve antes ser publicado para, então, poder ser visto pelos clientes. Esse processo recebe o nome de Registro de Serviços. Para que um serviço seja publicado no SDDB é necessário usar o método estático Connector.open() e fazer um cast com a classe StreamConnectionNotifier. O objeto StreamConnectionNotifier é passado para o método getrecord() da classe LocalDevice é então é obtido um objeto do tipo ServiceRecord. Para que o serviço possa ser visto pelos dispositivos Bluetooth, o método acceptandopen() da classe StreamConnectionNotifier é chamado e fica a espera dos dispositivos remotos. Quando o processo termina, é utilizado o método close() da classe StreamConnectionNotifier para encerrá-lo.

34 22 // criando os objetos utilizados streamconnectionnotifier notifier = null; streamconnection sconn = null; localdevice localdevice = null; servicerecord servicerecord = null; // abrindo a conexão // a string url já deve ter sido criada notifier = (streamconnectionnotifier)connector.open(url); // instanciar o objeto localdevice e obtendo o servicerecord localdevice = localdevice.getlocaldevice(); servicerecord = localdevice.getrecord(notifier); // esse método bloqueia a thread até que algum dispositivo responda notifier.acceptandopen(); //o serviços está registrado no sddb //esperar uma conexão.quando o cliente terminar notifier.close() Comunicação Existem três modos para que dois dispositivos possam se comunicar. Os mais comuns são o protocolo RFCOMM e o protocolo L2CAP. O protocolo RFCOMM é o mais usado. É fácil adaptá-lo em aplicativos que fazem uso da porta serial para comunicação via Bluetooth. Por utilizar comunicação serial na transmissão de dados é o mais indicado quando é necessário fazer troca de dados de modo contínuo, como por exemplo, transmissão de imagem. Em uma comunicação usando o RFCOMM existe o conceito de seção e conexão. Uma seção é iniciada entre dois dispositivos comunicantes e podem ter uma ou mais conexões para realizar uma tarefa completa. Múltiplas seções só podem ocorrer com dispositivos diferentes.

35 23 Um dispositivo que vai agir como um servidor precisa basicamente usar o mesmo código do registro de serviços. A String url precisa ser iniciada com btspp://localhost: seguida de um número de 256 ou 128 bits no formato hexadecimal. Esse número precisa ser diferente de outro encontrado em outro dispositivo. Opcionalmente, é possível nomear esse serviço que está sendo criado com o seguinte comando: name=serialconn separado por um ; do resto da URL, em que serialconn é o nome do ServiceRecord. // criando os objetos utilizados StreamConnectionNotifier notifier = null; StreamConnection con = null; LocalDevice localdevice = null; ServiceRecord servicerecord = null; InputStream input; OutputStream output; //criando a URL que contém o UUID com pequena chance de conflito String url = "btspp://localhost: aabbccddeeff; name=serialconn"; // abrindo a conexão e efetuando um cast para StreamConnectionNotifier notifier = (StreamConnectionNotifier)Connector.open(url); //bloqueando a thread até um acesso de um cliente con = notifier.acceptandopen(); // se houver resposta de algum cliente abrir os streams de dados input = con.openinputstream(); output = con.openoutputstream(); // agora é possível enviar e receber dados pelos streams Para estabelecer uma conexão para o cliente recupera-se a URL com o método getconnectionurl() da classe ServiceRecord e abre a conexão com o método estático Connector.open() passando a url como seu parâmetro. String connectionurl = servicerecord.getconnectionurl(0, false); StreamConnection con = (StreamConnection)Connector.open(connectionURL);

36 24 Para as conexões utilizando o protocolo L2CAP é necessário entender o conceito de MTU (Unidade Máxima de Transmissão). L2CAP utiliza a transmissão de dados em forma de pacotes. O tamanho máximo que esses pacotes podem assumir deve ser negociado entre os dois dispositivos comunicantes e recebe o nome de MTU. O padrão é utilizar 672 bytes por pacote. Para encontrar o MTU possível para o dispositivo local é utilizado o seguinte método: LocalDevice local = LocalDevice.getLocalDevice(); String receivemtumax = local.getproperty("bluetooth.l2cap.receivemtu.max"); Para abrir uma conexão também são usados os métodos Connector.open() e acceptandopen() porém agora são usadas as classe L2CAPConnectionNotifier e L2CAPConnection. L2CAPConnectionNotifier notifier = (L2CAPConnectionNotifier).Connector.open(url); L2CAPConnection con = (L2CAPConnection)notifier.acceptAndOpen(); E esse é o código para conexão do cliente: L2CAPConnection = (L2CAPConnection)Connector.open(url); 2.4 Linux GNU/Linux, ou simplesmente Linux como é mais conhecido é um composto de softwares baseados na GPL que tem como kernel o Linux que formam um sistema operacional de ambiente moderno seguro e estável para desktops, servidores e sistemas embarcados. Trata-se de uma plataforma livre escrita por desenvolvedores ao redor do mundo e que pode ser usada e modificada por todos os interessados, desde que sigam as leis da GPL para isso.

37 25 3 METODOLOGIA DE DESENVOLVIMENTO Esse capítulo oferece uma visão da seqüência de desenvolvimento do projeto e as ferramentas utilizadas, inclusive para que possa ser recriado o ambiente de desenvolvimento adotado. 3.1 Ferramentas Utilizadas Para desenvolvimento desse trabalho foi utilizado como Sistema Operacional a distribuição GNU/Linux Ubuntu versão e que foi atualizado para assim que essa ficou disponível em outubro de Foi instalado na máquina um dongle Bluetooth (antena Bluetooth) genérico facilmente encontrado nas lojas de informática. Esse dispositivo promete ter o alcance de no máximo 10 metros. A foto do dispositivo Bluetooth adquirido para o projeto pode ser vista na Figura 8. O Sistema Operacional instalou automaticamente os drivers para o novo dispositivo. Figura 8 - Dongle Bluetooth O Java instalado na máquina ao final do trabalho era a versão 6 update 22. O banco de dados escolhido foi o MySQL Community Server versão pois também é fornecido sob a licença GPL. O IDE utilizado para desenvolvimento desse aplicativo foi o NetBeans O plugin para Java Micro Edition também foi instalado pelo instalador do próprio IDE. Para o desenvolvimento na plataforma Micro Edition também é necessário ter instalado um emulador para JME. No caso o Kit Emulador utilizado foi o Sun Java Wireless Toolkit da Oracle na versão para CLDC e que pode ser conseguido no site da Oracle.

38 26 O Kit de desenvolvimento para a API Bluetooth a ser usado no desenvolvimento de aplicativos Java Standart Edition escolhido foi o BlueCove versão por se tratar de um Kit que pode ser utilizado no sistema operacional Linux, além de ser gratuito. Para utilizar o BlueCove é necessário ter instalado o módulo que dá suporte ao BlueCove no Linux chamado BlueZ versão Informações sobre o BlueCove e sobre o BlueZ podem ser conseguidas no site do projeto: bluecove.org. Para teste do aplicativo cliente foi utilizado o celular Nokia 5530 com o sistema operacional Symbian S Modelagem do Sistema O projeto almeja a construção de dois aplicativos, um cliente e um servidor. O cliente deve ser instalado em um dispositivo móvel como um celular ou smartphone. O aplicativo servidor deve ser instalado em um computador desktop Descrição do Sistema Para que fique mais claro o que se pretende com a construção desse projeto, optou-se pela modelagem do sistema, a fim de facilitar o entendimento pelos leitores. O servidor da aplicação se constitui por uma interface gráfica, onde o administrador do sistema pode inserir os dados e um processo servidor que fica rodando em segundo plano recebendo as requisições dos clientes. Os dados a serem inseridos são, no caso de produtos a venda: o nome do produto, preço e localização, por exemplo, e no caso de um campanha publicitária, o título e uma mensagem a ser enviada para os clientes, assim como, a data de início e fim que aquela campanha deve ser veiculada. O processo servidor fica pronto a espera de uma requisição dos usuários. Ao receber uma requisição com o nome de um produto, por exemplo, o servidor pesquisa no banco de dados as características do produto e devolve para o cliente uma tabela com o nome daquele produto, sua marca, disponibilidade, localização, preço e produtos similares que possam interessar ao cliente. Esse processo servidor também consulta o ambiente de tempos em tempos para descobrir novos dispositivos passíveis de receberem o objeto da campanha, quer seja uma nota de texto, imagem ou outro objeto que se pretenda enviar. Os dispositivos clientes também têm a função de cliente e servidor, uma vez que se comportam como clientes quando geram uma requisição de pesquisa ao servidor da aplicação,

39 27 e como servidor uma vez que estão ativos prontos a responderem a uma solicitação de conexão do servidor da aplicação. As pessoas habilitadas para interagir com o sistema são, portanto, o administrador do sistema, ao qual caberá a tarefa de inserir os dados de produtos e campanha no sistema e os clientes que devem ter o aplicativo cliente instalado em um celular ou smartphone e, apartir dele, efetuar pesquisas e receber os resultados e campanhas publicitárias.funcionalidades e Diagramas de Casos de Uso A Figura 9 traz as funcionalidades do sistema e traduz o exposto anteriormente: Figura 9 - Visão geral das funcionalidades dos atores Funcionalidades do ator administrador: Figura 10 - Funcionalidades do ator administrador Casos de uso do ator administrador: Tabela 7 - Casos de uso do ator administrador Funcionalidade Nome da Funcionalidade Caso de Uso 1 Cadastra Campanha Cadastrar Campanha() Consultar Campanha() Alterar Campanha() Excluir Campanha() 2 Cadastra Produto Cadastrar Produto() Consultar Produto() Alterar Produto() Excluir Produto()

40 28 Funcionalidades do ator usuário: Figura 11 - Funcionalidades do ator usuário Casos de uso do ator usuário Tabela 8 - Casos de uso do ator usuário Funcionalidade Nome da Funcionalidade Caso de Uso 1 Ler Campanha Consultar Campanha() 2 Pesquisa Produto Pesquisar Produto() Consultar Produto() Diagramas de Seqüência As Figuras 12 e 13 apresentam os diagramas de seqüência de algumas das ações mais importantes efetuadas pelos atores: Figura 12 - Diagrama de seqüência de consulta de produtos

41 29 Figura 13 - Diagrama de seqüência para enviar uma campanha Diagramas de Classes As Figuras 14 e 15 exibem as classes utilizadas para codificar o aplicativo servidor e o aplicativo cliente: Figura 14 - Diagrama de classes aplicativo cliente

42 30 Figura 15 - Diagrama de classes do aplicativo servidor Protótipo das Telas do Aplicativo Servidor A interface do protótipo do aplicativo se resume a três telas quem contêm as seguinte funcionalidades: login para obter acesso ao sistema; Principal onde o administrador pode inserir e modificar as campanhas e configurar os dias que estarão disponíveis; Produtos onde se tem acesso às atividades relacionadas aos produtos, como inserir e editar os produtos.

43 31 Figura 16 - Tela de login Figura 17 - Tela Principal

44 32 Figura 18 - Tela de produtos Estruturação das Bases de Dados A estrutura das bases de dados utilizadas é a seguinte: Tabela 9 - Estrutura Base de Dados

45 Codificação do Aplicativo Cliente O sistema Cliente começou a ser codificado pela parte gráfica. Em JME, para se exibir objetos na tela é necessário instanciar um objeto do tipo Display e passar um objeto do tipo Displayable para ele. O objeto utilizado no aplicativo foi um Form, que é um objeto que pode receber uma maior quantidade de itens a serem exibidos. Outro objeto do tipo Displayable poderia ser um TextBox ou um objeto do tipo Scream utilizado para construir interfaces de jogos. O objeto Displayable depois de instanciado deve ser setado como corrente, isto é, ele que deve ser exibido na tela, no método startapp() da classe. public class Cliente extends MIDlet implements CommandListener { private Display display = null; private Form formpesquisa = null; } public Cliente() { display = Display.getDisplay(this); formpesquisa = new Form("Pesquisa"); } protected void startapp() throws MIDletStateChangeException { display.setcurrent(formpesquisa); } No construtor da classe, além de instanciar o objeto Display e o Displayable deve-se construir todos os objetos que vão ser exibidos. Usando o emulador do Wireless Toolkit da Oracle a apresentação do aplicativo ficou como pode-se ver na Figura 19:

46 Figura 19 - Aplicativo Cliente 34

47 35 A Figura 20 exibe mais algumas telas do aplicativo: Figura 20 - Telas diversas do aplicativo

48 Codificação do Aplicativo Servidor Para o servidor, inicialmente foi feito a codificação da descoberta de dispositivos e serviços usando o Bluetooth. O código escrito até o momento é capaz de fazer a busca por dispositivos Bluetooth próximos e reconhecer sua classe, seu endereço e seu nome, e pesquisar os serviços disponíveis. A Figura 21 e 22 exibem a pesquisa de novos dispositivos. Figura 21 - Procura de dispositivos

49 37 Figura 22 - Dispositivo encontrado Apesar de ambos os sistemas, Cliente e Servidor, não terem obtido êxito na sua finalização os problemas a serem sanados demandam apenas tempo e prática na aplicação da linguagem Java podendo ser finalizados ainda.

50 38 4 RESULTADOS E DISCUSSÕES Finalizado o conjunto Cliente/Servidor devem trabalha da forma como mostrado pela Figura 23 e 24: Para distribuir uma campanha publicitária aos clientes de uma loja, como um supermercado, o servidor, depois de efetuar pesquisa no banco para receber a campanha disponível, começa a procurar por dispositivos próximos que tenham o aplicativo cliente instalado e possam trocar informações. Ao encontrar um cliente o servidor envia a mensagem para o usuário, que pode lê-la direto no seu celular. Figura 23 - Envio de uma mensagem publicitária ao usuário O inverso acontece quando um usuário, ao entrar em uma loja com o servidor instalado, digita no campo de pesquisa, o nome de um produto, como, por exemplo, café. O aplicativo envia uma mensagem ao servidor, que por sua vez se comunica com o banco e solicita o resultado da pesquisa. Ao receber o resultado o servidor envia os dados para o usuário que pode ler o resultado da pesquisa no celular. O resultado da pesquisa contém informações como nome e marca do produto, preço e sua disponibilidade em estoque, além de sua localização dentro da loja:

51 Figura 24 - Envio de uma solicitação de pesquisa ao servidor 39

Redes de Computadores sem Fio

Redes de Computadores sem Fio Redes de Computadores sem Fio Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Programa Introdução

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

I N T R O D U Ç Ã O W A P desbloqueio,

I N T R O D U Ç Ã O W A P desbloqueio, INTRODUÇÃO Para que o Guia Médico de seu Plano de Saúde esteja disponível em seu celular, antes de mais nada, sua OPERADORA DE SAÚDE terá de aderir ao projeto. Após a adesão, você será autorizado a instalar

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com Java & OpenJDK Thiago S. Gonzaga Sun Campus Ambassador thiago.gonzaga@sun.com Tópicos Sobre a Sun Microsystems Algumas tecnologias da Sun Linguagem de Programação Ciclo de Desenvolvimento O que é Java?

Leia mais

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus Java ME e suas principais tecnologias de conectividade Gracieli Begia Mateus Telefones Celulares no Mundo Fonte: UIT e Wireless Intelligence (Ovum/GSM Association) Posição do Brasil no Mundo Principais

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Operador de Computador. Informática Básica

Operador de Computador. Informática Básica Operador de Computador Informática Básica Instalação de Software e Periféricos Podemos ter diversos tipos de software que nos auxiliam no desenvolvimento das nossas tarefas diárias, seja ela em casa, no

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Programação de Computadores II TCC-00.309 Turma A-1

Programação de Computadores II TCC-00.309 Turma A-1 Material elaborado pelo prof. Leandro A. F. Fernandes com contribuições dos profs. Anselmo A. Montenegro e Marcos Lage Programação de Computadores II TCC-00.309 Turma A-1 Conteúdo Introdução ao Ambiente

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 4. INTERLIGAÇÃO DO SISTEMA... 5 5. ALGUNS RECURSOS... 6 6. SERVIDOR BAM...

INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 4. INTERLIGAÇÃO DO SISTEMA... 5 5. ALGUNS RECURSOS... 6 6. SERVIDOR BAM... 1 de 30 INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 3.1. ONDE SE DEVE INSTALAR O SERVIDOR BAM?... 4 3.2. ONDE SE DEVE INSTALAR O PROGRAMADOR REMOTO BAM?... 4 3.3. COMO FAZER

Leia mais

Rotina de Discovery e Inventário

Rotina de Discovery e Inventário 16/08/2013 Rotina de Discovery e Inventário Fornece orientações necessárias para testar a rotina de Discovery e Inventário. Versão 1.0 01/12/2014 Visão Resumida Data Criação 01/12/2014 Versão Documento

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Prof. Esp. Lucas Cruz

Prof. Esp. Lucas Cruz Prof. Esp. Lucas Cruz O hardware é qualquer tipo de equipamento eletrônico utilizado para processar dados e informações e tem como função principal receber dados de entrada, processar dados de um usuário

Leia mais

Agregador de feeds RSS para dispositivos móveis

Agregador de feeds RSS para dispositivos móveis Agregador de feeds RSS para dispositivos móveis Disciplina: Computação Móvel Professor: Mauro Nacif Rocha Data: 27/02/2007 Hadriel Toledo Lima 50290 Juliana Pinheiro Campos 47683 Luis Felipe Hussin Bento

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 INTRODUÇÃO REDES EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 Computadores eram máquinas grandes e complexas, operadas por pessoas altamente especializadas; Não havia interação direta entre usuários

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Guia do usuário do PrintMe Mobile 3.0

Guia do usuário do PrintMe Mobile 3.0 Guia do usuário do PrintMe Mobile 3.0 Visão geral do conteúdo Sobre o PrintMe Mobile Requisitos do sistema Impressão Solução de problemas Sobre o PrintMe Mobile O PrintMe Mobile é uma solução empresarial

Leia mais

TUTORIAL INSTALAÇÃO DA ROTINA 2075 NO LINUX

TUTORIAL INSTALAÇÃO DA ROTINA 2075 NO LINUX Apresentação O departamento de varejo da PC Sistemas inovou seu produto de frente de caixa, permitindo seu funcionamento no sistema operacional do Linux com a distribuição Ubuntu. O cliente poderá usar

Leia mais

Manual de Instalação do Agente Citsmart

Manual de Instalação do Agente Citsmart 16/08/2013 Manual de Instalação do Agente Citsmart Fornece orientações necessárias para efetuar a instalação do Agente Citsmart. Versão 1.9 21/11/2014 Visão Resumida Data Criação 21/11/2014 Versão Documento

Leia mais

TRBOnet MDC Console. Manual de Operação

TRBOnet MDC Console. Manual de Operação TRBOnet MDC Console Manual de Operação Versão 1.8 ÍNDICE NEOCOM Ltd 1. VISÃO GERAL DA CONSOLE...3 2. TELA DE RÁDIO...4 2.1 COMANDOS AVANÇADOS...5 2.2 BARRA DE FERRAMENTAS...5 3. TELA DE LOCALIZAÇÃO GPS...6

Leia mais

Manual Software Controle de Jukebox. Manual. Software Controle de Jukebox

Manual Software Controle de Jukebox. Manual. Software Controle de Jukebox Manual Software Controle de Jukebox Versão 1.0 2014 Sumário 1. Principais Características... 2 2. Software Controle de Jukebox... 3 I. Tela Principal... 4 1 Data Cobrança... 4 2 Linha... 4 3 Cobrador...

Leia mais

Cadastramento de Computadores. Manual do Usuário

Cadastramento de Computadores. Manual do Usuário Cadastramento de Computadores Manual do Usuário Setembro 2008 ÍNDICE 1. APRESENTAÇÃO 1.1 Conhecendo a solução...03 Segurança pela identificação da máquina...03 2. ADERINDO À SOLUÇÃO e CADASTRANDO COMPUTADORES

Leia mais

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Redes de Computadores. Prof. Dr. Rogério Galante Negri Redes de Computadores Prof. Dr. Rogério Galante Negri Rede É uma combinação de hardware e software Envia dados de um local para outro Hardware: transporta sinais Software: instruções que regem os serviços

Leia mais

Como configurar e-mails nos celulares. Ebook. Como configurar e-mails no seu celular. W3alpha - Desenvolvimento e hospedagem na internet

Como configurar e-mails nos celulares. Ebook. Como configurar e-mails no seu celular. W3alpha - Desenvolvimento e hospedagem na internet Ebook Como configurar e-mails no seu celular Este e-book irá mostrar como configurar e-mails, no seu celular. Sistemas operacionais: Android, Apple, BlackBerry, Nokia e Windows Phone Há muitos modelos

Leia mais

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Na Figura a seguir apresento um exemplo de uma mini-tabela de roteamento: Tutorial de TCP/IP - Parte 6 - Tabelas de Roteamento Por Júlio Cesar Fabris Battisti Introdução Esta é a sexta parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos básicos do protocolo TCP/IP. Na

Leia mais

UM FRAMEWORK PARA DESENVOLVIMENTO DE

UM FRAMEWORK PARA DESENVOLVIMENTO DE UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA UM FRAMEWORK PARA DESENVOLVIMENTO DE APLICATIVOS EM WINDOWS MOBILE. PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno:

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS. Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar com o CMS. 5 Removendo o Cliente. Playlist 7 Criando um Playlist. 8 Adicionando

Leia mais

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO 1 ÍNDICE 1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO... 3 1.1 REQUISITOS BASICOS DE SOFTWARE... 3 1.2 REQUISITOS BASICOS DE HARDWARE... 3 2 EXECUTANDO O INSTALADOR... 3 2.1 PASSO 01... 3 2.2 PASSO

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

Conectar o Nokia 6600 a Internet utilizando a conexão do PC (ADSL) pelo Bluetooth sem Proxy

Conectar o Nokia 6600 a Internet utilizando a conexão do PC (ADSL) pelo Bluetooth sem Proxy Conectar o Nokia 6600 a Internet utilizando a conexão do PC (ADSL) pelo Bluetooth sem Proxy Tutorial escrito por: DiG N da Comunidade FOXGSM.net Nesse tutorial você saberá passo a passo a configuração

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

Microsoft Lync Manual de Instalação e Uso

Microsoft Lync Manual de Instalação e Uso Microsoft Lync Manual de Instalação e Uso Sumário Introdução_... 3 Detalhamento_... 5 Importação_... 8 Funcionalidades na Intranet_... 13 Geração de nova senha... 14 Lembrete de expiração da senha... 15

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Programação para Web Artefato 01. AT5 Conceitos da Internet

Programação para Web Artefato 01. AT5 Conceitos da Internet Programação para Web Artefato 01 AT5 Conceitos da Internet Histórico de revisões Data Versão Descrição Autor 24/10/2014 1.0 Criação da primeira versão HEngholmJr Instrutor Hélio Engholm Jr Livros publicados

Leia mais

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4.

Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. 1 Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. Interface do sistema... 4 1.4.1. Janela Principal... 4 1.5.

Leia mais

PROJETO E IMPLANTAÇÃO DE INTRANETS

PROJETO E IMPLANTAÇÃO DE INTRANETS PROJETO E IMPLANTAÇÃO DE INTRANETS Aulas : Terças e Quintas Horário: AB Noite [18:30 20:20hs] PROJETO E IMPLANTAÇÃO DE INTRANETS 1 Conteúdo O que Rede? Conceito; Como Surgiu? Objetivo; Evolução Tipos de

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

Manual de Operação Aplicativo ClickIt

Manual de Operação Aplicativo ClickIt Manual de Operação Aplicativo ClickIt Rev. 1.1 Agosto/2010 GSControl Automação Ltda. Rua Washington Luiz, 675 ITC Conjunto 1101 Centro Porto Alegre RS CEP 90010-460 Telefone: (51)3026-0945 / (51)3287-2167

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

Atualização, Backup e Recuperação de Software. Número de Peça: 405533-201

Atualização, Backup e Recuperação de Software. Número de Peça: 405533-201 Atualização, Backup e Recuperação de Software Número de Peça: 405533-201 Janeiro de 2006 Sumário 1 Atualizações de Software Recebimento Automático de Atualizações de Software HP...................................

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Manual de instalação e configuração da Ferramenta Android SDK

Manual de instalação e configuração da Ferramenta Android SDK Trabalho de Programação para Dispositivos Móveis Turma: 1011 Camila Botelho camilacunhabotelho@gmail.com Manual de instalação e configuração da Ferramenta Android SDK Introdução O Android é uma ferramenta

Leia mais

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes 3 MÁQUINAS VIRTUAIS Em nossa aula anterior, fizemos uma breve introdução com uso de máquinas virtuais para emularmos um computador novo

Leia mais

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI Manual de Utilização Família MI ÍNDICE 1.0 COMO LIGAR O MÓDULO... pág 03 e 04 2.0 OBJETIVO... pág 05 3.0 COMO CONFIGURAR O MÓDULO MI... pág 06, 07, 08 e 09 4.0 COMO TESTAR A REDE... pág 10 5.0 COMO CONFIGURAR

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Programa de Atualização de Pontos do Lince GPS

Programa de Atualização de Pontos do Lince GPS Esse programa atualiza os pontos do software Lince GSP em aparelhos portáteis, como navegadores e celulares. A Robotron mantém um serviço de fornecimento de pontos de controle de velocidade aos aparelhos

Leia mais

Índice. Para encerrar um atendimento (suporte)... 17. Conversa... 17. Adicionar Pessoa (na mesma conversa)... 20

Índice. Para encerrar um atendimento (suporte)... 17. Conversa... 17. Adicionar Pessoa (na mesma conversa)... 20 Guia de utilização Índice Introdução... 3 O que é o sistema BlueTalk... 3 Quem vai utilizar?... 3 A utilização do BlueTalk pelo estagiário do Programa Acessa Escola... 5 A arquitetura do sistema BlueTalk...

Leia mais

Fundamentos de Hardware

Fundamentos de Hardware Fundamentos de Hardware Curso Técnico em Informática SUMÁRIO PLACAS DE EXPANSÃO... 3 PLACAS DE VÍDEO... 3 Conectores de Vídeo... 4 PLACAS DE SOM... 6 Canais de Áudio... 7 Resolução das Placas de Som...

Leia mais

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Uma Introdução ao J2ME Computação Móvel (MAC5743/MAC330) DCC-IME-USP Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Visão Geral do Java 2 (1) A plataforma Java 2 engloba três elementos:

Leia mais

:: Telefonia pela Internet

:: Telefonia pela Internet :: Telefonia pela Internet http://www.projetoderedes.com.br/artigos/artigo_telefonia_pela_internet.php José Mauricio Santos Pinheiro em 13/03/2005 O uso da internet para comunicações de voz vem crescendo

Leia mais

Programa de Instalação do Lince GPS

Programa de Instalação do Lince GPS Esse programa instala o software Lince GSP em aparelhos portáteis que tenham GPS, como navegadores e celulares. O software Lince GPS é um programa destinado a alertar sobre a aproximação a pontos previamente

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Guia de instalação. Configuração necessária Instalação e ativação

Guia de instalação. Configuração necessária Instalação e ativação Guia de instalação Configuração necessária Instalação e ativação Configuração necessária As aplicações da linha de produtos 4D v14 requerem como mínimo a seguinte configuração: Windows Mac OS Processador

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Versão do documento: 1.1 1. Introdução...3 2. Documentação...3 2.1. DOCUMENTAÇÃO DE REFERÊNCIA... 3 2.2. DESCRIÇÃO FUNCIONAL... 4 2.2.1. INTERFACE...

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers GUIA DE CONSULTA RÁPIDA PARA Instalação do Nokia Connectivity Cable Drivers Conteúdo 1. Introdução...1 2. Requisitos obrigatórios...1 3. Instalação do Nokia Connectivity Cable Drivers...2 3.1 Antes da

Leia mais

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 1 Introdução ao Java Objetivos do Capítulo Compor uma visão histórica mínima para a compreensão da origem do Java. Compreender o que é o Java e para que finalidades ele é empregado. Delinear algumas

Leia mais

Atualização Mandatória de Versão do Amadeus Pro Web (2.0P431BR) 25 de junho de 2007 Gerência de Produtos & Operações Amadeus Brasil

Atualização Mandatória de Versão do Amadeus Pro Web (2.0P431BR) 25 de junho de 2007 Gerência de Produtos & Operações Amadeus Brasil Atualização Mandatória de Versão do Amadeus Pro Web (2.0P431BR) 25 de junho de 2007 Amadeus Brasil Índice 1) O objetivo deste documento... 3 2) O que acontecerá quando chegar o dia da atualização de versão

Leia mais

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 Protocolo de rede... 3 Protocolo TCP/IP... 3 Máscara de sub-rede... 3 Hostname... 3

Leia mais

Manual Replicação Manual VPN

Manual Replicação Manual VPN Manual Replicação Introdução O que é cloudcomputing ou computação na nuvem? Refere-se à utilização de um servidor com alta capacidade de armazenamento de dados e que com configurações que aguentam um alto

Leia mais

Plataforma Sentinela

Plataforma Sentinela Plataforma Sentinela A plataforma completa para segurança corporativa A plataforma Sentinela é a mais completa plataforma para monitoramento e interceptação em tempo real, gravação e bilhetagem de chamadas

Leia mais

E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes

E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes 1. É possível excluir um processo que já foi enviado? Só será possível excluir o processo se o mesmo ainda não tiver sido recebido.

Leia mais

Guia para o Google Cloud Print

Guia para o Google Cloud Print Guia para o Google Cloud Print Versão A BRA-POR Definições das observações Utilizamos o estilo de observação a seguir ao longo deste manual do usuário: As observações ensinam como agir em determinada situação

Leia mais

Manual do usuário. Mobile Auto Download

Manual do usuário. Mobile Auto Download Manual do usuário Mobile Auto Download Mobile Auto Download Parabéns, você acaba de adquirir um produto com a qualidade e segurança Intelbras. Este manual serve como referência para a sua instalação e

Leia mais

Guia para o Google Cloud Print

Guia para o Google Cloud Print Guia para o Google Cloud Print Versão 0 BRA-POR Definições das observações Utilizamos o ícone a seguir ao longo deste manual do usuário: Os ícones de ensinam como agir em determinada situação ou fornecem

Leia mais

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Sumário Objetivos do Blog... 2 Log-in... 3 Esqueci minha senha... 4 Utilizando o Blog... 5 Encontrando seu Blog... 5 Conhecendo o

Leia mais

Motorola Phone Tools. Início Rápido

Motorola Phone Tools. Início Rápido Motorola Phone Tools Início Rápido Conteúdo Requisitos mínimos... 2 Antes da instalação Motorola Phone Tools... 3 Instalar Motorola Phone Tools... 4 Instalação e configuração do dispositivo móvel... 5

Leia mais

Considerações a serem feitas antes da implantação.

Considerações a serem feitas antes da implantação. Multi-Loja Objetivo O objetivo deste documento é demonstrar o conceito de Multi-loja utilizando o Sismoura. É uma ferramenta que permite a comunicação entre as empresas, possibilitando assim que a matriz

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - WPAN: Bluetooth www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Bluetooth (IEEE 802.15.1) O Bluetooth é o nome comercial que faz referência ao Padrão IEEE 802.15.1

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Como melhorar o sinal da rede sem fio mudando o canal Wi-Fi do roteador

Como melhorar o sinal da rede sem fio mudando o canal Wi-Fi do roteador Como melhorar o sinal da rede sem fio mudando o canal Wi-Fi do roteador Em poucos minutos você pode configurar seu roteador para obter mais velocidade e estabilidade durante a transmissão massiva de dados

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers GUIA DE CONSULTA RÁPIDA PARA Instalação do Nokia Connectivity Cable Drivers Conteúdo 1. Introdução...1 2. Requisitos obrigatórios...1 3. Instalação do Nokia Connectivity Cable Drivers...2 3.1 Antes da

Leia mais