物联网(IoT)是关于传感器数据和通信的。它涉及到一些实体获取它接收到的数据,进行一些复杂(甚至简单)的计算,然后为了控制或通知某人或某事而做出决定。当然,有不止一种方法可以做到这一点。
消费者物联网(CIoT)就是将数据发送到云上,云是系统的大脑,数据可能来自你的手机或可穿戴设备,但在未来,也可能来自你家里或其他地方的各种电器。它是中央集权的,等级森严的。
我们之前见过工业物联网(IIoT)运作方式与CIoT不同。今天,我们将更深入地探讨数据和通信如何在工业物联网中工作。这样做的动机是PrismTech的公告他们的涡平台。它是基于我们之前见过的DDS标准RTI的报道,但他们也碰巧有一个漂亮的白皮书对比各种不同的数据通信选项。
他们深入研究了AMQP、JMS、MQTT、REST、CoAP和DDS。其中许多协议被设计为资源受限设备的快速、低开销协议(并且可能是资源极其紧张时的最佳选择),这些协议来自不同的垂直市场。其中一些具有发布/订阅功能。当然,它们之间有很多微妙的区别。但也有一些高层次的主题引起了我的注意;随着PrismTech的一些澄清,这些问题似乎成了讨论的好素材。
第一个问题涉及到在宏大的网络计划中,谁能得到什么数据。换句话说,如何将消息路由到预期的收件人?在发布/订阅方案中,谁保存订阅列表?在大多数这些系统中,这通常由“代理”完成。问题是,这为任何任务或安全关键的系统增加了一定程度的风险,因为代理成为一个潜在的单点故障,没有解决方案,如果代理出现问题,整个系统都可能崩溃。
DDS的特点是没有代理;一个发现过程让订阅者知道哪些出版商在那里,他们可以自己订阅。我们在RTI使用数据路由器来帮助过滤网络上的数据量时看到了一种混合方法,但是,即使在这种情况下,路由器也不是整个网络的故障点;只是为了它背后的子网络。
第二个要点更加微妙。也就是说,大多数其他协议是以消息为中心的,而DDS是以数据为中心的。这到底是什么意思,一直困扰着我的大脑。但它涉及到通信协议在数据语义方面的作用。
不久前,在试图组织我的物联网思想时,我注意到,在TCP和IP等通常的协议怀疑之上(或代替),公司正在构建通用消息层.你把一些数据放在一个包里,把它包装起来,盖上邮票,在上面打个蝴蝶结,它就会到达目的地,而不需要参考包里有什么。就传输系统而言,它只是传输一堆比特。协议可以编组和解编组数据(尽管有些协议不那么“标准”,因为发送方和接收方需要就数据应该如何打包达成一致,这损害了互操作性),但有效负载的含义仍然不透明。
系统如何将语义应用于数据?这是更高一层的角色,发送方和接收方想必(希望)对如何解释消息的内容有一致的看法。然而,在消息传递系统内部,没有任何东西表明内容。
这就是以消息为中心的系统的本质。在消息级别,它的唯一焦点是将所包含的位从这里获取到那里。
DDS以数据为中心的特性与此不同:在消息的打包中包含内容信息;传输与消息内容无关。这允许数据包识别消息所属的特定“主题”。订阅者可以专门订阅个别主题,这成为发现过程的一部分。
传输还知道数据的结构,包括各种键——不是随机关键字意义上的,而是数据库意义上的。这使得设备可以使用SQL来过滤或查询它们接收到的信息,从而简化了从消息中提取有用信息的过程。
数据结构本身是使用来自CORBA的IDL(接口描述语言)以一种语言独立的方式指定的,可能是omg标准化的(因为它们同时处理DDS和CORBA;还有其他口味)。
因此,基于消息的系统类似于用纸板箱运送东西;UPS或联邦快递看不到里面是什么。DDS更像是用透明塑料包装的东西,在条形码中嵌入一些内容字段,这样,当您看到它时,在知道里面有什么有用的东西之前,您不需要打开盒子。
其中一些唤醒了一些潜在的内存细胞,使我想起了ITTIA,他们专门为资源受限的嵌入式系统开发关系数据库,支持对数据的全SQL查询。起初,我怀疑这是否与DDS完全不一致,但它们提醒我这是互补的:ITTIA(或任何其他此类系统)是关于在节点上持久存储数据的;DDS是关于数据的交流。在DDS中,数据是瞬态的;您甚至可以为给定的消息指定生命期,这样,在其有效生命期之外,任何迟来的订阅者都不再可用。
所有这一切的结果是DDS提供了可预测的大量数据的实时共享,这些数据可能被复杂的订阅者网络所消耗。节点将独立于底层传输机制和节点的特定创建者来理解数据。具体支持哪些传输方案由各个DDS系统提供商决定。对IP4/6的支持现在很普遍;功率更低的6LoWPAN也在考虑之中。
这意味着您可以根据需要混合和匹配节点和传输技术,以利用遗留连接并利用多个供应商。服务质量(QoS)和其他设置有助于优化数据和消息的优先级以及它们所经历的延迟。
目前正在进一步加强DDS和一般数据传输。DDS的一个大漏洞是缺乏标准化的安全性——OMG正在弥补这一点。据PrismTech报道,OMG已经批准了一项安全标准的1.0测试版,并进入了他们所谓的最终确定阶段,这可能需要长达一年的时间。但是公司已经赶时髦提供实现。
我还与SKTA Innopartners(一家孵化器/投资集团)的Angel Orrantia交谈过,他们正在寻找的事情之一是致力于改善物联网数据结构和通信的公司。据他说,他们并不是在寻找DDS的替代品;这些都是建立在DDS之上的技术。
我对DDS的总体感觉是一个强大而灵活的标准。当然,这也意味着一些更复杂的东西,而不仅仅是傻瓜式的定点射击标准。想找点乐子吗?在普通房主的住所中隐藏一个摄像头,然后为他们提供一个家庭自动化系统,要求他们设置和配置DDS详细信息,SQL过滤器等。好欢乐的整个家庭!这就是为什么你要在工厂里找到它,而不是在别人家里。(即使这是一个工程师的家,DDS对这个应用程序来说可能也太过分了。)
关于PrismTech最近发布的Vortex公告,他们为不同的平台优化了许多不同的口味。他们有Java虚拟机的Vortex Café;用于云实例化的Vortex Cloud;Vortex Lite适用于小型资源受限设备,而Vortex Web适用于浏览器。这个家族中的一个古怪之处在于,PrismTech实际上已经在企业领域做了很长一段时间。他们已经有了一个叫做OpenSplice的产品,这个产品已经很成熟了,以至于他们想要保留这个品牌,而不是把它命名为漩涡企业。
不同的DDS供应商将有不同的特定功能,因此需要比较细节。PrismTech提到的有利于他们的例子是动态发现(相对于路由器的静态配置)和多跳路由的能力,而不是简单的单跳路由。RTI说他们也支持这两个特性。当然,这样的特性可能会以牺牲其他东西为代价(代码占用、功耗、成本,谁知道呢……),所以选择过程可以是双向的。
更多信息:
您如何看待DDS与其他协议的区别?或者你认为它有区别吗?
广播:shemale护送在英国伦敦