SlideShare a Scribd company logo
1 of 43
Download to read offline
Instituto de Inovação com TIC




                Drools Expert - um framework gerenciador
                               de regras de negócio




            Inovação é com a gente!


Eduardo Araújo Oliveira (eao@cesar.org.br)
Anderson Neves (afrdn@cesar.org.br)



                                                                slide 1
2
Drools

 O que é?

 Drools is a business rule management system
   (BRMS) with a forward chaining inference based
   rules engine, more correctly known as a
   production rule system, using an enhanced
   implementation of the Rete algorithm.




                                                    3
Drools

 -   The Business Logic integration Platform
 -   5 Módulos integrados
 -   Desde 2001
 -   Jboss e Red Hat
 -   Open Source
 -   Plugin para Eclipse
 -   http://www.jboss.org/drools




                                               4
Drools - motivação

• Implementa ferramentas para decisões complexas
  de negócio
• Problemas dos métodos tradicionais:
   – If-else (Código espaguete)
   – Alterações geralmente precisam de recompilação e redeploy
   – Não separa código de infraestrutura das regras de negócio




                                                                 5
Drools - motivação

• Permite implementar a lógica de negócio de uma
  maneira mais declarativa
• Separa o conhecimento do código de
  infraestrutura
• Fornece diferentes ferramentas para cada tipo de
  lógica de negócio
      – Decisões a partir de dados
      – Processos de negócio
      – Decisões a partir de eventos




                                                     6
Drools




         7
Drools

Totalmente integrável com Java
   – Integração transparente através de um plug-in do
     Eclipse;
   – Pode ler classes Java nas condições das regras;
   – Pode chamar métodos de Java na ação das regras;




                                                        8
Drools

Vantagens
– Fácil entendimento
– Maior facilidade de manutenção
– Desempenho razoável
  – Quantidade de regras vs performance
– Requisitos traduzidos em regras




                                          9
Drools

java
public boolean invalidarMatricula(Aluno aluno) {
   if (aluno.getIdade() < 18) {
       aluno.getMatricula().setValida(false);
       return true;
   }
   return false;
}


drools
rule “Invalidar matricula aluno"
    when
        $aluno : Aluno(idade < 18)
    then
        $aluno. getMatricula().setValida(false);
end




                                                   10
Drools

Vantagens das regras

   – Regras rodam em uma camada separada do código
     nativo da aplicação
   – Podem ser expressas em uma linguagem diferente, mais
     natural (DSL)
   – Facilidade de manutenção e leitura
   – Introduz a possibilidade do próprio analista de negócios
     realizar a autoria e manutenção das regras sabendo
     exatamente como serão interpretadas pelo sistema




                                                                11
Drools

Desvantagens
– Requer uma curva de aprendizado
   – Entender minimamente como funciona uma engine de
     regras (máquina de inferência)
   – As regras podem gerar recursão, que devem ser
     tratadas pelo desenvolvedor
   – Em casos de conflitos o desenvolvedor tem que escolher
     qual tratamento usar
– Consumo de memória




                                                              12
Performance Characteristic




            Sacrifices memory for speed




                                          13
Drools License

 • JBoss Rules           - Apache License v.2.0



 The Apache license is particularly business-friendly,
   and you can take the code and use it in pretty
   much any way you want, as long as you
   acknowledge that your product was 'built using
   Drools'. You don't have to publish your changes
   or additions (as another famous open source
   license, the GPL, requires you to do).




                                                         14
Drools




         Módulos




                   15
Drools

 Engine de regras
 Linguagem para regras (DRL)
 Linguagem específica do domínio (DSL)
 Integrado ao Java




É o módulo principal, que compreende
o motor de regras e linguagem de
regras. Raciocínio baseado em regras


         http://www.jboss.org/drools/drools-expert.html   16
Drools

 Workflows
 BPMN
 Editor gráfico do fluxograma
 Extensível
 Para criar, executar e monitorar processos de
   negócio



Adiciona as capacidades para lidar
com processos de negócio



          http://www.jboss.org/drools/drools-flow.html
                                                         17
