Tutorial do Drools: Motor de Regras ArchiTextura e Diagrama
โก Resumo Inteligente
Drools รฉ um Sistema de Gerenciamento de Regras de Negรณcio de cรณdigo aberto escrito em Java que separa a lรณgica de negรณcios do cรณdigo da aplicaรงรฃo. Este recurso explica regras, o algoritmo Rete, a arquitetura e os componentes do Drools. Eclipse Configuraรงรฃo do plugin e um exemplo de regra "Olรก, Mundo!".

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 inseridos na memรณria de trabalho, onde podem ser modificados ou reescritos.tracted.
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 o jBPM. Apรณs o download, extracSalve-o em 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.
- ร necessรกrio compreender 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









