Windows Workflow Foundation para curiosos

 Ahora  sí vamos a continuar con la saga que inicié el pasado 19 de Octubre, comentando los pilares fundacionales del próximo Windows Vista. Recordemos cuáles eran éstos

  • Comunicaciones, mediante Windows Communication Foundation o WCF (previamente conocido como Indigo, su code name)
  • Flujos, a través de Windows Workflow Foundation o Windows WF
  • Presentación, vía Windows Presentation Foundation o WPF (antes conocido como Avalon)

Este pilar fue el último en levantarse, y tomó de sorpresa a más de uno. Por qué Microsoft consideraría tan relevente incluir algo tan específico como un motor de workflows como una pieza a bajo nivel de su próxima versión de sistema operativo? Practicamente todas las empresas hoy tienen un mismo objetivo: soportar procesos de negocio. Algunos enteramente automáticos, sean aislados o comunicándose con otras aplicaciones. Otros, quizás la mayoría, apoyándose también en personas. Una vez que el workflow se definió, una aplicación se construye basada en la definición para soportar el proceso de negocio

Los hay de dos grandes grupos

  • Workflows humanos. Ejecutables por personas (o roles), normalmente con una dinámica flexible, apoyandose en documentos o, en todo caso, en datos no estructurados. Un ejemplo clásico es el del revisor de documentos
  • Workflows sistémicos. Ejecutados por aplicaciones y servicios, con una dinámica más bien predecible (protocolar). Los datos que hace fluir son estructurados, al revés del caso anterior. Un ejemplo clásico es el de la integración B2B, como ser la Cadena de Distribución (que puede involucrar a un comercio, a una empresa de tarjeras de crédito y a una empresa de transporte puerta a puerta)

Escenaríos típicos contemplan

  • Aplicaciones de línea de negocios (line of business o LOB), como el facturador, el sistema de ventas, etc
  • Administración de TI, casos tales como el sistema de provisioning, el sistema de trouble tickets de la mesa de ayuda, …
  • Aplicaciones web, que deben controlar la navegación entre páginas según el contexto de la operación
  • Aplicaciones que coordinan servicios

Las alternativas a contemplar son tan variadas que pretender hacer esa pieza en casa insumiría un costo (horas, plata) sustancial del proyecto, que debería ser reaprovechado en hacer lógica pura de negocio (y no infraestructura de soporte a la misma). Eso justificó la incorporación de este pilar como un servicio a nivel de sistema, como una forma de bajar el costo de construir aplicaciones .NET

Los conceptos claves que hay que entender, en la arquitectura de la solución de Windows WF, es que los workflows corren dentro de un proceso contenedor (por ejemplo, una aplicación, un servidor). También, que cada workflow se compone de un conjunto de actividades (tareas concretas como invocar un servicio, abrir secuencias paralelas, actualizar cierto estado, etc)

Windows WF aporta una biblioteca de actividades básicas, reusables, que pueden servir como base para generar actividades más específicas, personalizadas


Actividades ya incluídas en Windows WF

Los flujos se diseñan visualmente con Visual Studio 2005


Workflow secuencial simple

Las actividades personalizadas pueden crearse desde 0 (cero), o también pueden crearse como composición o extensión de otras actividades (básicas o personalizadas). De esta manera, se pueden agrupar actividades cohesivas en paquetes específicos de dominio (Administración de TI, Compliance, CRM, RosettaNet, …). Estos paquetes presuntemente van a cubrir aspectos verticalmente, y es de esperarse que sean provistos por terceros que acrediten volcar todo su conocimiento en dichas verticales, aprovechando asimismo las mejores prácticas de Windows WF

Esto sólo a modo de introducción de este pilar nuevo. A aquellos que quieran profundizar les recomiendo la introducción conceptual realizada por David Chappell, la introducción más orientada a desarrolladores de Dino Espósito. También, el libro de los creadores de Windows WF

Esta entrada fue publicada en Software Architecture. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s