- 文献综述(或调研报告):
- 背景
随着网络技术的飞速发展,各领域网络应用软件越来越复杂,系统集成的难度和风险都在大幅度提高,现在通信需要解决的关键问题就是如何将这些基于不同平台的系统连接起来,使通信更为方便。中间件技术作为架构在应用层和底层操作系统之间的 桥梁能够很好地解决该问题,保证了应用软件在不同平台、不同操作系统之间的互连、互通和互操作[1]。 数据分发服务是一个用于实时分布式应用程序的网络中间件,传统的客户端/服务器(C/S)的数据传输方式存在低效和信息传递不及时的问题,DDS使用发布/订阅通信模型,在数据分发服务中建立以数 据为中心的发布订阅模型,并能解决高效、实时的数据分发问题,能够使分布式应用程序的参与者有效地分配数据服务,各种需要信息分发的应用都能够使用这种以数据为驱动的网络结构[2]。
- 研究现状
目前市场上 DDS 规范的实现产品比较有名的有 RTI DDS、OpenDDS 以及 Opensplice DDS三种。下面将从体系结构、优缺点等方面对这三种 DDS 产品加以介绍。
- RTI DDS
RTI DDS是由 Real-Time Innovation 公司开发实现的,这也是第一个支持 DDS 规范的商业产品(前称 NDDS),目前被广泛应用于任务要求十分苛刻的场合,包括:作战管理、航空航天、美国国家铁路网、空中交通流量控制、交通流量监控、金融交易处理以及工业自动化等[3]。RTI DDS实现了完整的 DCPS 和部分的 DLRL,它独立于操作系统和编程语言,极大地方便了不同系统之间的通讯[4]。系统设计者通过可扩展的传输框架结构连接多个物理端点,传输方式包括以太网络、共享内存、背板或其他连接方式。然而这种方式却额外的增加了配置步骤,提高了复杂程度,此外用户需要通过额外的进程边界来进行通信,会增加通信的时延和抖动。
- OpenDDS
OpenDDS(前称 TAO DDS),是用 C 语言基于 DDS 规范实现的开源软件。它由 Object Computing,Inc 开发实现并维护。尽管 OpenDDS 是用 C 实现的,但它也提供 Java 和 JMS 绑定,因此 Java 应用程序也可以使用 OpenDDS。OpenDDS 的实现采用了 ACE/TAO,而 ACE/TAO是跨平台的,因此保证了 OpenDDS 的跨平台和可移植性[5]。OpenDDS 最初的实现是基于 DDS规范的 1.0 版本,但是当前更多的开发是基于 1.2 版本的。它提供了三种默认的传输协议(IPv4和 IPv6):TCP/IP、UDP/IP 和 IP 多播。OpenDDS 的可插拔传输框架(Pluggable Transport Framework)允许任何人创建适合自身需求的传输方式。OpenDDS 的实现采用了中心节点的结构方式,即系统中专门有一个节点运行 daemon 程序,该程序(即信息库, DCPSInfoRepo)用于存储和管理主题和连接节点的控制信息,判断发布方所发布的主题和订阅方所订阅的主题是否匹配,QoS 策略是否兼容,而数据是直接由发布者传输到订阅者的。OpenDDS 的优点是所有的控制信息都集中在一个节点上,配置非常简单,因此用户的工作量大大减少。而其缺点是 DCPSInfoRepo需运行在一个单独的节点上,因此存在单点失效和性能瓶颈问题[6][7]。
- OpenSplice DDS
OpenSplice DDS 是 DDS 规范 1.2 版本的一个实现,其特点是高性能,高可用性和很强的可扩展性和可预见性。OpenSplice DDS 是由 Prism Tech 公司开发的,实现了完整的 DDS 规范(包括 DCPS 和 DLRL)。其目的是为分布式实时系统提供一个基础框架,并为应用程序提供中间件服务。OpenSplice DDS 可以在大多数的操作系统上运行,如 Windows、Solaris、Linux、AIX,以及其他常见的实时系统,如 INTEGRITY、VxWorks 等。此外,它的 API 还可用于 C、C 、Java 和 C#多种语言。OpenSplice DDS 的架构采用内存共享的方式,然而这种方式不仅仅局限于单个计算机上的应用,还包括可扩展的服务集合,这种服务集提供了很强的伸缩性和可配置性。OpenSplice DDS 优点在于不存在单点失效的问题并且能保持较小的时延和抖动。其缺点在于必须在应用层完成配置工作,而且这些配置细节往往十分繁琐,因此大大增加了开发者的工作量。
- 存在的问题
在动态可扩展性方面,传统中间件的设计以及资源分配时都采用相对静态的方法。然而在实际应用中,系统由多个参与者组成,而且每一个参与者都是一个相对独立的自治系统。因此,往往要求系统能根据实际需求进行QoS 策略的设定和底层通信协议,调度方式等参数的配置,但传统中间件在这方面存在缺陷。
- 总结
随着网络技术的飞速发展,各领域网络应用软件越来越复杂,为使得不同系统的平台之间通信更为方便,DDS中间件应用而生。现有的DDS产品包括RTI DDS,OpenDDS以及OpenSplice DDS能够较好的支持DDS规范,但是仍然具有动态可扩展性较差的问题。我的研究将重点解决这个问题。
参考文献:
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。