Sun Cluster 資料服務開發者指南 (適用於 Solaris 作業系統)

CRNP 概念

CRNP 定義標準七層開放系統互聯模式 (OSI) 協定堆疊的應用層、展示層和會議層。傳輸層必須為 TCP,而網路層必須為 IP。CRNP 與資料連接層和實體層無關。在 CRNP 中所交換的所有應用層訊息均以 XML 1.0 為基礎。

CRNP 如何工作

CRNP 提供產生叢集重新配置事件、透過叢集路由事件,並將事件傳送至感興趣的用戶端的機制和常駐程式。

cl_apid 常駐程式與用戶端互動。Sun Cluster 資源群組管理員 (RGM) 產生叢集重新配置事件。此常駐程式使用 syseventd 在每個本機節點上傳輸事件。cl_apid 常駐程式透過 TCP/IP 使用可延伸標記語言 (XML) 與感興趣的用戶端進行通訊。

下圖顯示 CRNP 元件之間的事件流程。在此圖表中,一個用戶端在叢集節點 2 上執行,另一個用戶端在叢集之外的電腦上執行。

圖 12–1 CRNP 元件之間的事件流程

顯示 CRNP 如何工作的流程圖

CRNP 語義

用戶端透過向伺服器傳送註冊訊息 (SC_CALLBACK_RG) 來初始化通訊。此註冊訊息指定用戶端要接收通知的事件類型,還指定可以將事件發送至的通訊埠。註冊連線的來源 IP 與指定的通訊埠一起形成回呼位址。

每當叢集內產生用戶端感興趣的事件,伺服器便會在其回呼位址 (IP 與通訊埠) 中聯絡用戶端,並將事件 (SC_EVENT) 發送給該用戶端。該伺服器是在叢集自身內執行的具有高度可用性的伺服器。該伺服器將用戶端註冊儲存在儲存體中,該儲存體在重新啟動叢集之後仍會持久性存在。

用戶端透過將註冊訊息 (SC_CALLBACK_RG,其中包含 REMOVE_CLIENT 訊息) 發送給伺服器來取消註冊。在用戶端接收到來自伺服器的 SC_REPLY 訊息之後會關閉連接。

以下圖解顯示用戶端與伺服器之間的通訊流程。

圖 12–2 用戶端與伺服器之間的通訊流程

顯示用戶端與伺服器之間通訊流程的流程圖

CRNP 訊息類型

CRNP 使用三種基於 XML 的訊息類型。這些訊息的使用方法在下表中進行說明。在本章後面對這些訊息類型進行了更加詳細的說明。

CRNP 訊息類型 

描述 

SC_CALLBACK_REG

此訊息包括四種形式:ADD_CLIENTREMOVE_CLIENTADD_EVENTSREMOVE_EVENTS。其中每一種形式均包含下列資訊:

 

  • 協定版本

  • ASCII 格式的回呼通訊埠 (非二進制格式)

ADD_CLIENTADD_EVENTSREMOVE_EVENTS 也包含無限的事件類型清單,每種事件類型包含以下資訊︰

 

  • 事件類別

  • 事件子類別 (可選擇)

  • 名稱與值對的清單 (可選擇)

事件類別與事件子類別一起定義唯一的「事件類型」。產生 SC_CALLBACK_REG 類別的文件類型定義 (DTD) 為 SC_CALLBACK_REG附錄 FCRNP 的文件類型定義 更詳細地說明了此 DTD。

SC_REPLY

此訊息包含下列資訊︰ 

  • 協定版本

  • 錯誤碼

  • 錯誤訊息

產生 SC_REPLY 類別的 DTD 為 SC_REPLY附錄 FCRNP 的文件類型定義 更詳細地說明了此 DTD。

SC_EVENT

此訊息包含下列資訊︰ 

  • 協定版本

  • 事件類別

  • 事件子類別

  • 供應商

  • 出版商

  • 名稱與值對清單 (0 個或更多個名稱與值對的資料結構)

    • 名稱 (字串)

    • 值 (字串或字串陣列)

SC_EVENT 中的值尚未經過分類。產生 SC_EVENT 類別的 DTD 為 SC_EVENT附錄 FCRNP 的文件類型定義 更詳細地說明了此 DTD。