Übersicht über Windows-Workflow

Bei einem Workflow handelt es sich um eine Reihe von elementaren Einheiten (so genannten Aktivitäten), die als den tatsächlichen Prozess beschreibendes Modell gespeichert sind. Mit Workflows können die Reihenfolge der Ausführung sowie abhängige Beziehungen zwischen kurz- und langfristiger Arbeit beschrieben werden. Diese Arbeit durchläuft das Modell vom Anfang bis zum Ende, und Aktivitäten werden unter Umständen von Personen oder Systemfunktionen ausgeführt.

Workflowruntime-Engine

Jede ausgeführte Workflowinstanz wird von einer prozessinternen Runtime-Engine erstellt und verwaltet, mit dem der Hostprozess durch eines der folgenden Objekte interagiert:

  • Ein WorkflowInvoker-Objekt, der den Workflow wie eine Methode aufruft.

  • Ein WorkflowApplication-Objekt für die explizite Kontrolle über die Ausführung einer einzelnen Workflowinstanz.

  • Ein WorkflowServiceHost-Objekt für meldungsbasierte Interaktionen in Szenarien mit mehreren Instanzen.

Jede dieser Klassen umschließt die Kernaktivitätslaufzeit, die als ActivityInstance dargestellt wird und für die Aktivitätsausführung zuständig ist. Es kann mehrere ActivityInstance-Objekte innerhalb einer Anwendungsdomäne geben, die gleichzeitig ausgeführt werden.

Jede der vorausgehenden drei Hostinteraktionsobjekte wird aus einer Aktivitätsstruktur erstellt, die als Workflowprogramm bezeichnet wird. Mithilfe dieser Typen oder eines benutzerdefinierten Hosts, der ActivityInstance umschließt, können Workflows innerhalb eines beliebigen Windows-Prozesses ausgeführt werden, einschließlich Konsolenanwendungen, formularbasierten Anwendungen, Windows Services, ASP.NET-Websites und Windows Communication Foundation (WCF)-Diensten.

Workflow components in the host process
Workflowkomponenten im Hostprozess

Interaktion zwischen Workflowkomponenten

Im folgenden Diagramm wird dargestellt, wie Workflowkomponenten miteinander interagieren.

Diagram that shows how workflow components interact.

Im vorangehenden Diagramm wird die Invoke-Methode der WorkflowInvoker-Klasse verwendet, um mehrere Instanzen eines Workflows aufzurufen. WorkflowInvoker wird für einfache Workflows verwendet, die keine Verwaltung durch den Host benötigen. Workflows, die eine Verwaltung durch den Host erfordern (z. B. eine Bookmark-Wiederaufnahme), müssen stattdessen mithilfe von Run ausgeführt werden. Es ist nicht erforderlich, auf den Abschluss einer Workflowinstanz zu warten, bevor ein weiterer Workflow aufgerufen wird. Die Runtime-Engine unterstützt die Ausführung mehrerer Workflowinstanzen gleichzeitig. Die aufgerufenen Workflows sind:

Siehe auch