1. O documento descreve o desenvolvimento de um sistema de monitoramento de transporte público utilizando GPS, GPRS e dispositivos Android.
2. O sistema permite monitorar a localização de ônibus em tempo real através de um módulo instalado nos veículos e envio das coordenadas para um servidor.
3. Os usuários podem acessar a localização dos ônibus em seu trajeto por meio de um aplicativo Android, permitindo melhor planejamento de viagens.
1. O documento descreve o desenvolvimento de um sistema de monitoramento de transporte público utilizando GPS, GPRS e dispositivos Android.
2. O sistema permite monitorar a localização de ônibus em tempo real através de um módulo instalado nos veículos e envio das coordenadas para um servidor.
3. Os usuários podem acessar a localização dos ônibus em seu trajeto por meio de um aplicativo Android, permitindo melhor planejamento de viagens.
1. O documento descreve o desenvolvimento de um sistema de monitoramento de transporte público utilizando GPS, GPRS e dispositivos Android.
2. O sistema permite monitorar a localização de ônibus em tempo real através de um módulo instalado nos veículos e envio das coordenadas para um servidor.
3. Os usuários podem acessar a localização dos ônibus em seu trajeto por meio de um aplicativo Android, permitindo melhor planejamento de viagens.
1. O documento descreve o desenvolvimento de um sistema de monitoramento de transporte público utilizando GPS, GPRS e dispositivos Android.
2. O sistema permite monitorar a localização de ônibus em tempo real através de um módulo instalado nos veículos e envio das coordenadas para um servidor.
3. Os usuários podem acessar a localização dos ônibus em seu trajeto por meio de um aplicativo Android, permitindo melhor planejamento de viagens.
Baixe no formato DOCX, PDF, TXT ou leia online no Scribd
Fazer download em docx, pdf ou txt
Você está na página 1de 56
INSTITUTO SUPERIOR DE MONTES CLAROS
FACULDADE DE COMPUTAO DE MONTES CLAROS
Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas
HADSON MARCELO GOMES
MONITORAMENTO DE TRAFEGO POR GEOLOCALIZAO
Montes Claros MG 2014
HADSON MARCELO GOMES
MONITORAMENTO DE TRAFEGO POR GEOLOCALIZAO
Trabalho de Concluso de Curso apresentado como exigncia parcial para obteno do diploma de Tecnologia em Analise e Desenvolvimento de Sistemas da Faculdade de Computao de Montes Claros.
Orientadora: Janine Alves Prates, Mestre.
Montes Claros MG 2014
HADSON MARCELO GOMES
MONITORAMENTO DE TRAFEGO POR GEOLOCALIZAO
Trabalho de Concluso de Curso aprovado como requisito parcial para obteno do Diploma de Graduao em Tecnologia em Analise e Desenvolvimento de Sistemas da Faculdade de Computao de Montes Claros.
Dedico este trabalho aos meus pais, irmos e amada esposa.
AGRADECIMENTOS
A jornada do conhecimento humano evolui com o passar de eras. O saber est entrelaado capacidade nica que nos foi dada que a do autoconhecimento. Nesta longa estrada, muitas pedras e percalos aparecem para desviar a busca do saber, ao mesmo tempo existem pessoas que nos ajudam a remover essas barreiras e limpando o caminho nos ajudam no engrandecimento pessoal da sabedoria. Assim, honro aqui essas pessoas.
Aos meus pais, Zenilton Charles e Mara, que sempre sonharam me ver graduado e isso est muito perto de acontecer, uma pedra lapidada do conhecimento.
A minha esposa Dani, que sempre me apoiou de todas as formas possveis e em todos os momentos me ajuda a remover as pedras do desvio.
A minha orientadora professora Janine Prates, que acreditou no meu trabalho.
Qualquer tecnologia suficientemente avanada indistinta de magia. Arthur C. Clarke
RESUMO
Este trabalho consiste no desenvolvimento de um sistema de monitoramento de transporte pblico de uma cidade de mdio porte utilizando o sistema de posicionamento global (GPS), o servio de rdio de pacote geral (GPRS) e computadores mveis com sistema operacional Android. Por meio de um mdulo nibus instalado no veculo possvel obter as suas localizaes e atravs do envio das informaes para um servidor possvel monitorar os mesmos em seu trajeto. Os usurios de transporte pblico acessam estas informaes pelo mdulo usurio que consiste em um aplicativo instalado em dispositivos Android, obtendo como informao a localizao dos nibus durante os seus trajetos, assim conseguindo um melhor planejamento de suas viagens.
Palavras-chave: GPS. Android. Sistema de monitoramento. GPRS. Transporte pblico.
ABSTRACT
This work is the development of a monitoring system for public transport in a medium-sized city using the global positioning system (GPS), the radio service overall package (GPRS) and mobile computers with Android operating system. Through a bus module is installed in the vehicle is possible to get their locations by sending the information to a server you can monitor them on their path. Users of public transport access this information by the user module consisting of an application installed on Android devices, getting information as the location of the buses during their commutes, thereby achieving a better plan their trips.
Keywords: GPS. Android. Monitoring system. GPRS. Public transportation.
LISTA DE FIGURAS
Figura 1 - Rede GSM acrescida da rede GPRS. Figura 2 - Requisitos funcionais principais. Figura 3 - Requisitos No funcionais. Figura 4 - Caso de uso de rastreamento. Figura 5 - Diagrama de atividades de atualizao de posio. Figura 6 - Modelo de entidade e relacionamento. Figura 7 - Tela da ferramenta Eclipse ADT. Figura 8 - Tela da ferramenta PHPMyAdmin. Figura 9 - Trecho de cdigo PHP. Cadastro de Coordenadas. Figura 10 - Tela inicial mdulo usurio. Figura 11 - Trecho de cdigo que faz requisio ao servidor. Figura 12 - Tela de escolha do veculo a ser rastreado. Figura 13 - Cdigo que busca as coordenadas e desenha na tela. Figura 14 - Demonstrao de desenho do veculo no mapa. Figura 15 - Demonstrao de alerta de aproximao de veculo.
ABREVIATURAS E SIGLAS
ADT Android Developer Tools A-GPS Assisted GPS ANSI American National Standards Institute API Application Programming Interfaces BSS Base Station Subsystem CU Casos de Uso DML Data Manipulation Language GPS Global Positioning System . GSM Global System for Mobile Communication GGSN Gateway GPRS Support Node HTML Hypertext Markup Language ISO International Organization for Standardization JVM Java Virtual Machine MER Modelo de Entidade Relacionamento MIT Massachusetts Institute of Technology MS Mobile station NAVSAT Navy Navigation Satellite System NFC Near Field Communication NSS Network and Switching Subsystem OMS Operations and Maintenance System OHA Open Handset Alliance OpenGL ES OpenGL for Embedded Systems PPS Precise Positioning Service PHP Hypertext Preprocessor RF Rdio Frequncia REQF Requisitos Funcionais REQNF Requisitos No Funcionais SPS Standard Positioning Service SDK Software Development Kit SQL/DS SQL/Data System
SQL Structured Query Language SGBD Sistema de Gerenciamento de Banco de Dados SGSN Serving GPRS Support Node URL Uniform Resource Locator
2.6.2.2 Java Application Programming Interface ............................................ 29 2.7 BANCO DE DADOS ....................................................................................... 29 2.7.1 Sistema de Gerenciamento de Banco de Dados SGBD ................... 30 2.7.2 SGBD SQLite .......................................................................................... 30 2.7.3 SQLite no Android .................................................................................. 31 2.7.4 Caractersticas da biblioteca SQLite .................................................... 31 2.7.5 Exemplos de uso do SQLite .................................................................. 32 2.8 TRANSMISSO DE DADOS ........................................................................... 32 2.8.1 Redes GPRS ............................................................................................ 33 3 DESENVOLVIMENTO DO SISTEMA .................................................................... 35 3.1 LEVANTAMENTO DE INFORMAES ......................................................... 35 3.2 ESPECIFICAO ............................................................................................ 36 3.2.1 Requisitos Funcionais ............................................................................. 36 3.2.2 Requisitos No Funcionais ..................................................................... 37 3.2.3 Diagrama de Casos de Uso ..................................................................... 37 3.2.4 Diagrama de Atividades ........................................................................... 38 3.2.5 Modelo Entidade Relacionamento .......................................................... 39 3.3 IMPLEMENTAO .......................................................................................... 40 3.3.1 Tcnicas e ferramentas utilizadas ......................................................... 40 3.4 OPERACIONALIDADE DA IMPLEMENTAO .............................................. 43 4 CONSIDERAES FINAIS ................................................................................... 51 5 REFERNCIAS BIBLIOGRFICAS ...................................................................... 53
13
1 INTRODUO
Para Taurion (2013), uma cidade inteligente a que otimiza a capacidade da infraestrutura j existente com o uso inteligente de tecnologias. Em 1800, a maior cidade do mundo era Londres, na Inglaterra, com cerca de um milho de habitantes. Em 1960, o planeta tinha 111 cidades com mais de um milho de pessoas. Em 1985 j eram 280 e hoje mais de 300, das quais 13 esto no Brasil. de se esperar que, com o aumento significativo da populao, problemas no transito como congestionamentos e falta de infraestrutura apropriada aconteam. Partindo dessa premissa, percebe-se a importncia da utilizao de mtodos tecnolgicos para ajudar na soluo de tais problemas de forma plausvel e eficiente. E uma destas respostas seria um possvel desenvolvimento de um sistema que monitorasse em tempo real a posio atual dos nibus do transporte coletivo a fim de melhorar e desafogar o transito das cidades, pois com um controle mais acessvel aos usurios dependentes desse sistema de transporte poderia at mesmo encoraj-los e ainda atrair novos utilizadores deste meio de locomoo. E baseado nisso que se prope a execuo deste trabalho. Neste trabalho estabeleceu-se como objetivo, identificar a existncia de recursos tecnolgicos e bibliogrficos disponveis para o desenvolvimento e implementao de uma aplicao para plataformas mveis que viabilizar o fcil acesso dos usurios do sistema de transporte pblico em uma cidade de mdio porte. Para construir o referencial terico para a realizao desta pesquisa, optou-se a utilizar os autores que aqui principalmente cito SVERZUT(2005), MORIMOTO(2009), GOOGLE INC(2014), e ORACLE(2014), alm de outros. Quanto natureza, esta pesquisa se enquadra como aplicada, pois busca resultados que possam ser utilizados como soluo de problemas reais e pode ser classificada quanto aos objetivos como sendo descritiva pois, segundo GIL(2008), uma pesquisa descritiva assim chamada quando deve descrever as caractersticas de determinadas populaes ou fenmenos. Em relao s tcnicas utilizadas, Gil(2008) diz que quando uma pesquisa desenvolvida com base em material j
14
elaborado e constituda principalmente de livros e artigos cientficos, esta deve ser uma pesquisa bibliogrfica. Esse trabalho tambm, quanto tcnica, pode ser classificado como experimental pois desenvolvido um sistema que influencia de modo geral o resultado da pesquisa. A abordagem de anlise de dados qualitativa, sendo desenvolvida entre os perodos de agosto de 2013 e maio de 2014. Estruturalmente, no segundo captulo tem-se a apresentao da fundamentao terica pesquisada sobre a histria dos sistemas de Geolocalizao e seu funcionamento, os tipo de GPS em celulares, a API do Google Maps e suas aplicaes, os sistemas Android, a linguagem Java, sistemas de gerenciamento de banco de dados e, por fim, as redres GPRS. O 3 captulo apresenta o desenvolvimento do sistema, iniciando com o levantamento de informaes, tendo na sequncia a especificao e implementao. Em seguida, apresenta-se as consideraes finais do autor em relao ao trabalho apresentado.
15
2 GLOBAL POSITIONING SYSTEM GPS
O GPS um sistema de posicionamento de abrangncia global em tempo real, desenvolvido pelo Departamento de Defesa dos Estados Unidos, nas ltimas dcadas do sculo passado. Embora a obteno das coordenadas espaciais de um ponto possa ser considerada, atualmente, uma tarefa fcil, h muito tempo se procurava uma maneira de localizao terrestre que substitusse as fontes de orientao pouco precisas proporcionadas pela orientao do Sol, das estrelas e dos planetas, predominante durante sculos (MONICO, 2008). Em 1960 a Fora Area e a Marinha americana trabalhavam para o desenvolvimento de um sistema de navegao por satlites. A Marinha patrocinou dois programas: Transit: Conhecido tambm como Navy Navigation Satellite System - NAVSAT. Foi o primeiro sistema de navegao por satlite a ser usado operacionalmente. Foi criado para obter informaes precisas o posicionamento para submarinos lanadores de msseis balsticos, e foi usado pela marinha dos Estados Unidos com um sistema de navegao, bem como para vigilncia hidrogrfica e geodsica. Segundo ABC71 (2009), o sistema foi desenvolvido no Laboratrio de Fsica Aplicada da Johns Hopkins University para a marinha dos Estados Unidos. Foram feitos vrios testes usando satlites conhecidos, colocados em rbitas polares de baixa altitude, a 1100 km acima da superfcie da Terra. Em cada teste eram usados no mnimo cinco satlites necessrios para permitir uma cobertura global. O primeiro teste bem sucedido do sistema foi realizado em 1960, para ter um bom funcionamento foram necessrios de pelo menos mais cinco satlites usados como sobressalentes para cada satlite que estava na rbita. Os satlites foram definidos de modo a cobrir a Terra inteira, com isso podiam calcular qualquer posio com base no instante da passagem dos satlites. No entanto para ter uma nova posio, s poderia ser calculada na prxima passagem do satlite. O intervalo de tempo entre as passagens corresponderia ao perodo orbital (106 minutos) se o mesmo satlite estivesse visvel em ambas s passagens, caso contrrio teria um atraso tpico de uma hora ou duas. (ABC71, 2014, p.1)
16
Timation: Na Naval Research Laboratory, do Centro Naval de Tecnologia Espacial, foi desenvolvido o sistema de navegao Timation, iniciado em 1964, mas o satlite s foi laado em 1967. Na poca o sistema mostrou que era mais preciso que os de sua categoria. Segundo Pike (2011), em 1969 foi criado o Timation II mostrando novas tcnicas, como um relgio de alta preciso, podendo oferecer bases de posies mais precisas, usando um novo sistema tridimensional de cobertura em todo mundo. Os sistemas de navegao Transit e Timation operavam em modo 2D, pois usavam latitude e longitude. No perodo de 1960 a Fora Area estudou sistemas que operavam em 3D que usavam latitude, longitude e altitude. Aps inmeros estudos, foi escolhido o programa 612B. De acordo com Pike (2011), em 1973, com a fuso dos programas Timation e 612B, surgiu o programa Navigation Satellite with Time and Ranging - Global Positioning System - NAVSTAR GPS. Em dezembro de 1973 foi autorizado o incio da primeira fase do programa. Foram feitos estudos sobre desempenho e real viabilidade do sistema, que durou at o ano 1979. Em seguida, deu-se incio segunda fase com o desenvolvimento e teste dos equipamentos GPS, que durou at 1985. Na terceira fase foram produzidos os aparelhos GPS. Para o melhor funcionamento do sistema foi usada uma rede de 24 satlites, que proporcionava uma cobertura completa, com funcionamento simultneo, conhecida como Full Operational Capability. De acordo com ABC71 (2009), em 1980 o presidente Ronald Reagan autorizou o uso civil dos sistemas. Na poca todos os equipamentos que foram vendidos continham um erro artificial no sistema chamado Disponibilidade Seletiva, que foi implantado pelo Departamento de Defesa americano, com o objetivo de resguarda de segurana interna do pas. Em Maio de 2000 o Presidente Clinton fez um decreto para cancelar o erro implantado nos equipamentos, pois o contnuo desenvolvimento tecnolgico permitiu ao Departamento de Defesa obstruir a preciso do Sistema onde e quando os interesses americanos exigissem. Com o decreto, o erro mdio de 100 metros na localizao do receptor ficou dez vezes menor.
17
O GPS surgiu com objetivo de guerra e navegao de alta preciso, para ser usado no transporte militar e msseis. Os GPS foram usados como teste na guerra do Golfo que, facilitando a locomoo das tropas no deserto, os msseis passaram a atingir seus alvos com erros mnimos. (PIKE, 2014, p.1) 2.1 FUNCIONAMENTO DO GPS
O GPS conta com dois tipos de servio de posicionamento diferentes: o padro Standard Positioning Service - SPS e o preciso Precise Positioning Service - PPS. O SPS est disponvel a todos os usurios do globo e proporciona valores com preciso de 100 a 140 m ou de 10 a 20 m, enquanto o PPS, de uso restrito militar, apresenta preciso de 10 a 20 m. Nota-se, assim, que ambos os servios podem proporcionar valores com a mesma preciso. O servio SPS tem dois intervalos diferentes de preciso devido limitao seletiva imposta pelo Departamento de Defesa Americano (DEPARTAMENT OF DEFENCE, 2008): um processo de criptografia aplicado em um dos cdigos utilizados no GPS para realizar as medidas de distncias, capaz de tornar as medies do SPS mais imprecisas, caso necessrio. A restrio foi imposta inicialmente por motivo de segurana nacional. Porm, em maio de 2000, essa tcnica de deteriorao do sinal recebido pelo SPS foi descontinuada, melhorando consideravelmente o nvel de preciso alcanado por usurios civis. Aps essa deciso, o Conselho de Segurana americano passou a fazer reunies anuais para decidir pela reativao ou no da disponibilidade seletiva do sinal (THE WHITE HOUSE, 1996) O GPS dividido em trs segmentos: espacial, de controle e de usurios. O segmento espacial consiste de 24 satlites distribudos em seis planos orbitais igualmente espaados, que cruzam o centro da Terra. Cada plano conta com quatro satlites. Essa configurao permite que, em qualquer local da superfcie terrestre, a qualquer momento, pelo menos quatro satlites estejam "visveis" por um receptor. O segmento de controle responsvel pelo monitoramento, correo dos relgios e atualizao peridica das mensagens de navegao de cada satlite. composto por cinco estaes terrestres estrategicamente distribudas no globo. O segmento de usurios constitudo pelos receptores GPS. Dependendo da aplicao a qual se destina, o aparelho necessita um grau maior ou menor de qualidade do seu relgio interno (MONICO, 2008).
18
interessante salientar que muitas pessoas se referem ao GPS como "sistema GPS". Tal expresso empregada de forma equivocada, visto que o acrnimo j carrega em si a palavra sistema. 2.2 GPS EM APARELHOS CELULARES
Segundo Morimoto (2009), os componentes de um dispositivo GPS sofreram grande miniaturizao com o tempo, e em consequncia, grande queda de preo. importante considerar que muito do valor de um GPS so hardwares de interao como tela, botes, processadores de som, entre outros. Com isso, passou a ser uma medida natural adotar um receptor de GPS em um smartphone, pois o mesmo j tem muitas das caractersticas de hardware necessrias em um aparelho GPS, tanto que quase todos os aparelhos de smartphone no mercado hoje possuem receptores de GPS, permitindo assim uma grande reduo de preo do dispositivo, que agora teria que orar apenas o receptor, seu processador e o software responsvel pela navegao. Com a miniaturizao dos componentes, passou a fazer sentido incluir receptores de GPS em smartphones, aproveitando a tela, processador, memria e os demais componentes. Chipsets atuais, como o navilink nl5350 (usado no n95 e em outros modelos da Nokia) combinam o receptor GPS, o processador de sinais e uma pequena quantidade de memria usada por ele em um encapsulamento incrivelmente compacto, que adiciona muito pouco ao peso e volume do aparelho. (MORIMOTO, 2009, p.362). 2.2.1 A-GPS Assisted GPS
Morimoto (2009), os smartphones usam uma antena GPS menor e menos sensvel e com chipset GPS mais fraco, causando certa demora em achar a localizao ou perdendo o sinal frequentemente. Para evitar o problema e ajudar na localizao, os smartphones utilizam um sistema hbrido, o A-GPS. O A-GPS funciona atravs de uma combinao de sinais de satlites GPS e triangulao por torres de celular, alm de um servidor remoto que fornece o posicionamento dos satlites, que facilita a rpida localizao pelo receptor. Morimoto (2009, p. 273) diz:
19
"Naturalmente, todas as informaes so transmitidas usando a rede celular, mas o volume de dados transferido pequeno, apenas alguns poucos kbytes por consulta." 2.3 GOOGLE MAPS
De acordo Morimoto (2009), a opo mais simples e utilizada de softwares para celular atualmente o Google Maps. Ele possui verses no apenas para celulares, mas para computadores tambm, podendo ser usado em diversos sistemas diferentes, e at mesmo online. Possui ainda a opo de visualizao por imagens de satlite, o que d uma viso mais real do local de interesse. A concepo do Google Maps teve incio em 2004, quando o Google comprou a Keyhole, empresa de mapeamento global, e iniciou o desenvolvimento do Google Earth. O Google Earth foi lanado ao pblico em 2005, pouco menos de um ano depois da compra da Keyhole, programa esse que expandiu os horizontes do Google, e que surpreendeu muitas pessoas. Permitia a explorao, atravs de imagens de satlite, da maioria dos espaos do planeta. O Google Earth permitia que muitas empresas e pessoas pudessem acessar imagens areas de cidades ou locais com relativa qualidade, e sem custo. Muitos passaram a utilizar esse software por simples curiosidade, para ver suas moradias ou locais de trabalho. Motivos esses que permitiram ao software grande popularidade logo aps seu lanamento. Ainda segundo o autor, o Google Maps permite que tracemos uma rota, selecionando um ponto de origem e um de destino, ele exibir um percurso no mapa, com uma linha, exibindo todo o trajeto, disponibilizando informaes sobre quais ruas usar, distncias e localizaes. possvel selecionar qual o meio de transporte a ser utilizado, e, dependendo do meio escolhido ele selecionar o melhor percurso, como exemplo, se o meio selecionado for a p, ele ir te mandar pelo caminho mais curto, porm se for um automvel, ele ir considerar o sentido das ruas, e seu devido percurso. Mais recentemente, o Google lanou sua mais nova forma de visualizao urbana, o Google Street View, que permite visualizar a cidade de forma totalmente inovadora,
20
atravs das ruas. Eles utilizaram diversos carros equipados com cmeras 360, que permitem que a pessoa utilizando o software consiga ver os locais de interesse como se realmente estivessem no local. O Street View j est disponvel em diversas cidades no mundo, como Nova York, Los Angeles, Sidney, So Paulo, Montes Claros, Varzelndia, etc. Entretanto, o Google Maps no muito bom em mostrar o deslocamento em tempo real quando voc se move rapidamente. Em um carro em movimento, por exemplo, a seta simplesmente pula de um quarteiro para o outro, na maior parte do tempo, fazendo com que seja difcil se orientar por ele quando est dirigindo. Aplicativos que incluem suporte navegao assistida, como o Nokia Maps e o Garmin so bem melhores nesse quesito. (MORIMOTO, 2009, p. 78). Embora seja um programa com pouco tempo de funcionamento (disponvel desde o dia 8 fevereiro de 2005), o Maps impressiona pela quantidade de recursos oferecidos tanto para usurios comuns, que iro utilizar de maneira mais simplista o servio, at usurios avanados, que podero criar servios utilizando as Application Programming Interfaces - APIs disponibilizadas pelo Google Maps. 2.3.1 LBS no Android
Na documentao on-line do Google INC (2014), o Android prov um framework de localizao que pode ser usado na criao de aplicaes baseadas em localizao. O Android tambm possui uma biblioteca do Google Maps nativamente instalada que permite a criao de servios baseados em mapas. O Android prov, com isso, todos os recursos necessrios para a criao de sofisticados sistemas de localizao utilizando mapas. A seguir estaremos entrando em detalhes sobre o pacote Location da API Google Maps. 2.4 ANDROID
Segundo Google INC (2014), Android uma plataforma para dispositivos mveis, criada para diminuir custos e melhorar a experincia do usurio nesses dispositivos. O Android comeou como uma pequena empresa com o nome do prprio Android Inc, em Palo Alto, Califrnia, EUA, criada por quatro scios, chamados Andy Rubin,
21
Rich Miner, Nick Sears e Chris White. Somente em 2006 o Google tomou posse do projeto comprando a Android Inc e assumindo a direo do desenvolvimento do sistema. No ano seguinte, em 2007, foi criada a Open Handset Alliance - OHA, liderada pela Google, como um grupo de empresas unidas, com o objetivo de concluir o desenvolvimento do Android como um sistema mvel e gratuito para assim, viabilizar a sua distribuio em massa, com liberdade de desenvolvimento de aplicativos e liberdade de plataforma de hardware. A OHA iniciou suas operaes com 40 empresas. Atualmente, esse nmero est perto das 90 empresas. No mesmo ano, foi liberada a verso Beta do Software Development Kit - SDK do Android. De acordo com a empresa, aplicaes podem ser livremente desenvolvidas para a plataforma Android, pois a mesma possui um SDK que fornece ao programador todas as APIs necessrias para a interao inicial com a plataforma. O SDK do Android permite, tambm, que o programador utilize um gerenciador de banco de dados SQlite e suporta grficos 3D baseados nas especificaes 1.0 da OpenGL for Embedded Systems - OpenGL ES. Dentre muitas caractersticas, o Android possui nativamente um framework de aplicaes, uma mquina virtual Dalvik (Java) otimizada para dispositivos mveis, um navegador web baseado na engine de cdigo aberto Webkit, suporte a arquivos de mdia de udio e vdeo e um ambiente de desenvolvimento rico em ferramentas. A empresa ainda diz que o Android foi idealizado para ser um sistema com cdigo fonte opensource, facilitando a adequao a diversos dispositivos diferentes e personalizao do contedo. Devido a essa facilidade, comum encontrarmos aparelhos que possuem personalizaes da operadora de telefonia ou do fabricante como forma de concorrncia entre os mesmos. Pelo fato de ser baseado no Linux, ele tambm possui um repositrio de aplicativos, onde todos os aplicativos pblicos a serem instalados nos sistema podem ser visualizados e adquiridos. Dentre as tecnologias que compem o Android, pode-se destacar como principais o Java, a linguagem de programao usada no desenvolvimento de aplicaes nativas
22
para o Android, o SQLite, um sistema gerenciador de banco de dados leve e rpido, usado para armazenar dados das aplicaes durante a execuo e o GPS, que permite a integrao do servio com as aplicaes. A arquitetura do Android est dividido em camadas, permitindo ao programador ou empresa de desenvolvimento de dispositivos customizar apenas a parte que lhe ser necessria. As camadas da arquitetura do Android, da externa para a interna, so: Aplicaes Framework de aplicaes Bibliotecas Tempo de Execuo Android Kernel do Linux
2.4.1 Camada Aplicaes
A camada de Aplicaes contm todas as aplicaes j compiladas e instaladas, prontas para serem executadas. Essas aplicaes podem ser criadas usando as APIs do Android juntamente com a linguagem de programao Java. 2.4.2 Camada Framework de aplicaes
A camada do Framework de aplicaes contm todas as APIs necessrias para o desenvolvimento das aplicaes voltadas para o Android. As aplicaes nativas da plataforma so desenvolvidas utilizando essas mesmas APIs, permitindo ao programador alterar, se necessrio, alguma funcionalidade contida no ncleo de uma aplicao nativa, desde que o usurio permita o acesso de uma aplicao outra. 2.4.3 Camada Bibliotecas
23
A camada de Bibliotecas contm todas as bibliotecas necessrias para manuseio de aplicaes terceiras. Como exemplos de bibliotecas tem-se a biblioteca do sistema C, bibliotecas de reproduo e gravao de udio e vdeo, bibliotecas de uma engine de grficos 2D e 3D, bibliotecas para manuseio de bancos de dados SQLite e bibliotecas de renderizao de vetores e bitmaps. 2.4.4 Camada Tempo de Execuo Android
A camada de Tempo de Execuo Android contm as bibliotecas do ncleo da linguagem Java, necessrias para execuo das aplicaes, e a mquina virtual Dalvik, otimizada para dispositivos mveis onde cada aplicao executada como uma nova instncia na mquina virtual. Segundo GOOGLE INC (2014), a mquina virtual Dalvik, presente nesta camada, depende da camada Kernel do Linux para tarefas mais prximas ao hardware, como gerenciamento de threads e de memria. 2.4.5 Camada Kernel do Linux
A camada do Kernel do Linux contm o ncleo do Android, usando a verso 2.6 do Linux para tarefas como gerenciamento de processos, de rede e drivers. O Kernel tambm serve como camada de abstrao entre o hardware do aparelho e o resto da plataforma. 2.5 VERSES DO ANDROID
A empresa ainda diz em sua documentao que, de tempos em tempos, so disponibilizadas novas verses do Android, normalmente contendo novos recursos, melhoria de desempenho e correo de bugs e problemas. Curiosamente, a partir da verso 1.5 do sistema, cada verso tem um codinome representando um nome de um doce e em ordem alfabtica.
24
2.5.1 Android 1.0
Segundo Prado (2011), em 2008 foi lanada a primeira verso pblica do sistema Android, a verso 1.0. O primeiro dispositivo a venda a utilizar esse sistema foi um Smartphone da HTC, o HTC Dream G1. J nesta verso, o Android j era multitarefa e tinha total integrao com os servios da Google, navegador web com HTML - Hypertext Markup Language - e XHTML - XML HTML, multijanelas, mensageiro instantneo e suporte a Wi-Fi e Bluetooth. Juntamente com a verso 1.0 do sistema, foi lanado o repositrio de aplicaes oficial da Google, o Google Market, em que os usurios podem acessar uma lista com quase todos os aplicativos disponveis para o sistema. Nele possvel tanto obter aplicativos gratuitos, como aplicativos pagos.
2.5.2 Android 1.5 Cupcake
No dia 30 de abril de 2009 foi lanada a verso 1.5, codinome Cupcake, que era baseado na verso 2.6.27 do Kernel Linux. Tinha melhorias no gerenciamento da cmera, nos sistemas de aquisio de GPS, teclado na tela, e upload direto para servios de imagem e vdeo do Google (Youtube e Picasa). 2.5.3 Android 1.6 - Donut
De acordo com Prado (2011), baseado na verso 2.6.29 do Kernel Linux foi lanada a verso 1.6, codinome Donut, no dia 15 de setembro de 2009. Com ela, foram adicionadas as funes de busca por voz e caixa de busca rpida, melhorias no sistema de cmera integrada, gravador, galeria, modos de vdeo.
25
Foi adicionado um indicador de uso de bateria, suporte a CDMA, e funes de texto para multilinguagem.
2.5.4 Android 2.0 Eclair
Em 2009, no dia 26 de outubro, foi lanada a verso 2.0, codinome Eclair, do sistema, e, para Prado (2014), ainda usando a verso 2.6.29 do Kernel Linux. Nessa verso, foram adicionados a sincronia de mltiplas contas de e-mail e contatos, suporte a Microsoft Exchange, navegador com HTML5, Bluetooth 2.1, e melhorias no calendrio. 2.5.5 Android 2.2 Froyo
No dia 20 de maio de 2010, foi lanada a verso 2.2, codinome Froyo. Baseado na verso 2.6.32 do Kernel Linux, com suporte melhorado ao Exchange, suporte a hotspot, teclado multilinguagem, suporte ao Flash 10.1, e com dicas de widgets na tela principal. 2.5.6 Android 2.3 Gingerbread
A verso 2.3, codinome Gingerbread, foi lanada no dia 6 de dezembro de 2010. De acordo com Google INC (2014), a verso tem a funo de NFC - Near Field Communication, que permite a comunicao entre dois dispositivos prximos sem a necessidade de cabos. Conta tambm com novos ajustes de interface para simplificar e melhorar a velocidade, alm de um novo teclado com maior facilidade de digitao, copiar e colar one touch, e de realizar chamadas pela internet. 2.5.7 Android 3.0 - Honeycomb
Para Prado (2011), no dia 10 de maio de 2011 foi lanada a verso 3.0.
26
Sob o codinome Honeycomb, que foi desenvolvida primariamente para tablets e dispositivos com telas maiores, com melhorias no multitouch, muititarefa otimizada e compartilhamento de Bluetooth. 2.5.8 Android 4.0 - Ice Cream Sandwich
A empresa Google INC (2014) diz, em outubro de 2011 foi anunciada a verso 4.0 codinome Ice Cream Sandwich, essa verso foi reformulada, visando apresentar um sistema novo aos usurios, e no apenas um sistema atualizado como nas outras verses. Entre suas novidades esto novas fontes, visual renovado, refinamento na movimentao do touch, sistema de reconhecimento facial, melhorias de desempenho, navegao mais rpida e sistema de compartilhamento de dados por NFC. 2.5.9 Android 4.1 - Jelly Bean
Anunciada em 27 de junho de 2012, a verso 4.1 do Android, codinome Jelly Bean, trouxe, ainda segundo Google INC (2014), poucas melhoras visuais, focando-se em acessibilidade e desempenho. Entre outras, foram adicionadas funes de acessibilidade para deficientes visuais, como gestos para aes pr-configuradas, uma funo para escrever textos por voz (somente em ingls) e foram feitas melhorias no comportamento dos widgets na tela inicial e no desempenho do browser e da agenda. A rea de notificaes foi atualizada, podendo conter mais informaes sobre cada notificao individualmente. A empresa ainda diz que junto com esta verso do Android, a Google tambm anunciou o servio Google Now, que auxilia o usurio nas tarefas dirias como, por exemplo, lembrando-o de compromissos agendados, avisando sobre voos atrasados etc. 2.5.10 Android 4.4 KitKat
27
Ainda citando a empresa Google INC (2014), houve melhorias de desempenho para tornar o KitKat mais suave e responsivo nos smartphones de baixo custo, com 512 MB de RAM. Alm da otimizao no consumo de memria, o Google afirma que realizou melhorias no touchscreen: comandos de toque respondero de maneira mais rpida e precisa que no Jelly Bean. Alternar entre aplicativos tambm est mais rpido. Outras novidades incluem a unificao do aplicativo Hangouts com o SMS, suporte a novos gestos de toque, impresso de documentos em dispositivos conectados ao Google Cloud Print e melhor suporte a servios de armazenamento na nuvem de terceiros. 2.6 JAVA
Segundo a Oracle (2014), em 1991, um grupo de engenheiros da empresa Sun acreditava na tendncia da juno dos dispositivos mveis pessoais e dos computadores caseiros. Com essa perspectiva em mente, esse grupo, denominado Green Team, liderado por James Gosling, trabalhou arduamente para criar o que, futuramente, iria revolucionar nosso mundo: a linguagem de programao Java. Para demonstrao de sua linguagem de programao e de seu potencial, o Green Team trabalhou num controle remoto porttil que tinha como alvo a comunicao com as televises a cabo digitais, mas, naquela poca, esse conceito de integrao de dispositivos estava avanado demais para os equipamentos disponveis. Percebendo a ascenso da internet, em 1995, o grupo anunciou que navegador de internet Netscape Navigator passaria a incorporar a tecnologia Java.
2.6.1 A linguagem de programao Java
Sendo aclamada como uma linguagem de programao verstil, o Java a principal linguagem de programao usada nos aplicativos nativos do Android.
28
Para a Oracle (2014), na linguagem de programao Java, todos os arquivos de cdigo-fonte possuem a extenso .java e tm seu contedo inalterado, podendo ser lidos e modificados pelo programador. Depois que o arquivo de cdigo-fonte salvo, necessrio compil-lo com o compilador javac (fornecido junto com as ferramentas para programao Java), em um arquivo .class. Esse arquivo compilado tem seu contedo convertido para bytecode, que no um cdigo que pode ser lido ou modificado pelo programador e sim a linguagem da Java Virtual Machine - JVM. Segundo a Oracle (2014), uma instncia da JVM na mquina do usurio l o bytecode do arquivo .class e executa a aplicao. J que a JVM est disponvel em vrios sistemas operacionais, o mesmo arquivo bytecode .class pode ser executado em outra mquina, sem necessidade de edio e recompilao. 2.6.2 A plataforma Java
A plataforma Java se diferencia, principalmente, das outras por ser uma plataforma somente de software, que pode ser executada sobre diferentes tipos de hardware. Como um ambiente independente de plataforma, a Java pode ser um pouco mais lenta do que cdigo nativo. Porm, avanos na tecnologia do compilador e da JVM tm trazido o desempenho para perto que o cdigo nativo capaz, sem comprometer a portabilidade (ORACLE, 2014). A plataforma possui dois componentes: Java Virtual Machine Java API
2.6.2.1 Java Virtual Machine
Segundo Oracle (2014), a JVM a pea fundamental da plataforma Java. o que faz com que ela seja independente de hardware e de sistema operacional. Ela um
29
computador abstrato, virtual, que, como toda mquina fsica, real, possui conjuntos de instrues e manipula vrias reas da memria durante a execuo. A JVM no conhece linguagem alguma, a no ser a linguagem bytecode dos arquivos .class e, apesar de ser bem restrita quanto a formas sintticas e estruturais, se uma linguagem pode gerar uma aplicao no formato especificado pela JVM, ento essa aplicao pode se utilizar das funes da mesma.
2.6.2.2 Java Application Programming Interface
A Oracle (2014), a Java API uma grande coleo de componentes de software prontas que provm vrias capacidades teis. Ela est agrupada em bibliotecas de classes e interfaces relacionadas, bibliotecas essas, tambm conhecidas como pacotes. 2.7 BANCO DE DADOS
Segundo Eduardo (2008), os fundamentos de bancos de dados relacionais surgiram na empresa IBM, nas dcadas de 1960 e 1970, atravs de pesquisas de funes de automao de escritrio. Foi durante um perodo da histria na qual empresas descobriram que estava muito custoso empregar um nmero grande de pessoas para fazer trabalhos como armazenar e indexar (organizar) arquivos. Por este motivo, valia a pena os esforos e investimentos em pesquisar um meio mais barato e ter uma soluo mecnica eficiente. O autor ainda salienta que em 1970 um pesquisador da IBM - Ted Codd - publicou o primeiro artigo sobre bancos de dados relacionais. Este artigo tratava sobre o uso de clculo e lgebra relacional para permitir que usurios no tcnicos armazenassem e recuperassem grande quantidade de informaes. Codd visionava um sistema onde o usurio seria capaz de acessar as informaes atravs de comandos em ingls, onde as informaes estariam armazenadas em tabelas.
30
Devido natureza tcnica deste artigo e a relativa complicao matemtica, o significado e proposio do artigo no foram prontamente realizados. Entretanto, ele levou a IBM a montar um grupo de pesquisa conhecido como Sistema R (System R). Continuando, o autor ainda diz que o projeto do Sistema R era criar um sistema de banco de dados relacional, o qual eventualmente se tornaria um produto. Os primeiros prottipos foram utilizados por muitas organizaes, tais como Massachusetts Institute of Technology - MIT, uma escola renomada de negcios norte-americana. Novas verses foram testadas com empresas de aviao para rastreamento do manufaturamento de estoque. Eventualmente o Sistema R evoluiu para SQL/Data System - SQL/DS, o qual posteriormente tornou-se o DB2. A linguagem criada pelo grupo do Sistema R foi a Structured Query Language - SQL. Esta linguagem tornou-se um padro na indstria para bancos de dados relacionais e hoje um padro International Organization for Standardization - ISO. 2.7.1 Sistema de Gerenciamento de Banco de Dados SGBD
Segundo Eduardo (2008), um SGBD consiste em uma coleo de dados inter- relacionados e em um conjunto de programas para acess-los. Um conjunto de dados, normalmente referenciado como banco de dados, contm informaes sobre uma empresa particular, por exemplo. O principal objetivo de um SGBD prover um ambiente que seja adequado e eficiente para recuperar e armazenar informaes de banco de dados. O autor ainda diz em seu livro que os sistemas de banco de dados so projetados para gerenciar grandes grupos de informaes. O gerenciamento de dados envolve a definio de estruturas para armazenamento de informao e o fornecimento de mecanismos para manipul-las. Alm disso, o sistema precisa fornecer segurana das informaes armazenadas, caso ocorra algum problema ou contra tentativas de acesso no autorizado. Se os dados devem ser divididos entre diversos usurios, o sistema precisa evitar possveis resultados anmalos.
31
O autor afirma a importncia das informaes na maioria das organizaes e o consequente valor dos bancos de dados tm orientado o desenvolvimento de um grande corpo de conceitos e tcnicas para o gerenciamento eficiente dos dados. 2.7.2 SGBD SQLite
necessrio um sistema de banco de dados para guardar as informaes de maneira estruturada. O Android usa o sistema de banco de dados SQLite, que tambm usado por muitas aplicaes populares, como o Mozilla Firefox e o iOS para o armazenamento de dados. Sem ele, os dados ficam disponveis apenas em tempo de execuo, ou seja, aps a execuo do programa, esses dados so perdidos. Segundo Gonalves (2014), o SQLite pode ser definido como uma ferramenta - mais precisamente, uma biblioteca desenvolvida em C padro (ANSI - American National Standards Institute) - que pode ser integrada a programas escritos em diferentes linguagens com o intuito de possibilitar a manipulao de dados atravs de instrues SQL. O SQLite um banco de dados open source. Ele suporta caractersticas de banco de dados relacional, por exemplo, sintaxe SQL, transaes e declaraes preparadas. Alm disso, requer apenas memria durante o seu tempo de execuo (aproximadamente 250KB). O autor tambm diz que, na prtica, o SQLite funciona como um mini-SGBD, capaz de criar um arquivo em disco, ler e escrever diretamente sobre este arquivo. O arquivo criado possui a extenso *.db e capaz de manter diversas tabelas. Uma tabela criada com o uso do comando CREATE TABLE da linguagem SQL. Os dados das tabelas so manipulados atravs de comandos DML - Data Manipulation Language - (INSERT, UPDATE e DELETE) e so consultados com o uso do comando SELECT. No site do SQLite possvel encontrar roteiros para a utilizao da ferramenta em programas desenvolvidos em Java, PERL, Delphi e outras linguagens (incluindo o PHP na verso 4). 2.7.3 SQLite no Android
32
De acordo com Vorgel (2010), o SQLite est disponvel em todos os dispositivos com Android. Alm das vrias inovaes implementadas, o Android traz tambm suporte nativo para o SQLite. Usar o banco de dados SQLite no Android no requer nenhuma instalao de banco de dados ou de administrao. necessrio apenas definir as declaraes SQL para criar e atualizar o banco de dados. Depois disso ele automaticamente gerenciado por voc pela plataforma Android. 2.7.4 Caractersticas da biblioteca SQLite
Gonalves (2014) diz que a biblioteca SQLite possui vrias caractersticas: O Software gratuito, multiplataforma e desenvolvido em C padro (ANSI). Todo o banco de dados guardado localmente (junto com a aplicao) em um nico arquivo, que possui a extenso *.db . A base de dados pode ter tamanho superior a 2 terabytes. Ele ainda informa que o SQLite no necessita de instalao, configurao ou de administrao. Suporta tambm a maior parte do SQL 92, o uso de transaes (COMMIT / ROLLBACK). Seu uso muito fcil se voc estiver programando em PHP 5 ou C / C++, porm no oferece integridade referencial (chaves estrangeiras). Suas principais aplicaes so: programas locais, sites web, substituto de banco de dados em aulas ou demonstraes, substitui arquivo texto ou arquivos proprietrios. No possui dependncias externas de outras bibliotecas. 2.7.5 Exemplos de uso do SQLite
O autor Gonalves (2014) explica que o uso do SQLite recomendado em sites com menos de cem mil requisies por dia, dispositivos e sistemas embarcados, aplicaes desktop, ferramentas estatsticas e de anlise, aprendizado de banco de dados e tambm em implementao de novas extenses de SQL. Seu uso no recomendado em aplicaes com muitos acessos, grande quantidade de dados (talvez maior que algumas dzias de gigabytes), sistemas com grande concorrncia e em aplicaes cliente/servidor.
33
Algumas empresas e aplicaes famosas que usam o SQLite so: Adobe, Apple iPhone, iPod Touch e iPad), Dropbox, Firefox, Google (Chrome e Android), Microsoft, Skype.
2.8 TRANSMISSO DE DADOS
Segundo Pirotti e Zuccolotto (2009), o padro Global System for Mobile Communication - GSM, que disponibiliza o servio GPRS como alternativa para transmisso de dados via celular, o mais difundido no mundo. Esta tecnologia utiliza as redes de celulares para o envio de dados. Com o constante aumento da rea de cobertura das redes de telefonia mvel, este tipo de transmisso tende a ser cada vez mais utilizada. O padro de telefonia celular GSM era chamado de Groupe Spciale Mbile e teve seu incio na Europa, dcada de 80. O objetivo era ter um novo padro que substitusse padres usados na poca. Lanado em 1991, seu nome mudou para Global System for Mobile Communication. Atualmente se utiliza a nomenclatura de 2.5G, 3G e 4G, que correspondem s recentes implantaes do padro GSM. A rede de telefonia celular composta de diversos dispositivos interligados atravs de canais de comunicao. Cada dispositivo responsvel por determinadas funes como enviar um sinal de Rdio Frequncia - RF at um telefone celular ou buscar em uma base de dados informaes sobre um usurio. A arquitetura da rede GSM se subdivide em trs subsistemas: Base Station Subsystem - BSS, que visto como o sistema da estao rdio base; Network and Switching Subsystem - NSS, responsvel pelo gerenciamento e comutao da rede; Operations and Maintenance System - OMS que o subsistema de suporte e operao. A comunicao com a rede GSM feita atravs de uma estao mvel ou Mobile station - MS, podendo ser atualmente um celular ou equipamento que suporte a utilizao da rede. 2.8.1 Redes GPRS
34
Com a popularizao da telefonia celular, novas necessidades comearam a surgir como o trfego de dados atravs da rede da telefonia celular. A rede ou servio GPRS foi implementada para suportar o trfego de dados utilizando recursos da rede GSM. Com um acrscimo de equipamentos na rede GSM, o GPRS, alm de permitir a troca de dados e acesso internet, permitiu que as operadoras de telefonia mvel utilizassem esta rede para testar e implementar novos servios, que seriam aproveitados na implementao da rede 3G (SVERZUT, 2005). As principais modificaes acrescidas na rede GSM foram a unidade de controle de pacote, que prov as interfaces lgica e fsica para o trfego de dados na rede GPRS, o servidor do n de suporte GPRS ou Serving GPRS Support Node - SGSN, que prev o acesso dos terminais GPRS rede GPRS e o Gateway GPRS Support Node - GGSN que tm como principais funes a manuteno das informaes de roteamento, mapeamento de endereos de rede e assinantes e mapeamento de classes de qualidade de servios. A Figura 1 demonstra a rede GSM acrescida da rede GPRS.
Figura 1 Rede GSM acrescida da rede GPRS Fonte: Pirotti e Zuccolotto (2009, p. 84).
35
Os terminais GPRS so equipamentos capazes de utilizar os servios da rede GPRS. Eles possuem o hardware para a comunicao de rdio frequncia, alm de suporte rede GSM.
Uma das caractersticas da rede GPRS que a cobrana deste servio feita por pacotes de dados transmitidos e no por tempo de conexo e seu custo varia de acordo com a operadora de telefonia utilizada e o plano escolhido.
36
3 DESENVOLVIMENTO DO SISTEMA
Neste capitulo sero informadas caractersticas tcnicas do sistema proposto, suas descries, apresentao dos requisitos funcionais e no funcionais, diagramas de classe e casos de uso, bem como seu modelo de entidade relacionamento. No decorrer do desenvolvimento deste trabalho, ser usada a metodologia de desenvolvimento Praxis para melhor compreenso das etapas. A sigla Praxis significa processo para aplicativos extensveis interativos, refletindo uma nfase no desenvolvimento de aplicativos grficos interativos, baseados na tecnologia orientada a objetos (FILHO, 2005). O Praxis vem propor um ciclo de vida composto por fases que produzem um conjunto precisamente de artefatos, como modelos, cdigos, testes, planos e relatrios. 3.1 LEVANTAMENTO DE INFORMAES
Este trabalho contempla aspectos que visam melhorar o planejamento e gerenciamento do transporte pblico atravs de uma ferramenta mvel de rastreamento e monitorizao de nibus que utilize as tecnologias GPS e GPRS. O sistema, inicialmente, tem funcionalidades de efetuar a localizao de nibus durante seu trajeto. Ele utiliza a tecnologia GPS para localizao de cada veculo e a tecnologia GPRS para o envio de dados. O GPS instalado atravs de um aparelho que suporta as tecnologias GPS, GPRS. Este aparelho (dispositivo com sistema Android como S.O.) permite o envio da localizao, dando como resposta a sua latitude, longitude e cdigo do veculo. O sistema de envio feito atravs do uso da tecnologia GPRS que utiliza um SIM Card para se conectar internet. Tais funcionalidades so programadas em Java para plataforma Android. Conforme cada aparelho ligado ao nibus envia a sua localizao de minuto a minuto ao servidor, o sistema recebe esses dados e atualiza seu banco sempre que novas informaes chegam. O sistema montar um mapa indicando a localizao de cada veculo em seu trajeto, mostrando inclusive uma mdia de tempo para sua chegada ao ponto que o usurio se encontra. Tambm possvel ao administrador do sistema
37
consultar informaes sobre o cadastro de nibus como por exemplo tempo mdio de atraso de casa veculo. Com este sistema se espera uma melhora no planejamento e conforto do usurio e um aumento na utilizao do transporte pblico. 3.2 ESPECIFICAO
A seguir sero representados os Requisitos Funcionais - REQF, os No Funcionais - REQNF, casos de uso CU, diagrama de casos de uso, fluxo de atividades, Modelo de Entidade Relacionamento- MER e o diagrama de classes do mdulo de recebimento de dados Android (celular ou tablet do usurio). 3.2.1 Requisitos Funcionais
Requisitos Funcionais Principais Caso de Uso REQF01: A aplicao permite ao usurio, visualizar todos os veculos cadastrados no servidor. CU01 REQF02: A aplicao permite ao usurio verificar qual ponto de nibus mais prximo ao seu local atual para determinado itinerrio. CU02 REQF03: A aplicao informa ao usurio quando o veculo se encontra nas proximidades do ponto escolhido para embarque. CU03 REQF04: A aplicao permite que o usurio escolha qual veculo quer rastrear. CU04 REQF05: A aplicao requer permisso do usurio para acessar dados do GPS do aparelho. CU05
38
REQF06: A aplicao permite receber a localizao do nibus atravs de sistema GPRS. CU06 REQF07: A aplicao permite rastreamento, mesmo se usurio no possuir GPS prprio, porm CU2, CU3 ficam desativados. CU07 REQF08: A aplicao utiliza API Google Maps para mostrar dados no mapa CU08 Figura 2 Requisitos funcionais principais. Fonte: PRPRIA. 2014
3.2.2 Requisitos No Funcionais
Requisitos No Funcionais (REQNF) REQNF01: A aplicao deve utilizar a tecnologia GPS. REQNF02: A aplicao deve utilizar tecnologia GPRS / GSM REQNF03: A aplicao deve utilizar a linguagem Android Java Figura 3 Requisitos No funcionais. Fonte: PRPRIA. 2014
3.2.3 Diagrama de Casos de Uso
Na Figura 4, apresenta-se o diagrama de caso de uso de Rastreamento onde o ator usurio possui o mdulo Android de recepo de dados diretamente do servidor que, por sua vez, alimentado pelos aparelhos instalados em cada veculo. O usurio, ao ter acesso internet, verifica uma lista de nibus disponveis para o rastreamento e, ao selecionar algum, requerido o acesso ao GPS interno do seu aparelho celular. Caso o usurio d permisso, outras funes so mostradas. Caso contrrio, apenas poder ver a posio do veculo e no ter acesso funes de distncia, tempo mdio de espera ou ponto de nibus mais prximo sua posio em relao do veculo.
39
Figura 4 Caso de uso de rastreamento Fonte: PRPRIA. 2014
3.2.4 Diagrama de Atividades
A figura 5 contm o diagrama de atividades que representa o processo de atualizao da localizao do veculo selecionado. O processo se inicia por obter e enviar a localizao do nibus pelo aparelho GPS, atravs do GPRS at o servidor. O mdulo usurio ento verifica junto ao servidor as novas coordenadas e atualiza a tela do dispositivo com os novos dados. Isso feito de minuto a minuto. Se o aparelho do usurio possui GPS, funes que envolvem sua atual posio so desbloqueadas.
40
Figura 5 Diagrama de atividades de atualizao de posio Fonte: PRPRIA. 2014
3.2.5 Modelo Entidade Relacionamento
A Figura 6 apresenta o modelo entidade-relacionamento no qual esto as tabelas que so persistentes no banco de dados utilizado pela aplicao mdulo cliente para receber os dados e pelo mdulo nibus para gravar os dados.
41
Figura 6 Modelo de entidade e relacionamento Fonte: PRPRIA. 2014 A seguir apresentada uma breve descrio das entidades para o desenvolvimento da aplicao: a) nibus: entidade responsvel por armazenar o cdigo do veculo, bem como a rota que ele faz diariamente, incluindo as latitudes e longitudes que so atualizadas de minuto a minuto pelo mdulo nibus atravs de das tecnologias GPRS/GSM e GPS. Um nibus possui apenas uma rota. b) Rotas: essa entidade armazena um cdigo que serve de parmetro para a entidade nibus na coluna rotas. Ela armazena ainda um ndice para os pontos de nibus distribudos em seu percurso. A entidade pode possuir vrios ou, no mnimo, um veculo que a perfaz e ainda possuir vrios ou, no mnimo, um ponto de nibus em seu trajeto. c) Pontos: entidade responsvel pelo armazenamento das coordenadas geogrficas dos pontos de nibus das rotas. Ela pode ter muitas ou, no mnimo, uma rota.
3.3 IMPLEMENTAO
A seguir sero mostradas as tcnicas e ferramentas utilizadas e a operacionalidade da implementao. 3.3.1 Tcnicas e ferramentas utilizadas
Para o desenvolvimento do sistema foi utilizada a ferramenta Eclipse adaptada com Android Developer Tools -ADT em sua verso: v22.3.0-887826. O Eclipse possibilitou codificar os mdulos nibus e usurio dando suporte a erros e sugestes de soluo na linguagem de programao. A figura 7 demonstra essa ferramenta.
42
Figura 7 Tela da ferramenta Eclipse ADT Fonte: PRPRIA. 2014 Como gerenciador de banco de dados foi utilizado o PHPMyAdmin, que permite administrar dados do banco MySQL. A figura 8 demostra essa ferramenta.
Figura 8 Tela da ferramenta PHPMyAdmin Fonte: PRPRIA. 2014 Para implementar o WebServer, que contm o banco de dados MySql, foi feito um plano de hospedagem na empresa UolHost com servidor Linux, onde foram desenvolvidas pginas Hypertext Preprocessor - PHP para receber e transmitir informaes do banco aos mdulos nibus e usurio. Estes mdulos apenas
43
conseguem se comunicar com o banco atravs de retornos das pginas php, pois Android at o momento da elaborao deste trabalho no suporta conexo com outros bancos nativamente que no seja o SQLite. Devido a essa limitao optou-se por esse tipo de transao de dados entre os mdulos nibus, usurio e o servidor (GOOGLE, 2014). Atravs do acesso e passagem de parmetros por uma Uniform Resource Locator - URL nesse servidor, o mdulo nibus informa seu cdigo, latitude e longitudes correntes. O servidor retorna ao mdulo uma resposta string positiva (caso a insero ao banco tenha sido realizada com sucesso) ou negativa (caso contrrio). Na figura 9 mostrado um trecho do cdigo PHP do servidor que responsvel pelo cadastramento das coordenadas.
Figura 9 Trecho de cdigo PHP. Cadastro de Coordenadas Fonte: PRPRIA. 2014 O aparelho utilizado para enviar os dados referentes ao veculo foi um celular da marca Samsung modelo Galaxy Ace modelo S5830 com sistema Android Froyo verso 2.3.6 que possui sistema GPS integrado, alm de tecnologia GPRS que requisito para a implementao do sistema. Neste aparelho foi instalado o mdulo nibus que, como j mencionado, responsvel pelo envio de coordenadas geogrficas para um webser atravs da passagem de paramentos ao acessar determinada url presente no servidor.
44
O mdulo usurio foi instalado em um tablet da marca Motorola modelo Xoom II Media Edition MZ608 com sistema Android verso 4.0.4 que tambm possui servio embutido de GPS, GPRS e Wifi. As APIs do Google Maps, elaboradas para esta plataforma, tambm foram utilizadas para desenhar na tela o local, em tempo real, onde o veculo se encontra, no mapa. 3.4 OPERACIONALIDADE DA IMPLEMENTAO
Na tela inicial exibida pela aplicao mdulo usurio so exibidos 4 botes, dos quais nos atentaremos a falar sobre as principais funcionalidades. Logo destaca-se o boto Buscar nibus. A figura 10 demostra essa tela.
45
Figura 10 Tela inicial mdulo usurio. Fonte: PRPRIA. 2014 Ao selecionar o boto Buscar nibus a aplicao verifica se o usurio possui acesso internet e, caso retorne verdade, ser redirecionado para uma segunda tela onde, atravs do acesso a uma url retornada pelo servidor a lista de veculos cadastrados. Na figura 11 podemos ver um trecho do cdigo Java, responsvel pela requisio, junto ao servidor, de todos os nibus cadastrados.
46
Figura 11 Trecho de cdigo que faz requisio ao servidor Fonte: PRPRIA. 2014 Como se pode observar, passado um paramento string contendo a url, que retorna uma lista com os cdigos dos nibus cadastrados para uma classe chamada HttpGetAsync. Esta classe estende outra classe denominada AsyncTask que contm mtodos e rotinas que efetuam todo o processo em segundo plano, prevenindo o travamento de tela do telefone, o que causa desconforto ao usurio tendo em vista que, quando se trata de requisies HTTP, muitos problemas podem ocorrer como demora na resposta do servidor, servio indisponvel, etc. Ao receber a resposta do servidor ela deve ser tratada pois foi includa nela algumas estruturas para diviso dos dados no momento da consulta ao banco. Por exemplo, suponhamos que o sistema tenha 3 nibus cadastrados. Em retorno a essa consulta por url, o servidor envia o seguinte formato de resposta: 0001#0002#0003#^. Isso foi necessrio diante da incapacidade do Android promover consultas a bancos remotos
47
como foi dito antes. Assim, tivemos que tratar a resposta de forma a poder trabalhar com elas separadamente dentro de uma estrutura de lista como o cdigo mostrou em um lao de repetio. Com a lista pronta podemos preencher uma tabela visvel ao usurio denominada ListView e adicionamos um evento OnToutch nesta lista que dispara um mtodo onde sero requisitadas as coordenadas geogrficas do veculo selecionado e, enfim, mostrar na tela, juntamente com API do Google Maps, um cone caracterizando a real posio daquele nibus no intervalo de tempo de 1 minuto. A figura 12 demonstra a tela de escolha do veculo.
Figura 12 Tela de escolha do veculo a ser rastreado Fonte: PRPRIA. 2014 Ao escolher o veculo desejado por toque na lista ou por busca no campo indicado acima da lista, um mtodo disparado, o qual chama uma nova activity contendo a API Google Maps e a chamada de uma outra url que busca no servidor as respectivas coordenadas do nibus. Manipulando os objetos ofertados por essa API possvel desenhar um cone na exata posio geogrfica que ser retornada por
48
essa nova consulta ao servidor. A seguir, na figura 13, um trecho do cdigo demostra como feito o desenho deste cone a partir das coordenadas retornadas.
Figura 13 Cdigo que busca as coordenadas e desenha na tela. Fonte: PRPRIA. 2014 Em posse dos pontos cardeais retornados a figura 13 demonstrou como marcar um ponto no mapa ao mesmo tempo em que aplica um zoom e um movimento da cmera para sempre acompanhar o veculo a medida que se move pela sua rota. Foi usado uma thread para executar essas funes que, de 5 em 5 segundos, atualiza as informaes do veculo caso essas estiverem sendo atualizadas naquele momento. Em seguida a figura 14 demonstrada tela que mostra o nibus desenhado no mapa.
49
Figura 14 Demonstrao de desenho do veculo no mapa Fonte: PRPRIA. 2014 Caso o mdulo usurio possua sensor GPS integrado ao seu aparelho celular Android, alm de visualizar o nibus no mapa, tambm demonstrada a sua posio. Na figura 14 isso demostrado com o pequeno cone prximo ao canto inferior esquerdo (crculo em azul). Com base nessa informao, implementou-se outra funo que detecta quando o veculo desejado estra em um raio prximo ao raio em que se encontra o usurio, alertando-o sobre a aproximao do nibus selecionado. A figura 15 exemplifica essa situao na qual simulamos um veculo apenas para demostrar as possibilidades de implementao que essa API nos proporciona. O procedimento funcional e aqui iremos simular uma distncia de 100 metros entre o usurio e o veculo.
50
Figura 15 Demonstrao de alerta de aproximao de veculo. Fonte: PRPRIA. 2014 Assim que o raio de 100 metros do ponto de origem do cone nibusSimulado entrou em contato com o cone que representa a posio atual do usurio, um alerta foi disparado, informando que o veculo simulado est prximo. O raio aqui foi definido em 100 metros mas o usurio pode definir sob medida, dependendo de suas necessidades, como por exemplo 1 quilmetro ou 100 quilmetros. Essa tcnica foi desenvolvida de modo que funcione mesmo que o aparelho esteja em
51
modo de espera, livrando o usurio de verificar constantemente seu celular para conhecer a posio do veculo esperado. Para avis-lo, foram implementados avisos sonoros e vibratrios, alm da total execuo, em segundo plano, por meio de threads e services.
52
4 CONSIDERAES FINAIS
O aumento significativo da populao fomenta problemas conhecidos atualmente, tais como congestionamentos de veculo, falta de infraestrutura apropriada ao trfego constante, alm dos atrasos nos servios de transporte pblico. Uma cidade inteligente deve utilizar, de forma eficiente, tecnologias para tentar diminuir ou sanar esses problemas. Por esse motivo, neste trabalho foi realizado um estudo de viabilidade tecnolgica e bibliogrfica para a elaborao de um sistema para plataformas mveis que seja capaz de monitorar, em tempo real, a posio geogrfica dos nibus do transporte coletivo. Com isso, tenta incentivar, de forma indireta, o uso de nibus para a locomoo em cidades de mdio porte pois, para tanto, deve-se melhorar a experincia dos usurios neste sistema de locomoo. Para cumprir este objetivo, so utilizados sistemas GPS, GPRS e tablets ou smarthphones, em que, atravs do GPS, um banco de dados povoado constantemente com as posies geogrficas de cada veculo em transito. Esse povoamento feito utilizando-se a tecnologia GPRS, que faz a comunicao entre os sistemas instalados nos nibus e o servidor de banco que, por sua vez, disponibiliza os dados recebidos para os dispositivos mveis dos usurios que, atravs da API do Google Maps, visualizam em tempo real a posio dos veculos e o tempo mdio para sua chegada at determinado ponto. Os estudos mostraram que realmente possvel o desenvolvimento de sistema de monitorao e, ainda, a um baixo custo sendo que, para sua implementao, no seria necessria a distribuio de redes ou sensores por toda a cidade, tendo em vista que, apenas os veculos a serem monitorados que devem conter um mdulo que resgate sua posio GPS e transmita via GPRS, tecnologia que j est bem disseminada em um grande nmero de cidades. A documentao das APIs do Google Maps e Android disponibilizada pelo Google para desenvolvedores oferece grande facilidade para implementao da ferramenta, ainda que em ingls, sempre est atualizada e serve de suporte aos programadores.
53
Utilizando as tecnologias atuais de GPRS e com o GPS notou-se que possvel manter um banco de dados atualizado sobre as reais posies dos veculos nas cidades. Porm, na cidade onde testamos a aplicao (Montes Claros-MG), a performance da rede GSM da operadora contratada mostrou-se ineficaz com vrios pontos sem acesso rede, o que culminou na no atualizao dos dados. Porm, com uma simples substituio de operadora o problema foi sanado. Os servidores que prestaram servios para a aplicao em vrios momentos demonstraram atrasos para exibio dos dados e, com relao a este quesito, recomenda-se uma pesquisa a fim de determinar quais os servidores mais eficientes para a realizao deste trfego de dados, uma vez que, para este trabalho no foram utilizados servios mais dedicados. Recomenda-se ainda a verificao da possibilidade de implementao deste trabalho no apenas para plataformas mveis, mas tambm a construo de um website com as mesmas ou at mais funcionalidades do mdulo usurio, descrito no captulo anterior, tendo em vista que ainda existe uma grande parcela de potenciais clientes para o sistema que ainda no possui computadores mveis. Do ponto de vista acadmico, esse trabalho se mostrou de suma importncia para a formao do autor, tanto pelo lado do conhecimento quanto profissional, pois a programao para plataformas mveis est em ascenso e a juno das tecnologias de sensores eletrnicos como sensor GPS, sensor de gases, luminosidade, etc., com essas plataformas constitui um grande leque de opes para o desenvolvimento de outros projetos ou trabalhos cientficos com os mais variados focos, sejam eles de cunho ambiental, acadmico, econmico etc.
54
REFERNCIAS BIBLIOGRFICAS
ABC71, Perspectiva (Org.). Da guerra ao cotidiano: conhea a histria do GPS. Disponvel em: <http://www.abc71.com.br/boletim/2009/02/materia_03.html>. Acesso em: 08 abr. 2014.
DEPARTAMENT OF DEFENCE, United States of America, Global Positioning System Standard Positioning Service (2008), 4th ed.
EDUARDO JNIOR,; SEGUNDO, Alonso. Histrico dos Bancos de Dados. Disponvel em: <http://disciplinas.dcc.ufba.br/svn/MATA60/tarefa1/historico/historico.pdf?revision=21 > Acesso em: 20 abr. 2014.
FILHO, Wilson de Pdua Paula. Engenharia de Software: Fundamentos, Mtodos e Padres. 2 Ed. Rio de Janeiro: LTC, 2003.
GIL, Antnio Carlos. Como elaborar projetos de pesquisa. 4. ed. So Paulo: Atlas, 2008
MONICO, J.F.G. Posicionamento Pelo GNSS: Descrio, Fundamentos e Aplicaes (Unesp, So Paulo, 2008).
MORIMOTO, Carlos E.. Smartphones: Guia Pratico. So Paulo: Gdh Press e Sul Editores, 2009. 432 p.
ORACLE. The History of Java Technology. Disponvel em: <http://www.oracle.com/technetwork/java/javase/overview/javahistory-index- 198355.html>. Acesso em: 10 abr. 2014.
ORACLE. About the Java Technology. Disponvel em: <http://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html>. Acesso em: 10 abr. 2014.
PIKE, John E. (Ed.). Navigation Technology Satellite. Disponvel em: <http://www.globalsecurity.org/space/systems/timation.htm>. Acesso em: 11 abr. 2014.
PIROTTI, Rodolfo, P.; ZUCCOLOTTO, Marcos. Transmisso de dados atravs da telefonia celular: arquitetura das redes GSM e GPRS. Revista Liberato. v.10. n.13. p.81-89. Novo Hamburgo. jun. 2009. Disponvel em: <http://www.liberato.com.br/upload/arquivos/0116070910470919.pdf>. Acesso em: 17 abr. 2014.
PRADO, Jean. A Histria do Android. Disponvel em: <http://diariodoandroid.com.br/infografico/infografico-historia-android/7812/> Acesso em: 22 abr 2014.
THE WHITE HOUSE, Global Positioning System Policy, Office of Science and Technology Policy. National Security Council Embargoed for Release on March 29, 1996. Disponvel em: <http://www.navcenter.org/gps/geninfo/default.htm >. Acesso em: 15 Abr 2014. TAURION, CEZAR. Tecnologia, uma opo inteligente para melhorar a vida urbana. Disponvel em: <http://www.portal2014.org.br >. Acesso em: 15 Nov 2013.
VORGEL, Lars. Android SQLite Database and ContentProvider Tutorial. Disponvel em <http://www.vogella.com/articles/AndroidSQLite/article.httml>. Acesso em: 18 Abr. 2014.
SVERZUT, Jos Umberto. Rede GSM, GPRS, EDGE e UMTS. So Paulo: Editora Afiliada, 2005.