以下为译文:

本文以我们对各大物联网供应商的详细分析为基础,为读者献上一份当前物联网软件平台的调查报告。

首先,我们总结出了物联网软件平台的关键性功能列表。接下来,我们比较了当前各大物联网软件平台在这些关键功能方面的实现。最后,我们根据观察的结果总结出了物联网软件平台应当具备的各项功能。

引言

自1999Kevin Ashton首次提出物联网(Internet of Things,即IoT)这个概念以来,这个领域已经历了快速的变革。由于近年来连接到互联网设备的种类和数量呈指数级增长,物联网已成为一种主流技术,具有推动现代社会生活方式的巨大潜力。

目前在物联网的技术和工程方面,硬件和软件平台之间出现了明显的脱节——大多数供应商都专注于硬件。目前,该行业中提供物联网软件平台的供应商寥寥无几,例如在Mattermark排名中位居前100的物联网创业公司(根据各家公司获得的总资金)中,大约只有13家创业公司提供物联网软件平台。

文本旨在根据我们对物联网供应商的详细分析为基础,为读者献上一份当前物联网软件平台的调查报告。文本初步筛选物联网供应商的准则完全基于供应商是否提供能够处理物联网设备/传感器信息的软件解决方案。请注意,虽然我们努力做到全面详尽,但本文可能依然无法反映出各大物联网软件平台最新的一些进展。

物联网软件平台应有的重要功能

根据最近的几项调查,我们选择了以下功能作为评测物联网软件平台的重要指标:设备管理、集成、安全性、数据收集协议、分析类型以及对可视化的支持。下面让我们简要介绍一下这些特性。

设备管理和集成的支持

设备管理是所有物联网软件平台都应具备的首要功能。物联网平台应当维护与其联网的设备列表,并跟踪这些设备的运行状态。此外,物联网平台应当能够应对配置和固件(或任何其他软件)更新,并提供设备一级的错误报告和错误处理。最后,设备的用户每天都应该收到一份各个设备的统计信息。

有关集成的支持是物联网软件平台应有的另一个重要特性。API应该提供主要操作的访问,以及物联网平台需要公开数据的访问。通常这类API的实现都应该采用REST API。

信息安全

物联网软件平台上信息安全措施的重要性远远高于一般的软件应用程序和服务。假设连接到某物联网平台的设备数量高达上百万台,则意味着我们需要针对相应数量的漏洞做好防护。一般来说,物联网设备和物联网软件平台之间的网络连接需要使用强大的加密机制进行加密,以避免被窃听。

然而,现代物联网软件平台中绝大多数低成本、低功耗的设备都无法支持这类先进的访问控制措施。因此,物联网软件平台本身需要实施相应的措施来处理此类设备级问题。例如,采用专门的网络连接物联网,采用云应用级别的强信息安全措施,定期更新密码并通过身份验证支持可更新的固件,采用签名软件更新,诸如此类的措施都可以提高物联网软件平台的安全级别。

数据收集协议

还有一个重要的方面需要注意,即物联网软件平台的组件之间采用的数据通信协议类型。有时,物联网平台可能需要扩展到数百万甚至数十亿个设备(节点),所以理应通过轻量级通信协议来实现低能耗、低网络宽带的功能。

请注意,虽然在本文中我们总称为协议,但实际上数据收集协议可以分为几类——例如应用程序、有效负载容器、消息传递和传统的协议等。

数据分析

从连接到物联网平台的传感器收集的数据需要以智能的方式进行分析,才能获得有意义的深刻见解。

针对物联网数据的分析主要分为四大类:实时分析、批量分析、预测分析和交互式分析。实时分析对流数据进行在线(即时)分析。代表性的操作包括基于窗口的聚合、过滤、转换等。

批量分析是针对累计的数据集运行的操作。因此,批处理操作会在预定的时间段内运行,有的只需数小时,而有的则有可能持续数天。预测分析主要是基于各种统计和机器学习技术进行的预测。交互式分析是针对流传输和批处理数据进行的多种探索性分析。最后,所有物联网软件平台都比较侧重实时分析。

现下流行的物联网软件平台比对

针对当前物联网软件平台环境的详细调查表明,各大平台都在不同程度上实现了上述每个功能。下表我们详细对比了各个平台中各项功能的实现:

