DDS 中间件技术在作战系统网络中的应用
数据分发服务作为网络数据通讯的核心技术,能可靠实时地交换分配群体数据,其传输能力比通常的战术数据链高几个数量级。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();在舰载设备网络通讯的实际应用中,我们使用DDS Octets 内置类型,原因是由于各通讯结点发布的数据都是固定的经约定的数据结构,且如果使用 DDSOctets 内置类型,可以将所有由常规数据类型或自定义的数据结构所组成的数据都转化为八进制(或二进制)方式进行发布和订阅,以达到资源、接口的通用最大化。
2.2 Publisher 发布者的创建与设置
对于发布者而言,在创建主题之后须创建数据发布者和数据写入者,默认地,如果直接创建数据写入者,会由系统自动地、隐式地创建数据发布者。在舰载设备网络通讯的实际应用中,我们将显式手动地依次创建数据发布者和数据写入者,原因是,我们需要对数据发布者策略时能更直接有效。由于在创建主题时使用了Octets 的类型,因此在DDSDataWriter 数据写入者创建时,还要对DDSData Writer 数据写入者进行约束,以创建相应类型的,也是真正向数据总线发出指定类型数据的DDSOctetsDataWriter对象。
2.3 数据的发布
经过以上的设置与创建,已具备了数据发布的条件。发布数据的结果可以根据返回的结果获知发布的成功与否或发布错误的原因。
2.4 Subscriber订阅者的创建与设置
与发布者的设置相类似的,对于订阅者而言,在创建主题之后须创建数据订阅者和数据读取者,默认地,如果直接创建数据读取者,会由系统自动地、隐式地创建数据订阅者。在舰载设备网络通讯的实际应用中,我们将显式手动地依次创建数据发布者和数据写入者,与发布者的设置不同之处在于,数据读取者是一个任务或线程实时接收发布者所提供的数据,并进行响应处理,由于在创建主题的时候为达到能订阅所有的不同数据结构的数据而使用的使用了Octets 的类型,因此在订阅者的设置时,我们可以针对所有订阅的主题使用一个数据读取者,采用这种策略使用对于订阅者而言即节省了任务/线程资源又能达到高效快速的目标。
……
新产品推荐:
AppDDS(Appsoft Data Distribution Service)是北京神州普惠科技股份有限公司根据对象管理组织(OMG)制定的DDS数据分发服务标准,经过多年研发而成的分布式实时应用开发平台,AppDDS具备高带宽、低延迟、低抖动、跨平台等诸多优异性能,包含底层通信协议、模型开发工具、网络分析工具、性能测试工具等一系列工具集,可以方便用户快速开发、测试、优化及部署各种分布式实时应用,AppDDS具备自主知识产权,拥有国内最强大的技术研发和技术服务专业团队,成功案例众多,客户遍布航空、航天、电子、船舶、兵器等国防军工行业》》更多详情