发布和订阅PPS

为什么会有这种机制?

简单来说常用有两种机制不满足复杂系统的设计:

1)异步机制,虽然速度比较快,因为其不用等待接收端返回数据(优点)。()但是对于复杂系统的消息传送模式,异步消息传送是一个低端的解决方案——它将错误处理、端到端语义和缓冲管理等负担推高至应用程序级。因此,架构师在设计采用异步消息传送模式的系统时,必须开发一个或多个协议,以确保在所有应用中消息传送正确进行,因为它们必须保证这些应用程序在高负载条件下能够获得足够的内存分配用于消息缓冲。

    在简单的系统中,完成这些任务可能不太费劲,但对于设计或升级复杂的系统,这些任务可能构成艰巨的挑战。进一步来说,它们给应用程序级或者应用开发流程带来的复杂操作不仅会影响设计和开发进程,也会影响设备的审批,进而影响设备认证。

2)同步机制,必须等待反馈才能next。在实时系统中,系统框架会承受处理消息传送错误和消息缓冲的负担

在默认状态下,QNX PPS服务是作为推送式发布系统运行的;也就是说,发布者会将数据推送到对象中,订阅者会根据通知或在闲暇时读取数据。(手机app更新可能就是这样)

但有些数据(如接口上的数据包计数)变化太快,因此无法通过使用默认推送发布的PPS有效地进行发布。为此,QNX PPS还提供了一种选项,允许订阅者将PPS变成提取式发布系统。当订阅者打开具有该选项的对象并发出一个read()调用时,该对象的所有发布者会收到一个通知以在对象中写入当前数据。订阅者的读取会一直阻塞直至对象的数据得到更新并返回新的数据。利用这种提取机制,PPS订阅者能按其需要的速度向发布者检索数据,从而实现了真正意义上的按需发布。

利用PPS服务,发布者与订阅者之间并不认识;他们之间唯一的联系是具有某种含义和用途的对象。(灵活可扩展)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值