Da introdução à prática com Drools Expert e Drools Flow

45
Globalcode – Open4education Trilha SOA & Big Data Da introdução à prática com Drools Expert e Drools Flow Ricardo da Silva Longa

Transcript of Da introdução à prática com Drools Expert e Drools Flow

Page 1: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

Trilha SOA & Big DataDa introdução à prática com Drools Expert e Drools Flow

Ricardo da Silva Longa

Page 2: Da introdução à prática com Drools Expert e Drools Flow

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.

Page 3: Da introdução à prática com Drools Expert e Drools Flow

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)

Page 4: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

Agenda

Drools Flow (atual jBPM 5)

O que é?Como funciona?

Page 5: Da introdução à prática com Drools Expert e Drools Flow

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)

Page 6: Da introdução à prática com Drools Expert e Drools Flow

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

Page 7: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

Page 8: Da introdução à prática com Drools Expert e Drools Flow

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

Page 9: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Curiosidades

“Drools 5 introduces the Business Logic integration Platform which provides a unified and integrated platform for Rules, Workflow and Event Processing.”

Page 10: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Curiosidades

Page 11: Da introdução à prática com Drools Expert e Drools Flow

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)

Page 12: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- O que é?

“Is a declarative, rule based, coding environment.”Foco em “o que fazer” e não em “como fazer”.

regras.drl

Page 13: Da introdução à prática com Drools Expert e Drools Flow

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)

Page 14: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 15: Da introdução à prática com Drools Expert e Drools Flow

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.

Page 16: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 17: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 18: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 19: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Alto custo

Carregamos a production memory.

Page 20: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Criamos uma nova sessão, nosso ponto de interação com a inference engine.

Page 21: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Nosso Pojo, nosso Fato.

Page 22: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Inserimos nosso Fato na working memory.

Page 23: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Disparamos nossas regras!

Page 24: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 25: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Condição: Código nativo DRL.

Page 26: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Consequência: Código Java.

Page 27: Da introdução à prática com Drools Expert e Drools Flow

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.”

Page 28: Da introdução à prática com Drools Expert e Drools Flow

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.”

Page 29: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 30: Da introdução à prática com Drools Expert e Drools Flow

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)

Page 31: Da introdução à prática com Drools Expert e Drools Flow

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.

Page 32: Da introdução à prática com Drools Expert e Drools Flow

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)

Page 33: Da introdução à prática com Drools Expert e Drools Flow

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.

Page 34: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Desvantagens

Necessidade de treinamento da equipe (analogia aos comandos SQL);

Alto consumo de memória.

Page 35: Da introdução à prática com Drools Expert e Drools Flow

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)

Page 36: Da introdução à prática com Drools Expert e Drools Flow

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 ...”

Page 37: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- DSL

Page 38: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- DSL

Page 39: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- DSL

Page 40: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

Agenda

Drools Flow (jBPM 5)O que é?Como funciona?

Page 41: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- O que é?

“Allow user to create a graphical flow chart that defines the order in which rule sets should be evaluated.”

Page 42: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

Agenda

Drools Flow (jBPM 5)O que é?Como funciona?

Page 43: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 44: Da introdução à prática com Drools Expert e Drools Flow

Globalcode – Open4education

- Como funciona?

Page 45: Da introdução à prática com Drools Expert e Drools Flow

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/