耦合物联网中的实时元素:达到工业4的要求

  摘要除了把全新的设备和系统的概念进入市场,考虑到“东西”完全是一种模糊的、不限制的话,物联网需要正常的互操作性、集成和紧密相关的工件在解体,松散的耦合的能力。当存在松散定时约束的已知实体之间的耦合时,这是很好的。对于工业4所需的实时嵌入式系统来说,这个问题是完全不同的。本文回顾了将实时嵌入元素耦合在一起的问题,并将这些问题扩展到通过Internet耦合它们。方案,如MQTT,Python的扭曲的引擎,Jini(现在的Apache河),Node.js,和PBOs的分类和优缺点都暴露的目标,推动开放标准的发展和管理机构。

  介绍

  如果互联网使设备能够很容易地使用一种成熟的通信标准进行通信,如果这个标准是工业4和物联网的先驱,那么为什么我们不能通过一个人的专有云解决方案把一个物联网设备绑在另一个设备上呢?虽然我们可以连接任何蓝牙为基础的鼠标到任何笔记本电脑,我想连接任何特性良好的物联网设备到任何智能手机,而不使用专有的解决方案。链路的两端都应该知道如何相互交谈,即使设备处于不同的子网上或关闭相同的物理网络,而不管使用的物理媒介——总的互操作性。我想起了通用遥控器。这个想法是,你可以更换所有的遥控器来与您的电视、音响、家庭影院、Blu ray等球员,一。问题是功能永远都不对。事实上,唯一的东西是所有的人都使用红外线发光二极管。这些遥控器存储每个人的独特的代码。所有设备都可以使用相同的代码是可行的。我们真的需要像电视制造商那样增加“音量”或“一频道”吗?

  这篇文章的动机是缺乏一个开放的和广为接受的标准和规范,说明基于TCP/IP的网络上的物理终端设备如何相互作用,以促进一些更复杂的实时系统的组装,可能是自组装。我们的目标是开始发展,并强调机会、非专有的、开放的标准,任何人或任何团体,可以实现服务,允许来自多个厂商的设备互操作而不需要一个“封闭”的片。

  在这篇文章发表的时间,文献1认为机会大为物联网产业公司(IIoT)。该报的作者声称,他们可以通过与其他公司合作,销售更多的服务和产品,“使他们存储和共享设备上的客户数据更有价值。”。用相同的产品,他们可以为客户提供新的服务,从而扩大其客户基础。”文献2中估计市场收入从整合、存储、分析,并提出物联网(IOT)数据”以57亿美元2015美元!这听起来像侵犯隐私和营销富矿给我。换句话说,它是良好的业务保持关闭,暗示是这种器件的耦合需要处理的–不是你。如果我们什么也不做,这将会发生。这个场景是我文章的对立面。这样的服务存在是很好的,但他们不应该是唯一的选择。苹果和编织可以为那些想让他们管理细节的人提供解决方案,也有人需要这样做,但是如果你更像一个Linux人,你可能希望有一个通用的开放标准可用。

  本文调查采样研究和框架上的各种技术来源广泛。我选择了在思考目标时吸引我的技术。还有比我在这里所概述的要多得多的考虑。这只是其他人可以立足的一个开始。我的文章继续解释我认为需要沟通和安全。然后,在我回顾一些接近的具体实现,但没有我们需要的所有功能之前,我继续研究实时系统所需要的内容。


  通信需求

  连接性、设备发现和网络意识

  互联互通的问题不new3。开放系统互连模型(OSI)是在20世纪80年代初解决连通性问题的一项努力,它很好地服务了我们,但设备发现和网络意识问题仍未解决。

  计算机协会(ACM)对这个课题进行了大量的研究。应用程序将非常广泛,包括从车载互联网络连接的存储设备固定的一切。2012 ACM会议在赫尔辛基召开了雾networking5和普林斯顿大学演讲积极参与其发展。名称雾选择包含云的概念在地面–使更广泛的、低水平的连通性。这项研究,以及软件定义网络(SDN)6,很可能会产生我们最终将使用的框架,但是,虽然理论基础正在开发中,专有的解决方案继续引入市场。什么是可用的实用主义者?

  通用串行总线(USB)作为灵感来解决发现和意识问题。为此,部分,由特定的“类”devices7美德。这使得几乎任何设备都可以轻松地连接到几乎所有主机。一旦定义了设备,它的基本功能就可以为任何平台的开发而开发。

  usb主机充当设备协调器的角色。IIoT服务的云服务,本质上是隐含在像主机,但需要主机有问题。它迫使USB实施者论坛,公司最终推出的USB On-The-Go让USB设备”都与USB外围设备和直接与对方沟通时,电脑不可用“8。我们需要相同的东西的物联网:联动设备或设备直接或设备到设备通过主机或两者。


  安全

  物联网安全的问题和解决方案很容易被忽视。高级加密标准(AES)128是最流行的解决方案。有理由相信任何严肃的部署将需要加密的IIoT。想象一下,一个物联网设备被一个中间人无意中或恶意攻击的工厂。由于物联网设备将使无线连接(如蓝牙、Wi-Fi、蜂窝调制解调器、LoRa)、加密和认证必须是新标准的一部分。参考文献9暴露了一些问题。


  实时需求

  斯图尔特描述了嵌入式实时系统的需求。业4的IIoT如果他们要控制我们的机器和工厂都需要一定的实时性能。

  斯图尔特等人创建了一个支持基于组件的软件的框架,这种抽象称为基于端口的对象(PBO)11。他们的目标是创建可重用的实时软件组件。物联网设备也可以被认为是可重用的软件组件。如果我们把斯图尔特的接口概念应用到物联网,我们就有了一个框架,在这个框架中可以创建一个网络物理系统(CPS)。由于PBO的概念已经成熟,可以通过研究它的采用和它的原因来学习它。这个概念的核心是解决实时性能的需要。以下是斯图尔特框架地址的条件。


  独立的过程

  斯图尔特认为在嵌入式实时系统包含有一个需要在比较高的频率的数据量相对较小的份额,独立的过程。这些频率肯定比互联网所能处理的要高。虽然今天的互联网的比特率是每秒数百兆,有效载荷的大小和握手的要求使互联网在最现代的、基于嵌入式实时系统的通信是不切实际的。实时物联网设备的通信密度将受到损害。或许可以将多个进程的通信有效负载捆绑起来,以提高有效负载效率,并最小化传输实例的数量。

  TCP/IP通信的处理负担通常迫使应用程序(只需要8位主机处理器)进入32位解决方案。幸运的是,32位设备的成本低于0.50美元,中等数量,所以我希望物联网设备包含32位内核。


  独立进程之间的绑定

  这些独立的过程必须结合在一起,以确定来自不同输入的输出值,并且可能需要一些输出来处理其他输出。斯图尔特认为这些绑定是有利的,可以在特定的时间限制内动态地重新配置和耦合在一起。例如,设备可以在线或被发现,能够减少上游设备的通信负担,从而动态断开下游接收器,并将其重新连接到新的上游源。在我们的标准中解决这个问题是有益的。设备应该提供解析、缓冲、分发和重新分配数据的能力。这意味着除了定义分布式设备类型外,我们还必须指定分布式函数和角色。这些功能和角色可能被认为是“虚拟”或“抽象”的物联网设备。

  当主机繁忙时,基于USB的初始开发工具出现了问题。他们没有办法强迫主机注意,结果是断断续续的,而且“不可靠”,只有当这些工具变得更智能(例如,更多的内存,更少的依赖于一个远程CPU的及时性),这个问题就减轻了。物联网设备必须是智能的。


  多个处理单元

  在实时嵌入式系统中经常使用一个或多个中央处理单元(CPU)来实现性能目标。这可以采取多微处理器、编程逻辑芯片或两者的形式。应该有一个多对多的CPU连接到物联网设备。

  多个CPU之间的协调应该允许每个CPU独立于其他CPU操作。与在现代PC机的CPU中处理线程一样,每个可用的CPU可能有助于通过从原始数据中冷凝/提取信息来减少通信带宽,或者它们可能提供某种程度的容错性。无论应用程序如何,系统应容忍斯图尔特引用的不同操作频率和不同通信速率,从而支持多个CPU(节点)。


  可用框架抽样

  我现在列出一些已经臭名昭著的框架,并有一些适用于我们目标的特性。我将解释它们为什么被发明并对它们的适合度发表评论。该调查由Jini,Node.js,扭曲,并与世博会的éMQTT的这端,我估计,成为事实上的标准,封闭的实现。


  Jini(现在的Apache河)12 13

  尊敬的Jini被太阳在上世纪90年代后期开发和现在的Apache项目。它是基于java。它的开发是为了让模块化服务通过网络连接在一起,从而建立所谓的面向服务的体系结构。Jini的一个有趣的特点是它的网络实体的能力(例如,服务)发现自己。这是通过一个集中的代理(查找服务)完成的,所有的客户都是为了了解其他的客户而进行联系的。一旦发现,服务可以相互交互。据报道,查找服务不能很好地扩展到非常大的系统,并且考虑到物联网,我们正在讨论潜在的巨大系统。

  有Jini的三个总体目标:(1)客户不需要知道一个特定的服务的位置,(2)客户不应该如果服务不可用或不可用时执行失败,和(3)客户和服务应在检测故障的情况下,积极主动。这些都是我们标准的值得追求的目标。

  由于Jini是基于java,它与嵌入式设备一定的遗产,作为java是原来的设想,作为一个平台,专为小,电子电器如机顶盒嵌入式系统。到目前为止,那么好,但是java是IT部门的语言。这不是一个小的嵌入式系统平台的今天,除非这些系统的单板计算机(SBC)如BeagleBone Black和Raspberry Pi。尽管如此,对象意识和发现在我们的规范中是很好的特性,集中代理作为可选组件的概念是一件很方便的事情。正如我所提到的,今天存在的封闭系统本质上是集中式的代理。我在这方面看到了价值,但只是作为一种选择。


  node.js14

  Node.js创建于2009允许Web服务器到客户自己的协议。不错,我们内嵌的物联网设备可以被看作是很少的Web服务器,所以这可能适合我们的场景。

  Node.js的网站说,“节点。JS®使用事件驱动的,非阻塞I/O模型,使得它重量轻,高效,完美的数据密集型实时应用在分布式设备上运行。”这听起来是一个完美的平台。然而,Node.js是建立在Chrome的JavaScript运行时引擎,和“实时”就是在这样的背景下网络基于会话的–实时在我们的上下文中嵌入不同的。想想一个物联网设备所需要的数据速率,它符合包装机完成它们的周期。这些机器以每分钟几千的速度包装货物。Node.js并不支持,很多物联网设备将需要实时性能水平。

  此外,如果使用的话,物联网设备至少需要一个JavaScript引擎。而JavaScript引擎通常是建立在Web服务器Apache,还有其他的选择,如v815和tracemonkey16,但是他们没有一个是已知的速度。这意味着Node.js是太臃肿,太高的水平用于物联网设备。该平台可对SBC或更好的是,PCs.是,Node.js不吸引我作为我们标准的平台。


       twisted13

    扭曲是用Python编写的,用于开发Internet应用程序,特别是游戏。它是一个事件驱动的网络编程框架。开发人员编写由框架调用的回调例程。它的创建是为了让游戏开发者在游戏中嵌入基于互联网的通信。TCP和UDP服务以及接口的UNIX套接字模型是这个框架的核心。

  由于它基于Python,所以它的一个优点是它的底层引擎Python引擎是用C语言写成的。这是让它工作在嵌入式设备的一大优势,因为几乎所有的嵌入式设备在C cpython17发展主线的Python的引擎,但引擎如pymite18存在运行在只有64 KB的非易失性存储器和4 KB RAM位装置。这并不是说一个8位设备应该是物联网设备的目标。上面提到的只是指出Python引擎有多紧。由于TCP/IP的负担,预计物联网设备将嵌入32位内核。扭曲看起来像是我们标准的一个有价值的框架。

  Python也可以嵌入在产品的最终用户提供一个内置的编程interface19。扭曲的看起来更好。可编程的物联网设备现在可能是由最终用户在Python中编程的。好的!

  回调例程所扭曲的被称为“延迟”。这些都是异步的所有其他处理。这就需要一种不同的思维方式来进行实时处理。尽管高优先级任务通常被放在中断服务例程中,异步回调需要考虑一些其他方法来中断例程,如基于信号量的门控。最终结果可能只是接近实时性能——偶尔会错过实时事件的条件。

  在客户机服务器连接的两端或两端执行扭曲。由于该机制可以使用TCP/IP服务套件发送任何信息,所以它仍然是一个很好的候选者。

  但是,扭曲不包括USB样式类定义。对于任何具有基于TCP/IP的接口的特定应用程序或产品来说,扭曲是很容易使用的,它需要一个设备绑定到应用程序的自定义代码。扭曲需要一个设备类型的规范,如USB在前进,使众所周知的设备可以折叠到应用程序没有新的发展。这必须存在于链路的两端或两端。


  绿洲的消息队列遥测传输(MQTT)20

  MQTT是一个轻量级的,发布/订阅消息传递协议。它最初是由IBM和ARCOM创建但2014成为绿洲的开放标准。绿洲的使命是推动全球信息通信的开放标准开发、融合和采用。

  MQTT是描述为非常简单,重量轻,是专为约束装置和低带宽,高延迟或不可靠的网络。其目的是在不影响可靠性和保证消息传递的情况下最小化网络带宽和设备资源需求。它被吹捧为物联网的理想,它是受欢迎的。

  作为一个协议,它必须实现成为一个完整的框架。Eclipse的泛美卫生组织项目是一个实现。它支持多种语言,包括MQTT的C / C++,java,JavaScript,和python21。大多数实现都面向客户端,但服务器端实现也可用。

  服务器是一个叫做“信息经纪人”在MQTT。不同的扭曲,即终端设备可以直接告诉对方,一般涉及这中间MQTT消息代理。

  mosquitto MQTT的经纪人是一个Python实现,和Apache ActiveMQ是另一个。ActiveMQ是java绑定到其他语言。还有其他的信息经纪人,像RabbitMQ和ZeroMQ。许多其他的代理存在支持各种其他IT起源的协议。

  如前所述,许多专有的物联网解决方案是采摘MQTT消息。问题是缺乏什么标准来沟通什么是物联网设备。存在的MQTT实现兼容的只有自己。协议允许消息通信,但只有那些为这些消息创建的物联网设备知道它们的含义。邮件是乱码,可以使用任何其他设备的信息。扭曲的情况也是如此。这将是完美的使用MQTT作为协议的扭曲,但需要有一个为每个类型的物联网功能的信息内容的标准。


  其他研究和协议

  在考虑协议和框架方面,确实有一个错综复杂的选择;大多数是学术性的。智能维护系统中心在网络物理系统(CPS)22领域非常活跃。Jay Lee博士是该中心的主任和领导发展的一个概念叫5C architecture23 24 25。5C代表连接、转换、网络、认知和配置。这是一个可以应用于我们的工作的通用框架,因为目前部署了使用此方案的系统。

  还有其他的协议在reference26。它提到高级消息队列协议(AMQP)简单/流面向文本的消息传递协议(跺脚),还有流行的数据格式,如XML和JSON。有很多材料可以考虑,但同时,现在有足够的标准和开发框架。


  专有解决方案的例子

  该酒吧是一个物联网入门套件,是由康拉德,由中继、设计和制作的mikroelektronika27创建。它包括用于感知光、温度、加速度、红外线、声音、湿度等等的物联网模块。这些模块依次通过蓝牙连接与主模块通信。主模块没有传感器。它的工作是与中继提供云服务通过基于MQTT交流通信方案。从云服务,用户可以访问他们的Android或基于iOS的智能手机或PC从这些模块的数据,这是一个聪明的包和深思熟虑。不提供硬件,而提供同等的云服务,但他们是不兼容的中继。即使他们使用MQTT,它们不能互换。

  该中继云软件是闭源的,但主要的模块的代码应该是可用的开源嵌入式世界2015。当这种情况发生时,用户应该能够创建自己的云解决方案。无论如何,问题仍然是没有一个开放的平台可以使用。任何定制解决方案都必须重写现有功能,以适应自定义或打开的云。

  另一个解决方案,即将从adafruit28。在博客中宣布说介绍,“在Adafruit,我们出售的所有这些神奇的成分,但我们找不到与他们在互联网上的一个好方法。当然有很多伟大的服务有数据记录,或与你的单片机通过网络,但这些服务要么太复杂的开始,也不是特别有趣。“我不能同意更多。

  消费和一个易于操作的仪表盘显示的实时数据是Adafruit提供的点。他们实施双向互动通过RESTful API,和某种程度的MQTT的支持。该框架是建立Node.js(已提到),露比在铁轨上,PostgreSQL,Redis和Memcached。

  在这里,在Adafruit,是一家致力于开源公司。然而,他们不得不推出自己的解决方案,因为一个尚未开放的解决方案。


  为物联网开放解决方案工作的组织

  物联网的话题绝对是热门话题。从2015消费电子展,Adafruit已经存档us29观看演讲很有趣。三星承诺开放,听起来不错。

  我提到的Reference1发表在这篇文章的时候。当我写完这篇文章的时候,另一篇文章刚刚出版。这个最新的文章中提到的公司和组织形成联盟,研究这一问题制定标准和协同opportunities30。

  其中一个是东西联盟”“互联网(IoTC)。我提到的问题,即物联网正在成为一个营销富矿,似乎是有根据的。他们的主页上说:“鱼类研究实验室进行的研究项目主要集中在了解消费者的购买意向,使用模式和物联网产品的认识。”在他们的网站上列出的组织很有钱,但我不认为这会对行业用户和IIoT设备4。IOTC是消费者集中的实体。

  另一个组织是AllSeen alliance31引。尽管它的网站看起来像是一家营销公司,但它对开发人员来说具有重要的技术内容。“AllJoyn”代码框架是开源但只支持C,C++,C,和java语言。

  这些实体激励我预测没有统一的物联网标准。我怀疑会有一个IIoT和产业4。我把辩论留给知识分子,看是否应该如此。


  结论

  有很多技术,但没有人把一个开放的集合在一起,满足我们的需要。市场中存在的解决办法是有限的、封闭的或为特殊利益集团开发而设立的。此外,像业余无线电爱好者一样,这是一个能够进行大量实验以满足基层标准需要的小组。我喜欢有竞争想法的想法,但我希望他们是开放的,而不是大企业赞助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值