O documento apresenta uma arquitetura de referência para processamento de eventos complexos em tempo quase real utilizando sistemas de gerenciamento de regras de negócio. A arquitetura propõe o uso de ferramentas como Apache Spark, Apache Kafka e Drools/Kie para processar grandes volumes de dados gerados por eventos e aplicar regras de negócio definidas por usuários. Um caso de uso demonstrou que a arquitetura pode processar milhares de eventos por segundo conforme as regras definidas.
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
Processamento de Eventos Complexos com Spark e Drools
1. UMA ARQUITETURA DE REFERÊNCIA PARA
PROCESSAMENTO DE EVENTOS COMPLEXOS EM NEAR-
REALTIME UTILIZANDO SISTEMAS DE GERENCIAMENTO
DE REGRAS DE NEGÓCIO
Leandro Mendes Ferreira
4. Quem sou eu?
• Formado em Processamento de Dados pela FATEC
Sorocaba
• MBA em BI pela FIAP
• Mestrando pela Politécnica - USP
• Especialista em Sistemas – Big Data na everis
• Trabalho com Big Data a Cerca de 3 anos
5. • A everis, uma empresa do grupo NTT DATA
• Atualmente tem 13.000 profissionais em 14 países
Linhas de Negócios:
• Consultoria de negócios
• Serviços de tecnologia da informação
• Outsourcing
• Business Process Outsourcing (BPO)
• Soluções SAP
• Iniciativas & Inovação
O que é a everis?
6. PROBLEMA
• Milhares de dados são gerados como eventos por dia:
• Sensores em smarts cities
• IoT (Internet of Things)
• Eventos de consumo
• Transações Financeiras
• Comercio eletrônico
• Como processar essa grande quantidade de eventos?
• Como tomar decisões em tempo real com esses
dados?
7. PROBLEMA
• Como explicitar regras de negócios em sistemas?
• Como criar um sistema robusto o suficiente para
processar em tempo próximo ao real regras definidas
por usuários de negócios?
8. OBJETIVOS
• Criar uma arquitetura de referência de um motor de inferência de eventos
• Utilizar ferramentas de Big Data como base para processamento de um grande
volume de eventos
• Subsidiar o sistema de processamento por um sistema de gerenciamento de
regras de negócios
9. PROJETO - FERRAMENTAS
• Como solução dos problemas levantados, foi desenvolvido um
sistema baseados em ferramentas de Big Data para
processamento de eventos complexo (CEP) juntamente com
um sistema de gerenciamento de regras de usuários (BRMS).
• As ferramentas utilizadas foram:
• Apache Spark (Ferramento para processamento em streaming de
eventos)
• Apache KAFKA (Ferramenta para transporte de mensagens
• Jboos Drools (Sistema para criação e processamento de regras de
usuários)
• Kie Workbench (Pertencente ao projeto Drools, o Kie é portal de
criação de regras de usuários)
10. PROJETO - Drools/ Kie
• O projeto Jboss Drools funciona com as características de um sistema especialista.
• Possui uma base de conhecimento, um motor de inferência e uma interface de/para criação de regras por usuários
Através do algoritmo ReteOO (o algoritmo Rete na sua versão
orientada a objeto) o Drools faz um casamento de padrões de
acordo com os Fatos Gerados ou Memória de Trabalho, e
usando a base de conhecimento ou Memória de Produção
efetua a correspondência de padrão. Ocorrendo o casamento
de padrões são geradas as ações, este processo é denominado
como "Agenda"
11. PROJETO - Drools/ Kie
A estrutura de uma regra no Drools é formada por uma
sequência de condição do bloco “Quando” e consequência ou
ação do bloco “Então”. “A primeira, também conhecida como
Left Hand Side (LHS), define as premissas impostas aos fatos
para que a mesma seja satisfeita. A última, a Right Hand Side
(RHS), é o conjunto de ações a serem executadas caso as
precondições sejam atendidas”
16. PROJETO - Funcionamento do Motor de Regras
SerializaçãoMensagem Motor de Regras Serialização Mensagem
Fato Fato
17. PROEJTO - Processo Proposto
Demonstração do Processo para deploy da regra criada por cliente
18. RESULTADOS – CASO DE USO
Regra Criada
Caso o FATO possuísse CESTA_PRODUTOS = "A" e
INDICACAO_BLOQUEIO = TRUE e
SALDO_DISPONIVEL > 11999.99 e
SEGMENTO contendo um dos seguintes valores (1,2,3) então
gerava-se como ação o objeto ACAO com campo CAMPANHA_DISPARADA = “SIM”
• Foi criado um ambiente simulado de transações bancárias.
• A partir de um determinado evento de saldo em conta corrente
deveria disparar uma campanha de marketing em tempo real para o
cliente que satisfizesse a regra implementada.
• Os geradores de fatos postavam em um tópico específico do
Apache Kafka, um fato em forma de texto estruturado
• Caso o evento satisfizesse a regra estabelecida, uma ação era
tomada. E
• A ação era representada na postagem de uma mensagem de texto
também estruturada como um JSON
19. RESULTADOS - Infra Estrutua Utilizada
• Servidores na “nuvem”, hospedados na Digital Ocean
• Para o Apache Spark
• Cluster de 3 nós
• 16GB de Memória, 8 Cores de CPU e 160GB de Disco SSD
• Para Apache Kafka
• Servidor com: 8GB de Memória, 4 Cores de CPU e 80GB de Disco SSD
• Jboos Drools
• Servidor com: 2GB de Memória, 2 Core de CPU e 40GB de Disco SSD
20. RESULTADOS - Arquitetura utilizada para Caso de USO
Arquitetura montada para testar o conceito proposto
Entry Service Layer
Processing Layer Decision Layer
Management Layer
Fast Layer
Management
Layer
Ingestor
21. RESULTADOS
• Janela de Processamento de 30 segundos no Apache Spark
• 5 Agentes geradores de eventos em Python
• Cada agente gerava 200 eventos por segundo para o Apache Kafka
• Processamento
• O objetivo proposto neste caso de uso foi o processamento e postagem dos 30 mil fatos na
janela de 30 segundos, tendo assim uma latência de mil operações processadas pelo Apache
Spark por segundo. Este caso de uso foi executado initerruptamente durante 4 horas. A
arquitetura proposta conseguiu atingir o objetivo proposto. O Apache Spark conseguiu
processar todas as mensagens sem perdas em todos os casos
• Não foi levada em conta à volumetria dos dados, mais sim a quantidade de mensagens e
eventos gerados
22. Conclusão
Neste trabalho foi demostrado que é possível criar um
sistema robusto para processamento de grandes volumes de
informações utilizando as vantagens dos BRMSs e CEPs. No
caso de uso apresentado, foi verificado que aplicações com
implicações reais para os negócios podem ser criadas com
base na arquitetura de referência proposta. Foi
demonstrado que esta arquitetura tem potencial para
processar grandes volumes de dados.
23. Bibliografia
• Baptista. G., Processamento Distribuído de Eventos Complexos (CEP), PUC-Rio, 2016. Disponível em : http://www-di.inf.puc-
rio.br/~endler/courses/semGSD/monografias/Gustavoaptista-Distr-CEP.pdf
• Bazzotti, C.; Garcia, E. A importância do sistema de informação gerencial para tomada de decisões, 2005. Disponível em: http://www.waltenomartins.com.br/sig_texto02.pdf.
• Duarte, D., Azevedo, L., Puntar, S., Romeiro C., Baião. F., Cappeli, C., Conceituação em BRMS. Relatórios Técnicos do Departamento de Informática Aplicada da UNIRIO n°
0022/2009, 2009.
• Drools., J. Drools Documentation: The JBoss Drools team - Version 6.5.0.Final, 2016 Disponível em : https://docs.jboss.org/drools/release/latest/drools-docs/html_single/
• Ferreira. L. M., Modelo de Processo para Criação de BI em Banco de Dados Orientado a Colunas. Congresso Ibero Americano de Computação Aplicada (CIACA 2015), 2015.
• Ganta, M., How-to: Build a Complex Event Processing App on Apache Spark and Drools. 2015, https://blog.cloudera.com/blog/2015/11/how-to-build-a-complex-event-
processing-app-on-apache-spark-and-drools/.
• Hopgood, A. A., Intelligent Systems for Engineers and Scientists, Second Edition. CRC Press. Drools JBoss Rules 5.0 Developer’s Guide, Packt Publishing, 2009.
• Lundberg. A., Utilização do Processamento de Eventos Complexos (CEP) para Melhoria do Desempenho Operacional. BUSINESS INTELLIGENCE JOURNAL - VOL. 11, Nº. 1 55,
2009.
• Mano, L.Y.; Funes, M. M.; Volpato, T. e Neto, J. R. T. Explorando tecnologias de IoT no contexto de health smart home: uma abordagem para detecção de quedas em pessoas
idosas. JADI: Marília.V.2, P. 46-57, 2016.
• McAfee, A., Brynjolfsson, E., Big Data: The Management Revolution, Harvard Business Review, 2012
• Momoh. J., Srinivasan D., Tomsovic K., Baer D., Tutorial on Fuzzy Logic Applications in Power Systems - Chapter 5: Expert Systems Applications, M.Y. Chov (eds.), 2000.
• Passos, E. L., Inteligência Artificial e Sistemas Especialistas ao Alcance de Todos. LCT, 1989.
• Pereira, I. S. A., Drools Situation: uma Abordagem Baseada em Regras para Detecção de Situações, Monografia de Bacharelado para Universidade Federal do Espirito Santo,
2011.
• Spark, A., Spark wins Daytona Gray Sort 100TB Benchmark, 2015. Disponível em: http://spark.apache.org/news/spark-wins-daytona-gray-sort-100tb-benchmark.html.
• Spark, A., Apache Spark Documentation, 2016. Disponível em: https://spark.apache.org/documentation.html.
• Souza, D. C., Neto, A. D. D., Melo, J. D., Leitão, G. B. P., Kaku. Saito. (2012) BR-PLANTEXPERT: Um Sistema Especialista para Auxílio à Tomada de Decisão em Processos
Industriais. Congresso Brasileiro de Automática, 2012.
• Wang, Y., Stream Processing Systems Benchmark: StreamBench. Dissertação de Metrado para Aalto University School of Science, 2015.
• Weppenaar, D. V. I., Vermaak, H. J., Solving planning problems with Drools Planner a tutorial. Interdisciplinary Journal, Volume 10, Interim, 2011
24. Thanks, we are
delighted to have the
opportunity to
transform with you
Leandro Mendes Ferreira: lmendesf@everis.com