注:上述列表中注明“不详”的单元格表示未能从现有的文档中找到相关信息。

从上表列出的物联网创业公司可以清楚地看出,拥有完全成熟的设备管理功能的公司依然屈指可数。这是一个重要的空白区域,需要由物联网软件平台供应商解决。

此外,在物联网数据的分析中,计算和可视化方面的支持相对更少。但大多数都支持实时分析,当然这也是因为实时分析是任何物联网框架中必不可少的功能。只有少数物联网软件平台支持其他三种类型的分析。在可视化界面方面,大多数平台专注于Web门户的简单模式。这些仪表板虽然可以支持物联网生态系统的管理,但极少提供可视化数据分析的功能。

纵观所有的物联网软件平台,常见的支持功能包括基于REST API的集成,支持MQTT协议的数据收集,以及使用SSL链路加密。虽然上表中没有提及,但只有ParStream的文档表明了其吞吐量为3-4百万行/秒。这表明大多数物联网软件平台的设计都没有考虑物联网部署的系统性能问题,然而这在实际操作中至关重要。

有待提升的功能

很明显,各大物联网软件平台都有一些有待提升的方面。在本节中,首先我们会总结有待提升的功能列表。其中一些功能已在部分物联网软件平台上得到了实现,而有些新功能则没有。接下来,我们会列举出目前所有物联网软件平台供应商都未能解决的功能列表。

现有的功能

1、数据分析

当前大多数的物联网软件平台都支持实时分析,但批量分析和交互式数据分析也同样重要。

或许有人会说,部分知名的数据处理平台提供了这类的分析,只需配置这类软件系统用于分析即可。然而,说起来容易做起来难,部分知名的数据处理系统,包括实时分析(Storm、Samza等)、批量分析(Hadoop、Spark等)、预测分析(Spark MLLIB等)和交互式分析(Apache Drill等),都无法直接应用到物联网。

2、基准

物联网软件平台需要具备一定的可扩展性,而且还应提供表现和评估系统性能的工具。我们需要设计明确定义的性能指标来建模和测量物联网系统的性能,同时还需要考虑网络特性、功耗特性、系统吞吐量、计算资源消耗和其他操作特性。

3、边缘分析

我们需要采取一定的措施来减少传感器设备和物联网服务器之间耗费的巨大网络带宽。常见的解决方案包括使用轻量级通信协议。还有一种是边缘分析,这种方法可以减少传输到物联网服务器的原始数据量。边缘分析甚至可以在简单的硬件嵌入式系统(例如Arduino)中实现。

4、其他问题

请注意,我们不打算在本文中讨论与物联网软件平台相关的道德和法律问题。虽然这些问题也很重要,但超出了本文的范围。

有待添加的功能

1、乱序处理

所有物联网应用都可能会接收到乱序事件。物联网传感器发出的事件流中乱序的元组可能是由网络延迟、时钟漂移等引起的。乱序的物联网事件处理可能导致系统故障。如果想处理好乱序事件,则需要在结果准确性和结果的延迟之间找到平衡。

乱序处理技术主要有4种:基于缓冲的、基于标点的、基于推测的和基于近似的乱序处理。物联网解决方案应当至少实现其中一种,才能良好地处理乱序事件。

2、物联网上下文的支持

上下文主要来自物联网的位置、它们的喜好或以往的行为。例如,对于移动电话来说,由于如今的移动电话中包含各种不同类型的传感器,所以我们可以访问的上下文信息也非常丰富。物联网分析应该能够考虑这些上下文数据。

总结

物联网范式的快速增长需要强大的物联网软件平台,才能满足物联网领域的需求。

在本文中,我们研究了现下最流行的物联网软件平台的功能。我们的调查侧重于设备管理、集成、安全性、数据收集协议、分析类型以及对可视化支持等方面。从这项研究中可以清楚地看出,物联网软件平台社区应当特别关注设备管理、物联网数据分析以及物联网软件系统可扩展性和性能特征等领域。

原文:https://dzone.com/articles/iot-software-platform-comparison

作者:Miyuru Dayarathna,高级技术主管@WSO2。

信息化和软件服务网 - 助力数字中国建设 | 责编:左右