Drools

 Processamento de Eventos Complexos (CEP)
    - Eventos no tempo
 Integrado ao Drools Expert
 Para sistemas de:
    – Detecção de fraudes
    – Aprovação de crédito




Adiciona capacidades para realizar o
CEP (Complex Event Processing).
Decisões a partir de eventos


            http://www.jboss.org/drools/drools-fusion.html
                                                             18
Drools

 BRMS (não só regras)
 Repositório centralizado do conhecimento
 Aplicação Web
 Versionamento
 Foco nas regras de negócio




Ferramenta para Gerência das regras
de negócio (BRMS).


         http://www.jboss.org/drools/drools-guvnor.html
                                                          19
Drools

 Problemas com restrições
 Problemas como:
   – Escalas de empregados
   – Horário escolar
   – Caixeiro viajante




         http://www.jboss.org/drools/drools-fusion.html
                                                          20
Drools




         21
Sistemas de Produção
 • Fatos: x, y
 • Regras: x & y => p
 • Encadeamento para a frente (Forward
   chaining)
   – Dados x e y, derive então p


 • Encadeamento para trás (Backward
   chaining)
   – p é verdade? Então verificarei x e y.
   – Prolog
Módulos de Sistemas de Produção

 • Base de Regras ou memória permanente
    – regras se-então e fatos conhecidos
 • Memória de Trabalho ou temporária
    – percepções do agente, fatos iniciais e gerados a partir da
      BR pelo mecanismo de inferência
 • Mecanismo (motor) de Inferência
    – determina o método de raciocínio utilizado (progressivo
      ou regressivo)
    – Executa a busca com casamento (unificação)
    – resolve conflitos e executa ações.
Como funciona?




                 24
Como funciona?

 • Working Memory - Memória de Trabalho
    – É onde residem os fatos.
 • Production Memory - Base de Conhecimento
    – É onde reside todo o conhecimento de negócio (regras).
 • Pattern Matcher - Reconhecedor de padrões
    – Responsável por casar os fatos na memória de trabalho
      com as condições das regras e criar ativações a partir
      dos casamentos.
 • Agenda
    – Responsável pela ordenação das ativações para
      execução.




                                                          slide 25
Basic RETE Network




                     26
Conceitos Básicos

  Fatos:
  • São objetos que representam um determinado
    estado do domínio
  Regras de negócio
  • Toda regra é representada por dois elementos
    principais, seguindo a sintaxe:
  quando
     <condições (LHS)>
  então
     <ações (RHS)>
Conceitos Básicos


 • Representam conhecimento com pares condição-
   ação
    – Se condição (ou premissa ou antecedente) ocorre
      então ação (resultado, conclusão ou conseqüente)
      deverá ocorrer.
 • Regras de produção produzem novos fatos a
   partir dos fatos e regras da PM.
    – Esses novos fatos passam a fazer parte da WM
    – Novas regras da PM podem ser disparadas
 • Lógica de primeira ordem
