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. Las reglas pueden provenir de una regulación legal ("Un empleado puede ser despedido por cualquier motivo o sin motivo, pero no por un motivo ilegal"), la política de la empresa ("Todos los clientes que gasten más de $ 100 a la vez recibirán un descuento del 10%". ) u otras fuentes. Un sistema de reglas de negocio permite definir, probar, ejecutar y mantener estas políticas de la empresa y otras decisiones operativas por separado del código de la aplicación .
Los motores de reglas suelen admitir reglas, hechos, prioridad (puntuación), exclusión mutua, condiciones previas y otras funciones.
El software de motor de reglas se proporciona comúnmente como un componente de un sistema de administración de reglas comerciales que, entre otras funciones, brinda la capacidad de: registrar, definir, clasificar y administrar todas las reglas, verificar la coherencia de las definiciones de reglas ("Los clientes de nivel Gold son elegible para envío gratuito cuando la cantidad de pedido> 10 "y" cantidad máxima de pedido para clientes de nivel Silver = 15 "), defina las relaciones entre las diferentes reglas y relacione algunas de estas reglas con las aplicaciones de TI que se ven afectadas o necesitan hacer cumplir una o más de las reglas.
Uso de TI
En cualquier aplicación de TI , las reglas comerciales pueden cambiar con más frecuencia que otras partes del código de la aplicación. Los motores de reglas o motores de inferencia sirven como componentes de software conectables que ejecutan reglas comerciales que un enfoque de reglas comerciales ha externalizado o separado del código de la aplicación. Esta externalización o separación permite a los usuarios comerciales modificar las reglas sin necesidad de intervención de TI . El sistema en su conjunto se vuelve más fácilmente adaptable con tales reglas comerciales externas, pero esto no excluye los requisitos habituales de control de calidad y otras pruebas.
Historia
Un artículo en Computerworld rastrea motores de reglas hasta principios de la década de 1990 y productos de empresas como Pegasystems , Fair Isaac Corp e ILOG . [1]
Estrategias de diseño
Los esfuerzos de reglas de muchas organizaciones combinan aspectos de lo que generalmente se considera diseño de flujo de trabajo con el diseño de reglas tradicional. Esta falla en separar los dos enfoques puede generar problemas con la capacidad de reutilizar y controlar tanto las reglas comerciales como los flujos de trabajo. Los enfoques de diseño que evitan este dilema separan el papel de las reglas comerciales y los flujos de trabajo de la siguiente manera: [2] [3]
- Las reglas comerciales producen conocimiento;
- Los flujos de trabajo realizan trabajo empresarial.
Concretamente, eso significa que una regla comercial puede hacer cosas como detectar que se ha producido una situación comercial y generar un evento comercial (generalmente realizado a través de una infraestructura de mensajería) o crear conocimiento comercial de nivel superior (por ejemplo, evaluar la serie de organizaciones, productos y reglas basadas en regulaciones sobre si un préstamo cumple o no con los criterios de suscripción). Por otro lado, un flujo de trabajo respondería a un evento que indica algo como la sobrecarga de un punto de enrutamiento iniciando una serie de actividades.
Esta separación es importante porque el mismo juicio comercial (la hipoteca cumple con los criterios de suscripción) o evento comercial (el enrutador está sobrecargado) puede ser reaccionado por muchos flujos de trabajo diferentes. La integración del trabajo realizado en respuesta a la creación de conocimiento impulsada por reglas en la propia regla reduce en gran medida la capacidad de las reglas de negocio para reutilizarse en una organización porque las hace específicas para el flujo de trabajo.
Para crear una arquitectura que emplee un motor de reglas de negocio, es esencial establecer la integración entre una plataforma BPM (Business Process Management) y BRM (Business Rules Management) que se basa en procesos que responden a eventos o examinan juicios comerciales definidos por reglas del negocio. Hay algunos productos en el mercado que proporcionan esta integración de forma nativa. En otras situaciones, este tipo de abstracción e integración tendrá que desarrollarse dentro de un proyecto u organización en particular.
La mayoría de los motores de reglas basados en Java proporcionan una interfaz técnica a nivel de llamada, basada en el estándar de interfaz de programación de aplicaciones (API) JSR-94 , para permitir la integración con diferentes aplicaciones, y muchos motores de reglas permiten integraciones orientadas a servicios a través de Web. estándares basados en WSDL y SOAP .
La mayoría de los motores de reglas brindan la capacidad de desarrollar una abstracción de datos que represente las entidades comerciales y las relaciones contra las cuales se deben escribir las reglas. Este modelo de entidad comercial normalmente se puede completar a partir de una variedad de fuentes, incluidos XML , POJO , archivos planos , etc. No existe un lenguaje estándar para escribir las reglas en sí. Muchos motores utilizan una sintaxis similar a Java , mientras que algunos permiten la definición de lenguajes personalizados para empresas.
La mayoría de los motores de reglas funcionan como una biblioteca invocable. Sin embargo, cada vez es más común que se ejecuten como un proceso genérico similar a la forma en que se comportan los RDBMS . La mayoría de los motores tratan las reglas como una configuración para cargarse en su instancia de proceso, aunque algunos son en realidad generadores de código para toda la instancia de ejecución de reglas y otros permiten que el usuario elija.
Tipos de motores de reglas
Hay varios tipos diferentes de motores de reglas. Estos tipos (generalmente) difieren en cómo se programa la ejecución de las Reglas.
La mayoría de los motores de reglas que utilizan las empresas son el encadenamiento directo , que se puede dividir en dos clases:
- La primera clase procesa las llamadas reglas de producción / inferencia . Estos tipos de reglas se utilizan para representar comportamientos del tipo SI condición ENTONCES acción. Por ejemplo, tal regla podría responder a la pregunta: "¿Debería permitirse una hipoteca a este cliente?" ejecutando reglas de la forma "SI alguna-condición ENTONCES permite-al-cliente-una-hipoteca".
- El otro tipo de motor de reglas procesa las llamadas reglas de acción de condición de reacción / evento . Los motores de reglas reactivas detectan y reaccionan a eventos entrantes y procesan patrones de eventos. Por ejemplo, un motor de reglas reactivas podría usarse para alertar a un gerente cuando ciertos artículos están agotados.
La mayor diferencia entre estos tipos es que los motores de reglas de producción se ejecutan cuando un usuario o una aplicación los invoca, generalmente sin estado. Un motor de reglas reactivas reacciona automáticamente cuando ocurren eventos, generalmente de manera con estado. Muchos (y de hecho la mayoría) de los motores de reglas comerciales populares tienen capacidades de reglas de producción y de reacción, aunque pueden enfatizar una clase sobre otra. Por ejemplo, la mayoría de los motores de reglas de negocio son principalmente motores de reglas de producción, mientras que los motores de reglas de procesamiento de eventos complejos enfatizan las reglas de reacción.
Además, algunos motores de reglas admiten el encadenamiento hacia atrás . En este caso, un motor de reglas busca resolver los hechos para que se ajusten a un objetivo en particular. A menudo se lo denomina impulsado por objetivos porque intenta determinar si algo existe basándose en la información existente.
Otro tipo de motor de reglas cambia automáticamente entre el encadenamiento hacia atrás y hacia adelante varias veces durante una ejecución de razonamiento, por ejemplo, el sistema Internet Business Logic, que se puede encontrar buscando en la web.
Una cuarta clase de motor de reglas podría denominarse motor determinista. Estos motores de reglas pueden renunciar tanto al encadenamiento hacia adelante como al encadenamiento hacia atrás y, en su lugar, utilizan enfoques de lenguaje específicos de dominio para describir mejor la política. Este enfoque suele ser más fácil de implementar y mantener, y proporciona ventajas de rendimiento sobre los sistemas de encadenamiento hacia adelante o hacia atrás.
Hay algunas circunstancias en las que la inferencia basada en lógica difusa puede ser más apropiada, donde se utilizan heurísticas en el procesamiento de reglas, en lugar de reglas booleanas. Los ejemplos pueden incluir clasificación de clientes, inferencia de datos faltantes, cálculos de valor del cliente, etc. El lenguaje DARL [4] y el motor de inferencia asociado y los editores son un ejemplo de este enfoque.
Motores de reglas para control / autorización de acceso
Un caso de uso común para los motores de reglas es el control de acceso estandarizado a las aplicaciones. OASIS define una arquitectura de motor de reglas y un estándar dedicado al control de acceso llamado XACML (eXtensible Access Control Markup Language). Una diferencia clave entre un motor de reglas XACML y un motor de reglas comerciales es el hecho de que un motor de reglas XACML no tiene estado y no puede cambiar el estado de ningún dato. El motor de reglas XACML, llamado Policy Decision Point (PDP), espera una pregunta binaria Sí / No, por ejemplo, "¿Puede Alice ver el documento D?" y devuelve una decisión, por ejemplo, Permitir / denegar.
Ver también
- De reglas de negocio
- Sistema de producción
- Máquina de inferencia
- Algoritmo rete
- Reglas de ondulación
- Sistema de gestión de reglas comerciales
- Razonador semántico
- Motor de flujo de trabajo
- Lenguaje de ejecución de procesos de negocio (BPEL)
- Lista de motores BPEL
- Lista de motores BPMN 2.0
Referencias
- ^ "¿Sabe dónde están todas las reglas comerciales de su empresa?" . Computerworld . IDG Enterprise. 39 (21): 25. 2005-05-23. ISSN 0010-4841 . Consultado el 2 de febrero de 2014 .
Los motores de reglas han existido desde principios de la década de 1990, cuando empresas como Pegasystems Inc. en Cambridge, Mass., Fair Isaac Corp. en Minneapolis e ILOG en Mountain View, California, los vendieron.
Por lo general, se usaban en industrias con muchas reglas, como las finanzas y los seguros.
Sin embargo, en los últimos años, muchos proveedores han ingresado al mercado y más empresas están considerando motores de reglas como una forma de obtener una mayor flexibilidad en las operaciones comerciales.
- ^ ¿Su motor de reglas está impulsado por eventos? Obtenido de http://www.sapiens-tech.com/iDuneDownload.dll?GetFile?AppId=225&FileID=216581&Anchor=&ext=.pdf Archivado el 30 de septiembre de 2018 en Wayback Machine .
- ^ "Motor de reglas de negocio" (PDF) .
- ^ https://darl.ai/home/darl
Bibliografía
- Taylor, James; Raden, Neil (2007). Sistemas inteligentes (suficientes). Prentice Hall. ISBN 0-13-234796-2 .
- David Linthicum (14 de febrero de 2007). "Reglas de motores y SOA". InfoWorld, 14 de febrero de 2007. Consultado el 23 de septiembre de 2009 en http://www.infoworld.com/d/architecture/rules-engines-and-soa-158 .
enlaces externos
- ¿Pautas para decidir si utilizar un motor de reglas?