It takes three subsystem state machines to create an error adaptive system.
This morning in the shower I was thinking about my last post on SCXML. What do you use as states in a system? Easy question, but then I thought, sure its internal states of a process, but how does the external “real” come into the picture, via guards? That could get messy in a very complex real world system. So, what if the external system is also modeled as a state machine?
Now we have two state machines, internal system and external system. What is the advantage? Well, each can have a peak into the other or using historical information, compute how the other works. Then if this prediction is not matched, it is an error. That is, if the internal machine is at state x and it knows that the external machine should be at state y at this point, and it is not, it is a system error. What to do?
This is where a third error machine would come into use. The function of this machine is to bring the other two into resonance, reduce the entropy, heat.
Depending on whether the machines are Mealy or Moore based, one would detect errors at particular points, events, transitions, or states.
I remember reading years ago about fault tolerant hardware systems. The minimum components was three; similar.
Hmmm. I don’t know what everything above really means, if anything. 🙂
Tangential subject: State machines, life cycles, etc:
- For the record, SOA, loose coupling, bla, bla, bla
- Why Developers Never Use State Machines
- Contextual State Transfer
- Why developers should be force-fed state machines
For future thinking …
- How does a FSM approach differ from a REST architecture.
Building a RESTful Hypermedia Agent, Part 1
- On the finite-state machine, a minimal model of mousetraps, ribosomes and the human soul“, Brian Hayes, Scientific American, 1983. Accessed November 6, 2011, at http://bit-player.org/bph-publications/SciAm-1983-12-Hayes-FSA.pdf
- “Exception Handling Mechanism in Communicating Threads for Java”, Gerald. H. HILDERINK, Communicating Process Architectures 2005;
Jan Broenink, Herman Roebbers, Johan Sunter, Peter Welch, and David Wood (Eds.), IOS Press, 2005
- “Self-Healing in Modern Operating Systems”, Michael W. Shapiro, Sun Microsystems, QUEUE December/January 2004-2005.