tcc - monitoramento por geolocalização
Post on 28-Dec-2015
158 Views
Preview:
TRANSCRIPT
INSTITUTO SUPERIOR DE MONTES CLAROSFACULDADE DE COMPUTAÇÃO DE MONTES CLAROS
Curso de Tecnologia em Análise e Desenvolvimento de Sistemas
HADSON MARCELO GOMES
MONITORAMENTO DE TRAFEGO POR GEOLOCALIZAÇÃO
Montes Claros – MG
2014
HADSON MARCELO GOMES
MONITORAMENTO DE TRAFEGO POR GEOLOCALIZAÇÃO
Trabalho de Conclusão de Curso apresentado como exigência parcial para obtenção do diploma de Tecnologia em Analise e Desenvolvimento de Sistemas da Faculdade de Computação de Montes Claros.
Orientadora: Janine Alves Prates, Mestre.
Montes Claros – MG
2014
HADSON MARCELO GOMES
MONITORAMENTO DE TRAFEGO POR GEOLOCALIZAÇÃO
Trabalho de Conclusão de Curso aprovado como requisito parcial para obtenção do Diploma de Graduação em Tecnologia em Analise e Desenvolvimento de Sistemas da Faculdade de Computação de Montes Claros.
Aprovado em 16/06/2014
BANCA EXMINADORA:
Ass.________________________________________________________
Ass.________________________________________________________
Ass.________________________________________________________
Montes Claros – MG
2014
AGRADECIMENTOS
A jornada do conhecimento humano evolui com o passar de eras. O saber está
entrelaçado à capacidade única que nos foi dada que é a do autoconhecimento.
Nesta longa estrada, muitas pedras e percalços 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 possíveis e em
todos os momentos me ajuda a remover as pedras do desvio.
A minha orientadora professora Janine Prates, que acreditou no meu trabalho.
RESUMO
Este trabalho consiste no desenvolvimento de um sistema de monitoramento de
transporte público de uma cidade de médio porte utilizando o sistema de
posicionamento global (GPS), o serviço de rádio de pacote geral (GPRS) e
computadores móveis com sistema operacional Android. Por meio de um módulo
ônibus instalado no veículo é possível obter as suas localizações e através do envio
das informações para um servidor é possível monitorar os mesmos em seu trajeto.
Os usuários de transporte público acessam estas informações pelo módulo usuário
que consiste em um aplicativo instalado em dispositivos Android, obtendo como
informação a localização dos ônibus durante os seus trajetos, assim conseguindo
um melhor planejamento de suas viagens.
Palavras-chave: GPS. Android. Sistema de monitoramento. GPRS. Transporte
público.
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 Não funcionais.
Figura 4 - Caso de uso de rastreamento.
Figura 5 - Diagrama de atividades de atualização de posição.
Figura 6 - Modelo de entidade e relacionamento.
Figura 7 - Tela da ferramenta Eclipse ADT.
Figura 8 - Tela da ferramenta PHPMyAdmin.
Figura 9 - Trecho de código PHP. Cadastro de Coordenadas.
Figura 10 - Tela inicial módulo usuário.
Figura 11 - Trecho de código que faz requisição ao servidor.
Figura 12 - Tela de escolha do veículo a ser rastreado.
Figura 13 - Código que busca as coordenadas e desenha na tela.
Figura 14 - Demonstração de desenho do veículo no mapa.
Figura 15 - Demonstração de alerta de aproximação de veículo.
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 Rádio Frequência
REQF Requisitos Funcionais
REQNF Requisitos Não 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
SUMÁRIO
1 INTRODUÇÃO 13
2 GLOBAL POSITIONING SYSTEM - GPS 15
2.1 FUNCIONAMENTO DO GPS 17
2.2 GPS EM APARELHOS CELULARES 18
2.2.1 A-GPS – Assisted GPS 18
2.3 GOOGLE MAPS 19
2.3.1 LBS no Android 20
2.4 ANDROID 20
2.4.1 Camada “Aplicações” 22
2.4.2 Camada “Framework de aplicações” 22
2.4.3 Camada “Bibliotecas” 22
2.4.4 Camada “Tempo de Execução Android” 23
2.4.5 Camada “Kernel do Linux” 23
2.5 VERSÕES DO ANDROID 23
2.5.1 Android 1.0 24
2.5.2 Android 1.5 – Cupcake 24
2.5.3 Android 1.6 - Donut 24
2.5.4 Android 2.0 – Eclair 25
2.5.5 Android 2.2 – Froyo 25
2.5.6 Android 2.3 – Gingerbread 25
2.5.7 Android 3.0 - Honeycomb 25
2.5.8 Android 4.0 - Ice Cream Sandwich 26
2.5.9 Android 4.1 - Jelly Bean 26
2.5.10 Android 4.4 – KitKat 26
2.6 JAVA 27
2.6.1 A linguagem de programação Java 27
2.6.2 A plataforma Java 28
2.6.2.1 Java Virtual Machine 28
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 Características da biblioteca SQLite 31
2.7.5 Exemplos de uso do SQLite 32
2.8 TRANSMISSÃO DE DADOS 32
2.8.1 Redes GPRS 33
3 DESENVOLVIMENTO DO SISTEMA 35
3.1 LEVANTAMENTO DE INFORMAÇÕES 35
3.2 ESPECIFICAÇÃO 36
3.2.1 Requisitos Funcionais 36
3.2.2 Requisitos Não 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 IMPLEMENTAÇÃO 40
3.3.1 Técnicas e ferramentas utilizadas 40
3.4 OPERACIONALIDADE DA IMPLEMENTAÇÃO 43
4 CONSIDERAÇÕES FINAIS 51
5 REFERÊNCIAS BIBLIOGRÁFICAS 53
1 INTRODUÇÃO
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 milhão de habitantes.
Em 1960, o planeta tinha 111 cidades com mais de um milhão de pessoas. Em 1985
já eram 280 e hoje mais de 300, das quais 13 estão no Brasil.
É de se esperar que, com o aumento significativo da população, problemas no
transito como congestionamentos e falta de infraestrutura apropriada aconteçam.
Partindo dessa premissa, percebe-se a importância da utilização de métodos
tecnológicos para ajudar na solução de tais problemas de forma plausível e eficiente.
E uma destas respostas seria um possível desenvolvimento de um sistema que
monitorasse em tempo real a posição atual dos ônibus do transporte coletivo a fim
de melhorar e desafogar o transito das cidades, pois com um controle mais
acessível aos usuários dependentes desse sistema de transporte poderia até
mesmo encorajá-los e ainda atrair novos utilizadores deste meio de locomoção. E é
baseado nisso que se propõe a execução deste trabalho.
Neste trabalho estabeleceu-se como objetivo, identificar a existência de recursos
tecnológicos e bibliográficos disponíveis para o desenvolvimento e implementação
de uma aplicação para plataformas móveis que viabilizará o fácil acesso dos
usuários do sistema de transporte público em uma cidade de médio porte.
Para construir o referencial teórico para a realização desta pesquisa, optou-se a
utilizar os autores que aqui principalmente cito SVERZUT(2005), MORIMOTO(2009),
GOOGLE INC(2014), e ORACLE(2014), além de outros.
Quanto à natureza, esta pesquisa se enquadra como aplicada, pois busca
resultados que possam ser utilizados como solução 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 características
de determinadas populações ou fenômenos. Em relação às técnicas utilizadas,
Gil(2008) diz que quando uma pesquisa é desenvolvida com base em material já
elaborado e constituída principalmente de livros e artigos científicos, esta deve ser
uma pesquisa bibliográfica. Esse trabalho também, quanto à técnica, pode ser
classificado como experimental pois é desenvolvido um sistema que influencia de
modo geral o resultado da pesquisa. A abordagem de análise de dados é qualitativa,
sendo desenvolvida entre os períodos de agosto de 2013 e maio de 2014.
Estruturalmente, no segundo capítulo tem-se a apresentação da fundamentação
teórica pesquisada sobre a história dos sistemas de Geolocalização e seu
funcionamento, os tipo de GPS em celulares, a API do Google Maps e suas
aplicações, os sistemas Android, a linguagem Java, sistemas de gerenciamento de
banco de dados e, por fim, as redres GPRS. O 3º capítulo apresenta o
desenvolvimento do sistema, iniciando com o levantamento de informações, tendo
na sequência a especificação e implementação. Em seguida, apresenta-se as
considerações finais do autor em relação ao trabalho apresentado.
2 GLOBAL POSITIONING SYSTEM – GPS
O GPS é um sistema de posicionamento de abrangência global em tempo real,
desenvolvido pelo Departamento de Defesa dos Estados Unidos, nas últimas
décadas do século passado. Embora a obtenção das coordenadas espaciais de um
ponto possa ser considerada, atualmente, uma tarefa fácil, há muito tempo se
procurava uma maneira de localização terrestre que substituísse as fontes de
orientação pouco precisas proporcionadas pela orientação do Sol, das estrelas e dos
planetas, predominante durante séculos (MONICO, 2008).
Em 1960 a Força Aérea e a Marinha americana trabalhavam para o
desenvolvimento de um sistema de navegação por satélites. A Marinha patrocinou
dois programas:
Transit: Conhecido também como Navy Navigation Satellite System - NAVSAT. Foi o
primeiro sistema de navegação por satélite a ser usado operacionalmente. Foi criado
para obter informações precisas o posicionamento para submarinos lançadores de
mísseis balísticos, e foi usado pela marinha dos Estados Unidos com um sistema de
navegação, bem como para vigilância hidrográfica e geodésica.
Segundo ABC71 (2009), o sistema foi desenvolvido no Laboratório de Física
Aplicada da Johns Hopkins University para a marinha dos Estados Unidos. Foram
feitos vários testes usando satélites conhecidos, colocados em órbitas polares de
baixa altitude, a 1100 km acima da superfície da Terra. Em cada teste eram usados
no mínimo cinco satélites necessários para permitir uma cobertura global.
O primeiro teste bem sucedido do sistema foi realizado em 1960, para ter um bom
funcionamento foram necessários de pelo menos mais cinco satélites usados como
sobressalentes para cada satélite que estava na órbita.
Os satélites foram definidos de modo a cobrir a Terra inteira, com isso podiam calcular qualquer posição com base no instante da passagem dos satélites. No entanto para ter uma nova posição, só poderia ser calculada na próxima passagem do satélite. O intervalo de tempo entre as passagens corresponderia ao período orbital (106 minutos) se o mesmo satélite estivesse visível em ambas às passagens, caso contrário teria um atraso típico de uma hora ou duas. (ABC71, 2014, p.1)
Timation: Na Naval Research Laboratory, do Centro Naval de Tecnologia Espacial,
foi desenvolvido o sistema de navegação Timation, iniciado em 1964, mas o satélite
só foi laçado 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 técnicas,
como um relógio de alta precisão, podendo oferecer bases de posições mais
precisas, usando um novo sistema tridimensional de cobertura em todo mundo.
Os sistemas de navegação Transit e Timation operavam em modo 2D, pois usavam
latitude e longitude. No período de 1960 a Força Aérea estudou sistemas que
operavam em 3D que usavam latitude, longitude e altitude. Após inúmeros estudos,
foi escolhido o programa 612B.
De acordo com Pike (2011), em 1973, com a fusão 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 início 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 início à 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 satélites, que proporcionava uma cobertura
completa, com funcionamento simultâneo, 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 segurança interna do país. Em Maio de 2000 o Presidente Clinton fez um decreto
para cancelar o erro implantado nos equipamentos, pois o contínuo desenvolvimento
tecnológico permitiu ao Departamento de Defesa obstruir a precisão do Sistema
onde e quando os interesses americanos exigissem. Com o decreto, o erro médio de
100 metros na localização do receptor ficou dez vezes menor.
O GPS surgiu com objetivo de guerra e navegação de alta precisão, para ser usado no transporte militar e mísseis. Os GPS foram usados como teste na guerra do Golfo que, facilitando a locomoção das tropas no deserto, os mísseis passaram a atingir seus alvos com erros mínimos. (PIKE, 2014, p.1)
1.1FUNCIONAMENTO DO GPS
O GPS conta com dois tipos de serviço de posicionamento diferentes: o padrão
Standard Positioning Service - SPS e o preciso Precise Positioning Service - PPS.
O SPS está disponível a todos os usuários do globo e proporciona valores com
precisão de 100 a 140 m ou de 10 a 20 m, enquanto o PPS, de uso restrito militar,
apresenta precisão de 10 a 20 m. Nota-se, assim, que ambos os serviços podem
proporcionar valores com a mesma precisão. O serviço SPS tem dois intervalos
diferentes de precisão devido à limitação seletiva imposta pelo Departamento de
Defesa Americano (DEPARTAMENT OF DEFENCE, 2008): um processo de
criptografia aplicado em um dos códigos utilizados no GPS para realizar as medidas
de distâncias, capaz de tornar as medições do SPS mais imprecisas, caso
necessário. A restrição foi imposta inicialmente por motivo de segurança nacional.
Porém, em maio de 2000, essa técnica de deterioração do sinal recebido pelo SPS
foi descontinuada, melhorando consideravelmente o nível de precisão alcançado por
usuários civis. Após essa decisão, o Conselho de Segurança americano passou a
fazer reuniões anuais para decidir pela reativação ou não da disponibilidade seletiva
do sinal (THE WHITE HOUSE, 1996)
O GPS é dividido em três segmentos: espacial, de controle e de usuários. O
segmento espacial consiste de 24 satélites distribuídos em seis planos orbitais
igualmente espaçados, que cruzam o centro da Terra. Cada plano conta com quatro
satélites. Essa configuração permite que, em qualquer local da superfície terrestre, a
qualquer momento, pelo menos quatro satélites estejam "visíveis" por um receptor.
O segmento de controle é responsável pelo monitoramento, correção dos relógios e
atualização periódica das mensagens de navegação de cada satélite. É composto
por cinco estações terrestres estrategicamente distribuídas no globo. O segmento de
usuários é constituído pelos receptores GPS. Dependendo da aplicação a qual se
destina, o aparelho necessita um grau maior ou menor de qualidade do seu relógio
interno (MONICO, 2008).
É interessante salientar que muitas pessoas se referem ao GPS como "sistema
GPS". Tal expressão é empregada de forma equivocada, visto que o acrônimo já
carrega em si a palavra sistema.
1.2 GPS EM APARELHOS CELULARES
Segundo Morimoto (2009), os componentes de um dispositivo GPS sofreram grande
miniaturização com o tempo, e em consequência, grande queda de preço. É
importante considerar que muito do valor de um GPS são hardwares de interação
como tela, botões, 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 características de hardware necessárias em um aparelho GPS, tanto
que quase todos os aparelhos de smartphone no mercado hoje possuem receptores
de GPS, permitindo assim uma grande redução de preço do dispositivo, que agora
teria que orçar apenas o receptor, seu processador e o software responsável pela
navegação.
Com a miniaturização dos componentes, passou a fazer sentido incluir receptores de GPS em smartphones, aproveitando a tela, processador, memória 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 memória usada por ele em um encapsulamento incrivelmente compacto, que adiciona muito pouco ao peso e volume do aparelho. (MORIMOTO, 2009, p.362).
1.2.A A-GPS – Assisted GPS
Morimoto (2009), os smartphones usam uma antena GPS menor e menos sensível e
com chipset GPS mais fraco, causando certa demora em achar a localização ou
perdendo o sinal frequentemente. Para evitar o problema e ajudar na localização, os
smartphones utilizam um sistema híbrido, o A-GPS.
O A-GPS funciona através de uma combinação de sinais de satélites GPS e
triangulação por torres de celular, além de um servidor remoto que fornece o
posicionamento dos satélites, que facilita a rápida localização pelo receptor.
Morimoto (2009, p. 273) diz:
"Naturalmente, todas as informações são transmitidas usando a rede celular, mas o
volume de dados transferido é pequeno, apenas alguns poucos kbytes por consulta."
1.3 GOOGLE MAPS
De acordo Morimoto (2009), a opção mais simples e utilizada de softwares para
celular atualmente é o Google Maps. Ele possui versões não apenas para celulares,
mas para computadores também, podendo ser usado em diversos sistemas
diferentes, e até mesmo online. Possui ainda a opção de visualização por imagens
de satélite, o que dá uma visão mais real do local de interesse.
A concepção do Google Maps teve início em 2004, quando o Google comprou a
Keyhole, empresa de mapeamento global, e iniciou o desenvolvimento do Google
Earth. O Google Earth foi lançado ao público 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 exploração, através de
imagens de satélite, da maioria dos espaços do planeta.
O Google Earth permitia que muitas empresas e pessoas pudessem acessar
imagens aéreas 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 após seu lançamento.
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 informações sobre
quais ruas usar, distâncias e localizações. É possível 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, porém se for um automóvel, ele irá considerar o sentido das
ruas, e seu devido percurso.
Mais recentemente, o Google lançou sua mais nova forma de visualização urbana, o
Google Street View, que permite visualizar a cidade de forma totalmente inovadora,
através das ruas. Eles utilizaram diversos carros equipados com câmeras 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á disponível em
diversas cidades no mundo, como Nova York, Los Angeles, Sidney, São Paulo,
Montes Claros, Varzelândia, etc.
Entretanto, o Google Maps não é 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 quarteirão para o outro, na maior parte do tempo, fazendo com que seja difícil se orientar por ele quando está dirigindo. Aplicativos que incluem suporte à navegação assistida, como o Nokia Maps e o Garmin são bem melhores nesse quesito. (MORIMOTO, 2009, p. 78).
Embora seja um programa com pouco tempo de funcionamento (disponível desde o
dia 8 fevereiro de 2005), o Maps impressiona pela quantidade de recursos
oferecidos tanto para usuários comuns, que irão utilizar de maneira mais simplista o
serviço, até usuários avançados, que poderão criar serviços utilizando as Application
Programming Interfaces - APIs disponibilizadas pelo Google Maps.
1.3.A LBS no Android
Na documentação on-line do Google INC (2014), o Android provê um framework de
localização que pode ser usado na criação de aplicações baseadas em localização.
O Android também possui uma biblioteca do Google Maps nativamente instalada
que permite a criação de serviços baseados em mapas. O Android provê, com isso,
todos os recursos necessários para a criação de sofisticados sistemas de
localização utilizando mapas.
A seguir estaremos entrando em detalhes sobre o pacote Location da API Google
Maps.
1.4 ANDROID
Segundo Google INC (2014), Android é uma plataforma para dispositivos móveis,
criada para diminuir custos e melhorar a experiência do usuário nesses dispositivos.
O Android começou como uma pequena empresa com o nome do próprio Android
Inc, em Palo Alto, Califórnia, EUA, criada por quatro sócios, chamados Andy Rubin,
Rich Miner, Nick Sears e Chris White. Somente em 2006 o Google tomou posse do
projeto comprando a Android Inc e assumindo a direção 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 móvel e gratuito para assim, viabilizar
a sua distribuição em massa, com liberdade de desenvolvimento de aplicativos e
liberdade de plataforma de hardware. A OHA iniciou suas operações com 40
empresas.
Atualmente, esse número está perto das 90 empresas. No mesmo ano, foi liberada a
versão Beta do Software Development Kit - SDK do Android.
De acordo com a empresa, aplicações podem ser livremente desenvolvidas para a
plataforma Android, pois a mesma possui um SDK que fornece ao programador
todas as APIs necessárias para a interação inicial com a plataforma. O SDK do
Android permite, também, que o programador utilize um gerenciador de banco de
dados SQlite e suporta gráficos 3D baseados nas especificações 1.0 da OpenGL for
Embedded Systems - OpenGL ES.
Dentre muitas características, o Android possui nativamente um framework de
aplicações, uma máquina virtual Dalvik (Java) otimizada para dispositivos móveis,
um navegador web baseado na engine de código aberto Webkit, suporte a arquivos
de mídia de áudio e vídeo e um ambiente de desenvolvimento rico em ferramentas.
A empresa ainda diz que o Android foi idealizado para ser um sistema com código
fonte opensource, facilitando a adequação a diversos dispositivos diferentes e
personalização do conteúdo. Devido a essa facilidade, é comum encontrarmos
aparelhos que possuem personalizações da operadora de telefonia ou do fabricante
como forma de concorrência entre os mesmos. Pelo fato de ser baseado no Linux,
ele também possui um repositório de aplicativos, onde todos os aplicativos públicos
a serem instalados nos sistema podem ser visualizados e adquiridos.
Dentre as tecnologias que compõem o Android, pode-se destacar como principais o
Java, a linguagem de programação usada no desenvolvimento de aplicações nativas
para o Android, o SQLite, um sistema gerenciador de banco de dados leve e rápido,
usado para armazenar dados das aplicações durante a execução e o GPS, que
permite a integração do serviço com as aplicações.
A arquitetura do Android está dividido em camadas, permitindo ao programador ou à
empresa de desenvolvimento de dispositivos customizar apenas a parte que lhe será
necessária. As camadas da arquitetura do Android, da “externa” para a “interna”,
são:
Aplicações
Framework de aplicações
Bibliotecas
Tempo de Execução Android
Kernel do Linux
1.4.A Camada “Aplicações”
A camada de Aplicações contém todas as aplicações já compiladas e instaladas,
prontas para serem executadas.
Essas aplicações podem ser criadas usando as APIs do Android juntamente com a
linguagem de programação Java.
1.4.B Camada “Framework de aplicações”
A camada do Framework de aplicações contém todas as APIs necessárias para o
desenvolvimento das aplicações voltadas para o Android.
As aplicações nativas da plataforma são desenvolvidas utilizando essas mesmas
APIs, permitindo ao programador alterar, se necessário, alguma funcionalidade
contida no núcleo de uma aplicação nativa, desde que o usuário permita o acesso
de uma aplicação à outra.
1.4.C Camada “Bibliotecas”
A camada de Bibliotecas contém todas as bibliotecas necessárias para manuseio de
aplicações terceiras.
Como exemplos de bibliotecas tem-se a biblioteca do sistema C, bibliotecas de
reprodução e gravação de áudio e vídeo, bibliotecas de uma engine de gráficos 2D e
3D, bibliotecas para manuseio de bancos de dados SQLite e bibliotecas de
renderização de vetores e bitmaps.
1.4.D Camada “Tempo de Execução Android”
A camada de Tempo de Execução Android contém as bibliotecas do núcleo da
linguagem Java, necessárias para execução das aplicações, e a máquina virtual
Dalvik, otimizada para dispositivos móveis onde cada aplicação é executada como
uma nova instância na máquina virtual.
Segundo GOOGLE INC (2014), a máquina virtual Dalvik, presente nesta camada,
depende da camada Kernel do Linux para tarefas mais próximas ao hardware, como
gerenciamento de threads e de memória.
1.4.E Camada “Kernel do Linux”
A camada do Kernel do Linux contém o núcleo do Android, usando a versão 2.6 do
Linux para tarefas como gerenciamento de processos, de rede e drivers.
O Kernel também serve como camada de abstração entre o hardware do aparelho e
o resto da plataforma.
1.5 VERSÕES DO ANDROID
A empresa ainda diz em sua documentação que, de tempos em tempos, são
disponibilizadas novas versões do Android, normalmente contendo novos recursos,
melhoria de desempenho e correção de bugs e problemas.
Curiosamente, a partir da versão 1.5 do sistema, cada versão tem um codinome
representando um nome de um doce e em ordem alfabética.
1.5.A Android 1.0
Segundo Prado (2011), em 2008 foi lançada a primeira versão pública do sistema
Android, a versão 1.0. O primeiro dispositivo a venda a utilizar esse sistema foi um
Smartphone da HTC, o “HTC Dream G1”. Já nesta versão, o Android já era
multitarefa e tinha total integração com os serviços da Google, navegador web com
HTML - Hypertext Markup Language - e XHTML - XML HTML, multijanelas,
mensageiro instantâneo e suporte a Wi-Fi e Bluetooth.
Juntamente com a versão 1.0 do sistema, foi lançado o repositório de aplicações
oficial da Google, o Google Market, em que os usuários podem acessar uma lista
com quase todos os aplicativos disponíveis para o sistema. Nele é possível tanto
obter aplicativos gratuitos, como aplicativos pagos.
1.5.B Android 1.5 – Cupcake
No dia 30 de abril de 2009 foi lançada a versão 1.5, codinome Cupcake, que era
baseado na versão 2.6.27 do Kernel Linux.
Tinha melhorias no gerenciamento da câmera, nos sistemas de aquisição de GPS,
teclado na tela, e upload direto para serviços de imagem e vídeo do Google
(Youtube e Picasa).
1.5.C Android 1.6 - Donut
De acordo com Prado (2011), baseado na versão 2.6.29 do Kernel Linux foi lançada
a versão 1.6, codinome Donut, no dia 15 de setembro de 2009. Com ela, foram
adicionadas as funções de busca por voz e caixa de busca rápida, melhorias no
sistema de câmera integrada, gravador, galeria, modos de vídeo.
Foi adicionado um indicador de uso de bateria, suporte a CDMA, e funções de texto
para multilinguagem.
1.5.D Android 2.0 – Eclair
Em 2009, no dia 26 de outubro, foi lançada a versão 2.0, codinome Eclair, do
sistema, e, para Prado (2014), ainda usando a versão 2.6.29 do Kernel Linux.
Nessa versão, foram adicionados a sincronia de múltiplas contas de e-mail e
contatos, suporte a Microsoft Exchange, navegador com HTML5, Bluetooth 2.1, e
melhorias no calendário.
1.5.E Android 2.2 – Froyo
No dia 20 de maio de 2010, foi lançada a versão 2.2, codinome Froyo.
Baseado na versão 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.
1.5.F Android 2.3 – Gingerbread
A versão 2.3, codinome Gingerbread, foi lançada no dia 6 de dezembro de 2010. De
acordo com Google INC (2014), a versão tem a função de NFC - Near Field
Communication, que permite a comunicação entre dois dispositivos próximos sem a
necessidade de cabos.
Conta também com novos ajustes de interface para simplificar e melhorar a
velocidade, além de um novo teclado com maior facilidade de digitação, copiar e
colar one touch, e de realizar chamadas pela internet.
1.5.G Android 3.0 - Honeycomb
Para Prado (2011), no dia 10 de maio de 2011 foi lançada a versão 3.0.
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.
1.5.H Android 4.0 - Ice Cream Sandwich
A empresa Google INC (2014) diz, em outubro de 2011 foi anunciada a versão 4.0
codinome Ice Cream Sandwich, essa versão foi reformulada, visando apresentar um
sistema novo aos usuários, e não apenas um sistema atualizado como nas outras
versões.
Entre suas novidades estão novas fontes, visual renovado, refinamento na
movimentação do touch, sistema de reconhecimento facial, melhorias de
desempenho, navegação mais rápida e sistema de compartilhamento de dados por
NFC.
1.5.I Android 4.1 - Jelly Bean
Anunciada em 27 de junho de 2012, a versão 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 funções de
acessibilidade para deficientes visuais, como gestos para ações pré-configuradas,
uma função para escrever textos por voz (somente em inglês) e foram feitas
melhorias no comportamento dos widgets na tela inicial e no desempenho do
browser e da agenda. A área de notificações foi atualizada, podendo conter mais
informações sobre cada notificação individualmente.
A empresa ainda diz que junto com esta versão do Android, a Google também
anunciou o serviço Google Now, que auxilia o usuário nas tarefas diárias como, por
exemplo, lembrando-o de compromissos agendados, avisando sobre voos atrasados
etc.
1.5.J Android 4.4 – KitKat
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. Além da otimização no consumo de memória, o Google afirma que
realizou melhorias no touchscreen: comandos de toque responderão de maneira
mais rápida e precisa que no Jelly Bean. Alternar entre aplicativos também está mais
rápido.
Outras novidades incluem a unificação do aplicativo Hangouts com o SMS, suporte a
novos gestos de toque, impressão de documentos em dispositivos conectados ao
Google Cloud Print e melhor suporte a serviços de armazenamento na nuvem de
terceiros.
1.6 JAVA
Segundo a Oracle (2014), em 1991, um grupo de engenheiros da empresa Sun
acreditava na tendência da junção dos dispositivos móveis 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 programação Java.
Para demonstração de sua linguagem de programação e de seu potencial, o Green
Team trabalhou num controle remoto portátil que tinha como alvo a comunicação
com as televisões a cabo digitais, mas, naquela época, esse conceito de integração
de dispositivos estava avançado demais para os equipamentos disponíveis.
Percebendo a ascensão da internet, em 1995, o grupo anunciou que navegador de
internet Netscape Navigator passaria a incorporar a tecnologia Java.
1.6.A A linguagem de programação Java
Sendo aclamada como uma linguagem de programação versátil, o Java é a principal
linguagem de programação usada nos aplicativos nativos do Android.
Para a Oracle (2014), na linguagem de programação Java, todos os arquivos de
código-fonte possuem a extensão “.java” e têm seu conteúdo inalterado, podendo
ser lidos e modificados pelo programador. Depois que o arquivo de código-fonte é
salvo, é necessário compilá-lo com o compilador javac (fornecido junto com as
ferramentas para programação Java), em um arquivo “.class”. Esse arquivo
compilado tem seu conteúdo convertido para bytecode, que não é um código que
pode ser lido ou modificado pelo programador e sim a linguagem da Java Virtual
Machine - JVM.
Segundo a Oracle (2014), uma instância da JVM na máquina do usuário lê o
bytecode do arquivo “.class” e executa a aplicação. Já que a JVM está disponível em
vários sistemas operacionais, o mesmo arquivo bytecode “.class” pode ser
executado em outra máquina, sem necessidade de edição e recompilação.
1.6.B 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 código nativo. Porém, avanços na tecnologia do compilador e da JVM
têm trazido o desempenho para perto que o código nativo é capaz, sem
comprometer a portabilidade (ORACLE, 2014).
A plataforma possui dois componentes:
Java Virtual Machine
Java API
1.6.B.1 Java Virtual Machine
Segundo Oracle (2014), a JVM é a peça fundamental da plataforma Java. É o que
faz com que ela seja independente de hardware e de sistema operacional. Ela é um
computador abstrato, virtual, que, como toda máquina física, real, possui conjuntos
de instruções e manipula várias áreas da memória durante a execução.
A JVM não conhece linguagem alguma, a não ser a linguagem bytecode dos
arquivos “.class” e, apesar de ser bem restrita quanto a formas sintáticas e
estruturais, se uma linguagem pode gerar uma aplicação no formato especificado
pela JVM, então essa aplicação pode se utilizar das funções da mesma.
1.6.B.2 Java Application Programming Interface
A Oracle (2014), a Java API é uma grande coleção de componentes de software
prontas que provém várias capacidades úteis. Ela está agrupada em bibliotecas de
classes e interfaces relacionadas, bibliotecas essas, também conhecidas como
pacotes.
1.7 BANCO DE DADOS
Segundo Eduardo (2008), os fundamentos de bancos de dados relacionais surgiram
na empresa IBM, nas décadas de 1960 e 1970, através de pesquisas de funções de
automação de escritório. Foi durante um período da história na qual empresas
descobriram que estava muito custoso empregar um número grande de pessoas
para fazer trabalhos como armazenar e indexar (organizar) arquivos. Por este
motivo, valia a pena os esforços e investimentos em pesquisar um meio mais barato
e ter uma solução mecânica 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
cálculo e álgebra relacional para permitir que usuários não técnicos armazenassem
e recuperassem grande quantidade de informações. Codd visionava um sistema
onde o usuário seria capaz de acessar as informações através de comandos em
inglês, onde as informações estariam armazenadas em tabelas.
Devido à natureza técnica deste artigo e a relativa complicação matemática, o
significado e proposição do artigo não 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 protótipos foram utilizados por muitas organizações, tais como
Massachusetts Institute of Technology - MIT, uma escola renomada de negócios
norte-americana. Novas versões foram testadas com empresas de aviação 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 padrão na
indústria para bancos de dados relacionais e hoje é um padrão International
Organization for Standardization - ISO.
1.7.A Sistema de Gerenciamento de Banco de Dados – SGBD
Segundo Eduardo (2008), um SGBD consiste em uma coleção de dados inter-
relacionados e em um conjunto de programas para acessá-los. Um conjunto de
dados, normalmente referenciado como banco de dados, contém informações sobre
uma empresa particular, por exemplo. O principal objetivo de um SGBD é prover um
ambiente que seja adequado e eficiente para recuperar e armazenar informações de
banco de dados.
O autor ainda diz em seu livro que os sistemas de banco de dados são projetados
para gerenciar grandes grupos de informações. O gerenciamento de dados envolve
a definição de estruturas para armazenamento de informação e o fornecimento de
mecanismos para manipulá-las. Além disso, o sistema precisa fornecer segurança
das informações armazenadas, caso ocorra algum problema ou contra tentativas de
acesso não autorizado. Se os dados devem ser divididos entre diversos usuários, o
sistema precisa evitar possíveis resultados anômalos.
O autor afirma a importância das informações na maioria das organizações e o
consequente valor dos bancos de dados têm orientado o desenvolvimento de um
grande corpo de conceitos e técnicas para o gerenciamento eficiente dos dados.
1.7.B SGBD SQLite
É necessário um sistema de banco de dados para guardar as informações de
maneira estruturada. O Android usa o sistema de banco de dados SQLite, que
também é usado por muitas aplicações populares, como o Mozilla Firefox e o iOS
para o armazenamento de dados. Sem ele, os dados ficam disponíveis apenas em
tempo de execução, ou seja, após a execução do programa, esses dados são
perdidos.
Segundo Gonçalves (2014), o SQLite pode ser definido como uma ferramenta - mais
precisamente, uma biblioteca desenvolvida em C padrão (ANSI - American National
Standards Institute) - que pode ser integrada a programas escritos em diferentes
linguagens com o intuito de possibilitar a manipulação de dados através de
instruções SQL. O SQLite é um banco de dados open source. Ele suporta
características de banco de dados relacional, por exemplo, sintaxe SQL, transações
e declarações preparadas. Além disso, requer apenas memória durante o seu tempo
de execução (aproximadamente 250KB).
O autor também diz que, na prática, 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 extensão “*.db” e é capaz de manter diversas tabelas. Uma
tabela é criada com o uso do comando CREATE TABLE da linguagem SQL. Os
dados das tabelas são manipulados através de comandos DML - Data Manipulation
Language - (INSERT, UPDATE e DELETE) e são consultados com o uso do
comando SELECT.
No site do SQLite é possível encontrar roteiros para a utilização da ferramenta em
programas desenvolvidos em Java, PERL, Delphi e outras linguagens (incluindo o
PHP na versão 4).
1.7.C SQLite no Android
De acordo com Vorgel (2010), o SQLite está disponível em todos os dispositivos
com Android. Além das várias inovações implementadas, o Android traz também
suporte nativo para o SQLite.
Usar o banco de dados SQLite no Android não requer nenhuma instalação de banco
de dados ou de administração. É necessário apenas definir as declarações SQL
para criar e atualizar o banco de dados. Depois disso ele é automaticamente
gerenciado por você pela plataforma Android.
1.7.D Características da biblioteca SQLite
Gonçalves (2014) diz que a biblioteca SQLite possui várias características: O
Software é gratuito, multiplataforma e desenvolvido em C padrão (ANSI). Todo o
banco de dados é guardado localmente (junto com a aplicação) em um único
arquivo, que possui a extensão “*.db” . A base de dados pode ter tamanho superior a
2 terabytes.
Ele ainda informa que o SQLite não necessita de instalação, configuração ou de
administração. Suporta também a maior parte do SQL 92, o uso de transações
(COMMIT / ROLLBACK). Seu uso é muito fácil se você estiver programando em
PHP 5 ou C / C++, porém não oferece integridade referencial (chaves estrangeiras).
Suas principais aplicações são: programas locais, sites web, substituto de banco de
dados em aulas ou demonstrações, substitui arquivo texto ou arquivos proprietários.
Não possui dependências externas de outras bibliotecas.
1.7.E Exemplos de uso do SQLite
O autor Gonçalves (2014) explica que o uso do SQLite é recomendado em sites com
menos de cem mil requisições por dia, dispositivos e sistemas embarcados,
aplicações desktop, ferramentas estatísticas e de análise, aprendizado de banco de
dados e também em implementação de novas extensões de SQL.
Seu uso não é recomendado em aplicações com muitos acessos, grande quantidade
de dados (talvez maior que algumas dúzias de gigabytes), sistemas com grande
concorrência e em aplicações cliente/servidor.
Algumas empresas e aplicações famosas que usam o SQLite são: Adobe, Apple
iPhone, iPod Touch e iPad), Dropbox, Firefox, Google (Chrome e Android),
Microsoft, Skype.
1.8 TRANSMISSÃO DE DADOS
Segundo Pirotti e Zuccolotto (2009), o padrão Global System for Mobile
Communication - GSM, que disponibiliza o serviço GPRS como alternativa para
transmissão 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 móvel, este tipo de transmissão tende a ser
cada vez mais utilizada.
O padrão de telefonia celular GSM era chamado de Groupe Spéciale Móbile e teve
seu início na Europa, década de 80. O objetivo era ter um novo padrão que
substituísse padrões usados na época. Lançado 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 implantações do padrão GSM.
A rede de telefonia celular é composta de diversos dispositivos interligados através
de canais de comunicação. Cada dispositivo é responsável por determinadas
funções como enviar um sinal de Rádio Frequência - RF até um telefone celular ou
buscar em uma base de dados informações sobre um usuário.
A arquitetura da rede GSM se subdivide em três subsistemas: Base Station
Subsystem - BSS, que é visto como o sistema da estação rádio base; Network and
Switching Subsystem - NSS, responsável pelo gerenciamento e comutação da rede;
Operations and Maintenance System - OMS que é o subsistema de suporte e
operação.
A comunicação com a rede GSM é feita através de uma estação móvel ou Mobile
station - MS, podendo ser atualmente um celular ou equipamento que suporte a
utilização da rede.
1.8.A Redes GPRS
Com a popularização da telefonia celular, novas necessidades começaram a surgir
como o tráfego de dados através da rede da telefonia celular. A rede ou serviço
GPRS foi implementada para suportar o tráfego de dados utilizando recursos da
rede GSM. Com um acréscimo de equipamentos na rede GSM, o GPRS, além de
permitir a troca de dados e acesso à internet, permitiu que as operadoras de
telefonia móvel utilizassem esta rede para testar e implementar novos serviços, que
seriam aproveitados na implementação da rede 3G (SVERZUT, 2005).
As principais modificações acrescidas na rede GSM foram a unidade de controle de
pacote, que provê as interfaces lógica e física para o tráfego 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 têm como principais funções a manutenção das informações de
roteamento, mapeamento de endereços de rede e assinantes e mapeamento de
classes de qualidade de serviços. A Figura 1 demonstra a rede GSM acrescida da
rede GPRS.
Figura 1 – Rede GSM acrescida da rede GPRSFonte: Pirotti e Zuccolotto (2009, p. 84).
Os terminais GPRS são equipamentos capazes de utilizar os serviços da rede
GPRS. Eles possuem o hardware para a comunicação de rádio frequência, além de
suporte à rede GSM.
Uma das características da rede GPRS é que a cobrança deste serviço é feita por
pacotes de dados transmitidos e não por tempo de conexão e seu custo varia de
acordo com a operadora de telefonia utilizada e o plano escolhido.
3 DESENVOLVIMENTO DO SISTEMA
Neste capitulo serão informadas características técnicas do sistema proposto, suas
descrições, apresentação dos requisitos funcionais e não 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 compreensão das etapas. A sigla Praxis
significa processo para aplicativos extensíveis interativos, refletindo uma ênfase no
desenvolvimento de aplicativos gráficos 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,
códigos, testes, planos e relatórios.
2.1 LEVANTAMENTO DE INFORMAÇÕES
Este trabalho contempla aspectos que visam melhorar o planejamento e
gerenciamento do transporte público através de uma ferramenta móvel de
rastreamento e monitorização de ônibus que utilize as tecnologias GPS e GPRS.
O sistema, inicialmente, tem funcionalidades de efetuar a localização de ônibus
durante seu trajeto. Ele utiliza a tecnologia GPS para localização de cada veículo e a
tecnologia GPRS para o envio de dados. O GPS é instalado através de um aparelho
que suporta as tecnologias GPS, GPRS. Este aparelho (dispositivo com sistema
Android como S.O.) permite o envio da localização, dando como resposta a sua
latitude, longitude e código do veículo. O sistema de envio é feito através do uso da
tecnologia GPRS que utiliza um SIM Card para se conectar à internet. Tais
funcionalidades são programadas em Java para plataforma Android. Conforme cada
aparelho ligado ao ônibus envia a sua localização de minuto a minuto ao servidor, o
sistema recebe esses dados e atualiza seu banco sempre que novas informações
chegam. O sistema montará um mapa indicando a localização de cada veículo em
seu trajeto, mostrando inclusive uma média de tempo para sua chegada ao ponto
que o usuário se encontra. Também é possível ao administrador do sistema
consultar informações sobre o cadastro de ônibus como por exemplo tempo médio
de atraso de casa veículo.
Com este sistema se espera uma melhora no planejamento e conforto do usuário e
um aumento na utilização do transporte público.
2.2 ESPECIFICAÇÃO
A seguir serão representados os Requisitos Funcionais - REQF, os Não 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 módulo de
recebimento de dados Android (celular ou tablet do usuário).
2.2.1 Requisitos Funcionais
Requisitos Funcionais Principais Caso de Uso
REQF01: A aplicação permite ao
usuário, visualizar todos os veículos
cadastrados no servidor.
CU01
REQF02: A aplicação permite ao
usuário verificar qual ponto de ônibus
mais próximo ao seu local atual para
determinado itinerário.
CU02
REQF03: A aplicação informa ao
usuário quando o veículo se encontra
nas proximidades do ponto escolhido
para embarque.
CU03
REQF04: A aplicação permite que o
usuário escolha qual veículo quer
rastrear.
CU04
REQF05: A aplicação requer permissão
do usuário para acessar dados do GPS
do aparelho.
CU05
REQF06: A aplicação permite receber a
localização do ônibus através de
sistema GPRS.
CU06
REQF07: A aplicação permite
rastreamento, mesmo se usuário não
possuir GPS próprio, porém CU2, CU3
ficam desativados.
CU07
REQF08: A aplicação utiliza API Google
Maps para mostrar dados no mapa
CU08
Figura 2 Requisitos funcionais principais.Fonte: PRÓPRIA. 2014
2.2.2 Requisitos Não Funcionais
Requisitos Não Funcionais (REQNF)
REQNF01: A aplicação deve utilizar a tecnologia GPS.
REQNF02: A aplicação deve utilizar tecnologia GPRS / GSM
REQNF03: A aplicação deve utilizar a linguagem Android Java
Figura 3 Requisitos Não funcionais.Fonte: PRÓPRIA. 2014
2.2.3 Diagrama de Casos de Uso
Na Figura 4, apresenta-se o diagrama de caso de uso de Rastreamento onde o ator
usuário possui o módulo Android de recepção de dados diretamente do servidor que,
por sua vez, é alimentado pelos aparelhos instalados em cada veículo. O usuário, ao
ter acesso à internet, verifica uma lista de ônibus disponíveis para o rastreamento e,
ao selecionar algum, é requerido o acesso ao GPS interno do seu aparelho celular.
Caso o usuário dê permissão, outras funções são mostradas. Caso contrário,
apenas poderá ver a posição do veículo e não terá acesso à funções de distância,
tempo médio de espera ou ponto de ônibus mais próximo à sua posição em relação
à do veículo.
Figura 4 – Caso de uso de rastreamentoFonte: PRÓPRIA. 2014
2.2.4 Diagrama de Atividades
A figura 5 contém o diagrama de atividades que representa o processo de
atualização da localização do veículo selecionado. O processo se inicia por obter e
enviar a localização do ônibus pelo aparelho GPS, através do GPRS até o servidor.
O módulo usuário então 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 usuário possui GPS, funções que envolvem sua atual posição são
desbloqueadas.
Figura 5 – Diagrama de atividades de atualização de posiçãoFonte: PRÓPRIA. 2014
2.2.5 Modelo Entidade Relacionamento
A Figura 6 apresenta o modelo entidade-relacionamento no qual estão as tabelas
que são persistentes no banco de dados utilizado pela aplicação módulo cliente para
receber os dados e pelo módulo ônibus para gravar os dados.
Figura 6 – Modelo de entidade e relacionamentoFonte: PRÓPRIA. 2014
A seguir é apresentada uma breve descrição das entidades para o desenvolvimento
da aplicação:
a) Ônibus: entidade responsável por armazenar o código do veículo, bem como
a rota que ele faz diariamente, incluindo as latitudes e longitudes que são
atualizadas de minuto a minuto pelo módulo ônibus através de das
tecnologias GPRS/GSM e GPS. Um ônibus possui apenas uma rota.
b) Rotas: essa entidade armazena um código que serve de parâmetro para a
entidade ônibus na coluna rotas. Ela armazena ainda um índice para os
pontos de ônibus distribuídos em seu percurso. A entidade pode possuir
vários ou, no mínimo, um veículo que a perfaz e ainda possuir vários ou, no
mínimo, um ponto de ônibus em seu trajeto.
c) Pontos: entidade responsável pelo armazenamento das coordenadas
geográficas dos pontos de ônibus das rotas. Ela pode ter muitas ou, no
mínimo, uma rota.
2.3 IMPLEMENTAÇÃO
A seguir serão mostradas as técnicas e ferramentas utilizadas e a operacionalidade
da implementação.
2.3.1 Técnicas e ferramentas utilizadas
Para o desenvolvimento do sistema foi utilizada a ferramenta Eclipse adaptada com
Android Developer Tools -ADT em sua versão: v22.3.0-887826. O Eclipse
possibilitou codificar os módulos ônibus e usuário dando suporte a erros e sugestões
de solução na linguagem de programação. A figura 7 demonstra essa ferramenta.
Figura 7 – Tela da ferramenta Eclipse ADTFonte: PRÓPRIA. 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 PHPMyAdminFonte: PRÓPRIA. 2014
Para implementar o WebServer, que contém o banco de dados MySql, foi feito um
plano de hospedagem na empresa UolHost com servidor Linux, onde foram
desenvolvidas páginas Hypertext Preprocessor - PHP para receber e transmitir
informações do banco aos módulos ônibus e usuário. Estes módulos apenas
conseguem se comunicar com o banco através de retornos das páginas php, pois
Android até o momento da elaboração deste trabalho não suporta conexão com
outros bancos nativamente que não seja o SQLite. Devido a essa limitação optou-se
por esse tipo de transação de dados entre os módulos ônibus, usuário e o servidor
(GOOGLE, 2014).
Através do acesso e passagem de parâmetros por uma Uniform Resource Locator -
URL nesse servidor, o módulo ônibus informa seu código, latitude e longitudes
correntes. O servidor retorna ao módulo uma resposta string positiva (caso a
inserção ao banco tenha sido realizada com sucesso) ou negativa (caso contrário).
Na figura 9 é mostrado um trecho do código PHP do servidor que é responsável pelo
cadastramento das coordenadas.
Figura 9 – Trecho de código PHP. Cadastro de CoordenadasFonte: PRÓPRIA. 2014
O aparelho utilizado para enviar os dados referentes ao veículo foi um celular da
marca Samsung modelo Galaxy Ace modelo S5830 com sistema Android Froyo
versão 2.3.6 que possui sistema GPS integrado, além de tecnologia GPRS que é
requisito para a implementação do sistema. Neste aparelho foi instalado o módulo
ônibus que, como já mencionado, é responsável pelo envio de coordenadas
geográficas para um webser através da passagem de paramentos ao acessar
determinada url presente no servidor.
O módulo usuário foi instalado em um tablet da marca Motorola modelo Xoom II
Media Edition MZ608 com sistema Android versão 4.0.4 que também possui serviço
embutido de GPS, GPRS e Wifi. As APIs do Google Maps, elaboradas para esta
plataforma, também foram utilizadas para desenhar na tela o local, em tempo real,
onde o veículo se encontra, no mapa.
2.4 OPERACIONALIDADE DA IMPLEMENTAÇÃO
Na tela inicial exibida pela aplicação módulo usuário são exibidos 4 botões, dos
quais nos atentaremos a falar sobre as principais funcionalidades. Logo destaca-se
o botão Buscar Ônibus. A figura 10 demostra essa tela.
Figura 10 – Tela inicial módulo usuário.Fonte: PRÓPRIA. 2014
Ao selecionar o botão Buscar Ônibus a aplicação verifica se o usuário possui acesso
à internet e, caso retorne verdade, será redirecionado para uma segunda tela onde,
através do acesso a uma url é retornada pelo servidor a lista de veículos
cadastrados. Na figura 11 podemos ver um trecho do código Java, responsável pela
requisição, junto ao servidor, de todos os ônibus cadastrados.
Figura 11 – Trecho de código que faz requisição ao servidorFonte: PRÓPRIA. 2014
Como se pode observar, é passado um paramento string contendo a url, que retorna
uma lista com os códigos dos ônibus cadastrados para uma classe chamada
HttpGetAsync. Esta classe estende outra classe denominada AsyncTask que
contém métodos e rotinas que efetuam todo o processo em segundo plano,
prevenindo o travamento de tela do telefone, o que causa desconforto ao usuário
tendo em vista que, quando se trata de requisições HTTP, muitos problemas podem
ocorrer como demora na resposta do servidor, serviço indisponível, etc. Ao receber a
resposta do servidor ela deve ser tratada pois foi incluída nela algumas estruturas
para divisão 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
necessário diante da incapacidade do Android promover consultas a bancos remotos
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 código mostrou
em um laço de repetição. Com a lista pronta podemos preencher uma tabela visível
ao usuário denominada ListView e adicionamos um evento OnToutch nesta lista que
dispara um método onde serão requisitadas as coordenadas geográficas do veículo
selecionado e, enfim, mostrar na tela, juntamente com API do Google Maps, um
ícone caracterizando a real posição daquele ônibus no intervalo de tempo de 1
minuto. A figura 12 demonstra a tela de escolha do veículo.
Figura 12 – Tela de escolha do veículo a ser rastreadoFonte: PRÓPRIA. 2014
Ao escolher o veículo desejado por toque na lista ou por busca no campo indicado
acima da lista, um método é 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
é possível desenhar um ícone na exata posição geográfica que será retornada por
essa nova consulta ao servidor. A seguir, na figura 13, um trecho do código
demostra como é feito o desenho deste ícone a partir das coordenadas retornadas.
Figura 13 – Código que busca as coordenadas e desenha na tela.Fonte: PRÓPRIA. 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
câmera para sempre acompanhar o veículo a medida que se move pela sua rota. Foi
usado uma thread para executar essas funções que, de 5 em 5 segundos, atualiza
as informações do veículo caso essas estiverem sendo atualizadas naquele
momento. Em seguida a figura 14 é demonstrada tela que mostra o ônibus
desenhado no mapa.
Figura 14 – Demonstração de desenho do veículo no mapaFonte: PRÓPRIA. 2014
Caso o módulo usuário possua sensor GPS integrado ao seu aparelho celular
Android, além de visualizar o ônibus no mapa, também é demonstrada a sua
posição. Na figura 14 isso é demostrado com o pequeno ícone próximo ao canto
inferior esquerdo (círculo em azul). Com base nessa informação, implementou-se
outra função que detecta quando o veículo desejado estra em um raio próximo ao
raio em que se encontra o usuário, alertando-o sobre a aproximação do ônibus
selecionado. A figura 15 exemplifica essa situação na qual simulamos um veículo
apenas para demostrar as possibilidades de implementação que essa API nos
proporciona. O procedimento é funcional e aqui iremos simular uma distância de 100
metros entre o usuário e o veículo.
Figura 15 – Demonstração de alerta de aproximação de veículo.Fonte: PRÓPRIA. 2014
Assim que o raio de 100 metros do ponto de origem do ícone “ÔnibusSimulado”
entrou em contato com o ícone que representa a posição atual do usuário, um alerta
foi disparado, informando que o veículo simulado está próximo. O raio aqui foi
definido em 100 metros mas o usuário pode definir sob medida, dependendo de
suas necessidades, como por exemplo 1 quilômetro ou 100 quilômetros. Essa
técnica foi desenvolvida de modo que funcione mesmo que o aparelho esteja em
modo de espera, livrando o usuário de verificar constantemente seu celular para
conhecer a posição do veículo esperado. Para avisá-lo, foram implementados avisos
sonoros e vibratórios, além da total execução, em segundo plano, por meio de
threads e services.
4 CONSIDERAÇÕES FINAIS
O aumento significativo da população fomenta problemas conhecidos atualmente,
tais como congestionamentos de veículo, falta de infraestrutura apropriada ao
tráfego constante, além dos atrasos nos serviços de transporte público. 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 tecnológica e
bibliográfica para a elaboração de um sistema para plataformas móveis que seja
capaz de monitorar, em tempo real, a posição geográfica dos ônibus do transporte
coletivo. Com isso, tenta incentivar, de forma indireta, o uso de ônibus para a
locomoção em cidades de médio porte pois, para tanto, deve-se melhorar a
experiência dos usuários neste sistema de locomoção.
Para cumprir este objetivo, são utilizados sistemas GPS, GPRS e tablets ou
smarthphones, em que, através do GPS, um banco de dados é povoado
constantemente com as posições geográficas de cada veículo em transito. Esse
povoamento é feito utilizando-se a tecnologia GPRS, que faz a comunicação entre
os sistemas instalados nos ônibus e o servidor de banco que, por sua vez,
disponibiliza os dados recebidos para os dispositivos móveis dos usuários que,
através da API do Google Maps, visualizam em tempo real a posição dos veículos e
o tempo médio para sua chegada até determinado ponto.
Os estudos mostraram que realmente é possível o desenvolvimento de sistema de
monitoração e, ainda, a um baixo custo sendo que, para sua implementação, não
seria necessária a distribuição de redes ou sensores por toda a cidade, tendo em
vista que, apenas os veículos a serem monitorados é que devem conter um módulo
que resgate sua posição GPS e transmita via GPRS, tecnologia que já está bem
disseminada em um grande número de cidades.
A documentação das APIs do Google Maps e Android disponibilizada pelo Google
para desenvolvedores oferece grande facilidade para implementação da ferramenta,
ainda que em inglês, sempre está atualizada e serve de suporte aos programadores.
Utilizando as tecnologias atuais de GPRS e com o GPS notou-se que é possível
manter um banco de dados atualizado sobre as reais posições dos veículos nas
cidades. Porém, na cidade onde testamos a aplicação (Montes Claros-MG), a
performance da rede GSM da operadora contratada mostrou-se ineficaz com vários
pontos sem acesso à rede, o que culminou na não atualização dos dados. Porém,
com uma simples substituição de operadora o problema foi sanado.
Os servidores que prestaram serviços para a aplicação em vários momentos
demonstraram atrasos para exibição dos dados e, com relação a este quesito,
recomenda-se uma pesquisa a fim de determinar quais os servidores mais eficientes
para a realização deste tráfego de dados, uma vez que, para este trabalho não
foram utilizados serviços mais dedicados. Recomenda-se ainda a verificação da
possibilidade de implementação deste trabalho não apenas para plataformas
móveis, mas também a construção de um website com as mesmas ou até mais
funcionalidades do módulo usuário, descrito no capítulo anterior, tendo em vista que
ainda existe uma grande parcela de potenciais clientes para o sistema que ainda
não possui computadores móveis.
Do ponto de vista acadêmico, esse trabalho se mostrou de suma importância para a
formação do autor, tanto pelo lado do conhecimento quanto profissional, pois a
programação para plataformas móveis está em ascensão e a junção das tecnologias
de sensores eletrônicos como sensor GPS, sensor de gases, luminosidade, etc.,
com essas plataformas constitui um grande leque de opções para o
desenvolvimento de outros projetos ou trabalhos científicos com os mais variados
focos, sejam eles de cunho ambiental, acadêmico, econômico etc.
REFERÊNCIAS BIBLIOGRÁFICAS
ABC71, Perspectiva (Org.). Da guerra ao cotidiano: conheça a história do GPS. Disponível 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 JÚNIOR,; SEGUNDO, Alonso. Histórico dos Bancos de Dados. Disponível em: <http://disciplinas.dcc.ufba.br/svn/MATA60/tarefa1/historico/historico.pdf?revision=21> Acesso em: 20 abr. 2014.
FILHO, Wilson de Pádua Paula. Engenharia de Software: Fundamentos, Métodos e Padrões. 2 Ed. Rio de Janeiro: LTC, 2003.
GONÇALVES, Eduardo Corrêa. SQLite, Muito Prazer! Disponível em: <http://www.devmedia.com.br/SQLite-Muito-Prazer/7100>. Acesso em: 08 abr. 2014.
GOOGLE INC.. What is Android? Disponível em: <http://developer.android.com/guide/basics/what-is-android.html>. Acesso em: 08 abr. 2014.
GOOGLE INC.. Android 4.1 – Jelly Bean. Disponível em: <http://www.android.com/about/jelly-bean>. Acesso em: 18 abr. 2014.
GIL, Antônio Carlos. Como elaborar projetos de pesquisa. 4. ed. São Paulo: Atlas, 2008
MONICO, J.F.G. Posicionamento Pelo GNSS: Descrição, Fundamentos e Aplicações (Unesp, São Paulo, 2008).
MORIMOTO, Carlos E.. Smartphones: Guia Pratico. São Paulo: Gdh Press e Sul Editores, 2009. 432 p.
ORACLE. The History of Java Technology. Disponível em: <http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html>. Acesso em: 10 abr. 2014. ORACLE. About the Java Technology. Disponível em: <http://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html>. Acesso em: 10 abr. 2014. ORACLE. The Java Virtual Machine. Disponível em: <http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-1.html>. Acesso em: 10 abr. 2014.
PIKE, John E. (Ed.). Navigation Technology Satellite. Disponível em: <http://www.globalsecurity.org/space/systems/timation.htm>. Acesso em: 11 abr. 2014.
PIROTTI, Rodolfo, P.; ZUCCOLOTTO, Marcos. Transmissão de dados através da telefonia celular: arquitetura das redes GSM e GPRS. Revista Liberato. v.10. n.13. p.81-89. Novo Hamburgo. jun. 2009. Disponível em: <http://www.liberato.com.br/upload/arquivos/0116070910470919.pdf>. Acesso em: 17 abr. 2014.
PRADO, Jean. A História do Android. Disponível 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. Disponível em: <http://www.navcenter.org/gps/geninfo/default.htm >. Acesso em: 15 Abr 2014.
TAURION, CEZAR. Tecnologia, uma opção inteligente para melhorar a vida urbana. Disponível em: <http://www.portal2014.org.br >. Acesso em: 15 Nov 2013.
VORGEL, Lars. Android SQLite Database and ContentProvider – Tutorial. Disponível em <http://www.vogella.com/articles/AndroidSQLite/article.httml>. Acesso em: 18 Abr. 2014.
SVERZUT, José Umberto. Rede GSM, GPRS, EDGE e UMTS. São Paulo: Editora Afiliada, 2005.
top related