1. 序章

Muleは、エンタープライズサービスバス(ESB)ソリューションを提供するJavaベースの製品です。 EclipseプラグインであるAnypointStudioを使用してMuleアプリケーションを開発できます。

ESB とフローを簡単に紹介した後、Mule のさまざまなタイプのフローと、各タイプを使用する場所について説明します。

2. エンタープライズサービスバス(ESB)

ESBは、独立したソフトウェアを接続する仲介レイヤーです。これらのアプリは、多くの場合、異なるプロトコルを使用します。 その結果、ESBはデータの変換とルーティングを処理します。 これにより、分離されたサービスの作成が可能になります。 したがって、各サービスは、別のサービスがその出力をどのように消費するかを心配する必要はありません。

データが正しい形式であることを確認するのは、ESB の仕事です。 Mule ESBの詳細については、以前のチュートリアルを参照してください。

Components は、Muleアプリケーションの構成要素です。 したがって、データの変換とルーティングを担当するのはこれらのコンポーネントです。 AnypointStudioの右側にあるMulePaletteからMuleアプリケーションにコンポーネントを追加します。

その後、コンポーネントはフローにグループ化されます。 Muleアプリケーションは、1つ以上のフローで構成されます。

3. フローとは何ですか?

フローは、Muleコンポーネントの接続されたコレクションです。

これは通常、インバウンドエンドポイントコンポーネント(メッセージの発信元)とアウトバウンドエンドポイントコンポーネントで構成されます。 したがって、フローは、メッセージが発生する可能性のあるさまざまな処理段階を担当します。

各フローには、処理戦略例外処理戦略が関連付けられている場合があります。 フローは、フロー参照コンポーネントを使用して別のフローを参照することもできます。

Muleには3つの異なるタイプのフローがあります。

  • サブフロー–親フローの処理および例外処理戦略を継承する同期フロー
  • 同期フロー–処理および例外処理戦略を備えた同期フロー
  • 非同期フロー–処理および例外処理戦略を備えた非同期フロー

4. サブフロー

サブフローを使用して、共通のロジックをグループ化します。 サブフローは同期的に処理されます; つまり、呼び出しフローの実行は、サブフローが完了するまで停止します。

具体的には、ミュールパレットからサブフローを追加できます。

サブフローは、フロー参照コンポーネントを使用して呼び出されます。

さらに、 サブフローは、呼び出し元のフローの処理ストラテジーと例外処理ストラテジーを継承します。 複数の異なるフローからサブフローを呼び出すことができます。 これらの戦略を継承したくない場合は、同期フローを呼び出すことができます。

5. 同期フロー

サブフローのように、 同期フローも同期的に処理されます。 これは、同期フローを呼び出す場合、親フローが実行を再開する前に完了する必要があることを意味します。

通常のフローを追加することで、Muleアプリケーションに同期フローを追加します。 「同期フロー」コンポーネントはありません。 通常のフローコンポーネントを追加します。

同期フローを呼び出すには、フロー参照コンポーネントを再度使用します。

サブフローとは異なり、呼び出しフローの処理および例外処理戦略を継承しません。 したがって、呼び出しフローの処理および例外処理戦略は、このタイプのフローの動作に影響を与えません。

これらの理由から、同期フローを使用して処理されるメッセージは単一のスレッドで実行されるため、このタイプのフローはトランザクション処理に最適です。

6. 非同期フロー

非同期フローは、呼び出しフローと並行して実行されます。 つまり、それらは非同期的に処理されます。

同期フローを追加するのと同じ方法で、非同期フローをMuleアプリケーションに追加します。 したがって、フローを非同期にするのは、非同期スコープ内からフローを呼び出すことです。 これを行うには、フロー参照コンポーネント非同期コンポーネントでラップします。

同期フローと同様に、呼び出しフローの処理および例外処理戦略を継承しません。

さらに、非同期フローを使用して処理されるメッセージは複数のスレッドで実行されるため、このタイプのフローは、電子メールの送信やI/O操作の実行などの時間のかかるタスクに最適です。

7. 結論

この短いチュートリアルでは、Muleのさまざまなタイプのフローの特性について説明しました。

詳細については、公式MuleWebサイトをご覧ください。