Your SlideShare is downloading. ×
JBoss Drools Edson Tirelli Sr. Software Engineer <ul><ul><li>Fernando Meyer
Sr. Software Engineer </li></ul></ul>Mudando as Regras do Jogo
Sistemas Corporativos Sistema Corporativo Décadas de 50-60: sistemas monolíticos
Sistemas Corporativos Dados Sistema Corporativo Décadas de 60-70: separação dos dados
Sistemas Corporativos Dados Tarefas Sistema Corporativo Décadas de 70-80: procedimentos reutilizáveis
Sistemas Corporativos Dados Regras Processos Tarefas A partir de 90: separação dos processos e regras
Sistemas Corporativos Dados Regras Processos Tarefas Quem? Como? Quando? O que? A partir de 90: separação dos processos e ...
Conceitos <ul><li>Regra: </li></ul><ul><ul><li>Conjunto de  condições  a serem avaliadas e uma lista de  ações  a serem ex...
Políticas da empresa:  “ Se  a  compra  for acima de R$ 100,00,  então   aplique 10% de desconto.”
Conhecimento de especialistas:  “ Se  a pressão da  caldeira  estiver acima de 'n' vezes a temperatura,  então  inicie o p...
Ferramentas <ul><li>Dados: </li></ul><ul><ul><li>DBMS: Sistemas de Bancos de Dados (Relacional, OO, Hierárquico, etc)‏ </l...
BRMS: Engine de Regras <ul><li>Componente de software especializado no gerenciamento e processamento de regras. </li></ul>...
BRMS: Macro Arquitetura IDE Eclipse (Desenvolvimento)‏ Repositório de Ativos (Prod)‏ BRMS (Gerenciamento de Deployment  e ...
Engine de Regras IDE Eclipse (Desenvolvimento)‏ Repositório de Ativos (Prod)‏ BRMS (Gerenciamento de Deployment  e Configu...
Engine de Regras: Runtime Production Memory (Regras)‏ Working Memory (Fatos)‏ Aplicação <ul><li>Ações:
Adicionar Regra
Remover Regra
Executar Regras </li></ul><ul><li>Ações:
Adicionar Fatos
Remover Fatos
Modificar Fatos </li></ul><ul><li>Ações:
Controle de execução </li></ul><ul><li>Ações:
Chamadas de callback </li></ul>Drools
Engine de Regras: Runtime Se a compra for  acima de R$ 100,00,  então aplique 10%  de desconto. Compra( R$ 80,00 )‏ Compra...
Engine de Regras: Runtime Se a compra for  acima de R$ 100,00,  então aplique 10%  de desconto. Compra( R$ 80,00 )‏ Compra...
Engine de Regras: Runtime Se a compra for  acima de R$ 100,00,  então aplique 10%  de desconto. Compra( R$ 80,00 )‏ Compra...
Quando usar Engines de Regras? Não use se: Use se: <ul><ul><li>Sua aplicação envolve tomadas de decisões. </li></ul></ul><...
O que é o Drools? <ul><li>Engine de Regras: </li></ul><ul><ul><li>Forward Chaining
Algoritmo ReteOO
Upcoming SlideShare
Loading in...5
×

Jboss Night

923

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
923
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Jboss Night"

  1. 1. JBoss Drools Edson Tirelli Sr. Software Engineer <ul><ul><li>Fernando Meyer
  2. 2. Sr. Software Engineer </li></ul></ul>Mudando as Regras do Jogo
  3. 3. Sistemas Corporativos Sistema Corporativo Décadas de 50-60: sistemas monolíticos
  4. 4. Sistemas Corporativos Dados Sistema Corporativo Décadas de 60-70: separação dos dados
  5. 5. Sistemas Corporativos Dados Tarefas Sistema Corporativo Décadas de 70-80: procedimentos reutilizáveis
  6. 6. Sistemas Corporativos Dados Regras Processos Tarefas A partir de 90: separação dos processos e regras
  7. 7. Sistemas Corporativos Dados Regras Processos Tarefas Quem? Como? Quando? O que? A partir de 90: separação dos processos e regras
  8. 8. Conceitos <ul><li>Regra: </li></ul><ul><ul><li>Conjunto de condições a serem avaliadas e uma lista de ações a serem executadas (consequência) caso as condições sejam verdadeiras. </li></ul></ul><ul><li>Fatos: </li></ul><ul><ul><li>Dados sobre os quais as regras são aplicadas. </li></ul></ul><ul><li>Origens das regras: </li></ul><ul><ul><li>Regulamentação legal: “ Se o tempo de uma chamada telefônica celular for inferior a 30 segundos, então cobre 30 segundos.”
  9. 9. Políticas da empresa: “ Se a compra for acima de R$ 100,00, então aplique 10% de desconto.”
  10. 10. Conhecimento de especialistas: “ Se a pressão da caldeira estiver acima de 'n' vezes a temperatura, então inicie o procedimento de despressurização.” </li></ul></ul>
  11. 11. Ferramentas <ul><li>Dados: </li></ul><ul><ul><li>DBMS: Sistemas de Bancos de Dados (Relacional, OO, Hierárquico, etc)‏ </li></ul></ul><ul><li>Tarefas: </li></ul><ul><ul><li>Linguagens Imperativas (C/C++, Java, C#, Python, etc)‏ </li></ul></ul><ul><li>Processos: </li></ul><ul><ul><li>BPMS: Engines de Processos (jBPM, WS Process Server, WLI, etc)‏ </li></ul></ul><ul><li>Regras: </li></ul><ul><ul><li>BRMS: Engines de Regras (Drools, CLIPS, iLOG JRules, Jess, etc)‏ </li></ul></ul>
  12. 12. BRMS: Engine de Regras <ul><li>Componente de software especializado no gerenciamento e processamento de regras. </li></ul><ul><li>Um BRMS está para as regras como um SGBD está para os dados. </li></ul>Dados SGBD BRMS Regras
  13. 13. BRMS: Macro Arquitetura IDE Eclipse (Desenvolvimento)‏ Repositório de Ativos (Prod)‏ BRMS (Gerenciamento de Deployment e Configuração)‏ GUI / Processos / Componentes Serviços de Dados Dados Aplicação Drools Repositório de Ativos (Desenv)‏ BRMS (Edição e Manutenção de Regras)‏ Analista de Negócios Desenvolvedor Gerente de Configuração
  14. 14. Engine de Regras IDE Eclipse (Desenvolvimento)‏ Repositório de Ativos (Prod)‏ BRMS (Gerenciamento de Deployment e Configuração)‏ GUI / Processos / Componentes Serviços de Dados Dados Aplicação Drools Repositório de Ativos (Desenv)‏ BRMS (Edição e Manutenção de Regras)‏ Analista de Negócios Desenvolvedor Gerente de Configuração
  15. 15. Engine de Regras: Runtime Production Memory (Regras)‏ Working Memory (Fatos)‏ Aplicação <ul><li>Ações:
  16. 16. Adicionar Regra
  17. 17. Remover Regra
  18. 18. Executar Regras </li></ul><ul><li>Ações:
  19. 19. Adicionar Fatos
  20. 20. Remover Fatos
  21. 21. Modificar Fatos </li></ul><ul><li>Ações:
  22. 22. Controle de execução </li></ul><ul><li>Ações:
  23. 23. Chamadas de callback </li></ul>Drools
  24. 24. Engine de Regras: Runtime Se a compra for acima de R$ 100,00, então aplique 10% de desconto. Compra( R$ 80,00 )‏ Compra( R$ 150,00 )‏ Compra( R$ 40,00 )‏ Compra( R$ 200,00 )‏ Aplicação Drools Production Memory Working Memory Aplicação dispara a execução
  25. 25. Engine de Regras: Runtime Se a compra for acima de R$ 100,00, então aplique 10% de desconto. Compra( R$ 80,00 )‏ Compra( R$ 135,00 )‏ Compra( R$ 40,00 )‏ Compra( R$ 200,00 )‏ Aplicação Drools Production Memory Working Memory Engine executa a regra para compra 2.
  26. 26. Engine de Regras: Runtime Se a compra for acima de R$ 100,00, então aplique 10% de desconto. Compra( R$ 80,00 )‏ Compra( R$ 135,00 )‏ Compra( R$ 40,00 )‏ Compra( R$ 180,00 )‏ Aplicação Drools Production Memory Working Memory Engine executa a regra para compra 4.
  27. 27. Quando usar Engines de Regras? Não use se: Use se: <ul><ul><li>Sua aplicação envolve tomadas de decisões. </li></ul></ul><ul><ul><li>Suas regras são complexas. </li></ul></ul><ul><ul><li>Suas regras estão sujeitas à mudanças frequentes </li></ul></ul><ul><ul><li>Suas regras precisam ser compartilhadas entre aplicações e organizações </li></ul></ul><ul><ul><li>Se você está em um mercado volátil com frequentes mudanças no negócio, alta competitividade ou regulamentação extensa e complexa </li></ul></ul><ul><ul><li>Suas regras são basicamente estáticas e computacionais </li></ul></ul><ul><ul><li>Suas regras são simples, mesmo que em quantidade </li></ul></ul><ul><ul><li>Seu sistema trabalha com poucas regras. </li></ul></ul>
  28. 28. O que é o Drools? <ul><li>Engine de Regras: </li></ul><ul><ul><li>Forward Chaining
  29. 29. Algoritmo ReteOO
  30. 30. Otimizações: indexação de memórias Beta, hashing de nós Alfa, etc
  31. 31. In-memory working memory </li></ul></ul><ul><li>Arquitetura e Integração </li></ul><ul><ul><li>100% Java, roda tanto em JSE quanto JEE
  32. 32. Acesso transparente e direto ao modelo de domínio POJO
  33. 33. Ferramenta de middleware, integrável à containers JEE, Aplicações Web, WebServices, jBPM, Seam, LDAP
  34. 34. JSR94 compliant </li></ul></ul>
  35. 35. Características <ul><li>Implementação das regras: </li></ul><ul><ul><li>Implementação declarativa
  36. 36. Evita que as regras fiquem embutidas no código
  37. 37. Regras podem ser alteradas sem a necessidade de recompilação
  38. 38. Otimiza a execução de conjuntos de regras altamente complexos </li></ul></ul><ul><li>Formas de definição das regras: </li></ul><ul><ul><li>DRL (Drools Rule Language): linguagem “nativa” similar ao java
  39. 39. DSL (Domain Specific Language): linguagem de alto nível específica ao domínio
  40. 40. BRX: Guided Editors (Eclipse e Web)‏
  41. 41. Excel / OpenOffice: planilhas de tabelas de decisão
  42. 42. XML: documentos XML com a declaração das regras
  43. 43. API: para acesso direto via código Java </li></ul></ul>
  44. 44. Regra em DRL salience <int> agenda-group <string> activation-group <string> no-loop <boolean> auto-focus <boolean> duration <long> RHS: ações que devem ser executadas quando as condições forem satisfeitas. (Código Java ou MVEL)‏ Regras são declarativas rule “ <nome da regra> ” <atributo> <valor> when <LHS: condições> then <RHS: ações> end LHS: Condições à serem checadas. (Linguagem nativa DRL)‏
  45. 45. Exemplo de Regra em DRL Se o jogador tem idade menor ou igual a 18 anos e habilidade superior a 7, então aplique 10% de aumento no salário.
  46. 46. Pacote: conjunto de recursos package com.sample import java.util.Map import com.sample.Cheese global Cheese cheese function void exampleFunction(Cheese cheese) { System.out.println( cheese ); } rule “A Cheesy Rule” when … . then … . end rule “Another rule” when ... then ... end
  47. 47. Demonstração: Sudoku
  48. 48. Drools IDE
  49. 49. Guided Editor (Eclipse)‏
  50. 50. DSL Editor (Eclipse)‏
  51. 51. Decision Tables (Excel/OpenOffice)‏
  52. 52. BRMS: Guided Editor
  53. 53. RuleFlow Editor (Eclipse)‏
  54. 54. Auditoria

×