朱佳丽,王静娇
(中国船舶集团有限公司第八研究院,南京 211153)
雷达信息处理平台数据传输系统目前存在以下情况:(1) 同一种软硬件平台下,不同的传输协议有不同的实现方式,多种传输协议之间没有统一的、标准的传输接口;(2) 不同软硬件平台下,相同的传输协议实现也会有所不同,同一种传输协议在不同软硬件平台之间没有统一的使用方式;(3) 异构软硬件平台之间通信时,应用软件通信接口复杂而难以维护;(4) 进行数据传输须预先知晓通信对端的存在情况和位置信息。
在上述情况下,应用软件在程序设计和实现时须考虑多种传输协议之间的差异,分别实现不同的传输协议和传输接口;应用程序使用传输接口通信时,须预先设置通信对端的位置,无法实现数据透明传输;应用软件进行跨平台移植时,须要考虑平台软硬件之间的差异,进行传输相关接口的适配和修改。传输接口作为应用软件之间、应用软件内部模块之间的交互接口,上述情况不利于应用软件的标准化、通用化、可扩展性和可移植性。
通信中间件可以屏蔽不同软硬件环境的差异,为雷达数据传输提供一套标准的、统一的传输接口,缩短雷达应用软件开发周期,提高雷达应用软件的可维护性、可移植性和互联互通性。诸多文献都对此做了研究:通信中间件是实现异构系统间透明访问的关键技术,目前已成为军用电子设备开放式架构的关键组成部分[1];多兵种、多层次、多系统的协同作战模式已广泛应用于现代战争中,将通信中间件应用于雷达软件,可提高雷达系统的鲁棒性,为雷达系统进一步融入战区指挥系统打下基础[2];通信中间件具有跨平台性,可用于X86+40G网+LINUX和PPC+RapidIO+Vxworks等多种软硬件平台[3];在雷达软件设计中运用开放式软件架构、软件中间件技术、实时重构技术,可提高雷达软件的可维护性[4]。
本文提出一种基于数据分发服务(Data Distribution Service,DDS)通信中间件作为传输接口的应用配置方法来解决上述问题。本方法通过一种配置通信节点的传输协议、发布、订阅模式、接口和服务质量(Quality of Service,QoS)等信息的应用实例,实现为不同的传输协议提供统一的接口实现和传输配置方式,为应用软件的扩展和重构提供支撑。
通信中间件采用图1所示的发布/订阅模型,主要由域、域参与者、发布者、订阅者、服务质量等构成。域是物理网络从逻辑上划分形成域,只有同一个域内的应用程序之间才能进行数据交互。参与通信的节点被分成产生数据的发布者和使用数据的订阅者,发布者和订阅者之间通过主题通信,只有拥有相同主题的读者和写者之间才能通信,一个节点可以既是发布者又是订阅者。对于用户而言,仅仅需要标识自己所需求的通信类型,并以特定格式描述所使用的数据格式就能与其他节点建立通信,所有的通信细节都由通信中间件进行管理。通信中间件按主题组织系统中的所有数据,发布者通过数据写者发布需要分享的主题数据,订阅者通过数据读者订阅自己感兴趣的主题数据,无需其他应用程序的存在性以及位置信息,实现空间、时间上解耦合。DDS通信中间件通过丰富的通信服务质量QoS配置功能,支持多种通信协议和通信行为配置,提供雷达数据通信行为定制能力。
图1 发布/订阅通信模型
对于不同的软硬件平台和不同的传输协议,通信中间件提供标准的、统一的传输接口,接口主要包括DDS初始化接口、创建域参与者接口、主题发布接口、主题订阅接口、写数据接口、监听数据接口、资源回收接口,具体如表1所示。通信中间件提供不同软硬件平台下的库文件和头文件,包括X86+Windows、X86+Linux、飞腾+Linux等,并通过QoS配置来实现通信协议的选择,使用户在设计通信接口时不需要考虑软硬件平台以及传输协议之间的接口差异。
表1 通信中间件传输接口
在使用通信中间件进行雷达数据通信时,通过QoS配置实现通信协议的选择以及通信行为的定制。QoS可以理解为雷达数据提供者和数据接收者之间的“合约”,通信两端的QoS配置要保持一致。DDS通信中间件以数据为中心,雷达设备数据业务类型多样,从中频数据、视频数据到点航迹类数据、控制信息等,其带宽、实时性、拓扑、协议等均大相径庭,通信中间件通过QoS服务配置来满足各种应用场景需求。
QoS配置作用的通信中间件实体包括域参与者、数据读者、数据写者等,其中域参与者的QoS配置对于其对应的所有数据读者和数据写者均有效。通过QoS配置可以设置传输协议、传输方式、传输模式。传输协议主要包括SRIO、TCP、UDP等,传输方式包括点播、组播,传输模式包括可靠传输和尽力而为传输模式,QoS配置具体如表2所示。
表2 通信中间件QoS配置与实现
通信中间件采用XML文件描述QoS配置信息,一个XML文件中可以包含应用所需的所有QoS配置。用户只需在表1标准接口中引用XML文件中的实体QoS,即可实现传输协议、传输方式、传输模式等配置。采用XML文件描述QoS可使配置信息与应用软件松耦合,实现配置信息的跨平台移植。图2是一个包含Rapido、TCP、UDP等传输协议的QoS配置。
图2 XML文件描述QoS信息
雷达数字后端传输数据有点航迹数据、视频数据、控制信息等,根据数据传输带宽要求会涉及SRIO、UDP、TCP等多种通信协议,不同通信协议有不同的通信处理流程和通信接口实现。采用DDS通信中间件进行数据通信时,可以屏蔽软硬件平台和通信协议之间的差别, 提供标准的统一的通信处理流程和通信接口。在不同的软硬件平台下,基于通信中间件的雷达数据通信实现流程如图3所示,具体如下:
图3 基于通信中间件的数据传输实现流程
(1) 设计通信的数据类型;
(2) 根据数据传输需求设计各实体的QoS配置;
(3) 初始化DDS通信接口;
(4) 创建域参与者,并设置通信域ID;
(5) 在数据发送端创建数据写者,配置相关主题、数据类型和QoS服务类型,并通过数据写者进行数据发布;
(6) 在数据接收端创建数据读者,配置相关主题、数据类型、QoS服务类型以及数据监听器,通过数据读者进行数据订阅,并在回调接口中处理数据;
(7) 清理回收资源。
使用通信中间件进行雷达数据传输时,通过表1标准接口、表2和图2的QoS配置就能实现不同传输协议下接口的统一。一个同时包含了UDP协议和RapidIO协议的基于通信中间件的传输接口实现如下:
(1) 调用Init()接口进行DDS初始化;
(2) 分别创建UDP协议下的域参与者udpDp和RapidIO协议下的域参与者rioDp;
(3) 调用DDS_PubTopic()接口创建用于主题发布的数据写者,通过参数设置传输协议、主题信息、支持的数据类型、传输模式;
(4) 调用DDS_SubTopic()接口创建用于主题订阅的数据读者,通过参数设置传输协议、主题信息、支持的数据类型、传输模式和数据监听器,通过监听函数监听主题数据的到来,并对数据进行接收处理;
(5) 调用write接口用于主题数据的发送;
(6) 调用DDS_Finalize()接口进行DDS资源回收。对于不同的软硬件平台,通信中间件分别提供了对应的库文件和头文件,通过引用对应的库文件和头文件,就能实现通信中间件接口软件的跨平台移植和代码重用。对于异构平台之间的通信,比如X86+Windows和飞腾+Linux平台,通过使用不同平台下对应的库文件和头文件,以及通信中间件标准的通信处理流程和统一的通信接口就可以实现异构平台之间的通信。
从图3可以看出,在同一软硬件平台下,通信中间件可以提供不同传输协议下标准的数据传输处理流程以及统一的传输接口实现;不同软硬件平台下,通过引用不同软硬件平台下的库文件和头文件,就能实现通信中间件接口软件的移植和重用。通信中间件采用基于主题发布/订阅的方式进行数据通信,通信中间件按主题组织系统中的所有数据。应用软件使用通信中间件进行数据传输时,发布者通过数据写者发布需要分享的主题数据,订阅者通过数据读者订阅自己感兴趣的主题数据,无需知道其他应用程序的存在性以及位置信息,可实现空间、时间上解耦合。
雷达信息处理平台数据传输涉及多种软硬件平台和多种传输协议,本文提出一种基于DDS通信中间件作为传输接口的应用配置方法,通过一种配置通信节点的传输协议、发布、订阅模式、接口和QoS等信息应用实例,实现为不同的传输协议提供统一的接口实现和传输配置方式,为应用软件的扩展和重构提供支撑,实现应用软件空间、时间上解耦合。