SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
SISTEMA DE RASTREAMENTO(12 / 2013)
Artigo
.
NANI, Matheus Ernesto. Sistemas de Informação (Unianchieta). Analista de
Sistemas Araymond Brasil, Rua Comendador João Lucas, 555, Distrito Industrial,
Vinhedo – SP, CEP 13280-000, 0xx19 3836-6900, matheus.nani@hotmail.com
TOFANINI, Cesar Tegani. Especialista em Formação em Educação a Distância
pela Universidade Paulista - UNIP (2011). Graduado em Engenharia de Computação
pela Universidade São Francisco (2004). Professor do Centro Universitário Padre
Anchieta. Campus Prof. Pedro C. Fornari. Av. Dr. Adoniro Ladeira, 94, Jundiaí – SP,
CEP 13210-800, 0xx11 4588-4445, cesartofanini@gmail.com.
2
SISTEMA DE RASTREAMENTO
Matheus Ernesto Nani1
César TeganiTofanini 2
RESUMO
Este trabalho pretende demonstrar a utilização de um sistema de rastreamento, que
pode ser utilizado na fase de desenvolvimento de produtos de localização geográfica.
A análise desse sistema permite apresentar vantagens e desvantagens do produto, e
também auxiliar a equipe de desenvolvimento na melhoria de novas funcionalidades e
ajustes finos no funcionamento do equipamento.
Palavras-Chave: localização geográfica, desenvolvimento, sistema de rastreamento.
ABSTRACT
This work aims to demonstrate the use of a tracking system that can be used during
product development to geographic location. The analysis of this system allows us to present
the advantages and disadvantages of the product, and assist the development team in
enhancing new features and fine-tuning the operation of the equipment.
Keywords: geographical location, development, tracking system.
1 Sistemas de Informação (UNIANCHIETA). Analista de Sistemas A.Raymond Brasil.
2 Especialista em formação em educação à distância (UNIP) e Engenheiro da Computação
(USF). Professor de cursos de Graduação do Centro Universitário Padre Anchieta.
3
INTRODUÇÃO
Um sistema de rastreamento é a forma mais fácil e segura de monitorar frotas,
cargas e até mesmo veículos particulares que irão percorrer longos caminhos,
investir em segurança nunca é demais.
Como a Internet, o GPS é um elemento essencial da infraestrutura global de
informação. A natureza livre, aberta e segura do GPS levou ao desenvolvimento de
centenas de aplicações que afetam todos os aspectos da vida moderna. A
tecnologia GPS agora está em tudo, desde telefones celulares e relógios de pulso
até em tratores, contêineres e caixas eletrônicos(U.S Government information about
GPS, 2013).
O GPS aumenta a produtividade através de uma ampla faixa de economia,
para incluir a agricultura, construção, mineração, topografia, entrega de pacotes e
gerenciamento logístico das cadeias de suprimentos. Grandes redes de
comunicação, sistemas bancários, mercados financeiros e redes de energia
dependem fortemente do GPS para sincronização de tempo preciso. Alguns
sistemas sem fio não podem funcionar sem ele (U.S Government information about
GPS, 2013).
O GPS salva vidas pela prevenção de acidentes de transportes, auxiliando os
esforços de busca e salvamento, e acelerar a entrega de serviços de emergência e
socorro. O GPS visa também avanços científicos, como previsão do tempo,
monitoramento de terremotos, e proteção ambiental. Algumas das outras aplicações
do sistema GPS são: agricultura, aviação, marinha, segurança pública, transportes
sobre trilhos, estradas e rodovias, pesquisas espaciais, mapeamentos e localização.
4
Esse trabalho consiste no desenvolvimento de um sistema de rastreamento,
cujo principal objetivo é proporcionar a equipe de desenvolvimento e a futuros
compradores uma maneira simples de verificar o funcionamento do aparelho em
desenvolvimento. Verificar a velocidade de envio e resposta de mensagens,
precisão de posicionamento, velocidade de conexão com o servidor e tempo de
duração da bateria de backup ( Fonte de alimentação externa ao aparelho rastreador
que em caso de falha de energia é acionada para que a peça consiga se conectar a
rede).
Aqui está apenas uma pequena amostra de aplicações GPS existente. Novos
usos de GPS são inventados todos os dias e são limitados apenas pela imaginação
humana (U.S Government information about GPS, 2013) .
GPS (Global Positioning System)
O Sistema de Posicionamento Global (GPS) é um utilitário de propriedade
americana que fornece aos usuários os serviços de posicionamento, navegação e
tempo. Este sistema é composto por três segmentos: O segmento espacial, o
segmento de controle e o segmento do utilizador. A Força Aérea dos EUA
desenvolve, mantém e opera nos segmentos de espaço e controle (U.S Government
information about GPS, 2013).
O segmento espacial consiste de uma constelação de satélites que transmitem
sinais de rádio para os utilizadores. A Força Aérea gere a constelação para garantir
a disponibilidade de pelo menos 24 satélites GPS, 95% do tempo. Nos últimos anos,
a Força Aérea tem controlado 31 satélites GPS operacionais, além de satélites
desativados 3-4 (“resíduos”) que podem ser reativados, se necessário (U.S
Government information about GPS, 2013).
5
O segmento de controle GPS é constituído por uma rede global de instalações
terrestres que rastreiam os satélites GPS, para monitorar suas transmissões, realizar
análises e enviar comandos de dados para a constelação. O segmento atual de
controle operacional inclui uma instalação de controle mestre, uma instalação de
controle mestre alternativa, 12 comandos de antenas de controle e 16 locais de
monitoramento. Os locais das instalações estão mostrados no mapa abaixo (U.S
Government information about GPS, 2013).
Figura 1 – Mapa de controle GPS.(U.S Government Information, 2013)
Em cada ponto da Terra estão sempre visíveis quatro satélites, e com os
diferentes sinais desses quatro satélites o receptor GPS calcula a latitude, longitude
e altitude do lugar onde se encontra (Dilão, 2005).
6
Sistemas de Coordenadas Geográficas
Existem pelo menos quatro modos de designar uma localização exata para
qualquer ponto do globo terrestre sendo eles:
 Graus - Minutos – Segundos
 Neste sistema, cada grau é dividido em 60 minutos, que por sua vez se
subdividem, cada um, em 60 segundos. A partir daí, os segundos podem
ser divididos em frações cada vez menores.
 Grau - Minutos Decimais
Neste sistema, cada grau é dividido em 60 minutos, que por sua vez são
divididos decimalmente. O Aparelho em questão utiliza as coordenadas em Grau,
Minutos decimais sendo: 30º01,992’S e 51º14,117’W.
 Grau – Decimal
