SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Geolocalização
Realtime
Gustavo Castro
Josué Lino Bragagnolo
XI Semana Acadêmica de Sistemas de Informação - ULBRA - Carazinho - RS (2019)
Autores
Gustavo Castro
Tecnólogo em Sistemas para Internet
Especializando em Ciência de Dados
Desenvolvedor PHP
Github: github.com/debgustavocastro
Linkedin: linkedin.com/in/gustavocastro78
SlideShare: slideshare.net/GustavoCastro35
E-mail: deb.gustavocastro@gmail.com
2
Autores
Josué Lino Bragagnolo
Cientista da Computação
Analista de Redes / SysAdmin
Linkedin: linkedin.com/josuebragagnolo
E-mail: josue@atua.com.br
3
Um estudo de caso de monitoramento e rastreamento
frota
Geolocalização
Realtime
4
O problema
● Cliente precisa controlar a frota de veículos
○ Projeção de rotas e estimativa de tempo do percurso
○ Necessidade de saber o posicionamento e situação dos
veículos
○ Dados atualizados em tempo real
5
Arquitetura Existente
● Rastreadora
○ Disponibiliza os dados via Webservice
● Processo Atualização
○ Consome os dados do Webservice da rastreadora
○ Persiste os dados no BD
● Cliente
○ Realiza requisições frentes ao servidor
○ Monta uma tabela com os dados obtidos
6
Arquitetura Existente
7
Fonte: Dos Autores
Aplicação cliente
8
Fonte: Dos Autores
Problemas - Arquitetura existente
● Requisições frequentes
○ Várias ou nenhuma atualização
○ Processo lento (consulta no BD)
● Pouca usabilidade
○ Muitos dados na tela
9
Objetivos projeto
● Facilitar a visualização dos dados gerais
● Possibilitar visualização dos acontecimentos e realizar
previsões
○ Exibir a situação e a posição dos veículos
○ Criar uma estimativa de tempo de trajeto baseado na rota
● Manter os dados sempre atualizados
○ Ajustar a arquitetura existente para entregar os dados mais próximos
da realidade de tempo
● Realizar os itens acima de maneira mais performática
10
Solução - Dados em tempo real
● Arquitetura Cliente/Servidor
○ Sempre inicia no cliente
■ Cliente pergunta
■ Servidor responde
○ Canal unidirecional
11
Fonte: https://medium.com
Solução - Dados em tempo real
● Téc. de realtime
○ Polling
○ Streaming SIMD
Extensions
○ Websocket
12
Fonte: https://hpbn.co/websocket/
Solução - Dados em tempo real
● Websocket
○ Abre uma única comunicação bidirecional
○ PHP - Ratchet
■ Fácil controle sobre múltiplas conexões simultâneas
■ Escalável
■ Performático
13
Solução - Arquitetura - Back-end
● Atualização na aplicação
cliente e persistência de
dados na mesma requisição
● Atualização apenas de
dados necessários
● BD mais performático
● Dados em “tempo real”
14
Fonte: Dos Autores
Solução - Arquitetura - Front-end
● Repassa os dados da rastreadora
para API’s do Google
○ Google Maps
■ Tráfego na região
■ Trajeto
■ Plota mapa no cliente
○ Matrix API
■ Distância
■ Estimativa de tempo do trajeto
15
Fonte: Dos Autores
Problema - Custos
Vl. request Qt. Itens
request
Qt. exec. p/ dia Qt. request p/
dia
Vl. diário Vl. mensal
(CONVERTIDO)
U$0,005 950* 144 136800 U$ 684 R$ 97.470,00
16
Fonte: Dos Autores
Requisitos para alternativa
● Financeiramente viável
● Cálculos de trajetórias
○ Roteirização
○ Distância
○ Tempo
● Apresentação dados para usuário
○ Mapa
17
18
Fonte: Dos Autores
Fonte: https://leafletjs.com/
Fonte: http://project-osrm.org
Fonte: https://nominatim.org/
Soluções utilizadas
● Funcionalidades
○ Construção de rotas
○ Distância entre pontos
○ Estimativa de tempo entre
os pontos
● Prós
○ Open Source
○ Self Hosted
● Contras
○ Resolve apenas coordenadas
(latitude, longitude)
19
Fonte: http://project-osrm.org/
Exemplo Request / Response
20
Fonte: Dos Autores
Soluções utilizadas
● Funcionalidades
○ Resolve endereços em
coordenadas e vice-versa
● Prós
○ Open Source
○ Self Hosted
○ Performático
○ PHP / PostgreSQL / PostGIS
● Contra
○ Base de dados diferente do OSRM
21
Fonte: https://nominatim.org/
Nominatim
22
Fonte: Dos Autores
Exemplo Request / Response
23
Fonte: Dos Autores
Soluções utilizadas
● GeoRoutes API
○ Desenvolvido internamente
○ Servidor REST - Node.js
○ Centralizador
■ OSRM/Nominatim
○ Calcula velocidade
24
Fonte: Dos Autores
Soluções utilizadas
● OpenStreetMap
○ Mapa, tile
● Leaflet
○ Framework
○ Interatividade com o mapa
● Prós
○ Open Source
25
Fonte: https://leafletjs.com/
Resultados
✓ Interface amigável
○ Visualização dos principais dados de forma organizada
✓ Aplicação performática
✓ Baixo custo em relação em relação a outras ferramentas
~ Dados em tempo real
○ Impasse com as rastreadoras que não oferecem webhooks
26
F
27
Fonte: Dos Autores
Dúvidas?
● Websocket
● Geolocation
● Frameworks
● PHP
● PostgreSQL
● Linux / Infra
● ...
28
29
www.atua.com.br
Referências
http://project-osrm.org/
https://medium.com/system-design-blog/long-polling-vs-websockets-vs-server-sent-events-c43ba96df7c1
https://nominatim.org/
https://hpbn.co/websocket/
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-osrm-server-on-ubuntu-14-04
http://download.geofabrik.de/
https://leafletjs.com/
https://www.openstreetmap.org
https://postgis.net/
30

