Announcement

Collapse
No announcement yet.

Finite State Machine in Java?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Finite State Machine in Java?

    Hallo,<br>
    Ich entwickle eine Java Web Applikation mit Servlets etc., die damit zu kämpfen hat, dass der Workflow ziemlich komplex wird.
    Die nächste anzuzeigende Seite hängt vom "State" der Anwendung ab (d.h. ihrer Vorgeschichte), den Eingaben, die der Anwender in der gerade angezeigten Seite macht sowie von dem Button (WEITER, ZURÜCK, etc.), den er in dem Action Seite klickt.<br>
    <br>
    Die J2EE Patterns in der neuen JavaMagazin Ausgabe bringen mir noch nicht realisierungstechnisch die Lösung und das GoF State Pattern scheint auch nicht richtig zu passen, so dass ich auf Finite State Machine (FSM) tippe.
    <p>
    Hat jemand Erfahrung mit sowas in Java und kann mir einen Tip geben, ob ich auf der richtigen Spur bin und wie man eine FSM am besten realisiert?

    Klaus

    Klaus

  • #2
    Hallo Klaus,

    in einem ähnlichen Web-Projekt -- x Seiten innerhalb einer Transaktion und die Möglichkeit von überall irgendwo hinzukommen und dabei immer noch einen Ablauf zu realisieren -- habe ich eine StateMachine implementiert. Diese wird mit einer XML-Datei konfiguriert. Anhand der URL (FrontController) wird bestimmt, welcher WorkFlow gerade aktiv ist und an welcher Position man sich befindet. Daraufhin wird diese Position interpretiert (wir haben Tags für "show", "jump", "action" etc.), und entsprechend umgesetzt.

    Ich habe leider weniger Erfahrungen mit Struts oder Cocoon, ob man sowas dort nicht mit Hausmitteln realisieren kann. ivyGrid ist eine kommerzielle Implementation des Themas und wurde bereits im JM besprochen (10'02 glaub ich).

    viele Grüsse

    Hendri

    Comment


    • #3
      Hallo Hendrik,<br>
      das klingt sehr vielversprechend! Insbesondere die Konfiguration einer FSM mit XML!<br>
      Ich hab mich etwas umgeschaut nach einer FSM Implementierung in Java, finde aber nur etwas, das mit int states und outputs arbeitet. Das ist in diesem Zusammenhang nicht gerade hilfreich, da URLs und User Input + User Actions (Button Klick) alle auf int gemappt werden müssen.<br>
      Kannst Du mir da noch einen konkreteren Realisierungstip oder ein Codebeispiel geben?
      <p>
      Wir arbeiten mit einem eigenen Framework, das StrutsCX ähnlich ist und ein Servlet als FrontController einsetzt.
      <p>
      Gruss Klau

      Comment

      Working...
      X