Neste sistema, cada grau é dividido em frações decimais. A forma de
nomeação difere um pouco dos dois primeiros sistemas: a latitude recebe a
abreviatura lat e a longitude, lon e existem valores positivos e negativos conforme
figura a baixo: ( Corrêa, 2009).
7
Figura 2 - Latitudes e Longitudes em cada hemisfério (Wikipédia, 2012).
Tecnologia
A aplicação funciona com base nas informações recebidas de um equipamento
rastreador que trabalha com tecnologia GPS, e transmissão de dados GPRS/GSM.
Para tal foi criado um protocolo para estabelecer de forma padronizada a
comunicação entre servidor e cliente, onde cada lado sabe o que pode ou não ser
enviado e recebido.
O GSM (Global System for Mobile Communications) foi inicialmente
desenvolvido para integrar o sistema de comunicação móvel da Europa. A promessa
era prover mais que um sistema integrado de comunicações. Ele traria uma série de
serviços utilizando Redes Digitais de Serviços Integrados (RDSI ou ISDN –
Integrated Services Digital Network)
O GPRS (General packet radio service) é uma tecnologia que aumenta as
taxas de transferência de dados nas redes GSM existentes. Essa permite o
transporte de dados por pacotes. Sendo o GPRS um serviço “sempre ativo” por ter
seus pacotes trafegando entre sua rede e redes TCP/IP, ele dá as operadoras a
possibilidade de oferecer a seus clientes um excelente acesso a Internet a um custo
plausível, e ainda tarifar pela quantidade de dados transferidos e não somente pelo
tempo de conexão ( 4g Americas, 2007, Magalhães, 2005).
DESENVOLVIMENTO SERVIDOR
O sistema desenvolvido para a empresa trabalha com comunicação socket,
que funciona como um ponto de conexão entre a camada de aplicação e a de
transporte TCP ( TransmissionControlProtocol ) ou UDP ( UserDatagramProtocol ).
8
O servidor socket é responsável por aceitar e gerenciar todas as Threads de
conexões, cada nova conexão que é aceita, é armazenada em uma lista que será
utilizada posteriormente para o envio de comandos, tratamento do protocolo e
também para encerar cada um delas. Ele implementa de forma parcial o modelo
OSI-ISO e sua principal característica é dividir as funcionalidades (que ele chama de
serviços) necessárias á comunicação em camadas, dividindo assim as
responsabilidades e permitindo que uma certa camada possa ter diferentes
implementações (com diferentes tecnologias), mas ainda assim mantendo a sua
compatibilidade(NUMES, 2001). A linguagem Java oferece ambas as camadas de
transporte conhecidas como modo orientado à conexão para TCP e modo orientado
a datagrama para UDP, os dois modos funcionam sobre o protocolo IP (Internet
Protocol). O funcionamento do servidor segue conforme APÊNDICE A.
 JAVA
Linguagem de programação multiplataformas que utiliza o conceito de máquina
virtual, onde existe, entre o sistema operacional e a aplicação, uma camada extra
responsável por “traduzir” – mas não apenas isso – o que sua aplicação deseja fazer
para as respectivas chamadas do sistema operacional. Os programas Java podem
ser executados em qualquer sistema operacional, desde que a Java Virtual Machine
esteja instalada.
O servidor foi desenvolvido em cima do modo orientado a conexões por
questão de segurança, que apesar de ser mais lento proporciona uma confirmação
fim-a-fim essencial a este tipo de aplicação, ou seja, a camada de transporte não se
comunica com máquinas (aparelhos) intermediárias na rede.
9
Conforme figura abaixo ambos os tipos de sockets possuem vantagens e
desvantagens,
Figura 3 –Vantagens e desvantagens sockets (Nunes, 2012).
 CONEXÃO
O processo de comunicação no modo orientado a conexões funciona da
seguinte forma: O servidor socket é inicializado com uma determinada porta, e fica
“escutando”, esperando por um cliente através do método accept da ServerSocket.
O cliente por sua vez deve ser configurado com a mesma porta que o servidor, para
saber com quem ele deve se comunicar e fazer uma requisição de conexão,
conforme a imagem:
Figura 4 - Servidor socket aguardando conexão (Nunes, 2012).
10
1. Criando uma conexão socket
O servidor tem o comportamento de ficar em um loop aguardando novas
conexões, e gerando novos sockets para atender as solicitações dos clientes.
Também é preciso que o servidor seja capaz de receber inúmeras conexões
simultâneas, um serviço para cada cliente conectado. Por isso a utilização de
Threads é imprescindível. A aplicação cria um Thread para cada nova conexão,
assim tornando possível o recebimento e envio para diversos aparelhos.
Para que seja possível executar inúmeras tarefas “simultâneas” em um único
processador, entra em cena o escalonador de Threads, que é o responsável por
escolher qual a próxima Thread a ser executada, e fazer a troca de contexto. Ele
primeiro salva o estado da execução da Thread atual para depois poder retornar a
execução da mesma. Então ele restaura o estado da Thread que vai ser executada
e faz com que o processador continue a execução desta. A troca de contexto é
justamente as operações de salvar o contexto da Thread atual e restaurar o da
Thread que vai ser executada em seguida. O escalonador pega todas as Threads
// CRIA UM SERVIDOR SOCKET
ServerSocket servidor = null;
Socket conexão = null;
servidor = new ServerSocket(porta);
while (existirConexao) {
// ACEITA CONEXÃO REQUISITADA PELO CLIENTE.
conexao = servidor.accept();
}
}
}
11
que precisam ser executadas e faz com que o processador fique alternando a
execução de cada uma delas.
As Threads são processos paralelos que são executados aos poucos, uma de
cada vez, o processamento é tão rápido que as aplicações parecem ser executadas
juntas.
 RECEBENDO MENSAGENS
Se nem um problema ocorrer, o servidor aceita a conexão gerando um socket
em uma porta qualquer do lado servidor, criando assim um canal de conexão entre o
servidor e o cliente, conforme imagem:
Figura 5 – Fluxo servidor socket conexão aceita (Nunes, 2012).
Para que seja capaz a captura dos dados do cliente, é preciso criar uma
Stream de dados, que pode ser definida como um caminho lógico representando o
fluxo de dados entre a fonte e o destino. Para obter informações, uma aplicação
abre uma Stream e lê sequencialmente (Stream de leitura de dados). As classes
java.io.InputStream e java.io.OutputStream são as responsáveis pela criação de
Stream de escrita e leitura, respectivamente.
12
Sempre que um socket é criado já existem as streams associadas a ele. E para
obter a referência a elas devemos utilizar os métodos getOutputStream() e
getInputStream() (TRINDADE, 2003, CAELUM, 2013, GOMES,2004 ).
Existem diversas streams tais como stream de Objetos e stream de arquivos
nesse caso o servidor utiliza a stream de bytes.
2. Criando uma stream de leitura de dados.
 ENVIO DE MENSAGENS
