Tutorial de Drools: Motor de reglas Archiarquitectura y diagrama

โšก Resumen inteligente

Drools es un sistema de gestiรณn de reglas de negocio de cรณdigo abierto escrito en Java que separa la lรณgica de negocio del cรณdigo de la aplicaciรณn. Este recurso explica las reglas, el algoritmo Rete, la arquitectura y los componentes de Drools, Eclipse Configuraciรณn del plugin y un ejemplo de regla "Hola Mundo".

  • โš™๏ธ Definiciรณn bรกsica: Babear es un Java-BRMS basado en que ejecuta reglas de negocio utilizando el algoritmo de coincidencia de patrones Rete.
  • ๐Ÿ“œ Estructura de las reglas: Una regla sigue un formato de "cuando-entonces", activando acciones solo cuando sus condiciones coinciden con los hechos almacenados en la memoria de trabajo.
  • ???? ๏ธ Architectura: Las reglas se cargan en una base de reglas, los hechos entran en la memoria de trabajo y el motor los compara y los procesa a travรฉs de una agenda.
  • ???? Eclipse Configuraciรณn: El complemento Drools se instala en Eclipse a travรฉs del archivo ZIP de distribuciรณn de jBPM y el cuadro de diรกlogo Instalar nuevo software.
  • ๐Ÿ”„ Modos de encadenamiento: Drools permite encadenar conclusiones hacia adelante, desde los hechos, y hacia atrรกs, desde un objetivo hasta los hechos.

Tutorial de babeo

ยฟQuรฉ son las babas?

Babea es un software de gestiรณn de reglas comerciales (BRMS) de cรณdigo abierto escrito en Java que proporciona a los usuarios una variedad de funciones como motor de reglas comerciales, creaciรณn web, aplicaciรณn de administraciรณn de reglas y soporte de tiempo de ejecuciรณn para modelos de decisiรณn y modelos de notaciรณn. Utiliza un sistema de implementaciรณn avanzado del algoritmo de coincidencia de patrones rete.

Drools se lanzรณ bajo la licencia Apache 2.0 y es compatible con cualquier JVM y tambiรฉn estรก disponible en el repositorio central de Maven.

La herramienta Drools le ayuda a separar y razonar la lรณgica y los datos que se encuentran en los procesos de negocio. Admite el motor de reglas de babeo basado en inferencias de encadenamiento hacia adelante y hacia atrรกs.

Las babas se dividen en dos partes:

  • Autorรญa โ€“ Implica el desarrollo de archivos de reglas.
  • Runtime โ€“ Implica la creaciรณn de memoria de trabajo y el manejo de la activaciรณn.

ยฟQuรฉ es la regla?

Las reglas son partes del conocimiento que a menudo se expresan como: "Cuando ocurren condiciones especรญficas, entonces realiza algunas tareas".

La parte mรกs crucial de una regla es su cuรกndo parte. Una vez cuรกndo parte estรก satisfecha, y luego en la pieza se activa.

Sintaxis:

When
<Condition is true>
Then
<Take desired Action>

Mรฉtodo de coincidencia de patrones

El mรฉtodo de coincidencia de patrones le ayuda a comparar hechos nuevos o antiguos con las reglas de producciรณn. Lo completa el motor de inferencia.

Algorithms utilizados para la coincidencia de patrones son:

  • Algoritmo Rete
  • Algoritmo de saltos
  • Algoritmo lineal
  • Tratar algoritmo

Sin embargo, el algoritmo mรกs utilizado por Drools es el algoritmo Rete.

Algoritmo Rete

El algoritmo Rete es un algoritmo de coincidencia de patrones รบtil que le permite implementar sistemas de reglas de producciรณn. Le ayuda a sacrificar memoria para aumentar la velocidad. Tambiรฉn reduce o elimina tipos especรญficos de redundancia con la ayuda de compartir nodos. Almacena coincidencias parciales mientras realiza uniones entre diferentes tipos de hechos.

Motor de reglas de babeo

Motor de reglas de babeo es un enfoque basado en reglas para implementar un sistema experto en el software Drools. El motor de reglas proporciona sistemas expertos, que son sistemas basados โ€‹โ€‹en conocimientos que le ayudan a tomar decisiones como quรฉ hacer y cรณmo hacerlo. Reรบne conocimientos en una base de conocimientos que puede utilizarse para razonar.

Suite de herramientas Drools

