ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

プロトコル拡張 - アーキテクチャ

トラフィックレベルの拡張性を実現するために、Citrix ADCアプライアンスでのトラフィック処理は、個別の処理モジュールのパイプラインとして公開されます。トラフィックは、入力から出力にトラフィックを処理するにつれて、トラフィックがフローします。パイプライン内のこれらのモジュールは、共有なしモデルに従います。メッセージパッシングは、パイプライン内の 1 つのモジュールから次のモジュールにトラフィックデータを送信するために使用されます。

トラフィック処理パイプラインの特定のポイントは拡張可能であるため、コードを追加してCitrix ADCの動作をカスタマイズできます。

ローカライズされた画像

デフォルトでは、トラフィックはコードを追加しないプログラマブルモジュールをバイパスします。

ローカライズされた画像

ビヘイビア

トラフィック処理をカスタマイズするためのプログラマブルインターフェイスは、動作と呼ばれます。動作は、基本的に、Citrix ADCアプライアンスで使用できる一般的なプログラマブルパターンの形式化です。ビヘイビアは、事前に定義された一連のイベントコールバック関数で構成されます。動作に適合するコールバック関数を提供することで、動作を実装できます。

たとえば、TCP クライアントの動作は、TCP クライアントデータストリームイベントを処理するコールバック関数 (on_data) で構成されます。TCP ベースのプロトコルに Message Based Load Balancing (MBLB) を実装するには、このコールバック関数のコードを追加して、クライアントからの TCP データストリームを処理し、バイトストリームをプロトコルメッセージに解析します。

コンテキスト:

ビヘイビア内のコールバック関数は、処理モジュールの状態であるコンテキストで呼び出されます。コンテキストは、処理モジュールのインスタンスです。たとえば、TCP クライアント動作コールバックは、クライアント TCP 接続ごとに異なるコンテキストで呼び出されます。

ペイロード:

コンテキストに加えて、ビヘイビアコールバックは他の引数を持つことができます。通常、残りの引数はペイロードとして渡されます。ペイロードは、すべての引数のコレクションです。

したがって、プログラマブル処理モジュールのインスタンスは、インスタンス状態とイベントコールバック関数、つまりコンテキストと動作の組み合わせとして見ることができます。トラフィックはイベントペイロードとしてパイプラインを通過します。

Citrix ADC API拡張機能については、 Citrix ADC拡張APIリファレンスを参照してください

次のコードスニペットは、TCP クライアントデータストリームイベントを処理するユーザー定義関数を示しています。コンテキストとペイロードは、Citrix ADCコードによって関数に渡されます。このコードは、すべての呼び出しで受信した TCP データを、パイプライン内の次の処理モジュールコンテキストに転送するだけです。この場合、次のモジュールは負荷分散(LB)コンテキストであり、これはCitrix ADCネイティブモジュールです。

function client.on_data(ctxt, payload) ns.send(ctxt.output, "DATA", {data = payload.data}) end
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
プロトコル拡張 - アーキテクチャ