Rash thoughts about .NET, C#, F# and Dynamics NAV.


"Every solution will only lead to new problems."

Saturday, 2. September 2006


Windows Workflow Foundation (Teil 1)

Filed under: WF — Steffen Forkmann at 17:11 Uhr

“Businesses depend on business processes” schreibt David Chappell als einleitenden Satz in einem viel zitierten Artikel über die Windows Workflow Foundation (WF). Dieser Satz zeigt meiner Ansicht nach sehr gut wie wichtig es für Unternehmen ist ihre Geschäftsabläufe zu standardisieren und zu automatisieren. Dabei gibt es zwei Welten die aufeinander prallen. Auf der einen Seite sind logische und streng geordnete Programme und auf der anderen Seite Menschen, die Ihre Arbeitsabläufe unterbrechen und einteilen wollen. Programme sind in der Regel so geschrieben, dass sie ihre Aufgaben schön sequentiell hinter einander abarbeiten. Menschen tendieren eher dazu angefangene Aufgaben erstmal ruhen zu lassen und bei Bedarf andere Aufgaben zwischen zu schieben. Man denke dabei an einen Angestellten der zur Mittagspause geht und unterwegs einen Kollegen trifft. Der Kollege erzählt ihm von einem wichtigen Auftrag und schon startet der Angestellte noch beim Mittagessen einen neuen Workflow.

Was ist eigentlich ein Workflow?

Ein Workflow ist eine vordefinierte Menge an Aktivitäten die Menschen und/oder Software koordiniert zu einem bestimmten Ergebnis führen soll. Dabei unterscheidet man in sequentielle (FlowCharts) und zustandsbasierte Workflows (StateMachines).

FlowChart innerhalb der WF

StateMachine in der WF

Was sind typische Workflow-Szenarien?
  • Bestellvorgänge: Wenn beispielsweise eine Bestellung in einem OnlineShop aufgeben wird muss eine Bestätigung erfolgen (je nach Bestellwert automatisch oder manuell). Danach muss eine Bestätigungsmail versandt werden, die Abbuchung vorgenommen und die Bestellung im Lager zusammengestellt und versandt werden.
  • Zulassungsvorgänge: In Firmen fallen oftmals Dokumente an die von verschiedenen Personen bewilligt und freigegeben werden müssen. Gleichzeitig wollen die Personen möglicherweise Notizen und Änderungsvorschläge für das Dokument hinterlassen.
  • Issue tracking: Ein CallCenter nimmt Anfragen und Probleme entgegen und startet für jedes Problem einen Supportvorgang (Ticket). Dabei kann es je nach Problem verschiedene Abläufe geben, bei denen die verschiedensten Personen (Second-Level-Support, Administratoren, Entwickler) involviert sein können.

Wie kann man solche Geschäftsabläufe jedoch unterstüzen und kontrollieren? Die Antwort lautet natürlich Windows Workflow Foundation.

Was ist die WF?

Die WF ist ein zum .NET Framework 3.0 gehörendes deklaratives Programmierkonzept, das Entwicklern ermöglichen soll komplexe Workflow-Szenarien im Computer abbilden zu können. Besonderes Augenmerk wurde dabei auf die grafische Veranschaulichung des Workflows innerhalb des Visual Studio Designers gelegt, so dass man komplexe Arbeitsabläufe direkt mit den jeweiligen Workflow-Experten grafisch erfassen kann. Gleichzeitig wird eine RunTime-Umgebung zur Verfügung gestellt, die innerhalb eines Host-Prozesses den Ablauf des Workflows steuert.

Jeder Workflow braucht einen Host-Prozess, der die RunTime-Umgebung des Workflows instanziert. Dies kann jede .NET-Anwendung aber auch jeder Server sein. Die Windows Workflow Foundation-Technologie kommt übrigens ursprünglich aus dem BizTalk-Server und wurde von dort direkt ins .NET-Framework ausgelagert. 

Ist die WF nur für Entwickler?

Prinzipiell ist die WF ein Programmierkonzept – jedoch wurde die WF bereits in die nächsten Versionen von SharePoint und Office integriert, so dass es durchaus möglich sein wird Workflows zu definieren ohne eine einzige Zeile Code zu schreiben. Dokumentenzulassungs-Workflows zum Beispiel kann man komplett im SharePoint Designer erstellen.

Wie geht es weiter?

Im nächsten Teil der Serie werde ich einen einfachen Workflow und die Implementation mit der WF vorstellen. 

Weiterführende Quellen:
Tags: , ,

2 Comments »

  1. Sehr interessanter Beitrag. Sehr ausführlich aufgearbeitet. Ich bin gespannt auf die Fortsetzung.

    Comment by vanilla-flavour — Friday, 8. September 2006 um 10:45 Uhr

  2. Danke sehr. Dauert wegen Zeitproblemen leider noch etwas.

    Comment by Steffen Forkmann — Monday, 18. September 2006 um 14:51 Uhr

RSS feed for comments on this post. | TrackBack URI

Leave a comment

XHTML ( You can use these tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> .