Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Workflow Foundation Christian Binder Developer Platform & Strategy Group Microsoft Deutschland GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "Workflow Foundation Christian Binder Developer Platform & Strategy Group Microsoft Deutschland GmbH"—  Präsentation transkript:

1 Workflow Foundation Christian Binder Developer Platform & Strategy Group Microsoft Deutschland GmbH

2 Agenda Was ist die Workflow Foundation? Architektur & Kernkonzepte Workflow Engine & Services

3 Worklfow Foundation Windows Workflow Foundation ist Programmiermodell, Engine und Werkzeug für das einfache Erstellen Workflow-basierter Windows-Anwendungen. Zentrale Workflow-Technologie für Windows Teil des.Net Framework 3.0 Erweiterbares Programmiermodel Workflow neu definiert Workflow als Mainstream-Technologie

4 Was ist ein Workflow? Eine Zusammenstellung von Activities, organisiert in einem Flowchart oder Statusdiagramm AnManagerEskalieren Beispiel Activities…. Beispiel Activities…. CheckInventory Wie ein Flowchart…. Oder einem Statusdiagramm….

5 Workflow Scenario Spektrum Beteiligte: Menschen, Rollen Ablauf: Flexibel, dynamisch Daten: Unstrukturiert, Dokumente Beteiligte : Apps, Services Ablauf: Vorgeschrieben Daten: strukturiert, transaktional Information Worker Document Review… Information Worker Document Review… System Workflow Human Workflow Windows Workflow Foundation Business to Business Supply Chain Mgmt… Business to Business Supply Chain Mgmt… Line of Business Apps CRM ERP IT Management.NET Developer

6 Software Herausforderungen Die echte WeltDie echte Welt Software Herausforderung Bestellungen müssen in 48 Stunden bestätigt und in 30 Tagen versendet sein Die meisten Lieferanten bestätigen unsere Bestellung, manche vergessen es … Was ist der Status der Bestellung? Was ist der nächste Schritt? Langlauffend und Stateful Workflows laufen bis zu 30 Tage und müssen daher State verwalten Flexible Control Flow Flexibilität in der Workflowausführung. Schritte überspringen. Transparenz Darstellung des Status innerhalb der grafischen Workflowdarstellung

7 Workflow und BizTalk Server Premium BPM Server Server product Verwendent in B2B, EAI, BPM Szenarien Verteilebare Lösung Verwaltbarkeit, Scale-out Workflow Foundation Bestandteil von.NET FW 3.0 Weites Einsatzgebiet Für Eigenentwicklung Ermöglicht Verwaltbarkeit und Scale-out Lösung.NET FW 3.0 Windows Workflow Foundation Visual Studio Designer Messaging Design Tools Business Activity Monitor And Admin Tools Orchestration Transformation Adapters BizTalk Server Accelerators Workflow

8 Workflow und Office 2007 SharePoint: Workflows starten, erstellen, dran teilnehmen, anpassen Outlook: Benachrichtigungen empfangen SharePoint Designer 2007: Workflows anpassen und erstellen Word, PowerPoint, Excel, InfoPath: SharePoint Workflow starten, dran teilnehmen

9 Agenda Was ist die Workflow Foundation? Architektur & Kernkonzepte Workflow Engine & Services

10 Windows Workflow Foundation Kernkonzepte Activity Visual Designer Workflows sind ein Set von Activities Workflows laufen in einem Host Process Entwickler können eigene Activity- Bibliotheken erstellen Komponenten Base Activity Library: Out-of-box Activities und Basis für eigene Activities Runtime Engine: Workflow Execution und State Management Runtime Services: Hosting Flexibilität und Kommunikation Visual Designer Activity Library Workflow Foundation Base Activity Library Runtime Services Host WF Runtime Engine Workflow

11 Workflow Basics Ein Workflow ist eine Klasse Ein Workflow kann in XML beschrieben werden … using System.Workflow.Activities; public class Workflow1 : SequentialWorkflow { }

