Dienstag, November 07, 2006

PRE008-2 Session 2: Communication Inside and Outside of Workflows, Dynamic Workflow Changes




Christian Weyer , Ingo Rammer
Abstract:
The Microsoft Windows Workflow Foundation (WF) is an extensible framework for developing workflow solutions on the Windows platform. WF will be available as a free part of .NET Framework 3.0 which will run on Windows Server 2003, Windows XP SP2 and Windows Vista. It allows you to embed crucial workflow capabilities directly into your applications (and, yes, this includes graphical workflow designers for end-users).

This set of runtime, APIs and tools allows you (and your users and system administrators) to properly map and implement business-related workflows and its bits and bytes. Developing this kind of applications will really be easier!


In this full-day tutorial, Ingo and Christian show you how to use the workflow foundation's single, unified model to create end-to-end solutions that span different categories of applications, including human workflow and application-based workflow. After this day, you will know how you can leverage Windows Workflow Foundation in your own applications. See and experience the different facets of workflows as well as how to extend and augment the features and tools that are already there.


Christian beginnt damit, dass er erklärt, dass noch nicht wirklich alles ausgeschöpft ist, was die externe Kommunikation von WF's betrifft. So ist z.B die Kommunikation mit WCF noch nicht vollständig implementiert. Es zeigt das Activity handleExternalEvent ( Sven ?) (nach dem CallexternalMethodActivity) und zeigt auf einer Grafik, wie dies "shematisch" abläuft. Nun wird das Activity mit Code befüllt. Das Beispiel der externen Kommunikation wird mit einer DLL gemacht, welche er auch gleich buildet. Zuerst muss in der DLL ein Communication Contract gemacht werden. ( marked as [ExternalDataExchange] ). Es muss ein public interface sein und es muss ein event deklariert werden. Er macht 2 events, eine approved und ein rejected. Beim CallExternalMethod Activity gibt er nun den Interface Type an (in den Propertys) , also unser zufor erstelltes interface. (Er macht nun eine kleine Exkursion in die WinWF "Logik". Ein WF ist ein Activity, ein WF ist die Menge von Activitys und kann beliebig verschachtelt werden. In der kleinen WF Exkursion kommt auch gleich wieder einmal die Bestätigung, dass Sequentiell WF's nicht geeignet sind, um in einen vorherigen Zustand zu gelangen. Also so wie wir im Incident Mngt. = State Machine ).
Was jetzt noch fehlt, ist die Definition eines ExternalDataExchangeService. Dies kann aber auch via config File geschehen. Nun wird im Worklfow (natürlich nur in einem Bestimmten Zustand) eine DLL aufgerufen, welche wiederum eine MSGBOX aufruft und den Benutzer rückfragt. Die Antwort (simple YESNO MsgBox) wird via Events dem WF mitgeteilt.
Nun wird dem ganzen der Persistence Layer "zugeschaltet". Er zeigt, dass wenn Workflows ja die meiste Zeit idle sind (also warten, eben z.B auf externe Events) Er fügt ein paar Events hinzu, um zu zeigen, dass der WF dehydriert wird etc. Er zeigt auch, wo und was nun im SQL Server in der Persistance DB steht.
Nun folgt noch , dass er den Tracking Service zu unserem WF hinzufügt. Nun startet er den WF Monitor, (Sample vom SDK um einen Monitoring Application zu bauen. ) Der WF Monitor kann sehr interressant sein ! Ich werde mich da wohl noch etwas genauer einlesen (kenne ihn ja schon lange, habe ihn aber noch nie so "mächtig" gesehen . )
Die ganze Präsentation ist ohne Slides, alles auf Demo Basis. Ansonsten würde sich diese Session sehr gut für uns eignen ! Da beide kein MS Speaker sind, nehme ich nicht an, dass es dies irgendwie als Hands-On Lab oder so was geben wird…. Leider. Ich werde aber schauen, dass ich an mehr infos komme, weil viele Sachen gezeigt wurden, mit dem bei uns schon gekämpft wurde.

Keine Kommentare: