Inception Deck: Actividades para una reunión productiva
11 octubre, 2016
¿AngularJS vs ReactJS?
14 octubre, 2016

Conceptualmente, un proceso de negocio consiste en una agrupación de actividades relacionadas que se procesan en un orden determinado para obtener un resultado predecible. El diseño de dichos procesos responde a satisfacer determinadas necesidades funcionales de forma ágil y eficiente.

Tradicionalmente, son las herramientas de gestión de procesos (BPM) las que se utilizan para el diseño de los procesos de negocio, dado que permiten definir de una forma ágil y sencilla los flujos de proceso necesarios para cubrir las necesidades funcionales.

La automatización de dichos procesos va un paso más allá, ya que permite que la toma de decisiones dentro de dichos procesos se lleve a cabo de forma automática en base a parametrizaciones funcionales establecidas por analistas de negocio.

 

¿Cómo posibilita BizTalk Server la automatización de procesos de negocio?

BizTalk Server es la herramienta por excelencia de la suite de productos de Microsoft que proporciona capacidades de BPM y automatización de procesos out-of-the-box.

El componente central que proporciona BizTalk para la definición de procesos de negocio es el diseñador de orquestaciones, el cual permite definir de forma visual el flujo de proceso necesario para cubrir la lógica funcional requerida. Este componente es el que dota a BizTalk Server de las capacidades BPM necesarias.

El lenguaje utilizado por BizTalk en la construcción de los orquestadores se denomina BPEL (lenguaje de ejecución de procesos de negocio), que es un estándar definido por OASIS. Para mayor referencia: https://es.wikipedia.org/wiki/WS-BPEL. No voy a entrar en detalle del estándar; tan sólo indicaré que el diseñador de orquestaciones de BizTalk se basa en la versión 1.1 del mismo.

Como complemento necesario al diseñador de orquestaciones, BizTalk proporciona un motor que permite la ejecución bajo demanda de los procesos de negocio definidos. A este componente se le conoce como el motor de orquestaciones. Este componente se encarga de interpretar y ejecutar los orquestadores generados por el diseñador.

El diseñador de orquestadores tiene la siguiente apariencia:

Osman_1

Pero, ¿es suficiente disponer de un diseñador y motor de orquestaciones para automatizar procesos de negocio?

Los orquestadores proporcionan los componentes necesarios para definir los procesos de negocio, es decir, capacidades de BPM. Adicionalmente, proporcionan ciertas capacidades de automatización, dado que permiten ejecutar lógica condicional dentro de las mismas, pero esta capacidad está muy limitada, ya que por defecto dicha lógica aplicada en la toma de decisiones es estática.

De cara a eliminar dichas limitaciones, BizTalk Server proporciona un motor de reglas de negocio que permite la evaluación de determinada lógica de negocio para la toma de decisiones. En combinación con los orquestadores, proporciona una herramienta muy útil y potenciadas cualidades de automatización de los mismos.

El motor de reglas de negocio incluido en el producto proporciona un compositor visual que permite la definición de grupos de reglas complejas que se pueden agrupar dentro de políticas. El objetivo de esta agrupación en políticas consiste en poder agrupar de forma funcional reglas que aplican a una determinada lógica dentro de un proceso de negocio.

Las reglas de negocio creadas con el compositor de reglas se almacenan en formato XML y se publican de forma totalmente independiente del proceso de negocio al que aplican. De esta forma, es posible modificar, crear o eliminar reglas de negocio y publicarlas sin afectar a los procesos de negocio existentes.

El diseñador de reglas de negocio tiene la siguiente apariencia:

Osman_2

Desde el punto de vista programático, se desarrollan dos tipos de componentes: los vocabularios y las reglas de negocio.

Los vocabularios representan alias para valores que se van a utilizar en las reglas y posibilitan su reutilización. Ejemplos de alias pueden ser valores constantes, getters y setters de propiedades, rutas xpath de documentos xml, métodos de clases, etc…

Por otro lado, las reglas de negocio representan las condiciones que se evalúan y las acciones que se desencadenan en caso de que se cumplan dichas condiciones. Las reglas hacen uso de vocabularios, bien sean los predefinidos o los creados por el desarrollador. Es muy recomendable usar vocabularios definidos en las reglas, tanto por motivos de reutilización como para evitar establecer valores estáticos.

De cara a facilitar la integración entre el diseñador de orquestadores y el motor de reglas de negocio, BizTalk proporciona un componente visual en el diseñador que permite consumir políticas de negocio de forma muy sencilla. Este componente, denominado Call Rules, permite consumir una determinada política publicada en el motor de reglas y facilitar los parámetros que se quieran proporcionar.

El componente tiene la siguiente apariencia con respecto a la configuración:

Osman_3

Adicionalmente, para no limitar la utilización del motor de reglas a los orquestadores, se proporciona un componente .NET que permite el consumo desde cualquier aplicación C#.

Para más información sobre la creación y consumo del motor de reglas de negocio: https://msdn.microsoft.com/en-us/library/aa577691.aspx

 

Con el motor de orquestadores y el motor de reglas, BizTalk nos proporciona los componentes fundamentales para la construcción de procesos de negocio automatizados. No obstante, desde una perspectiva de negocio, es prioritario disponer adicionalmente de herramientas que permitan monitorizar los procesos y garantizar que se comportan de forma adecuada y actuar sobre ellos en caso contrario.

Para cubrir estos requisitos, BizTalk incluye una herramienta de monitorización de la actividad de negocio (BAM). Esta utilidad permite verificar en tiempo real si los procesos de negocio se comportan de la forma adecuada y, adicionalmente, permite definir alertas que se notificarán de forma automática en caso de que se cumplan los parámetros de las mismas.

De cara a que la interacción con la herramienta sea sencilla, se proporciona un portal de gestión web que permite consultar las ejecuciones de proceso de negocio en tiempo real.

El portal tiene la siguiente apariencia:

Osman_4

Adicionalmente a la monitorización de actividad en tiempo real, el portal permite obtener estadísticas de ejecución de los procesos como tiempos medios de ejecución o agrupaciones en base a los datos de ejecución de los mismos.

Aunque BAM es fundamentalmente una herramienta que proporciona información de negocio, no es sencillo realizar los desarrollos que permiten extraer dicha información. Fundamentalmente, existen tres formas de extraer información para alimentar los procesos de BAM:  Tracking Profile Editor, que permite extraer información de orquestadores participantes en procesos de negocio, Interceptores de WCF y WF, que permiten extraer información de servicios WCF o flujos de Workflow Foundation participantes en procesos de negocio, y Componentes personalizados, que consisten en componentes desarrollados a medida que permiten extraer información que será utilizada por BAM.

Para más detalle del funcionamiento de BAM: https://msdn.microsoft.com/en-us/library/aa561137.aspx

 

Kabel Geek


 

Compártelo: Share on FacebookTweet about this on TwitterShare on LinkedInPin on Pinterest

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NEWSLETTER