Developing event driven state machine workflows
Download
1 / 33

Developing Event Driven State Machine Workflows - PowerPoint PPT Presentation


  • 175 Views
  • Uploaded on

S1. S2. S3. S4. Developing Event Driven State Machine Workflows. Adam Calderon Principal Engineer - Interknowlogy Microsoft MVP – C#. Session Objectives And Key Takeaways. Objectives What is Windows Workflow Foundation Why State Machine Workflows State Machine Workflow Structure

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Developing Event Driven State Machine Workflows' - tavon


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Developing event driven state machine workflows

S1

S2

S3

S4

Developing Event Driven State Machine Workflows

Adam Calderon

Principal Engineer - Interknowlogy

Microsoft MVP – C#


Session objectives and key takeaways
Session Objectives And Key Takeaways

  • Objectives

    • What is Windows Workflow Foundation

    • Why State Machine Workflows

    • State Machine Workflow Structure

      • The State Activity

      • The Event Driven Activity

      • The Set State Activity

    • Skip and Rework Patterns

    • Dynamic Updates to State Machines

  • Key Takeaways

    • State machine as a powerful modeling paradigm


Agenda
Agenda

  • State Machine Workflow Introduction

  • Building State Machine Workflows

  • Recursive Composition

  • Skip and Rework Pattern

  • Additional State Machine Patterns

  • Summary

  • Q&A


Types of business processes
Types of Business Processes

  • Control flow processes

    • Are self driven once they are initiated

    • The set of events that may happen are highly predictable

    • Mostly sequential in nature

    • Highly suitable for process automation

  • Event Driven processes

    • Are driven by external events

    • Must be able to respond to any high priority event even if the some other work is in process

    • The sequence of events may not be predictable

    • The process can jump to any step in the process

    • Highly suitable for processes where human actions are involved


What do state machines workflows offer
What Do State Machines Workflows Offer

  • Provide an effective modeling paradigm for Event driven processes

  • Provide a natural paradigm for the business users to express business intent

    • Business users always think in terms of logical states of the process, possible events in those states and actions in response to the events

  • Provide an easy way to query and visualize the process

    • The current state of the process is the current state of the state machine

    • The set of possible transitions from the current state can be easily obtained

  • Provide very powerful business exception handling

  • State Machines are a familiar paradigm for IT professionals


When to use state machine workflow
When to Use State Machine Workflow

  • State Machine workflow provides a very powerful design paradigm

  • Not all processes can be modeled using State Machines

  • Use it when there is a lot of human interactions with the process

  • Use it when the workflow is driven by external events

  • Use it when there is a lot of out of band events that can be received in the workflow

  • Use it when it is hard to wire all the possible paths within the process in a sequential workflow


Basic concepts of state machine workflows
Basic Concepts of State MachineWorkflows

  • 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


Example a simple po process
Example : A Simple PO Process

On Order Completed

Waiting to

Create

Order

On Order Created

On Order Approved

Order

Created

Order

Approved

On Order

Completed

On Order

Shipped

On Order

Shipped

Order

Shipped

Order

Completed

On Order

Completed


A purchase order state machine workflow

A Purchase Order State Machine Workflow

Developing Event Driven State Machine Workflows


Agenda1
Agenda

  • State Machine Workflow Introduction

  • Building State Machine Workflows

  • Recursive Composition

  • Skip and Rework Pattern

  • Additional State Machine Patterns

  • Summary

  • Q&A


State machine implementation in winwf
State Machine Implementation in WinWF

State Machine Workflow

  • The state machine workflow is a root activity like the sequential workflow

  • There are 4 activities which work in the state machine workflow

    • State -- Represents the state of the state machine

    • Event Driven – Used to handle an event in a given state

    • Set State – Used to transition from one state to another

    • State Initialization – Used for default action on entering a state

Event Driven

State

State Initialization

Event Driven

Set State

State


State machine workflow activities the state activity
State Machine Workflow ActivitiesThe State Activity

  • The state activity represents a logical state of the state machine

  • It can contain a collection of event driven activities

  • To be in a particular state in the state machine means to execute that state activity

  • The state activity can also contain the ‘State Initialization’ activity

    • The state initialization activity is optional and if present is executed by default

State

State Initialization

Event Driven

Set State

State


How to design a state
How to Design a State

  • The “State” is the logical state of the process

    • E.g. Order Shipped, Document Approved

  • The “State” is similar to a milestone in a process

    • Is a natural fit as a tracking point for a process

  • The state machine workflow can only be in one logical state at any point in time

  • In a given state the process may receive only a valid set of events

    • E.g. publish document event in the document approved state


Initial state and completed state
Initial State and Completed State

  • A state machine workflow must have a start state

    • This is the state in which the state machine will be when the state machine instance is created

  • A state machine workflow can have a completed state

    • When the workflow reaches the completed state the workflow instance stops executing

  • The Start state and completed state can be specified as properties on the root state machine workflow activity


State machine workflow activities the event driven activity
State Machine Workflow Activities:The Event Driven Activity

  • The event driven activity is used to handle an event received in a particular state

  • The event driven activity is common to State machine and sequential workflows

  • An event driven activity is a composite activity which behaves like a sequence with some additional attributes

    • Must have the first activity as an activity that receives an event or a delay activity

    • Cannot contain any other activity that receives an event

