regras
Eduardo Araújo Oliveira
slide 1
2
1
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
Semântica em 2011
Jboss e Red Hat
Open Source
Plugin para Eclipse http://www.jboss.org/drools 4
2
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
– Processos de negócio
– Eventos
6
3
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
4
Drools
Vantagens
– Fácil entendimento
– Maior facilidade de manutenção
– Desempenho razoável
– Requisitos traduzidos em regras
– Reutilização
9
Drools java public void checaMaiorDeIdade(Aluno aluno) {
Date dataNascimento = aluno.getPessoaFisica().getPessoa().getDataNascimento(); if (subtrairData(new Date(), dataNascimento) < IDADE_MINIMA) { aluno.getMatricula().invalidar(); } else { aluno.getMatricula().validarIdade(); }
}
drools regra "Aluno deve ser maior de idade" quando O aluno em questão possui
- idade menor que idade mínima então invalidar matrícula fim 10
5
Drools
Vantagens das regras
– Regras rodam em uma camada acima do