Discussions

News: UniMod: Open Source State Machine Framework Released

  1. In the "yet another framework" category, we see a new open source product, UniMod. UniMod is a State Machine Framework which allows you allows to design application logic with a help of set of State Diagrams, generate Finite State Machine XML description and then "run" this XML description in UniMod runtime environment.

    UniMod features include:

    1. Model application logic using UML editor (currently only ArgoUML supported, support for Together Control Center is being developed)
    2. Generate XML description of State Machine you model
    3. Execute XML description in runtime UniMod environment
    In runtime you may use predefined adapters for executing State Machine in Servlet Container or you may write you own runtime code using UniMod runtime API.

    The packages within UniMod are:

    - UniMod Core contains State Machine class model, boolean expression parser, state machine validator.
    - UniMod Runtime Engine contains boolean expression interpretator and event processor.
    - UniMod UML Plugin contains common classes for plugin implementations and plugin for ArgoUML
    - UniMod Servlet Adapter contains classes to use UniMod Runtime Engine under Generic Servlet Container
    - UniMod Standalone Adapter contains classes to use UniMod Runtime Engine for standalone applications. You may not use this adapater for standalone application and call UniMod Runtime Engine API directly.

    Visit the UniMod web site for more details.
  2. Funny, I talked to some people in Atlanta two weeks ago about this rather old technique, using statecharts for UI design and controller implementation. It still seems not many Java developers know about the many ways statecharts can be used.

    I tried to implement a design and user interface documentation process two years ago in my previous company. As far as I can tell it failed because I was too ambitious (I also wanted our graphics designer and project managers to understand how it works... 3 different shapees in a diagram and it wasn't PowerPoint...), not because the methodology has serious flaws. It's certainly better than many other methods for user interface specification, like natural language text combined with screen prototypes or even worse, ad-hoc PowerPoint "diagrams".

    This book is not easy to get, but very interesting for the more serious UI developers out there:

    http://www.uidesign.net/1999/books/mar_books1.html

    This site also had several good articles but it looks like they are down now (published in 1999!). There is only a (IMHO not very good) criticism of the book here: http://www.uidesign.net/1999/imho/nov_imho.html

    This is an older implementation of the same idea:

    http://sourceforge.net/projects/jstatemachine/

    Well, I hope I have some time soon to write down an overview. If you have an ACM library account, search for "statechart user interface" and you'll find many (even 15 year old) whitepapers.
  3. Looks like JStateMachine has become closed source. I can't find the download like at sourceforge.net. Anyway, I've come up with a list of similar frameworks:

    http://www.manageability.org/blog/stuff/open-source-statemachine-for-user-interfaces-written-in-java

    Let me know what I may have missed.

    Carlos
  4. JStateMachine framework[ Go to top ]

    Christian and Carlos,

    Thanks for the nod, and I love the description of JStateMachine as the 'Grand daddy' among these frameworks.

    Yes, the author has decided to take the product commercial. We have been working for the last few months in developing an editing suite and various supports and will be releasing a product with full commercial support and documentation in the very near future. An early access release is available now.

    The '40% faster' quote is from our first commercial customer, who are in the processing of deploying online banking applications.

    It is good to see that others are developing open source frameworks along the same lines. I like open source, and it was not an easy decision to take JStateMachine out of that arena. Good luck to UniMod.

    Brian O'Byrne.
    http://www.statesoft.ie/
  5. JStateMachine framework[ Go to top ]

    What is the status of the original open source release of JStateMachine. Has its licence been revoked or can it still be used?
  6. Link to download Jstatemachine[ Go to top ]

    Looks like JStateMachine has become closed source. I can't find the download like at sourceforge.net. Anyway, I've come up with a list of similar frameworks:
    Let me know what I may have missed.

    Carlos

    You can dounload Jstatemachine from sourceforge
    Jstatmachine
    for doumention
    or you can see all files you can download from
    http://prdownloads.sourceforge.net/jstatemachine/
  7. Yet another framework!? Awesome. I love it.

    This software sounds like EXACTLY what I need for my state subsystem in Shocks. I'm extremely interested in it. I think the project deserves to be treated with a little less modesty, and that slapping the "yet another" label on it isn't necessary.

    I for one will be looking with great interest into the project.

    Cheers,
    --
    N.
  8. Yet another framework!? Awesome. I love it.

    >
    > This software sounds like EXACTLY what I need for my state subsystem in Shocks. I'm extremely interested in it. I think the project deserves to be treated with a little less modesty, and that slapping the "yet another" label on it isn't necessary.
    >
    > I for one will be looking with great interest into the project.
    >
    Thanx for support UniMod!
    Project is in alfa version for now because of lack of documentation, but runtime part is quite stable now. We are going to write simple Quick Start guide. If you have any questions you may contact authors directly from http://unimod.sourceforge.net/contacts.html
  9. I want to add some comments about UniMod project. Approach used in this project combines UML notation with State Machine based approach that is being developed by SWITCH-technology. SWITCH-technology is also known as State Machine Programming. SWITCH-technology has it's own russian site http://is.ifmo.ru, there're some amount of english texts in section http://is.ifmo.ru/?i0=english.

    On this site there are over 40 different projects that based on State Machine approach http://is.ifmo.ru/?i0=projects_en. Every project contains full set of documentation that describes programm development process.

    All it becomes base for organization by professor Shalyto A.A. (author of SWITCH-technology) of "Foundation for Open Project Documentation". This foundation will be discussed 27 Feb 2004 on Linux Summit http://www.linuxsummit.org/summit2004_program.shtml#b2. According with this foundation UniMod will release project documentation for sample applications.

    I write dissertation in Computer Technology Department of St.-Petersburg State University of Information Technology, Mechanics and Optics. My scientific adviser is Shalyto A.A. I will be glad if you give me some more links about state machine approach.