|
Hi, Niklas: Thanks for the link to your tutorial - it really helped. I agree with your goal of making it pure java, with no need for a preprocessor. I have previously examined the State Machine Compiler (SMC) in detail. While SMC looks pretty capable, CHSM directly implements UML state charts, aka hierarchical state machines (HSMs). The claim to fame of HSMs is that they are much more scalable than "flat" state machines. The thesis that I referred to has a very detailed and thorough discussion of the semantics and logic required to properly implement HSMs, along with some excellent examples. IMHO, I believe we could benefit greatly from studying it to get a deeper grasp of the concepts and seeing how / whether to incorporate these in mina-sm. Best regards, Yigal Niklas Therning wrote: Yigal Rachman wrote:Hi, Folks:Yesterday my first MINA-based code went into production. As expected, it is working wonderfully well - really cool! Thank you all for making MINA such a joy to use. As noted by others in this group, MINA is very well suited for use with state machines because all the operations are non-blocking. I am planning to exploit this for the instrument drivers that I am developing with MINA, but am still researching the best tools for the job (no offense to mina-sm). The most promising tool I have found is CHSM (Concurrent Hierarchical State Machine). The home page is http://chsm.sourceforge.net/index.html . Written originally for C++, it now works for Java, too. If you have an interest in state machines in general, then the original thesis that spawned CHSM is a must-read: http://homepage.mac.com/pauljlucas/resume/pjl-chsm-thesis.pdf (there is a link to it from the home page, too). It describes in detail the theory of hierarchical state machines (based on UML state charts - much more powerful than the "usual" state machines), the programming algorithms, and some great examples. It is the best work on the subject that I have found thus far. CHSM is a pre-compiler, which may make it more awkward to use than direct java. However, I suspect that there may be a way to rework it to use java directly, in the spirit of mina-sm. Comments, anyone?There's also the State Machine Compiler (http://smc.sourceforge.net/). If you haven't you might want to check it out too. It also uses a special language with embedded Java code which needs to be compiled into Java by a special compiler. My main motivation for starting mina-sm was that I wanted to express my state machine in pure Java. It's by no means finished so any suggestions for improvements would be most welcome. If you want more info about mina-sm you could check out the tutorial I'm working on, http://cwiki.apache.org/confluence/display/MINA/Introduction+to+mina-sm. Please be aware that it's not finished yet. |
- Re: mina-sm: other options? Yigal Rachman
- Re: mina-sm: other options? Trustin Lee
- Re: mina-sm: other options? Julien Vermillard
- Re: mina-sm: other options? Niklas Therning
- Re: mina-sm: other options? Julien Vermillard
- Re: mina-sm: other options? Julien Vermillard
- Re: mina-sm: other options? Julien Vermillard
