基本上不用你说,IT圈里的人都清楚,物联网(IoT)非常重要并且正以极高的速度飞速增长。据市场研究机构BI Intelligence估计,到2019年物联网设备将会达到233亿部。随着物联网连接越来越受企业关注,部署企业物联网(EIoT)时需要考虑四个关键问题:
1.企业物联网终端设备的数量——到2019年将达到10亿部。
2.物联网设备的数据生成频率——市场研究机构IDC预测,到2025年,全球平均每名接入物联网的人每天要与联网设备进行4800次交互,相当于每18秒交互一次。
3.海量的物联网数据量——IDC预测,全球在2025年将生成的163泽字节数据,其中60%将来自物联网终端并且有半数(大约49泽字节)将存储在企业数据中心内。
4.设备的安全面临严峻挑战——IDC预测,到2025年,存储的企业数据中有45%的敏感数据处于需要被保护但却没有被保护起来的状态。
现在,如果你是一名早期采用者,那么你可能已经构建起了自己的物联网基础设施,或许正在部署端点设备。这时你会发现,在企业物联网领域,自己动手完成这些部署困难重重。另一方面,如果你正打算进入物联网世界,但是又不想自己开发构建方案,那么你应该选择什么平台呢?为了让调研工作更为容易些,我们在此列出了六个领先的企业物联网平台,它们不仅非常优秀而且都是企业级的。
广义的物联网架构
企业物联网的构建模块
在开始接触这些产品之前,让我们来看看企业物联网的构建模块。首先,要考虑自己将使用的端点设备的种类或类型。目前已有成千上万的现成产品可用于原型设计、跟踪车辆和产品、监控环境条件、控制设备,以及报告各种事物的状态。凡是你能说得出的,可能都会有一个现成的设备在等着你来使用。由于大多数平台都没有设备限制,所以我们选择EIoT平台也没有太多的约束。也就是说,仅有少数平台只支持特定设备,且在某些情况下仅支持单一类型的设备。
或许,你可能不得不自己动手DIY,将物联网功能构建到自己的现有流程和产品中。
在端点硬件方面,现在可供使用的单板计算机非常多(例如Arduino、Raspberry Pi和SolidRun的HummingBoard-Gate),你也可以选择其他更为智能的设备。
在通信方面,你可以使用MQTT、HTTP/ HTTPS、AMQP、XMPP、DDS和CoAP等行业标准协议,并轻松找到兼容的EIoT平台。如果端点设备使用了不被支持的协议,那么你可以使用物联网网关对协议进行转换,从而让它们能够与EIoT平台进行通信。
雾计算与物联网
接下来是一个可选的中间服务层,通常被称为雾计算,它们位于端点设备和云之间(这是一个主要的营销战场,因此你会发现这个层有很多种称呼)。在雾计算层,数据聚合、过滤和处理等功能可被用于优化通信带宽。例如,只发送关键数据或摘要以改善通信性能,从而减少数据成本或降低云处理负载(如机器学习或执行统计分析)。
思科的Fog Data Services和微软的Azure IoT Edge都是雾计算产品,不过后者侧重于将过滤和处理功能转移到设备本身上,让设备实际上成为一个额外的端点-设备层,而不是通常认为的雾计算。是否需要雾计算取决于选择的端点设备以及部署环境中的通信限制。
值得指出的是,在需要实时或接近实时交互的物联网情况下(例如,在达到液位时关闭阀门),你的设备要足够智能以低延时或无延时地响应并控制事件,或者是依靠雾计算来处理传感器数据并向执行器发出控制信号。
通常,从端点设备到雾计算服务的延时在几毫秒到几秒之间。将这种延时与将设备或雾计算服务连接至EIoT平台所造成的几秒至几分钟的延时相比较,你会发现雾计算在现实环境中具有重要作用。
物联网网关
在雾计算系统中你会发现另一项服务,即物联网网关。物联网网关最常见的用途之一是作为桥梁连接终端设备,例如通过Wi-Fi连接到另一个媒介,如以太网或蜂窝服务。网关还可以在协议之间进行转换。例如,它们可能会将来自于端点设备的HTTP请求或自定义协议转换为MQTT消息。
托管物联网平台
最后,我们将到达云端上的企业物联网平台核心。这就是托管的平台即服务(PaaS),其会提供发布-订阅(pub-sub)或请求-响应(RR)消息代理系统。使用哪种消息模式取决于设备的可用协议、限制和性能。
物联网数字孪生
许多EIoT平台都提供的一个功能是虚拟端点设备。这些虚拟设备有多种称呼。如,AWS IoT Core把它们称作“设备阴影”,微软则称它们为“孪生”。虚拟端点设备为文档或数据库记录,允许其他设备与实际设备的最后已知或预测的未来状态进行交互,即便实际设备未被连接。例如,一个端点设备将水浴的温度设置为200华氏度,但设备由于某种原因必须断开连接,并且在水浴达到目标温度时可能仍无法重新连接,这时可以设置虚拟的端点设备以显示它们将要实现的目标温度和时间。其他需要与水浴交互的设备此时能够读取设备未来目标状态,而不需要测量设备在线。
企业物联网安全
物联网架构还有一个至关重要的环节,这个环节适用于所有层,即安全性。鉴于不安全的物联网产品带来的问题和相关责任,如2016年对DNS服务管理公司Dyn的大规模分布式拒绝服务(DDoS)攻击,因此强大的安全性是绝对需要的。我们在此列出的所有EIoT解决方案也都有着出色的安全性。
那么,哪个企业物联网平台最符合你的需求呢?最重要的是,成功的企业物联网解决方案需要从端点设备开始,从雾计算层到云端,最后再到EIoT平台都进行严谨的工程设计。在数据被EIoT平台采集后,它们的处理、加工和存储方式将决定数据的可管理性和可操作性,以及EIoT系统的成本和价值。
亚马逊AWS IoT
AWS IoT Core 的仪表盘
亚马逊物联网解决方案的核心是AWS IoT Core。该平台主要基于发布/订阅消息代理服务构建,支持HTTP 1.1、WebSockets和MQTT 3.1.1版本,具有X.509双向认证、加密和精细化权限等功能。代理的前端是设备网关,后者负责管理活跃的设备连接和处理协议语义。亚马逊称,该网关能够自动扩展,支持超过10亿台设备。除了这些功能之外,Registry还为每个设备分配一个唯一标识,可跟踪如属性和质量等设备元数据以及可选的虚拟设备(“设备阴影”)。
AWS IoT对硬件没有限制,因此AWS IoT SDK提供的工具几乎支持用户选择的任何端点设备。除了针对安卓、ArduinoYún、嵌入式C和C ++、iOS、Java、JavaScript和Python的SDK之外,它们还提供了开源库、开发指南、示例代码和移植指南。
Rules Engine(规则引擎)也是AWS IoT Core的一个重要功能,其可以分析入站消息,根据需要对其进行转换,并按照用户定义的规则将它们路由至服务或设备那里。这些服务涵养了所有的亚马逊AWS服务端点,其中包括AWS Lambda(云代码托管)、Amazon Kinesis(实时大数据处理和分析)、Amazon S3(大规模对象存储)、Amazon Machine Learning、Amazon DynamoDB(NoSQL数据库服务)、Amazon CloudWatch(AWS云监控)、内置了Kibana可视化功能的Amazon Elasticsearch Service以及Amazon Simple Notification Service。借助这些工具和服务,用户可以在全球范围内构建物联网系统。
AWS IoT 1-Click
亚马逊网络服务还提供了一个名为AWS IoT 1-Click的特色物联网平台。虽然该平台建立在亚马逊通用物联网服务的基础之上,但是其主要被设计用于处理由物理“按钮”生成的简单事件通知。这些按钮事件会触发托管在亚马逊网络服务上的功能和服务。例如,单击时,会议室中的AWS 1-Click按钮会发出会议已开始的信号,双击时表示会议已经结束,设备应当被清理。由于按钮可以被快捷地部署到任何地方,因此可以用来提升客户参与度,扩展应用程序,或是发出任何由用户驱动的事件或需求的信号。
AWS IoT 1-Click的按钮硬件
AWS IoT 1-Click目前仅支持两种类型的设备:带Wi-Fi功能的AWS Enterprise Button和使用蜂窝通信的AT&T LTE-M Button。
AWS IoT Enterprise Button实际上是一个重新设计的亚马逊Dash Button,后者是为了让用户从亚马逊那里订购消费产品变得更加便捷而设计的(需要更多洗衣皂?按下带有洗衣皂标志的按钮,肥皂将在几天后送达,同时你的信用卡也将会被扣款)。除了购物外,这种简单的设备还可用于其他目的。从一开始,它们就展现出了这种潜力。
AT&T LTE-M Button使用的是AT&T的LTE-M网络。该网络专为那些需要广泛覆盖范围并具有较长电池待机时间的低功耗简单设备而设计。
AWS IoT 1-Click的架构
当上述两种设备上的按钮被按压时(单击、双击和长按均可被识别),安全且加密的消息就会被发送至AWS IoT Core。AWS 1-Click服务消息传递采用的是MQTT协议,因此该按钮实际上是MQTT订阅服务器,AWS IoT Core的作用是充当MQTT消息代理。由按钮发送的消息指定了设备ID,同时AWS IoT Core的Rules Engine会确定应该完成哪些工作,这几乎可以实现用户可以想到的任何功能。
配置、管理和报告也均可以通过AWS IoT控制台或AWS IoT Button Dev应用(适用于iOS和Android)完成。
思科系统公司的Jasper
Jasper控制中心架构
思科系统公司的Jasper专注于移动设备,目前已有超过50家服务提供商使用该产品在120多个国家为8500多万台活跃的物联网设备提供服务,并且每月还将新增250多万台设备。
使用蜂窝和LPWAN的设备由物联网控制中心进行管理,而运行在NB-IoT广域网上的设备则通过NB-IoT控制中心进行管理。在这两种情况下,控制中心功能都包括设备监控、诊断、认证和欺诈检测。用户还可以添加其他控制中心服务,例如自动化软件包、集成软件包、分析软件包、针对特定用途的平板电脑的智能安全与威胁防护,以及流量分段。
为开发新的蜂窝和LPWAN端点设备,思科提供了AT&T物联网开发人员套件。
思科Jasper的物联网控制中心
思科物联网产品的特殊优势在于其广泛的物联网硬件产品线,其中包括路由器、物联网网关、交换机和无线接入点。思科还提供了适用于雾应用的Linux应用环境,即IOx操作系统。对此,思科解释说:
雾应用提供了在分布式网络基础设施内转换物联网传感器数据和执行控制功能的能力。借助路由器、交换机和计算卡对IOx的支持,分布式物联网网络可作为雾应用的计算环境。雾应用的部署示例包括站点资产管理、能源监控和智能泊车等等。
思科的雾管理器的设计用途为,在从应用开始部署到调整管理再到应用退役的整个过程中,对带IOx功能的雾应用的大规模生产部署进行管理。雾管理器可通过Web GUI交付,或者是通过API与网络管理系统集成在一起。雾门户的用途是服务于雾应用开发。思科称:“它们提供了所有的开发者资源以帮助开发人员进行开发和测试。同时它们还通过Fog Director让这些应用能够被部署。”
去年,思科还推出了Kinetic IoT平台,其中包括连接管理、雾计算和针对众多互连的端点设备的数据传输。系统的蜂窝和LPWAN功能来自Jasper平台,因此它能够同时处理有线和无线设备。Kinetic最终可能会成为思科物联网解决方案的主要平台。
微软Azure IoT
微软Azure IoT架构
微软将Azure IoT描述为“完全托管的SaaS(软件即服务)解决方案,可轻松连接、监控和管理用户的物联网资产。”Azure IoT提供两种类型的软件库(适用于.NET、C、Java、Node.js和Python):用于在端点设备上构建应用程序的设备库,以及用于管理Azure IoT中心、发送消息、规划任务和向用户物联网设备发送更新的服务库。
目前微软已经开源了他们的很多物联网技术,其GitHub仓库是学习使用Azure IoT的最佳途径。
Azure IoT Hub提供了两个层,基本层和标准层,区别在于它们支持的功能数量不同。如果你的物联网解决方案是建立在收集设备数据并进行集中分析的基础上,那么基本层可能就够用了。如果你想要使用更高级的配置来远程控制物联网设备或将一些工作负载分配到设备上,那么你应该考虑标准层。
根据在每天能够处理的数据吞吐量,每个IoT Hub层都有1、2、3级三种级别。其中,1级IoT Hub的每个单元每天可处理40万条消息,3级IoT Hub的每个单元每天则可处理3亿条消息。
Azure IoT Hub中的重要概念是设备孪生和IoT Edge模块孪生,它们是描述实际端点设备和Edge模块的文档。这些双胞胎位于IoT Hub上,用于报告当前状态信息,如可用的功能和条件,以及在设备应用和后端应用之间同步长时间运行的工作流的状态。
物联网协议网关包括一个标识注册表,表中存储了作为物联网配置的设备的全部信息。用户可以监视资产状态,查看设备是否连接到网络以及设备的最后已知活动。
微软Azure IoT Central自定义仪表盘
IBM Watson IoT
IBM Watson IoT架构
IBM Cloud专用的IBM Watson IoT平台包括直接连接的应用、支持行业标准协议的端点设备、网关、设备管理,以及能够让用户收集和存储实时物联网数据并执行按需分析的外部服务集成。
应用程序可通过HTTP REST API使用API密钥和令牌直接连接到Watson IoT平台,或直接绑定应用程序。另外,与直接连接的物联网端点设备一样,MQTT也可作为连接方法使用。
Watson IoT网关使用MQTT或HTTP消息协议连接至Watson IoT平台。与此同时,IBM为C ++、C#、嵌入式C、Java、Mbed C ++、Node.js、Node-RED和Python提供客户端库支持。Edge Analytics将分析规则触发流程从云端转移到了一个带edge-analytics功能的网关上。
Watson IoT平台能够处理包括设备孪生功能和资产孪生功能在内的数据管理。设备孪生功能使得用户能够对不同格式的设备数据进行收集、转换和标准化,并将这些应用到一个单一的逻辑模型中。资产孪生功能则可使用户将不同设备编组在一起,以创建一个Thing,这是一个更高级别的基于价值资产的数据结构。用户还可将多个Thing编组在一起创建新的Thing。无论个人设备或Thing使用什么样的数据格式,应用都可与逻辑模型进行交互,
Watson IoT平台还允许用户将选定的IoT数据添加到私有的安全区块链中,以便用户与涉及交易的特定业务合作伙伴共享数据。Watson IoT能够过滤设备事件,并仅将需要的数据发送给区块链合约。此外,它们还能够将来自一种或多种类型设备的数据转换为区块链合约API所需的格式。
IBM Watson IoT 自定义的设备仪表盘
谷歌Cloud IoT Core
谷歌Cloud IoT Core的架构
鉴于谷歌的全球影响力,他们提供企业级物联网解决方案并不奇怪。谷歌的云服务范围广泛,几乎包括了存储、大数据、分析和机器学习等部署物联网所需的一切东西。
谷歌Cloud IoT Core的核心是支持MQTT和HTTP连接的Cloud Pub/Sub消息代理。通过代理收集的数据将被汇总并被转发给谷歌Cloud数据分析服务。谷歌目前已与英特尔、ARM、Marvell和Allwinner等设备制造商,以及Bright Wolf、Losant和Afero等公司应用开发人员展开合作,该平台支持几乎你能想到的任何端点设备。
Cloud IoT Core包含处理端点设备配置和设备认证的设备管理器。你可以通过其基于Web的控制台访问设备管理器,也可以通过API以编程方式访问设备管理器。除了处理负载平衡外,协议桥还提供了设备通信接口。其客户端库可用于Go、Java(安卓)、.NET、JavaScript、Objective-C(iOS)、PHP、Python和Ruby。