WS-RM State Table December 15, 2005
Protocols as State Machines Protocols define the interaction of two or more finite state machines (FSM) Stable Protocols return to base states naturally or as a result of error processing Stable protocols consider that any potential event may occur in any state Each protocol may be represented by a minimum set of states for each state machine needed to describe it
Why State Tables A collection of spec paragraphs is open- ended, but a FSM must be closed Useful to improve clarity of specification –Less ambiguous than words alone –Highlights conditions that may be underspecified
A useful discipline Reliable implementations must consider all potential events and must have a clear transition state to state Provides the means to demonstrate correctness Helps define test cases to demonstrate implementation correctness and robustness
Tables vs Diagrams Tables need only pencil and paper (and eraser?) to create Closure trivial to determine by inspection
What we found The good –The spec is pretty good, only about half of the state/event combinations are unclear or unspecified The bad –We need to work on faults The ugly –Safety of sequence termination is in question