Mulesoft-message-processor-and-script-components

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

MuleSoft-メッセージプロセッサおよびスクリプトコンポーネント

スクリプトモジュールは、ユーザーがMuleでスクリプト言語を使用できるようにします。 簡単に言えば、スクリプトモジュールはスクリプト言語で記述されたカスタムロジックを交換できます。 スクリプトは、実装またはトランスフォーマーとして使用できます。 式の評価、つまりメッセージルーティングの制御に使用できます。

ESB Muleには、次のサポートされているスクリプト言語があります-

  • グルーヴィーな
  • Python
  • JavaScript
  • Ruby

スクリプトモジュールのインストール方法

実際、Anypoint Studioにはスクリプトモジュールが付属しています。 Muleパレットでモジュールが見つからない場合は、 + Add Module を使用して追加できます。 追加後、Muleアプリケーションでスクリプトモジュール操作を使用できます。

実装例

前述のように、ワークスペースを作成するためにモジュールをキャンバスにドラッグアンドドロップし、アプリケーションで使用する必要があります。 以下はその例です-

スクリプトモジュールのインストール

HTTPリスナーコンポーネントの構成方法は既に知っています。したがって、スクリプトモジュールの構成について説明します。 スクリプトモジュールを構成するには、以下の手順に従う必要があります-

ステップ1

Muleパレットからスクリプトモジュールを検索し、上記のようにスクリプトモジュールの EXECUTE 操作をフローにドラッグします。

ステップ2

次に、同じ設定をダブルクリックして、「構成の実行」タブを開きます。

  • ステップ3 *
  • 一般*タブの下で、以下に示すように*コードテキストウィンドウ*でコードを提供する必要があります-

コードテキストウィンドウ

  • ステップ4 *

最後に、実行コンポーネントから Engine を選択する必要があります。 エンジンのリストは以下のとおりです-

  • グルーヴィーな
  • Nashorn(javaScript)
  • jython(Python) *jRuby(ルビー)

構成XMLエディターでの上記の実行例のXMLは次のとおりです-

<scripting:execute engine="jython" doc:name = "Script">
   <scripting:code>
      def factorial(n):
         if n == 0: return 1
      return n* factorial(n-1)
      result = factorial(10)
   </scripting:code>
</scripting:execute>

メッセージソース

Mule 4にはMule 3メッセージよりも単純化されたモデルがあり、情報を上書きすることなく、コネクタ間で一貫した方法でデータを簡単に操作できます。 ESB Mule 4のメッセージモデルでは、各ESB Muleイベントは2つのもので構成されています:メッセージとそれに関連する変数

ESB Muleメッセージにはペイロードとその属性があり、属性は主にファイルサイズなどのメタデータです。

また、変数は、演算結果、補助値などの任意のユーザー情報を保持します。

インバウンド

Mule 3のインバウンドプロパティは、Mule 4のAttributesになりました。 インバウンドプロパティはメッセージソースから取得したペイロードに関する追加情報を保存することを知っていますが、これはMule 4では属性の助けを借りて行われています。 属性には次の利点があります-

  • 属性が強く型付けされているため、属性の助けを借りて、利用可能なデータを簡単に確認できます。
  • 属性に含まれる情報に簡単にアクセスできます。

以下は、Mule 4の典型的なメッセージの例です-

インバウンド

アウトバウンド

Mule 3のアウトバウンドプロパティは、追加データを送信するためにMuleコネクタとトランスポートによって明示的に指定される必要があります。 しかし、Mule 4では、それぞれにDataWeave式を使用して、それぞれを個別に設定できます。 メインフローで副作用は発生しません。

たとえば、以下のDataWeave式はHTTP要求を実行し、メッセージプロパティを設定する必要なくヘッダーとクエリパラメーターを生成します。 これは以下のコードに示されています-

<http:request path = "M_issue" config-ref="http" method = "GET">
   <http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
   <http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>

メッセージプロセッサ

ESB Muleがメッセージソースからメッセージを受信すると、メッセージプロセッサの作業が開始されます。 ESB Muleは、1つ以上のメッセージプロセッサを使用して、フローを介してメッセージを処理します。 メッセージプロセッサの主なタスクは、ESB Muleフローを通過するメッセージを変換、フィルタリング、強化、処理することです。

Muleプロセッサの分類

以下は、機能に基づいてMuleプロセッサのカテゴリです-

  • コネクタ-これらのメッセージプロセッサはデータを送受信します。 また、標準プロトコルまたはサードパーティAPIを介して外部データソースにデータをプラグインします。
  • コンポーネント-これらのメッセージプロセッサは本質的に柔軟性があり、Java、JavaScript、Groovy、Python、Rubyなどのさまざまな言語で実装されたビジネスロジックを実行します。
  • フィルタ-メッセージをフィルタリングし、特定の基準に基づいて、特定のメッセージのみをフローで処理し続けることができます。
  • ルーター-このメッセージプロセッサは、ルーティング、リシーケンシング、またはスプリットするメッセージのフローを制御するために使用されます。
  • スコープ-フロー内のきめ細かい動作を定義するために、基本的にコードのスニペットをラップします。
  • *トランスフォーマー-トランスフォーマーの役割は、システム間の通信を容易にするためにメッセージペイロードタイプとデータ形式を変換することです。
  • ビジネスイベント-基本的に、主要業績評価指標に関連するデータをキャプチャします。
  • 例外戦略-これらのメッセージプロセッサは、メッセージ処理中に発生するあらゆるタイプのエラーを処理します。