1前書き

ESB Muleは、ESB(Enterprise Service Bus)ソリューションを提供するJavaベースの製品です。 Eclipseプラグインのhttps://www.mulesoft.com/platform/studio[Anypoint Studio]を使ってESB Muleアプリケーションを開発できます。

ESBとフローについて簡単に紹介した後、

Muleのさまざまなタイプのフローと、それぞれのタイプを使用する場所について説明します。


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

  • ESBは独立したソフトウェアを接続する仲介層です** これらのアプリは異なるプロトコルを使うことがよくあります。その結果、ESBはデータの変換とルーティングを行います。これにより、分離されたサービスを作成することができます。したがって、各サービスは、他のサービスがその出力をどのように消費するかについて心配する必要はありません。

データが正しい形式であることを確認するのはESBの仕事です。

ESB Mule ESBの詳細については、https://www.baeldung.com/mule-esb[前回のチュートリアル]を参照してください。


Components

はESB Muleアプリケーションの構成要素です。したがって、データの変換とルーティングを担当するのはこれらのコンポーネントです。

Anypoint Studioの右側にある

Mule Palette

からMuleアプリケーションにコンポーネントを追加します。

リンク:/uploads/m1.png%20381w[]

コンポーネントはその後

flows

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

** 3フローとは

  • フローはESB Muleコンポーネントの連結した集合です。

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

各フローには、https://docs.mulesoft.com/mule-user-guide/v/3.5/flow-processing-strategies[処理戦略]とhttps://docs.mulesoft.com/mule-があります。それに関連したユーザーガイド/v/3.5/catch-exception-strategy[例外処理戦略]。フローはhttps://docs.mulesoft.com/mule-user-guide/v/3.9/flow-reference-component-reference[flow reference component]を使用して別のフローを参照することもできます。

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

  • サブフロー – 処理と例外を継承する同期フロー

親フローの処理戦略
** 同期フロー – その処理と同期フロー

例外処理戦略
** 非同期フロー – その処理と非同期フロー

例外処理戦略


4サブフロー

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

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

リンク:/uploads/m2.png%20383w[]

サブフローは、

flow参照コンポーネント

を使用して呼び出されます。

リンク:/uploads/m3.png%20400w[]

さらに、


サブフローは呼び出し側フローの処理戦略と例外処理戦略を継承します。


複数の異なるフローからサブフローを呼び出すことができます。これらの戦略を継承したくない場合は、同期フローと呼ぶことができます。


5同期フロー

サブフローと同様に、


同期フローも同期的に処理されます。


これは、同期フローを呼び出すとき、親フローが実行を再開する前に完了しなければならないことを意味します。

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

flowコンポーネント

を追加します。

リンク:/uploads/m4.png%20379w[]

同期フローを呼び出すには、ここでも

flow参照コンポーネント

を使用します。

リンク:/uploads/m5.png%20400w[]

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

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


6. 非同期フロー

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

同期フローを追加するのと同じ方法で、ESB Muleアプリケーションに非同期フローを追加します。したがって、フローを非同期にするのは、非同期スコープ内から呼び出すということです。これを行うには、https://docs.mulesoft.com/mule-user-guide/v/3.6/async-scope-reference[

async component

]に

flow参照component

をラップします。

リンク:/uploads/m6.png%20400w[]

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

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

7.まとめ

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

詳細はhttps://www.mulesoft.com/[the Mule公式ウェブサイト]をご覧ください。