Drools: Introducción

Última actualización: 04/10/2020

En esta entrada realizamos una introducción a Drools repasando sus aspectos clave. En qué consiste este motor de reglas, cómo encaja en el Big Data y su arquitectura.

Drools Rule Engine

Aspectos clave de Drools Rule Engine

En su origen, Bob McWhirter y Mark Proctor crearon Drools en 2001 y se publicó en SourceForge. Más adelante, en el 2005, JBoss lo adquirió y por último fue comprado por Red Hat en el año 2006.

Desde su adquisición por parte de Red Hat existe una versión enterprise (también denominada Downstream) y una versión Community (Upstream).

El grupo KIE Group (siglas de Knowledge Is Everything) fue creado para integrar reglas y planificación automatizada en procesos de negocio. Es un proyecto paragüas introducido para unificar tecnologías relacionadas.

El proyecto está compuesto por los siguientes componentes:

  • Drools: Business Rule Management System
  • JBPM: Business Process Management Suite (anterior Drools Flow)
  • Optaplanner: Constraint Solver System (anterior Drools Planner)
  • AppFormer: UI Development Environment

Glosario de Términos – Drools

Business Rule Management System (BRMS)

BRMS es un sistema usado para capturar la lógica de decisión como reglas de negocio. Las reglas se externalizan y se gestionan aparte del código de la aplicación.

Componentes:

  1. Repositorio para externalizar las reglas del código
  2. Herramientas que permiten definir y gestionar la lógica de decisión
  3. Motor de ejecución que permite acceder y ejecutar lógica de decisión gestionada por BRMS

Sistema experto

Este paradigma de la inteligencia artificial se centra en las herramientas basadas en conocimiento. Consiste en un programa que contiene reglas codificadas para emular el proceso de toma de decisión humano.

Base de conocimiento

La base de conocimiento es el conjunto de conocimiento del dominio formalizado en forma de reglas.

Artefactos

  • Drools Engine: Drools Expert es el motor de reglas y Drools Fusion realiza procesamiento de eventos complejo (CEP). Contiene librerías de tipo JAR.
  • Business Central Workbench (KWB): Es una aplicación web y un repositorio para manejar Drools y los activos jBPM. Consiste en un fichero WAR para desplegar en el servidor de aplicaciones.
  • Herramientas jBPM: Son plugins de Eclipse y que aportan soporte para Drools, jBPM y Guvnor. Contiene librerías de tipo JAR.
  • KIE Execution Server (KES): Es un servidor de ejecución independiente para ejecutar reglas utilizando REST y JMS. Consiste en un fichero WAR para desplegar en el servidor de aplicaciones.

Estructura de una Regla en Drools

Package
Import
Declare

Rule "nombre de la regla"
    <atributo>
When
    <Condición> <Evento 1, Evento 2, Evento 3...>
Then
    <Acción> <Mensaje, Alerta, Datos generados...>
End

En una regla, una condición representa una restricción o filtro. Estos filtros analizarán la información del dominio para encontrar datos que cumplan con los criterios. Cuando se obtiene un grupo de datos que coinciden con la condición, se programa una acción.

Las reglas de negocio se basan en la programación declarativa, que puede expresar la lógica de un programa sin tener que describir explícitamente el flujo de instrucciones.

Preguntas Frecuentes – FAQ

¿Para qué se usa Drools?

Drools es un motor de reglas que permite implementar sistemas expertos basados en reglas. De esta forma representa una base de conocimiento sobre la que especificar condiciones y acciones (Reglas de Negocio).

¿Qué es un fichero DRL?

Son ficheros de texto que representan reglas de negocio escritas con DRL (Drools Rules Language). Estos ficheros los usar Drools para evaluar las acciones.

¿Qué es KIE Workbench?

KIE (Knowledge Is Everything) es el nombre de Drools, jBPM y otras tecnologías relacionadas. El Workbench es una aplicación web para manejar Drools y activos jBPM.


A continuación el vídeo-resumen. ¡No te lo pierdas!


¡Echa un ojo a mi lista de reproducción de Big Data en Youtube!

Si te ayuda el contenido del blog, por favor considera unirte a la lista de correo para reconocer el trabajo!

Deja una respuesta