Upload
ricardo-longa
View
2.920
Download
3
Embed Size (px)
Citation preview
Globalcode – Open4education
Trilha SOA & Big DataDa introdução à prática com Drools Expert e Drools Flow
Ricardo da Silva Longa
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.
Globalcode – Open4education
Agenda
JBoss DroolsIntrodução e curiosidades
Drools ExpertO que é?Como funciona?Quando não utilizar?Quais as vantagens/desvantagens?Domain Specification Language (DSL)
Globalcode – Open4education
Agenda
Drools Flow (atual jBPM 5)
O que é?Como funciona?
Globalcode – Open4education
Agenda
JBoss DroolsIntrodução e curiosidades
Drools ExpertO que é?Como funciona?Quando não utilizar?Quais as vantagens/desvantagens? Domain Specification Language (DSL)
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
Globalcode – Open4education
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
Globalcode – Open4education
- Curiosidades
“Drools 5 introduces the Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing.”
Globalcode – Open4education
- Curiosidades
Globalcode – Open4education
Agenda
JBoss DroolsIntrodução e curiosidades
Drools ExpertO que é?Como funciona?Quando não utilizar?Quais as vantagens/desvantagens?Domain Specification Language (DSL)
Globalcode – Open4education
- O que é?
“Is a declarative, rule based, coding environment.”Foco em “o que fazer” e não em “como fazer”.
regras.drl
Globalcode – Open4education
Agenda
JBoss DroolsIntrodução e curiosidades
Drools ExpertO que é?Como funciona?Quando não utilizar?Quais as vantagens/desvantagens?Domain Specification Language (DSL)
Globalcode – Open4education
- Como funciona?
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.
Globalcode – Open4education
- Como funciona?
Globalcode – Open4education
- Como funciona?
Globalcode – Open4education
- Como funciona?
Globalcode – Open4education
- Como funciona?
Alto custo
Carregamos a production memory.
Globalcode – Open4education
- Como funciona?
Criamos uma nova sessão, nosso ponto de interação com a inference engine.
Globalcode – Open4education
- Como funciona?
Nosso Pojo, nosso Fato.
Globalcode – Open4education
- Como funciona?
Inserimos nosso Fato na working memory.
Globalcode – Open4education
- Como funciona?
Disparamos nossas regras!
Globalcode – Open4education
- Como funciona?
Globalcode – Open4education
- Como funciona?
Condição: Código nativo DRL.
Globalcode – Open4education
- Como funciona?
Consequência: Código Java.
Globalcode – Open4education
- Como funciona?
A consequência será executadaconsiderando a idade do Fulano?
“It’s considered very bad practice to have conditional logic (if statements) within rule consequence.”
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.”
Globalcode – Open4education
- Como funciona?
Globalcode – Open4education
Agenda
JBoss DroolsIntrodução e curiosidades
Drools ExpertO que é?Como funciona?Quando não utilizar?Quais as vantagens/desvantagens?Domain Specification Language (DSL)
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.
Globalcode – Open4education
Agenda
JBoss DroolsIntrodução e curiosidades
Drools ExpertO que é?Como funciona?Quando não utilizar?Quais as vantagens/desvantagens?Domain Specification Language (DSL)
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.
Globalcode – Open4education
- Desvantagens
Necessidade de treinamento da equipe (analogia aos comandos SQL);
Alto consumo de memória.
Globalcode – Open4education
Agenda
JBoss DroolsIntrodução e curiosidades
Drools ExpertO que é?Como funciona?Quando não utilizar?Quais as vantagens/desvantagens?Domain Specification Language (DSL)
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 ...”
Globalcode – Open4education
- DSL
Globalcode – Open4education
- DSL
Globalcode – Open4education
- DSL
Globalcode – Open4education
Agenda
Drools Flow (jBPM 5)O que é?Como funciona?
Globalcode – Open4education
- O que é?
“Allow user to create a graphical flow chart that defines the order in which rule sets should be evaluated.”
Globalcode – Open4education
Agenda
Drools Flow (jBPM 5)O que é?Como funciona?
Globalcode – Open4education
- Como funciona?
Globalcode – Open4education
- Como funciona?
Globalcode – Open4education
Referências
http://www.jboss.org/drools/http://www.jboss.org/drools/drools-experthttp://blog.athico.com/http://markproctor.com/http://drools.askdefine.com/