CRNP は、標準の 7 層 OSI (Open System Interconnect) プロトコルスタックにおけるアプリケーション層、プレゼンテーション層、およびセッション層を定義します。トランスポート層は TCP でなければならず、ネットワーク層は IP でなければなりません。CRNP は、データリンク層および物理層とは無関係です。CRNP 内で交換されるアプリケーション層メッセージはすべて、XML 1.0 をベースとしたものです。
CRNP は、クラスタ再構成イベント生成、クラスタへの配信、それらのイベントを要求しているクライアントへの送信を行うメカニズムとデーモンを提供します。
クライアントとの通信を行うのは、cl_apid デーモンです。クラスタ再構成イベントの生成は、Sun Cluster Resource Group Manager (RGM) によって行われます。このデーモンは、syseventd を使用して各ローカルノードにイベントを転送します。cl_apid デーモンは、TCP/IP 上で XML (Extensible Markup Language) を使用して要求クライアントとの通信を行います。
次の図は、CRNP コンポーネント間のイベントの流れを簡単に示したものです。この図では、一方のクライアントはクラスタノード 2 で動作し、他方のクライアントはクラスタに属していないコンピュータ上で動作しています。
クライアントは、サーバーへ登録メッセージ (SC_CALLBACK_RG) を送信することによって通信を開始します。この登録メッセージは、通知を受信したいイベントタイプと、イベントの配信先として使用できるポートを指定するものです。登録用接続のソース IP と指定ポートから、コールバックアドレスが構成されます。
クライアントが配信を希望しているイベントがクラスタ内で生成されるたびに、サーバーはこのコールバックアドレス (IP とポート) を持つクライアントと通信を行い、イベント (SC_EVENT) をクライアントに配信します。サーバーには、そのクラスタ内で稼動している高可用マシンが使用されます。サーバーは、クラスタの再起動後も維持されるストレージにクライアントの登録情報を格納します。
登録解除を行う場合、クライアントはサーバーに登録メッセージ (REMOVE_CLIENT メッセージが入った SC_CALLBACK_RG) を送信します。サーバーから SC_REPLY メッセージを受け取ったあとで、クライアントは接続を閉じることができます。
CRNP は、3 種類の XML ベースのメッセージを使用します。次の表に、これらのメッセージの使用法を示します。これらのメッセージタイプの内容と使用法の詳細は、
CRNP メッセージのタイプ |
説明 |
---|---|
SC_CALLBACK_REG |
このメッセージには、4 つのフォーム、ADD_CLIENT、REMOVE_CLIENT 、ADD_EVENTS、および REMOVE_EVENTS を指定できます。これらの各フォームには、次の情報が含まれます。
ADD_CLIENT、ADD_EVENTS、および REMOVE_EVENTS には制約のないイベントタイプリストも含まれ、それぞれに次の情報が含まれます。
イベントクラスとイベントサブクラスにより一意の「イベントタイプ」 が定義されます。SC_CALLBACK_REG のクラスを生成する DID (ドキュメントタイプ定義) は、SC_CALLBACK_REG です。この DTD の詳細は、付録 F 「CRNP のドキュメントタイプ定義」を参照してください。 |
SC_REPLY |
このメッセージには次の情報が含まれます。
SC_REPLY のクラスを生成する DTD は SC_REPLY です。この DTD の詳細は、付録 F 「CRNP のドキュメントタイプ定義」 を参照してください。 |
SC_EVENT |
このメッセージには次の情報が含まれます。
SC_EVENT 内の値はタイプとしては分類されていません。SC_EVENT のクラスを生成する DTD は SC_EVENT です。この DTD の詳細は、付録 F 「CRNP のドキュメントタイプ定義」 を参照してください。 |