亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

数据总线与数据库:每个 IIoT 开发人员需要问的 6 个问题

工业物联网 (IIoT) 充满了令人困惑的术语。这是不可避免的;尽管在计算和系统中重复使用了熟悉的概念,但 IIoT 是事物工作方式的根本变化。根本性的变化需要全新的概念。其中最重要的一个是“数据总线”的概念。

即将发布的 IIC 参考架构版本 2 包含一种称为“分层数据总线”模式的新模式。关于 IIC 版本,我现在不能多说,但通过文档编制过程非常有助于推动清晰的定义。

数据总线定义为:

数据总线是一种以数据为中心的信息共享技术,可实现虚拟的全球数据空间。软件应用程序读取和更新全局数据空间中的条目。更新通过发布订阅通信机制在应用程序之间共享。

数据总线的主要特征是:

  1. 参与者/应用程序直接与数据交互,
  2. 基础设施了解数据,因此可以有选择地过滤数据,并且
  3. 基础设施对服务质量 (QoS) 参数(例如数据流的速率、可靠性和安全性)施加规则和保证。

当然,新概念会产生问题。一些最好的问题来自一家大型数据库公司的架构师。我们通常尝试从网络或软件架构师的角度来解释数据总线概念。但是,数据科学也许是一种更好的方法。毕竟,数据库和数据总线都是数据科学概念。

让我们来看看最常见的 6 个问题。

问题 1:数据总线与(任何类型的)数据库有何不同?

简短回答:数据库 实现以数据为中心的存储。它节省了 您以后可以搜索的信息 通过关联存储数据的属性。 数据总线 实现以数据为中心的交互。它管理未来 通过让您过滤来获取信息 通过传入数据的属性。

长答案:数据中心性可以由这些属性定义:

关系数据库是一种以数据为中心的存储技术。在数据库出现之前,存储系统是具有应用程序定义(即席)结构的文件。数据库也是一个文件,但它是一个非常特殊的文件。数据库知道如何解释数据并强制执行访问控制。因此,数据库为系统定义了“真相”;数据库中的数据不会损坏或丢失。

通过执行控制数据模型的简单规则,数据库可以确保一致性。通过将数据公开给所有用户进行搜索和检索,数据库极大地简化了系统集成。通过允许发现数据和模式,数据库还支持用于监视、测量和挖掘信息的通用工具。

与数据库一样,以数据为中心的中间件(数据总线)理解传输数据的内容。数据总线也发送消息,但它发送的是非常特殊的消息。它只发送特别需要维护状态的消息。明确的规则管理对数据的访问、系统中的数据如何变化以及参与者何时获得更新。重要的是,只有基础设施会发送消息。对于应用程序来说,系统就像一个受控的全局数据空间。应用程序直接与数据和数据“服务质量”(QoS) 属性(如年龄和速率)交互。没有应用程序级别的“消息”意识或概念。程序使用数据总线读写数据,它们不发送和接收消息。

<人物>
一个数据库用以数据为中心的存储替换文件,找到通过搜索正确的旧数据。数据总线用以数据为中心的连接替换消息,通过过滤找到正确的未来数据。这两种技术都使系统集成更容易,支持更大规模、更好的可靠性和应用互操作性。

了解数据的结构和需求后,数据总线基础设施可以执行诸如过滤信息、选择何时甚至是否进行更新等操作。基础设施本身可以控制 QoS,如更新速率、可靠性和对等活跃度的保证通知。基础设施可以发现数据流并将其提供给应用程序和通用工具等。在分布式系统中,这种对数据状态的了解是对“真相”的清晰定义。与数据库一样,基础设施向其他应用程序公开数据,包括结构和内容。这种可访问的事实来源极大地简化了系统集成。它还支持监控和查看信息流、路由消息和管理缓存的通用工具和服务。

问题 2:“软件应用程序读取和更新全局数据空间中的条目。更新通过发布-订阅通信机制在应用程序之间共享。”这是否意味着这是一个您通过发布-订阅界面与之交互的数据库?

