Apresentação feita para o XI Semana Acadêmica de Sistemas de Informação da Universidade Luterana do Brasil (ULBRA) campus Carazinho - RS, com intuito de apresentar um estudo de caso de uma aplicação realtime.
A apresentação expõe as etapas do desenvolvimento de uma aplicação para o rastreamento e monitoramento de veículos de uma frota, mantendo o foco na atualização de dados em tempo real. Além disso, aborda as principais tecnologias e ferramentas utilizadas para o desenvolvimento da ferramenta.
O projeto foi desenvolvido entre 08/2019 e 10/2019 na empresa Atua Sistemas de Informação, com sede em Passo Fundo - RS.
Mestrando do último ano em Engenharia de Sistemas e Computação na COPPE-UFRJ, com dissertação em ciência de dados. Analista de Dados com certificação internacional DAP (Data Analyst Program), pela Data Science Academy. Experiência acentuada com desenvolvida habilidade de raciocínio e de resolução de problemas, conduzindo projetos de análise de dados e Machine Learning. Domínio das linguagens Python, SQL e Excel VBA e das ferramentas Power BI e Google Data Studio. Ao longo da carreira, atuou em projetos de programação web com metodologia SCRUM, em problemas de otimização, em projetos de engenharia hidráulica e em área comercial de empresa de engenharia. Participou de diversos workshops de comunicação no Clube da Fala e foi coordenador da Toastmasters, ONG internacional voltada à prática da oratória.
Apresentação feita para o II Congresso de Tecnologia da Informação do Instituto Federal de Educação, Ciência e Tecnologia do Sul-rio-grandense (IFSUL) - campus Passo Fundo, no dia 30/10/2019, com intuito de apresentar uma visão sobre o desenvolvimento de aplicações realtime em PHP.
Nessa apresentação são abordadas algumas das metodologias de desenvolvimento de aplicações realtime, descrevendo seus principais objetivos e funcionalidades. Todos os apontamentos culminam na demonstração da utilização de Websockets no desenvolvimento de um aplicativo utilizando a linguagem PHP.
Tendências e desafios do PLM e Fábrica Digital na manufatura automotiva
Painel - Sandra Zimmermann (VW do Brasil), Clayton Ferraz (Chevrolet/GM do Brasil)
Mediador: Sergio Savane - Diretor de TI e Engenharia Automotiva na T-Systems do Brasil
Status Report dos projetos de TCC
Os slides fazem parte de uma atividade realizada pelos alunos da turma SIN-NA7 (7º semestre de Sistemas de Informação – 1º semestre de 2015)
As REST API’s são largamente adotadas e muito bem aceitas pelas equipes de desenvolvimento. Mas então porque algumas estão apostando no GraphQL? Embarque nessa aventura para descobrir um pouco mais sobre a linguagem de consulta do Facebook.
____
REST APIs are widely adopted and very well accepted by development teams. But then why are some betting on GraphQL? Embark on this adventure to find out more about Facebook's query language.
Big Data como Serviço: da captura à visualização de dados com alto desempenhoRicardo Longa
A Neoway fornece serviços de análise de dados e Big Data por assinatura, trabalhando com mais de 10 terabytes de dados indexados de centenas de fontes, em duas verticais: prospecção de clientes e prevenção de fraudes bancárias. Nesta palestra vamos mostrar como organizamos o fluxo de processamento e análise de dados, desde a captura dos dados de mais de 200 fontes públicas, até a disponibilização para clientes.
Apresentaremos como é gerenciado e monitorado nosso ecossistema para garantir alto desempenho e resiliência da plataforma, que consiste de 30 microsserviços e um cluster de ElasticSearch com mais de dez nós. Também serão mostradas as ferramentas utilizadas para implementar Continuous Integration/Delivery/Deployment, e o que nos motivou a refatorar grande parte dos serviços para a linguagem Go e a substituição de RabbitMQ para NSQ.io, assim como os ganhos obtidos e desafios enfrentados com essas mudanças.
Um dos nossos principais desafios tem sido minimizar o tempo desde a captura de grandes volumes de dados até a disponibilização para clientes. Mostraremos como foi acelerado este processo de nove dias para quase realtime através de uma Stream API.
Esta solução tem o intuito de equipar o órgão com uma ferramenta fornecida na forma de software como serviço, onde será disponibilizado via internet um Sistema de Informação Geográfica para elaboração do Cadastro Ambiental Rural – CAR, em concordância com o Novo Código Florestal. O CAR em Nuvem, a ser implantado, permitirá a integração dos dados gerados pela ferramenta com o software corporativo de controle de processos utilizado pela instituição, possibilitando assim a agilidade das atividades necessárias para a emissão do CAR.
Workshop Desenvolvimento de API com ASP.NET Core 1.1, utilizando banco de dados SQL Server Linux (Docker), com testes de Integração utilizando Xunit e ASP.NET Core TestHost, com deployment contínuo para Azure via CircleCI + GitHub.
Mestrando do último ano em Engenharia de Sistemas e Computação na COPPE-UFRJ, com dissertação em ciência de dados. Analista de Dados com certificação internacional DAP (Data Analyst Program), pela Data Science Academy. Experiência acentuada com desenvolvida habilidade de raciocínio e de resolução de problemas, conduzindo projetos de análise de dados e Machine Learning. Domínio das linguagens Python, SQL e Excel VBA e das ferramentas Power BI e Google Data Studio. Ao longo da carreira, atuou em projetos de programação web com metodologia SCRUM, em problemas de otimização, em projetos de engenharia hidráulica e em área comercial de empresa de engenharia. Participou de diversos workshops de comunicação no Clube da Fala e foi coordenador da Toastmasters, ONG internacional voltada à prática da oratória.
Apresentação feita para o II Congresso de Tecnologia da Informação do Instituto Federal de Educação, Ciência e Tecnologia do Sul-rio-grandense (IFSUL) - campus Passo Fundo, no dia 30/10/2019, com intuito de apresentar uma visão sobre o desenvolvimento de aplicações realtime em PHP.
Nessa apresentação são abordadas algumas das metodologias de desenvolvimento de aplicações realtime, descrevendo seus principais objetivos e funcionalidades. Todos os apontamentos culminam na demonstração da utilização de Websockets no desenvolvimento de um aplicativo utilizando a linguagem PHP.
Tendências e desafios do PLM e Fábrica Digital na manufatura automotiva
Painel - Sandra Zimmermann (VW do Brasil), Clayton Ferraz (Chevrolet/GM do Brasil)
Mediador: Sergio Savane - Diretor de TI e Engenharia Automotiva na T-Systems do Brasil
Status Report dos projetos de TCC
Os slides fazem parte de uma atividade realizada pelos alunos da turma SIN-NA7 (7º semestre de Sistemas de Informação – 1º semestre de 2015)
As REST API’s são largamente adotadas e muito bem aceitas pelas equipes de desenvolvimento. Mas então porque algumas estão apostando no GraphQL? Embarque nessa aventura para descobrir um pouco mais sobre a linguagem de consulta do Facebook.
____
REST APIs are widely adopted and very well accepted by development teams. But then why are some betting on GraphQL? Embark on this adventure to find out more about Facebook's query language.
Big Data como Serviço: da captura à visualização de dados com alto desempenhoRicardo Longa
A Neoway fornece serviços de análise de dados e Big Data por assinatura, trabalhando com mais de 10 terabytes de dados indexados de centenas de fontes, em duas verticais: prospecção de clientes e prevenção de fraudes bancárias. Nesta palestra vamos mostrar como organizamos o fluxo de processamento e análise de dados, desde a captura dos dados de mais de 200 fontes públicas, até a disponibilização para clientes.
Apresentaremos como é gerenciado e monitorado nosso ecossistema para garantir alto desempenho e resiliência da plataforma, que consiste de 30 microsserviços e um cluster de ElasticSearch com mais de dez nós. Também serão mostradas as ferramentas utilizadas para implementar Continuous Integration/Delivery/Deployment, e o que nos motivou a refatorar grande parte dos serviços para a linguagem Go e a substituição de RabbitMQ para NSQ.io, assim como os ganhos obtidos e desafios enfrentados com essas mudanças.
Um dos nossos principais desafios tem sido minimizar o tempo desde a captura de grandes volumes de dados até a disponibilização para clientes. Mostraremos como foi acelerado este processo de nove dias para quase realtime através de uma Stream API.
Esta solução tem o intuito de equipar o órgão com uma ferramenta fornecida na forma de software como serviço, onde será disponibilizado via internet um Sistema de Informação Geográfica para elaboração do Cadastro Ambiental Rural – CAR, em concordância com o Novo Código Florestal. O CAR em Nuvem, a ser implantado, permitirá a integração dos dados gerados pela ferramenta com o software corporativo de controle de processos utilizado pela instituição, possibilitando assim a agilidade das atividades necessárias para a emissão do CAR.
Workshop Desenvolvimento de API com ASP.NET Core 1.1, utilizando banco de dados SQL Server Linux (Docker), com testes de Integração utilizando Xunit e ASP.NET Core TestHost, com deployment contínuo para Azure via CircleCI + GitHub.
2. 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
4. Um estudo de caso de monitoramento e rastreamento
frota
Geolocalização
Realtime
4
5. 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
6. 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
9. Problemas - Arquitetura existente
● Requisições frequentes
○ Várias ou nenhuma atualização
○ Processo lento (consulta no BD)
● Pouca usabilidade
○ Muitos dados na tela
9
10. 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
11. Solução - Dados em tempo real
● Arquitetura Cliente/Servidor
○ Sempre inicia no cliente
■ Cliente pergunta
■ Servidor responde
○ Canal unidirecional
11
Fonte: https://medium.com
12. Solução - Dados em tempo real
● Téc. de realtime
○ Polling
○ Streaming SIMD
Extensions
○ Websocket
12
Fonte: https://hpbn.co/websocket/
13. 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
14. 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
15. 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
16. 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
17. Requisitos para alternativa
● Financeiramente viável
● Cálculos de trajetórias
○ Roteirização
○ Distância
○ Tempo
● Apresentação dados para usuário
○ Mapa
17
19. 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/
21. 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/
24. Soluções utilizadas
● GeoRoutes API
○ Desenvolvido internamente
○ Servidor REST - Node.js
○ Centralizador
■ OSRM/Nominatim
○ Calcula velocidade
24
Fonte: Dos Autores
25. Soluções utilizadas
● OpenStreetMap
○ Mapa, tile
● Leaflet
○ Framework
○ Interatividade com o mapa
● Prós
○ Open Source
25
Fonte: https://leafletjs.com/
26. 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