探索基于DDS模型的数据分发中间件
2011-05-17权莉,高杨
权 莉,高 杨
(电子科技大学,四川 成都 611731)
网络经济时代的来临使企业面临信息化的挑战,如何利用信息技术,将不同的应用系统集成为一个高效的整体,采纳现代的管理理念和方法,消除信息孤岛现象,及时将关键信息服务送到一线工作人员的手中,成为企业提高市场竞争力的关键。在传统的以平台为中心的系统中,各个应用之间直接通信,形成了复杂的连接关系,而这种系统往往要求以有限的资源满足通信的确定性、多种QoS[1]特性、系统可伸缩性和灵活性。实践证明,传统的分布式共享内存模型完成了以数据为中心的交换功能,但是效率较低,无法满足可伸缩性、灵活性的要求。此外,目前较为成熟的中间件产品并不能很好地解决通信的实时性、快捷性和灵活性问题。因此,在数据发布服务(DDS)[2]中建立了另外一种模型,即以数据为中心的发布/订阅(DCPS)模型。DCPS层是 DDS规范的核心,它提供了数据发布的基础架构,确保正确有效地将信息传输给适当的接收者。本文将对DDS进行较为详细的分析和研究。
1 DDS体系结构
通常使用的网络模型有三种:点到点模型、服务器-客户端模型和出版/订阅模型。而DDS数据分发服务采用的是以数据为中心的发布/订阅模型。通过图1可以直观的看出三者的差别。
图1 P/S模型对比图
1.1 点到点模型
点到点模型模型一般适用在电话和TCP串行连接,是面向连接的通信,缺点是裁剪性差。
1.2 服务器-客户端(C/S)模型
服务器-客户端(C/S)模型适用于文件系统、数据库及远端请求,它以服务为中心,服务器提供服务,而客户接收这些服务;通行是由客户端主动发起的,它必须绑定到服务器上,并通过调用特定的操作来更改或获取信息。另外其是面向连接的通信,存在单点失败的可能,并且存在性能瓶颈。CORBA、DCOM及RPC就使用这一模型。
1.3 出版/订阅模型
DDS规范标准化了分布式实时系统[4]中的数据分布,DDS规范的目的是简化分布式系统中数据的有效发布,它主要应用在要求高性能、可预见性和对资源有效使用的关键任务领域。
DDS规范分为DCPS和DLRL两层,其中,DCPS处于底层,提供通信的基本服务,DLRL封装 DCPS的服务并提供给应用层。DCPS如同总线,各个应用挂接在总线(全局数据空间和主题)上互相通信。DCPS层是DDS规范的核心,它提供了数据发布的基础架构。DLRL层建立在DCPS基础之上,主要是规定了应用层和DCPS层之间的接口,该接口将接收到的数据进行融合并传递给应用层,通过底层的DCPS提供服务,简化了编程工作。
分布式共享内存[3](Distributed Shared Memory)是一种以数据为中心的经典模型。该模型基于全局数据空间的概念,所有对该空间中的数据感兴趣的应用程序都可以接入。想要向这个数据空间提供信息的应用程序声明意图并成为“Publisher”;同样,想从数据空间中获取数据的应用程序成为“Subscriber”。每当Publisher将新数据发送到这个全局数据空间时,中间件就会把信息传播给所有感兴趣的Subscriber。Publisher/Subscriber模型如图2所示。
图2 Publish/Subscriber模型
2 DDS的QoS策略
应用程序可以使用服务质量(QoS)策略来控制、管理和优化在网络中传输的数据流。DDS标准提供的QoS参数可以对数据流(如数据的持久度、数据的传输方式、容错性)进行常规控制。DDS提供商可以提供扩展的QoS策略以实现更深层次的控制,例如对发现过程控制,对系统使用的资源控制(如限制使用资源的大小,对传输途径配置等)[4-5]。QoS的策略的特征有可靠性、数据的持久度、数据的历史记录、周期数据的超时、基于时间的过滤、数据的有效期、数据的所有权、分区以及资源限制等。
开发人员可以基于DDS标准设定多种QoS参数,如发布、订阅速率以及合法通过网络的数据长度等。数据发送设备成为发布者并且仅与规定的通信数据类型相关;需要特定信息的设备成为订阅者并且仅需知道所希望接收数据的内容。
较好的QoS控制策略可能是DDS标准最重要的特征。QoS在DDS规范中得到了普遍而深入的使用,用于配置系统以及在每对Publisher/Subscriber之间建立独立的QoS协议,而QoS协议能够实时提供系统所要求的性能可预测性和资源可控性,并且能够保证发布/订阅模型的模块性、可量测性和鲁棒性[6]。因此,DDS能够满足非常复杂、非常灵活的数据流要求。QoS可以理解为数据提供者和接收者之间的合约,设计的中间件必须确保收发双方的QoS策略相互兼容。图3为在发布者之间建立QoS协议。
图3 QoS协议的建立
通过分析可以看出,DDS信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。全球80%以上的网络中间件都采用DDS方案,包括航空、航天、船舶、国防、金融、通信、汽车等领域。此外,在作战系统、船舶导航和控制系统、船舶防御系统、无人机驾驶系统和地面控制系统、装甲车辆控制系统、仿真和培训系统、雷达处理和空中交通管理系统、金融系统,也由DDS中间件提供底层的信息通信服务,实现各个作战指挥系统的互通和相互操作。
DDS利用DCPS模型的功能为实时与嵌入式系统提供高质量的运行保障,尽可能降低了数据复制的需要,从而提高了系统性能。同时DDS还允许应用预分配资源,提高了可靠性和实时确定性。
QoS策略是DDS的最大亮点。它将资源的可用情况、提供方对资源的占有程度及请求方对资源的期待程度分别程序化为主题QoS、发布者QoS和订阅者QoS。通过QoS策略大大增加了通信的灵活性。
[1]OMG.Data distribution service forreal-time systems specification(ptc/04-03-06)[S].2004.
[2]GIDDINGS V.Tutorialon the OMG data distribution service[R].Objective Interface Systems, Inc., 2005.
[3]Sun.JAVA message service[R].Version1.1, April.2002.
[4]BURLINGAME, GERARDOPC, HUNTGA.DDS enabling global data[R].Real-Time Innovations, Inc.,December 2005.
[5]svn://svn.dre.vanderbilt.edu/DOC/DDS/trunk.2010-11-01.
[6]陈榕,杨维康,刘艺平.下一代 IT技术焦点:信息交换[Z].北京:北京科泰世纪科技有限公司,2003.