简短回答:不,没有数据库。数据库意味着存储:数据物理地驻留在某处。数据总线实现了一个称为“全局数据空间”的纯虚拟概念。

长答案:数据总线数据空间定义了如何与未来信息交互。例如,如果“您”是路口控制器,您可以订阅您所在位置 200m 内的车辆更新。如果有车辆靠近,这些更新将发送给您。以多种方式保证交付(在 0.01 秒内开始、以 100 倍/秒的速度更新、可靠等)。请注意,数据可能永远不会被存储。 (尽管某些 QoS 设置(如可靠性)可能需要一些本地存储。)您可以将数据空间视为一组特殊控制的数据对象,这些对象将以您指定的确切方式填充信息,尽管该信息不是(在一般)由数据总线保存...它刚刚交付。

问题 3:“参与者/应用程序直接与数据交互。”你能详细说明这是什么意思吗?

使用“以消息为中心”的中间件,您可以编写一个应用程序,将包含在消息中的数据发送到另一个应用程序。例如,您可以通过让客户端向服务器发送数据来做到这一点。两端都需要了解另一端的一些信息,通常包括模式之类的内容,但也可能假设数据的属性,例如“它的时间不到 0.01 秒”,或“它将以 100 倍/秒的速度出现”,或者至少还有另一端活着,例如服务器正在运行。所有这些假定的属性都完全隐藏在应用程序代码中,使得重用、系统集成和互操作性变得非常困难。

使用数据总线,您无需了解有关源应用程序的任何信息。您明确您的数据需求,然后数据总线提供它。因此,对于数据总线,每个应用程序仅与数据空间交互。作为应用程序,您只需使用 CRUD 接口写入数据空间或从数据空间读取。当然,您可能需要该数据空间的一些 QoS,例如您需要每秒更新 100 次数据。数据空间本身(数据总线)将保证您获得该数据(或标记错误)。您不需要知道该数据是否只有一个或 27 个冗余源,或者它是否来自网络或共享内存,或者它是 Linux 上的 C 程序还是 Windows 上的 C# 程序。所有交互都与您自己的数据空间视图有关。例如,将数据写入没有收件人的空间也是有意义的。在这种情况下,数据总线可能完全不做任何事情,或者它可能会缓存信息以供以后传送,具体取决于您的 QoS 设置。

请注意,数据库和数据总线技术都用应用程序-数据-应用程序交互取代了应用程序-应用程序交互。这种抽象是绝对关键的。它解耦了应用程序并极大地简化了扩展、互操作性和系统集成。区别实际上是存储在(可能是集中式)数据库中的旧数据与从分布式数据空间直接发送到应用程序的未来数据之一。

问题 4:“基础设施理解,因此可以有选择地过滤数据。”是不是所有的 pub-sub 都是如此,您可以在其中注册您感兴趣的“事件”?

大多数 pub-sub 是非常原始的。一个应用程序“注册兴趣”,然后一切都被简单地发送到该应用程序。因此,例如,交叉路口碰撞检测算法可以订阅“车辆位置”。然后,基础设施从任何能够产生位置的传感器发送消息,而不知道该消息中的数据。甚至“内容过滤”发布-订阅也只提供非常简单的规范,并且需要系统预先选择对所有人来说重要的内容。没有真正的流量控制。

数据总线更具表现力。那个路口可能会说“我只对 200m 内的车辆位置感兴趣,以 10m/s 的速度向我移动。如果车辆符合我的规格,我需要每秒更新 200 次。你(数据总线)需要向我保证所有提供此算法的传感器都承诺以如此快的速度提供数据......不会更慢或更快。如果传感器每秒更新 1000 次,那么每 5 次更新只向我发送一次。我还需要知道您目前实际上与我们保持联系- 实时传感器(我定义为在最后 0.01 秒内在所有可能的道路上产生)始终在所有可能的道路上。每个传感器必须能够存储 600 个旧样本(价值 3 秒),并在需要时使用旧数据更新我它。” (这些是 DDS 标准中 20 多个 QoS 设置中的一些。)

