ESB Muleのさまざまな種類のフロー

ラバのさまざまなタイプのフロー

1. 前書き

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

ESBとフローの簡単な紹介の後、we’ll talk about the different types of flows in Mule, and where we use each type.

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

An ESB is a mediating layer connecting independent pieces of software.これらのアプリは、多くの場合、異なるプロトコルを使用します。 その結果、ESBはデータの変換とルーティングを処理します。 これにより、分離されたサービスを作成できます。 したがって、各サービスは、別のサービスがその出力をどのように消費するかを心配する必要はありません。

データが正しい形式であることを確認するのはESBの仕事です。 Mule ESBの詳細については、our previous tutorialを参照してください。

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

image

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

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

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

通常、(メッセージの発信元の)インバウンドエンドポイントコンポーネントとアウトバウンドエンドポイントコンポーネントで構成されます。 Therefore, the flow is responsible for the various processing stages in which the message may undergo.

各フローには、processing strategyexception handling strategyが関連付けられている場合があります。 フローは、flow reference componentを使用して別のフローを参照する場合もあります。

ESB Muleには3種類のフローがあります:

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

  • 同期フロー-処理および例外処理戦略を備えた同期フロー

  • 非同期フロー-処理および例外処理戦略を備えた非同期フロー

4. サブフロー

サブフローを使用して、共通ロジックをグループ化します。 Subflows are processed synchronously;つまり、呼び出しフローの実行は、サブフローが完了するまで停止します。

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

image

サブフローは、flow reference componentを使用して呼び出されます。

image

さらに、subflows inherit the processing strategies and exception handling strategies of the calling flow. 複数の異なるフローからサブフローを呼び出すことができます。 これらの戦略を継承したくない場合は、同期フローを呼び出すことができます。

5. 同期フロー

サブフローと同様に、a synchronous flow is also processed synchronously. これは、同期フローを呼び出す場合、親フローが実行を再開する前に完了する必要があることを意味します。

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

image

同期フローを呼び出すために、再びflow reference componentを使用します。

image

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

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

6. 非同期フロー

非同期フローは、呼び出しフローと並行して実行されます。つまり、they are processed asynchronously.

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

image

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

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

7. 結論

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

詳細については、the official Mule websiteをご覧ください。