基于对物联网开发平台的详细分析,本文对当前物联网软件平台的情况进行了全面的综述。
首先,创建一个对任意物联网软件平台都很重要的关键功能列表。然后,比较不同功能在不同平台上的实现程度。最后,根据观察得出物联网软件平台的期望功能列表。
物联网平台
1999年,凯文·阿什顿(Kevin Ashton)首次提出物联网(IoT)这一专有名词,从那之后,物联网经历了快速的变革。近年来,联网设备的种类和数量呈指数级增长,物联网已成为一项很有潜力能够推动现代社会生活方式变革的主流技术。
目前,在物联网的技术工程方面,硬件平台和软件平台之间存在明显分离,大部分平台都专注于硬件,只有少数提供物联网软件平台:举例来说,在Mattermark排名(基于公司获得的总资金)前100的物联网初创公司中,只有大约13家提供软件平台。
本文旨在对物联网平台进行详细分析,然后对目前物联网软件平台的现状进行概述。本文选取候选物联网平台完全是基于平台是否能处理物联网设备的信息。注意,尽管本文试图全面,但可能没有包括所列物联网软件平台的最新改进。
物联网软件平台的重要功能
基于最近的几项调查,我们用以下几个重要功能对物联网软件平台进行比较:设备管理,整合,安全,数据收集协议,类型分析,支持可视化。本文的后半部分将简要介绍这些特性。
设备管理与整合支持
设备管理是物联网软件平台很重要的一个功能。物联网平台需要维护一系列连接设备并跟踪它们的运行状态,平台还需要能够处理配置、固件(或任何其他软件)更新,并提供设备的错误报告和错误处理。在一天结束时,用户要能够获取单个设备的统计信息。
整合支持是另一个很重要的功能。API接口需要获取物联网平台的重要操作和数据,用REST API很容易实现这一点。
信息安全
物联网软件平台要求的信息安全系数远高于其它软件应用和设备所需。众多设备与物联网平台相连接就意味着要能够预测出部分危险。一般情况下,物联网设备与物联网软件平台之间的网络连接需要通过强大的加密机制进行加密,以防窃听。
然而,现代物联网软件平台中大多数低成本、低功耗设备都不支持这种先进的访问控制措施,因此就需要物联网软件平台依靠其他的方法来解决这种设备级问题。例如,将物流网流量分流到专用网络,在云应用程序中实现强大的信息安全,定期更新密码,并通过身份验证支持可更新固件,签署软件更新都可以加强物联网软件平台的安全性。
数据收集协议
另一个需要注意的是用于物联网软件平台组件之间数据通信的协议类型。一个物联网平台可能会扩展到数百万甚至数十亿个设备(节点)。轻量级通信协议应用于实现低能耗和低网络带宽功能。
注意虽然本文中使用协议作为一个总称,但是用于数据收集的协议可以分为几个类别——例如应用程序、有效负载容器、消息传递和遗留协议。
数据分析
将与物联网平台相连的传感器中所收集的数据以智能的方式进行分析,能够获得有意义的结论。
可以对物联网数据进行四类的分析:实时分析、批量处理分析,预测分析还有交互式分析。实时分析是对流数据进行在线(实时)分析。示例操作包括基于窗口的聚合、过滤、转换等。
批量处理分析是对累积的数据集运行操作,因此,它按预定的时间周期(可能持续几个小时或几天)运行。预测分析是基于各种统计技术和机器学习技法做出预测。交互式分析是在流数据和批数据上进行多个探索性分析。最后一个是实时分析,它在每个物联网平台上运行的最多。
当前物联网软件平台
仔细研究当前物联网软件平台,可以发现上述功能都不同程度地得到了实现。列出相关平台并对其特性进行了总结比较:
- Unknown标记的说明在资料中找不到相关信息
- AWS 物联网已经获得了2lemetry
- Cisco已经获得了ParStream
从上方列举的物联网公司来看,很多平台没有实现成熟的设备管理。这是物联网软件平台需要解决的很重要的一个问题。
此外,这些平台也很少对生成的物联网数据进行计算和可视化分析。大多数都支持实时分析——这是物联网框架必须具备的功能。然而,只有少数物联网软件平台支持其他三种类型的分析。在视觉界面方面,它们大多集中于web门户的简单模式。这些仪表板可以管理物联网生态系统,但很少能提供可视化数据分析功能。
这些平台还有其他一些共同点:基于REST API的集成、支持MQTT协议作为数据收集手段以及使用SSL进行链接加密。表中没有提及只有ParStream有每秒三到四百万的通量。这表明,大多数物联网软件平台的设计都没有考虑到物联网部署在实际操作中的系统性能方面。
有待提升的功能
很明显有几个地方需要提升。本节我们先列举可以用于提升的功能。其中有一些已经实施了,有一些新功能还未应用。然后列出了目前还没有任何物联网软件平台提供的一些新功能。
已有的功能
数据分析
大多数物联网软件平台都支持实时分析,但批量处理分析和交互式分析也同等重要。
在这一点上,可能有人会说,在其他的数据处理平台上可以进行这两种类型的分析,这只是对软件系统进行分析场景配置的问题。但是,说起来容易做起来难。著名的实时数据处理系统(Storm、Samza等)、批量处理系统(Hadoop、Spark等)、预测系统(Spark MLLIB等)、交互系统(Apache Drill等)不能像物联网那样直接应用。
基准
物联网软件平台需要可伸缩,并包含描述和评估系统性能的设施。需要设计定义良好的性能指标来对物联网系统的性能进行建模和度量,需要考虑到网络特性、能源消耗特性、系统通量、计算资源消耗和其他操作特性。
边缘分析
需要采取措施减少传感器设备和物联网服务器之间存在的巨大网络带宽消耗。使用轻量级通信协议是一种解决方案,另一种方法是边缘分析,它可以减少传输到物联网服务器的原始数据量。边缘分析甚至可以在(如Arduino)简单的硬件嵌入式系统中实现。
其他问题
注意,本文并没有涉及与物联网软件平台相关的伦理、道德和法律问题,这些很重要,但已经超出了本文解决的问题范畴。
需要增加的新功能
无序处理
任何物联网应用程序都可能出现无序事件; 网络延迟、时钟漂移等原因可能会造成物联网传感器内事件流中元组的无序。无序物联网事件处理可能导致系统故障,处理这种混乱需要在结果准确性和结果延迟之间进行权衡。
有四种主要的解决方法:基于Buffer技术、基于Punctuation技术、基于Speculation技术和基于Approximation技术。解决物联网中的无序问题需要综合运用这些技术。
物联网的上下文支持
上下文主要由个人的位置、所陈述的偏好或过去的行为构成。以手机为例,通过手机中存在的各种不同类型的传感器,可以访问丰富的上下文信息。物联网分析需要考虑这些上下文数据。
结论
物联网范式的快速发展需要强大的物联网软件平台来满足物联网使用的需求。本文研究了当前最先进的物联网软件平台的功能。调查的重点是设备管理、集成、安全、数据收集协议、分析类型、可视化支持等方面。
从本研究中可以看出,设备管理、物联网数据分析、物联网软件系统的可扩展性和性能特征等领域都需要物联网软件平台多加关注。