分层数据总线系统

在系统设计中,分层数据总线体系结构很常见,目前已经在各行各业得到了部署。但是,由于它并不能够被更好的理解和或应用,我想花一点时间从实际的角度讨论分层数据总线体系结构。

根据我的经验,基本上所有的应用都可以从这种高度可扩展的体系结构中受益。

阅读本博客的读者应该从此博客中了解分层数据总线体系结构的框架,并能够将其应用于系统体系结构,发挥该框架的长处。

什么是分层数据总线体系结构?

分层数据总线体系结构在全局数据空间中分离或逻辑上分割了Data Distribution Service™(DDS)数据总线。数据总线分离是什么意思?首先,请考虑DDS API提供了许多分离数据总线的方法-这些方法包括DDS域和分区。有时也使用主题,但是依靠主题分离数据流的危险在于它可能会阻碍系统扩展。

存在用于分层的其他不太明显的方法,这些方法包括传输或多播组。传输通常由系统硬件配置或通信要求决定。这样的示例包括UDP与TCP传输或事件UDPv4与UDPv6。相反,多播组由数据读取器加入并在发现期间进行通信。

此外,Connext®DDS Professional还提供了配置多通道数据写入器以将数据发布到多个多播组的功能。它使数据写入器可以根据数据内容对数据进行分区。尽管此功能非常强大,但它是RTI提供给DDS标准的唯一扩展。

连接各层

分层数据总线体系结构的重要组成部分是桥接功能,该功能由RTI的路由服务提供。在较高的层次上,路由服务只是将数据从一层移动到另一层,但实际上它的功能更加深入。例如,它可以用于处理数据通过时对数据进行处理或对其进行某种类型的转换。或者,可以将适配器添加到输入或输出,以将DDS数据与其他I / O(例如RS-232)合并。

其他可能有用的服务是持久性服务或排队服务。持久性服务是对原始数据发布者的补充,存储其发布的数据,以便在原始发布者存在后仍可用于后期加入的应用程序。此功能映射到数据写入器和数据读取器的持久性服务质量(QoS)的TRANSIENT或PERSISTENT设置。

排队服务保证将样品“至少一次”和“最多一次”交付给一组数据读取器。此功能对于处理样品的负载平衡很有用。排队服务还保证已处理交付的样品,因为它在等待数据读取器应用程序明确考虑样品的接收后才考虑交付。

这三种服务相互补充,可以根据需要应用于任何给定的用例。在这三种服务中,路由服务是最常用的部署。

分层数据总线体系结构可以解决哪些问题?

为了解决这个问题,让我们考虑一种不使用分层数据总线体系结构的情况。随着系统的发展,域参与者和DDS端点的数量将成比例地增加。但是,如果每个域参与者都能发现每个其他域参与者,并且每个DDS端点都尝试匹配,则完成发现所花费的时间将成倍增长。此外,每个域参与者维护的发现的域参与者和DDS端点的数据库可能会很大。根据系统资源,域参与者的数据库使用量可能开始产生问题。

也可能会出现其他问题,例如当后加入者活跃时网络上的负载。想象一下系统处于稳定状态:发现已完成并且数据正在顺利进行。突然有一个后加入者到达,结果发现流量开始在网络上激增。发现流量最多只能节流稳态流量。如果使用了持久性QoS,并且必须向后加入者传递大量的历史数据,该问题将更加严重。

分层数据总线体系结构会带来哪些问题?

弹性系统还必须考虑分层数据总线体系结构的潜在缺点。我坚信,好处远胜于任何潜在的弊端-如果事先了解了潜在的问题,就可以解决。那么,必须考虑哪些问题呢?

集中故障点

路由服务充当层之间的桥梁。这意味着来自每一层的所有流量都必须流经路由服务,从而有效地使其成为关键点。如果路由服务失败或过载,该怎么办?幸运的是,如果这是一个潜在的问题,则可以使用一个简单的解决方案:冗余路由服务,每个服务于一对域或一组主题。最终的配置将取决于系统,但是如果您从一开始就知道,那么设计将更加简单。

延迟增加

确实存在由路由服务添加的延迟,尽管延迟很小。如果您的系统对额外的延迟敏感,则在系统设计期间应考虑分辨率。可以添加其他处理资源。例如,在具有许多内核的CPU上,可以将“路由服务”配置为为每个路由添加线程。或者,类似于解决集中式故障点问题的方法,可以部署多个路由服务,并且其中的不同路由负载均衡。

额外资源需求

与增加的延迟类似,随着路由服务被引入系统设计中,它们将消耗资源。必须通过拥有足够的硬件资源来解决此问题。这可能意味着增加了CPU或内存,或者仅通过改组运行Routeing Service的位置就可以解决问题。

分层数据总线是跨多个行业的工业物联网(IIoT)系统的通用架构。这种体系结构提供了跨系统逻辑层的低延迟,安全,对等数据通信。对于必须管理现场应用程序之间的直接交互(例如控制,本地监视和边缘分析)的系统,此功能最有用。

应用分层数据总线体系结构的最佳实践

通常,关键问题是如何进行分层设计。或者,设计分层是越多越好?还是越少越好?不幸的是,这些问题不能一概而论。不存在确定是否需要新层的固定规则。但是,关于如何解决此问题确实存在不同的策略。请记住,一旦采用该策略,就必须坚持下去,并确保其始终如一地应用,这一点很重要。这个过程很可能是迭代的。在确定理想结果之前,至少要经过几次尝试才能做好工作的准备。

有什么可能的策略来分离各层?

  • 按功能 -系统状态信息,命令和控制功能,监督分析等

  • 按范围 -兴趣范围,控制范围或数据范围。

  • 按物理位置 -控制室,车辆,病床,数据中心等 

结论

分层数据总线系统的设计可能很复杂。但是,如果一开始就了解这些注意事项,则设计过程很容易管理。最终结果可以是可扩展,有弹性且可靠的系统,该系统可以快速有效地运行。在各个行业,不同用例以及需要大量可伸缩性的系统中,这一事实一次又一次地得到证明。

 

关于作者

RTI高级应用工程师John Patchin

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值