stringtranslate.com

Motor de reglas de negocio

Un motor de reglas de negocio es un sistema de software que ejecuta una o más reglas de negocio en un entorno de producción en tiempo de ejecución . Las reglas pueden provenir de regulaciones legales ("Un empleado puede ser despedido por cualquier motivo o sin motivo, pero no por un motivo ilegal"), política de la empresa ("Todos los clientes que gasten más de $100 a la vez recibirán un 10% de descuento". ), u otras fuentes. Un sistema de reglas de negocio permite que estas políticas de la empresa y otras decisiones operativas se definan, prueben, ejecuten y mantengan por separado del código de la aplicación .

Los motores de reglas normalmente admiten reglas, hechos, prioridad (puntuación), exclusión mutua, condiciones previas y otras funciones.

El software del motor de reglas se proporciona comúnmente como un componente de un sistema de gestión de reglas de negocio que, entre otras funciones, proporciona la capacidad de: registrar, definir, clasificar y gestionar 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 del pedido es > 10” y “cantidad máxima de pedido para clientes de nivel Plata = 15”), definen las relaciones entre diferentes reglas y relacionan algunas de estas reglas con las aplicaciones de TI que se ven afectadas o necesitan hacer cumplir una o más reglas.

caso de 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 empresariales modificar las reglas sin necesidad de intervención de TI. El sistema en su conjunto se vuelve más fácilmente adaptable a dichas reglas comerciales externas, pero esto no excluye los requisitos habituales de control de calidad y otras pruebas.

Historia

Un artículo en Computerworld rastrea los motores de reglas hasta principios de la década de 1990 y hasta productos como Pegasystems , Fair Isaac Corp, ILOG [1] y eMerge [2] de Sapiens .

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 falta de separación de 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 de negocio y los flujos de trabajo de la siguiente manera: [3]

Concretamente, eso significa que una regla de negocios puede hacer cosas como detectar que ha ocurrido una situación de negocios y generar un evento de negocios (normalmente transmitido a través de una infraestructura de mensajería) o crear conocimiento de negocios de nivel superior (por ejemplo, evaluar la serie de eventos organizacionales, de producto y reglas basadas en regulaciones relativas a 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 indicara algo como la sobrecarga de un punto de enrutamiento iniciando una serie de actividades.

Esta separación es importante porque muchos flujos de trabajo diferentes pueden reaccionar ante el mismo criterio comercial (la hipoteca cumple con los criterios de suscripción) o evento comercial (el enrutador está sobrecargado). Incorporar el trabajo realizado en respuesta a la creación de conocimiento basada en reglas en la regla misma reduce en gran medida la capacidad de las reglas de negocios para ser reutilizadas 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 una plataforma BRM (Business Rules Management) que se basa en procesos que responden a eventos o examinan juicios de negocios 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 la 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 y relaciones comerciales sobre 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 y amigables para los negocios.

La mayoría de los motores de reglas funcionan como una biblioteca invocable. Sin embargo, cada vez es más popular 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 que se carga 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 utilizados por las empresas son encadenamiento directo , que se puede dividir en dos clases:

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 reactivo reacciona automáticamente cuando ocurren eventos, generalmente con estado. Muchos (y de hecho la mayoría) de los motores de reglas comerciales populares tienen capacidades de reglas tanto de producción como de reacción, aunque pueden enfatizar una clase sobre otra. Por ejemplo, la mayoría de los motores de reglas de negocios 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 particular. A menudo se le conoce como impulsado por objetivos porque intenta determinar si algo existe en función de la información existente.

Otro tipo de motor de reglas cambia automáticamente entre encadenamiento hacia adelante y hacia atrás 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 prescindir tanto del encadenamiento hacia adelante como del encadenamiento hacia atrás y, en su lugar, utilizan enfoques de lenguaje de dominio específico para describir mejor las políticas. 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 podrían incluir clasificación de clientes, inferencia de datos faltantes, cálculos de valor para el cliente, etc. El lenguaje DARL [4] y el motor de inferencia y los editores asociados 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 Punto de Decisión de Política (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

Referencias

  1. ^ "¿Sabe dónde están todas las reglas comerciales de su empresa?". Mundo de la informática . 39 (21). IDG Enterprise (publicado el 23 de mayo de 2005): 25, 23 de mayo de 2005. ISSN  0010-4841 . Consultado el 2 de febrero de 2014 . Los motores de reglas existen desde principios de la década de 1990, cuando empresas como Pegasystems Inc. en Cambridge, Massachusetts, Fair Isaac Corp. en Minneapolis e ILOG en Mountain View, California, los vendieron. Por lo general, se usaban en industrias con reglas pesadas, como las finanzas y los seguros. Sin embargo, en los últimos años, muchos proveedores han entrado en el mercado y cada vez más empresas están considerando los motores de reglas como una forma de obtener una mayor flexibilidad en las operaciones comerciales.
  2. ^ "Plataforma de desarrollo de software basada en reglas eMerge".
  3. ^ ¿Su motor de reglas está basado en 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 .
  4. ^ "El lenguaje DARL". Archivado desde el original el 1 de septiembre de 2018 . Consultado el 1 de septiembre de 2018 .

Bibliografía

enlaces externos