Ahora, en este tutorial de Drools Rule Engine, aprenderemos sobre Drools Tool Suite. Aquรญ hay cinco tipos de herramientas que forman parte de la suite Drools:

  • babea jefe: Es un repositorio centralizado para Drools KnowledgeBase.
  • Flujo de babas: Ofrece flujo de trabajo y procesos de negocio.
  • Fusiรณn de babeos:Herramienta utilizada para el procesamiento de eventos complejos
  • Drools Expert o motor de reglas: Una herramienta รบtil para realizar razonamientos.
  • Planificador de babas: Ofrece planificaciรณn automatizada, que incluye problemas de planificaciรณn NP-hard.

Componentes importantes en Drools

Ahora, en este tutorial de Drools, aprendamos sobre los componentes importantes de Drools.

Estos son los tรฉrminos esenciales utilizados en Drools:

  • Informaciรณn โ€“ Los hechos representan los datos que sirven como entrada para las reglas.
  • Memoria de Trabajo โ€“ Almacenamiento con hechos, donde se utilizan para comparar patrones. Se puede modificar, insertar y eliminar.
  • Sesiรณn de conocimiento โ€“ Este componente contiene todos los recursos necesarios para la regla de disparo. Aquรญ, todos los hechos se insertan en una sesiรณn รบnica y luego se activan las reglas coincidentes.
  • Base de Conocimientos โ€“ Representa el conocimiento en el ecosistema Drools. Almacena la formaciรณn de los recursos donde se encuentran las reglas.
  • Mรณdulo โ€“ Este es un mรณdulo que almacena mรบltiples bases de conocimientos que pueden albergar diferentes sesiones.

Architectura de babas

Motor de reglas de babeo Architectura
Motor de reglas de babeo Architectura

Aquรญ estรก el sistema de trabajo de la arquitectura Drools:

Paso 1) Las reglas se cargan en Rule Base, que estรก disponible en todo momento.

Paso 2) Los hechos se afirman en la memoria de trabajo, donde luego pueden ser modificados o reeditados.tracted

Paso 3) El proceso de comparar los hechos nuevos o existentes con las reglas de producciรณn se denomina coincidencia de patrones y lo realiza el motor de reglas.

Paso 4) La agenda le permite gestionar el orden de ejecuciรณn de las reglas en conflicto con la ayuda de una estrategia de resoluciรณn de conflictos.

Caracterรญsticas de la baba

Estas son las caracterรญsticas importantes de Drool:

  • Le ayuda a separar la aplicaciรณn de la lรณgica dinรกmica.
  • Programaciรณn declarativa
  • Centralizaciรณn del Conocimiento
  • Velocidad y escalabilidad
  • Separar la lรณgica de la aplicaciรณn
  • Reglas comprensibles

Cรณmo agregar complementos de Drools en Eclipse

Ahora, en este tutorial de Drools, aprendamos cรณmo agregar el complemento Drools en Eclipse.

Paso 1) Haga clic en "ZIP de distribuciรณn" para la integraciรณn de jBPM
Vaya al https://www.drools.org/download/download.html y haga clic en โ€œDistribution ZIPโ€ para la integraciรณn de jBPM. Una vez descargado, extracguรกrdalo en tu disco duro.

Agregar complementos de Drools Eclipse

Paso 2) Instalar nuevo software
In Eclipse, seleccione Instalar nuevo software.

Agregar complementos de Drools Eclipse

Paso 3) Haga clic en el botรณn Agregar
Haga clic en el botรณn Agregar para agregar un software.

Agregar complementos de Drools Eclipse

Paso 4) Examinar carpeta
En la siguiente pantalla, haga clic en Local y seleccione la carpeta โ€œorg.drools.updatesite/โ€ y luego haga clic en Aceptar.

Agregar complementos de Drools Eclipse

Paso 5) Haga clic en el botรณn Siguiente
En la pรกgina de instalaciรณn de correcciรณn, haga clic en el botรณn Siguiente.

Agregar complementos de Drools Eclipse

Paso 6) Acepta el acuerdo de licencia
Acepte el acuerdo de licencia y haga clic en siguiente.

Agregar complementos de Drools Eclipse

Paso 7) reiniciar Eclipse
El software se descargarรก y se le pedirรก que reinicie Eclipse.

Paso 8) Proceso de instalaciรณn completo
In Windows > Menรบ Preferencias, verรกs la opciรณn Drools indicando que estรก instalada.

