NRW 08 Windows Workflow Foundation

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Im Zeichen der modellbasierten Softwareentwicklung (MDSD) rückt die Visualisierung von Software und deren Prozessen -- nicht in Form von Dokumentation, sondern als Quelle für den Programmcode -- immer weiter in den Fokus des Projektalltags. Die mit Microsoft.NET 3.0 erschienene Workflow Foundation (WF) wird diesen Anforderungen (oder: dieser Forderung) gerecht. Sie unterstützt bei der Entwicklung ablaufgesteuerter Anwendungen mit besonderem Fokus auf die Interaktion zwischen Menschen und Systemen. Die Vision, unsere Software zusammen mit dem Kunden zu modellieren und kaum noch Code schreiben zu müssen, scheint näher zu rücken. Zumindest hübsch sind die mit dem in Visual Studio integrierten Workflow Designer erstellten Abläufe. Dieser Vortrag stellt die Konzepte rund um die WF sowie eine Übersicht über die mitgelieferten Dienste, Ablaufvarianten und Aktionen (Aktivitäten) vor. Weiter gibt es einige pragmatische Demos und Informationen zur Erweiterbarkeit der WF. Ob die WF nun hält was sie verspricht, wie sie sich in unseren Entwicklungszyklus im Projektalltag einfügt und wie gut sie im produktiven Betrieb performt, wird zur Diskussion gestellt.

    Favorites, Groups & Events

    NRW 08 Windows Workflow Foundation - Presentation Transcript

    1. Einführung in die Windows Workflow Foundation Lars Corneliussen Senior Web Developer itemis AG
      • Lars Corneliussen
      • Senior Web Developer
      • http://www.startbigthinksmall.com
      • Webentwicklung
      • Enterprise CMS
      • eCommerce
      • .NET / C# internals
      • Serviceorientierung
      • MDSD
      • Modellbasierte Softwareentwicklung (MDSD) für Enterprise und Embedded Systems
      • Standorte in Deutschland und Frankreich
      • Top 100, Land der Ideen, start2grow
      • Strategisches Mitglied der Eclipse Foundation
      • Forschung & Entwicklung
    2. Agenda/Übersicht
        • Warum Workflows?
        • Die Windows Workflow Foundation
        • Demo
        • “ known issues”
        • Best Practices
        • Fragen und Antworten
    3. Warum Workflows?
      • Fast immer soll Software Arbeitsabläufe optimieren
      • Die Kommunikation zwischen Menschen und Maschinen ist aufwändig
      • Die Fachlogik in Architekturcode ertränkt
      • Unlesbarer und unwartbarer Spagetticode ist das Ergebnis
    4. Beispiel: Sesam öffne dich static void Main() { // Print the key string key = DateTime.Now.Millisecond.ToString(); Console.WriteLine("here is your key: " + key); string s = Console.ReadLine(); // Print the greeting if the key is provided if (key.Equals(s)) Console.WriteLine("hello, world"); }
    5. Beispiel: Sesam öffne dich [WebService] public class Service : WebService { [WebMethod(EnableSession = true)] public string PrintKey() { string key = DateTime.Now.Millisecond.ToString(); Session["key"] = key; return "here is your key: " + key ; } [WebMethod(EnableSession = true)] public string PrintGreeting(string s) { if (Session["key"].Equals(s)) return "hello, world"; return null; } }
    6. Beispiel: Sesam öffne dich [WebService] public class Service : WebService { [WebMethod(EnableSession = true)] public string PrintKey() { bool alreadyDidStep1 = (Session["key"] != null); if (alreadyDidStep1) throw new InvalidOperationException(); string key = DateTime.Now.Millisecond.ToString(); Session["key"] = key; return "here is your key: " + key; } [WebMethod(EnableSession = true)] public string PrintGreeting(string s) { bool didNotDoStep1Yet = (Session["key"] == null); if (didNotDoStep1Yet) throw new InvalidOperationException(); bool alreadyDidStep2 = (Session["programDone"] != null); if (alreadyDidStep2) throw new InvalidOperationException(); Session["programDone"] = true; if (Session["key"].Equals(s)) return "hello, world"; return null; } }
    7. Typische Probleme
      • Zustandssicherung über lange Zeiträume und Rechnerneustarts
      • Optimaler Ressourceneinsatz
      • Überwachung laufender Prozesse
      • Synchronisierung verschiedener Threads/User
      • ...
      • ...
    8. Warum also Workflows?
      • Eine klare Trennung zwischen
        • Arbeitseinheiten,
        • Ablauf,
        • und Architektur
      • führt zu hauptsächlich zu höherer Qualität,
      • respektive höherem Kundennutzen .
      • Windows Workflow Foundation ist ein Weg , dies zu erreichen.
    9. Agenda/Übersicht
        • Warum Workflows?
        • Die Windows Workflow Foundation
        • Demo
        • “ known issues”
        • Best Practices
        • Fragen und Antworten
    10. Architektur der WF Workflow Host Process Definitions Instances Workflow Runtime
    11. Die Workflow Definition
      • Die Workflow Definition ist das Modell eines Workflows.
      • Per Workflow wird eine Instanz aus dem Modell erstellt.
    12. Workflow Instance
      • Kontrolliert den geordneten Ablauf der Aktivitäten eines Workflows
      Initialisiert Ausführend Erledigt Die Aktivität wurde parametrisiert und initialisiert. Die Aktivität befindet sich in der Ausführung ihrer Aufgabe. Die Aufgabe wurde unterbrochen, aber nicht beendet! Die Aufgabe ist erledigt
    13. Workflow Runtime
      • Kontrolliert den Ablauf aller Workflows
      • Verwaltet Services
      • Persistiert ruhende Workflows und lädt sie bei Bedarf
      • Informiert den Host über Events
    14. Aufbau Benutzerdefinierte Dienste Windows Workflow Foundation Aktivitäten-Bibliothek Workflows Workflow Hosting Benutzerdefinierte Aktivitäten und Workflows Dienste Persistenz Überwachung Datenaustausch Programm-Schnittstelle State Machine Sequential Laufzeit-bibliothek Visual Studio 2008 Integration „ Workflow Designer“ Angepasste Designer für eigene Aktivitäten und Workflows Regeln und Bedingungen Baukasten Runtime Design
    15. Aufbau Benutzerdefinierte Dienste Windows Workflow Foundation Aktivitäten-Bibliothek Workflows Workflow Hosting Benutzerdefinierte Aktivitäten und Workflows Dienste Persistenz Überwachung Datenaustausch Programm-Schnittstelle State Machine Sequential Laufzeit-bibliothek Visual Studio 2008 Integration „ Workflow Designer“ Angepasste Designer für eigene Aktivitäten und Workflows Regeln und Bedingungen Baukasten Runtime Design
    16. Aktivitätenbibliothek
      • Aktionseinheit (Activity)
        • Interaktion über Webservice, WCF-Service oder Interface
        • CodeActivity oder benutzerdefinierte Aktivität
      • Ablaufsteuerung (ComposedActivity)
        • Bedingungen
        • Parallele Ausführung
        • Transaktionen
        • ...
        • Benutzerdefinierter Ablauf
    17. Klassenbibliothek – Workflows
      • Im Wesentlichen auch Aktivitäten
      • Sequenzieller Workflow
        • Definierter Ablauf mit Ein- und Ausgabe-Parametern
      • State Machine
        • Zustände mit kontroliertem Zustandswechsel
        • Sequenzielle Workflows für Aktionen
        • Eventbasierte Steuerung
    18. Typische sequenzielle Abläufe
      • Urlaubsantrag
      • Passwort-zurücksetzten
      • Neuer-Mitarbeiter-Prozess
      • ...
    19. Typische State Machines
      • Bug Tracker
        • NewIssue
        • Assigned
        • ...
      • Order Flow
        • OpenOrder
        • ApprovedOrder
        • ...
    20. Aufbau Benutzerdefinierte Dienste Windows Workflow Foundation Aktivitäten-Bibliothek Workflows Workflow Hosting Benutzerdefinierte Aktivitäten und Workflows Dienste Persistenz Überwachung Datenaustausch Programm-Schnittstelle State Machine Sequential Laufzeit-bibliothek Visual Studio 2008 Integration „ Workflow Designer“ Angepasste Designer für eigene Aktivitäten und Workflows Regeln und Bedingungen Baukasten Runtime Design
    21.  
    22. Scheduling
      • Alle Arbeiten in einem Workflow werden gequeued.
      • Der SchedulerService übernimmt das Abarbeiten dieser Aufgaben.
      • DefaultSchedulerService benutzt den ThreadPool, es ist aber möglich benutzerdefinierte Scheduler anzusprechen.
    23. Multithreading
      • Auf einer Workflow-Instanz ist maximal ein Thread unterwegs.
      • Paralellität wird nur simuliert.
      • Das vereinfacht die Entwicklung von Aktivitäten ungemein.
    24. Local Services
    25.  
    26. Regeln und Bedingungen
      • Regeln (Rulesets)
        • Liste von Wenn-Dann-Sonst Anweisungen zur Veränderung von Properties
      • Bedingungen (Conditions)
        • Deklarative Bedingungen zur Steuerung des Ablaufs
        • Für IfElseActivity, ConditionedGroupActivity, ...
    27. Transaktionen
      • System.Transactions seit .NET 2.0
      • Kein Workflow für Rollbacks
      • Keine Dehydration während einer Transaktion
      • Keine verschachtelten Transaktionen
    28. Fehlerbehandlung, Abruch und Kompensation Initialisiert Ausführend Erledigt Im Abbruch Fehlerbehandlung Kompensierend
    29. Aufbau Benutzerdefinierte Dienste Windows Workflow Foundation Aktivitäten-Bibliothek Workflows Workflow Hosting Benutzerdefinierte Aktivitäten und Workflows Dienste Persistenz Überwachung Datenaustausch Programm-Schnittstelle State Machine Sequential Laufzeit-bibliothek Visual Studio 2008 Integration „ Workflow Designer“ Angepasste Designer für eigene Aktivitäten und Workflows Regeln und Bedingungen Baukasten Runtime Design
    30. Visual Studio Designer
    31. Debugging
    32. Rehosting
    33. Agenda/Übersicht
        • Warum Workflows?
        • Die Windows Workflow Foundation
        • Demo
        • “ known issues”
        • Best Practices
        • Fragen und Antworten
    34.  
    35. Agenda/Übersicht
        • Warum Workflows?
        • Die Windows Workflow Foundation
        • Demo
        • “ known issues”
        • Best Practices
        • Fragen und Antworten
    36. „ Known Issues“
      • Änderung von Workflows
        • Laufende Workflows kann man schwer auf neue Prozessstände migrieren.
        • Bei der Persistenz von Aktivitäten tauchen gerne mal Versionierungsprobleme auf, da im Standardfall Binary Serializer benutzt werden.
      • Workflows im Web
        • Stabilität von in Webapplikationen gehosteten Workflows ist dürftig.
      • Designer
        • Gestalten von eigenen Designern ist relativ aufwändig, aber eigentlich nötig. Alles muss von Hand programmiert werden.
    37. Agenda/Übersicht
        • Warum Workflows?
        • Die Windows Workflow Foundation
        • Demo
        • “ known issues”
        • Best Practices
        • Fragen und Antworten
    38. Best Practices: Think
      • Wenn man einen Hammer hat, sieht jedes Problem aus wie ein Nagel.
        • Gründlich prüfen, ob der Einsatz von WF die gewünschten Vorteile bringt.
      • Mit WF modellieren, nicht programmieren!! Die Aktivitäten sind für die Aufgaben zuständig, die Workflows für den Ablauf.
        • Ein Prozess hat keine „Bugs“ und wird auch selten geändert. Damit umgeht man die Probleme bei der Versionierung.
      • Workflows partitionieren und untereinander aufrufen. Workflow-enabled Applications, nicht Application-enabled Workflows.
    39. Agenda/Übersicht
        • Warum Workflows?
        • Die Windows Workflow Foundation
        • Demo
        • “ known issues”
        • Best Practices
        • Fragen und Antworten
    40. Fragen?
    41. Danke für’s Zuhören! Lars Corneliussen http://www.startbigthinksmall.com http://delicious.com/lcorneliussen/workflowfoundation http://www.itemis.de

    + Michael JendryschikMichael Jendryschik, 2 years ago

    custom

    744 views, 0 favs, 3 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 744
      • 658 on SlideShare
      • 86 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 58 views on http://www.itemis.de
    • 25 views on http://startbigthinksmall.wordpress.com
    • 3 views on https://onion.net

    more

    All embeds
    • 58 views on http://www.itemis.de
    • 25 views on http://startbigthinksmall.wordpress.com
    • 3 views on https://onion.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories