基于 RMI 的分布式消息传送模型
本文本的 RMI 分布式消息传送模型是以一个商业的消息传送平台为基础,将其分布组件
结构、点对点和发布/订阅模型、消息队列的实现描绘出来。这个商业消息传送平台暂且称
为 RMI 平台。
RMI 平台可以分为消息传送模块和业务模块。消息传送模块基于 RMI 技术,属于平台
的底层模块,主要实现纯 java 消息的分布式通信;而业务模块主要是建立在消息传送模块
之上的高层应用,包括画面显示、业务命令、日志记录、名称转换、MIB 网络信息收集等
功能。对于电力系统(一个实际应用)来说,除了 RMI 平台,还有其它子模块,如
MAP、CLI-GW、WEB 等,这些子模块都是通过 RMI 平台(具体讲是消息传送模块)将彼
此联结在一起,组成整个应用系统。如图一:
图一 电力系统模块构成
WEB 模块:以网页形式展现给用户,用于网络节点的信息设置等
MAP 模块:以视窗形式展现网络拓扑结构及对拓扑节点的管理等
CLI-GW 模块:用于收集或设置网络节点信息,如收集路由器信息等
以下开始介绍基于 RMI 技术的分布式消息传送系统(在 RMI 平台称为模块,但其也可
以脱离 RMI 平台自成系统,以下都称为消息传送系统)的结构。RMI 消息传送系统采用集
中式体系结构,它的组件构成如图二,各组件的说明如下:
1. EDServer:消息分发服务器。该组件的主要功能是建立与消息客户(如 APP,外
部 AP)的连接、保存客户的连接信息和标识、转发客户的消息。
2. APP:管理 FO 的应用(或叫容器),并作为 EDServer 的消息客户,它可以管理
多个 FO 组件。
3. FO:Function Object,消息的发送者或接收者。在 java 程序中,需要消息收发功
能的类可以作为一个 FO。FO 依赖于 APP,不能独立运行。在电力系统中,CLI-GW
模块就是一个 FO。
4. 外部 AP: 外部应用点,实质上是一个 FO,但它可以独立运行。在电力系统中,
MAP 模块就是一个外部 AP。