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
Processamento de Eventos Complexos com Spark
Leandro Mendes Ferreira
AGENDA!
OBJETIVOS
PROJETO
RESULTADOS
APRESENTAÇÃO
PROBLEMA
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
• 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?
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?
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?
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
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)
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"
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”
PROJETO – Kie Workbench - Tela de Criação de Objeto
PROJETO – Kie Workbench - Tela de Criação de Regra Guiada
PROJETO – Kie Workbench - Tela de Criação por Tabela Guiada
PROJETO – Arquitetura de Referência
Demonstração do Fluxo de Motor de Inferência
PROJETO - Funcionamento do Motor de Regras
SerializaçãoMensagem Motor de Regras Serialização Mensagem
Fato Fato
PROEJTO - Processo Proposto
Demonstração do Processo para deploy da regra criada por cliente
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
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
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
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
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.
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
Thanks, we are
delighted to have the
opportunity to
transform with you
Leandro Mendes Ferreira: lmendesf@everis.com

Processamento de Eventos Complexos com Spark

  • 1.
    UMA ARQUITETURA DEREFERÊNCIA PARA PROCESSAMENTO DE EVENTOS COMPLEXOS EM NEAR- REALTIME UTILIZANDO SISTEMAS DE GERENCIAMENTO DE REGRAS DE NEGÓCIO Leandro Mendes Ferreira
  • 2.
    Processamento de EventosComplexos com Spark Leandro Mendes Ferreira
  • 3.
  • 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 dedados 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 explicitarregras 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 umaarquitetura 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”
  • 12.
    PROJETO – KieWorkbench - Tela de Criação de Objeto
  • 13.
    PROJETO – KieWorkbench - Tela de Criação de Regra Guiada
  • 14.
    PROJETO – KieWorkbench - Tela de Criação por Tabela Guiada
  • 15.
    PROJETO – Arquiteturade Referência Demonstração do Fluxo de Motor de Inferência
  • 16.
    PROJETO - Funcionamentodo Motor de Regras SerializaçãoMensagem Motor de Regras Serialização Mensagem Fato Fato
  • 17.
    PROEJTO - ProcessoProposto Demonstração do Processo para deploy da regra criada por cliente
  • 18.
    RESULTADOS – CASODE 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 - InfraEstrutua 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 - Arquiteturautilizada 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 deProcessamento 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 foidemostrado 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 delightedto have the opportunity to transform with you Leandro Mendes Ferreira: lmendesf@everis.com