Diseño de un motor de reglas en JavaScript (Parte – I)
Introducción
Según
Wikipedia, las reglas del negocio o conjunto
de reglas de negocio describen las políticas, normas, operaciones,
definiciones y restricciones presentes en una organización y
que son de vital importancia para alcanzar su misión como empresa.
Ejemplos de reglas de negocio: "Un cliente al
que facturamos más de 10.000 al año es un cliente de tipo A", "A los
clientes de tipo A les aplicamos un descuento del 10% en pedidos superiores a
3.000".
Las organizaciones funcionan siguiendo múltiples
reglas de negocio, explícitas o tácitas, que están embebidas en procesos,
aplicaciones informáticas, documentos, etc.
Pueden residir en
la cabeza de algunas personas o en el código fuente de programas informáticos.
En los últimos
años se viene observando una tendencia a gestionar de forma sistemática y
centralizada las reglas de negocio, de modo que sea fácil y sencillo
consultarlas, entenderlas, utilizarlas, cambiarlas, etc.
Para ello se
puede utilizar un motor de reglas de negocio. El motor de reglas de negocio es
un sistema que se configura para dar servicio a las necesidades de negocio a
través de la definición de objetos y reglas de negocio, el software se rige por
flujos que derivan responsabilidades a los distintos cargos de la empresa
repartiendo así el trabajo equitativamente y cuantitativamente, cuando, quien y
donde tiene que desempeñar la tarea asignada.
Las reglas de negocio son un medio por el cual la estrategia es implementada. Las reglas especifican - en un nivel adecuado de detalle - lo que una organización debe hacer.
En
este artículo vamos a diseñar un motor de reglas de negocio escrito en lenguaje
JavaScript, que podrá ser incluido en cualquier aplicación Web.
Implementación
El
diseño de este motor de reglas de negocio al que llamaremos js-ree
(JavaScript-Rules Evaluation Engine) es proporcionar a una aplicación Web la
capacidad de ayudar a tomar decisiones basadas en:
- Respuestas a una serie de
preguntas formuladas a un usuario
- Lógica presente en un
conjunto de reglas de negocio
El
algoritmo utilizado es bastante simple de implementar en cualquier lenguaje de
programación. La ventaja de JavaScript es el poder utilizar el motor
directamente en cualquier navegador de Internet y que además al ser un lenguaje
interpretado, permite evaluar expresiones escritas en el propio JavaScript en
tiempo de ejecución.
Eso
simplifica notablemente el motor, al no tener que definir un lenguaje para
expresar las reglas. Estas quedan escritas en la propia sintaxis de JavaScript
y no en ningún lenguaje estándar de definición de reglas como Business Process Execution Language (BPEL), Business Process Modeling Notation (BPMN) o
Semantics of Business Vocabulary and Business Rules (SBVR).
Licencia
El
código de este proyecto se distribuye bajo GNU Public License versión 3.0 con
los dos objetivos fundamentales de esta licencia:
- El código de es este
proyecto es software libre
- El código está protegido
de intentos de apropiación indebida que puedan restringir en un futuro la libertad
de los usuarios para utilizarlo
Aplicaciones
Pueden
crearse múltiples aplicaciones que utilicen motores de reglas y para usos muy
diferentes. Desde cuestionarios inteligentes, simuladores, validación de datos
de negocio complejos, etc.
- Cuestionario
inteligente.
Cuestionario que en vez de realizar una gran cantidad de preguntas al
usuario, solo realiza las que tienen sentido basándose en respuestas
anteriores. Por ejemplo, si el usuario quiere comprar un coche, no debería
preguntar si por accesorios de una moto.
- Simuladores. Software que permite
evaluando reglas, presentar de que forma responde a unos datos de entrada
un determinado sistema
- Validaciones
complejas.
Software que permite aplicar reglas de negocio a un conjunto grande de
datos para determinar si son adecuados para ser procesados o no por un
sistema.
0 comentarios:
Publicar un comentario