OpenDDS学习笔记(1):数据为中心的发布/订阅模型


一、四种通信模型比较

1.1 点对点模型

点对点模型为简单一对一通信模式。

  • 优点:支持高带宽信息传输;
  • 不足:多数情况下需要一对多通信服务。

1.2 C/S模型

C/S模型分为客户和服务两部分,分别运行于不同机器或进程中。服务器为客户提供系统定义的各种服务,如基于文件的服务、数据库服务、事务处理等,为用户提供资源共享手段。

  • 优点:优化网络利用率,减少网络流量;缩短响应时间;应用程序和数据隔离,使数据具有独立性。
  • 不足:模型的可伸缩性低,安装维护困难;程序在客户端运行占用大量资源。

1.3 分布式对象模型

分布式对象模型为面向多层C/S计算模型,将分布在网络上的资源按照对象的概念来组织,为每个对象定义访问接口,客户和服务器的角色是相对和多层次的。主流模型为:CORBA、DCOM、EJB。

  • CORBA:最为完善,具有与开发语言、开发者、操作系统无关的独立性。
  • DCOM:和Windows平台结合过紧,在其他平台上不成熟,制约了代码的可重用性和应用的可扩展性。
  • EJB:提供了结构紧凑的分布计算模型和组件互操作的方法,为组件开发提供灵活性。
  • 不足:请求应答模式不能满足实时性要求,不能根据不同的数据流类型来进行实时性和可靠性折中选择。

1.4 P/S模型

P/S模型里应用程序只是简单地发布或订阅数据。发布方只需要匿名地发布数据,不需要知道订阅方地址和整个网络中节点的数目;订阅方只需要简单地匿名接收数据,不需要知道发布方地址和整个网络中节点的数目。一个应用程序可以是发布方也可以是订阅方,或者同时兼具两者身份。


二、实时发布/订阅模型

实时发布/订阅(Real-time Publish/Subscribe,RTPS)模型在继承P/S模型优点的基础上做了扩展,使它能够允许应用程序自动地在实时性和可靠性之间作出折中,在实时系统上运行并灵活地控制内存,RTPS模型非常适合复杂数据流的分布式实时应用,优点有:

  • 以数据为中心,降低网络延迟。
  • 发布订阅应用是模块化的,其内容是可伸缩的,满足灵活的应用要求,提高数据传输的能力。
  • 支持多种数据流类型,数据流控制管理较为容易。
  • 应用程序通过名称来订阅数据而不是通过特定地址,因此当配置改变时不会导致数据流的中断。
  • 支持多方发布订阅,允许应用程序动态地加入或离开系统而不影响其正常工作,满足在线扩展和在线维护,容错性好。
  • 通过参数由应用程序自己来控制数据流传输特性,在定时传输和可靠性之间作出折中选择,传输方式灵活多样。
  • 与C/S模型相比更为高效,对带宽的利用率更高。

RTPS模型有其适用范围,它不适于零星的请求/应答式传输,如文件传输,但RTPS模型以其良好的动态特性、完善的时间控制机制,在分布式实时系统得到了广泛的应用。


三、数据为中心的发布/订阅模型

对象管理组织(Object Management Group,OMG)于2004完成第一版支持高性能实时系统的数据分发服务(Data Distribute Service,DDS)。OMG DDS将RTPS模型重新定义为DCPS模型

DCPS模型主要组成内容:

  • 域(Domain)
  • 实体(Entity)
  • 域参与者(DomainParticipant)
  • 发布者(Publisher)
  • 订阅者(Subscriber)
  • 数据写入者(DataWriter)
  • 数据读取者(DataReader)
  • 主题(Topic)

下图为DCPS模型,一节点上可以存在发布者、订阅者或两者皆有,通过数据共享标以主题的数据,相同主题发布者和订阅者才能建立发布/订阅关系,服务质量(Quality of Service,QoS)要求贯穿整个信息发布/订阅过程。

DCPS模型


  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值