发布/订阅模式测控消息中间件系统设计

时间:2023-04-25 17:18:04 公文范文 来源:网友投稿

摘要 针对传统基于消息队列或共享内存模式的测控(TT&C消息中间件(MOM紧耦合、可扩展能力有限的问题,结合目前测控计算机系统信息交换特点,提出了功能分布式结构的发布/订阅(Pub/Sub模式测控消息中间件系统。取消了集中的发布/订阅服务器,将其功能嵌入到功能分布的处理机单元中,设计了主题全局注册、订阅全局广播和事件本地过滤的工作模式;并通过可靠多播协议实现其传输可靠性,通过软双工模式下的虚拟IP机制和加速推拉心跳检测机制实现其节点可靠性。实验表明此测控消息中间件系统的发布/订阅平均响应时间控制在100ms之内,多播协议丢包率控制在0.86×10-7左右,双工切换延时达到56ms,满足测控应用的强实时性和高可靠性要求。

关键词 发布/订阅;消息中间件;功能分布;可靠多播;心跳检测;虚拟IP

中图分类号 TP393.1

文献标志码 A

0引言

在航天测控领域,消息中间件主要用于保证测控中心计算机系统各功能子系统之间基于异构硬件和软件平台的信息交换[1]。传统测控消息中间件的实现模式有点对点、消息队列、远程过程调用和共享内存等。发布/订阅(Publish/Subscribe, Pub/Sub模式是消息中间件实现的一种全新模式,与传统模式相比具有异步、松耦合互联、多对多通信、体系结构开放和资源重组灵活等特点,适合目前测控计算机领域动态多变、异构的分布式交互环境[2]。

本文构建了适合测控计算机信息交换特点的发布/订阅消息中间件系统。设计了主题全局注册、订阅全局发布、事件本地过滤的工作模式以提高系统实时性,并通过可靠多播协议和加速心跳检测模式下的虚拟网际协议(Internet Protocol, IP机制实现其高可靠性。实验验证了系统的性能。

1测控计算机系统特点

计算机系统是测控系统的中枢神经,是信息获取、汇集、处理分析和实施指挥控制的基础单元。测控计算机系统与通用计算机系统有较大不同,表现为如下特点[1]:

1强实时性。

在测控系统中,测控计算机的计算和数据处理工作必须与飞行器的飞行同步进行,并且必须在规定的极短时间内(100ms之内完成数据的接收、处理,提供充分的判决数据和及时的引导信息。

2高可靠性。

测控计算机系统作为测控系统的中枢神经就决定了其高可靠性要求,尤其在关键时段,必须绝对可靠,以保证测控任务和指挥调度的顺利完成[3]。另一方面,测控计算机系统通常采用双机/多机冗余机制实现其高可靠性,以保证测控任务和指挥调度高效、顺利地进行。

3可扩展性。

测控计算机系统是一个多任务应用系统,要求能根据不同的测控任务需求进行功能扩展,与各类测控专用设备一起形成一体化的测控系统。

4特有的功能分布式体系结构[4]。

将承担不同固定任务的计算机用网络连接起来共同完成一个总任务的系统称为功能分布式系统。功能分布式体系结构强调的是功能或任务上的分布,不同于一般意义下的节点分布。通常每个功能单元动态自治,总任务系统采用静态调度,即系统牺牲部分动态性和灵活性以满足强实时性高可靠性要求。

5信息交互端适中,节点数量较少。

不同于Internet环境下计算机系统客户端成百上千,每秒有上万次信息交互。测控计算机系统各信息交互端主要分布在数量固定的服务器和工作站上,节点数量相对Internet环境下的通用计算机系统较少。

2系统设计

2.1软件架构设计

通用的发布/订阅模型如图1所示,系统中存在专门的发布/订阅服务器负责接收各客户端节点的注册、发布、订阅等消息,并进行匹配与路由。此结构的优点是便于协调和控制,适合大规模网络;缺点是消息的每次发布与订阅都要经过服务器,实时性不高,特别是同一处理机不同应用程序的发布与订阅,效率较低。

鉴于通用发布/订阅模型的不足,结合测控计算机系统信息交换特点,本文设计了功能分布式结构的发布/订阅测控消息中间件系统。取消了专门的发布/订阅服务器,将其功能嵌入到功能分布的各处理机单元中,以提高系统实时性。每个处理机节点上的发布/订阅消息中间件由订阅消息管理模块、消息过滤模块、网络消息交换模块、应用编程接口和双工控制模块组成[5]。图2展示了功能分布式结构发布/订阅测控消息中间件系统的客户端软件架构和各模块之间的数据流[6]。

2.2工作模式设计

由于取消了集中的发布/订阅服务器以提高实时性,发布/订阅测控消息中间件系统采用主题全局注册、订阅全局广播、事件本地过滤[7]的工作模式。鉴于测控计算机系统网络规模较小,此模式并不会引起消息泛洪。

1主题全局注册。

主题的全局注册由应用程序(发布者发起。发布者所在处理机的主题订阅管理模块接收应用编程接口的注册(注销主题请求,更新本地主题注册表,并向网络消息交换模块发送主题注册(注销命令,由网络消息交换模块向其他处理机的网络消息交换模块广播。其他处理机网络消息交换模块将主题注册(注销命令传给本地主题订阅管理模块并更新主题订阅表。

2订阅全局发布。

订阅的全局发布由应用程序(订阅者发起。过程与主题注册类似,订阅者的主题订阅管理模块接收消息订阅(退订请求,更新本地消息订阅表,并向网络消息交换模块发送消息订阅(退订命令,由网络消息交换模块向其他处理机的网络消息交换模块广播,其他处理机更新订阅消息表。订阅者只能对已注册的主题发起订阅,否则将产生警告消息。

3事件本地过滤。

事件本地过滤由应用程序(发布者发起,消息过滤模块接收应用编程接口发送的事件消息,映射订阅消息表,将事件与订阅集进行匹配(若有本地匹配订阅者,则直接以共享内存方式将事件发给相应程序,并将事件和匹配订阅者地址(非本地订阅者发送到网络消息交换模块,由网络消息交换模块将事件发送到匹配订阅者所在处理机。

图3和图4详细展示了此中间件系统本地发布/订阅和异地发布/订阅的工作过程。

2.3可靠性设计

可靠性设计包括传输可靠性和节点可靠性两方面:

1传输可靠性。

对于发布/订阅模式测控消息中间件系统而言,传输可靠性要求订阅消息能完整地广播到系统中所有处理机节点,事件消息能按匹配订阅者地址准确无误地转发到指定处理机节点。传统基于用户数据报协议(User Datagram Protocol, UDP的多播协议并不提供可靠性保障,不能满足测控计算机系统的高可靠性要求。

本文基于传输层UDP,在消息中间件应用层设计了一种基于否定确认(Negative ACKnowledgment, NACK策略的可靠多播协议[8],消息接收方通过检测报文丢失、乱序并提供消息重传机制,保证传输的可靠性。可靠多播协议的消息格式如图5所示。

可靠多播消息头共占4字节,组序号和消息序号各占一个字节,顺序取值从0到127;重发项占1字节,表示最近8份报文能否进行重发,1表示能,0表示不能。系统中每个节点为可靠多播协议设置两个队列[9]:发送队列和重发队列。节点从发送队列中取出报文,添加可靠多播协议头并设置重发项,按发布/订阅规则发送到其他节点,同时将报文添加到重发队列。接收节点若通过消息序号发现报文存在丢失或乱序,首先查看丢失报文对应的重发位:若为0,表示报文已过期,不能重发;若为1,表示可以重发,接收节点向发送节点发送该报文的NACK,请求重发[10]。发送节点根据收到的NACK搜索重发队列,若发现该报文且未过期,重传该报文。

鉴于功能分布式测控计算机系统客户端处理机节点不多(10~20台左右的特点,本文设计的可靠多播协议并不会引起NACK风暴,有较强的稳定性。

2节点可靠性。

在功能分布式测控计算机系统中,各个功能单元常采用双工热备以实现节点可靠性。由于硬双工存在成本高、控制台单点、可移植性差的缺点,目前工程上多采用软双工模式。基于此,本文采用软双工模式下的虚拟IP机制实现中间件系统的节点可靠性[11],并设计加速推拉心跳检测机制降低误检率(节点未失效判定失效[12]。

发布/订阅测控消息中间件系统中任意功能单元的主、备机都配有内、外双网卡。正常情况下主机外网卡绑定虚拟IP地址向外提供服务,通过内网卡定期(时间T向备机发送心跳消息,表示自己工作正常,当备机T时间内未收到主机的心跳消息,则通过内网卡向主机发送一则询问消息(工作正常请回复,若T/2时间内未收到主机的回复,再发送一次询问消息,若T/4时间内未收到回复,则判定主机失效,加速推拉心跳检测机制如图6所示。加速推拉模式的心跳检测方式能有效减少传统推模式中由于网络拥塞导致的节点失效误判,且效率比拉模式有显著提高。

备机判定主机失效后立即恢复现场,将外网卡绑定虚拟IP地址向外提供服务,备机换成主机,原主机下线维修。为了使现场恢复时间降到最低,原主机每当收到注册、订阅或事件等消息时,都通过内网卡向副机发送,以保持信息一致性。软双工模式下的虚拟IP机制如图7所示。

3系统测试

本文在QT 4.8.4环境下基于mysql数据库实现了上述发布/订阅测控消息中间件原型。系统测试环境:若干台测控中心相同配置计算机( NeoKylin OS,8GB memory,Inter Core CPU,3.4GHz,并装有发布/订阅测控消息中间件;100MB/s以太网交换机。

3.1实时性测试

3台计算机作为发布者分别(各1台发出主题为遥测、外测和指显的事件;同时,3n台计算机作为订阅者分别(各n台发出主题为遥测、外测和指显的订阅。设订阅者从发起订阅到收到相应主题事件的响应时间为ti(1≤i≤3n。计算消息平均响应时间t=∑3ni=1ti随n的变化,如图8所示。

由图8可知,当同一主题订阅者个数从1增长到10时,消息平均响应时间都在100ms之内,可满足测控计算机系统强实时性要求,增长的原因是消息过滤模块处理时间的消耗。

3.2可靠性测试

1传输可靠性测试。

中间件系统中任意A机以可靠多播协议向B机和C机发送m条消息;作为对比,A机再以UDP多播向B机和C机发送同样的m条消息。比较两种传输协议的丢包率和延时,如表1所示。

由表1可知,此发布/订阅中间件系统所采用的可靠多播协议在基本保持UDP多播延时的前提下大大降低了消息的丢包率,传输可靠性得到有效提高。

表格(有表名

2节点可靠性测试。

t0时刻,4个功能单元(A,B,C,D作为订阅者同时发出主题为遥测的订阅,功能单元E发出遥测主题事件,首先测试订阅者各主机工作正常时的事件消息响应时间ti;重做以上实验,在约ti/2时刻断开订阅者各主机内网卡(模拟主机故障,测试备机事件消息响应时间t′i,结果如表2所示。

表格(有表名

T=∑4i=1(t′i-ti/4=56.75ms

由表2可知,当主机故障时,备机能迅速接替主机运行,可靠性有效提高,由于主备机平均切换时间约为56.75ms,备机消息平均响应时间基本在100ms之内,满足测控计算机系统实时性要求。

4结语

由于测控计算机系统信息交换要求的特殊性,通用的一些发布/订阅模型并不能很好运用于测控领域。本文构建了功能分布式结构的发布/订阅测控消息中间件系统,针对测控计算机系统节点数量相对较少的特点设计了主题全局注册、订阅全局发布、事件本地过滤的工作模式以提高系统实时性(节点数量较多和网络规模较大时,不适合运用此策略,并通过可靠多播协议和加速心跳检测模式下的虚拟IP机制实现其高可靠性。后续将重点研究高效的消息过滤机制以进一步提高系统实时性。

参考文献

[1]ANG Z. Telemetry and control computer systems engineering [M]. BeijingNational Defense Industry Press, 2013248-258.(王宗陶.测控计算机系统工程[M].北京国防工业出版社,2013248-258.

[2]PAN Q, YU J, LI E, et al. Design and realization of aviation measurement and control system based on distribution and reconfiguration technology [J]. Computer Measurement and Control, 2014,22(51368-1372.(潘全文,于劲松,李恩辉,等.分布式可重配置航空测控系统设计与实现[J].计算机测量与控制,2014,22(51368-1372.

[3]LYU Y, XIE C, GAO S. Guarantee technology of reliability in realtime TT&C computer application system [J]. Journal of Computer Applications, 2003,23(6101-103.(吕勇,谢长生,高三红.实时测控计算机应用系统的可靠性保障技术[J].计算机应用,2003,23(6

101-103.

[4]LYU Y, XIE C, GAO S. Structural research for realtime TT&C computer system [J]. Computer Engineering and Applications, 2003,14(5

116-118.(吕勇,谢长生,高三红.实时测控计算机系统结构研究[J].计算机工程与应用,2003,14(5116-118.

推荐访问:测控 中间件 订阅 消息 模式