Drools - Introducción
Cualquier aplicación Java de nivel empresarial se puede dividir en tres partes:
- UI - Interfaz de usuario (Frontend)
- Capa de servicio que a su vez está conectada a una base de datos
- Capa empresarial
Tenemos varios marcos que manejan la interfaz de usuario y la capa de servicio juntas, por ejemplo, Spring y Struts. Sin embargo, no teníamos una forma estándar de manejar la lógica empresarial hasta que nació Drools.
¿Qué es Drools?
Drools es un Business Logic integration Platform (BLiP). Está escrito en Java. Es un proyecto de código abierto respaldado por JBoss y Red Hat, Inc. Extiende e implementa el algoritmo de coincidencia de patrones Rete.
En términos simples, Drools es una colección de herramientas que nos permiten separar y razonar sobre la lógica y los datos que se encuentran dentro de los procesos comerciales. Las dos palabras clave importantes que debemos tener en cuenta sonLogic y Data.
Drools se divide en dos partes principales: Authoring y Runtime.
Authoring - El proceso de creación implica la creación de archivos de reglas (archivos .DRL).
Runtime - Implica la creación de memoria de trabajo y el manejo de la activación.
¿Qué es un motor de reglas?
Drools es un motor de reglas o un sistema de reglas de producción que utiliza el enfoque basado en reglas para implementar un sistema experto. Los sistemas expertos son sistemas basados en el conocimiento que utilizan la representación del conocimiento para procesar el conocimiento adquirido en una base de conocimiento que se puede utilizar para razonar.
Un sistema de reglas de producción es Turing completo con un enfoque en la representación del conocimiento para expresar la lógica proposicional y de primer orden de una manera concisa, no ambigua y declarativa.
El cerebro de un sistema de reglas de producción es un Inference Engineque puede escalar a una gran cantidad de reglas y hechos. El motor de inferencia compara hechos y datos con las reglas de producción, también llamadoProductions o solo Rules - inferir conclusiones que resulten en acciones.
Una regla de producción es una estructura de dos partes que utiliza lógica de primer orden para razonar sobre la representación del conocimiento. Un motor de reglas comerciales es un sistema de software que ejecuta una o más reglas comerciales en un entorno de producción en tiempo de ejecución.
Un motor de reglas le permite definir "What to Do" y no "How to do it. "
¿Qué es una regla?
Las reglas son piezas de conocimiento que a menudo se expresan como: " Cuando ocurran algunas condiciones, entonces realice algunas tareas".
When
<Condition is true>
Then
<Take desired Action>
La parte más importante de una regla es su whenparte. Si elwhen parte está satisfecha, la then parte se activa.
rule <rule_name>
<attribute> <value>
when
<conditions>
then
<actions>
end
La coincidencia de patrones
El proceso de hacer coincidir los hechos nuevos o existentes con las Reglas de producción se denomina Coincidencia de patrones, y lo realiza el motor de inferencia. Hay una serie de algoritmos utilizados para la coincidencia de patrones que incluyen:
- Linear
- Rete
- Treat
- Leaps
Drools Implementa y extiende el algoritmo Rete. La implementación de Drools Rete se llama ReteOO, lo que significa que Drools tiene una implementación mejorada y optimizada del algoritmo Rete para sistemas orientados a objetos.
Ventajas de un motor de reglas
Programación declarativa
Las reglas facilitan la expresión de soluciones a problemas difíciles y también la verificación de las soluciones. A diferencia de los códigos, las reglas están escritas en un lenguaje menos complejo; Los analistas de negocios pueden leer y verificar fácilmente un conjunto de reglas.
Separación lógica y de datos
Los datos residen en los Objetos de dominio y la lógica empresarial reside en las Reglas. Dependiendo del tipo de proyecto, este tipo de separación puede resultar muy ventajoso.
Velocidad y escalabilidad
El algoritmo Rete OO en el que está escrito Drools ya es un algoritmo probado. Con la ayuda de Drools, su aplicación se vuelve muy escalable. Si hay solicitudes de cambio frecuentes, se pueden agregar nuevas reglas sin tener que modificar las reglas existentes.
Centralización del conocimiento
Al utilizar Reglas, crea un depósito de conocimientos (una base de conocimientos) que es ejecutable. Es un punto único de verdad para la política empresarial. Idealmente, las reglas son tan legibles que también pueden servir como documentación.
Integración de herramientas
Herramientas como Eclipse proporcionan formas de editar y administrar reglas y obtener retroalimentación inmediata, validación y asistencia de contenido. También se encuentran disponibles herramientas de auditoría y depuración.