内容发布更新时间 : 2024/12/27 1:42:02星期一 下面是文章的全部内容请认真阅读。
DDS 中间件技术在作战系统网络中的应用
摘 要:通过对数据分发服务dds (data distribution service)规范的研究,建立一套以数据为中心的发布/订阅模型,完成一套与平台无关、具备在分布式操作系统中实现的数据分发、传递和接收功能的演示系统,建立实时的、可靠的、安全的、跨语言和平台的信息分发的中间件平台,实现数据空间共享的目的,提高通讯设备数据传输的通信性能。
关键词:rti dds;作战系统网络;数据传输;中间件 中图分类号:tp393
数据分发服务作为网络数据通讯的核心技术,能可靠实时地交换分配群体数据,其传输能力比通常的战术数据链高几个数量级。dds必须确保在极少的时间和不限制网络中的报告数据容量的条件下,高度可靠地传输数据。目前dds数据通信服务已经广泛应用到了美国海、陆、空、天各个领域,并发挥了重要的作用。而美国海军正以dds技术为核心,建设一个统一的、全新的自动操作的分布式dds网络结构,对其海军装备的作战系统进行综合集成。 1 dds通讯中间件简介
中间件是介于应用程序和操作系统软件层。中间件隔离计算机从底层的细节应用体系结构,操作系统和网络堆栈从而简化了应用程序发送和分布式系统的开发接收程序,而无需使用较低级别的协议,如信息套接字和tcp或udp/ip协议。dds数据分发服务是一项以数据为中心的网络实时分布式应用程序中间件。通过dds能构建
高性能的分布式异构计算机环境中的通信,并且dds是可配置的以便程序员可以适应它以满足应用的特定通信需求。
dds数据分发服务作为实时分布式系统中的数据通信机制,特别适用于数据提供者和接受者众多的情况。它简化分布式系统中数据的发布,通过qos参数控制体现了通信的灵活性,具有跨语言、跨平台的能力。
2 rti dds实现和策略设置的分析 2.1 domainparticipant和topic的创建
domainparticipant(域参与者)和topic(主题)是发布者和订阅者所共用的,发布者和订阅者只有在相同的域下,发布或订阅相同的主题,数据传输才能完成。发布者所发布的数据的标识被称之为主题,主题是一串字符串,且是在同一个域下唯一的字符串,用于标识当前数据是什么数据。发布者需要创建主题用于标识其向数据总线发布的数据主题,而订阅者也需要创建主题,用于标识它用何种主题的数据感兴趣。创建主题时需要指明互相传输的数据的类型,dds所支持的内置数据类型包括string,keyedstring,octets,keyedoctets四种。获取内置类型的类型名:const char* ddstypesupport::get_type_name();在舰载设备网络通讯的实际应用中,我们使用ddsoctets内置类型,原因是由于各通讯结点发布的数据都是固定的经约定的数据结构,且如果使用 ddsoctets内置类型,可以将所有由常规数据类型或自定义的数据结构所组成的数据都转化为八进制(或二进制)方式进行发布和订阅,以达到
资源、接口的通用最大化。
2.2 publisher发布者的创建与设置
对于发布者而言,在创建主题之后须创建数据发布者和数据写入者,默认地,如果直接创建数据写入者,会由系统自动地、隐式地创建数据发布者。在舰载设备网络通讯的实际应用中,我们将显式手动地依次创建数据发布者和数据写入者,原因是,我们需要对数据发布者策略时能更直接有效。由于在创建主题时使用了octets的类型,因此在ddsdatawriter数据写入者创建时,还要对ddsdatawriter数据写入者进行约束,以创建相应类型的,也是真正向数据总线发出指定类型数据的ddsoctetsdatawriter对象。 2.3 数据的发布
经过以上的设置与创建,已具备了数据发布的条件。发布数据的结果可以根据返回的结果获知发布的成功与否或发布错误的原因。 2.4 subscriber订阅者的创建与设置
与发布者的设置相类似的,对于订阅者而言,在创建主题之后须创建数据订阅者和数据读取者,默认地,如果直接创建数据读取者,会由系统自动地、隐式地创建数据订阅者。在舰载设备网络通讯的实际应用中,我们将显式手动地依次创建数据发布者和数据写入者,与发布者的设置不同之处在于,数据读取者是一个任务或线程实时接收发布者所提供的数据,并进行响应处理,由于在创建主题的时候为达到能订阅所有的不同数据结构的数据而使用的使用了octets的类型,因此在订阅者的设置时,我们可以针对所有订阅的