Drools Expert - Conceitos Básicos


 package bank.model;
 rule "basic rule"
 when // condition
   Account( balance < 100 )
 then // consequence
   System.out.println("Account balance is less than
   100");
 end
Drools Expert - Conceitos Básicos


  O package funciona como um namespace
 – Nomes de regras em um pacote tem que ser
    únicas
 basic rule é o nome da regra
 when indica a condição (premissa)
    – LHS (Left Hand Side)
 then indica a consequência da regra
    – RHS (Right Hand Side)
 // é usado para comentários
Drools Expert - Conceitos Básicos
 Várias condições
    Account( balance == 200 )
    Customer( name == "John" )
 Variáveis nas regras
    $account : Account( $type : type )
 Tipos
 – String
    Customer( name matches "[A-Z][a-z]+" )
 – Date
    Account( dateCreated > "01-Jan-2008" )
 – Boolean
    Transaction( approved == true )
 – Enum
    Account( type == Account.Type.SAVINGS )
 Comentários
 #Comentário de única linha
 //Comentário de única linha
 /*Comentário de
 várias linhas*/
Drools Expert - Conceitos Básicos
 Imports
    import com.mycompany.mypackage.MyClass;
    import com.mycompany.anotherPackage.*;
 Variáveis Globais
 Funções
 function double calculateSquare(double value) {
    return value * value;
 }
 Condição da regra
 – And
 Customer( name == "John", age < 26 )
 – Or
 Customer( name == "John" || age < 26 )
 Customer( age < 26 || > 70 )
 – Not
 not Account( type == Account.Type.SAVINGS )
 – Exists
 exists Account( type == Account.Type.SAVINGS )
Drools Expert - Conceitos Básicos

 Quando todas as condições de uma regra são
   satisfeitas, a regra é ativada

 Uma regra ativada é disparada,         segundo     a
  estratégia de resolução de conflito

 A execução das regras podem ativar outras regras

 O processo é repetido até que nenhuma regra seja
   ativada
Drools Expert - Conceitos Básicos
  Alguns comandos usados na consequência da regra

 –   update(objeto);
 –   insert(new Objeto());
 –   insertLogical(new Objeto());
 –   retract(objeto);
 –   drools.halt();
 –   drools.getRule().getName();
 –   kcontext.getKnowledgeRuntime().halt();


 http://www.ibm.com/developerworks/java/library/j-drools/
Drools Expert - Conceitos Básicos
 Alguns atributos das regras
 – salience (prioridade)
    Default é 0
    salience 100
 – no-loop
 – date-effective
    date-effective "01-Jan-2011”
 – date-expires
    date-expires "01-Jan-2011"
 – duration
    duration 3000


 http://www.ibm.com/developerworks/java/library/j-drools/
Exemplos




           Hello World




                         36
Exemplos




           37
Exemplos




           38
DSL

 Domain Specific Languages
 O motor de regras possui uma poderosa maneira de
   mapear sua linguagem nativa, expressa nos drl's,
   para uma linguagem mais natural, como
   mostrada nos primeiros exemplos.
 Este mapeamento se dá através das Domain
   Specific Languages, ou dsl's.
 dsl´s são expressas em arquivos .dsl, com uma
   sintaxe bastante simples, bem parecida com um
   arquivo .properties




                                                      39
DSL

 Domain Specific Languages por exemplo:
 [keyword]rule=regra
 [keyword]when=quando
 [keyword]then=então
 [keyword]end=fim
 [when]O Aluno em questão possui=a : Aluno($pf :
    pessoaFisica) pf : PessoaFisica($p :
 pessoa) from $pf p : Pessoa($dataNasc: dataNascimento,
    $nome : nome) from $p
 [when]-     idade      menor      que   {idadeMinima}=eval(
    subtraiData(dataAtual, $dataNasc) <
 {idadeMinima} )
 [then]Invalidar matrícula=mensagemMenorDeIdade($nome);
    a.getMatricula().invalidar();

                                                               40
DSL

 A regra anterior poderia ser reescrita da seguinte
 maneira:
 regra "deve ser maior de idade"
    salience 0
    ruleflow-group "validacao"
    quando
       O aluno em questão possui
          - idade menor que 18
    então
       Invalidar matrícula
 fim




                                                      41
Exemplos

 http://imasters.com.br/artigo/12444/desenvolvimento/d
    e_forca_ao_usuario_com_o_drools_parte_1/

 http://imasters.com.br/artigo/12708/java/de_forca_ao_
    usuario_com_drools_parte_2/

 http://imasters.com.br/artigo/15646/desenvolvimento/d
    e-forca-ao-usuario-com-drools-parte-03/

 códigos:
   http://diegopacheco.svn.beanstalkapp.com/sandbox/trunk/
   JBossDrools-test/src/com/blogspot/diegopacheco/drools/



                                                             42
perguntas ???

Eduardo Araújo Oliveira (eao@cesar.org.br)
Anderson Neves (afrdn@cesar.org.br)

More Related Content

What's hot

Introducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building SocietyIntroducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building Societyconfluent
 
Best Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupBest Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupEDB
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?Sébastien Prunier
 
Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfDense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfSease
 
Comparing open source search engines
Comparing open source search enginesComparing open source search engines
Comparing open source search enginesRichard Boulton
 
Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...
Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...
Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...DataWorks Summit
 

What's hot (6)

Introducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building SocietyIntroducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building Society
 
Best Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture SetupBest Practices for a Complete Postgres Enterprise Architecture Setup
Best Practices for a Complete Postgres Enterprise Architecture Setup
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?
 
Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfDense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdf
 
Comparing open source search engines
Comparing open source search enginesComparing open source search engines
Comparing open source search engines
 
Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...
Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...
Extending Apache Ranger Authorization Beyond Hadoop: Review of Apache Ranger ...
 

Viewers also liked

BRMS - Business Rules Management System
BRMS - Business Rules Management SystemBRMS - Business Rules Management System
BRMS - Business Rules Management SystemSamuel Tauil
 
4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)Edgar Silva
 
Maratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a RegrasMaratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a RegrasDextra
 
Red Hat Roadshow 2009 - Drools
Red Hat Roadshow 2009 - DroolsRed Hat Roadshow 2009 - Drools
Red Hat Roadshow 2009 - DroolsRafael Benevides
 
Palestra EDTED: Análise de Negócios e Scrum
Palestra EDTED: Análise de Negócios e ScrumPalestra EDTED: Análise de Negócios e Scrum
Palestra EDTED: Análise de Negócios e ScrumGuilherme Tossulino
 
BRMS - Gestão de Regras - Introdução - Andre Venancio
BRMS -  Gestão de Regras - Introdução - Andre VenancioBRMS -  Gestão de Regras - Introdução - Andre Venancio
BRMS - Gestão de Regras - Introdução - Andre VenancioAndré Venâncio
 
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...Rafael Barbosa Camargo
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 OverviewMark Proctor
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
Ideation in service design. Ideation methods and tools
Ideation in service design. Ideation methods and toolsIdeation in service design. Ideation methods and tools
Ideation in service design. Ideation methods and toolsKatarzyna Młynarczyk
 
Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Rildo (@rildosan) Santos
 
Experiência do usuário e emergência
Experiência do usuário e emergênciaExperiência do usuário e emergência
Experiência do usuário e emergênciaUTFPR
 
75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios Inovadores75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios InovadoresJoão Paulo Nogueira
 

Viewers also liked (17)

BRMS - Business Rules Management System
BRMS - Business Rules Management SystemBRMS - Business Rules Management System
BRMS - Business Rules Management System
 
4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)
 
Maratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a RegrasMaratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
 
Red Hat Roadshow 2009 - Drools
Red Hat Roadshow 2009 - DroolsRed Hat Roadshow 2009 - Drools
Red Hat Roadshow 2009 - Drools
 
drools + robocode
drools + robocodedrools + robocode
drools + robocode
 
J Boss Drools
J Boss DroolsJ Boss Drools
J Boss Drools
 
Palestra EDTED: Análise de Negócios e Scrum
Palestra EDTED: Análise de Negócios e ScrumPalestra EDTED: Análise de Negócios e Scrum
Palestra EDTED: Análise de Negócios e Scrum
 
BRMS - Gestão de Regras - Introdução - Andre Venancio
BRMS -  Gestão de Regras - Introdução - Andre VenancioBRMS -  Gestão de Regras - Introdução - Andre Venancio
BRMS - Gestão de Regras - Introdução - Andre Venancio
 
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
Pedaços de XP, FDD, Scrum e Kanban na Análise de Negócios e Engenharia de Req...
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 Overview
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
Ideation in service design. Ideation methods and tools
Ideation in service design. Ideation methods and toolsIdeation in service design. Ideation methods and tools
Ideation in service design. Ideation methods and tools
 
Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case
 
Análise de Negócio na Perspectiva de BI
Análise de Negócio na Perspectiva de BIAnálise de Negócio na Perspectiva de BI
Análise de Negócio na Perspectiva de BI
 
