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

Post on 16-Apr-2017

2.920 views 3 download

Transcript of 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

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/