- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道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/
在 DDS 中可以为特定域创建的主题数量是否有限制?这取决于实现吗? RTI Connext DDS 5.0.0 的最大值是多少?我没有在文档中看到它。 最佳答案 您记忆起的“神奇”限制 240 很可
我有一个使用 DDS 的旧版 C++ 应用程序用于异步通信/消息传递。我需要将此应用程序集成到使用 JMS 进行消息传递的 JavaEE 环境中。除了构建独立的 JMS/DDS 桥接模块之外,我还有其
我正在 Linux 32 位的 OpenSplice DDS Community Edition 上工作。在这里我可以有多个主题,数据编写者可以写入这个主题,发布者将发布这些主题。我尝试修改可用的源代
我仍在尝试理解 DDS 及其概念。 我有一个配置,其中两台笔记本电脑运行基于 dds 的应用程序。我的环境不允许多播,因此我决定采用点对点连接(单播)。为了将两台笔记本电脑置于同一网络中,我使用以太网
我正在按照 windbg.info 上的说明尝试找到与我的程序中的内存分配/泄漏对应的源。我设置了一个带有泄漏代码的测试用例来尝试演示这一点。我可以到达那里的一部分,但看不到实际来源。 有问题的 C+
我的 DDS 程序中有以下代码,用于 java 8 使用 RTI DDS 5.2.0 DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT. dis
好的,所以我知道如何使用 CreateDDSTextureFromFile() 函数,但是假设我通过 void *Buffer、UINT Len 在内存中有 DDS 文件...我如何从这个变量创建纹理
我开始使用 C# 并尝试测试 dds 应用程序后面的代码。我把它取自:http://www.laas.fr/files/SLides-A_Corsaro.pdf using System; /****
在 i386 上使用 dds 库进行操作,尝试重复提取样本。我明确地“读取”而不是“获取”样本,因此它们永远不会过期或被删除。 启动两个黑板应用程序,(1) 和 (2) 在两个应用程序中执行读取。这将
我已经创建了使用java实现的普通发布者和订阅者,其工作原理是按大小为1MB读取内容,总大小为5MB,并每1MB发布给订阅者。数据已成功发布。现在面临将内容附加到现有文件的问题。最后我只能找到文件中的
我正在开发一个运行在 QNX 6.4.1 上的嵌入式系统,该系统有多个相互通信的软件服务器。我项目中的一些人直接将一大堆 DDS 东西检查到主要基线中,然后去度假了。当然它不能正常工作,而且我们的配置
我需要C Winform应用程序和Android本机应用程序使用DDS(数据分发服务)。每个人都可以是订户和作者。 对我来说重要的是: -高性能。 -易于使用和记录。 -支持。 价格低。 什么是最好的
如何在 C# 中将 .dds 纹理文件作为图像加载?我在 google 上找不到任何有用的东西。 你给我的样本信息越多,我就越能理解它。 最佳答案 我遇到了同样的问题。这是一个很好的解决方案。 来源:
我参与了一个项目,该项目使用 DDS 作为通信协议(protocol)并使用 C++ 作为语言。如您所知,交换的消息称为主题。好吧,有时一个团队必须更改主题定义,因此,依赖于该主题的其他软件停止工作,
在映射到 DDS 的现有对象上添加索引的最佳方法是什么?数据库中已经存储了数十万个对象。 是否就像将 [EPiServerDataIndex] 属性添加到我现有的类、重新编译和重新部署站点一样简单?
我目前正在使用启用了安全插件的 DDS 进行开发。 当应用程序启动时,它会查找 CA 证书、本地证书和私钥的路径,并将它们加载到内存中以供将来使用。 包含公钥的证书不敏感,因为它们通常以明文形式发送并
我一直在尝试阅读 DDS 标准,尤其是 OpenSplice,我对架构感到疑惑。 DDS 是否需要运行代理或任何特定的守护进程来管理不同方之间的消息交换和协调? 如果我只是为一个主题启动一个发布数据的
我在订阅数据时遇到问题(使用 java 平台)。当订阅者订阅一个主题时,订阅的数据必须从 DDS 中删除。但就我而言,每当我订阅数据时,相同的数据都会被多次订阅。数据不会从 DDS 中删除。我尝试使用
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我想知道OPC(开放平台通信)和DDS(数据分发服务)之间的区别。 我对这两个框架的理解是:机器上的通信中间件,用于简化复杂的网络编程。两者都用于通过消息传递在物理上独立的机器上进行程序通信。它们采用
我是一名优秀的程序员,十分优秀!