Resumo do Guia BABOK® 3
Resumo do Guia BABOK®  3 Resumo do Guia BABOK®  3
Resumo do Guia BABOK® 3
 
Experiência do usuário e emergência
Experiência do usuário e emergênciaExperiência do usuário e emergência
Experiência do usuário e emergência
 
75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios Inovadores75 exemplos de Modelagem e Prototipagem de negócios Inovadores
75 exemplos de Modelagem e Prototipagem de negócios Inovadores
 

Similar to drools

J Boss Rules Mgjug V2
J Boss Rules Mgjug V2J Boss Rules Mgjug V2
J Boss Rules Mgjug V2Breno Barros
 
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...Bruno Rossetto Machado
 
Business Rules com Drools
Business Rules com DroolsBusiness Rules com Drools
Business Rules com Droolsrafaelliu
 
Introdução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoIntrodução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoBruno Lopes
 
Projeto de Software (Protótipo de Software).
Projeto de Software (Protótipo de Software).Projeto de Software (Protótipo de Software).
Projeto de Software (Protótipo de Software).Italo Argolo
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADCesar Romero
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPIssac Nolis Ohasi
 
Aula 100823071954-phpapp01
Aula 100823071954-phpapp01Aula 100823071954-phpapp01
Aula 100823071954-phpapp01cleytom
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaGraziella Bonizi
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxDell Technologies
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Alexandre Tarifa
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a Rômulo Jales
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosRafael Chaves
 

Similar to drools (20)

Jboss Night
Jboss NightJboss Night
Jboss Night
 
J Boss Rules Mgjug V2
J Boss Rules Mgjug V2J Boss Rules Mgjug V2
J Boss Rules Mgjug V2
 
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
Tomada de decisões com xPaaS aplicada ao fantasy game oficial do campeonato b...
 
Oracleplsql
OracleplsqlOracleplsql
Oracleplsql
 
Business Rules com Drools
Business Rules com DroolsBusiness Rules com Drools
Business Rules com Drools
 
Introdução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoIntrodução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderoso
 
Projeto de Software (Protótipo de Software).
Projeto de Software (Protótipo de Software).Projeto de Software (Protótipo de Software).
Projeto de Software (Protótipo de Software).
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAP
 
Aula 100823071954-phpapp01
Aula 100823071954-phpapp01Aula 100823071954-phpapp01
Aula 100823071954-phpapp01
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquitetura
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 

More from Eduardo Oliveira

Distributed and heterogeneous data analysis for smart urban planning
Distributed and heterogeneous data analysis for smart urban planningDistributed and heterogeneous data analysis for smart urban planning
Distributed and heterogeneous data analysis for smart urban planningEduardo Oliveira
 
Physical Computing and IoT
Physical Computing and IoTPhysical Computing and IoT
Physical Computing and IoTEduardo Oliveira
 
Recife as a Smart and Playable City
Recife as a Smart and Playable CityRecife as a Smart and Playable City
Recife as a Smart and Playable CityEduardo Oliveira
 
Cidades Inteligentes - Civic Hacking - Open Data
Cidades Inteligentes - Civic Hacking - Open DataCidades Inteligentes - Civic Hacking - Open Data
Cidades Inteligentes - Civic Hacking - Open DataEduardo Oliveira
 
Dispositivos Móveis: Uma Revolução na Educação
Dispositivos Móveis: Uma Revolução na EducaçãoDispositivos Móveis: Uma Revolução na Educação
Dispositivos Móveis: Uma Revolução na EducaçãoEduardo Oliveira
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaEduardo Oliveira
 
IHC 2011 - Widgets Internship
IHC 2011 - Widgets InternshipIHC 2011 - Widgets Internship
IHC 2011 - Widgets InternshipEduardo Oliveira
 

More from Eduardo Oliveira (10)

Distributed and heterogeneous data analysis for smart urban planning
Distributed and heterogeneous data analysis for smart urban planningDistributed and heterogeneous data analysis for smart urban planning
Distributed and heterogeneous data analysis for smart urban planning
 
