8.12.2012

BPM y Workflow Foundation – Parte 3

Continuando con la tercera entrega de la serie de BPM utilizando tecnologías Microsoft, en este post vamos a realizar un workflow básico, lo vamos a instalar en el IIS/WAS y lo vamos a monitorear utilizando el Windows AppFabric.

El Workflow

En esta ocasión vamos a crear un workflow muy simple que va a llevar a cabo dos operaciones muy básicas a partir de una lista de números. Primeramente va a calcular el valor promedio de los ítems contenidos en la lista, y seguidamente va a dividir la lista de números en números pares y números impares. Iniciamos creando el workflow para ser consumido  a través de WCF tal y como se ve en la siguiente figura.

image

El workflow se puede ver en la siguiente figura.

image

Las figuras marcadas con rojo son las de activación del workflow vía el proxy de WCF y la de respuesta respectivamente. En la de activación se recibe como parámetro la lista de números con la que vamos a trabajar.

image

En la de respuesta se retorna la lista de pares, la lista de impares y el promedio calculado.

image

Probamos el workflow ejecutándolo en el WCFTest y vemos que funciona correctamente.

image

Ahora procedemos a instalar el workflow en el IIS/WAS, teniendo al AppFabric para monitoreo del workflow –el tema de los perfiles de deployment lo trataremos en otra serie. Para esto creamos una aplicación de consola y agregamos una referencia al servicio para poder activar el workflow.

image

Luego consumimos el servicio desde la aplicación de consola.

image

Si ejecutamos el código anterior el resultado es el siguiente:

image

Ahora procedemos a ver en el AppFabric como se ha estado comportando este workflow y este servicio en WCF; para esto vamos al sitio web dentro del IIS y vemos el dashboard del IIS.

image

Como podemos ver en el Panel del AppFabric, se han ejecutado 15 llamados a diversos servicios, y se han activado 5 workflows en ese lapso de tiempo ( 1 hora ).

Como podemos ver en este post, cumplimos con  3 de las 4 características de un BPM:

  1. Tener un diseñador de BPM en el Visual Studio ( en este caso 2012)
  2. Tener un motor de ejecución –> el que instancia y ejecuta el workflow, que es activado por un proxy WCF.
  3. Se puede monitorear utilizando el Windows AppFabric.
Etiquetas de Technorati: ,,,

8.05.2012

BPM y Workflow Foundation – Parte 2

Continuando con la serie de artículos acerca del workflow Foundation y los BPMs, en este post vamos a crear nuestro primer workflow y lo vamos  a exponer de forma tal que sea activado utilizando un proxy de WCF.

Implementando el Workflow

En primera instancia vamos a ir al Visual Studio y crear un proyecto de Workflow Foundation del tipo “WCF Workflow Service Application” tal y como se ve en la siguiente figura.

image

Como vemos en la figura anterior en la descripción del tipo de proyecto, este permite crear un servicio WCF que esta hosteado en el IIS/WAS – es decir soporta múltiples protocolos de activación – y se puede administrar vía el AppFabric. Este tipo de proyectos funciona de la siguiente manera cuando están en producción:

image

Inicialmente los workflows van a estar hosteados en el IIS; estos workflows pueden accederse vía HTTP o vía otros protocolos utilizando WAS; además van a ser monitoreados por el AppFabric y todo su logging y su trazabilidad va a estar almacenada en el SQL Server que esta configurado en el AppFabric para tal propósito. El workflow va a estar disponible vía un proxy WCF, por lo tanto los consumidores del workflow van a agregar una referencia al servicio cuando quieran activar el proceso.

Cuando creamos el proyecto del tipo seleccionado, se va a crear un workflow con dos actividades listas por defecto tal y como se ve en la siguiente figura:image

Como se ve en la figura anterior, las dos figuras generadas son para recibir la solicitud y para enviar la respuesta de la activación del workflow, todo el proceso que vayamos a crear, estará dentro de la zona marcada de color azul. En la figura ReceiveRequest están todos los aspectos de la configuración del workflow.

image

En esta actividad se define el namespace del servicio, el nombre del contrato, el nombre de la actividad y por último es establece si un servicio puede crear una instancia del servicio o no ( indispensable para que corra ).

Los parámetros de recibo del workflow se pueden ver en la forma de recibo en el campo content; si damos clic podemos ver la opción para poner parámetros de recibo.

image

El mismo método se utiliza para asignar los parámetros en la parte de la respuesta. En este caso, al respuesta del workflow simplemente será hacer un ToString del parametro de ingreso como se muestra en la siguiente pantalla.

image

Esto parámetros ( de recibo y respuesta ) se asignan a partir de variables definidas en el workflow, tal y como se ve en la siguiente figura.

image

Si ejecutamos esta actividad tal y como esta dándole F5, vamos a ver que este se hostea en el servidor de pruebas Web de VS y además que podemos consumirlo en el WCF Test Cliente.

image

En este caso, el WCF Test Client trabaja como el cliente que activa el workflow a través de un proxy que se genera de forma automática a la hora de debuguear el workflow.

En el próximo post vamos a crear un workflow aplicado a lo que se hace normalmente en una aplicación de negocios y lo vamos a publicar en el IIS.

Etiquetas de Technorati: ,,