Arquitectura del marco de trabajo de reglas de negocios
En la siguiente ilustración se muestra la arquitectura de componentes del marco de trabajo de reglas de negocios.
Arquitectura del marco de trabajo de reglas de negocios de Microsoft
En los párrafos siguientes se describen algunos de los componentes del marco de trabajo.
Clase Directiva
Un objeto Policy es una única instancia de una directiva empresarial y proporciona la interfaz que usan las aplicaciones basadas en reglas. Proporciona una abstracción que libera de preocupaciones al programador de aplicaciones respecto a la ubicación del almacén de reglas, pues extrae los conjuntos de reglas del almacén de reglas, crea instancias a partir de instancias del motor de reglas subyacentes y garantiza que los hechos a largo plazo se imponen en el motor. En muchos escenarios, una aplicación basada en reglas usa instancias simultáneas del objeto Policy . Estas instancias simultáneas pueden representar la misma directiva, distintas versiones de la misma directiva o versiones diferentes de directivas dispares.
Clase RuleEngine
El objeto RuleEngine actúa como motor de ejecución para las directivas empresariales. Usa tres componentes complementarios (traductor, motor de inferencia e interceptor de seguimiento) para la implementación. Un objeto RuleEngine toma un objeto RuleSet que representa una directiva empresarial como entrada y usa el traductor, el motor de inferencia y el interceptor de seguimiento configurado para que el conjunto de reglas implemente la directiva empresarial definida por el conjunto de reglas.
Recuperación de hechos
Un administrador de almacenes de datos es un componente complementario opcional y definido por el usuario que se encarga de recopilar hechos a largo plazo para utilizarlos en directivas empresariales. Para obtener más información, vea How to Create a Fact Retriever.
Antes de la ejecución, una instancia de objeto Policy proporciona su instancia RuleEngine al recuperador de hechos, lo que le da la oportunidad de actualizar el conjunto de hechos en la memoria de trabajo del motor de reglas. Para obtener más información, vea Hechos a corto plazo frente a Long-Term hechos.
Servicio de actualización de motor de reglas
El Servicio de actualización de motor de reglas proporciona actualizaciones dinámicas de directivas empresariales en un entorno distribuido. Una aplicación de servicio de Microsoft Windows NT de inicio automático se encarga de realizar suscripciones a los eventos de implementación y de anulación de implementación que se producen tras el cambio de directivas empresariales.
En un escenario empresarial común, las directivas empresariales se implementan tras actualizarse, probarse y realizarse versiones de ellas. La implementación consiste en agregar la directiva actualizada a un almacén de reglas seguro y persistente. Además, en ciertos casos se ejecuta una lógica en el almacén para publicar la información acerca de la directiva actualizada en todas las entidades implicadas (tenga en cuenta que es la información de la directiva lo que se publica, y no la directiva en sí).
El Servicio de actualización de motor de reglas, que se ejecuta en un servidor que aloja aplicaciones basadas en reglas, recibe la notificación de actualización de directivas y almacena la información en caché para usos posteriores. El empleo de un modelo de publicación y suscripción (pub/sub) en las actualizaciones de directivas le permite cambiar directivas empresariales casi en tiempo real sin que se produzcan interrupciones ni tiempos de inactividad en el servicio.
Herramientas de creación de directivas y vocabularios
Business Rule Composer en Microsoft BizTalk Server proporciona funcionalidades de creación de directivas y vocabularios a los usuarios finales y a los desarrolladores.
escala dinámica
Un almacén de reglas es un repositorio para directivas y vocabularios empresariales. El repositorio puede ser un archivo simple o una base de datos confiable, persistente, escalable y segura como, por ejemplo, Microsoft SQL Server. (SQL Server se utiliza en el marco de trabajo como el almacén de reglas predeterminado).
Almacenamiento en memoria caché
El marco del motor de reglas de negocios proporciona un mecanismo de almacenamiento en caché para las instancias de RuleEngine . Cada instancia de RuleEngine contiene una representación en memoria de una versión de directiva específica.
En los pasos siguientes se describe el proceso cuando se crea una instancia de una nueva instancia de Policy (ya sea con una llamada en la API o la ejecución de la forma Reglas de llamada):
El objeto Policy solicita una instancia de RuleEngine desde la memoria caché del motor de reglas.
Si existe una instancia de RuleEngine para la versión de directiva en la memoria caché, la instancia ruleEngine se devuelve al objeto Policy . Si una instancia de RuleEngine no está disponible, la memoria caché crea una nueva instancia. Cuando se crea una instancia de ruleEngine , a su vez, crea una nueva instancia del recuperador de hechos si se configura una para la versión de la directiva.
Cuando se llama al método Execute en el objeto Policy , se producen los pasos siguientes:
El objeto Policy llama al método UpdateFactsen la instancia del recuperador de hechos si existe un recuperador de hechos. La implementación del método del recuperador de hechos puede afirmar hechos a largo plazo en la memoria de trabajo de RuleEngine.
El objeto Policy afirma los hechos a corto plazo contenidos en la matriz que se pasó en la llamada Execute .
El objeto Policy llama a Execute en RuleEngine.
RuleEngine completa la ejecución y devuelve el control al objeto Policy.
El objetoPolicyretira los hechos a corto plazo de RuleEngine. Los hechos a largo plazo impuestos por el administrador de almacenes de datos permanecerán en la memoria de trabajo del motor de reglas.
Después de llamar al método Dispose en el objeto Policy , la instancia de RuleEngine se libera de nuevo en la memoria caché del motor de reglas.
La memoria caché del motor de reglas dispondrá de varias instancias del motor de reglas para una versión de directiva determinada si la carga lo requiere, y cada instancia del motor de reglas contará con su propia instancia del administrador de almacenes de datos.