2017-01-19 3 views
2

Wir denken über adoptieren State Machine Stateless Framework in unserem System, aber wir haben eine Anforderung, die ich noch nicht verstanden habe, wenn das zustandslose Rahmen helfen kann oder wenn Komplexität zu unserem System hinzufügen.Staatenlose Rahmenarbeit mit unabhängigen Forks?

Warum ändern? Da das System wächst und einige Abhängigkeiten zwischen jeder Zustandsmaschine haben, die wir entfernen möchten. Verwenden Sie auch eine Open-Source-und gut strukturierte Framework ist immer besser, die eine neue macht.

Beispiel: Wir haben einen Zustand, nicht deterministische Maschine [SM_A], dass Gabeln in [n] neue Zustandsmaschinen [SM_B]. Der letzte Zustand von [SM_A] ist abhängig von allen [SM_B] Gabeln. Jede Abzweigung, treten Sie nach Abschluss der Arbeit der SM_A bei und informieren Sie ihn, ob alle SM_Bs beendet sind. Wenn alle Gabeln fertig sind, wird der SM_A fortgesetzt. Außerdem müssen alle Zustände beibehalten werden, weil wir im Moment auf eine Aktion warten, um alle Gabeln [SM_B] s "aufzuwecken".

(Pseudozustände: http://www.uml-diagrams.org/state-machine-diagrams.html#fork-pseudostate)

Das folgende Bild zeigt den Fluss:

Current state machine

Sorry, wenn Sie nicht verstehen.

Antwort

1

Staatenlos unterstützt keine Gabeln, wie ich sie verstehe. Aber ich denke Stateless kann benutzt werden, um dein Problem zu lösen. Möglicherweise kann SM_A verwendet werden, um n Anzahl von SM_B-Objekten zu instanziieren. SM_A verfolgt alle SM_Bs und jeder SM_B teilt SM_A mit, dass es seine Aufgabe erledigt hat. Wenn SM_A feststellt, dass alle SM_B abgeschlossen sind, wird es in den Zustand SM_A_5 übergehen.

+0

Danke. Ja, wir versuchen, die Verantwortlichkeit der SM-Verwaltung von Kind zu Eltern zu ändern ... So kennt der Elternteil (SM_A) alle Kinder (SM_B). – iamandre

+0

Auch wir testen das Automatonymous. – iamandre

+0

Wenn Sie Ihr Diagramm betrachten, scheinen Sie einen Job-Prozessor zu bauen. Vielleicht möchten Sie sich auch eine REstate-Bibliothek ansehen, die ich aus einigen Ideen von Stateless erstellt habe, aber mit Schwerpunkt auf tragbaren State Machines. https://github.com/psibr/REstate –

Verwandte Themen