.Net 3.0: Let it flow, let it grow

Im ersten Teil unserer .Net-3.0-Serie zeigen wir, wie sich Prozesse mit der Windows Workflow Foundation steuern und optimieren lassen.

Artikel erschienen in Swiss IT Magazine 2006/12

     

Bei der Entwicklung von Tools und Applikationen im Bereich Workflow besitzt Microsoft jahrelange Erfahrung. Jedoch fehlte den Redmondern bislang eine einheitliche Technologie, mit der sich Arbeitsprozesse innerhalb von Anwendungen abwickeln lassen. So wurden die Workflow-Implementationen in den einzelnen Microsoft-Produkten (z.B. BizTalk, SharePoint, Axapta, MSCMS) komplett eigenständig und redundant gelöst. Mit der Windows Workflow Foundation (WF) soll dieses Manko nun aus der Welt geschafft werden. WF ist Bestandteil des .Net Framework 3.0 (bislang unter der Bezeichnung WinFX bekannt), der Programmierschnittstelle von Windows Vista, welche als separater Download auch für Windows Server 2003 und Windows XP zur Verfügung stehen wird. Die Workflow-Funktionalität wird so integraler Bestandteil der Windows-Plattform und dient als Basis für kommende Microsoft-Produkte (z.B. SharePoint 2007). Interessant ist, dass auch unabhängige Softwarehäuser und Entwickler mit der Workflow Foundation in der Lage sind, ihre Anwendungen mit Funktionen für die Steuerung von Arbeitsabläufen auszurüsten. Dank den integrierten Web-Service-Schnittstellen lassen sich die Workflow-Dienste auch innerhalb von heterogenen Umgebungen (z.B. via Java-Plattform) einsetzen.





.Net 3.0-Serie


Die Workflow Foundation

Die Windows Workflow Foundation richtet sich ausschliesslich an Entwickler, dass heisst, sie stellt keine Werkzeuge für den Enduser zur Verfügung. Im Grunde genommen setzt sich Microsofts Workflow Foundation aus Entwicklertools für Visual Studio, einem API und einer Workflow Runtime Engine zusammen. Nachfolgend ein kleiner Überblick über die wichtigsten Features der Windows Workflow Foundation:


• Base Activity Library: Ein Workflow besteht aus kleinen Bausteinen, sogenannten Activities. Microsoft liefert mit der Base Activity Library bereits einen Grundstock an Aktivitäten wie beispielsweise den Aufruf einer externen Methode, das Durchführen von Datenbankabfragen oder das Evaluieren von Businessregeln. Ausserdem sind einfache Programmierkonstrukte wie While-Schleifen oder If/Else-Entscheidungen enthalten.


• Activities: Activities sind nichts anderes als .Net Assemblies. Daher lassen sich in einer .Net-Sprache wie C# auch eigene Aktivitäten programmieren. Office 2007 bietet beispielsweise speziell für das Document Management eigene zusätzliche Activities an. Daneben gibt es bereits jetzt Softwarehersteller und eine breite Community, welche spezielle Activities etwa für die Anbindung einer Oracle-Datenbank oder
das Zippen und Entzippen von Dateien anbieten (www.windows workflow.net).


• Human Workflow: Die Workflow Foundation unterstützt auch das Einbinden von Personen in den Workflow-Prozess. Dazu werden spezielle Mechanismen eingesetzt, um beispielsweise eine Benutzer-Interaktion abzuwarten.


• Entwicklertools: Die Workflow Foundation verfügt über grafische Werkzeuge, welche direkt in Visual Studio 2005 genutzt werden können. Mit Hilfe von Drag&Drop kann der Entwickler so eigene Workflows zusammenstellen und diese in der grafischen Ansicht debuggen. Der Designer ist modular aufgebaut, so dass er auch in eigenen Applikationen gehostet werden kann.


• Runtime Services: Die Runtime Engine führt die kompilierten Workflows aus und unterstützt dabei Funktionen wie Persistenz, Tracking und Transaktionen. Ersteres erlaubt, den Workflow-Zustand in einem persistenten Medium zu speichern. Damit werden sogenannte «Long Running Workflows» unterstützt, welche auch einen Restart der Runtime «überleben». Via Tracking wird der Ausführungszustand des Workflow gespeichert, um die aktiven Prozesse überwachen zu können. Zudem gibt es einen Timer Service, der die zeitbasierten Aktivitäten des Workflows steuern und Time-outs erkennen kann.


• Hosting: Die mitgelieferte Workflow Runtime Engine ist kein Standalone-Service, sondern kann direkt in der Applikation gehostet werden. Dadurch entfällt der Aufbau und Aufruf von externen Services. Die Workflow Foundation lässt sich so elegant auch in kleinen, eigenständigen Applikationen verwenden.





.Net Framework 3.0 (WinFX) im Überblick


Entwickeln von Workflows

Nach der Installation des .Net Framework 3.0 stehen in Visual Studio zusätzliche Projekttypen zur Verfügung. Man kann sich zwischen dem sequentiellen Workflow oder der State Engine entscheiden. Sequentielle Workflows werden entlang eines definierten Pfads ausgeführt. State Machines dagegen sind sinnvoll, wenn man nicht weiss, in welcher Reihenfolge Events eintreffen.
Im grafischen Workflow Designer verbindet man per Drag&Drop einzelne Activities zu einem Workflow. Obwohl es grundsätzlich möglich ist, ganze Prozesse von Hand zu programmieren, wird man aus Gründen der Bequemlichkeit meistens den Designer benutzen. Erstellte Workflows lassen sich als Visual-Basic- oder C#-Code abspeichern und können zur Ausführung in ein normales .Net-Assembly kompiliert werden. Als wartungsfreundlichere Alternative lassen sich Workflow-Definitionen auch im XAML-Format (eXtensible Application Markup Language) abspeichern. Diese werden dann zur Laufzeit von der Runtime Engine geladen und interpretiert.


Umgang mit Business-Rules

Gut gelöst wurde in der Workflow Foundation auch der Umgang mit Business Rules. Beispiele für solche Regeln sind etwa Rabattberechnungen bei Grossbestellungen oder rollenbasierte Vorgaben wie etwa Unterschriften-Berechtigungen. Wie bei der Definition des Workflow lassen sich auch Business-Regeln wahlweise in einer .Net-Sprache programmieren oder in einem XAML-File deklarativ beschreiben. Zugriff auf die Rules Engine der Workflow Foundation erhält man über die Policy Activity. Das XAML-File erstellt man in Visual Studio mit Hilfe des Rule Editor. Für noch flexiblere Szenarien kann man den Visual Studio Rule Designer in eigene Applikationen einbinden. Damit sind dann auch Enduser in der Lage, Business-Regeln selber anzupassen.
Wie eingangs erwähnt, lassen sich Workflows und damit auch Business-Regeln als Web Service publizieren. So kann die Applikation wählen, ob die Regeln selber gehostet werden oder ob der externe Regel-Server aufgerufen werden soll. In der Praxis kombiniert man gerne die beiden Möglichkeiten. Ausserdem existieren Beispiele, wie man die Regeln in einer SQL-Server-Datenbank verwaltet und so eine sehr komfortable Umgebung bauen kann.





Workflows erstellen in SharePoint 2007


Workflow Foundation in kommenden MS-Produkten

Gemäss Microsoft wird die WF die Basis für Workflow-Funktionen in allen kommenden Standard-Produkten bilden und dort teilweise bereits bestehende Komponenten ersetzen:


• Office SharePoint Server 2007: Neben den Funktionen wie Web Content Management, Dokumentenverwaltung und Records Management gibt es auch einen Dokumenten-Workflow, der auf WF basiert und von Entwicklern erweitert werden kann.


• BizTalk Server: Langfristig ist es das Ziel von Microsoft, die Orchestration Engine von BizTalk durch WF zu ersetzen. Die Entwicklung von BizTalk wird sich dann auf Enterprise Application Integration, Business Process Management und Message Handling konzentrieren.


• Microsoft Dynamics: Produkte wie Microsoft Dynamics AX (ehemals Axapta) und Microsoft Dynamics CRM (ehemals Microsoft CRM) werden ebenfalls mit der Workflow Engine ausgerüstet.
Daneben sind weitere Produkte mit WF geplant, z.B. Microsoft Speech Server 2007, Microsoft Identity Integration Server 3.5 oder die Help-Desk-Lösung System Center Service Desk.


Workflows mit SharePoint

Wie die Integration der Workflow Foundation in ein Produkt in der Praxis aussieht, kann man sehr schön am Office SharePoint Server 2007 sehen, der derzeit als Beta 2 zur Verfügung steht (siehe auch Diagramm «Workflows erstellen in SharePoint 2007»). Dabei wird die Workflow Engine direkt in SharePoint 2007 gehostet. Für Standardprozesse wie Review/Approval von Dokumenten oder das Einholen von Unterschriften stehen bereits vorgefertigte Workflows bereit. Diese können einer Dokumentenbibliothek, einer Liste oder einem bestimmten Dokumenttyp zugeordnet werden. Der Start eines Workflow erfolgt manuell oder automatisch – beispielsweise wenn ein Benutzer in der Library ein neues Dokument anlegt. Mit Hilfe des SharePoint-Designers (ehemals FrontPage 2003) können Power User und Webdesigner selber einfache Workflows erstellen. Das Deployment wird vereinfacht, indem der Workflow direkt an eine Liste oder eine Document Library angefügt wird. Wer eigene Activities und komplizierte Workflows erstellen will, wird mit SharePoint Designer allerdings nicht weit kommen, sondern muss auf Visual Studio 2005 zurückgreifen. Die Workflows werden dann vom Administrator auf dem Server installiert, pro Site konfiguriert und einer Liste oder Document Library zugeordnet.


Fazit

Windows Workflow Foundation ist die zukünftige, einheitliche Technologie für die Definition und Ausführung von Workflows auf Windows-Systemen. Dadurch können das erarbeitete Know-how und die definierten Workflows in eigenen Applikationen wie auch in den kommenden Microsoft-Produkten wiederverwendet werden.
.Net 3.0 und Office 2007 befinden sich im Moment noch in der Betaphase. Da die Produkte aber sehr weit entwickelt sind, bietet Microsoft bereits eine Go-Live-Lizenz an. Damit können die Technologien und Produkte bereits heute in Projekte integriert werden.


Die Autoren

Marcel Lattmann, Consultant, und Meinrad Weiss, Solution Manager und Prinzipal Consultant, sind Mitar­beiter der Firma Trivadis, einem Schweizer IT-Lösungs­anbieter mit umfassendem Dienstleistungs-Angebot in der Schweiz und in Deutschland.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Wieviele Zwerge traf Schneewittchen im Wald?
GOLD SPONSOREN
SPONSOREN & PARTNER