Da mesma forma que precisamos criar uma stream de entrada de dados
(leitura) é necessário criar uma stream de saída de dados (escrita), para enviar
informações à aplicação abre uma stream para um destino e escreve
sequencialmente.
Entretanto existe uma particularidade no envio de mensagens, onde para
escrever uma String necessariamente precisamos converter a String que desejamos
em um Array de bytes.
//CRIA UMA STREAM DE ENTRADA DE DADOS
entrada = new Scanner(cliente.getInputStream());
//ENQUANTO HOUVER INFORMAÇÃO LÊ
while (entrada.hasNext()) {
msgRecebida = entrada.nextLine();
System.out.println(msgRecebida);
}
}
}
13
Felizmente na API Java existem métodos para realizar essas transformações.
Figura 6 – Envio de mensagens com socket TCP.
PROTOCOLO
É definido como um acordo que específica o formato e o significado das
mensagens a trocar numa rede. De maneira simples um protocolo pode ser definido
como conjunto de regras-padrão que caracterizam o formato a sintaxe, semântica e
sincronização da comunicação. Os protocolos podem ser implementados pelo
hardware, software ou por combinação dos dois (Sérgio, 2004, Infopédia 2010).
O sistema trabalha com o protocolo desenvolvido pela empresa Cliptech a qual
solicitou o desenvolvimento do sistema em questão, e contém mais de cinquenta
14
mensagens distintas. O servidor consiste em receber todos os dados em uma string
tais como, identificação do aparelho, hora de envio, latitude, longitude e checksum
(consiste na transmissão de todas as palavras juntamente com o resultado da soma
binária. No receptor (servidor), as palavras são novamente somadas e comparadas
com o checksum recebido. Se qualquer um dos dados transmitidos, incluindo o
checksum, sofrerem algum erro, a soma do novo checksum com o checksum
recebido é 1.) Entre outras informações. Um exemplo de mensagens recebidas do
rastreador é: Msg: SRMA,Dt:01234567,OK,07,OF,End.
Para que fosse possível o tratamento de todas as mensagens disponíveis, foi
desenvolvida a classe Protocolo.java que é responsável por tratar todas as
mensagens. Existem outras três classes que compõem a classe Protocolo que são,
ProtocoloConfiguracao.java, ProtocoloPadrao.java e ProtocoloStatus.java elas são
responsáveis por receber os valores já tratados e serem utilizados posteriormente
conforme o APÊNDICE B.
A classe utiliza o método Split() que divide a String em um array de Strings,
uma vez que o caractere de separação é a ‘ , ’.
1. Dividindo String recebida.
//DIVIDINDO A STRING
String parteProtocolo [ ];
String Delimitador = “, ”;
If(msgRecebida != null) {
parteProtocolo = msgRecebida.split(delimitador);
}
15
BANCO DE DADOS
O sistema utiliza o banco de dados MySql, responsável por armazenar todas as
informações que foram anteriormente tratadas pelo servidor, o sistema é composto
por 4 tabelas conforme APÊNDICE C. O MySql foi desenvolvido pela TCX em 1996
e é mantido atualmente pela Oracle. Eles criaram-no porque precisavam de um
banco de dados relacional que pudesse tratar grandes quantidades de dados em
máquinas de custo relativamente barato.
É um dos bancos de dados relacionais mais rápidos do mercado e apresenta
quase todas as funcionalidades dos grandes bancos de dados. O servidor Mysql foi
desenvolvido originalmente para lidar com bancos de dados muito grandes de
maneira muito mais rápida que as soluções existentes, e tem sido usado em
ambientes de produção de alta demanda por diversos anos de maneira bem-
sucedida (Almeida,2012).
 Características
 Multi-plataforma, portanto, suporta diferentes plataformas: Win32, Linux,
FreeBSD e Unix;
 Suporta múltiplos processadores;
 Um sofisticado sistema de senhas criptografadas flexível e seguro;
 Suporta até 16 índices por tabela;
 O cliente conecta no MySQL através de conexões TCP/IP;
 Capacidade de manipular bancos com até 50 milhões de registros.
(MYSQL, 2013)
O servidor Java cria apenas uma tabela, a qual fica responsável por armazenar
todas as informações de todos os rastreadores.
16
SISTEMA DE MONITORAMENTO
O sistema oferece aos usuários uma forma interativa de verificar cada
aparelho, um site que pode ser acessado de qualquer aparelho que tenha acesso a
internet conforme APÊNDICE D que demonstra o funcionamento básico do site.
Figura 7 – Tela de login site de monitoramento.
Os usuários ou administrador podem realizar o acesso pelo site, o administrador ao
ser autenticado no sistema, terá mais privilégios que determinados clientes, o nível
de acesso pode ser alterado apenas pelo administrador.
Figura 8 – Tela principal de monitoramento.
17
A tela principal é onde o usuário poderá escolher qual aparelho deseja monitorar e
tomar ações se necessário, o usuário também pode escolher uma das opções no
menu que são descritos abaixo:.
Figura 9 – Tela alteração de perfil.
A tela perfil é onde o usuário poderá alterar seus dados de cadastro tais como nome,
e-mail e senha de acesso.
Figura 10 – Tela de Histórico.
18
A tela de histórico é onde o usuário poderá filtrar o período desejado, informando a
data no centro superior, para que seja traçada a rota feita pelo aparelho.
.
Figura 11 – Tela cadastro de novos usuários e rastreadores.
A tela Gerenciar Usuários apenas o administrador do sistema tem acesso, ele pode
adicionar novos clientes, alterar cliente já existentes ou excluir, o mesmo para os
rastreadores vinculados a cada cliente.
Figura 11 – Tela de envio de comandos.
19
Na tela de comando os usuários ou administrador podem escolher qual comando
desejam enviar selecionando uma opção rápida (checkbox) ou no campo “Comando
Manual” onde pode ser inserido um comando digitado com a configuração desejada.
Também é possível criar cercas geográficas clicando com o botão direito do mouse
sobre o mapa e selecionando a opção “Nova Cerca”.
Figura 12 – Criando cerca Geográfica.
Figura 13 – Adicionando nova cerca geográfica.
20
CERCA GEOGRÁFICA
É um recurso em um programa ou software que utiliza o sistema de
posicionamento global (GPS) ou identificação por radiofrequência (RFID) para definir
os limites geográficos. Uma área demarcada é uma barreira virtual (Rouse, 2013).
ENVIANDO COMANDOS PELA APLICAÇÃO WEB
Para poder enviar informações do site para a peça, é preciso criar uma ponte
entre a aplicação web e o servidor Java, a aplicação web chama o método Java que
é responsável por enviar mensagens para o cliente. Para que isso fosse possível foi
utilizada a biblioteca Php/JavaBridge que é uma implementação de um protocolo de
streaming de rede baseada em XML, que pode ser utilizada para conectar um
mecanismo de script nativo, por exemplo, PHP e Python, com uma máquina virtual
Java. É mais rápido e mais confiável do que a comunicação direta através da Java
Native Interface (interface de programação padrão para escrever métodos nativos e
incorporar a máquina virtual), e não necessita de componentes adicionais para
invocar procedimentos Java a partir do PHP ou procedimentos PHP do Java
(php/JavaBridge, 2013).
API GOOGLE MAPS
A API do Google Maps é um serviço gratuito que permite incorporar o Google
Maps a suas páginas web ou aplicativos móveis de modo livremente acessível.
 Regras Gerais
Acesso gratuito (sem taxas). Mapas implementados pela API devem ser
geralmente acessíveis aos usuários, sem custo e não deve exigir uma assinatura em
taxa ou outro acesso restrito com base em taxas. Esta regra aplica-se ao seu
conteúdo e qualquer outro conteúdo na sua implementação API do Google Maps.
21
Acesso público (sem Firewall). Sua implementação API Google Maps não deve
funcionar apenas atrás de um firewall, ou apenas em uma rede interna (exceto
durante a fase de desenvolvimento e testes), ou em uma comunidade fechada, por
exemplo, acessar apenas através de convites (GOOGLE, 2013).
 Recursos