Weitere ähnliche Inhalte

Ähnlich wie Geolocalização em tempo real para monitoramento de frota

Currículo Rodrigo Pagliusi
Currículo Rodrigo PagliusiCurrículo Rodrigo Pagliusi
Currículo Rodrigo PagliusiRodrigo Pagliusi
 
Presentation lsd-talk
Presentation lsd-talkPresentation lsd-talk
Presentation lsd-talkPauloDitarso
 
Arquitetura de referência pra plataforma de Crowdsensing em Smart Cities
Arquitetura de referência pra plataforma de Crowdsensing em Smart CitiesArquitetura de referência pra plataforma de Crowdsensing em Smart Cities
Arquitetura de referência pra plataforma de Crowdsensing em Smart CitiesHerbertt
 
Aplicações Realtime com PHP
Aplicações Realtime com PHPAplicações Realtime com PHP
Aplicações Realtime com PHPGustavo Castro
 
Faculdade evolução
Faculdade evoluçãoFaculdade evolução
Faculdade evoluçãoFlavio Xp
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...PGDay Campinas
 
PLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW BrasilPLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW BrasilCADWARE-TECHNOLOGY
 
Wtp floripa web
Wtp floripa webWtp floripa web
Wtp floripa webmeninio
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?Wender Machado
 
Gestão de Projetos
Gestão de ProjetosGestão de Projetos
Gestão de ProjetosGeorge Dias
 
Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoRicardo Longa
 
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídosluanrjesus
 
Smart Cities: Concepts, Platforms, and Challenges
Smart Cities: Concepts, Platforms, and Challenges Smart Cities: Concepts, Platforms, and Challenges
Smart Cities: Concepts, Platforms, and Challenges Fabio Kon
 
Deployment no Azure
Deployment no AzureDeployment no Azure
Deployment no AzureRodrigo Kono
 
12 Factor APPS Docker na Cloud e outras buzzwords
12 Factor APPS Docker na Cloud e outras buzzwords12 Factor APPS Docker na Cloud e outras buzzwords
12 Factor APPS Docker na Cloud e outras buzzwordsFernando Ruaro
 
12 Factor APPS, docker na cloud e outras buzzwords
12 Factor APPS, docker na cloud e outras buzzwords12 Factor APPS, docker na cloud e outras buzzwords
12 Factor APPS, docker na cloud e outras buzzwordsWaldemar Neto
 

Ähnlich wie Geolocalização em tempo real para monitoramento de frota (20)

Currículo Rodrigo Pagliusi
Currículo Rodrigo PagliusiCurrículo Rodrigo Pagliusi
Currículo Rodrigo Pagliusi
 
Presentation lsd-talk
Presentation lsd-talkPresentation lsd-talk
Presentation lsd-talk
 
Arquitetura de referência pra plataforma de Crowdsensing em Smart Cities
Arquitetura de referência pra plataforma de Crowdsensing em Smart CitiesArquitetura de referência pra plataforma de Crowdsensing em Smart Cities
Arquitetura de referência pra plataforma de Crowdsensing em Smart Cities
 
Aplicações Realtime com PHP
Aplicações Realtime com PHPAplicações Realtime com PHP
Aplicações Realtime com PHP
 
Faculdade evolução
Faculdade evoluçãoFaculdade evolução
Faculdade evolução
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
 
PLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW BrasilPLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW Brasil
PLM-Summit 2014 | 8-9 abril | Apresentação 02/14 | Sandra Zimmermann | VW Brasil
 
Wtp floripa web
Wtp floripa webWtp floripa web
Wtp floripa web
 
Status Report do TCC: SIN-NA7
Status Report do TCC: SIN-NA7Status Report do TCC: SIN-NA7
Status Report do TCC: SIN-NA7
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?
 
Gestão de Projetos
Gestão de ProjetosGestão de Projetos
Gestão de Projetos
 
Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenho
 
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
 
AGILI
AGILIAGILI
AGILI
 
CAR em Nuvem
CAR em NuvemCAR em Nuvem
CAR em Nuvem
 
Smart Cities: Concepts, Platforms, and Challenges
Smart Cities: Concepts, Platforms, and Challenges Smart Cities: Concepts, Platforms, and Challenges
Smart Cities: Concepts, Platforms, and Challenges
 
Deployment no Azure
Deployment no AzureDeployment no Azure
Deployment no Azure
 
Currículo Engenheiro Macânico - Salvador
Currículo Engenheiro Macânico - SalvadorCurrículo Engenheiro Macânico - Salvador
Currículo Engenheiro Macânico - Salvador
 
12 Factor APPS Docker na Cloud e outras buzzwords
12 Factor APPS Docker na Cloud e outras buzzwords12 Factor APPS Docker na Cloud e outras buzzwords
12 Factor APPS Docker na Cloud e outras buzzwords
 
12 Factor APPS, docker na cloud e outras buzzwords
12 Factor APPS, docker na cloud e outras buzzwords12 Factor APPS, docker na cloud e outras buzzwords
12 Factor APPS, docker na cloud e outras buzzwords
 

Geolocalização em tempo real para monitoramento de frota