gpt4 book ai didi

ipc - OPC 和 DDS 之间的区别?

转载 作者:行者123 更新时间:2023-12-01 16:13:23 25 4
gpt4 key购买 nike

我想知道OPC(开放平台通信)和DDS(数据分发服务)之间的区别。

我对这两个框架的理解是:机器上的通信中间件,用于简化复杂的网络编程。两者都用于通过消息传递在物理上独立的机器上进行程序通信。它们采用客户端-服务器模型作为TCP/IP套接字进行通信,但可以以多2多方式交换数据。此外,DDS还经常用于飞机、军舰等关键系统。

如果有任何误解,或者您知道它们之间的差异,请告诉我。

最佳答案

(在 Basil 评论之后、在最初发布之前编辑:) )

我认为您指的是 OPC-UA,因为 OPC 已被统一架构实现所取代。有点交叉,OPC 只不过是 Windows COM/DCOM,UA 是对 SOA 的彻底改造。

DDS 互操作性规范需要 UDP/IP 和多播来进行匿名发现,而不是 TCP/IP。 TCP 可以使用,但还没有规范,允许不同的供应商随心所欲地实现它。假设一个供应商的 TCP/IP 传输无法与另一供应商的 TCP/IP 传输兼容(也适用于共享内存传输等。它们不可互操作)。

OPC-UA 通过类似 HTTP 的协议(protocol)使用静态通信。 TCP 不是确定性的,因此无法保证实时了解正在发生的事情。 UDP 是尽力而为(RTPS2,DDS 使用的协议(protocol)包括通过 UDP 提供可靠流量的方法,即在更高的协议(protocol)级别提供可靠性),但至少您的应用程序知道数据已/未及时到达,并且可以做出相应的 react 。

OPC-UA 默认情况下是客户端/服务器(但如果您想要嵌入式系统上服务器实现的开销,可以将其设置为点对点)。 DDS 是匿名的点对点(但将其设置为客户端-服务器非常简单,只需为给定主题实现一个订阅者即可)。

OPC-UA面向工业控制(SCADA)。 DDS 适用于几乎任何机器对机器的连接,其中“机器”被定义为运行某种代码的某些硬件,可以访问 UDP/IP 堆栈和足够的 RAM 来支持数据量/设备的多样性/速度/可变性/供应商/v...要求。

两者完全彼此分离,并且是平台独立的(硬件、操作系统、语言等),但实现方式不同。 DDS 将数据提升到系统的完全合格的对等点:发布者发布“数据”。订阅者订阅“数据”。它不是“发布者与订阅者对话”。

OPC-UA 使用内部协议(protocol)(opc-tpc://或 https://)和 RESTful。很难搞砸。

OPC(基金会)和 OMG(开放标准机构)都测试实现之间的互操作性。

QoS:DDS 中的 QoS 本身就是一个领域。你一定会印象深刻。你会感到惊讶的。当两个对等点在同一个主题上,在同一个子网上使用完全相同的类型定义,仍然无法相互交谈时,您会感到震惊、困惑和沮丧地哭泣。然后你会说,‘哦。呃,'更改 QoS 文件中的一项设置,一切都会再次变得甜蜜和轻松。

由于 OPC-UA 针对特定用例,因此除了该特定用例所需的之外,不需要任何 QoS。 DDS 的能力更强/对 QoS 的感知能力更强,因为它不限于单一用例。

关于ipc - OPC 和 DDS 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36301904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com