物联网大数据采集与传输技术架构探讨
2023-01-07邱祝礼牛思先田章武唐文龙苏富斌
邱祝礼,牛思先,田章武,唐文龙,苏富斌
(百色学院信息工程学院 广西 百色 533000)
0 引言
物联网技术的飞速发展,产生了大量的数据,物联网大数据的特征,使得传统数据处理方式效率低下;同时由于联网设备的异构性,需要不同通信协议之间的转换及统一。而通过网关程序开发,可以转换不同的协议,做到数据协议的统一。采用发布/订阅模式的MQTT 协议,比较适合物联网实时通信,通过ZigBee 与MQTT 的协议转换以及ModBus 与MQTT 的协议转换,可以解决多协议统一问题;而Flume日志采集工具由于其可靠性、Kafka 发布订阅系统由于其高吞吐量,因此可以用来向大数据存储体系传输数据,从而为物联网大数据存储、分析、展示,设备控制做准备。
1 物联网的概念
物联网,是互联网的延伸,是万物互联的网络。通过网络把各种传感设备、射频识别设备连接在一起,并把这些设备采集到的信息通过通信设备传输到云端或服务器,通过对信息的处理,实现设备识别、定位、监控、管理的一种技术[1]。物联网技术的核心是各种智能传感器和低功耗的无线传输技术,可分为感知层、通信网络层和应用层。
最早提出物联网这一概念的是美国麻省理工学院的Kevin Ashton 等[2]。他在1999年研究RFID 与无线传感网络时,希望通过计算机实现对物品自动识别,于是成就了现在的物联网行业。而首次明确提出物联网这一概念的是国际电信联盟(International Telecommunications Union,ITU)[3]。2009年IBM CEO 提出“智慧地球=物联网+互联网”这一理念。2010年我国再次强调并将“加快物联网的研究发明”纳入重点产业振兴计划。自此,国内物联网技术开启了由研究到应用的发展大幕,被列入国务院发展规划纲要中[4-5]。
物联网使得传统设备不再孤立,设备接入网络使得设备信息采集效率更高、设备的控制更加快速、准确,能够及时了解设备信息,更好地发挥设备的功能。随着社会与技术的发展,物联网必将深入影响人们的生活、工作、科研等。目前,物联网已经应用于智慧城市、智慧园区、智能楼宇、智慧医疗、智慧运维、智能家居、森林消防、数字车间等领域,并取得了较好的效果。
2 物联网大数据对数据采集、传输方式的要求
随着物联网的发展,获得数据的渠道也越来越多,工业、农业、服务业等领域都大量使用传感器来感知环境的各种参数。这些信息被转换成电信号后通过各类网络传送到上层应用系统[8]。由于网络中感知节点采集数据具有数据量大、速度快、实时产生、动态变化等特点[1],又是异构的,具有时效性[6],深入处理、挖掘这些海量数据,使之反映出研究对象的本质和规律,并能进行学习与改进、控制成为物联网领域研究的当务之急[1,7]。
大数据技术基于分布式存储与计算技术,有成熟的理论基础和应用组件。大数据集群的架构使得高效、快速处理海量、异构化的数据成为现实,被广泛应用于包括物联网在内的众多领域。但大量数据传输对于存储能力和带宽有限的传感器网络,是一个很大的挑战。这必然要求优化数据传输架构和数据传输的能力,建立可靠的优化模型,以满足对感知数据的完整性、准确性、安全性和及时性的要求[9]。
本文试图构建异构传感设备的数据采集网络,通过网关传输到服务器,并通过Flume 实时传输给Kafka,作为大数据存储系统的数据采集通道。
3 物联网数据采集与传输技术现状
3.1 努力实现物联网数据格式统一
物联网信息具有大量、冗余、多源、异构的特征,因此需要将其转化为统一标准格式的信息[10]。同时,为了解决物联网传感设备数据采集协议、传输协议异构的问题,很多场景在物联网数据实时感知与处理模型中引入云服务架构[6]。朱和林等[9]对智慧园区异构数据的统一技术进行了分析,认为要将大数据采集与大数据存储、处理、分析、学习技术相衔接,要从协同供应商修改通信协议和统一数据库选型两方面入手,因此提出采用数据集成方法实现异构数据的统一标准接口。何朝阳[10]在滑坡实时监测预警系统中定义了一套地质灾害监测数据格式标准,联合设备商在设备端对数据传输模块进行升级,实现了基于MQTT 协议的数据传输模式。李睿[11]选用无线ZigBee 和有线ModBus 两种协议作为接入端,通过MQTT 消息代理,解决多协议统一的问题。
3.2 传感器设备接入有多种方式
罗家文[8]对移动平台设备通过ZigBee 进行无线通信,将信息传输给对应网关,网关通过有线的形式连接到上位机来采集。周辰宇等[12]通过智能网关模块在网络层以上实现网络互连,采用TCP/IP 协议,通过Socket 编程实现协调器串口数据的网络传输,将数据通过Wi-Fi 路由器转发给网络。李成豪[13]在森林消防车上搭载微环境实时监测系统,把采集到的数据进行打包并存在本地SD 卡中,通过单片机接收北斗模块的定位信息并且将数据传给北斗模块进而使用卫星通信将数据上传到服务器。
3.3 优化数据传输模型
近年来,很多学者致力于设计高效的无线传感网络优化模型,提高传感网的可靠性。孟超等[7]设计了传感网大数据采集和传输的仿真架构,实现了对移动车辆感知节点的实时定位和监控。谢添[5]认为物联网底层的传感器节点和大数据工具缺乏有效的融合,由此提出了采用物联网终端与通信设备来进行数据采集,通过大数据技术来存储海量工业数据。张前进[4]采用Apache Flume日志系统实现各种实时感知数据源的快速接入。许多研究人员采用Flume 和Kafka 项结合的方式,通过Flume 从终端设备、网关、边缘计算服务器等采集数据,然后通过将数据发送至Kafka 消息队列系统,进而传递给大数据实时处理或存储系统,实现物联网大数据的实时传输与历史数据存储。
综上所述,目前物联网技术从数据采集、传输上存在通信协议不统一、数据格式多样、数据具有异构性、数据量大、传统数据存储方式难以适应物联网大数据的要求等问题。构建涵盖物联网数据采集、传输、存储、处理、学习、展示,并能进行设备控制的物联网体系,从而搭建适应于智慧城市、智慧园区、智慧农业、智能楼宇、智能交通等物联网应用领域的大数据平台是比较合理的解决方案。接下来本文试图从兼容多种协议、网关程序开发、充分与大数据系统衔接的角度架构物联网数据采集、传输、接入系统。
4 物联网大数据采集与传输架构
本物联网大数据采集与传输架构分为设备组网方式、协议转换统一与数据融合技术、数据传输3 部分。设备组网方式提供异构设备多协议通信支持,对于不同设备采用不同的协议,直接与设备进行通信。设备管理模块启动后,就会在网关上开放多个通信端口,每个端口对应一个通信协议。这些端口负责监听设备的连接请求,当接收到设备向该端口发起的连接请求后,就会建立连接,等待设备上传数据。无线传感网络层中的传感器节点中产生的原始数据每隔固定的采集间隔就会被通过接口或无线通信发送到网关,网关识别特定的数据包然后进行处理并通过以太网将数据以指定格式转发给边缘计算服务器。然后由Flume采集数据并汇总,传输给Kafka,以作为大数据存储系统的数据来源(见图1)。
图1 物联网大数据采集与传输架构
4.1 设备组网方式
网关的功能就是实现协议的转换和数据的分发。通过网关能够实现不同网络协议的转换,将数据转换为统一的格式进行封装,从而解决异构网络间的互联互通问题。网关还可以实现对传感设备的控制,包括获取传感器设备的状态和属性信息,以及远程唤醒、控制和维护等。此外,为保证系统的完善和自动化处理能力,需要传感网络层和大数据平台之间添加相关软件及脚本以完成不同网络和模块间的衔接[15]。又由于无线节点入网时要在网关上进行注册,记录相关的设备信息:网关识别、处理、传输数据包。这就需要将设备数据的处理模块加入到网关的原程序中。
本文拟采用ZigBee 无线组网与ModBus 有线组网相结合。ZigBee 作为比较典型的无线传输方式,具有低成本、低功耗、自组网、接入设备快、支持设备多等特点。ModBus 是最常见的有线传输方式,支持多种电气接口和简洁的帧格式,已经在多种领域广泛使用。在组网过程中,可以加入ZigBee 中继器提升网络传输性能。ZigBee 协调器汇聚来自传感设备或中继器的数据,然后数据通过串口接入物联网网关,而ModBus 则通过串口与物联网网关进行连接[16]。同时设计与实现网关服务器的应用软件,负责ZigBee 协议、ModBus 协议与MQTT 协议的转换,以及传感器数据的接收和存储。
4.2 协议转换统一与数据融合技术
本文根据MQTT、ZigBee 和ModBus 协议的具体情况,自己定义数据帧格式,通过协议解包和封包实现不同通信技术的协议转换,即ZigBee 与MQTT 的协议转换以及ModBus 与MQTT 的协议转换。在数据采集时,网关可以将来自不同传感器网络的数据封装成统一的标准格式,再通过通信网络发送给边缘计算服务器。在对设备进行控制时,网关将通过网络接收到的数据信息解析成标准帧格式,再根据不同的底层感知网络转换成对应通信协议的数据和命令,最后通过网络将这些数据和命令发送给终端设备,从而实现控制功能[17]。
4.3 数据传输
数据传输负责为数据处理集群快速接入数据源。
阿帕奇Flume 是一个分布式、可靠,易用的高效数据采集系统,它能够从各种不同的数据源聚集大量日志数据,并把它们移动到一个中央数据仓库。Flume 的数据来源可以定制,除了收集日志文件,它还可以收集网络流量数据、社会媒体数据、邮件消息等数据,甚至可以说是任意来源的数据。
针对实时数据流量较大,数据处理模块的处理能力可能无法达到的问题,采用阿帕奇Kafka 集群进行物联网大数据接入与分发。阿帕奇Kafka 系统是一个开源、分布式事件流平台,适合处理大规模实时数据,成千上万的公司采用它来作为高性能数据管道、流分析工具,进行数据集成以及关键技术应用[18]。
本文采用数据采集系统Flume 作为收集物联网大数据的工具,通过不同的分支节点采用不同网关或边缘计算服务器上的数据,然后汇集到中枢Flume 节点,并将其作为Kafka 的数据生产者,将实时物联网大数据传入Kafka 计算集群的代理,将分布式大数据存储平台HDFS 作为Kafka数据的消费者。Kafka 的事件流能够确保数据的持续流通和解析,保证任何一个主题分区的消费者可以按照消息产生顺序原封不动对它进行读取,这样不仅不会丢失数据,还能实现数据的实时传输。
5 总结
本文在分析物联网特征、对数据采集与传输的要求,以及现有数据采集与传输方式优缺点的基础上,提出通过使用网关及开发网关程序通信协议转换,采用MQTT 协议、Flume 数据采集工具、Kafka 发布订阅系统进行传感器数据采集与传输的架构,为将来物联网大数据存储、处理做好数据来源准备。可为物联网大数据采集、传输、存储、分析、学习、展示以及设备控制的物联网平台体系做好数据源的基础,并可结合Cesium 数字孪生技术,将此方法体系推广应用到智慧城市、智慧园区、智能楼宇、智慧农业、智能交通等多种物联网相关领域。