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.




posted under , |

0 comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio