春、ステートマシン有限状態マシン

戦略および中規模台湾、同社のビジネスの台湾公共シンキング能力、の下で、これらの基本的なスキルを達成するために、より合理的な、再利用可能なアーキテクチャと技術を採用しています。電気産業企業では、商品、商品棚、トランザクション、変更の注文状況、顧客サービスおよび他の大規模な国家介入やメンテナンスの調達に直面するだろう。各論理状態の間に強い関連性、など:出荷前処理後の払い戻し動作は、図に示した払い戻し処理順序完全に異なっています。

 

図1の払い戻しフローチャート。

このように、複雑な状態管理は、ビジネスが変化するシーンの需要に依存しています。スタートアップ企業では、ハードコードされてもよく、状態は操作ごとに決定され、各操作は、論理リンクをカスタマイズします。事業の増加に伴い、カスタマイズされたリンクは、コードを維持することができない多数のプロセスは、汎用的な解決策のアイデアで、この時間は特に重要であり、明確にエレガントではない、有限状態マシン(有限状態機械、略称:FSM)は台湾に上陸を開始しました。

有限状態機械

 

   

また、有限状態機械として知られている(以下、FSMと呼ばれる)有限状態機械は、状態機械は略します。ウィキペディアは、数学的モデルは、状態や行動や、これらの状態間の転送などのアクションの有限数で定義します。

台湾でのこの問題のモデルとビジネス経験は非常に一貫しています。図1は、ステートマシンは他に、表現するために使用され得る、状態遷移図、状態遷移表を表すために使用されてもよいです。図2:

図の状態遷移表2

図から分かるように、FSMの有限状態遷移の抽象状態管理モデルによる操作。アクションは、特定の時点で実施すべき活動に記載されており、我々は、アクションの種類をまとめる次のとおりです。

  • 行動に:状態に入ります

  • 終了アクション:終了時の状態で

  • 入力処置:現在の状態と入力条件に依存

  • 遷移動作:特定の転送中に実行

FSMの枠組みの中で、パイプラインフローの転送状態を抽象化し、構成され、複雑な状態遷移図は、隣接状態の最小単位に分割されます。これは、このメカニズムにレゴの建物が複雑な状態遷移図に組み合わせることができると等価です。

2春のステートマシン

 

   

春のステートマシンフレームワークは、私たちが春のSMを達成する方法を見て、より多くの階層構造にステートマシン、ステートマシンの開発プロセスを簡素化するために、ヘルプの開発者にあります。図3に示されているレゴ最小の最初のモデル:

図3のSMの最小単位。

状態STATE1、STATE2やイベントEVENT1、EVENT2がある場合。イベント駆動状態の流れ。来春SMの次の主要なコードを分析します。

2.1はポンポン頼ります

 

    

<dependencies>
    <dependency>
        <groupId>org.springframework.statemachine</groupId>
        <artifactId>spring-statemachine-core</artifactId>
        <version>2.1.3.RELEASE</version>
    </dependency>
</dependencies>

2.2ステートマシンを作成します

 

   

    注釈を経由して、マシンの登録状況に三つの要素:ソース、ターゲット、イベント

2.3ノートリスナー

 

  

    リスナーが入射を感知することによって、適切な治療に関連ロジック

ステートマシンを実行している2.4

 

   

3つの取引台湾

 

   

トレーディング・シーンでは、それは国家の役割の取引抽象的なシーンに合わせて、独自のステートマシンフレームワークを定義します。

  • 初期状態、目標状態:状態の関係

  • 役割:異なる役割は、売り手、買い手、システム、顧客サービスとして、別の操作権限を持っています

  • 操作:対応するイベント

  • ハンドラ:運用イベントを達成するために適切な行動

イベントとして定義することができ、我々はそう:Aの役割は、初期状態S1で、オペレーションOP1を実行し、プロセスにターゲット状態S2への状態の実装を成功さをハンドラを使用します。

3.1パーソナライズ抽象FSM

 

   

個々のトランザクションのニーズを考慮して、状態テーブルは、条件を拡大し、同時にJavaリフレクション・ハンドラ、さらに構造化ロジックコードを使用します。このステップの後、我々は、データベースに格納されたデータをテンプレートすることができます。図4:

図4 FSMは、トランザクション状態テーブルを設定し、

100行より少ないコアコード実行エンジンFSMの変換を介し。サービス・ハンドラを登録することで、柔軟な運用能力を拡張することができます。状態は、多くの時間を節約しているコードの品質保証、エンジニアリングおよび回帰テストのためのマニュアルのコーディング、に頼ることなく、状態テーブルを介して行われ維持されます。また、駅のコンフィギュレーションを実現するための方法を用意しました。

3.2台湾対応ビジネス

 

   

基本的なスキルで台湾沈殿、どのように達成するために?どのようにビジネスを通電し、台湾では、ビジネスはそれに満足しましたか?

次の例を見て、ベースのトランザクション、C2C、自己は両事業間の大きな違いである、彼らは、ビジネスプロセスの完全に異なるセットを持っています。C2C取引プラットフォームは両端で固定する必要があり、より多くの自己保証は、購入者の株式を与えることです。図5に示すスタータプロセス。

図5トランザクション処理の簡易版

テーブル容量限り、我々は図の状態をすることができるように描かれ、次いで、対応するフロー状態テーブルの構成も製造されてによるFSM。ハンドラは唯一の偉大な状態と事業を分離、現在の操作のビジネスロジックに集中する必要があります。

新しいビジネスの上に、ステーションは2日以内にライン上のステートマシンの開発を完了するために、一人の人物を設定することができますと言っても過言ではありません。これは、駅の効率です。

4まとめ

 

 

 

  

FSMは、流れの状態の複雑なビジネス上の問題を解決し、取引業務を遂行するために、例えば。しかし、貿易よりもFSMアプリケーションシナリオはるか。このような顧客サービスの仕事のため、商品の状態など。しかし、すべてのプロセスのは、FSMの使用を必要とする、ビジネス・プロセスが同じだけで、台湾より適切な戦略10-100-段階の企業のように、妥協をする必要があります。

一方でFSMはフレームだけでなく、その周辺のビジネスロジックのセットに構築する必要があります。状態転送プロセスでは、ビジネスロジックは、私たちの筋肉です。骨格フレームワークの制約と同じように、私たちは、そのための技術は、より健康的に成長し、多分駅の魅力です。

参考ます。https://projects.spring.io/spring-statemachine/

公開された18元の記事 ウォンの賞賛588 ビュー103万+

おすすめ

転載: blog.csdn.net/hellozhxy/article/details/103979671