WINDOWS WORKFLOW FUNDATION

En este post voy a explicar en que consiste y como se conforma Windows WorkFlow Fundation (WF). WF Sirve para desarrollar aplicaciones disponiendo de una forma natural de expresar la lógica del negocio. Permite expresar la lógica de una forma natural sin entrar en las complicaciones de los lenguajes con las que esté construida.
La función principal de WF es facilitar la escritura de los procesos de negocio de forma declarativa, sin concentrándonos en el proceso que queremos implementar sin sacrificar la escalabilidad y robustez que ofrecen las nuevas tecnologías.

Arquitectura de WF
Todos los elementos del WF están basados en el principio de extensabilidad. Por este motivo es posible utilizarlo como “marco de trabajo” para incluirlo en otros productos de Microsoft ya existentes.
En la siguiente figura podemos ver las piezas fundamentales de la arquitectura del WF.




a) Capa Runtime = es el nucleo del WF y contiene la mayoria de los servicios críticos de WF. Estos servicios son:
Servicio de Ejecución: es el encargado de organizar la ejecución de las actividades y de los comportamientos más comunes de estos últimos (como eventos, manejo de excepciones, tracking, etc.)
Servicio de Scheduler: es uno de los servicios más importantes de WF. Se encarga de cómo se van a ejecutar los flujos de trabajo.
Motor de Reglas: permite crear y administrar las reglas que se evaluaran el ejecutar el programa.
b) Workflow Model = es donde los desarrolladores utilizaran la mayor parte de su tiempo ya que incluye las principales APIs y modelos del WF. Existen 2 modelos con los que se puede trabajar en WF, estos son:
Workflows Secuenciales: son los más utilizados debido a nuestra naturaleza de dividir las tareas en pasos.
Máquinas de Estado: permite definir diferentes estados y las transiciones que permiten cambiar de un estado a otro los que se asocian a eventos.
c) Hosting = se encarga de dar soporte de ejecución de WF permitiendo establecer los servicios necesarios, además de facilitar las comunicaciones de los flujos de trabajo con componentes externos tales como librerías u otros procesos.

Actividades (Workflow Model)
Las actividades pueden dividirse en:
- Act. de Proceso (tareas sencillas – code, delay, secuence, parallel, etc - )
- Act. de Control (Condicionales – if, while, etc - )
- Control de Excepciones
- Act. de Modelado (provee la funcionalidad necesaria para que nuestro flujo de trabajo pueda comunicarse con el proceso que los Aloja – ExternalDataExchangeService -)

Servicios (Hosting)
- Persistence (WorflowPersistenceService): permite que los flujos de trabajo sean durables en el tiempo a la espera de un determinado evento. WF proporciona una implementación de sqlWorkflowPersistenceService la que permite utilizar SQL Server como almacén de persistencia.
- Scheduler (WorkflowSchedulerService): permite configurar si deseamos que cada uno de nuestros flujos de trabajo se ejecuten en hilos separados o en el mismo hilo. Por defecto defaultWorkflowSchedulerService crea un nuevo hilo por cada instancia y con Manual WorkflowSchedulerService podemos establecer como lo deseamos.
- Tracking (WorkflowTrackingService): permite instrumentar un proceso de negocio y brinda un servicio de repositorio (BD) que poder explotar. Se basa en 2 elementos fundamentales: Tracking Profile: define un perfil de eventos que deben ser instrumentalizados (Ej: Act. o Flujos de trabajo) y Tracking Channel: es el repositorio (txt o BD) donde se depositan todas las trazas de información.

0 comentarios: