Zustandsmaschinen für Spring: Spring Statemachine 1.0.0

Michael Thomas

Spring-Logo (Quelle: spring.io)

Bei Spring Statemachine handelt es sich um ein recht junges Projekt aus dem Umfeld des Spring-Ökosystems. Als Framework für Anwendungsentwickler dient es der Nutzung von State-Machine-Konzepten für Spring-Applikationen.

Das Modell der Finite State Machines treibt sich schon lange auf der Technologie-Bühne herum; höchstwahrscheinlich jeder Programmierer nutzt in seinen Applikationen die ein oder andere Art von Zuständen. Probleme tauchen auf, wenn Zustands- und Applikationslogik miteinander vermengt und die Applikationen mit der Zeit komplexer werden: Tauscht man in diesem Fall ein Teil einer Anwendung aus, stehen die Chancen gut, dass dabei ein anderes kaputt geht. Der angemessene Umgang mit Zuständen ist insbesondere dann wichtig, wenn innerhalb einer Anwendung asynchrone Dinge vor sich gehen. An dieser Stelle hakt Spring Statemachine ein: Bei dem Projekt handelt es sich um ein Framework für Anwendungsentwickler, das der Nutzung von State-Machine-Konzepten für Spring-Anwendungen dient.

Spring Statemachine 1.0.0 bietet u. a. eine hierarchische Zustandsmaschinenstruktur, um die Zustandskonfiguration zu erleichtern; den Einsatz von Auslösern, Zustandsübergängen, Bedingungen und Aktionen; einen typsicheren Konfigurationsadapter, sowie eine Spring IoC-Integration, um Beans mit einer State Machine zu verbinden.

Die genaueren Hintergründe der Entstehungsgeschichte von Spring Statemachine erläutert der Spring for Apache Hadoop-Entwickler Janne Valkealahti in dem Blogpost zum Release von Version 1.0.0. Ein einfaches Beispiel auf der Projektseite klärt über die Funktionsweise von Spring Statemachine auf, darüber hinaus finden sich in der Referenzdokumentation einige detailliert erläuterte Samples.

Roadmap

Eine in Stein gemeißelte Roadmap für das Projekt existiert bislang zwar nicht, allerdings hat das Team bereits einige Überlegungen in diese Richtung angestellt: Demnach soll die Weiterentwicklung sowohl der UML State Machine-Spezifikation als auch den Feature-Anfragen von User-Seite folgen. So ist u. a. angedacht, sich für die 1.0.x-Versionen auf Bugfixes zu konzentrieren, beginnend mit Version 1.1.x Themen wie die Sicherheit und das Ausführungsmodell anzugehen und mit Version 2.x die Basline auf die Ebene von Spring Framework 5 und JDK8 anzuheben.

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: