Loading AI tools
De Wikipedia, la enciclopedia libre
Drools (o JBoss Rules) es un sistema de gestión de reglas de negocio (BRMS, por las siglas en inglés de Business Rule Management System) que utiliza un motor de reglas basado en inferencia de encadenamiento progresivo (forward chaining) y de encadenamiento regresivo (backward chaining), más conocido como sistema de reglas de producción, y que utiliza una implementación avanzada del algoritmo Rete.
Drools | ||
---|---|---|
Información general | ||
Tipo de programa | Sistema de gestión de reglas de negocio | |
Desarrollador | JBoss, Red Hat | |
Licencia | ASL 2 | |
Idiomas | inglés | |
Información técnica | ||
Programado en | Java | |
Plataformas admitidas | plataforma Java | |
Versiones | ||
Última versión estable | 7.24.0.Final ( 19 de julio de 2019 (5 años, 3 meses y 4 días)) | |
Enlaces | ||
Es software libre distribuido según los términos de la licencia Apache.
Drools se apoya en el estándar JSR-94 para su motor de reglas de negocio y framework de empresa para construcción, mantenimiento, y el refuerzo de políticas de empresa en una organización, aplicación o servicio.
Drools usa JCR (JackRabbit) para gestionar el repositorio de reglas, y el estándar JAAS para la autorización y autenticación.
En el año 2001 Bob McWhirter inició y registró The Drools Project en SourceForge. Drools 1.0 no se liberó debido a que era vulnerable a un ataque de fuerza bruta, así que se apostó por Drools 2.0, que estaba basado en el algoritmo Rete, y el proyecto fue movido a Codehaus. Durante el desarrollo de la versión 2.0 en Codehaus, Nobi Y se convirtió en líder del proyecto y se llegó a una versión final 2.0. En este punto, el proyecto se había convertido en el motor de reglas Java de código abierto que contaba con una comunidad de usuarios más fuerte y había comenzado la demanda de servicios comerciales. En octubre de 2005 Drools fue federado en JBoss como parte de su oferta JEMS y renombrado JBoss Rules. Con el apoyo financiero de Red Hat tras la adquisición de JBoss en el año 2006, fue posible reescribir JBoss Rules con una implementación Rete mejorada con herramientas provistas de GUI. A mediados de 2007 hubo una disputa por el nombre Drools, pero a pesar de ello se le seguía conociendo como Drools, y había que referirse a él como "Drools aka JBoss Rules", o "Drools (JBoss Rules)", lo que resultaba confuso.
JBoss Enterprise BRMS es un sistema de gestión de reglas de negocio y un motor de razonamiento para la creación, acceso, y gestión de cambio de políticas y reglas de negocio.[1] JBoss Enterprise BRMS es una versión de producción de Drools con disponibilidad de soporte de tipo empresarial. JBoss Rules también es una versión de producción Drools, pero JBoss Enterprise BRMS es el producto estrella.[2]
Componentes de la versión empresarial:[3]
Drools y Guvnor son proyectos open source de la JBoss Community. Forman parte de los productos para empresa JBoss Enterprise BRMS, gracias a que han alcanzado un grado de madurez adecuado.
Componentes de la versión JBoss Community:[6]
El siguiente ejemplo[7] muestra una sencilla regla que muestra en la salida estándar la información acerca de unas vacaciones en julio. Comprueba una condición de una instancia de la clase Holiday
, y ejecuta código Java si la condición es cierta.
rule "validate holiday"
dialect "mvel"
dialect "java"
when
$h1 : Holiday( month == "july" )
then
System.out.println($h1.name + ":" + $h1.month);
end
El propósito del dialecto "mvel
" es apuntar a los métodos Getter and Setters de las variables de las variables de las clases Plain Old Java Object (POJO).
En el ejemplo anterior encontramos la variable "month
" de la clase Holiday
, incluida entre paréntesis. Gracias al dialecto "mvel
" se pueden utilizar los getter y setter de la variable "month
".
El dialecto "java
" se utiliza para ayudarnos a describir el código Java como reglas, pero con una restricción: no podemos utilizar código Java dentro de la parte "when" de la regla, aunque sí podemos hacerlo en la parte "then".
También podemos declarar una variable de referencia $h1
que no incluya el símbolo $
, aunque se suele hacer para distinguir las variables POJO de las variables de las reglas.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.