O documento apresenta a trilha "SOA & Big Data" da Globalcode sobre JBoss Drools e Drools Flow. Resume os tópicos apresentados: introdução ao Drools Expert e como funciona a engine de regras; quando não utilizar Drools Expert; e uma breve introdução ao Drools Flow para modelagem de fluxos de regras.
2. Globalcode – Open4education
Ricardo Longa (@ricardolonga)
Graduado em Sistemas de Informação;
Pós-graduado em Eng. de Software;
Analista de Sistemas na Dígitro Tecnologia;
Em contato com Java desde 2005.
3. Globalcode – Open4education
Agenda
JBoss Drools
Introdução e curiosidades
Drools Expert
O que é?
Como funciona?
Quando não utilizar?
Quais as vantagens/desvantagens?
Domain Specification Language (DSL)
5. Globalcode – Open4education
Agenda
JBoss Drools
Introdução e curiosidades
Drools Expert
O que é?
Como funciona?
Quando não utilizar?
Quais as vantagens/desvantagens?
Domain Specification Language (DSL)
6. Globalcode – Open4education
- Criado em 2001 por Bob McWhirter e Mark
Proctor e disponibilizado na SourceForge;
- V. 1.0 nunca liberada;
- V. 2.0 Rete/final/Mark/XML/Codehaus (também criado por
Bob em 2003);
- Principal mecanismo de regras Java open source;
- V. 3.0 introduziu o formato DRL;
- V. 4.0 grandes melhorias no desempenho;
- 2005 federado pela JBoss;
- 2006 a JBoss foi adquirida pela Red Hat;
- Roda também na plataforma .NET.
- Curiosidades
8. Globalcode – Open4education
- Curiosidades
“I started out contributing to open-source as a way to learn C++.” (Bob)
“I created (along with Mark Proctor) the Drools open-source rule engine, and
sold it to JBoss.” (Bob)
@bobmcwhirter @markproctor
9. Globalcode – Open4education
- Curiosidades
“Drools 5 introduces the Business Logic integration Platform which provides
a unified and integrated platform for Rules, Workflow and Event Processing.”
11. Globalcode – Open4education
Agenda
JBoss Drools
Introdução e curiosidades
Drools Expert
O que é?
Como funciona?
Quando não utilizar?
Quais as vantagens/desvantagens?
Domain Specification Language (DSL)
12. Globalcode – Open4education
- O que é?
“Is a declarative, rule based, coding environment.”
Foco em “o que fazer” e não em “como fazer”.
regras.drl
13. Globalcode – Open4education
Agenda
JBoss Drools
Introdução e curiosidades
Drools Expert
O que é?
Como funciona?
Quando não utilizar?
Quais as vantagens/desvantagens?
Domain Specification Language (DSL)
15. Globalcode – Open4education
- Como funciona?
Regras escritas em Java, MVEL, Python ou Groovy;
Regras em arquivos .DRL;
Inference engine: executor das regras;
Production memory: as regras em memória;
Working memory: onde inserimos os fatos.
27. Globalcode – Open4education
- Como funciona?
A consequência será executada
considerando a idade do Fulano?
“It’s considered very bad practice to have conditional logic (if statements) within
rule consequence.”
28. Globalcode – Open4education
- Como funciona?
“When a fact is inserted/modified/retracted the rule engine works with a
new set of facts; rules may be activated/deactivated.”
30. Globalcode – Open4education
Agenda
JBoss Drools
Introdução e curiosidades
Drools Expert
O que é?
Como funciona?
Quando não utilizar?
Quais as vantagens/desvantagens?
Domain Specification Language (DSL)
31. Globalcode – Open4education
- Quando não utilizar?
Projeto com poucas regras (menos de 20);
Sem a necessidade de alterar as regras em tempo de
execução;
Em um ambiente restrito de memória;
Falta tempo para o treinamento necessário para a equipe.
32. Globalcode – Open4education
Agenda
JBoss Drools
Introdução e curiosidades
Drools Expert
O que é?
Como funciona?
Quando não utilizar?
Quais as vantagens/desvantagens?
Domain Specification Language (DSL)
33. Globalcode – Open4education
- Vantagens
Fácil de compreender (Declarativo);
Fácil manutenção;
Lógica separada dos dados;
Alto desempenho (algoritmo RETE);
Requisitos se tornam regras;
Ferramentas de integração (validação, debugging, etc);
Reusabilidade.
34. Globalcode – Open4education
- Desvantagens
Necessidade de treinamento da equipe (analogia aos comandos SQL);
Alto consumo de memória.
35. Globalcode – Open4education
Agenda
JBoss Drools
Introdução e curiosidades
Drools Expert
O que é?
Como funciona?
Quando não utilizar?
Quais as vantagens/desvantagens?
Domain Specification Language (DSL)
36. Globalcode – Open4education
- DSL
“Are a way of creating a rule language that is dedicated to your problem domain.”
Melhora a legibilidade do seu código;
Ótimo exemplo: comando SQL.
“SELECT nome FROM pessoa WHERE ...”
41. Globalcode – Open4education
- O que é?
“Allow user to create a graphical flow chart that defines the order in which rule
sets should be evaluated.”