王圣博,王泽昊,高梓桐,高俊锋
(哈尔滨理工大学 计算机科学与技术学院,黑龙江 哈尔滨 150080)
随着物联网技术的不断发展,社会已进入到一个万物互联的时代。各式各样的物联网设备已相继融入到日常工作和生活中,比如智能家居、智能物流和智慧城市等。物联网设备具有可靠性高和稳定性强的优点,对工作环境和工作时间没有条件限制[1-5]。因此,各行各业陆续使用物联网设备取代传统的人工方案,用来降低人工成本,提高工作效率。
物联网应用项目的典型结构通常包括三个部分:设备节点对象、数据中心对象和服务终端对象。设备节点对象和服务终端对象可统称为物联网设备,而数据中心对象通常归属于云平台的数据服务中心。设备节点对象由嵌入式设备构成,大部分设备并不包含操作系统。嵌入式设备收集各种传感器的监测数据,封装成定制的数据包,并通过通信网络将数据包聚合到数据中心。当数据中心对象接收到来自设备节点的数据包时,解析并处理这些数据,最终存储相应的采集数据。终端节点负责将数据中心对象的数据可视化,一旦数据状态发生了变化,终端节点可以实时更新显示数据。同理,终端节点也可以上传控制指令给数据汇聚中心,经数据汇聚中心解析并处理这些指令数据,最终下发给设备节点对象去执行[6-8]。
由此可知,设备节点对象、数据汇聚中心对象和终端节点对象之间的数据对接显得尤其重要,它是整个物联网应用系统的基础。
在互联网环境中,采用数据直接接入的方式是一种最简单的方法。用作设备节点对象的物联网设备,通过网络通信接口,直接与数据中心对象交换数据[9-10]。但是,这种数据接入方法会产生以下三种主要问题:
(1)安全性问题
任何连接互联网的设备都可以访问设备节点对象、数据中心对象和服务终端对象。无法识别物联网设备的合法性,这将物联网设备的数据直接暴露于网络中,使系统面临着潜在的安全风险。
(2)可靠性问题
即使物联网设备属于合法设备,也无法保证对象满足某种功能。例如设备节点对象不具备采集湿度传感器数据的功能,但下发指令却发出采集湿度数据的命令。
(3)兼容性问题
物联网设备的软件系统存在着显著的差异。一部分物联网设备没有集成操作系统,而另外一部分物联网设备则集成了操作系统。物联网设备所采用的无线通信技术也不尽相同,涉及广域网传输技术和近距离传输技术。物联网设备所使用的网络通信协议也各式各样,包括TCP、UDP、HTTP、MQTT等。因为软硬件的差异,所以数据直接接入就会存在兼容性问题,无法更换或更新设备。
不能很好地解决数据接入问题,就会严重影响物联网系统的可靠性和稳定性。随着物联网系统的规模越来越大,数据接入问题也越来越常见。因此,研究数据接入问题,已经成为物联网技术研究者普遍关注的热点问题之一。
为解决异构物联网设备的数据接入问题,设计了云平台的数据接入架构,如图1所示。与物联网系统的典型结构相似,数据接入架构也将数据接入系统划分为设备节点对象、数据中心对象和服务终端对象三个层次。但是,两者的内部结构又存在显著的区别。
图1 数据接入架构
为提高数据接入的安全性,在数据接入架构中,数据中心对象存在前后两级结构。数据中心对象的前级引入了物联网设备验证环节,用来检验物联网设备和功能的合法性。只有通过安全验证的物联网设备,才能访问数据中心对象的后级数据。这将在很大程度上避免数据中心对象直接暴露在网络环境中,从而降低非法访问的可能性。前级结构独立于后级结构,在物联网设备连入网络之前,数据中心对象必须通过系统管理员注册物联网设备及其功能信息。后级结构依赖于前级的安全验证信息。
为提高物联网设备的兼容性和灵活性,数据接入架构提供了数据接口程序库。数据接口程序库的框架结构如图2所示。数据接口程序库介于硬件和用户程序之间,并为用户数据提供了数据封装和解析的标准接口。数据接口程序并不依赖具体硬件,可以为异构硬件设备提供统一的接口标准,抽象了数据对接的内部细节。用户只需要根据需求选择相应的功能,就可以完成数据的封装和解析,不需要单独处理数据,避免意外的错误。
图2 物联网设备的数据接入接口
为保证通信的正确性和可靠性,通信双方必须使用约定的接入方法;否则,双方通信过程中的数据则被视为非法数据或者干扰数据。物联网设备的数据接入分为两个部分:设备注册和功能注册。数据中心对象的管理员负责设备注册和功能注册,录入相关的设备信息,并导出数据接口程序库用于物联网设备的数据通信。
在物联网设备使用之前,必须首先在数据中心对象中注册这种设备。一旦注册了物联网设备,数据中心对象将会留存物联网设备的相关信息。当与物联网设备通信时,数据中心对象将会校验已连接设备的信息。只有合法的设备,才能访问对应设备的数据域。
设备注册指定了物联网设备的描述信息。设备描述信息包括设备唯一性标识(MAC地址)、设备类型、通信接口类型和通信协议等信息。一般来说,通信模组内置了TCP/IP、UDP、MQTT和CoAP等物联网常用的多种通信协议,可以让设备通过本模块提供的协议在传输层或应用层实现网络通信。但是,不同型号的通信模组,它们的操作方法也不尽相同。因此,网络数据传输的功能是由设备厂商负责实现。
功能注册指定了物联网设备的数据描述信息。数据描述信息包括数据加密类型、数据格式和数据类型等信息。数据加密类型指定数据的传输既可以使用明文传输,也可以使用密文传输。数据格式指定数据包封装的格式,支持常见的数据包格式,比如TLV、JSON等。数据类型用来指定物联网设备的数据功能,即传感器数值或者用户指令等数据域类型,比如温度和大气压等数据。
在物联网技术应用过程中,将物联网设备的数据直接暴露于网络中,将面临着巨大的安全风险。确保数据接入的安全性和可靠性是本文研究的重点问题。一方面,当前的物联网技术并没有提供数据接入的接口规范;另一方面,物联网设备也呈现出日新月异的变化。针对这种情况,设计一种合理的数据接入方法不仅能有效减少安全性问题,还能显著提高异构物联网设备的兼容问题。
在前人研究的基础上,优化了物联网应用项目的典型结构,在每个组成部分中增加设备注册和功能注册模块。设备注册模块用来验证设备接入对象的合法性,而功能注册模块用来验证功能接入对象的合法性。没有注册的设备和功能,无法访问数据中心对象对应的数据域。注册的设备和功能,通过加密算法封装数据包,确保数据接入的安全性和可靠性。实践结果表明,这种数据接入方法能够克服异构物联网设备的结构差异,安全可靠地将异构设备节点对象接入数据中心对象,并由服务终端对象可靠地访问。这种数据接入方法规范了设备节点对象、数据中心对象和服务终端对象之间的数据对接流程,可以防止非法入侵或避免意外的错误,从而减少不必要的经济损失和系统风险。