Drools es un sistema de gestión de reglas de negocio (BRMS) con un motor de reglas basado en inferencia de encadenamiento hacia adelante y hacia atrás , más correctamente conocido como un sistema de reglas de producción , que utiliza una implementación mejorada del algoritmo Rete .
Drools admite el estándar Java Rules Engine API (Java Specification Request 94) para su motor de reglas de negocio y marco empresarial para la construcción, el mantenimiento y la aplicación de políticas de negocio en una organización, aplicación o servicio.
Drools, como parte de la comunidad Kie [2], ingresó a Apache Incubator en enero de 2023. [3]
Red Hat Decision Manager (anteriormente Red Hat JBoss BRMS [4] ) es un sistema de gestión de reglas de negocio y un motor de razonamiento para el desarrollo de políticas y reglas de negocio, el acceso y la gestión de cambios. [5] JBoss Enterprise BRMS es una versión de Drools con soporte de nivel empresarial disponible. JBoss Rules también es una versión de Drools, pero JBoss Enterprise BRMS es el producto estrella. [6]
Componentes de la versión empresarial: [7]
Drools y Guvnor son proyectos de código abierto de la comunidad JBoss. A medida que maduran, se incorporan al producto empresarial JBoss Enterprise BRMS.
Componentes de la versión de JBoss Community: [10]
Este ejemplo [11] ilustra una regla sencilla para imprimir información sobre un feriado en julio. Comprueba una condición en una instancia de la Holiday
clase y ejecuta código Java si esa condición es verdadera.
regla "validar vacaciones" cuando $ h1 : Vacaciones ( mes == "julio" ) entonces System . println ( $ h1 . nombre + : " + $h1 . mes ); fin
El propósito del dialecto " mvel
" es señalar los métodos de obtención y establecimiento de las variables de las clases de objetos POJO ( Plain Old Java ObjectHoliday
). Considere el ejemplo anterior, en el que se utiliza una clase y dentro de los corchetes circulares (paréntesis) month
se utiliza " ". Por lo tanto, con la ayuda del dialecto " mvel
" se puede acceder a los métodos de obtención y establecimiento de la variable " month
".
El dialecto " java
" se utiliza para ayudarnos a escribir nuestro código Java en nuestras reglas. Hay una restricción o característica al respecto. No podemos utilizar código Java dentro de la parte "cuando" de la regla, pero sí podemos utilizar código Java en la parte "entonces".
También podemos declarar una variable de referencia $h1
sin el $
símbolo. No hay ninguna restricción al respecto. El objetivo principal de colocar el $
símbolo antes de la variable es marcar la diferencia entre las variables de las clases POJO y las reglas.