Processamento de Eventos Complexos Nativo de Nuvem
para Cidades Inteligentes
Fernando Freire Scattone - ffs@ime.usp.br
Kelly Rosa Braghetto - kellyrb@ime.usp.br
Fevereiro de 2021
Departamento de Ciência da Computação
Instituto de Matemática e Estatística
Universidade de São Paulo
Índice
- Introdução
- Conceitos
- Trabalhos Relacionados
- Arquitetura CEP Handler
- Construção do Protótipo
- Experimento
- Resultados
- Conclusões
Introdução
Cidades Inteligentes
- Uso da infraestrutura de tecnologia da informação para otimizar o uso de recursos no município.
- Sensores e atuadores coletam de dados em larga escala constantemente.
- Algumas situações necessitam de processamento de dados em tempo real.
- Processamento de Eventos Complexos - CEP
(Complex Event Processing) é uma das principais técnicas atuais para a detecção de eventos em tempo real.
Problemas
- Ferramentas de CEP de software livre não possuem suporte nativo para execução distribuída e auto-escalável.
Objetivo deste Trabalho
- Criar uma arquitetura de CEP nativa de nuvem para o processamento de eventos de cidades inteligentes, que cumpra os seguintes requisitos:
- auto-escalabilidade.
- tolerância a falhas no ambiente de execução.
Contribuições deste Trabalho
- Uma arquitetura de microsserviços coreografada nativa de nuvem para a distribuição de CEP.
- Implementação de um protótipo desta arquitetura a partir de ferramentas de software livre.
- Experimento relacionado a cidades inteligentes, utilizando dados reais de posição de ônibus, com quatro métricas de avaliação:
- latência
- vazão de eventos
- tempo de uso de recursos computacionais
- capacidade de auto-escalabilidade
Publicações
- A Microservices Architecture for Distributed Complex Event Processing in Smart Cities
1º Workshop on the Distributed Smart City (WDSC'2018), durante o 37th IEEE International Symposium on Reliable Distributed Systems.
- Processamento Distribuído de Eventos Complexos Aplicado à Detecção de Eventos no Trânsito em Tempo Real
Escola Regional de Alto Desempenho - São Paulo - 2020
Conceitos
Complex Event Processing - CEP
- Evento: dado que entra no sistema ou é detectado.
- Tipo de Evento: classe de eventos com os mesmos atributos e que são gerados da mesma forma.
- Produtores de Eventos.
- Consumidores de Eventos.
- Processadores de Eventos - EPA (Event Processing Agent).
- Rede de Processadores de Eventos - EPN (Event Processing Network).
Operadores de CEP
Operadores de CEP:
- Filtragem
- Projeção
- Tradução
- Divisão
- Enriquecimento
- Agregação
- Composição
- Detecção de Padrões
Alguns operadores precisam de dados de vários eventos de entrada para detectar um novo evento.
Exemplo de CEP - Rede de Processamento de Eventos de Localização de Ônibus
EPA 1
EPA 2
EPA 3
Produtor de Eventos
Consumidor de Eventos
Consumidor de Eventos
Contexto em CEP
- Separação dos eventos de entrada em partições de acordo com valores dos atributos dos eventos de entrada, quantidade dos eventos de entrada ou marca temporal de chegada dos eventos de entrada(Ex: Janelas de Eventos).
EPA 1
janela de 3 eventos
EPA 1
janela de 3 eventos
EPA 1
janela de 3 eventos
EPA 1
janela de 3 eventos
Contexto em CEP
- Separação dos eventos de entrada em partições de acordo com valores dos atributos dos eventos de entrada, quantidade dos eventos de entrada ou marca temporal de chegada dos eventos de entrada(Ex: Janelas de Eventos).
EPA 1
janela de 3 eventos
EPA 1
janela de 3 eventos
EPA 1
janela de 3 eventos
EPA 1
janela de 3 eventos
Distribuição e Estado de CEP
- Processamento dos tipos de evento podem ser alocados e realocados em vários nós de processamento.
- Realocação do processamento de tipos de eventos necessita da recriação do estado em outro nó de processamento.
- Estado: As informações armazenadas pelo EPA para gerar novos eventos.
- A quantidade de estado impacta diretamente na distribuição e realocação do processamento de eventos.
Ferramentas de CEP
- Principais ferramentas de CEP de software livre: ESPER, Drools Fusion e WSO2.
- O processamento distribuído é feito acoplando a outras ferramentas de stream.
- Sem suporte ao uso de gerenciadores dinâmicos de recursos na nuvem.
Sistemas Nativos de Nuvem
- Requisitos principais: Auto-escalabilidade e tolerância a falhas do ambiente de execução.
- Propósito: minimizar intervenção manual durante o funcionamento do sistema.
- Integram a especificação dos recursos computacionais de execução ao desenvolvimento de cada parte do sistema.
- Usam gerenciadores dinâmicos de recursos na nuvem.
Arquitetura de Microsserviços
- Microsserviços: Serviços pequenos e autônomos que trabalham bem como um conjunto.
- Principais requisitos:
- Escalabilidade
- Fácil versionamento e substituição
- Resiliência
- Composicionalidade
Estilo de Organização dos Microsserviços
- Orquestração: microsserviço central controla todas operações.
- Coreografia: microsserviços colaboram para realizar operações.
- maior tolerância a falhas do sistema.
Escalabilidade de Microsserviços
Microsserviços sem Estado
- Operações independentes da instância.
- Balanceamento de carga automático pelo sistema gerenciador de recursos na nuvem.
Microsserviços com Estado
- Operações dependentes da instância.
- Balanceamento de carga por replicação ou particionamento (ex: SGBDs).
- Distribuição de processamento de eventos similar a particionamento.
Trabalhos Relacionados
Trabalhos Relacionados
Distribuição de Tipos de Eventos com Dependências Similares.
Distribuição de Tipos de Evento Baseada em Desempenho.
Distribuição da Detecção de um Único Tipo de Evento.
Isoyama et. al.(2012), Kobayashi et. al.(2015)
Pathak e Vaidehi(2015)
Martins et al.(2014)
Shin et al.(2014)
Randika e Ranathunga(2018)
Xiao et al.(2017)
Jayasekara et al.(2015)
Schultz-Moller et al.(2009)
Balkensen et al.(2013)
Isoyama et. al 2012
- Distribuição do processamento de eventos de acordo com a similaridade dos tipos de eventos de entrada.
Martins et. al 2014
- Distribuição do processamento de eventos de acordo com o consumo de recursos de cada tipo de evento.
Principais Trabalhos Relacionados
Arquitetura
CEP Handler
Arquitetura de Microsserviços
para CEP Distribuído - CEP Handler
- CEP Cataloger - API para interface com o usuário.
- Event Composer - transforma dados de entrada em eventos.
- Event Sender - chama os web-hooks a partir da detecção de eventos.
- CEP Worker - realiza a detecção de eventos.
- SGBD Chave-Valor e Sistema de Mensageria
Arquitetura CEP Handler
Instâncias de CEP Worker
- Processam múltiplos tipos de eventos ao mesmo tempo.
- Monitoram periodicamente seu próprio uso de recursos.
- Registram no SBGD quando estão em sobrecarga ou subcarga.
- Em caso de falha, elas conseguem se recuperar automaticamente.
Instâncias de CEP Worker
- Requisitam novas instâncias em casos de sobrecarga em todo o sistema.
- Realocam tipos de evento em tempo de execução, de forma sequencial, reconstruindo o estado em outra instância.
- Se inscrevem nos mesmos tipos de evento de entrada e reconstroem o estado a partir da definição da janela de eventos usada.
- Podem se auto-remover em caso de subcarga.
Algoritmo de Balanceamento de Carga por Uso de Estado
Ordena os tipos de eventos pelo tamanho da janela de eventos de entrada e seleciona para realocação o tipos com menor janela de eventos.
CEP Worker
Janela de eventos
EPA 1
evento
EPA 2
Algoritmo de Balanceamento de Carga por Similaridade de Entrada
Ordena os tipos de eventos pela similaridade dos tipos de eventos de entrada e seleciona para realocação os eventos com tipos de entrada menos usados.
CEP Worker
EPA 1
EPA 2
EPA 3
Construção do Protótipo
Protótipo
Construído como extensão da Plataforma InterSCity¹.
¹Instituto Nacional de Ciência e Tecnologia da
Internet do Futuro para Cidades Inteligentes - interscity.org
Ferramentas
Experimento
Cenário do Experimento
Monitoramento de Tráfego de Ônibus
Tipos de Eventos
- 708 tipos para detecção de velocidades instantâneas de ônibus (vf), um por linha.
- 708 tipos para filtragem de velocidades entre 0 e 100 km/h (vi), um por linha.
- 180 tipos para cálculo de velocidade média de ônibus (vel), um por linha que passa em corredores.
- 12 tipos para cálculo de velocidade média em corredor (corr), um para cada corredor principal.
- 14.121 tipos para detecção de agrupamento em linha de ônibus (busB), um para cada ônibus.
Experimento
- Dados de posição de ônibus entre as 7:57 até as 11:02, o intervalo com alta variação no número de dados enviados.
- 1 evento de cada veículo a cada 10~15 segundos.
- Simulação dos dados em tempo real.
- 10 repetições, cinco para cada um dos algoritmos de balanceamento de carga.
- VMs do tipo t3a.medium da AWS, com 2 vCPU, 4 GB de memória RAM e até 5 Gbps de rede¹.
¹Projeto CNPq/AWS No. 032/2019 - "Computação em nuvem para big-data em cidades inteligentes"
Resultados
Dados Detectados
Histograma do número de ocorrências de agrupamento de ônibus para uma execução do experimento.
Dados Detectados
Velocidades médias no corredor de ônibus Guarapiranga para uma execução do experimento.
Auto-Escalabilidade
Número de eventos entrando no sistema e número de instâncias em função do tempo - Uso de Estado.
Auto-Escalabilidade
Número de eventos entrando no sistema e número de instâncias em função do tempo - Similaridade de Entrada.
Auto-Escalabilidade
- O número de instâncias aumenta conforme o cadastro de novos tipos de eventos e conforme o aumento do número de eventos entrando no sistema.
- Número máximo de instâncias:
- Algoritmo de Uso de Estado: 5 instâncias.
- Algoritmo de Similaridade de Entrada: 6 instâncias.
Vazão
Número de Eventos Detectados
Balanceamento de Carga por Uso de Estado
1.703.200
1.705.963
1.704.298
1.709.012
1.707.569
Média: 1.706.008,4
Desvio Padrão: 2.359,65
Balanceamento de Carga por Similaridade de Entrada
1.706.853
1.707.100
1.703.770
1.703.887
1.704.115
Média: 1.705.145
Desvio Padrão: 1.678,79
Diferença consequente da variação de latência e uso de janelas temporais nos tipos de eventos.
Tempo de Uso de Recursos
Balanceamento de Carga por Uso de Estado
1.049,94 min
1.041,69 min
1.041,86 min
1.042,23 min
1.052,08 min
Média: 1.045,56 min
Desvio Padrão: 5,04 min
Balanceamento de Carga por Similaridade de Entrada
1.045,14 min
1.054,98 min
1.047,93 min
1.052,84 min
1.045,12 min
Média: 1.049,20 min
Desvio Padrão: 4,51min
Tempo de uso de todos os CEP Workers somado,
por repetição do experimento.
Latência
Latência para velocidade instantânea.
Latência
Latência para filtro de velocidade.
Latência
Latência para velocidade média de ônibus nos corredores.
Latência
Latência para velocidade média de cada corredor.
Latência
Latência para detecção de agrupamento de ônibus.
Latência ao Longo do Experimento
Latência para os eventos de filtro de velocidade na execução 3 - Similaridade de Entrada
Análise dos Resultados do Experimento
- Os dois algoritmos de balanceamento de carga apresentaram desempenho similar, em relação a todas as métricas.
- O sistema se provou auto-escalável, aumentando o número de instâncias de acordo com o aumento do número de eventos entrando no sistema.
- As latências crescem de acordo com o uso de recursos e atingem um patamar superior mesmo com o aumento contínuo da carga de entrada.
Conclusões
Conclusões
- Cidades Inteligentes necessitam de tratamento de dados em tempo real e CEP oferece técnicas otimizadas para isso.
- Este trabalho propõe uma arquitetura de microsserviços coreografada para a distribuição do processamento de eventos que cumpre os seguintes requisitos:
- tolerância a falhas em nós de processamento.
- auto-escalabilidade.
- Protótipo construído como extensão da Plataforma InterSCity de Cidades Inteligentes, somente com ferramentas de software livre.
Conclusões
- Experimento feito com 15.729 tipos de evento.
- Dados coletados de 708 linhas de ônibus da cidade de São Paulo, coletados por 3 horas contínuas.
- Quatro métricas analisadas: tempo de uso, auto-escalabilidade, latência e vazão dos eventos.
- Resultados mostraram que o sistema é auto-escalável, sem perda significativa de eventos e mantêm uma latência baixa ao longo das execuções.
- terceiro quartil das latências < 100 ms.
Sugestões para Pesquisas Futuras
- Uso de dados para o experimento com maior variação de fluxo.
- Experimentos com tipos de eventos mais diversos e com mais tipos de operadores.
- Recuperação de falhas para reconstrução dos estados dos tipos de eventos a partir do reenvio dos eventos de entrada.
- Paralelização do processo de realocação de eventos em threads, para diminuir o tempo necessário para a redistribuição de tipos de eventos entre instâncias.
- Comparação do uso de outros sistemas de mensageria.
Processamento Distribuído de Eventos Complexos Aplicado à Detecção de
Eventos no Trânsito em Tempo Real
Fernando Freire Scattone - ffs@ime.usp.br
Fevereiro de 2021
O presente trabalho foi realizado com apoio da Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Brasil (CAPES) - Código de Financiamento 001. Ele também é parte do INCT da Internet do Futuro para Cidades Inteligentes financiado pelo CNPq proc. 465446/2014-0, Coordenação de Aperfeiçoamento de Pessoal de Nível Superior -- Brasil (CAPES) -- Código de Financiamento 001, FAPESP proc. 14/50937-1 e FAPESP proc. 15/24485-9.
gitlab.com/interscity/interscity-platform
Processamento de Eventos Complexos
- Uma das principais técnicas de processamento em tempo real é CEP - Complex Event Processing.
- Permite a detecção de eventos em tempo real a partir da entrada de um fluxo de dados e regras, estabelecidas como tipos de eventos.
- Pode ser usado para modelar a detecção de situações de interesse no mundo real a partir de medições de sensores.
Balanceamento de Carga entre
CEP Workers
- Cada instância processa múltiplos tipos de eventos ao mesmo tempo e pode realocá-los em tempo de execução.
- Quando o limite de sobrecarga é atingido por todas instâncias, uma nova instância é requisitada.
- Quando o limite de subcarga é atingido por uma instância, ela inicia o processo para se auto-remover.
- A realocação de tipos de eventos em tempo de execução é feita de forma sequencial por cada instância de CEP Worker.
Protótipo Arquitetura de Microsserviços
para CEP Distribuído - CEP Handler
Protótipo construído como extensão da Plataforma InterSCity¹.
- CEP Cataloger - API para interface com o usuário.
- Event Composer - tranforma dados de entrada em eventos.
- CEP Worker - realiza a detecção de eventos.
- Event Sender - chama os web-hooks a partir da detecção de eventos.
¹Instituto Nacional de Ciência e Tecnologia da
Internet do Futuro para Cidades Inteligentes - interscity.org
Processamento de Eventos Complexos Nativo de Nuvem para Cidades Inteligentes
By Fernando Freire Scattone
Processamento de Eventos Complexos Nativo de Nuvem para Cidades Inteligentes
Apresentação de mestrado
- 454