UCD Process
UCD ProcessUCD Process
UCD Process
 
Physical Computing and IoT
Physical Computing and IoTPhysical Computing and IoT
Physical Computing and IoT
 
Recife as a Smart and Playable City
Recife as a Smart and Playable CityRecife as a Smart and Playable City
Recife as a Smart and Playable City
 
Cidades Inteligentes - Civic Hacking - Open Data
Cidades Inteligentes - Civic Hacking - Open DataCidades Inteligentes - Civic Hacking - Open Data
Cidades Inteligentes - Civic Hacking - Open Data
 
Dispositivos Móveis: Uma Revolução na Educação
Dispositivos Móveis: Uma Revolução na EducaçãoDispositivos Móveis: Uma Revolução na Educação
Dispositivos Móveis: Uma Revolução na Educação
 
Cidades Inteligentes
Cidades InteligentesCidades Inteligentes
Cidades Inteligentes
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação Dinâmica
 
IHC 2011 - Widgets Internship
IHC 2011 - Widgets InternshipIHC 2011 - Widgets Internship
IHC 2011 - Widgets Internship
 
EAD no Brasil
EAD no BrasilEAD no Brasil
EAD no Brasil
 

Recently uploaded

HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...LizanSantos1
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOBiatrizGomes1
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASEdinardo Aguiar
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 

Recently uploaded (20)

HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 