12 Workflow Basics Workflow Constructor konfiguriert Activities public partial class Workflow1 : SequentialWorkflow { public Workflow1() { InitializeComponent(); } public sealed partial class Workflow1 : SequentialWorkflow { private Delay delay1; private void InitializeComponent() { this.delay1 = new System.Workflow.Activities.Delay(); this.delay1.ID = delay1"; this.delay1.TimeoutDuration = System.TimeSpan.Parse("00:00:05"); this.Activities.Add(this.delay1); this.ID = "Workflow1"; }

13 Workflow Erstellungsoptionen.NET assembly ctor definiert Workflow Markup Only Deklarativ XOML Markup und Code C#/VB Nur Code Generiert von Anwendung XOML C#/VB XML defines XML defines workflow structure logic and data flow XML defines XML definesworkflow Code-beside Code-beside defines extra logic Code creates Code createsworkflow in constructor XOML C#/VB App erstellt Activity Tree und serialisiert Workflow Compiler wfc.exe C#/VB Compiler

14 Visual Designer Workflow Designers Workflows erstellen Visuelle und Code basierende Programmierung Visuelles Debugging Themes support Designer re-hosting Activity Designer Neue Activities erstellen Visuell und Code basierende Programmierung Ableiten von der Activity Basis- klasse oder ganz neu anfangen Ableiten von der Activity Basis- klasse oder ganz neu anfangen Activity Designer Sequential Designer State Machine Designer

15 Workflows erstellen

16 Was sind Activities? Ein Activity ist ein Schritt im Workflow Hat Properties und Events, die im Workflow –Code programmierbar sind Hat Methoden, die nur die Workflow Runtime aufruft Vergleichbar mit Forms & Controls Activity == Control Workflow == Form Activities fallen unter zwei Kategorien BasicComposite

17 Activities – Erweiterbarer Ansatz Base Activity Library Benutzerdefinierte Activity-Libraries Eigene Activity Base Activity Library Erweit. Activity Compose Activities Domain-spezifische Workflow Pakete Compliance RosettaNet CRMIT Mgmt

18 Flexible Control Flow Regel-gesteuerte Activities Step2 Step1 Rule1 Rule2 Data Regeln und Status der Daten bestimmen die Reihenfolge Daten-gesteuert Einfache Abfragen, komplexe Regeln Abhängige Activity-Gruppen State Machine Workflow State2 State1 Event Event Externe Events steuern die Ausführungs- reihenfolge Reaktiv, Event-gesteuert Überspringen/Wiederholen Graphen Metaphor Sequential Workflow Step1 Step2 Sequentielle Struktur beschreibt Ausführungs- reihenfolge Vorhersehbar, formal Automatisierung Flowchart Metaphor

19 Activities verwenden und erstellen

20 Workflow Lifecycle Gesteuert via WorkflowInstanz Objekt Lifecycle und Persistenz Operationen Abort, Terminate, Suspend, Resume Load, Unload Operationen erzeugen zugerhörige Workflow Events private void TerminateButton_Click(object sender, EventArgs e) { WorkflowInstance workflowInstance = workflowRuntime.GetWorkflow(Program.workflowInstanceId); workflowInstance.Terminate("Terminating Case, Problem was resolved"); }

21 Workflow Runtime Events Workflow Instanz Events Bietet die Möglichkeit Informationen über den Workflow-Lifecycle der Instanz zu erhalten z.B.: Aborted, Terminated, Started, Completed, usw. EventArgs enthält die InstanzID der zugehörigen Workflow Instanz Erzeugt durch Workflow-Instanz Operationen oder während der Ausführung z.B.: Die Ausführung der Terminate Activity erzeugt das WorkflowRuntime.WorkflowTerminated Event Workflow Runtime Events Bietet die Möglichkeit Informationen über die Workflow-Runtime zu erhalten Started, Stopped

22 Workflow Events (I) Workflow Event Handlers Description Event Arguments ExceptionNotHandled Thrown when the workflow instance doesnt handle the internal exception ExceptionNotHandledEventArgs Started Thrown when the workflow runtime is started WorkflowRuntimeEventArgs Stopped Thrown when the workflow runtime is stopped WorkflowRuntimeEventArgs WorkflowAborted Thrown when the workflow instance is aborted WorkflowEventArgs WorkflowCompleted Thrown when the workflow instance is completed WorkflowCompletedEventArgs WorkflowCreated Thrown when the workflow instance is created WorkflowEventArgs WorkflowIdled Thrown when the workflow instance is idle (ex. Delay or EventSink) WorkflowEventArgs WorkflowLoaded Thrown when the workflow instance is loaded into memory (i.e. re- hydrated) WorkflowEventArgs

23 Workflow Events (II) Workflow Event Handlers Description Event Arguments WorkflowPersisted Thrown when the workflow instance is persisted WorkflowEventArgs WorkflowResumed Thrown when the workflow instance is resumed after being suspended. WorkflowEventArgs WorkflowShutdown Thrown when the workflow runtime is shutdown WorkflowEventArgs WorkflowSuspended Thrown when the workflow instance is suspended by the runtime WorkflowSuspendedEventArgs WorkflowTerminated Thrown when the workflow instance is terminated by the runtime or internally WorkflowTerminatedEventArgs WorkflowUnloaded Thrown when the workflow instance is un-loaded from memory (i.e. Hydrated) WorkflowEventArgs

24 Workflow Events

25 Workflow und Host Kommunikation Kommunikation zwischen Workflow und Host basiert auf Messaging mit Methoden und Events

26 Workflow und Host Kommunikation (II) [ExternalDataExchange] public interface IApprovalService { void ManualApproval(int amount); event EventHandler ApprovedProposal; event EventHandler RejectedProposal; } //ExternalDataExchangeService in der Runtime registrieren WorkflowRuntime workflowRuntime = new WorkflowRuntime() ExternalDataExchangeService externalService = new ExternalDataExchangeService(); workflowRuntime.AddService(externalService); externalService.AddService(new ApprovalService()); class ApprovalService : IApprovalService {}

27 Workflow Host Kommunikation

28 Agenda Was ist die Workflow Foundation? Architektur & Kernkonzepte Workflow Engine & Services

29 Runtime Services Host Application Out of Box Services unterstützen SQL Server/MSDE Verwaltung von Threading und Transaktionen PersistenceService lädt und speichert den Status der Instanz TrackingService verwaltet Profile und speichert Tracking- Informationen WF Runtime Services PersistenceService TrackingService SchedulerService CommitWorkBatch Service

30 PersistenceService Host Application WorkflowInstance Persist Load Unload Übersicht Persistence Persistieren der Status und Timer Information einer Workflow Instanz Instanzen bleiben so lange Zeit verfügbar und belegen kein Speicher Instanzen sind auch nach einem System Restart verfügbar

31 Workflow Persistence aktivieren Persistence Support für Workflow Instanzen Workflow Runtime erstellen Connection String definieren SqlPersistenceService in Runtime registrieren Workflow starten Laden und Entladen mit StatePersistenceService Laden und Entladen mit StatePersistenceService private void StartCaseManagementProcess() { WorkflowRuntime wr = new WorkflowRuntime(); string connectionstring = "Initial Catalog=Persistence;DataSource=localhost;Integrated Security=SSPI;"; wr.AddService(new SqlWorkflowPersistenceService(connectionstring)); WorkflowInstance instance = wr.CreateWorkflow(typeof(ManageCaseCreation)); instance.Start(); }

32 Workflow Persistence

33 Übersicht Tracking Nachhalten aller Statusänderungen und Daten im Workflow Profile APIs für die Erstellung XML legt fest, was nachgehalten wird Includes und Excludes, State Changes, Data Context, … Tracking Information Tracking Service Host Application Activities Workflow Instance Query Write Profile

34 Workflow Tracking aktivieren Tracking Unterstützung für Workflow Instanzen Tracking Profil(e) erstellen Workflow Runtime erstellen Connection String festlegen Ein oder mehrere Tracking-Services bei der Engine registrieren Workflow erstellen und ausführen Tracking Datenbank abfragen – Instanz und Activity Information private void StartCaseManagementProcess() { WorkflowRuntime wr = new WorkflowRuntime(); string connectionstring = "Initial Catalog=Persistence;DataSource=localhost;Integrated Security=SSPI;"; wr.AddService(new SqlTrackingService(connectionstring)); WorkflowInstance instance = wr.CreateWorkflow(typeof(ManageCaseCreation)); instance.Start(); }

35 Workflow Tracking

36 Agenda Was ist die Workflow Foundation? Architektur & Kernkonzepte Workflow Engine & Services

37 Zusammenfassung Zentrale Workflow-Technologie für Windows Teil des.Net Framework 3.0 Erweiterbares Programmiermodel BizTalk Server, Office 2007, MBS & andere Microsoft Client/Server Produkte, werden auf WF basieren Workflow neu definiert Technolgie für System & Human Workflow zentrische Anwendungen Sequentieller oder State machine Worklfow Workflow als Mainstream-Technologie Erweiterbare Plattform für ISVs

38 Weitere Informationen MSDN ® Workflow Page Microsoft ® Visual Studio ® Extensions Download 12 Hands-on Labs Community Site RSS Feeds für News & Updates Beispiele, Tools und Runtime- Servicekomponenten

39 Fragen und Antworten Vielen Dank! Christian Binder


Herunterladen ppt "Workflow Foundation Christian Binder Developer Platform & Strategy Group Microsoft Deutschland GmbH"

Ähnliche Präsentationen


Google-Anzeigen