数据分布式服务DDS/RTPS被推广为“实时”中间件/应用程序的标准,至少为实时Pub-Sub提供RTPS状态。然而,当我阅读规范时,我没有发现任何关于实时需求的明确定义或约束(例如,经典的软/硬实时方面)。
RTPS定义了一些使直接合成尽可能高效的方法,但将它作为“实时发布/订阅”出售并不是真正精确的IMHO。
当然,有很多涉及DDS的项目/产品,它们的性能可以满足它们的实时性要求。但这仍然取决于DDS供应商的实现和与DDS无关的实际系统设置。
对于DDS的实时方面,我有遗漏吗?
我在规范中分别找到了一些相关部分:
但我并没有看到对实现的需求有任何明确的定义(例如RTPS 8.4.2.1)。
同样的逻辑: C/C++非常适合高性能和实时应用,但没有人把“实时编程语言”作为其标准规范的标题。
发布于 2020-09-05 22:46:23
不知道你从哪里得到了“经典硬/软实时”的定义,也不知道你是如何应用它的。
硬实时由需求定义,包括两个方面.( A)结果的准确性有多大,以及( B)系统需要多少时间才能生成答案,以及A点所要求的准确性。这是由系统架构定义的,而不是由硬实时或软实时的定义定义的(要完成,所以您知道我通常从哪里争论,“软”实时意味着您可以任意地违反两个方面中的一个-按时准确的回答,或者即使晚了也能得到正确的答案)。
那么DDS是如何实现硬实时的呢?它是确定性的,并且具有正确的QoS设置,将向应用程序宣布应用程序所需的硬实时约束正在/没有得到满足。然后由应用程序决定这是否可以接受。
如果你说你需要一个正确到5%的答案(也就是说,100次中有95次是错误的),而我直到宇宙的热死才能给出第一个答案,那么对我来说,满足那些艰难的实时限制就很简单了。
另一方面,如果你说你需要一个精确到无穷小数点的答案,你需要它在产生它的事件之前30秒,那么世界上没有一个系统能够提供这个答案,所以在这个系统中没有什么难的RT。
它是确定性的,它提供给应用程序的消息根据使用它的系统的需求决定它的“实时”编辑。
https://stackoverflow.com/questions/63757912
复制相似问题