请注意,原始 pub-sub 情况下的订阅应用程序非常依赖于其生产者的实际属性。它必须以某种方式相信他们还活着(!),他们有足够的缓冲区来保存它可能需要的信息,他们不会用信息淹没它,也不会太慢地提供它。如果有 10,000 辆汽车以 1000x/sec 的速度被感知,但在 200m 内只有 3 辆,它必须每秒接收 10,000*1000 =10m 的样本才能找到需要注意的 3*200 =600。它必须以 100 次/秒的速度 ping 每个传感器,以确保它处于活动状态。如果在不同的路径上有冗余传感器,它必须独立地 ping 它们并以某种方式确保所有路径都被覆盖。如果有很多应用程序,它们都必须独立ping所有传感器。它还必须知道生产者的模式等。

相比之下,第二种情况下的应用程序将准确接收它关心的 600 个样本,因为知道每个路径至少有一个传感器处于活动状态,因此感到很舒服。流量是有保证的。保证足够的可靠性。总数据流减少了99.994%(我们只需要600/10m的样本,智能中间件在源头做过滤)。为完整起见,请注意碰撞算法完全独立于传感器本身。它可以在任何其他交叉路口重复使用,并且每条路径可以使用一个传感器或 17 个传感器。如果在运行期间,网络负载过大而无法满足数据规范(或出现故障),应用程序将立即收到通知。

问题 5:数据总线与 CEP 引擎有何不同?

简短回答:数据总线是一个基本的分布式概念,它从符合简单规范的本地生产者那里选择和交付数据。 CEP 引擎是一种集中式可执行服务,能够处理更复杂的规范,但必须将所有数据流发送到一个地方。

长答案:复杂事件处理 (CEP) 引擎检查传入的数据流,寻找您对其进行编程以识别的模式。当它发现其中一种模式时,您可以对其进行编程以采取行动。模式可以是过去和传入的未来数据的复杂组合。然而,它是一个单一的服务,在某个地方的单个 CPU 上运行。它不传输任何信息。

数据总线还会查找数据模式。但是,规格更简单;它在生成的每个数据项上做出决策。动作也比较简单;它可能采取的唯一行动是将该数据发送给请求者。数据总线的强大之处在于它从根本上是分布式的。查找发生在可能有数百、数千甚至数百万个节点的本地。因此,数据总线是一种非常强大的方式,可以从正确的来源中选择正确的数据并将它们发送到正确的位置。数据总线有点像一组分布式 CEP 引擎,每个可能的信息源都有一个,由该信息的用户自动编程。当然,除了模式匹配之外,数据总线还有许多其他特性,例如模式中介、冗余管理、传输支持、可互操作的协议等。

问题 6:什么应用程序推动了 DDS 标准和数据总线?

早期应用在智能机器人、“信息优势”、海军作战管理等大型协同系统。即使组件出现故障,这些系统也需要可靠性、足够快的数据以控制物理过程,以及选择性发现和交付以进行扩展。以数据为中心确实简化了应用程序代码和受控接口,让程序员团队随着时间的推移在大型软件系统上工作。 DDS 标准是一个活跃的、不断增长的标准系列,最初由供应商和客户共同推动。它在许多垂直领域都有重要用途,包括医疗、交通、智慧城市和能源。

如果您想了解智能软件如何席卷 IIoT,请务必下载我们关于汽车行业未来的白皮书,“自动驾驶汽车的秘密”。


物联网技术

  1. 提出正确的云问题
  2. 感知或不感知:工业物联网对您工厂的好处
  3. 如何处理数据?!
  4. Fetch 说物联网上的每台机器都需要一个非常好的代理
  5. 为什么物联网需要人工智能
  6. IIoT 将颠覆设施管理行业,但没关系!
  7. 物联网民主化
  8. IIoT 之旅从远程遥测开始
  9. 图库:选择 IIoT 平台时要问的 10 个问题
  10. 前 10 名 IIoT 平台
  11. 边缘计算和工业物联网是否正在改变我们对数据的看法?
  12. 数据中心的未来