Event Driven

Receive Event /

Delay

Action

Set State


Non blocking execution of the event driven activity
Non Blocking Execution of the Event Driven Activity

  • The event driven activity execution in a state machine workflow must be non blocking

  • If the event driven execution is blocked other event may happen which may invalidate the current state and hence the execution of the event handler

  • The state machine workflow enforces this pattern by allowing only one event receive activity


State machine workflow activities the set state activity
State Machine Workflow Activities The Set State Activity

  • The set state activity causes the actual transition from one state to another

  • The set state activity must be used inside an event driven activity

  • The set state activity must be the last executing activity in the event handler

    • The pattern enforced here is that an event is handled any needed actions performed and then a transition is made

    • There can be multiple set state activities (For e.g. in an if/else activity) but each one of them must be the last one to execute in the event handler


Purchase order state machine workflow a deeper look

Purchase Order State Machine Workflow a Deeper Look

Developing Event Driven State Machine Workflows


Agenda2
Agenda

  • State Machine Workflow Introduction

  • Building State Machine Workflows

  • Recursive Composition

  • Skip and Rework Pattern

  • Additional State Machine Patterns

  • Summary

  • Q&A


Recursive composition of states in a state machine
Recursive Composition of States in a State Machine

  • States activities can be recursively composed

  • When a state activity contains other states then that state cannot be transitioned to

    • Transition is only allowed to a leaf level state

  • Recursive composition provides a very powerful design pattern

    • Help in business exception handling

    • Help in reuse of event handlers where the same event needs to be handled in multiple states


Po process revisited
PO Process Revisited

Order

Changed

On Order Changed

On Order Completed

Waiting to

Create

Order

On Order Created

On Order Approved

Order

Created

Order

Approved

On Order

Completed

On Order

Shipped

On Order

Shipped

Order

Shipped

Order

Completed

On Order

Completed


Recursive state composition

Recursive State Composition

Developing Event Driven State Machine Workflows


Agenda3
Agenda

  • State Machine Workflow Introduction

  • Building State Machine Workflows

  • Recursive Composition

  • Skip and Rework Pattern

  • Additional State Machine Patterns

  • Summary

  • Q&A


Ability to query the workflow model
Ability to query the workflow model

  • The ability to query the model is a very crucial is creating effective workflow visualizations

  • State machine workflow offers a robust infrastructure to query and interact with a workflow instance

  • You can answer queries like

    • What is the current state of the workflow?

    • What transitions are possible from the current state?

    • Enumerate all the states in the workflow?


Skip and rework patterns
Skip and Rework Patterns

  • Workflow involves ad hoc steps that may not be modeled in advance

    • E.g. In the PO process the PO creator may want to skip the approval action

    • E.g. The PO creator may want to send the PO through an extra approval;

  • The State machine workflow has a built in mechanism to reset the state of the state machine to desired state


Po process skip rework
PO Process – Skip & Rework

Order

Changed

On Order Changed

On Order Completed

Set State Event

Waiting to

Create

Order

On Order Created

On Order Approved

Order

Created

Order

Approved

On Order

Completed

On Order

Shipped

On Order

Shipped

Order

Shipped

Order

Completed

On Order

Completed


Skip and rework pattern

Skip and Rework Pattern

Developing Event Driven State Machine Workflows


Agenda4
Agenda

  • State Machine Workflow Introduction

  • Building State Machine Workflows

  • Recursive Composition

  • Skip and Rework Pattern

  • Additional State Machine Patterns

  • Summary

  • Q&A


Dynamic change patterns
Dynamic Change Patterns

  • Dynamic change is the ability to make structural changes to the process

  • In the state machine dynamic change can be introduced at several levels

    • Add a new state to the state machine

    • Handle a new event in a particular state

    • Rewire the state transitions

  • The dynamic update to the state machine follows the same steps as for a sequential workflow


Multiple state machines in an application

S1

S1

S1

S2

S2

S2

S3

S3

S3

S4

S4

S4

Multiple State Machines in an application

Order Fulfillment Application

  • An application is hardly made up of one workflow

  • Multiple workflows work in tandem within an application

  • These workflows can be autonomous but cooperating with each other

    • They synchronize their states but not necessarily control the lifetimes of other workflows

Order Approval

Warehouse

Processes

Order Shipment


Summary
Summary

  • State Machine workflows are a key innovation in WinWF

  • State machine workflows provide a very powerful tool for modeling business applications

  • Use it when the process to be implemented has a lot of human interaction in it

  • The state machine is very easy to query and visualize

  • The state machine model and sequential model and complimentary


Adam calderon
Adam Calderon

More info on InterKnowlogywww.InterKnowlogy.com

Contact Information

E-mail: [email protected]

Phone: 760-930-0075 x274

Blog: http://blogs.InterKnowlogy.com/AdamCalderon

About Adam Calderon

  • Microsoft® MVP – C#

  • Microsoft® ASP.NET (UI Server Frameworks) Advisory Council

  • Developer / Author / Speaker


ad