CRNP 定義標準七層開放系統互聯模式 (OSI) 協定堆疊的應用層、展示層和會議層。傳輸層必須為 TCP,而網路層必須為 IP。CRNP 與資料連接層和實體層無關。在 CRNP 中所交換的所有應用層訊息均以 XML 1.0 為基礎。
CRNP 提供產生叢集重新配置事件、透過叢集路由事件,並將事件傳送至感興趣的用戶端的機制和常駐程式。
cl_apid 常駐程式與用戶端互動。Sun Cluster 資源群組管理員 (RGM) 產生叢集重新配置事件。此常駐程式使用 syseventd 在每個本機節點上傳輸事件。cl_apid 常駐程式透過 TCP/IP 使用可延伸標記語言 (XML) 與感興趣的用戶端進行通訊。
下圖顯示 CRNP 元件之間的事件流程。在此圖表中,一個用戶端在叢集節點 2 上執行,另一個用戶端在叢集之外的電腦上執行。
用戶端透過向伺服器傳送註冊訊息 (SC_CALLBACK_RG) 來初始化通訊。此註冊訊息指定用戶端要接收通知的事件類型,還指定可以將事件發送至的通訊埠。註冊連線的來源 IP 與指定的通訊埠一起形成回呼位址。
每當叢集內產生用戶端感興趣的事件,伺服器便會在其回呼位址 (IP 與通訊埠) 中聯絡用戶端,並將事件 (SC_EVENT) 發送給該用戶端。該伺服器是在叢集自身內執行的具有高度可用性的伺服器。該伺服器將用戶端註冊儲存在儲存體中,該儲存體在重新啟動叢集之後仍會持久性存在。
用戶端透過將註冊訊息 (SC_CALLBACK_RG,其中包含 REMOVE_CLIENT 訊息) 發送給伺服器來取消註冊。在用戶端接收到來自伺服器的 SC_REPLY 訊息之後會關閉連接。
CRNP 使用三種基於 XML 的訊息類型。這些訊息的使用方法在下表中進行說明。在本章後面對這些訊息類型進行了更加詳細的說明。
CRNP 訊息類型 |
描述 |
---|---|
SC_CALLBACK_REG |
此訊息包括四種形式:ADD_CLIENT、REMOVE_CLIENT、ADD_EVENTS 和 REMOVE_EVENTS。其中每一種形式均包含下列資訊:
ADD_CLIENT、ADD_EVENTS 和 REMOVE_EVENTS 也包含無限的事件類型清單,每種事件類型包含以下資訊︰
事件類別與事件子類別一起定義唯一的「事件類型」。產生 SC_CALLBACK_REG 類別的文件類型定義 (DTD) 為 SC_CALLBACK_REG。附錄 FCRNP 的文件類型定義 更詳細地說明了此 DTD。 |
SC_REPLY |
此訊息包含下列資訊︰
產生 SC_REPLY 類別的 DTD 為 SC_REPLY。附錄 FCRNP 的文件類型定義 更詳細地說明了此 DTD。 |
SC_EVENT |
此訊息包含下列資訊︰ SC_EVENT 中的值尚未經過分類。產生 SC_EVENT 類別的 DTD 為 SC_EVENT。附錄 FCRNP 的文件類型定義 更詳細地說明了此 DTD。 |