Tutorial de Drools: motor de reglas de Drools Architecnología y ejemplos

¿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 when parte. Una vez when parte está satisfecha, después 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 hacen valer en la Memoria de Trabajo donde luego pueden ser modificados o retractados.

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
Ve a https://www.drools.org/download/download.html y haga clic en "ZIP de distribución" para la integración de jBPM. Una vez descargado, extráigalo a su 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.

Resumen

  • JBoss Drools es una plataforma de integración de lógica empresarial (BLiP)
  • Los tipos de herramientas Drool son: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools, Planner.
  • Drool te ayuda a separar la aplicación de la lógica dinámica.
  • El hecho ha representado los datos que sirven como entrada para las reglas.
  • La memoria de trabajo es un almacenamiento de hechos, donde se utilizan para comparar patrones. Se puede modificar, insertar y eliminar.
  • La base de conocimientos es un componente que contiene todos los recursos necesarios para la regla de disparo.
  • La sesión de conocimiento representa el conocimiento en el ecosistema Drools.
  • La base de conocimiento representa el conocimiento en el ecosistema Drools.
  • El módulo almacena múltiples bases de conocimientos, que pueden albergar diferentes sesiones.
  • Las reglas son partes del conocimiento que a menudo se expresan como: "Cuando ocurren condiciones específicas, entonces realiza algunas tareas".
  • Un Drools es un motor de reglas que utiliza un enfoque basado en reglas para implementar un sistema experto.
  • Un motor de encadenamiento directo comprueba los hechos y llega a una conclusión concreta.
  • Un motor encadenado hacia atrás tiene el objetivo fijado y el motor intenta satisfacerlo.
  • El algoritmo Rete es un algoritmo de coincidencia de patrones útil que le permite implementar sistemas de reglas de producción.
  • Las reglas son fáciles de entender para desarrolladores y analistas de negocios.
  • El principal inconveniente de utilizar un motor de reglas como Drool es que requiere mucho esfuerzo de aprendizaje por parte de los desarrolladores para conocer este método de programación.