España   Cambio   |   Todos los sites

Home

El Marco de Reglas de Negocio

BizTalk Server incluye el Marco de Reglas de Negocio (Business Rules Framework) en forma de librería de clases independiente, compatible con .NET, que incluye una serie de módulos, componentes de soporte y herramientas. Entre los módulos principales se incluye el Compositor de Reglas de negocio (Business Rule Composer) para la definición de políticas, el Asistente de Despliegue del Motor de Reglas para el despliegue de las políticas creadas con el Compositor de Reglas de Negocio y el Motor del Runtime de Reglas de Negocio que ejecuta las políticas en nombre de una aplicación del host.

Las reglas de negocio se pueden integrar en orquestaciones existentes ya, para resolver escenarios de uso muy variados:

  • Utilizar reglas de negocio en vez de código y evitar así cambiar las políticas de negocio y la lógica de programación en los procesos de negocio complejos. Incorporar llamadas y permitir que los profesionales de la información puedan actualizar las reglas de negocio directamente.

  • Utilizar las reglas para evaluar la lógica de negocio y determinar en qué momento un proceso necesita un retardo de duración variable. Por ejemplo, podríamos definir un bucle para comprobar el estado de un artículo y saber si tenemos unidades de ese artículo en el almacén. Después de comprobar en primera instancia que no hay unidades en almacén, el retardo aplicado a la regla puede ser de un minuto. La próxima vez la regla deberá esperar cinco minutos antes de volver a ejecutarse. Una vez cumplido ese plazo, el siguiente retardo será de 30 minutos y así sucesivamente.

  • Utilizar las reglas para determinar el path de ejecución de un proceso de negocio basándose en los resultados de la ejecución de la propia regla. Por ejemplo, si el código de cliente introducido en un pedido concreto no existe, se puede enrutar el documento a otro proceso de negocio para añadir el cliente como nuevo registro en la base de datos antes de continuar con el proceso de servicio del pedido.

El Motor de Orquestación de BizTalk, por el contrario, coordina y planifica en el tiempo el procesamiento de los mensajes y lleva a cabo la lógica compleja en el propio mensaje en el momento en que se le inserta dentro de un workflow definido.

El Compositor de Reglas de Negocio

El módulo Compositor de Reglas de Negocio permite crear reglas añadiendo predicados y valore, y definiendo acciones. Se pueden añadir datos y acciones arrastrándolos al área de diseño del Compositor. Las acciones actualizan los nodos en el documento especificado. Se pueden añadir también los operadores AND, OR y NOT a las condiciones, para conseguir comparaciones más sofisticadas.

Con el Compositor de Reglas de Negocio podemos crear, probar, publicar y desplegar múltiples versiones de políticas y vocabularios de reglas de negocio para facilitar la gestión de estos objetos. El Compositor es una herramienta que pueden utilizar tanto desarrolladores como administradores o profesionales de la información que deseen crear y aplicar reglas y políticas.

Rol

Descripción

Desarrollador

  • Crea vocabularios para facilitar a los profesionales de la información la labor de editar y entender las políticas de las reglas de negocio.

  • Crea las políticas de regla de negocio iniciales.

  • Enlaza la lógica de negocio con los datos. Los desarrolladores crean las orquestaciones desde donde se efectúan las llamadas a las reglas de negocio y definen la acción a seguir cuando cierta decisión regresa a la orquestación. En tanto no varíe el path de decisión dentro de la orquestación, no será preciso desplegar de nuevo esa orquestación.

Administrador

  • Protege las políticas de reglas de negocio. Por defecto, cuando se crea una nueva política o vocabulario en el almacén de reglas, solo el usuario que la ha creado y el administrador del BRE (el Motor de Reglas de Negocio) disponen de permisos de lectura/ejecución y de modificación/eliminación del acceso. El administrador del BRE puede configurar los niveles de permisos de los usuarios para realizar distintas actividades.

  • Despliega políticas de reglas de negocio de un entorno físico a otro. Esto se hace utilizando el Asistente de Despliegue del Motor de Reglas. Los administradores pueden también exportar e importar reglas utilizando el proceso MSI.

Profesional de la información

  • Administra las políticas de negocio en tiempo real.

Los vocabularios de las reglas de negocio

Los vocabularios de las reglas de negocio son nombres definidos por los usuarios para los datos que se utilizan en las condiciones y acciones de las reglas. Las definiciones de vocabulario facilitan la lectura, la comprensión y el uso compartido de las reglas entre varias personas dentro de un dominio concreto de la empresa. Por ejemplo, la ubicación original para un dato concreto es un campo específico de un registro de una base de datos y se representa en forma de consulta SQL. En lugar de utilizar la consulta SQL en la regla, se utiliza la definición del vocabulario para asignarle a este dato un nombre comprensible ligado a la consulta, algo que favorece a todos los implicados en el proceso de desarrollo y despliegue de la regla

