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!".

  • โš™๏ธ Definiรงรฃo Essencial: Baba รฉ um JavaSistema de gerenciamento de regras de negรณcios (BRMS) baseado em algoritmo de correspondรชncia de padrรตes Rete, que executa regras de negรณcios utilizando esse algoritmo.
  • ๐Ÿ“œ Estrutura das regras: Uma regra segue um formato "quando-entรฃo", disparando aรงรตes somente quando suas condiรงรตes correspondem a fatos na memรณria de trabalho.
  • ???? Architextura: As regras sรฃo carregadas em uma base de regras, os fatos entram na memรณria de trabalho e o mecanismo os compara e os executa por meio de uma agenda.
  • ???? Eclipse Configuraรงรฃo: O plugin Drools รฉ instalado em Eclipse atravรฉs do arquivo ZIP de distribuiรงรฃo do jBPM e da caixa de diรกlogo Instalar Novo Software.
  • ๐Ÿ”„ Modos de encadeamento: O Drools suporta o encadeamento direto de fatos para conclusรตes e o encadeamento reverso de um objetivo de volta aos fatos.

Tutorial de Baba

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

Motor de regras Drools Archiarquitetura
Motor de regras Drools Archiarquitetura

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.

Adicionar plug-ins Drools em Eclipse

Passo 2) Instale um novo software
In Eclipse, selecione Instalar novo software.

Adicionar plug-ins Drools em Eclipse

Passo 3) Clique no botรฃo Adicionar
Clique no botรฃo Adicionar para adicionar um software.

Adicionar plug-ins Drools em Eclipse

Passo 4) Procurar pasta
Na prรณxima tela, clique em Local e selecione a pasta โ€œorg.drools.updatesite/โ€ e clique em OK.

Adicionar plug-ins Drools em Eclipse

Passo 5) Clique no botรฃo Avanรงar
Na pรกgina de instalaรงรฃo de correรงรฃo, clique no botรฃo Avanรงar.

Adicionar plug-ins Drools em Eclipse

Passo 6) Aceite o contrato de licenรงa
Aceite o contrato de licenรงa e clique em Avanรงar.

Adicionar plug-ins Drools em Eclipse

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.

Adicionar plug-ins Drools em Eclipse

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.

Encadeamento para trรกs vs. encadeamento para frente

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.

Encadeamento para trรกs vs. encadeamento para frente

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

Perguntas Frequentes

Sim. O Drools รฉ distribuรญdo sob a licenรงa Apache 2.0 e รฉ totalmente gratuito e de cรณdigo aberto. Ele funciona em qualquer JVM e estรก disponรญvel no repositรณrio Maven Central para facilitar a integraรงรฃo em projetos.

As regras do Drools sรฃo escritas em DRL (Drools Rule Language), uma sintaxe declarativa baseada na estrutura "quando-entรฃo". As regras tambรฉm podem ser criadas usando tabelas de decisรฃo, modelos DMN ou linguagens especรญficas de domรญnio para usuรกrios de negรณcios.

Um mecanismo de regras externaliza a lรณgica em regras de fรกcil manutenรงรฃo que podem ser alteradas sem a necessidade de reimplantar a aplicaรงรฃo. A lรณgica condicional (if-else) codificada diretamente no cรณdigo fica espalhada por toda a base de cรณdigo, รฉ mais difรญcil de atualizar e nรฃo escala bem ร  medida que o nรบmero de condiรงรตes aumenta.

Drools implementa sistemas especialistas, um ramo clรกssico da IA, codificando o conhecimento humano em regras. O mecanismo raciocina sobre fatos para chegar a conclusรตes, suportando encadeamento para frente e para trรกs, semelhante aos sistemas de decisรฃo de IA simbรณlica.

Sim. Os assistentes de IA podem elaborar regras de aprendizado por reforรงo profundo (DRL) a partir de requisitos em linguagem natural, detectar regras conflitantes ou redundantes e sugerir otimizaรงรตes. As equipes ainda validam as regras geradas para garantir a lรณgica de negรณcios correta e a execuรงรฃo confiรกvel.

Resuma esta postagem com: