2017-01-19 6 views
2

私たちはステートマシンStateless Frameworkを私たちのシステムに採用することを考えていますが、ステートレスフレームワークが助けてくれるか、私たちのシステムが複雑になるかどうかはまだ分かりませんでした。ステートレスフレームワークは独立したフォークで動作しますか?

なぜ変更されますか? システムが成長しており、削除したい各状態マシン間にいくつかの依存関係があるためです。また、オープンソースを使用すると、構造化されたフレームワークは常に新しいものを作り出すという点で優れています。

例: [n]新しいステートマシン[SM_B]をフォークする状態非決定性マシン[SM_A]があります。 [SM_A]の最後の状態は、すべての[SM_B]フォークに依存します。 作業が終了したら、各フォークはSM_Aに参加し、すべてのSM_Bが完了したかどうかを確認するように通知します。すべてのフォークが終了すると、SM_Aは続行されます。 また、現時点ではすべてのフォーク[SM_B]を「起床」するアクションを待つため、すべてのステートを保持する必要があります。

(Pseudostates:http://www.uml-diagrams.org/state-machine-diagrams.html#fork-pseudostate)画像は、以下のフローを示し

:あなたが理解していない場合

Current state machine

申し訳ありません。

答えて

1

ステートレスはフォークをサポートしていませんが、私はそれらを理解しています。しかし、私はあなたの問題を解決するためにステートレスを使うことができると思います。 多分、SM_Aを使用してn個のSM_Bオブジェクトをインスタンス化できます。 SM_AはすべてのSM_Bを追跡し、各SM_BはSM_Aが自分の仕事を完了したことを知ることができます。 すべてのSM_Bが完了したことをSM_Aが認識すると、SM_A_5状態に移行します。

+0

ありがとうございました。うん、私たちはSM管理の責任を子供から親に変えようとしています...だから親(SM_A)はすべての子供(SM_B)を知っています。 – iamandre

+0

また、Automatonymousもテストしています。 – iamandre

+0

あなたのダイアグラムを見ると、あなたはジョブプロセッサを構築しているようですが、ステートレスのアイデアから作成したライブラリを再利用することもできますが、ポータブルステートマシンに焦点を当てています。 https://github.com/psibr/REstate –

関連する問題