Tutorial do Drools: mecanismo de regras do Drools Archiarquitetura e exemplos
O que é baba?
Baba é um software de gerenciamento de regras de negócios (BRMS) de código aberto escrito em Java que fornece aos usuários uma variedade de recursos como Business Rule Engine, criação na Web, aplicativo de gerenciamento de regras e suporte de tempo de execução para modelos de decisão e notação. Ele usa um sistema de implementação avançado de algoritmo de correspondência de padrões rete.
Drools foi lançado sob licença Apache 2.0 e é compatível com qualquer JVM e também está disponível no Maven Central Repository.
A ferramenta Drools ajuda você a separar e raciocinar sobre a lógica e os dados encontrados nos processos de negócios. Ele suporta mecanismo de regras de baba baseado em inferência de encadeamento direto e reverso.
As babas são divididas em duas partes:
- Autoria – Envolve o desenvolvimento de arquivos de regras.
- Runtime – Envolve a criação de memória de trabalho e o tratamento da ativação.
O que é regra?
As regras são partes do conhecimento frequentemente expressas como: “Quando ocorrerem condições específicas, execute algumas tarefas”.
A parte mais crucial de uma regra é que ela quando papel. Uma vez quando parte está satisfeita, então a peça é acionada.
Sintaxe:
When <Condition is true> Then <Take desired Action>
Método de correspondência de padrões
O método de correspondência de padrões ajuda a comparar fatos novos ou antigos com as regras de produção. É completado pelo Motor de Inferência.
Algorithms usados para correspondência de padrões são:
- Algoritmo Rete
- Algoritmo de saltos
- Algoritmo Linear
- Algoritmo de tratamento
No entanto, o algoritmo mais usado pelo Drools é o Algoritmo Rete.
Algoritmo Rete
O algoritmo Rete é um algoritmo útil de correspondência de padrões que permite implementar sistemas de regras de produção. Ajuda você a sacrificar a memória para aumentar a velocidade. Também reduz ou elimina tipos específicos de redundância com a ajuda do compartilhamento de nós. Ele armazena correspondências parciais enquanto realiza junções entre diferentes tipos de fatos.
Motor de regras Drools
Motor de regras Drools é uma abordagem baseada em regras para implementar um sistema Expert no software Drools. O mecanismo de regras fornece sistemas especialistas que são sistemas baseados em conhecimento que ajudam você a tomar decisões sobre o que fazer e como fazer. Ele reúne conhecimento em uma base de conhecimento que pode ser usada para raciocínio.
Conjunto de ferramentas Drools
Agora, neste tutorial do Drools Rule Engine, aprenderemos sobre o Drools Tool Suite. Aqui estão cinco tipos de ferramentas que fazem parte do pacote Drools:
- Baba Governador: É um repositório centralizado para Drools KnowledgeBase.
- Fluxo de baba: oferece fluxo de trabalho e processos de negócios.
- Fusão de baba: Ferramenta usada para processamento de eventos complexos
- Drools Expert ou mecanismo de regras: Uma ferramenta útil para realizar o raciocínio.
- Planejador de baba: To oferece planejamento automatizado, que inclui problemas de planejamento NP-difíceis.
Componentes importantes no Drools
Agora, neste tutorial do Drools, vamos aprender sobre componentes importantes do Drools.
Aqui estão os termos essenciais usados no Drools:
- Factos – Fato representa os dados que servem de entrada para regras
- Memória de Trabalho – Armazenamento com Fatos, onde são usados para correspondência de padrões. Ele pode ser modificado, inserido e removido.
- Sessão de Conhecimento – Este componente contém todos os recursos necessários para a regra de disparo. Aqui, todos os fatos são inseridos em uma única sessão e, em seguida, as regras correspondentes são acionadas.
- Base de Conhecimento – Representa o conhecimento do ecossistema Drools. Armazena a formação dos recursos onde se encontram as regras.
- Módulo – Este é um módulo que armazena múltiplas Bases de Conhecimento que podem conter diferentes sessões
Archiarquitetura de Drools
Aqui está o sistema de funcionamento da arquitetura Drools:
Passo 1) As regras são carregadas na Base de Regras, que está disponível o tempo todo.
Passo 2) Os fatos são afirmados na memória de trabalho, onde podem então ser modificados ou retratados.
Passo 3) O processo de correspondência dos fatos novos ou existentes com as regras de produção é chamado de correspondência de padrões, que é executado pelo mecanismo de regras.
Passo 4) A agenda permite gerenciar a ordem de execução das regras conflitantes com a ajuda de uma estratégia de resolução de conflitos.
Recursos do Babar
Aqui estão recursos importantes do Drool:
- Ajuda você a separar o aplicativo da lógica dinâmica
- Programação Declarativa
- Centralização do Conhecimento
- Velocidade e escalabilidade
- Lógica separada da aplicação
- Regras compreensíveis
Como adicionar plug-ins Drools em Eclipse
Agora neste tutorial do Drools, vamos aprender como adicionar o plugin Drools em Eclipse.
Passo 1) Clique em “Distribution ZIP” para integração com jBPM
Acesse https://www.drools.org/download/download.html e clique em “Distribution ZIP” para integração com jBPM. Depois de baixado, extraia-o para o seu disco rígido.
Passo 2) Instale um novo software
In Eclipse, selecione Instalar novo software.
Passo 3) Clique no botão Adicionar
Clique no botão Adicionar para adicionar um software.
Passo 4) Procurar pasta
Na próxima tela, clique em Local e selecione a pasta “org.drools.updatesite/” e clique em OK.
Passo 5) Clique no botão Avançar
Na página de instalação de correção, clique no botão Avançar.
Passo 6) Aceite o contrato de licença
Aceite o contrato de licença e clique em Avançar.
Passo 7) Reinicie Eclipse
O software será baixado e você será solicitado a reiniciar o Eclipse.
Passo 8) Processo de instalação concluído
In Windows > No menu Preferências, você verá a opção Drools indicando que está instalado.
Exemplo do programa Drools Hello World
Abaixo está um exemplo do Drools para o programa Hello World:
package com.sample import com.sample.DroolsTest.Message; rule "Hello World" when m : Message( status ** Message.Hello, myMessage : message ) then System.out.println( myMessage ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.GOODBYE ); update( m ); end rule "GoodBye" when Message( status ** Message.GOODBYE, myMessage : message ) then System.out.println( myMessage ); end
O que é encadeamento reverso versus encadeamento direto?
Um mecanismo de encadeamento direto verifica os fatos e chega a uma conclusão específica.
Consideremos um cenário do sistema de diagnóstico médico. Se os sintomas do paciente forem colocados como fatos na memória de trabalho, será fácil diagnosticar uma doença nele.
Motor de encadeamento direto
Um mecanismo de encadeamento reverso tem o objetivo definido e tenta satisfazê-lo.
Considere o mesmo cenário de diagnóstico médico. Suponha que seja uma epidemia de uma determinada doença. Esta IA poderia presumir que um determinado indivíduo tinha a doença e tentar determinar se o seu diagnóstico está correto com base nas informações disponíveis.
Motor de encadeamento reverso
Por que usar o mecanismo de regras Drools?
Aqui estão os principais motivos para usar o mecanismo de regras Drools:
- As regras são fáceis de entender para desenvolvedores e business analysts.
- As regras são facilmente mantidas.
- O Rule Engine usa um algoritmo Rete que afirma que o desempenho do mecanismo nunca depende do número de regras.
- As regras podem ser modificadas e implementadas sem desativar o aplicativo.
- Exterioriza a lógica de negócios da base de código comparativamente estática.
- As regras são desenvolvidas em formatos menos complicados para que o analista de negócios possa ler e verificar facilmente um grupo de regras.
- As regras permitem criar um armazém de conhecimento que é executável na forma.
- Ferramentas como Eclipse ajudá-lo a gerenciar regras, obter resposta instantânea, autenticação e suporte de conteúdo.
Desvantagens do mecanismo de regras
Aqui estão as desvantagens/contras do uso do mecanismo de regras:
- Muito esforço de aprendizado é exigido pelos desenvolvedores para conhecer este método de programação
- O mecanismo de regras não é um método seguro para solucionar problemas.
- Precisa entender o funcionamento do mecanismo de regras para consumir mais memória
- Há um amplo conjunto de regras para uma ramificação complexa.
As regras podem mudar com o tempo e entrarão em vigor com alterações no código
Resumo
- JBoss Drools é uma plataforma de integração de lógica de negócios (BLiP)
- Os tipos de ferramenta Drool são: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
- Drool ajuda você a separar o aplicativo da lógica dinâmica.
- O fato representou os dados que servem de entrada para as regras.
- A memória de trabalho é um armazenamento com fatos, onde eles são usados para correspondência de padrões. Ele pode ser modificado, inserido e removido.
- A base de conhecimento é um componente que contém todos os recursos necessários para disparar a regra.
- A sessão de conhecimento representa o conhecimento do ecossistema Drools.
- A base de conhecimento representa o conhecimento do ecossistema Drools.
- O módulo armazena múltiplas bases de conhecimento, que podem conter diferentes sessões.
- As regras são partes do conhecimento frequentemente expressas como: “Quando ocorrerem condições específicas, execute algumas tarefas”.
- Um Drools é um mecanismo de regras que usa uma abordagem baseada em regras para implementar um sistema Expert.
- Um mecanismo de encadeamento direto verifica os fatos e chega a uma conclusão específica.
- Um mecanismo de encadeamento reverso tem o objetivo definido e tenta satisfazê-lo.
- O algoritmo Rete é um algoritmo útil de correspondência de padrões que permite implementar sistemas de regras de produção.
- As regras são fáceis de entender para desenvolvedores e analistas de negócios.
- A principal desvantagem de usar um mecanismo de regras como o Drool é que ele requer muito esforço de aprendizado exigido pelos desenvolvedores para conhecer esse método de programação.