Veamos el siguiente ejemplo de una regla de negocio:

Si el carrito de la compra contiene bienes por valor de más de 1.000 euros, se aplicará un descuento del 10% al cliente.

La regla es fácil de entender. Es una comparación booleana (“mayor que”) entre dos variables, el importe bruto acumulado del carrito de la compra y el valor 1.000. La acción a realizar es aplicar un descuento del 10 por ciento al importe total. En términos de programación, la regla sería más o menos así:

If Company.Namespace.ShoppingCart.PurchaseAmount > Qualifying Amount as System.Decimal

Then

Company.Namespace.Customer.DiscountedAmount = Company.Namespace.ShoppingCart .PurchaseAmount * .1

Para darle un nombre algo más amigable, podemos crear un vocabulario para la regla de negocio que abstraiga conceptos complejos, definiendo alias para los nodos del esquema, los campos de la base de datos y las clases .NET. Los vocabularios hacen que la creación y mantenimiento de las reglas sea mucho más sencillo. Si se definen correctamente, estos vocabularios permiten que el mantenimiento de las políticas pueda quedar en manos de los propios profesionales de la información.

EL Compositor de Reglas de Negocio incluye de serie dos vocabularios: el de Predicados y el de Funciones, que se utilizan en la creación de todas las reglas. Estos vocabularios se pueden ampliar si es preciso. Por ejemplo, la frase “si el Carrito de la compra contiene bienes por valor de más de 1.000 euros” es una comparación de tipo “mayor que” (ShoppingCart >1000). Se puede definir un nuevo término en el vocabulario que clarifique la relación representada por la función predefinida “mayor que”.

Políticas de Reglas de Negocio

Una política de regla de negocio es un agrupamiento lógico de reglas de negocio. Cada regla es una comparación condicional de datos. Si el resultado de la comparación es Verdadero, se ejecutan las acciones definidas en la regla. Las reglas de negocio agrupadas en una política reciben un número de versión común. Por tanto, si cambia una regla, simplemente habrá que crear una nueva versión de la política, probarla y ponerla en explotación. No hay que recompilar ni modificar las orquestaciones ni otros procesos de negocio que utilicen esa política de negocio concreta.

Business rule definition in the BizTalk Business Rule Composer

Figura 1. Definición de una regla de negocio con el Compositor de Reglas de Negocio

Cuando se llama al BRE desde una orquestación, este motor ejecuta la versión más reciente de una política. Los cambios realizados en una política de regla de negocio se aplican de inmediato. La siguiente vez que se llame a la política desde una orquestación, se utilizará la versión más reciente de dicha política cuyo estado sea “desplegada”. Cuando se llama a una política desde un programa, es preciso indicar la versión.

La publicación de la política en el almacén de reglas es el paso previo para que el BRE pueda utilizarla. Por defecto, el BRE utiliza una base de datos SQL Server como repositorio de reglas, pero se pueden también exportar a un almacén en formato XML. Una vez publicada, la política ya no se puede modificar y solo se puede alterar creando una nueva versión.

Nota: aunque las políticas se utilizan normalmente en combinación con las orquestaciones de BizTalk, pueden llamarse también desde cualquier ensamblado de .NET utilizando las Apis suministradas con el producto.em>

Un analista de negocio o un profesional de la información podrían explicar la lógica de la regla que se muestra en la Figura 1 diciendo “si los ingresos totales mensuales del solicitante superan la cuota mensual del crédito y ha mantenido el mismo empleo al menos durante los últimos seis meses o ha residido en el mismo domicilio durante los últimos seis meses, el préstamo se aprueba”.

Es importante destacar que esta regla, por sí sola, no contiene toda la lógica utilizada durante el proceso de aprobación del préstamo. Habrá otras condiciones que también se tendrán en cuenta durante el proceso y puede que una o varias conduzcan a su denegación. La regla está pensada para que su evaluación se produzca en el contexto de una política que contiene otras reglas además de ésta.

El Asistente para el Despliegue del Motor de Reglas

El Asistente para el Despliegue del Motor de Reglas ofrece un método eficiente y simple para:

  • Exportar una versión de una política o vocabulario desde un almacén de reglas basado en SQL Server a un almacén basado en archivo XML.

  • Importar una versión de una política o vocabulario desde un almacén basado en archivo XML a un almacén de reglas basado en SQL Server.

  • Desplegar una versión de una política, para ponerla a disposición del servicio de actualización y el runtime del motor de reglas. El asistente despliega una política marcándola como “desplegada” en la base de datos.

  • Retirar una versión de una política del almacén de reglas SQL en producción para que ya no pueda utilizarse desde una aplicación basada en reglas de negocio.

Si desea más información sobre el Marco de Reglas de Negocio de BizTalk, puede consultar la documentación del producto en MSDN.