drools

  • 1. Instituto de Inovação com TIC Drools Expert - um framework gerenciador de regras de negócio Inovação é com a gente! Eduardo Araújo Oliveira (eao@cesar.org.br) Anderson Neves (afrdn@cesar.org.br) slide 1
  • 2. 2
  • 3. Drools O que é? Drools is a business rule management system (BRMS) with a forward chaining inference based rules engine, more correctly known as a production rule system, using an enhanced implementation of the Rete algorithm. 3
  • 4. Drools - The Business Logic integration Platform - 5 Módulos integrados - Desde 2001 - Jboss e Red Hat - Open Source - Plugin para Eclipse - http://www.jboss.org/drools 4
  • 5. Drools - motivação • Implementa ferramentas para decisões complexas de negócio • Problemas dos métodos tradicionais: – If-else (Código espaguete) – Alterações geralmente precisam de recompilação e redeploy – Não separa código de infraestrutura das regras de negócio 5
  • 6. Drools - motivação • Permite implementar a lógica de negócio de uma maneira mais declarativa • Separa o conhecimento do código de infraestrutura • Fornece diferentes ferramentas para cada tipo de lógica de negócio – Decisões a partir de dados – Processos de negócio – Decisões a partir de eventos 6
  • 7. Drools 7
  • 8. Drools Totalmente integrável com Java – Integração transparente através de um plug-in do Eclipse; – Pode ler classes Java nas condições das regras; – Pode chamar métodos de Java na ação das regras; 8
  • 9. Drools Vantagens – Fácil entendimento – Maior facilidade de manutenção – Desempenho razoável – Quantidade de regras vs performance – Requisitos traduzidos em regras 9
  • 10. Drools java public boolean invalidarMatricula(Aluno aluno) { if (aluno.getIdade() < 18) { aluno.getMatricula().setValida(false); return true; } return false; } drools rule “Invalidar matricula aluno" when $aluno : Aluno(idade < 18) then $aluno. getMatricula().setValida(false); end 10
  • 11. Drools Vantagens das regras – Regras rodam em uma camada separada do código nativo da aplicação – Podem ser expressas em uma linguagem diferente, mais natural (DSL) – Facilidade de manutenção e leitura – Introduz a possibilidade do próprio analista de negócios realizar a autoria e manutenção das regras sabendo exatamente como serão interpretadas pelo sistema 11
  • 12. Drools Desvantagens – Requer uma curva de aprendizado – Entender minimamente como funciona uma engine de regras (máquina de inferência) – As regras podem gerar recursão, que devem ser tratadas pelo desenvolvedor – Em casos de conflitos o desenvolvedor tem que escolher qual tratamento usar – Consumo de memória 12
  • 13. Performance Characteristic Sacrifices memory for speed 13
  • 14. Drools License • JBoss Rules - Apache License v.2.0 The Apache license is particularly business-friendly, and you can take the code and use it in pretty much any way you want, as long as you acknowledge that your product was 'built using Drools'. You don't have to publish your changes or additions (as another famous open source license, the GPL, requires you to do). 14
  • 15. Drools Módulos 15
  • 16. Drools Engine de regras Linguagem para regras (DRL) Linguagem específica do domínio (DSL) Integrado ao Java É o módulo principal, que compreende o motor de regras e linguagem de regras. Raciocínio baseado em regras http://www.jboss.org/drools/drools-expert.html 16
  • 17. Drools Workflows BPMN Editor gráfico do fluxograma Extensível Para criar, executar e monitorar processos de negócio Adiciona as capacidades para lidar com processos de negócio http://www.jboss.org/drools/drools-flow.html 17
  • 18. Drools Processamento de Eventos Complexos (CEP) - Eventos no tempo Integrado ao Drools Expert Para sistemas de: – Detecção de fraudes – Aprovação de crédito Adiciona capacidades para realizar o CEP (Complex Event Processing). Decisões a partir de eventos http://www.jboss.org/drools/drools-fusion.html 18
  • 19. Drools BRMS (não só regras) Repositório centralizado do conhecimento Aplicação Web Versionamento Foco nas regras de negócio Ferramenta para Gerência das regras de negócio (BRMS). http://www.jboss.org/drools/drools-guvnor.html 19
  • 20. Drools Problemas com restrições Problemas como: – Escalas de empregados – Horário escolar – Caixeiro viajante http://www.jboss.org/drools/drools-fusion.html 20
  • 21. Drools 21
  • 22. Sistemas de Produção • Fatos: x, y • Regras: x & y => p • Encadeamento para a frente (Forward chaining) – Dados x e y, derive então p • Encadeamento para trás (Backward chaining) – p é verdade? Então verificarei x e y. – Prolog
  • 23. Módulos de Sistemas de Produção • Base de Regras ou memória permanente – regras se-então e fatos conhecidos • Memória de Trabalho ou temporária – percepções do agente, fatos iniciais e gerados a partir da BR pelo mecanismo de inferência • Mecanismo (motor) de Inferência – determina o método de raciocínio utilizado (progressivo ou regressivo) – Executa a busca com casamento (unificação) – resolve conflitos e executa ações.
  • 25. Como funciona? • Working Memory - Memória de Trabalho – É onde residem os fatos. • Production Memory - Base de Conhecimento – É onde reside todo o conhecimento de negócio (regras). • Pattern Matcher - Reconhecedor de padrões – Responsável por casar os fatos na memória de trabalho com as condições das regras e criar ativações a partir dos casamentos. • Agenda – Responsável pela ordenação das ativações para execução. slide 25
  • 27. Conceitos Básicos Fatos: • São objetos que representam um determinado estado do domínio Regras de negócio • Toda regra é representada por dois elementos principais, seguindo a sintaxe: quando <condições (LHS)> então <ações (RHS)>
  • 28. Conceitos Básicos • Representam conhecimento com pares condição- ação – Se condição (ou premissa ou antecedente) ocorre então ação (resultado, conclusão ou conseqüente) deverá ocorrer. • Regras de produção produzem novos fatos a partir dos fatos e regras da PM. – Esses novos fatos passam a fazer parte da WM – Novas regras da PM podem ser disparadas • Lógica de primeira ordem
  • 29. Drools Expert - Conceitos Básicos package bank.model; rule "basic rule" when // condition Account( balance < 100 ) then // consequence System.out.println("Account balance is less than 100"); end
  • 30. Drools Expert - Conceitos Básicos O package funciona como um namespace – Nomes de regras em um pacote tem que ser únicas basic rule é o nome da regra when indica a condição (premissa) – LHS (Left Hand Side) then indica a consequência da regra – RHS (Right Hand Side) // é usado para comentários
  • 31. Drools Expert - Conceitos Básicos Várias condições Account( balance == 200 ) Customer( name == "John" ) Variáveis nas regras $account : Account( $type : type ) Tipos – String Customer( name matches "[A-Z][a-z]+" ) – Date Account( dateCreated > "01-Jan-2008" ) – Boolean Transaction( approved == true ) – Enum Account( type == Account.Type.SAVINGS ) Comentários #Comentário de única linha //Comentário de única linha /*Comentário de várias linhas*/
  • 32. Drools Expert - Conceitos Básicos Imports import com.mycompany.mypackage.MyClass; import com.mycompany.anotherPackage.*; Variáveis Globais Funções function double calculateSquare(double value) { return value * value; } Condição da regra – And Customer( name == "John", age < 26 ) – Or Customer( name == "John" || age < 26 ) Customer( age < 26 || > 70 ) – Not not Account( type == Account.Type.SAVINGS ) – Exists exists Account( type == Account.Type.SAVINGS )
  • 33. Drools Expert - Conceitos Básicos Quando todas as condições de uma regra são satisfeitas, a regra é ativada Uma regra ativada é disparada, segundo a estratégia de resolução de conflito A execução das regras podem ativar outras regras O processo é repetido até que nenhuma regra seja ativada
  • 34. Drools Expert - Conceitos Básicos Alguns comandos usados na consequência da regra – update(objeto); – insert(new Objeto()); – insertLogical(new Objeto()); – retract(objeto); – drools.halt(); – drools.getRule().getName(); – kcontext.getKnowledgeRuntime().halt(); http://www.ibm.com/developerworks/java/library/j-drools/
  • 35. Drools Expert - Conceitos Básicos Alguns atributos das regras – salience (prioridade) Default é 0 salience 100 – no-loop – date-effective date-effective "01-Jan-2011” – date-expires date-expires "01-Jan-2011" – duration duration 3000 http://www.ibm.com/developerworks/java/library/j-drools/
  • 36. Exemplos Hello World 36
  • 37. Exemplos 37
  • 38. Exemplos 38
  • 39. DSL Domain Specific Languages O motor de regras possui uma poderosa maneira de mapear sua linguagem nativa, expressa nos drl's, para uma linguagem mais natural, como mostrada nos primeiros exemplos. Este mapeamento se dá através das Domain Specific Languages, ou dsl's. dsl´s são expressas em arquivos .dsl, com uma sintaxe bastante simples, bem parecida com um arquivo .properties 39
  • 40. DSL Domain Specific Languages por exemplo: [keyword]rule=regra [keyword]when=quando [keyword]then=então [keyword]end=fim [when]O Aluno em questão possui=a : Aluno($pf : pessoaFisica) pf : PessoaFisica($p : pessoa) from $pf p : Pessoa($dataNasc: dataNascimento, $nome : nome) from $p [when]- idade menor que {idadeMinima}=eval( subtraiData(dataAtual, $dataNasc) < {idadeMinima} ) [then]Invalidar matrícula=mensagemMenorDeIdade($nome); a.getMatricula().invalidar(); 40
  • 41. DSL A regra anterior poderia ser reescrita da seguinte maneira: regra "deve ser maior de idade" salience 0 ruleflow-group "validacao" quando O aluno em questão possui - idade menor que 18 então Invalidar matrícula fim 41
  • 42. Exemplos http://imasters.com.br/artigo/12444/desenvolvimento/d e_forca_ao_usuario_com_o_drools_parte_1/ http://imasters.com.br/artigo/12708/java/de_forca_ao_ usuario_com_drools_parte_2/ http://imasters.com.br/artigo/15646/desenvolvimento/d e-forca-ao-usuario-com-drools-parte-03/ códigos: http://diegopacheco.svn.beanstalkapp.com/sandbox/trunk/ JBossDrools-test/src/com/blogspot/diegopacheco/drools/ 42
  • 43. perguntas ??? Eduardo Araújo Oliveira (eao@cesar.org.br) Anderson Neves (afrdn@cesar.org.br)