Mulesoft-core-components-and-their-configuration

提供:Dev Guides
移動先:案内検索

MuleSoft-コアコンポーネントと構成

Muleの最も重要な機能の1つは、コンポーネントを使用してルーティング、変換、および処理を実行できることです。そのため、さまざまな要素を結合するMuleアプリケーションの構成ファイルのサイズは非常に大きくなります。

ESB Muleが提供する構成パターンのタイプは次のとおりです-

  • シンプルなサービスパターン
  • ブリッジ
  • バリデーター
  • HTTPプロキシ
  • WSプロキシ

コンポーネントの構成

Anypoint studioでは、以下の手順に従ってコンポーネントを構成できます-

ステップ1

ESB Muleアプリケーションで使用したいコンポーネントをドラッグする必要があります。 たとえば、ここでは次のようにHTTPリスナーコンポーネントを使用します-

コンポーネントの構成

ステップ2

次に、コンポーネントをダブルクリックして、構成ウィンドウを取得します。 HTTPリスナーの場合、それは以下に示されています-

設定ウィンドウ

  • ステップ3 *

プロジェクトの要件に従ってコンポーネントを構成できます。 たとえば、HTTPリスナーコンポーネントに対して行った-

HTTPリスナーコンポーネント

コアコンポーネントは、Muleアプリのワークフローの重要な構成要素の1つです。 ESB Muleイベントを処理するためのロジックは、これらのコアコンポーネントによって提供されます。 Anypoint studioでは、これらのコアコンポーネントにアクセスするには、以下に示すように、Muleパレットからコアをクリックします-

App Mule Palette

以下は、さまざまな*コアコンポーネントとMule 4 *での動作です-

カスタムビジネスイベント

このコアコンポーネントは、Muleアプリでビジネストランザクションを処理するメッセージプロセッサだけでなく、フローに関する情報の収集にも使用されます。 言い換えると、カスタムビジネスイベントコンポーネントを使用して、次の作業フローを追加できます-

  • メタデータ
  • 主要業績評価指標(KPI)

KPIを追加する方法は?

ESB MuleアプリのフローにKPIを追加する手順は次のとおりです-

  • ステップ1 *-Muleアプリのワークフローにカスタムビジネスイベントコンポーネントを追加するには、Mule *パレット→コア→コンポーネント→カスタムビジネスイベント*に従います。
  • ステップ2 *-コンポーネントをクリックして開きます。
  • ステップ3 *-次に、表示名とイベント名の値を指定する必要があります。
  • ステップ4 *-メッセージペイロードから情報をキャプチャするには、次のようにKPIを追加します-
  • KPIの名前(キー)(_tracking:meta-data_要素)と値を指定します。 この名前は、ランタイムマネージャーの検索インターフェイスで使用されます。
  • ESB Mule式の値を指定します。

次の表は、名前と値を持つKPIのリストで構成されています-

Name Expression/Value
Student RollNo #[payload[‘RollNo’]]
Student Name #[payload[‘Name’]]

動的評価

このコアコンポーネントは、Muleアプリでスクリプトを動的に選択するために使用されます。 Transform Messageコンポーネントを介してハードコアスクリプトを使用することもできますが、Dynamic Evaluateコンポーネントを使用する方がより良い方法です。 このコアコンポーネントは次のように動作します-

  • まず、別のスクリプトを生成する式を評価します。
  • 次に、そのスクリプトを評価して最終結果を求めます。

このようにして、ハードコーディングするのではなく、動的にスクリプトを選択できます。

Idクエリパラメーターを使用してデータベースからスクリプトを選択し、そのスクリプトを_MyScript_という名前の変数に保存する例を次に示します。 これで、動的評価コンポーネントは変数にアクセスしてスクリプトを呼び出し、 UName クエリパラメーターから名前変数を追加できるようになります。

フローのXML構成は以下のとおりです-

<flow name = "DynamicE-example-flow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <db:select config-ref = "dbConfig" target = "myScript">
      <db:sql>#["SELECT script FROM SCRIPTS WHERE ID =
         $(attributes.queryParams.Id)"]
      </db:sql>
   </db:select>
   <ee:dynamic-evaluate expression = "#[vars.myScript]">
      <ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
   </ee:dynamic-evaluate>
</flow>

スクリプトは、メッセージ、ペイロード、変数、属性などのコンテキスト変数を使用できます。 ただし、カスタムコンテキスト変数を追加する場合は、キーと値のペアのセットを提供する必要があります。

動的評価の構成

次の表は、動的評価コンポーネントを構成する方法を提供します-

Field Value Description Example
Expression DataWeave expression It specifies the expression to be evaluated into the final script. expression="#[vars.generateOrderScript]"
Parameters DataWeave expression It specifies key-value pairs. #[\{joiner: ' and ', id: payload.user.id}]

フロー参照コンポーネント

ESB Muleイベントを別のフローまたはサブフローにルーティングし、同じESB Muleアプリ内に戻す場合、フロー参照コンポーネントが適切なオプションです。

