2016-04-18 5 views
0

Derzeit versuche ich, eine vorhandene Anwendung, die derzeit als Zustandsmaschine implementiert ist, neu zu gestalten, aber ich bin mir nicht sicher, ob dieses Entwurfsmuster die beste Lösung für diese Art von Arbeit ist .Ist eine Zustandsmaschine die beste Lösung

Szenario: Geräte konfigurieren

Devices (Sensoren) müssen konfiguriert werden, bevor sie verwendet werden könnten. Wir haben eine Java EE-Anwendung, in der ein Benutzer einen Konfigurationsprozess für ein Gerät startet. Dann werden Nachrichten zwischen dem Gerät und der Anwendung gesendet. Am Ende wird das Gerät konfiguriert (oder in einem Error/Timeout-Zustand) und ein Bericht an ein externes System wird gesendet.

Derzeit wird der Prozess als Zustandsmaschine ausgeführt, wobei der aktuelle Status in der Datenbank gespeichert wird. Wenn eine Nachricht vom Gerät empfangen wird, wird der gespeicherte Status abgerufen und die nächste Nachricht an das Gerät gesendet -> nächster Status. Wenn ein Gerät nicht antwortet, sendet ein Timer eine Timeout-Nachricht -> nächster Status (Timeout)

Was denken Sie? Passt das State-Machine-Pattern wirklich zu diesem Szenario? Oder welches Design könnte besser passen?

Thx, Markus

Antwort

1

Es sieht für mich in Ordnung, könnte eine weitere Alternative eine bpm sein verwenden, aber ich denke, dass für eine andere Art von Dingen gedacht.