Arquitectura WF
Windows Workflow Foundations (WF) es parte del Framework 3.0 (y los posteriores claro). Microsoft nos hace la siguiente division del WF :
- Actividades: Es la unidad básica de trabajo que necesita ser ejecutada. Son bloques fáciles de crear, de agregar código en ellas y además podemos componer una actividad con otras actividades (ya hay algunas actividades prediseñadas como la ejecución en paralelo, el if/else, o las llamadas a web services).
- Modelador de Workflows: Te permite una composición gráfica de los workflows mediante la composición de actividades. Realmente te hace la vida muy fácil.
- Workflow Runtime: Es el motor de WF, ejecuta las actividades que conforman el workflow.
- Reglas: WF tiene un motor de reglas que permite la programación declarativa.
La arquitectura es la que sigue :

Entre otras cosas, esta arquitectura permite que una vez definido un workflow, puede ser hospedado en cualquier clase de aplicacion (siempre que sea de microsoft
), puede funcionar en un servicio de Windows Communication Foundation, servicio Web, pagina Web, aplicacion Windows Form, aplicación de consola o servicio Windows, dependiendo de las necesidades de tu aplicación. WF y tu aplicación se ejecutarán concurrentemente.
Después de decir esto… igual puedes deducir que WF no es una programa que se ejecuta independientemente, necesita de un proceso host.

Este es otro dibujo de la arquitectura… quizá mas facil de entender.
Workflow Runtime es el corazón de WF, éste inicializa las tareas de los workflows, dispara eventos para las diferentes situaciones, guarda informacion clave y usa los diferentes servicios de la figura. Será éste el que debemos de ser capaces de hospedarlo en nuestras futuras aplicaciones.
Ya he probado los servicios de tracking y de persistencia, y son más que interesantes… en el tema de tracking hay una aplicación para visualizar el funcionamiento de tus workflows llamada “WorkflowMonitor” y viene dentro de los ejemplos de Microsoft SDKs (WFSamples.zip). Ya comentaré mas sobre estos dos servicios puesto que no es sencillo, entre otras cosas necesitas configurar y acceder al SQL Server para funcionar.