Figura 14 – Recursos API Google Maps (Google, 2013).
22
CONCLUSÕES
Dentro do tempo estabelecido e das dificuldades encontradas, o projeto teve
um resultado satisfatório. O objetivo era criar uma aplicação que fosse capaz de
receber uma boa quantidade de conexões e proporcionar a equipe de
desenvolvimento do produto e aos futuros compradores uma interface de alto nível e
que pudesse ser acessada de qualquer lugar, com histórico de rotas, envio de
comandos, gerenciamento de administrador e a criação de cercas geográficas; esse
objetivo foi cumprido.
O desenvolvimento do projeto proporcionou um maior avanço de
conhecimento de programação orientada a objetos e também no gerenciamento de
serviços executados em um computador, operando threads. Também foi
imprescindível conhecer e aprender sobre cálculos de transformações de
coordenadas geográficas, velocidade, números hexadecimais e binários. O
conhecimento adquirido em eletrônica foi importante para lidar com tabelas de
valores ANSII que foram utilizadas para o desenvolvimento de detecção de alertas e
outras funcionalidades do aparelho que eram em valores ou binários ou
hexadecimais.
O conhecimento adquirido na implementação do sistema de monitoramento
(site) tem grande valia, ao desenvolver utilizando PHP, API Google MAPS e
php/Javabridge. O desenvolvimento do sistema também proporciona outra opção de
uso e não somente para o aparelho em questão, onde pode ser utilizado para
qualquer tipo de aparelho GPS, apenas implementando seu protocolo.
O sistema pode também receber novas funcionalidades, tais como, mostrar a
direção dos veículos, gerar gráficos de velocidade e alertas também um histórico de
mensagens enviadas.
23
REFERÊNCIAS BIBLIOGRÁFICAS
ROUSE, Margaret, Geo-Fencing (Geofencing), Disponível em:
http://whatis.techtarget.com/definition/geofencing Recuperado em 15/11/13
BRIDGE, php/Java, What is the PHP/Java Bridge, Disponível em: http://php-java-
bridge.sourceforge.net/pjb/ Recuperado em 12/11/13.
MYSQL, Why MYSQL, Disponível em: http://www.mysql.com/ Recuperado em 11/11/13.
INFOPÉDIA, Protocolos de comunicação, Disponível em:
http://www.infopedia.pt/$protocolos-de-comunicacao;jsessionid=sp32ihTjXWz3aXy6d5J84A__
Recuperado em: 08/11/13.
OFFICIAL, U.S Government information about the Global Positioning System (GPS)
Disponível em: http://www.gps.gov/applications/ Recuperado em: 09/11/13.
ALMEIDA, José Henrique Monteiro De. PHP com MYSQL, Disponível em:
http://apostilando.com/sessao.php?cod=26 Recuperando em 01/11/13.
NUNES, Lonardo R. Formado em Ciência da Computação Pela PUCPR, Mestrado
em Sistemas Distribuídos na PUCPR, Coordenador do PRoJAVA, Disponível em :
http://www.ebah.com.br/content/ABAAABcOMAA/sockets-java Recuperado em 12/10/13.
GOMES, Rafael de Aquimo. Transmitindo e recebendo dados via Socket,
24
Disponível em:
http://pt.wikinourau.org/bin/view/GrupoJava/TransmitindoERecebendoDadosViaSockets#Streams
Recuperado em 12/10/13.
CRISTIANO, Trindade, Desenvolvedor de sistemas, Disponível em
http://imasters.com.br/artigo/910/ Recuperado em 12/10/13.
CAELUM, Apostila Java e Orientação a Objetos, Apêndice Sockets, Disponível em:
http://www.caelum.com.br/apostila-java-orientacao-objetos/apendice-sockets/ Recuperado em
12/10/13.
MAGALHÃES, Marcos Paulo Pereira. Bacharelado em Sistemas de Informação,
Estudo do comportamento dos protocolos GPRS em uma chamada de dados,
Faculdade de ciências aplicadas de Minas 2005, Disponível em:
http://www.si.lopesgazzani.com.br/TFC/monografias/Monografia%20-%20Marcos%20Paulo.pdf
Recuperado em 15/10/13.
DILÃO, Rui. Grupo de dinâmica Não-Linear, IST, Disponível em:
http://www.cienciaviva.pt/latlong/anterior/gps.asp# Recuperado em 20/10/13.
Trible, GPS – Tutorial Disponível em:
http://www.trimble.com/gps_tutorial/whygps.aspx Recuperado em 20/10/13.
CORRÊA, Iran Carlos Stalliviere. Coordenadas Geográficas – Departamento de
Geodesia – UFRGS Disponível em:
25
http://artedanavegacaoaerea.blogspot.com.br/2011/06/coordenadas-geograficas-
igufrgs.html Recuperado em: 11/11/13.
NUNES, Sérgio Sobral. Computadores e Redes de Comunicação
Mestrado em Gestão de Informação, FEUP ( Universidade do Porto Faculdade de
Engenharia). Disponível em:
http://web.fe.up.pt/~ssn/disciplinas/crc/redes-de-comunicacao.pdf recuperado em 29/10/13.
4G AMERICAS, GPRS: General Packet Radio Service Disponível em:
http://www.4gamericas.org/index.cfm?fuseaction=page&sectionid=243, recuperado em 09/11/13.
APÊNDICE A – FUNCIONAMENTO SERVIDOR
26
APÊNDICE B – CLASSES SERVIDOR.
27
APÊNDICE C – TABELAS (MER)
28
APÊNDICE D – DEMONSTRAÇÃO DE FUNCIONAMENTO SITE
29
Pesquisar
Enviar comando
30
Gerenciar cerca
31
Gerenciar usuários
32
Pesquisar
Visualizar Histórico
33
Visualizar rastreador
Visualizar todos

Weitere ähnliche Inhalte

Ähnlich wie Artigo TCC-SI-2013

Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011
Steve Rogers
 
A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...
A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...
A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...
Fran Maciel
 
Artigo De Gerencia De Redes
Artigo De Gerencia De RedesArtigo De Gerencia De Redes
Artigo De Gerencia De Redes
UFPA
 

Ähnlich wie Artigo TCC-SI-2013 (20)

Speed data
Speed dataSpeed data
Speed data
 
Projeto asteris para controle remoto
Projeto   asteris para controle remotoProjeto   asteris para controle remoto
Projeto asteris para controle remoto
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaes
 
Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011
 
Computação em Nuvem
Computação em NuvemComputação em Nuvem
Computação em Nuvem
 
Artigo sistemas embarcados 2011
Artigo sistemas embarcados 2011Artigo sistemas embarcados 2011
Artigo sistemas embarcados 2011
 
Aplicabilidade do sistema de informação no desenvolvimento de sistemas embarc...
Aplicabilidade do sistema de informação no desenvolvimento de sistemas embarc...Aplicabilidade do sistema de informação no desenvolvimento de sistemas embarc...
Aplicabilidade do sistema de informação no desenvolvimento de sistemas embarc...
 
PRP, MRP, sistema de informações ligados a logística e tecnologia aplicada a ...
PRP, MRP, sistema de informações ligados a logística e tecnologia aplicada a ...PRP, MRP, sistema de informações ligados a logística e tecnologia aplicada a ...
PRP, MRP, sistema de informações ligados a logística e tecnologia aplicada a ...
 
O Processo de Desenvolvimento de uma Célula Operacional do SIVAM
O Processo de Desenvolvimento de uma Célula Operacional do SIVAMO Processo de Desenvolvimento de uma Célula Operacional do SIVAM
O Processo de Desenvolvimento de uma Célula Operacional do SIVAM
 
Scada e scdc trabalho
Scada e scdc   trabalhoScada e scdc   trabalho
Scada e scdc trabalho
 
VANETs – redes veiculares
VANETs – redes veicularesVANETs – redes veiculares
VANETs – redes veiculares
 
Tecnologia em rastreamento
Tecnologia em rastreamentoTecnologia em rastreamento
Tecnologia em rastreamento
 
2016 - A interoperabilidade da Geoinformação em softwares livre na promoção d...
2016 - A interoperabilidade da Geoinformação em softwares livre na promoção d...2016 - A interoperabilidade da Geoinformação em softwares livre na promoção d...
2016 - A interoperabilidade da Geoinformação em softwares livre na promoção d...
 
Armazenamento de Dados Aplicado à Computação em Nuvem
Armazenamento de Dados Aplicado à Computação em NuvemArmazenamento de Dados Aplicado à Computação em Nuvem
Armazenamento de Dados Aplicado à Computação em Nuvem
 
Deborah deah sea2014
Deborah deah sea2014Deborah deah sea2014
Deborah deah sea2014
 
Gerencia_Portugal.pdf
Gerencia_Portugal.pdfGerencia_Portugal.pdf
Gerencia_Portugal.pdf
 
Artefato final
Artefato finalArtefato final
Artefato final
 
Artefato final PETIC
Artefato final PETICArtefato final PETIC
Artefato final PETIC
 
A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...
A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...
A usabilidade de tarefas típicas de seleção do destino em sistemas de navegaç...
 
