Drools - Introdução
Qualquer aplicativo Java de nível empresarial pode ser dividido em três partes -
- IU - Interface do usuário (Frontend)
- Camada de serviço que por sua vez está conectada a um banco de dados
- Camada de negócios
Temos várias estruturas que lidam com a interface do usuário e a camada de serviço juntas, por exemplo, Spring e Struts. Ainda assim, não tínhamos uma maneira padrão de lidar com a lógica de negócios até que o Drools surgisse.
O que é Drools?
Drools é um Business Logic integration Platform (BLiP). Está escrito em Java. É um projeto de código aberto apoiado pela JBoss e Red Hat, Inc. Ele estende e implementa o algoritmo de correspondência de padrões Rete.
Em termos gerais, Drools é uma coleção de ferramentas que nos permite separar e raciocinar sobre a lógica e os dados encontrados nos processos de negócios. As duas palavras-chave importantes que precisamos observar sãoLogic e Data.
O Drools é dividido em duas partes principais: Authoring e Runtime.
Authoring - O processo de autoria envolve a criação de arquivos de regras (arquivos .DRL).
Runtime - Envolve a criação de memória de trabalho e tratamento da ativação.
O que é um mecanismo de regras?
Drools é o Rule Engine ou um Production Rule System que usa a abordagem baseada em regras para implementar um Expert System. Sistemas especialistas são sistemas baseados em conhecimento que usam representação de conhecimento para processar o conhecimento adquirido em uma base de conhecimento que pode ser usada para raciocínio.
Um Sistema de Regras de Produção é Turing completo com foco na representação do conhecimento para expressar a lógica proposicional e de primeira ordem de maneira concisa, não ambígua e declarativa.
O cérebro de um Sistema de Regras de Produção é um Inference Engineque pode ser dimensionado para um grande número de regras e fatos. O Inference Engine compara fatos e dados com as Regras de Produção - também chamadasProductions ou apenas Rules - inferir conclusões que resultam em ações.
Uma regra de produção é uma estrutura de duas partes que usa lógica de primeira ordem para raciocinar sobre a representação do conhecimento. Um mecanismo de regras de negócios é um sistema de software que executa uma ou mais regras de negócios em um ambiente de produção de tempo de execução.
Um mecanismo de regra permite que você defina “What to Do" e não "How to do it. ”
O que é uma regra?
As regras são pedaços de conhecimento, muitas vezes expressa como: " Quando ocorrer algumas condições, em seguida, fazer algumas tarefas."
When
<Condition is true>
Then
<Take desired Action>
A parte mais importante de uma regra é sua whenparte. Se owhen parte está satisfeita, o then parte é acionada.
rule <rule_name>
<attribute> <value>
when
<conditions>
then
<actions>
end
Correspondência de padrões
O processo de correspondência de fatos novos ou existentes com as Regras de Produção é chamado de Correspondência de Padrões, que é executado pelo Mecanismo de Inferência. Existem vários algoritmos usados para correspondência de padrões, incluindo -
- Linear
- Rete
- Treat
- Leaps
O Drools implementa e estende o Algoritmo de Rete. A implementação do Drools Rete é chamada de ReteOO, significando que o Drools tem uma implementação aprimorada e otimizada do algoritmo Rete para sistemas orientados a objetos.
Vantagens de um mecanismo de regras
Programação Declarativa
As regras facilitam a expressão de soluções para problemas difíceis e também a verificação das soluções. Ao contrário dos códigos, as regras são escritas em linguagem menos complexa; Os analistas de negócios podem ler e verificar facilmente um conjunto de regras.
Separação de lógica e dados
Os dados residem nos Objetos de Domínio e a lógica de negócios reside nas Regras. Dependendo do tipo de projeto, esse tipo de separação pode ser muito vantajoso.
Velocidade e escalabilidade
O algoritmo Rete OO no qual o Drools é escrito já é um algoritmo comprovado. Com a ajuda do Drools, seu aplicativo se torna muito escalonável. Se houver solicitações de mudança frequentes, pode-se adicionar novas regras sem ter que modificar as regras existentes.
Centralização do Conhecimento
Usando Regras, você cria um repositório de conhecimento (uma base de conhecimento) que é executável. É um único ponto de verdade para a política de negócios. Idealmente, as regras são tão legíveis que também podem servir como documentação.
Integração de ferramentas
Ferramentas como o Eclipse fornecem maneiras de editar e gerenciar regras e obter feedback imediato, validação e assistência de conteúdo. Ferramentas de auditoria e depuração também estão disponíveis.