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

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

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

  • Groovy
  • Python
  • JavaScript
  • Ruby

スクリプトモジュールをインストールする方法は?

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

実装例

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

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

Step 1

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

Step 2

次に、同じものをダブルクリックして、[構成の実行]タブを開きます。

Step 3

General タブ、コードを提供する必要があります Code text window 以下に示すように-

Step 4

最後に、私たちは選択する必要があります Engine実行コンポーネントから。エンジンのリストは以下の通りです−

  • Groovy
  • Nashorn(javaScript)
  • jython(Python)
  • jRuby(Ruby)

構成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メッセージよりも単純化されたモデルを備えているため、情報を上書きすることなく、コネクタ間で一貫した方法でデータを操作することが容易になります。Mule 4メッセージモデルでは、各Muleイベントは次の2つで構成されます。a message and variables associated with it

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

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

インバウンド

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

  • 属性は強く型付けされているため、属性を使用すると、使用可能なデータを簡単に確認できます。

  • 属性に含まれる情報に簡単にアクセスできます。

以下は、Mule4の典型的なメッセージの例です。

アウトバウンド

追加のデータを送信するには、Mule3のアウトバウンドプロパティを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>

メッセージプロセッサ

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

ミュールプロセッサの分類

以下は、機能に基づくミュールプロセッサのカテゴリです-

  • Connectors−これらのメッセージプロセッサはデータを送受信します。また、標準プロトコルまたはサードパーティAPIを介してデータを外部データソースにプラグインします。

  • Components −これらのメッセージプロセッサは本質的に柔軟性があり、Java、JavaScript、Groovy、Python、Rubyなどのさまざまな言語で実装されたビジネスロジックを実行します。

  • Filters −メッセージをフィルタリングし、特定の基準に基づいて、特定のメッセージのみがフロー内で引き続き処理されるようにします。

  • Routers −このメッセージプロセッサは、ルーティング、リシーケンス、または分割するメッセージのフローを制御するために使用されます。

  • Scopes −基本的に、フロー内のきめ細かい動作を定義する目的でコードのスニペットをラップします。

  • Transformers −トランスフォーマーの役割は、メッセージのペイロードタイプとデータ形式を変換して、システム間の通信を容易にすることです。

  • Business Events −基本的に、主要業績評価指標に関連するデータを収集します。

  • Exception strategies −これらのメッセージプロセッサは、メッセージ処理中に発生するあらゆるタイプのエラーを処理します。