Artigo De Gerencia De Redes
Artigo De Gerencia De RedesArtigo De Gerencia De Redes
Artigo De Gerencia De Redes
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Artigo TCC-SI-2013

  • 1. SISTEMA DE RASTREAMENTO(12 / 2013) Artigo . NANI, Matheus Ernesto. Sistemas de Informação (Unianchieta). Analista de Sistemas Araymond Brasil, Rua Comendador João Lucas, 555, Distrito Industrial, Vinhedo – SP, CEP 13280-000, 0xx19 3836-6900, matheus.nani@hotmail.com TOFANINI, Cesar Tegani. Especialista em Formação em Educação a Distância pela Universidade Paulista - UNIP (2011). Graduado em Engenharia de Computação pela Universidade São Francisco (2004). Professor do Centro Universitário Padre Anchieta. Campus Prof. Pedro C. Fornari. Av. Dr. Adoniro Ladeira, 94, Jundiaí – SP, CEP 13210-800, 0xx11 4588-4445, cesartofanini@gmail.com.
  • 2. 2 SISTEMA DE RASTREAMENTO Matheus Ernesto Nani1 César TeganiTofanini 2 RESUMO Este trabalho pretende demonstrar a utilização de um sistema de rastreamento, que pode ser utilizado na fase de desenvolvimento de produtos de localização geográfica. A análise desse sistema permite apresentar vantagens e desvantagens do produto, e também auxiliar a equipe de desenvolvimento na melhoria de novas funcionalidades e ajustes finos no funcionamento do equipamento. Palavras-Chave: localização geográfica, desenvolvimento, sistema de rastreamento. ABSTRACT This work aims to demonstrate the use of a tracking system that can be used during product development to geographic location. The analysis of this system allows us to present the advantages and disadvantages of the product, and assist the development team in enhancing new features and fine-tuning the operation of the equipment. Keywords: geographical location, development, tracking system. 1 Sistemas de Informação (UNIANCHIETA). Analista de Sistemas A.Raymond Brasil. 2 Especialista em formação em educação à distância (UNIP) e Engenheiro da Computação (USF). Professor de cursos de Graduação do Centro Universitário Padre Anchieta.
  • 3. 3 INTRODUÇÃO Um sistema de rastreamento é a forma mais fácil e segura de monitorar frotas, cargas e até mesmo veículos particulares que irão percorrer longos caminhos, investir em segurança nunca é demais. Como a Internet, o GPS é um elemento essencial da infraestrutura global de informação. A natureza livre, aberta e segura do GPS levou ao desenvolvimento de centenas de aplicações que afetam todos os aspectos da vida moderna. A tecnologia GPS agora está em tudo, desde telefones celulares e relógios de pulso até em tratores, contêineres e caixas eletrônicos(U.S Government information about GPS, 2013). O GPS aumenta a produtividade através de uma ampla faixa de economia, para incluir a agricultura, construção, mineração, topografia, entrega de pacotes e gerenciamento logístico das cadeias de suprimentos. Grandes redes de comunicação, sistemas bancários, mercados financeiros e redes de energia dependem fortemente do GPS para sincronização de tempo preciso. Alguns sistemas sem fio não podem funcionar sem ele (U.S Government information about GPS, 2013). O GPS salva vidas pela prevenção de acidentes de transportes, auxiliando os esforços de busca e salvamento, e acelerar a entrega de serviços de emergência e socorro. O GPS visa também avanços científicos, como previsão do tempo, monitoramento de terremotos, e proteção ambiental. Algumas das outras aplicações do sistema GPS são: agricultura, aviação, marinha, segurança pública, transportes sobre trilhos, estradas e rodovias, pesquisas espaciais, mapeamentos e localização.
  • 4. 4 Esse trabalho consiste no desenvolvimento de um sistema de rastreamento, cujo principal objetivo é proporcionar a equipe de desenvolvimento e a futuros compradores uma maneira simples de verificar o funcionamento do aparelho em desenvolvimento. Verificar a velocidade de envio e resposta de mensagens, precisão de posicionamento, velocidade de conexão com o servidor e tempo de duração da bateria de backup ( Fonte de alimentação externa ao aparelho rastreador que em caso de falha de energia é acionada para que a peça consiga se conectar a rede). Aqui está apenas uma pequena amostra de aplicações GPS existente. Novos usos de GPS são inventados todos os dias e são limitados apenas pela imaginação humana (U.S Government information about GPS, 2013) . GPS (Global Positioning System) O Sistema de Posicionamento Global (GPS) é um utilitário de propriedade americana que fornece aos usuários os serviços de posicionamento, navegação e tempo. Este sistema é composto por três segmentos: O segmento espacial, o segmento de controle e o segmento do utilizador. A Força Aérea dos EUA desenvolve, mantém e opera nos segmentos de espaço e controle (U.S Government information about GPS, 2013). O segmento espacial consiste de uma constelação de satélites que transmitem sinais de rádio para os utilizadores. A Força Aérea gere a constelação para garantir a disponibilidade de pelo menos 24 satélites GPS, 95% do tempo. Nos últimos anos, a Força Aérea tem controlado 31 satélites GPS operacionais, além de satélites desativados 3-4 (“resíduos”) que podem ser reativados, se necessário (U.S Government information about GPS, 2013).
  • 5. 5 O segmento de controle GPS é constituído por uma rede global de instalações terrestres que rastreiam os satélites GPS, para monitorar suas transmissões, realizar análises e enviar comandos de dados para a constelação. O segmento atual de controle operacional inclui uma instalação de controle mestre, uma instalação de controle mestre alternativa, 12 comandos de antenas de controle e 16 locais de monitoramento. Os locais das instalações estão mostrados no mapa abaixo (U.S Government information about GPS, 2013). Figura 1 – Mapa de controle GPS.(U.S Government Information, 2013) Em cada ponto da Terra estão sempre visíveis quatro satélites, e com os diferentes sinais desses quatro satélites o receptor GPS calcula a latitude, longitude e altitude do lugar onde se encontra (Dilão, 2005).
  • 6. 6 Sistemas de Coordenadas Geográficas Existem pelo menos quatro modos de designar uma localização exata para qualquer ponto do globo terrestre sendo eles:  Graus - Minutos – Segundos  Neste sistema, cada grau é dividido em 60 minutos, que por sua vez se subdividem, cada um, em 60 segundos. A partir daí, os segundos podem ser divididos em frações cada vez menores.  Grau - Minutos Decimais Neste sistema, cada grau é dividido em 60 minutos, que por sua vez são divididos decimalmente. O Aparelho em questão utiliza as coordenadas em Grau, Minutos decimais sendo: 30º01,992’S e 51º14,117’W.  Grau – Decimal Neste sistema, cada grau é dividido em frações decimais. A forma de nomeação difere um pouco dos dois primeiros sistemas: a latitude recebe a abreviatura lat e a longitude, lon e existem valores positivos e negativos conforme figura a baixo: ( Corrêa, 2009).
  • 7. 7 Figura 2 - Latitudes e Longitudes em cada hemisfério (Wikipédia, 2012). Tecnologia A aplicação funciona com base nas informações recebidas de um equipamento rastreador que trabalha com tecnologia GPS, e transmissão de dados GPRS/GSM. Para tal foi criado um protocolo para estabelecer de forma padronizada a comunicação entre servidor e cliente, onde cada lado sabe o que pode ou não ser enviado e recebido. O GSM (Global System for Mobile Communications) foi inicialmente desenvolvido para integrar o sistema de comunicação móvel da Europa. A promessa era prover mais que um sistema integrado de comunicações. Ele traria uma série de serviços utilizando Redes Digitais de Serviços Integrados (RDSI ou ISDN – Integrated Services Digital Network) O GPRS (General packet radio service) é uma tecnologia que aumenta as taxas de transferência de dados nas redes GSM existentes. Essa permite o transporte de dados por pacotes. Sendo o GPRS um serviço “sempre ativo” por ter seus pacotes trafegando entre sua rede e redes TCP/IP, ele dá as operadoras a possibilidade de oferecer a seus clientes um excelente acesso a Internet a um custo plausível, e ainda tarifar pela quantidade de dados transferidos e não somente pelo tempo de conexão ( 4g Americas, 2007, Magalhães, 2005). DESENVOLVIMENTO SERVIDOR O sistema desenvolvido para a empresa trabalha com comunicação socket, que funciona como um ponto de conexão entre a camada de aplicação e a de transporte TCP ( TransmissionControlProtocol ) ou UDP ( UserDatagramProtocol ).
  • 8. 8 O servidor socket é responsável por aceitar e gerenciar todas as Threads de conexões, cada nova conexão que é aceita, é armazenada em uma lista que será utilizada posteriormente para o envio de comandos, tratamento do protocolo e também para encerar cada um delas. Ele implementa de forma parcial o modelo OSI-ISO e sua principal característica é dividir as funcionalidades (que ele chama de serviços) necessárias á comunicação em camadas, dividindo assim as responsabilidades e permitindo que uma certa camada possa ter diferentes implementações (com diferentes tecnologias), mas ainda assim mantendo a sua compatibilidade(NUMES, 2001). A linguagem Java oferece ambas as camadas de transporte conhecidas como modo orientado à conexão para TCP e modo orientado a datagrama para UDP, os dois modos funcionam sobre o protocolo IP (Internet Protocol). O funcionamento do servidor segue conforme APÊNDICE A.  JAVA Linguagem de programação multiplataformas que utiliza o conceito de máquina virtual, onde existe, entre o sistema operacional e a aplicação, uma camada extra responsável por “traduzir” – mas não apenas isso – o que sua aplicação deseja fazer para as respectivas chamadas do sistema operacional. Os programas Java podem ser executados em qualquer sistema operacional, desde que a Java Virtual Machine esteja instalada. O servidor foi desenvolvido em cima do modo orientado a conexões por questão de segurança, que apesar de ser mais lento proporciona uma confirmação fim-a-fim essencial a este tipo de aplicação, ou seja, a camada de transporte não se comunica com máquinas (aparelhos) intermediárias na rede.
  • 9. 9 Conforme figura abaixo ambos os tipos de sockets possuem vantagens e desvantagens, Figura 3 –Vantagens e desvantagens sockets (Nunes, 2012).  CONEXÃO O processo de comunicação no modo orientado a conexões funciona da seguinte forma: O servidor socket é inicializado com uma determinada porta, e fica “escutando”, esperando por um cliente através do método accept da ServerSocket. O cliente por sua vez deve ser configurado com a mesma porta que o servidor, para saber com quem ele deve se comunicar e fazer uma requisição de conexão, conforme a imagem: Figura 4 - Servidor socket aguardando conexão (Nunes, 2012).
  • 10. 10 1. Criando uma conexão socket O servidor tem o comportamento de ficar em um loop aguardando novas conexões, e gerando novos sockets para atender as solicitações dos clientes. Também é preciso que o servidor seja capaz de receber inúmeras conexões simultâneas, um serviço para cada cliente conectado. Por isso a utilização de Threads é imprescindível. A aplicação cria um Thread para cada nova conexão, assim tornando possível o recebimento e envio para diversos aparelhos. Para que seja possível executar inúmeras tarefas “simultâneas” em um único processador, entra em cena o escalonador de Threads, que é o responsável por escolher qual a próxima Thread a ser executada, e fazer a troca de contexto. Ele primeiro salva o estado da execução da Thread atual para depois poder retornar a execução da mesma. Então ele restaura o estado da Thread que vai ser executada e faz com que o processador continue a execução desta. A troca de contexto é justamente as operações de salvar o contexto da Thread atual e restaurar o da Thread que vai ser executada em seguida. O escalonador pega todas as Threads // CRIA UM SERVIDOR SOCKET ServerSocket servidor = null; Socket conexão = null; servidor = new ServerSocket(porta); while (existirConexao) { // ACEITA CONEXÃO REQUISITADA PELO CLIENTE. conexao = servidor.accept(); } } }
  • 11. 11 que precisam ser executadas e faz com que o processador fique alternando a execução de cada uma delas. As Threads são processos paralelos que são executados aos poucos, uma de cada vez, o processamento é tão rápido que as aplicações parecem ser executadas juntas.  RECEBENDO MENSAGENS Se nem um problema ocorrer, o servidor aceita a conexão gerando um socket em uma porta qualquer do lado servidor, criando assim um canal de conexão entre o servidor e o cliente, conforme imagem: Figura 5 – Fluxo servidor socket conexão aceita (Nunes, 2012). Para que seja capaz a captura dos dados do cliente, é preciso criar uma Stream de dados, que pode ser definida como um caminho lógico representando o fluxo de dados entre a fonte e o destino. Para obter informações, uma aplicação abre uma Stream e lê sequencialmente (Stream de leitura de dados). As classes java.io.InputStream e java.io.OutputStream são as responsáveis pela criação de Stream de escrita e leitura, respectivamente.
  • 12. 12 Sempre que um socket é criado já existem as streams associadas a ele. E para obter a referência a elas devemos utilizar os métodos getOutputStream() e getInputStream() (TRINDADE, 2003, CAELUM, 2013, GOMES,2004 ). Existem diversas streams tais como stream de Objetos e stream de arquivos nesse caso o servidor utiliza a stream de bytes. 2. Criando uma stream de leitura de dados.  ENVIO DE MENSAGENS Da mesma forma que precisamos criar uma stream de entrada de dados (leitura) é necessário criar uma stream de saída de dados (escrita), para enviar informações à aplicação abre uma stream para um destino e escreve sequencialmente. Entretanto existe uma particularidade no envio de mensagens, onde para escrever uma String necessariamente precisamos converter a String que desejamos em um Array de bytes. //CRIA UMA STREAM DE ENTRADA DE DADOS entrada = new Scanner(cliente.getInputStream()); //ENQUANTO HOUVER INFORMAÇÃO LÊ while (entrada.hasNext()) { msgRecebida = entrada.nextLine(); System.out.println(msgRecebida); } } }
  • 13. 13 Felizmente na API Java existem métodos para realizar essas transformações. Figura 6 – Envio de mensagens com socket TCP. PROTOCOLO É definido como um acordo que específica o formato e o significado das mensagens a trocar numa rede. De maneira simples um protocolo pode ser definido como conjunto de regras-padrão que caracterizam o formato a sintaxe, semântica e sincronização da comunicação. Os protocolos podem ser implementados pelo hardware, software ou por combinação dos dois (Sérgio, 2004, Infopédia 2010). O sistema trabalha com o protocolo desenvolvido pela empresa Cliptech a qual solicitou o desenvolvimento do sistema em questão, e contém mais de cinquenta
  • 14. 14 mensagens distintas. O servidor consiste em receber todos os dados em uma string tais como, identificação do aparelho, hora de envio, latitude, longitude e checksum (consiste na transmissão de todas as palavras juntamente com o resultado da soma binária. No receptor (servidor), as palavras são novamente somadas e comparadas com o checksum recebido. Se qualquer um dos dados transmitidos, incluindo o checksum, sofrerem algum erro, a soma do novo checksum com o checksum recebido é 1.) Entre outras informações. Um exemplo de mensagens recebidas do rastreador é: Msg: SRMA,Dt:01234567,OK,07,OF,End. Para que fosse possível o tratamento de todas as mensagens disponíveis, foi desenvolvida a classe Protocolo.java que é responsável por tratar todas as mensagens. Existem outras três classes que compõem a classe Protocolo que são, ProtocoloConfiguracao.java, ProtocoloPadrao.java e ProtocoloStatus.java elas são responsáveis por receber os valores já tratados e serem utilizados posteriormente conforme o APÊNDICE B. A classe utiliza o método Split() que divide a String em um array de Strings, uma vez que o caractere de separação é a ‘ , ’. 1. Dividindo String recebida. //DIVIDINDO A STRING String parteProtocolo [ ]; String Delimitador = “, ”; If(msgRecebida != null) { parteProtocolo = msgRecebida.split(delimitador); }
  • 15. 15 BANCO DE DADOS O sistema utiliza o banco de dados MySql, responsável por armazenar todas as informações que foram anteriormente tratadas pelo servidor, o sistema é composto por 4 tabelas conforme APÊNDICE C. O MySql foi desenvolvido pela TCX em 1996 e é mantido atualmente pela Oracle. Eles criaram-no porque precisavam de um banco de dados relacional que pudesse tratar grandes quantidades de dados em máquinas de custo relativamente barato. É um dos bancos de dados relacionais mais rápidos do mercado e apresenta quase todas as funcionalidades dos grandes bancos de dados. O servidor Mysql foi desenvolvido originalmente para lidar com bancos de dados muito grandes de maneira muito mais rápida que as soluções existentes, e tem sido usado em ambientes de produção de alta demanda por diversos anos de maneira bem- sucedida (Almeida,2012).  Características  Multi-plataforma, portanto, suporta diferentes plataformas: Win32, Linux, FreeBSD e Unix;  Suporta múltiplos processadores;  Um sofisticado sistema de senhas criptografadas flexível e seguro;  Suporta até 16 índices por tabela;  O cliente conecta no MySQL através de conexões TCP/IP;  Capacidade de manipular bancos com até 50 milhões de registros. (MYSQL, 2013) O servidor Java cria apenas uma tabela, a qual fica responsável por armazenar todas as informações de todos os rastreadores.
  • 16. 16 SISTEMA DE MONITORAMENTO O sistema oferece aos usuários uma forma interativa de verificar cada aparelho, um site que pode ser acessado de qualquer aparelho que tenha acesso a internet conforme APÊNDICE D que demonstra o funcionamento básico do site. Figura 7 – Tela de login site de monitoramento. Os usuários ou administrador podem realizar o acesso pelo site, o administrador ao ser autenticado no sistema, terá mais privilégios que determinados clientes, o nível de acesso pode ser alterado apenas pelo administrador. Figura 8 – Tela principal de monitoramento.
  • 17. 17 A tela principal é onde o usuário poderá escolher qual aparelho deseja monitorar e tomar ações se necessário, o usuário também pode escolher uma das opções no menu que são descritos abaixo:. Figura 9 – Tela alteração de perfil. A tela perfil é onde o usuário poderá alterar seus dados de cadastro tais como nome, e-mail e senha de acesso. Figura 10 – Tela de Histórico.
  • 18. 18 A tela de histórico é onde o usuário poderá filtrar o período desejado, informando a data no centro superior, para que seja traçada a rota feita pelo aparelho. . Figura 11 – Tela cadastro de novos usuários e rastreadores. A tela Gerenciar Usuários apenas o administrador do sistema tem acesso, ele pode adicionar novos clientes, alterar cliente já existentes ou excluir, o mesmo para os rastreadores vinculados a cada cliente. Figura 11 – Tela de envio de comandos.
  • 19. 19 Na tela de comando os usuários ou administrador podem escolher qual comando desejam enviar selecionando uma opção rápida (checkbox) ou no campo “Comando Manual” onde pode ser inserido um comando digitado com a configuração desejada. Também é possível criar cercas geográficas clicando com o botão direito do mouse sobre o mapa e selecionando a opção “Nova Cerca”. Figura 12 – Criando cerca Geográfica. Figura 13 – Adicionando nova cerca geográfica.
  • 20. 20 CERCA GEOGRÁFICA É um recurso em um programa ou software que utiliza o sistema de posicionamento global (GPS) ou identificação por radiofrequência (RFID) para definir os limites geográficos. Uma área demarcada é uma barreira virtual (Rouse, 2013). ENVIANDO COMANDOS PELA APLICAÇÃO WEB Para poder enviar informações do site para a peça, é preciso criar uma ponte entre a aplicação web e o servidor Java, a aplicação web chama o método Java que é responsável por enviar mensagens para o cliente. Para que isso fosse possível foi utilizada a biblioteca Php/JavaBridge que é uma implementação de um protocolo de streaming de rede baseada em XML, que pode ser utilizada para conectar um mecanismo de script nativo, por exemplo, PHP e Python, com uma máquina virtual Java. É mais rápido e mais confiável do que a comunicação direta através da Java Native Interface (interface de programação padrão para escrever métodos nativos e incorporar a máquina virtual), e não necessita de componentes adicionais para invocar procedimentos Java a partir do PHP ou procedimentos PHP do Java (php/JavaBridge, 2013). API GOOGLE MAPS A API do Google Maps é um serviço gratuito que permite incorporar o Google Maps a suas páginas web ou aplicativos móveis de modo livremente acessível.  Regras Gerais Acesso gratuito (sem taxas). Mapas implementados pela API devem ser geralmente acessíveis aos usuários, sem custo e não deve exigir uma assinatura em taxa ou outro acesso restrito com base em taxas. Esta regra aplica-se ao seu conteúdo e qualquer outro conteúdo na sua implementação API do Google Maps.
  • 21. 21 Acesso público (sem Firewall). Sua implementação API Google Maps não deve funcionar apenas atrás de um firewall, ou apenas em uma rede interna (exceto durante a fase de desenvolvimento e testes), ou em uma comunidade fechada, por exemplo, acessar apenas através de convites (GOOGLE, 2013).  Recursos Figura 14 – Recursos API Google Maps (Google, 2013).
  • 22. 22 CONCLUSÕES Dentro do tempo estabelecido e das dificuldades encontradas, o projeto teve um resultado satisfatório. O objetivo era criar uma aplicação que fosse capaz de receber uma boa quantidade de conexões e proporcionar a equipe de desenvolvimento do produto e aos futuros compradores uma interface de alto nível e que pudesse ser acessada de qualquer lugar, com histórico de rotas, envio de comandos, gerenciamento de administrador e a criação de cercas geográficas; esse objetivo foi cumprido. O desenvolvimento do projeto proporcionou um maior avanço de conhecimento de programação orientada a objetos e também no gerenciamento de serviços executados em um computador, operando threads. Também foi imprescindível conhecer e aprender sobre cálculos de transformações de coordenadas geográficas, velocidade, números hexadecimais e binários. O conhecimento adquirido em eletrônica foi importante para lidar com tabelas de valores ANSII que foram utilizadas para o desenvolvimento de detecção de alertas e outras funcionalidades do aparelho que eram em valores ou binários ou hexadecimais. O conhecimento adquirido na implementação do sistema de monitoramento (site) tem grande valia, ao desenvolver utilizando PHP, API Google MAPS e php/Javabridge. O desenvolvimento do sistema também proporciona outra opção de uso e não somente para o aparelho em questão, onde pode ser utilizado para qualquer tipo de aparelho GPS, apenas implementando seu protocolo. O sistema pode também receber novas funcionalidades, tais como, mostrar a direção dos veículos, gerar gráficos de velocidade e alertas também um histórico de mensagens enviadas.
  • 23. 23 REFERÊNCIAS BIBLIOGRÁFICAS ROUSE, Margaret, Geo-Fencing (Geofencing), Disponível em: http://whatis.techtarget.com/definition/geofencing Recuperado em 15/11/13 BRIDGE, php/Java, What is the PHP/Java Bridge, Disponível em: http://php-java- bridge.sourceforge.net/pjb/ Recuperado em 12/11/13. MYSQL, Why MYSQL, Disponível em: http://www.mysql.com/ Recuperado em 11/11/13. INFOPÉDIA, Protocolos de comunicação, Disponível em: http://www.infopedia.pt/$protocolos-de-comunicacao;jsessionid=sp32ihTjXWz3aXy6d5J84A__ Recuperado em: 08/11/13. OFFICIAL, U.S Government information about the Global Positioning System (GPS) Disponível em: http://www.gps.gov/applications/ Recuperado em: 09/11/13. ALMEIDA, José Henrique Monteiro De. PHP com MYSQL, Disponível em: http://apostilando.com/sessao.php?cod=26 Recuperando em 01/11/13. NUNES, Lonardo R. Formado em Ciência da Computação Pela PUCPR, Mestrado em Sistemas Distribuídos na PUCPR, Coordenador do PRoJAVA, Disponível em : http://www.ebah.com.br/content/ABAAABcOMAA/sockets-java Recuperado em 12/10/13. GOMES, Rafael de Aquimo. Transmitindo e recebendo dados via Socket,
  • 24. 24 Disponível em: http://pt.wikinourau.org/bin/view/GrupoJava/TransmitindoERecebendoDadosViaSockets#Streams Recuperado em 12/10/13. CRISTIANO, Trindade, Desenvolvedor de sistemas, Disponível em http://imasters.com.br/artigo/910/ Recuperado em 12/10/13. CAELUM, Apostila Java e Orientação a Objetos, Apêndice Sockets, Disponível em: http://www.caelum.com.br/apostila-java-orientacao-objetos/apendice-sockets/ Recuperado em 12/10/13. MAGALHÃES, Marcos Paulo Pereira. Bacharelado em Sistemas de Informação, Estudo do comportamento dos protocolos GPRS em uma chamada de dados, Faculdade de ciências aplicadas de Minas 2005, Disponível em: http://www.si.lopesgazzani.com.br/TFC/monografias/Monografia%20-%20Marcos%20Paulo.pdf Recuperado em 15/10/13. DILÃO, Rui. Grupo de dinâmica Não-Linear, IST, Disponível em: http://www.cienciaviva.pt/latlong/anterior/gps.asp# Recuperado em 20/10/13. Trible, GPS – Tutorial Disponível em: http://www.trimble.com/gps_tutorial/whygps.aspx Recuperado em 20/10/13. CORRÊA, Iran Carlos Stalliviere. Coordenadas Geográficas – Departamento de Geodesia – UFRGS Disponível em:
  • 25. 25 http://artedanavegacaoaerea.blogspot.com.br/2011/06/coordenadas-geograficas- igufrgs.html Recuperado em: 11/11/13. NUNES, Sérgio Sobral. Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP ( Universidade do Porto Faculdade de Engenharia). Disponível em: http://web.fe.up.pt/~ssn/disciplinas/crc/redes-de-comunicacao.pdf recuperado em 29/10/13. 4G AMERICAS, GPRS: General Packet Radio Service Disponível em: http://www.4gamericas.org/index.cfm?fuseaction=page&sectionid=243, recuperado em 09/11/13. APÊNDICE A – FUNCIONAMENTO SERVIDOR
  • 26. 26 APÊNDICE B – CLASSES SERVIDOR.
  • 27. 27 APÊNDICE C – TABELAS (MER)
  • 28. 28 APÊNDICE D – DEMONSTRAÇÃO DE FUNCIONAMENTO SITE