Workflow Management Tool Support for Incident Command Systems Michael J. Stoute Master’s Thesis Defense Monmouth University December 19th 2005
Outline • Introduction • Motivation • WIFA (Workflow Intuitive Formal Approach) • WIFA Modeling Tool • Conclusion • Demo
Introduction-ICS • Incident Command Systems (ICS) • Manages and allocates people, resources and services during terrorist incidents and natural disasters • Monitor and adapt to the incident events • Volunteer-based workforce
Motivation • ICS needs to adapt to ever changing surroundings • Volunteers with little to no formal training on Workflows or even basic computer knowledge • Need workflow support to know the current state and what needs to be done.
Related Work • Two Types of Formal Modeling Techniques: • Formal and not Intuitive • Very powerful and need formal training • Petri-Nets • State Charts • Intuitive and not Formal • MILANO • Tool claims simplicity • Sacrifices Expressive Power; such as representation of loops
Objective • Define a new formalism for modeling and analysis of workflows (WIFA model) • Build Tool to implement the model. • On-the-fly changes • On-the-fly validation • Intuitive • Formal
What is a Workflow • Process that contains tasks and rules about how the tasks are executed. • Tasks executed by humans or other apps • Tasks related and dependant based on business policies and rules • These policies and rules govern how a task is executed
WIFA Model Definitions Workflow = (T, P, C, A, S0) where • T={T1, T2, … Tm} A set of tasks, m 1 • P=(pij)m x m Precedence matrix of the task set • C=(cij)m x m Conflict matrix of the task set • A=(A(T1), A(T2), …,A(Tm)) Pre-Condition set for each task. • S0 {0, 1, 2, 3}m is the initial state
T2 T6 T5 T4 T1 T7 T8 T3 Example T = {T1, T2, …, T8}, A(T1) = Ø, A(T2) = {{T1}, {T6}}, A(T3) = {{T1}}, A(T4) = {{T2}}, A(T5) = {{T4}}, A(T6) = A(T7) = {{T5}}, A(T8) = {{T3, T7}}. S0 = (1, 0, 0, 0, 0, 0, 0, 0).
Initial State/Starting Task • Initial State: • At the initial state S0, • for any task TiT, • if there is no Tj such that pji = 1, • then S0(Ti) = 1; • otherwise S0(Ti) = 0 • Task Ti does not have any predecessors • It is executable immediately
StateValues • S (Ti)=0 Ti is not executable and not executed previously • S (Ti)=1 Ti is executable and not executed previously • S (Ti)=2 Ti is not executable and executed previously • S (Ti)=3 Ti is executable and executed previously
3 2 0 1 State Transition Rules A set of rules to guide workflow execution • Sa(Tj) = 1 If cij = 0 then Sb(Tj) = 1; otherwise Sb(Tj) = 0
T4 T2 T5 T7 T1 T6 T3 Example • S0 =(1, 0, 0, 0, 0, 0, 0) • S1 =(2, 1, 1, 0, 0, 0, 0) • S2 =(2, 2, 0, 1, 0, 0, 0) • S3 =(2, 0, 2, 0, 0, 1, 0) • … … c23 = 1
T2 T6 T5 T4 T1 T7 T8 T3 Modeling Power • Sequential Execution • Conflict • Concurrency • Synchronization • Loop c23 = 0 c67 = 1 A(T2) = {{T1},{T6}} A(T8) = {T3, T7}
Well-Formed Workflow Definitions • Reachable Set • Well-Formed • No Dangling Tasks • At least one ending state • Confusion Free – to simplify the logic of workflows such that the volunteers can follow it • And-In-And-Out • And-In-XOR-Out • XOR-In-And-Out • XOR-In-XOR-Out
WIFA Modeling Tool • Editor • Validator • Simulator
Encryption/Decryption XML .wfml .wfcc Audit Log Reports Reachable States Architecture Objects Model Constructor Tasks Connectors Notes Simulation Validation
WIFA Modeling Tool
C# • Language used to develop the WIFA Modeling Tool • .NET Framework 1.1 • Derived from C family • Benefits • Automatic Garbage Collection • Variables are type-safe • No pointers
XML • XML: eXtensible Markup Language • Storage medium for the Workflows • Benefits • Not platform specific • Provides common medium for sharing data
Validator • Validate at any time • Validates that the Workflow is well-formed • Checks for Starting Task • Checks for Ending Task • Checks for Dangling Tasks • Checks for Live Locks (Infinite Loops) • Checks for Dead Locks • Error List & Highlighting
Validation Pseudo-Code For each task in the workflow find parent tasks (preset of a task) find children tasks (postset of a task) find sibling tasks (postset of all tasks in the preset) if task is XOR-out and postset > 1 then task branch count=size of postset global branch count +=size of postset end if next task
Validation Pseudo-Code While first tasks < first tasks total number of branches { For each task { Generate a Path() Increment Each Current Path() } } } Result: {{1,2,6,5,7,8}, {1,4,5,7,8}, {1,3,8}} T2 T6 T5 T4 T1 T7 T8 T3
Validation Pseudo-Code for (i=0; i<number of unique paths; i++) { ResetTasks while (workflow not finished and not in a loop) { Move a single Step forward in the Simulation Check for Loops to avoid running forever } } Then Using Information Gathered From Execution Validates: A Starting Task Exists An Ending Task Exists No Dangling Tasks Exist No Live Locks Exist (Infinite Loops) No Dead Locks Exist
Simulator • Execute a workflow • According to state transition rules • Provides Execution Control • Step forward and Step back • On-the-fly changes
Simulation Pseudo-Code For each task in the workflow if task is marked for execution executeTask() else if task is XOR-In and at least 1 predecessor has executed set task state as executable else if task is And-In and all predecessors have executed set task state as executable else task state does not change next task
Simulation Pseudo-Code void ExecuteTask() { if hasConflict if in simulation mode Alert user, who then chooses which task to execute else Use current unique path to pick a branch set all tasks that were in conflict back to not executable end if set selected task state as executed add task to current execution path }
Conclusion • WIFA Supports all phases of Workflow Management • Design, Modification, Validation, Simulation • All implemented with Volunteers in mind • Provides on-the-fly validation and modification. • Intuitive • Usability Assessment • Results: Useful and Usability was acceptable.
Future Work • Role-based Access Control • Decision Support • Separate Workflow Instances Communicating • Interorganizational Workflows • Conversion between other Workflow Applications
DEMO