特徴

このコアコンポーネントの特徴は次のとおりです-

  • このコアコンポーネントにより、参照されるフロー全体を現在のフロー内の単一のコンポーネントのように扱うことができます。
  • ESB Muleアプリケーションを個別の再利用可能なユニットに分割します。 たとえば、フローは定期的にファイルをリストしています。 リスト操作の出力を処理する別のフローを参照する場合があります。
  • この方法では、処理ステップ全体を追加するのではなく、処理フローを指すフロー参照を追加できます。 以下のスクリーンショットは、フロー参照コアコンポーネントが ProcessFiles という名前のサブフローを指していることを示しています。

フロー参照コンポーネント

ワーキング

フロー参照コンポーネントの動作は、次の図の助けを借りて理解することができます-

メイン作業フロー

この図は、1つのフローが同じアプリケーション内の別のフローを参照する場合のMuleアプリケーションの処理順序を示しています。 ESB Muleアプリケーションのメイン作業フローがトリガーされると、ESB Muleイベントはフローを通過し、ESB Muleイベントがフロー参照に到達するまでフローを実行します。

フロー参照に到達すると、ESB Muleイベントは参照されたフローを最初から最後まで実行します。 ESB MuleイベントがRef Flowの実行を終了すると、メインフローに戻ります。

理解を深めるために、 Anypoint Studio でこのコンポーネントを使用してみましょう。 この例では、前の章で行ったように、HTTPリスナーを使用してメッセージを取得しています。 そのため、コンポーネントをドラッグアンドドロップして構成できます。 しかし、この例では、以下に示すように、サブフローコンポーネントを追加し、その下にペイロードコンポーネントを設定する必要があります-

Anypoint Studioのコンポーネント

次に、 Set Payload をダブルクリックして設定する必要があります。 ここでは、以下に示すように、「サブフローが実行されました」という値を与えています-

ペイロードの設定

サブフローコンポーネントを正常に構成したら、メインフローのペイロードを設定した後に設定するフロー参照コンポーネントが必要です。これは、以下に示すように、Muleパレットからドラッグアンドドロップできます-

サブフローコンポーネント

次に、フロー参照コンポーネントの構成中に、以下に示すように、[一般]タブで[フロー名]を選択する必要があります-

フロー名の選択

次に、このアプリケーションを保存して実行します。 これをテストするには、POSTMANに移動し、URLバーに http:/localhost:8181/FirstAPP と入力すると、「サブフローが実行されました」というメッセージが表示されます。

郵便配達員

ロガーコンポーネント

ロガーと呼ばれるコアコンポーネントは、エラーメッセージ、ステータス通知、ペイロードなどの重要な情報を記録することにより、Muleアプリケーションの監視とデバッグを支援します。 AnyPointスタジオでは、それらは Console に表示されます。

利点

ロガーコンポーネントのいくつかの利点は次のとおりです-

  • このコアコンポーネントは、作業フローのどこにでも追加できます。
  • 私たちが指定した文字列を記録するように設定できます。
  • 私たちが書いたDataWeave式の出力にそれを設定できます。
  • 文字列と式の任意の組み合わせに設定することもできます。

次の例では、ブラウザのSet Payloadに「Hello World」というメッセージが表示され、メッセージもログに記録されます。

ロガーコンポーネント

上記の例のフローのXML構成は次のとおりです-

<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
   <http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
   <set-payload value="Hello World"/>
   <logger message = "#[payload]" level = "INFO"/>
</flow>

転送メッセージコンポーネント

変換コンポーネントとも呼ばれる変換メッセージコンポーネントを使用すると、入力データを新しい出力形式に変換できます。

変換を構築する方法

私たちは次の2つの方法の助けを借りて変換を構築することができます-

ドラッグアンドドロップエディタ(グラフィカルビュー)-これは、変換を構築するための最初で最も使用される方法です。 この方法では、このコンポーネントのビジュアルマッパーを使用して、受信データ構造の要素をドラッグアンドドロップできます。 たとえば、次の図では、2つのツリービューに、入力と出力の予想されるメタデータ構造が表示されています。 入力を出力フィールドに接続する線は、2つのツリービュー間のマッピングを表します。

メッセージコンポーネントの転送

スクリプトビュー-変換の視覚的なマッピングは、Muleコードの言語であるDataWeaveを使用して表現することもできます。 集約、正規化、グループ化、結合、パーティション化、ピボット、フィルタリングなどの高度な変換のコーディングを行うことができます。 例は以下のとおりです-

変換ソース

このコアコンポーネントは、基本的に変数、属性、またはメッセージペイロードの入力および出力メタデータを受け入れます。 次の形式固有のリソースを提供できます-

  • CSV
  • スキーマ
  • フラットファイルスキーマ
  • JSON
  • オブジェクトクラス
  • シンプルタイプ
  • XMLスキーマ
  • Excelの列名とタイプ
  • 固定幅列の名前とタイプ