尽管该术语经常被宽松地应用,但严格定义的“物联网”(IoT) 是指通过 Internet.Protocol 在网络上通信或可访问的嵌入式设备。在本文中,物联网“解决方案”和物联网“架构”指的是使嵌入式设备能够连接到物联网的网络基础设施、拓扑或技术。
与所有嵌入式设计一样,应选择添加物联网连接以满足特定的应用要求。并非所有应用程序都面临相同的挑战,因此已经提出、创建和部署了不同的架构。在本文中,我将简要描述然后讨论 开发人员使用FreeRTOS 的三种对比鲜明的物联网架构。这三种架构是传统的“网络服务器设备”、“虚拟云设备”和“点对点”直接到设备的配置。这些只是许多可以选择的架构中的三种(包括这三种架构的混合体)。
对于那些更熟悉使用 Web 和云设备进行物联网连接的传统方法的人来说,这里使用术语对等 (P2P) 来描述一种架构,该架构直接与部署的物联网设备建立双向命令和数据连接,因此术语“直接到设备”。 Nabto 是点对点架构的一个例子。Nabto 使用 FreeRTOS 提供跨所有嵌入式平台的通用运行时环境,以利用其低功耗、无滴答运行的优势。)
用例
从广义上讲,有三个基本的物联网用例类别:
数据监控和采集。 此类用途的示例包括运输公司在卡车在全国范围内移动时监控其卡车的位置、生产公司监控制造的零件数量、车辆保险公司记录其客户的驾驶习惯,或维护公司监控已部署设备的性能属性,以便在潜在故障发生之前对其进行预测。
提供控制接口。 此类用途的示例包括能够远程打开或关闭农场的动物饲料槽,远程改变排水系统中泵的速度,远程切换生产线正在生产的零件,或者只是打开或关闭关闭一个窗口。控制界面可以由中央监督和控制计算机系统以编程方式驱动,或由用户手动驱动。
提供图形用户界面 (GUI)。 对于上述用例 1 或 2,GUI 为使用 IoT 设备的用户提供了一个界面。通常需要 GUI 来向不同类别的用户显示不同的屏幕。例如,远程维护技术人员(甚至会计师)可能可以访问本地操作员无法访问的屏幕和数据。
挑战
不同的用例带来不同的挑战,因此由不同的物联网架构提供服务。用例可能需要确保 IoT 上的节点能够:
被标识和定位,可能被命名,并分配一个 IP 地址
部署在客户的网络防火墙后面时可以访问
在没有互联网的情况下运行,特别是在设备调试期间
从不同的地理区域使用,这可能需要语言、货币或测量单位转换(国际化)
仅由经过身份验证的用户访问,或仅将他们的数据发送到经过身份验证的服务器
确保通过 Internet 传输的数据已安全加密
确保数据存储和数据库安全且私密(谁拥有数据?)
确保所有交换数据和命令的完整性
动态更改正在采集的数据、采集数据的速率或采集数据的发送位置
动态改变连接数或数据流
易于集成,易于使用
具有成本效益
体系结构 1:Web 设备
在本文中,术语 Web 设备是指传统的嵌入式 TCP/IP Web 服务器,如图1所示。
图 1:Web 设备的架构
这种方法已经使用多年,并且有充分的理由。当 IoT 被设想为一个家庭自动化网关,可以协调家中许多较小的设备时,Web 设备方法尤其受到关注。它的主要优点包括:
它使用熟悉的技术
它是完全独立的,不依赖于云服务
CGI(和其他服务器端)脚本可以提供非常强大的控制接口
包含一个简单的 FTP 或 TFTP 服务器将允许在部署后更新网页和脚本(但请注意,必须连接每个部署的设备,然后单独更新)。然而,尽管有这些优点,但快速重读上述物联网挑战表明传统网络设备仅适用于一小部分潜在用例。依次通过每个点会花费太长时间,但以下几点值得强调:
嵌入式固件有很多接口层,因此很复杂。必须提供的层示例包括 TCP/IP、HTTP 解析器、CGI 脚本执行、模板生成和文件系统。
即使是非常简单的 Web 界面也需要大量的 HTML 逻辑,因此需要计算时间、内存资源和高带宽。
在包括 DHCP 服务器(IP 地址的动态分配)和防火墙的标准网络上部署 Web 设备可能需要在终用户的路由器中设置特定规则,以便使 Web 设备可访问。
从防火墙外部访问 Web 设备需要 VPN、端口转发、动态 DNS 或这些技术的组合。对于日常用户来说,这些都是复杂的技术。
架构 2:虚拟云设备
虚拟云设备通常有少量固件,包括 IP 堆栈和将数据推送到预先确定的云服务器的规则。用户与云服务器而不是物联网设备本身进行通信,因此才有了“虚拟”术语。
图 2:虚拟云设备的架构
再次回顾物联网挑战列表表明,虚拟云设备能够克服标准网络设备无法克服的挑战。以下是虚拟云设备的一些值得注意的优势:
它们稀疏的资源需求有助于降低成本和功耗。
呈现的界面驻留在易于访问的云端,只需调整单个集中式服务器即可轻松响应新的界面需求。
国际化可以在服务器中实现。
对于需要连续记录数据以供将来离线分析(所谓的“大数据”收集)的应用程序,这是一种有效的解决方案。
然而,再次仅克服了挑战的子集,尽管方便地是与标准网络设备克服的挑战不同的子集。以下几点也值得强调:
虚拟云设备适合只需要从物联网设备推送数据而不是向物联网设备推送数据的应用程序。
它本质上是不灵活的。编译固件时决定推送哪些数据、推送数据的频率以及推送数据的位置。这种不灵活还会导致带宽浪费,因为数据的数量和频率是固定的,必须考虑到坏的情况。
对互联网连接有内在的依赖。
数据平均过期时间为推送间隔的一半。
如果数据存储在其他人的服务器上,隐私可能会成为一个问题。
架构 3:直接对等设备
与仅与云服务器通信的虚拟云设备不同,启用 Nabto 的设备仅出于以下两个原因使用云服务器——所有其他通信都直接与部署的物联网设备本身进行。
图 3:点对点连接选项
Nabto 设备使用云服务器来:
直接与 IoT 设备调解并建立连接,每个 IoT 设备都有一个可解析的 URL,例如 serialnumber.myDomain.net,而不是预先确定的 IP 地址。
使用“UDP 打孔”建立连接,这是 Skype 等 IP 语音 (VoIP) 服务使用的一种技术。如果您熟悉 Skype 的使用,您就会知道您可以在通话时将呼叫连接到该人的任何位置(即使他们在防火墙后面),只需知道该人的 Skype ID,并拥有该人同意可以建立联系。用于建立呼叫的技术对用户是隐藏的,为用户留下一个简单的点击通话用户界面。
使用 FreeRTOS+Nabto,您可以连接到远程物联网设备,无论该设备在连接时位于何处(即使它位于防火墙后面),只需知道设备的 URL,并作为合法用户进行安全验证。同样,用于建立连接的技术对软件集成工程师是隐藏的,他们必须只提供一个 C 函数,而终用户只需要知道物联网设备的 URL。与 Skype 不同,Nabto 使用普通的互联网命名方案和 DNS 系统。
允许通过基于 Web 的丰富用户界面访问微型物联网设备,而物联网设备不需要文件系统或完整的 TCP/IP 堆栈。物联网设备只需要提供大约 10K 字节的代码空间和几千字节的 RAM。这是通过(对用户)将存储和处理 Web 内容的负担无缝地转移到功能强大的大型云服务器,让 IoT 设备使用低带宽协议提供实时数据和接收命令来实现的。此外,网络内容缓存在用于查看用户界面的网络浏览器、平板电脑或智能手机应用程序中,即使在没有互联网连接的情况下也可以访问设备。
图 4:使用 Nabto 为小型物联网设备创建丰富的用户界面
回顾 IoT 挑战列表表明,这种类型的点对点架构为每个列出的挑战提供了解决方案。方便的是,从 IoT 设备设计人员的角度来看,它也是容易集成的设备之一,而从终用户的角度来看,部署后更改数据采集决策的能力使其成为灵活的设备之一。内置加密和身份验证,用户可以完全控制数据存储和隐私。