1 / 38

Introduction to Windows Workflow Foundation

Introduction to Windows Workflow Foundation . Matt Winkler Technical Evangelist, Windows Workflow Foundation http://blogs.msdn.com/mwinkle mwinkle@microsoft.com. Agenda. What is Windows Workflow Foundation? Architecture & Core concepts Building Workflows Building Activities

magee
Download Presentation

Introduction to Windows Workflow Foundation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction toWindows Workflow Foundation Matt Winkler Technical Evangelist, Windows Workflow Foundation http://blogs.msdn.com/mwinkle mwinkle@microsoft.com

  2. Agenda • What is Windows Workflow Foundation? • Architecture & Core concepts • Building Workflows • Building Activities • Runtime Services • Workflow Communication

  3. Windows Workflow Foundation Windows Workflow Foundation is the programming model, engine and tools for quickly building workflow enabled applications on Windows. • Single workflow technology for Windows • Available to all customers of Windows • Available for use across a broad range of scenarios • Redefining workflow • Extensible framework & API to build workflow centric products • One technology for human and system workflow • Take workflow mainstream • Bring declarative workflow to any .NET developer • Fundamental part of the Office 2007 • Strong workflow partner & solution ecosystem

  4. Packaging • Third foundational .NET Framework 3.0 • Windows Communication Foundation (“Indigo”) • Windows Presentation Foundation (“Avalon”) • Windows Workflow Foundation (“WinOE/WinWS”) • Cardspace (“Infocard”) • Support for Windows XP & Windows Server 2003 • Licensed as part of Windows • Released!

  5. What is a workflow? A set of activities that coordinate people and / or software... EscalateToManager CheckInventory Example activities…. …organized into some form of workflow. Or a state diagram…. or based on rules. Like a flowchart….

  6. Windows Workflow Foundation Visual Designer KeyConcepts A Workflow • Workflows are a set of Activities • Workflows run within a Host Process:any application or server • Developers can build their own Custom Activity Libraries An Activity Custom Activity Library Components Windows Workflow Foundation • Base Activity Library:Out-of-box activities and base for custom activities Base Activity Library • Runtime Engine:Workflow execution and state management Runtime Engine • Runtime Services:Hosting flexibility and communication Runtime Services • Visual Designer: Graphical and code-based construction Host Process

  7. Building a Workflow

  8. What are Activities? • An activity is a step in a workflow • Has properties and events that are programmable within your workflow code • Has methods (e.g. Execute) that are only invoked by the workflow runtime • Think of Forms & Controls • Activity == Controls • Workflows == Forms • Activities fall under two broad categories • Basic – steps that “do work” • Composite – manage a set of child activities

  9. Base Activity Library • Base Activities get you started… • Designed for modeling control flow & communications • IfElse, Delay, While, State, etc. • InvokeWebService, InvokeMethod, etc. • Custom activities can derive from the Base Activities • Base Activities have been built using the same framework that’s available to you as developers

  10. Domain-SpecificWorkflow Packages Compliance CRM Extend activity Compose activities RosettaNet Author new activity IT Mgmt • Vertical-specificactivities & workflows • Best-practice IP &Knowledge Activities: An Extensible Approach Custom ActivityLibraries Base Activity Library Out-of-Box Activities • OOB activities,workflow types,base types • General-purpose • Activity libraries define workflow constructs • Create/Extend/Compose activities • App-specificbuilding blocks • First-class citizens

  11. Why build custom activities? • Activity is unit of: • Execution • Reuse • Composition • Activities enable workflow modeling • Custom activity examples • SendEmail, FileSystemEvent, PurchaseOrderCreated, AssignTask, etc. • Write custom activities for • Reusing workflow logic • Integrating with technologies • Modeling advanced control flows • Modeling various workflow styles Workflow Execution Logic Simplicity Code Activity InvokeWebService Activity InvokeMethod & EventSink Custom Activities Flexibility

  12. Example: A SendMail Activity using System.Workflow.ComponentModel; public partial class SendMail : System.Workflow.ComponentModel.Activity { public SendMail() { InitializeComponent(); } protected override Status Execute(ActivityExecutionContext context) { // my logic here to send the email return Status.Closed; } } public partial class SendMail { public string subject; public string Subject { get { return subject; } set { this.subject = value; } } private void InitializeComponent() // designer generated { this.ID = "SendMail"; } }

  13. Activity Component Model • Each activity has an associated set of components • Components are associated through attributes on the Activity Definition Designer Activity Behaviors Validator // Companion classes [Designer(typeof(MyDesigner))] [CodeGenerator(typeof(MyCodeGen))] [Validator(typeof(MyValidator))] // Behaviors [SupportsTransaction] public class MyActivity: Activity {...} Serializer Code Generator Required Optional (defaults provided)

  14. Activity Execution Status • Returned by Execute() method • Can be determined by a parent activity or workflow • this.sendEmail1.Status • Tracked by a Tracking Runtime Service • Activity.Status Enumeration • Initialized • Executing • Compensating • Cancelling • Closed • Faulting

  15. Executing Canceled Initialized Faulted Closed Compensating Activity Execution • Activity Execution Methods • Initialize() • Execute() • Cancel() • Compensate() • HandleFault() Transition Types Runtime Activity

  16. Advanced Composite Activity Execution • Activities may need long-running execution environments as a part of their execution • This opens up interesting possibilities of modeling advanced control flows • Loops, Continuations, Dynamic Activities etc.

  17. Sequence Activity – Execute() protected override Status Execute(ActivityExecutionContext context) { Activity childActivity = this.ExecutableActivities[0]; EventHandler<ActivityExecutionStatusChangeEventArgs> OnClosed = null; OnClosed = delegate { childActivity.Closed -= OnClosed; if(this.ExecutionStatus == ActivityExecutionStatus.Canceling) context.CloseActivity(); else if (ExecutionStatus == ActivityExecutionStatus.Executing) { this.index++; if (this.ExecutableActivities.Count > this.index) { childActivity= this.ExecutableActivities[this.index]; childActivity.Closed += OnClosed; context.ExecuteActivity(childActivity ); } else context.CloseActivity(); } }; childActivity.Closed += OnClosed; context.ExecuteActivity(childActivity); return ActivityExecutionStatus.Executing; }

  18. ForEach Activity Execution Contexts Template Activity Context Owner Activities Default Workflow Context Context 1 Context 2 Context 3 Children Contexts of ForEach activity

  19. Building a Basic Activity

  20. Activity Summary • An Activity is a key concept of Windows Workflow Foundation • WF allows you to write custom activities to model your application control flow explicitly • Activities are the fundamental unit of: • Execution, Reuse, & Composition • Two broad types of activities: • Basic & Composite • Activity Designer simplifies the development of custom activities – especially composites • System.Workflow.ComponentModel provides the framework to build custom activities • Call to action: Write Activities!

  21. Benefits of State Machine Workflows • Flexibility • Ability to handle multiple business exceptions • Ability to handle multiple paths leading to the same goal • Visibility • Ability to view the past, present and future of a business process • Control • Ability of the business end user to control the flow of the process at run time

  22. State Machine Workflow Concepts • The basic elements of a state machine workflow • States • Events • Actions • Transitions • A state machine workflow is composed of a set of states • In a given state a set of events can be received • Based on the event received an action is performed at the end of which a state transition may or may not be made

  23. Activities in a State Machine Workflow State Machine Workflow • State Machine Workflow • Root activity that is the container for a state machine • State • Represents the state of the state machine • EventDriven • Used to handle an event in a given state • SetState • Used to transition from one state to another • StateInitialization • Used for default action on entering a state • StateFinalization • Use for default action on leaving a state Event Driven State State Initialization Event Driven Set State State State Finalization

  24. Order Processing Example On Order Completed On Order Processed On Order Created Waiting to Create Order Order Created Order Processed On Order Completed On Order Shipped On Order Shipped Order Shipped Order Completed On Order Completed

  25. Querying a State Machine Workflow • Crucial in creating effective Business Applications • Need to answer the question “Where is the process currently at?” • StateMachineWorkflowInstance class to query and interact with an instance of a state machine workflow • Used to answer questions like: • What is the current state of the workflow? • What transitions are possible from the current state? • Enumerate all the states in the workflow?

  26. A State Machine Workflow

  27. Runtime Services • The workflow runtime is lightweight • Depends on a set of services • Only Threading is required • Often you also want Transactions and Persistence • Add services programmatically or using a config file • What ships in System.Workflow.Runtime.Hosting? • Abstract service definitions • Concrete service implementations • DefaultWorkflowSchedulerService (asynchronous) • ManualWorkflowSchedulerService (synchronous; for ASP.NET scenarios) • DefaultWorkflowTransactionService • SqlWorkflowPersistenceService

  28. Runtime Services Host Application App Domain Runtime Services Out of Box Services are provided that support SQL Server 2000 & 2005 PersistenceService stores and retrieves instance state. SQL PersistenceService TrackingService TrackingService manages profiles and stores tracked information. SchedulerService TransactionService Common resource services for managing threading, timers and creating transactions

  29. Out-of-Box Services

  30. Workflow State Management • Many workflows are long running • A workflow instance is idle when it has no runnable work • Persistence services determine whether to unload the WF when idle • Loading/unloading is not a concern of the workflow developer or the application developer • Persistence points are checkpoints • Transactions • Enable crash recovery • Persistence occurs at: • Closure of a transaction • Closure of any activity marked [PersistOnClose] • Closure of the workflow

  31. Enabling Workflow Persistence • Persistence Support for Workflow Instances • Create the SQL database with the SqlWorkflowStatePersistence schema • Create a Workflow Runtime • Define Connection String • Register StatePersistenceService with Runtime • Start the Workflow • Loading and Unloading uses StatePersistenceService private void RunWorkflow() { WorkflowRuntime wr = new WorkflowRuntime(); string connectionstring = "Initial Catalog=Persistence;Data Source=localhost;Integrated Security=SSPI;"; wr.AddService(new SqlWorkflowStatePersistenceService(connectionstring)); wr.CreateWorkflow(typeof(SimpleWorkflow)).Start(); }

  32. Tracking • Track all state changes and data within the workflow • Emit tracking info from code • Dynamic changes • Profile • XML file that specifies what to track • Includes and excludes, state changes, data context, types • Object model to create Tracking Information Tracking Service Write Store Activities Profile Workflow Instance Host Application Query

  33. Enabling Workflow Tracking • Tracking Support for Workflow Instances • Define tracking profiles • Create workflow runtime • Define connection string • Register one or more TrackingService’s with the WorkflowRuntime • Start the workflow • Query tracking database – instance and activity information private void RunWorkflow() { WorkflowRuntime wr = newWorkflowRuntime(); string connectionstring = "Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;"; //Out of the Box Tracking Service wr.AddService(new SqlTrackingService(connectionstring)); wr.CreateWorkflow(typeof(SimpleWorkflow)).Start(); }

  34. Workflow Authoring Tools • Line of Business Manager / End users • Wizards • Business Analyst • Visio Like • Script Developers or VARs • Script Like • Code Developers or ISVs • Windows Workflow Foundation Designer • Commonality between Tools: • Support a common object model for describing Workflow information • The object model needs to be exchangeable between tools

  35. Rehosting Workflow Designer

  36. Summary • A single workflow technology for Windows • Platform level workflow framework for use within Microsoft products & ISV applications • Will be used by BizTalk Server, Office 2007, MBS & other Microsoft client/server products • Available to all Windows customers • Microsoft is redefining workflow • Unified technology for System & Human workflow • Multiple styles: sequential, rules-based, state machine • Supports dynamic interaction • Microsoft is taking workflow mainstream • Consistent and familiar programming model for reaching mainstream application developer • Available to millions of end-users through Office 2007 • Extensible platform for ISVs

  37. Windows Workflow Foundation Resources • Community Site • Subscribe to the RSS feed for news & updates • Find, download, & register Activities • Find blogs, screencasts, whitepapers, and other resources • Download samples, tools, and runtime service components • http://wf.netfx3.com • MSDN® Workflow Page • Download 12 Hands-on Labs • http://msdn.microsoft.com/workflow • Forums • Ask questions in the forums • Go to the community site

More Related