CRNP 定义了标准的七层开放式系统互连 (OSI) 协议栈的应用层、表示层和会话层。传输层必须为 TCP,网络层必须为 IP。CRNP 独立于数据链路层和物理层上。在 CRNP 中交换的所有应用层消息都基于 XML 1.0。
CRNP 提供了一些机制和守护进程,用于生成群集重新配置事件、通过群集路由事件并将其发送给感兴趣的客户机。
cl_apid 守护进程与客户机交互。Sun Cluster 资源组管理器 (RGM) 生成群集重配置事件。此守护进程使用 syseventd 来传送每个本地节点上的事件。cl_apid 守护进程使用可扩展标记语言 (XML) 通过 TCP/IP 与感兴趣的客户机进行通信。
下图显示了 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。附录 F,CRNP 的文档类型定义 中对此 DTD 进行了详细介绍。 |
SC_REPLY |
此类消息包含以下信息:
生成 SC_REPLY 类的 DTD 是 SC_REPLY。附录 F,CRNP 的文档类型定义 中对此 DID 进行了详细介绍。 |
SC_EVENT |
此类消息包含以下信息: SC_EVENT 中的值未定义类型。生成 SC_EVENT 类的 DTD 是 SC_EVENT。附录 F,CRNP 的文档类型定义 中对此 DID 进行了详细介绍。 |