Agregar complementos de Drools Eclipse

Programa Drools Ejemplo Hola Mundo

A continuaciรณn se muestra un ejemplo de Drools para el 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

ยฟQuรฉ es el encadenamiento hacia atrรกs y hacia adelante?

Un motor de encadenamiento directo comprueba los hechos y llega a una conclusiรณn concreta.

Consideremos un escenario del sistema de diagnรณstico mรฉdico. Si los sรญntomas del paciente se ponen como hechos en la memoria de trabajo, entonces es fรกcil diagnosticarle una dolencia.

Encadenamiento hacia atrรกs versus hacia adelante

Motor de cadena delantera

Un motor encadenado hacia atrรกs tiene el objetivo fijado y el motor intenta satisfacerlo.

Consideremos el mismo escenario de diagnรณstico mรฉdico. Supongamos que se trata de una epidemia de una determinada enfermedad. Esta IA podrรญa suponer que un individuo determinado tenรญa la enfermedad e intentar determinar si su diagnรณstico es correcto basรกndose en la informaciรณn disponible.

Encadenamiento hacia atrรกs versus hacia adelante

Motor de encadenamiento hacia atrรกs

ยฟPor quรฉ utilizar Drools Rule Engine?

Estas son las principales razones para utilizar el motor de reglas Drools:

  • Las reglas son fรกciles de entender para los desarrolladores y analistas de negocios.
  • Las reglas son fรกciles de mantener.
  • Rule Engine utiliza un algoritmo Rete que establece que el rendimiento del motor nunca depende de la cantidad de reglas.
  • Las reglas se pueden modificar e implementar sin cerrar la aplicaciรณn.
  • Externaliza la lรณgica empresarial a partir de una base de cรณdigo comparativamente estรกtica.
  • Las reglas se desarrollan en formatos menos complicados para que el analista de negocios pueda leer y verificar fรกcilmente un grupo de reglas.
  • Las reglas le permiten crear un almacรฉn de conocimientos cuyo formato es ejecutable.
  • Herramientas como Eclipse ayudarle a administrar reglas, obtener una respuesta instantรกnea, autenticaciรณn y soporte de contenido.

Desventajas del motor de reglas

A continuaciรณn se detallan las desventajas/desventajas de utilizar el motor de reglas:

  • Se requiere mucho esfuerzo de aprendizaje por parte de los desarrolladores para conocer este mรฉtodo de programaciรณn.
  • El motor de reglas no es un mรฉtodo seguro para solucionar problemas.
  • Necesita comprender el funcionamiento del motor de reglas para consumir mรกs memoria.
  • Existe un amplio conjunto de reglas para una ramificaciรณn compleja.

Las reglas pueden cambiar con el tiempo y entrarรกn en vigencia con los cambios de cรณdigo.

Preguntas Frecuentes

Sรญ. Drools se distribuye bajo la licencia Apache 2.0 y es completamente gratuito y de cรณdigo abierto. Se ejecuta en cualquier JVM y estรก disponible a travรฉs del repositorio central de Maven para una fรกcil integraciรณn en proyectos.

Las reglas de Drools se escriben en DRL (Drools Rule Language), una sintaxis declarativa basada en la estructura "cuando-entonces". Las reglas tambiรฉn se pueden crear utilizando tablas de decisiรณn, modelos DMN o lenguajes especรญficos del dominio para usuarios empresariales.

Un motor de reglas externaliza la lรณgica en reglas fรกciles de mantener que cambian sin necesidad de volver a implementar la aplicaciรณn. La lรณgica condicional (if-else) codificada directamente en el cรณdigo estรก dispersa, es mรกs difรญcil de actualizar y no se adapta bien al aumento del nรบmero de condiciones.

Drools implementa sistemas expertos, una rama clรกsica de la IA, codificando el conocimiento humano como reglas. El motor razona sobre los hechos para llegar a conclusiones, admitiendo el encadenamiento hacia adelante y hacia atrรกs, similar a los sistemas de decisiรณn de IA simbรณlica.

Sรญ. Los asistentes de IA pueden elaborar reglas de aprendizaje por refuerzo profundo (DRL) a partir de requisitos en lenguaje natural, detectar reglas contradictorias o redundantes y sugerir optimizaciones. Los equipos siguen validando las reglas generadas para garantizar la lรณgica empresarial correcta y una ejecuciรณn fiable.

Resumir este post con: