330 likes | 420 Views
Real-Life Szenario mit der Workflow Foundation 4. Einsatzmöglichkeiten der Workflow Foundation 4, oder: Brauchen wir wirklich noch ein Programmierparadigma? Eine " Schnell"übersicht. 1) Prolog. Keine Zeit , kein Code Keine Zwischenfragen Kein Anspruch auf Vollständigkeit
E N D
Real-Life Szenariomitder Workflow Foundation 4 Einsatzmöglichkeiten der Workflow Foundation 4, oder: Brauchen wir wirklich noch ein Programmierparadigma? Eine "Schnell"übersicht.
1) Prolog • KeineZeit, kein Code • KeineZwischenfragen • KeinAnspruch auf Vollständigkeit • Motivation • Werkennt die Workflow Foundation? • Was könntenGründefür den Einsatzsein?
2) Agenda • Begriff “Workflow” • EtwasTheorie • Scenario: “Registration” • Scenario: Decoded • Das Ganze in .NET • Scenario: Reloaded • Sonstiges • ZurAusgangsfrage • Quellen
3) Begriff • Ein Arbeitsfluss (englisch: workflow) ist eine inhaltlich abgeschlossene, zeitlich und sachlogisch zusammenhängende Folge von Funktionen, die zur Bearbeitung eines betriebswirtschaftlich relevanten Objektes notwendig sind und deren Funktionsübergänge von einem Informationssystem gesteuert werden. • Quelle: http://de.wikipedia.org/wiki/Arbeitsablauf
4) Ziele der WF-Entwicklung • SkalierbareGeschäftslogikmiteinfacherZustandsverwaltung • GesamtheitlicherBlick auf den AblaufderAnwendung • Anwendungenpersistierbarmachen • Anteilder “Sichtbarkeit” erhöhen
6) Gesamtheitlicher Code (2/2) • Vorteile: • Einfach zu verstehen • Einfach zu pflegen • Zustand der Anwendung ist immer „sichtbar“ • Nachteile: • Nicht skalierbar • Eine Anfrage könnte geblockt werden
8) Code Blocks (2/2) • Vorteile: • Ressourcen können freigegeben werden (Entladen) • Skalierbar auf mehrere Maschinen (bspw.) • Nachteile : • Der Zustand muss irgendwo „geteilt“ werden • Ablauf ist nicht offenkundig • Schwerer zu pflegen
9) Theorie: Grundlagen • Was istdenn nun ein Workflow? • Workflows are a way to execute a business process. • A workflow is a set of elemental units called activities that are stored as a model that describes a process • Workflows provide a way of describing the order of execution and relationships between different pieces of running work • Was sind Activities? • Möglichstatomarer Block von LogikmiteinemErgebnis
10) Scenario: Registration • Anmelde-System der Usergroup: Ein Benutzer meldet sich mit Name und Adresse an. Das System prüft die Validität einiger Felder, u.a. die PLZ. • Danach wartet das System entweder auf die manuelle Freigabe des UG Admins oder prüft die Berechtigung über externe Daten ab. • Sollte der User berechtigt sein, der UG beizutreten, wird er eingebucht und erhält eine Email.
11) Scenario: Diagramm Datenerfasst Validate Zip Wait For Approval Approve User Check Webservice User akzeptiert Send Mail
12) Scenario: Decoded • Arten von Activities • Base Activity Library • .NET
14) Scenario: Decoded (1/5) • Arten von Activities • Base Activity Library • .NET • Drittanbieter (Sharepoint, Dynamics, TFS, etc.) • Custom Activities (dreiArten) • Automatische • Event-getriebene • Hybride • Composite Activities
15) Scenario: Decoded (2/5) Datenerfasst Validate Zip Wait For Approval Approve User Check Webservice User akzeptiert Send Mail
16) Scenario: Decoded (2/5) • Activity “Validate Zip” • Überprüft ob eineerfasste PLZ valideist. • Custom Activity • Einfacher Task • Zusammengesetzte Activity (Composite) • Low Level Activity – Skilled Programmer • High Level Activity – Less technical people
17) Scenario: Decoded (3/5) Datenerfasst Validate Zip Wait For Approval Approve User Check Webservice User akzeptiert Send Mail
18) Scenario: Decoded (3/5) • Activity “Approve User” • Wartet auf einBenutzerereignis. (Button Click) • Bookmarks (Resume Workflow) • Name • Daten • Base Activity Library • Flow control
19) Scenario: Decoded (4/5) Datenerfasst Validate Zip Wait For Approval Approve User Check Webservice User akzeptiert Send Mail
20) Scenario: Decoded (4/5) • Activity “Wait for Approval” • Erwartet Approval entwedervom Event odervomWebservice, derperiodischanfragt. • Parallel Activity • Kein Multi-Core Unterstützung • Einfache Art Quasi-paralleleAbläufezugestalten • Akzeptiertnur “Sequence” Activity • Mehrere “Sequence” Activities möglich
21) Scenario: Decoded (4/5) Datenerfasst Validate Zip Wait For Approval Approve User Check Webservice User akzeptiert Send Mail
22) Scenario: Decoded (5/5) • Activity “Check Webservice” • Webservicefragtperiodischab, ob Benutzer approved ist. • Long-running Processes • Persistieren von Workflows • Geschiehtautomatisch • Lassensich in anderenProzessen (Maschinen) laden • Entladen von Workflows • Persistieren und Speicherfreigeben
24) Das Ganze in .NET (1/2) • Activities sind C# Klassen • In Argumente • Out Argumente • Variablen / Zustand (Scopes) • Was sind Workflows? • Arten von Workflows • Sequence • Flowchart • State Machine
25) Das Ganze in .NET (2/2) • Workflow Definitionen • DefinierenAblaufder Activities • Format ist XAML (XML) • Eigene Runtime • Verwaltet Threads • Kennt die GrenzenzwischenActivties • Kennt die Semantikder Activities nicht
26) Sichtbare Prozesse (1/1) • AnwendungsentwicklungimklassischenSinnebedeutet Code schreiben • DerKontrollflusseines Workflows kanngrafischzusammengesetztwerden, und istsomit: • hilfreichfürPersonen die existierendeAnwendungenpflegen und ändernmüssen • (LernaufwandbeiEinarbeitungistrelativhoch)
29) Scenario: Reloaded Wait For Approval Datenerfasst Approve User Check Webservice User akzeptiert Validate Zip Send Mail
30) Sonstiges • Tracking • Runtime siehtÜbergänge (Boundaries) • Event-getriggert / konfigurierbar • Entered • Exited • Faulted • KeinEntwicklungsaufwandnötig • Entwicklung von eigenem Tracking möglich • Testing • Workflow ist Activity • In / Out Parameter • Designer Hosting in Anwendungistmöglich • Hosting der Workflow Runtime • Application • Service
31) ZurAusgangsfrage • BrauchenwireinneuesProgrammierparadigma? • MöglicheGründe: • Lang laufendeProzesse • ParalleleAktivitäten • Flexible Logik / Copy & Paste von Prozessen • Team mitweniger Skills
Quellen • The Workflow Way; David Chappell, Chappell & Associates (April 2009) • Essential Windows Workflow Foundation; Dharma Shukla, Bob Schmidt (2007) • VomGeschäftsprozesszum Workflow; Jakob Freund, Klaus Götzer (2008) • http://blog.helmichs.net