Compartir vía


Introducción a Windows Workflow

Un flujo de trabajo es un conjunto de unidades elementales denominadas actividades que se almacenan como un modelo que describe un proceso real. Los flujos de trabajo proporcionan una manera de describir el orden de ejecución y las relaciones dependientes entre partes de trabajo de corta o larga duración. Este trabajo pasa por el modelo de principio a fin y las actividades pueden ejecutarse por personas o por funciones del sistema.

Motor de ejecución de flujos de trabajo

Cada instancia de flujo de trabajo en ejecución se crea y mantiene mediante un motor en tiempo de ejecución en proceso con el que interactúa el proceso host a través de uno de los siguientes:

  • Un WorkflowInvoker, que invoca el flujo de trabajo como un método.

  • Un WorkflowApplication para un control explícito sobre la ejecución de una única instancia de flujo de trabajo.

  • Una clase WorkflowServiceHost para las interacciones basadas en mensajes en escenarios de varias instancias.

Cada una de estas clases ajusta el tiempo de ejecución de la actividad principal, representado como una clase ActivityInstance responsable de la ejecución de la actividad. Puede haber varios ActivityInstance objetos dentro de un dominio de aplicación que se ejecuten simultáneamente.

Cada uno de los tres objetos de interacción del host anteriores se crea a partir de un árbol de actividades denominadas programa de flujo de trabajo. Con estos tipos o un host personalizado que encapsula ActivityInstance, los flujos de trabajo se pueden ejecutar dentro de cualquier proceso de Windows, incluidas aplicaciones de consola, aplicaciones basadas en formularios, servicios de Windows, ASP.NET sitios web y servicios de Windows Communication Foundation (WCF).

Componentes de flujo de trabajo en el proceso de host Componentes de flujo de trabajo en el proceso de host

Interacción entre componentes de flujo de trabajo

En el diagrama siguiente se muestra cómo interactúan los componentes de flujo de trabajo entre sí.

Diagrama que muestra cómo interactúan los componentes de flujo de trabajo.

En el diagrama anterior, el Invoke método de la WorkflowInvoker clase se usa para invocar varias instancias de flujo de trabajo. WorkflowInvoker se usa para flujos de trabajo ligeros que no necesitan administración del host; Los flujos de trabajo que necesitan administración desde el host (como Bookmark la reanudación) deben ejecutarse mediante Run en su lugar. No es necesario esperar a que se complete una instancia de flujo de trabajo antes de invocar otra; el motor en tiempo de ejecución admite la ejecución simultánea de varias instancias de flujo de trabajo. Los flujos de trabajo invocados son los siguientes:

Consulte también