工业互联网网关管理系统的设计和实现
2022-11-12张晓辉那蓉萃李颜秀
张晓辉 那蓉萃 李颜秀
(中冶赛迪重庆信息技术有限公司 重庆市 401122)
物联网通信优势下,工业互联网所涉及的数据类型和格式越来越繁杂,汇总难度也越来越大,对各种类协议设备的适配都需要由采集、分类、传输等操作作为支撑,网关设备在整个过程中主要发挥承上启下的作用,以此来使数据信息在不同网络间安全传递。
1 工业互联网通用平台架构与传输协议
1.1 平台架构
工业互联网平台分为四个层次。见图1。
结合图1,工业互联网通用平台共由四部份组成,由下至上来看,边缘层位于最底端,负责与全部类型传感设备和其它终端设备进行连接,因此这一层也被称作接入层。接入层具体负责完成对底层数据的收集,也包括各种人员信息,之后对这些信息数据进行汇总处理,在相应技术支持下(负载均衡),模块化管理将最终实现,进而达到提升资源使用效率的目的;平台层是在IaaS基础上扩展出来的一个应用平台,是整个平台架构的核心层,用于实现数据计算、处理、存储等操作,同时也具备算法分析、资源调度、应用开发等功能;应用层包括两方面内容,一是常规业务运行,二是创新应用,其创建背景是满足深度挖掘数据应用价值的需求。在相应功能支持下,工业应用层能够使机械、化工、电子等多个领域生产活动得到充分整合,并通过使用人工智能、可视化等新兴技术,使具体工艺和技术在特定场景中展势出来。
图1:工业互联网通用平台架构
1.2 传输协议
与网络信息传输相同,工业环境下数据传输和收集,也需要有相应协议来支撑。协议类型分为两类,一类是“网内”传输协议,即子网内传输协议,另一类是通过互联网传输的,不同网络之间的传输协议。
1.2.1 子网内传输协议
子网主要是指物理空间和虚拟空间内的局域网络,在相关协议支持下,传感设备可与同级设备和上层设备进行通信。按照通信方式划分,子网内传输协议又分为近距离通信协议、远距离通信协议、有线通信协议。Mod bus是目前通用的一种工业控制器网络通信协,在自动化领域里得到广泛应用。其优点包括:使用简单,开放性强,没有版权要求。ASCII和RTU是Mod Bus的两种通信模式,相比之下,采用十六进制传送数据的RTU模式数据传送效率更高。
1.2.2 子网外传输协议
子网外通信协议运行基础是TCP/IP协议,支持工业环境内部网络设备与互联网通信。REST/HTTP协议、COAP协议、MQTT协议是三种比较主流的子网外传输协议,它们各自拥有特殊的应用范围和属性特征。其中,REST/HTTP协议在标准HTTP协议基础上得到广泛应用,COAP协议可简化无线传感网,MQTT协议能够使各种协议得到很好的兼容。
2 工业互联网网关管理系统设计
2.1 平台架构设计
不同规模工业现场对互联网网关管理系统设计的要求不同,为了更好明确系统设计需求,文章以大型工业设备为例进行分析。通常而言,工业网络系统传输数据分类两类,一种是状态数据,另外则是控制数据。其中,第一种的特点是海量数据且对及时性要求高,后者则负责更新边缘网关信息及数据处理工作。结合工业生产实际,大型设备在运行过程中容易出现数据上传准确性偏低(由环境混乱、干扰较多导致)、数据量增长速度过快(由过高监控需求导致)、数据格式难统一、设备反应时间较长等问题,因此,新构建的工业互联网管理平台需要具备如下四项功能:
(1)数据的实时显示和历史查询;
(2)实现远程控制;
(3)保证数据传输及时性、准确性、有效性;
(4)确保系统足够安全、稳定,以及具备可扩展性。
基于上述问题和需求,本研究设计了图2所示的网关架构。
图2:数据过滤流程图
工业互联网管理平台体系架构共分为三个层次,由下至上排列为:传感器设备、网关、云服务平台。其中,分布广泛的传感器设备会完成各类工业数据获取任务,根据工业互联网中的数据分布情况,采取合理有效的方式对数据进行采集和汇总,最后输送到网关。结合实际需求,系统功能设计分为三个模块:数据智能回传模块,协同任务分发模块,“网关+云端”管理平台。在网关设计方面,数据接入,数据管理,数据应用分别代表三个不同的功能层级。
2.2 智能回传模块设计
所谓“智能”,主要指对每一条设备中的数据进行标识,这种标识往往具有唯一性,而结合数据固有属性和特征,以及用户实际需求进行预处理,则被认为是实现数据唯一性的基础。基于工业互联网应用的智能回传模块设计,网关数据层支持阈值和频率两种过滤方式。但同时也支持自定义过滤,用户可将计算脚本下发到指定网关(数据过滤流程见图2)。考虑到网关设备具有内存低、容量小等特点,因此不建议采用HTTP协议进行数据传输,否则会造成负载过重,引发开销过大等问题。MQTT具有低成本、轻量级、支持高并发,以及兼容性强等优点,比较适合作为向云端传输数据的协议。
2.3 任务分发模块设计
任务分发模块设计以云端至网关任务下发机制为基础,该机制主要用于解决网关升级问题,以满足工业生产任务更新和重配置需求。Docker镜像和计算脚本是下发文件的主要内容。新的Docker容器部署分为两个步骤,一是将已发布的映像从Docker服务中提取出来,二是基于镜像启动容器。针对Docker注册表负担过重、网络流量泛滥、镜像服务失败等问题,本设计采用了基于P2P网络的文件分发系统。P2P网络可以挖掘所有节点的带宽资源并进行充分利用,减轻云端的负荷压力,让部署环节提速。由于本次网关管理系统设计是以工业互联网应用环境为背景的,因此对分发节点的研究必须以工业环境下的网关设备作为基础。结合工业生产实际来看,任何一台被使用的PC机(客户端主机)都将通过一个专门的IP地址与外部环境进行通信。考虑到私有网络结构相对简单,且网关节点所处于的网络环境比较优越(速度快、延迟低),因此不需要对主机隐藏在NAT网络后面这一情况进行单独处理。以此为基础,原有平台只需要扩展一个务分发协调控制器即可。P2P通信模式环境下,借助云控制器进行调度,网关既是资源提供方,又是资源请求方,数据传输速率与请求方的数量呈正比。
2.4 网关与云端管理平台设计
2.4.1 网关平台设计
工业互联网网关不仅被视为用户观测数据的第一窗口,更是整个系统最为重要的管理平台,在高效完成简单管理工作的同时,减轻了云端管理压力。在某种程度上,网关管理平台能够任一数据分析需求和管理需求
在本次设计中,网关管理平台可实现的功能主要包括以下三项内容:
(1)可以对网关状态进行直接监控和管理。不管是正在运行的网关设备,还是处于非工作状态的网关设备,都将会受到直接监控和管理,过程中,网关应用平台也会随具体要求而得到更新。
(2)可以直接监控和管理传感节点。根据需要,网关管理平台能够对任意一个传感器节点设备进行列表查询,包括过往日志和历史数据,同时也支持参数修改与数据删除操作。
(3)可实现数据智能回传。对每一条设备中的数据进行唯一性标识,结合数据固有属性和特征,对用户实际需求进行预处理。
2.4.2 云端管理平台设计
云端管理平台设计共分三部分内容,包括基础结构,负载均衡,功能设计。
首先看基础结构,多功能服务集群以平台的形式得以展现,在底层基础功能架构的支撑下,体现平台与应用的优势,用户将享有新增应用和应用拓展的权利,前提是,需要根据自身实际使用需求进行操作。本次设计所采用的平台架构是REST,与RPC、SOAP相比,此结构结构更加清晰,可扩展性更强。但需要指出的是,它并不是一种标准,只是一种设计风格。
然后看负载均衡,负载均衡是Web服务应用需要认真考虑的一个问题,结合实际来看,DNS轮询、LVS调度和Nginx服务反向代理被认为是比较有效的三种解决方案。以DNS轮询为例,用户在访问浏览器时,首先需要借助DNS功能来解析即将链接的IP地址,再通过此IP访问Web服务。而对于DNS轮询来说,它会在服务权重配置基础上,通过对解析记录和服务IP进行添加和绑定来实现负载均衡。
最后是功能设计,主要内容有:网关设备和网关下节点设备管理、节点数据订阅和查询、任务文件下发和用户数据管理。Web应用通过REST API接口向后端HTTP服务发送请求和数据,接受到请求后,通过Mongo DB数据库、MQTT服务、本地服务等三种途径中的一种来完成其与Web服务的数据交互。
3 工业互联网网关管理系统实现
3.1 管理系统整体架构搭建
本次工业互联网网关管理平台设计采用了RESTful架构,并且为使系统稳定性能够满足全部生产需求,还特别加入了代理服务器,即Nginx。它是一种Web服务器,具备负载均衡、Web缓存、代理HTTP等功能;在开发ice-work等开放性组件平台前提下,以React前端框架作为用户访问界面;系统任务分发功能开发在HTTP协议控制下来完成;借助NATS消息队列来实现高并发网关数据汇总,NATS属于一种高性能、开源的中间件,其量级较轻,吞吐量远远高出其他同类型软件;借助MQTT协议和EMQ代理服务器功能实现数据智能回传功能;网关和云端数据库使用SQLite、Mongo DB和Mysql,其中,SQLite属于一种进程内的库,作为数据管理模块中的数据库,SQLite充分发挥了自身内存占用量小,量级轻,不需要任何外部依赖等优势。系统整体架构模式见图3。
图3:工业互联网网关管理系统架构图
3.2 智能回转模块实现
第一次启动网关管理平台软件时,会初始化系统数据,之后,网关配置信息表会生成。此市,需要用手动的方式来对网关ID和网关区域,以及接入密钥和MQTT服务地址、端口号进行设置。需要指出的是,“Topic全局唯一”是整个网关配置过程需要格外注意的一项内容。当网关配置完成并获得具体信息后,需要通过“消息订阅”的方式与网关内消息列队进行沟通,实现与底层传感节点间的传输。在NATS中,有两种主题类型,一是设备状态数据,表示设备基本信息已经处于或尚未处于工作状态,另一种是设备实时采集数据,负责为传感器实际采集到的电流电压数据。网关系统初始化完成后,如果读取到MQTT服务地址,可直接上传数据。数据上传前需判断预处理情况,若不需要对数据进行预处理,则直接从NATS订阅的数据上传;若需要进行预处理,将由智能回传功能负责完成。
3.3 任务分发模块实现
任务文件会在任务分发模块实现过程中通过云端系统进行上传,并生成一个具有唯一性的任务ID。在依次对网关区域、ID、网关优先级进行输入后任务列表会根据所输入的内容自动生成,并在文件内容被上传,以及网关ID和地域信息被确定后,生成任务列表。收到下一个心跳包后,与数据库内数据信息对比,判断网关是否处于任务列表中。通过对比结果,将对应的任务类型、序号以及网关列表作为结果返回到网关。在接收到心跳包返回值后,网关会对其内容进行判别,以判别结果作为基准,决定是否进行其它操作。
3.4 网关与云端管理平台搭建
3.4.1 网关管理平台搭建
通常而言,工业互联网网关需要具备用户接入、设备接入、平台管理等基础性功能。结合前面设计分析与需求,网关管理平台应当具备网关状态监控和管理,传感节点数据监控和管理,数据处理等几项功能。功能结构图见图4。
图4:工业互联网网关管理平台功能结构图
在平台更新方面,当云端上传了新的应用版本时,会通过反向控制功能来告知网关,除新版本内容外,信息还包含了URL地址。在网关接收到版本更新信息后,平台更新栏会立刻新增出一个下载按钮,用户可直接点击该按钮进行下载,进而完成版本更新。
3.4.2 云端管理平台搭建
在网关设备管理中,心跳包用于完成网关与云端服务的连接需求,按照1分钟发送一次的频率。心跳包内包含了网关内网IP、运行状态、接入设备ID等多项信息。处理和提取请求参数被接收到后的有效值,并在网关设备数据列表中转存。,通过网关ID判断是否需要进一步下发控制信息,无论是否要下发,后需要回复相应字段信息。在节点数据订阅方面,节点数据的Topic是以按需订阅要求和标准来进行定义的,通过添加相应前缀,以及借助相关协议与MQTT服务功能,列表中的Topic又得到进一步遍历。在数据节点查询方面,节点数据查询被分为实时数据查询和历史数据查询两种,系统在实际运行中会不间断的对Topic列表中的消息进行订阅,并将那些已订阅的消息进行储存,这样,过往数据信息便能通过历史数据查询方式进行查找,而后端服务在从数据库中获得有效信息后,会将这些结果传递至前端。
4 结束语
互联网技术的迅猛发展,加速了工业新业态的生成,工业互联网及其相关内容已成为现阶段我国一项主要发展任务。针对数据量并发数多,设备管理杂而乱和数据分析的难度大等问题,工业互联网网关管理系统设计要从需求出发,找到问题的解决办法,对原有系统进行不断优化,通过增设新功能来满足应用需求。