成国庆,姜玉稀
(上海三思电子工程有限公司,上海 201100)
近年来,物联网技术飞速发展,智慧城市的建设使得人类城市生活更加高效[1-2]。党的十九大报告提出,推动互联网、大数据、人工智能和实体经济深度融合,建设数字中国、智慧社会。我国政府大力推进智慧城市规划建设[3],而智慧城市建设需要采集并实时处理大量数据,这意味着需要建设一个高度集成各种传感器的网络系统,从而实现数据的收集与处理[4]。路灯位于城市道路的两侧,能够通过各种传感器实时收集城市道路数据,监测道路状况[5],并通过照明设备实时管理汽车流量[6-7]。因此智慧路灯系统是智慧城市建设的关键性公共基础设施载体。
智慧路灯系统主要由智慧控制平台、智能网关与外接设备(照明设备和传感器设备)组成,是一个典型的层次化网络结构[8]。然而,由于路灯设备分布广泛,各灯杆上装备不同传感器采集的数据类型不同,规模日益扩大的智慧路灯系统使得智慧控制平台很难对数据进行管理和处理,许多低延迟需求任务(如无人驾驶、增强现实、事故警报)可能由于数据传输延迟过大而无法有效执行[9-10];另外,需要处理的数据量不断增加,又导致数据传输的网络带宽成本急剧增加[11-12]。数据传输延迟大和数据传输成本高的问题已成为智慧路灯系统建设中的主要技术难点。目前,国内外学者对智慧路灯系统的延迟和传输问题的优化方法开展研究。Wu等人提出了一种任务运行卸载方法[13],分析单个智能网关设备的性能参数,管理任务资源。但此方法只能分析单线程的设备,不适合多线程的智能网关设备。Chen等人通过计算每个智能网关的功耗来确定智慧路灯系统的状态,利用Lyaponuv优化方法确定智能网关的任务分配[14],但根据功耗判断状态不够全面。为进一步解决智慧路灯系统的延迟和传输问题,本文提出了一种用于层次化智慧路灯网络中智能网关任务调度的优化方法,对智慧控制平台下发任务的应用程序和智能网关设备解耦。该方法考虑到智慧路灯系统的层次化网络结构,建立智能网关的工作模型,当智能网关的工作状态为繁忙或故障时,智能网关之间将根据地理位置和工作状态进行任务调度。实验表明,本文提出的方法能够降低智慧路灯系统的延迟,使得数据分析和管理更加高效稳定。
一般来说,智慧路灯系统是典型的层次化网络[15]。以智慧控制平台为控制层、智能网关为中间层、外接设备为执行层构建形成层次化网络结构。传统智慧路灯系统的网络结构如图1所示,安装在路灯杆上的智能网关依据从智慧控制平台接收的任务控制外接设备进行照明与数据收集并上传给智慧控制平台,智慧控制平台接收数据后通过应用程序进行计算处理并下发任务给智能网关。
图1 传统智慧路灯系统的层次化网络结构Fig.1 Hierarchical network structure of traditional smart street light system
然而,传统智慧路灯系统层次化网络结构需要智慧控制平台处理所有上传的数据,并且智慧控制平台的应用程序与对应的智能网关需要实时连接获取数据,随着网络规模的扩大,这些需求将难以满足。本文利用智能网关作为任务计算处理的中心,对智慧控制平台下发任务的应用程序和智能网关设备解耦,将任务调度和数据计算的功能从控制平台的应用程序下沉到前端的智能网关。改进后的层次化网络结构如图2所示,在此网络中智慧控制平台只通过应用程序下发任务和收集结果;智能网关接收任务、任务调度、控制外接设备进行数据收集并在本地进行计算处理,然后将执行结果发送到智慧控制平台。
图2 本文智慧路灯系统的层次化网络结构Fig.2 Proposed hierarchical network structure of smart street light system
图2所示的网络结构优势在于,随着网络规模扩大,智能网关的数量也会相应扩大,充分利用了各个智能网关的计算能力并缓解对智慧控制平台计算能力的需求。同时本文建立智能网关的工作状态模型,根据各智能网关的工作状态开展任务调度优化。
对于智能网关,表征其工作状态的主要参数是延迟时间,即从智慧控制平台下发任务到智能网关上传任务执行结果的时间。然而某一时刻智能网关的延迟时间无法实时获取[9]。因此,工作状态模型需要通过那些易于获得的性能参数来估计延迟时间,即建立智能网关性能参数与智能网关的延迟时间之间的关系。智能网关有许多易于获取的性能参数,例如CPU利用率、内存利用率、带宽和已执行的任务数[16]。本文选择4个主要的性能参数通过多元线性回归模型拟合智能网关的延迟时间[17]。这些参数与智能网关延迟时间的关系为:
Ti=α+β1Ui+β2Mi+β3Bi+β4Di+εi,
(1)
式中,i为智能网关的第i个样本,T为延迟时间,U为智能网关处理器利用率,M为内存利用率,B为带宽,D为已执行的任务数,α,ε和βk(k=1,2,3,4)为回归系数。
当使用多元线性回归模型拟合延迟时间时,需要智能网关延迟时间与CPU利用率、内存利用率、带宽和已执行任务数的数据。CPU利用率、内存利用率、带宽和已执行任务数可以直接获取,而延迟时间获取如下:
T=Tg+Tp+2max(Tdj)+∑jTrj,
(2)
式中,Tg为智慧控制平台传输任务到智能网关的时间,Tp为智能网关将接收的任务下发到外接设备的时间,j为连接到智能网关的第j个外接设备,Td为外接设备执行的时间,Tr为外接设备回传给智能网关的时间。得到智能网关的估计延迟时间后,其工作状态判断规则如下:
(3)
式中,Tnormal为最大正常延迟,Terror为最大故障延迟,2个阈值的取值可根据实际系统的需求设立。
工作状态模型包括正常工作、繁忙工作和故障工作三个状态。正常和繁忙工作状态的判断主要基于延迟时间。如果智能网关的延迟时间低于Tnormal,则处于正常工作状态,否则可能处于繁忙状态。而故障工作状态有2种判断的方法:第一是延迟时间超过了Terror;第二是智能网关失去了与其他智能网关或智慧控制平台的通信。
在正常工作状态下,智能网关需要将接收的任务分解为不同的子任务,并将其下发到对应的外接设备,待外接设备执行完成后,智能网关收集数据进行处理并将结果上传到智慧控制平台。在这种状态下,每个智能网关独立执行接收的任务。当智能网关执行过多任务时,延迟时间将超过可接受的范围,这意味着它处于繁忙工作状态或错误工作状态,如果长时间处于此状态,造成任务执行结果传输延迟,进而影响系统稳定。为了避免这种情况,本文提出的任务调度优化方法通过在多个智能网关之间交换任务使各网关处于正常工作状态以保障系统稳定、效率。
传统智慧路灯层次化网络中,智慧控制平台通过应用程序下发任务给对应智能网关,智能网关再进行执行。基于工作状态模型,单个智能网关执行任务负载过大时,将处于繁忙或错误工作状态。因此,在本文改进后的层次化智慧路灯网络中智慧控制平台存储每个智能网关的任务和数据备份作为数据镜像,当智能网关上线时向智慧控制平台索要任务与数据备份。网络中的数据镜像流向如图3所示,智能网关完成任务会更新数据镜像,当智慧控制平台应用程序产生新的任务时,智能网关会接收新的数据镜像并执行任务。
图3 层次化智慧路灯网络数据镜像流向Fig.3 Data shadow flow in hierarchical smart street light network
智能网关执行任务有3个重要规则:更新、获取、恢复。
(1) 更新(智能网关执行任务时)
如果智能网关发现其数据镜像不存在,则会创建一个新的数据镜像;否则,则用智能网关的任务执行结果数据更新数据镜像的数据。在存储数据时使用时间戳标记最新的更新时间。如果应用程序生成新的任务时,数据镜像中的任务将更新。更新规则流程如图4所示。
图4 更新规则流程Fig.4 Process of update rule
(2) 获取(当智能网关收到任务时)
智能网关向智慧控制平台订阅最新的数据镜像。智慧控制平台不需要知道哪个智能网关订阅了数据镜像,只需根据其基本网关设备编号将数据镜像发送到智能网关。获取规则流程如图5所示。
图5 获取规则流程Fig.5 Process of get rule
(3) 恢复(智能网关重启时)
故障智能网关重启恢复时,会订阅存储在智慧控制平台中的最新数据镜像。检查数据镜像更新的时间戳和本地数据镜像的时间戳。如果本地较新,则智慧控制平台的数据镜像将被更新,否则更新本地的数据镜像。恢复规则流程如图6所示。
图6 恢复规则流程Fig.6 Process of recovery rule
这3个规则的目的是确保每个智能网关的数据完整性,以便在智能网关不处于正常工作状态时,其他智能网关可以使用其设备编号向智慧控制平台订阅其数据镜像,进而继续执行其剩余的任务。
2.1节中描述本文层次化智慧路灯网络中智能网关的任务执行规则,这些规则使得多个智能网关之间任务调度成为可能。任务调度优化方法基于工作状态模型,其本质是确保智能网关处于正常工作状态,智能网关的规则状态转换条件如图7所示。
图7 智能网关的工作状态转换条件Fig.7 Working conditions of smart gateway
本文所提出的任务调度优化方法包括两部分:一是应对智能网关的繁忙工作状态;二是应对智能网关的错误工作状态。
2.2.1 繁忙工作状态任务调度方法
在执行任务时,智能网关估计自己的延迟时间并与相邻的智能网关共享。当延迟时间超过最大正常工作延迟时间(Tnormal)时,表明智能网关任务负载过大,智慧路灯系统效率降低。此时,单个智能网关无法处理来自智慧控制平台的任务。因此,有必要协调多个智能网关进行任务调度优化,其流程如图8所示。
图8 多个智能网关任务调度优化流程Fig.8 Multiple smart gateways task scheduling optimization process
当智能网关G1处于繁忙工作状态时,靠近G1且处于正常工作状态的智能网关G2将打开一个线程作为G1从向智慧控制平台订阅G1的数据镜像进而调度任务,具体流程为:
① 智能网关G1执行任务时,估计其延迟并发送到其他智能网关。
② 由于执行任务负载过大,G1处于繁忙工作状态。
③ 处于正常工作状态的相邻智能网关G2根据G1的延迟时间获知G1处于繁忙工作状态。
④ G2使用其剩余的计算资源生成一个名为G1的线程,并接收智慧控制平台下发给G1的任务。
⑤ 重新计算G1和G2的延迟并更新其工作状态。
2.2.2 故障工作状态任务调度方法
在智慧路灯系统的实际应用中,会出现意外情况,例如网络故障和设备故障。为了保证层次化智慧路灯网络的稳定与效率,当智能网关处于故障工作状态时,智慧控制平台不直接干预,采用自愈任务调度方法,任务调度流程如下:
① 智能网关G1处于故障工作状态,由于故障而无法与其他智能网关通信。
② 其他智能网关相互通信,发送G1处于故障工作状态的信息。
③ 处于正常工作状态的相邻智能网关G2向智慧控制平台订阅G1的数据镜像。
④ G2使用其剩余计算资源生成一个名为G1的线程并连接G1的外接设备。
⑤ 新G1从如同正常的智能网关向智慧控制平台订阅G1的数据镜像(包含任务),接收到应用程序发送的任务后进行处理并控制相应外接设备执行。
⑥ 重新计算新G1和G2的延迟时间并更新其工作状态。
⑦ 故障G1恢复后,新G1不再订阅G1的数据镜像。上传其任务执行结果后,G2关闭新G1线程,并将外接设备重新连接到G1。
通过以上流程,可以解决层次化智慧路灯网络中智能网关发生故障时,智能网关之间的任务调度,而无需智慧控制平台开展调度。
结合繁忙工作状态和故障工作状态的任务调度方法,可以在边缘计算中有效处理SLPS的繁忙和故障情况,从而保证了系统的稳定和效率。
针对本文提出的层次化智慧路灯网络中智能网关任务调度优化方法,设计了2个实验分别验证智能网关工作状态模型准确性和任务调度优化方法的可行性。
为验证本文所提方法在实际场景中的表现,部署了一个由智能网关、照明设备、传感器设备和智慧控制平台组成的智慧路灯系统。根据式(1)和式(3),智能网关的工作状态需要CPU利用率、内存利用率、带宽和执行的任务数。为此,通过层次设计技术研制了智能网关LC900[18-20],可以对这些参数进行采集和分析,能够实现前文任务调度优化的方法。
智能网关LC900共有4层,如图9所示。设备接入层定义了LC900与服务器、传感器和照明设备之间的有线或无线通信模式;通信接口层定义了智能网关与智慧控制平台通信协议和外接设备通信接口。这些接口的通信协议在协议转换层进行解析,任务处理层用于估计其智能网关自身的工作状态和实施任务调度。
图9 LC900硬件层次设计Fig.9 Hardware level design of LC900
LC900位于图10所示的智慧路灯杆中,可以从智慧控制平台订阅到任务并将其下发给外接设备执行,若干智能灯杆连接智慧控制平台形成智慧路灯网络。在上海市闵行区新庄部署了基于本文提出的任务调度优化方法的智慧路灯系统,智慧路灯杆的地理位置布局如图11所示。
图10 智慧路灯杆硬件组成Fig.10 Hardware composition of smart street light pole
图11 智慧路灯杆地理位置布局Fig.11 Geographical implement of smart street light poles
3.2.1 工作状态模型验证
为验证工作状态模型的准确性,采集智能网关LC900的性能参数,用于估计时延和判断工作状态,同时利用智慧控制平台获取实际的延迟时间,每个样本包含一分钟内参数的平均值,每个智能网关记录40个样本。同时为消除数量级及其数值的影响,对CPU使用率、内存使用率、网络带宽、任务数这些性能参数进行标准化处理,处理过程如式(4)所示。
(4)
记录数据实例如表1所示。
表1 智能网关主要性能参数
Tab.1 Main performance parameters of smart gateway
样本序号CPU0使用率CU1使用率CU2使用率CU3使用率内存使用率网络带宽任务数延迟时间/ms1-1.391 2-1.473 13.621 5990.117 6-1.767 80.364 8-0.851 72.114 42-0.632 9-0.405 20.453 6900.513 2-1.676 91.081 8-1.334 52.471 130.209 60.900 1-1.089 650-0.846 6-1.500 60.735 6-2.246 42.992 6︙︙︙︙︙︙︙︙︙400.209 6-1.473 1-0.358 600-0.599 41.658 3-1.316 30.382 03.339 9
图12为利用本文工作状态模型估计的智能网关的延迟时间与实际延迟时间的对比,可得估计值略大于实际值,估计的延迟时间能够反映智能网关实际延迟时间的趋势。
图12 实际延迟时间与估计延迟时间对比Fig.12 Comparison of actual delay time and estimated delay time
同时,为突出本文估计智能网关设备延迟时间的优势,与文献[14]利用功耗来估计延迟时间的方法进行比对,比对结果如表2所示。
表2 2种方法估计延迟时间结果比对表
Tab.2 Comparison of delay time results estimated by two methods
评价指标本文方法文献[14]平均绝对误差0.6780.767平均平方差0.1380.171
平均绝对误差与平均平方差可以表征估计延迟时间与实际延迟时间之间的偏差,数值越小表明估计的结果越符合实际,实验结果表明本文方法对智能网关延迟时间的估计更为准确。因此,工作状态模型在表征智能网关设备的工作状态中具有性能优势。
图13 5个智能网关延迟时间记录Fig.13 5 smart gateways delay time records
3.2.2 任务调度方法验证
为了便于数据的采集和分析,重点关注图11右下红色圆中的5个智能网关G1,G2,G3,G4,G5。图13为5个智能网关工作一段时间的延迟时间变化,其中正常工作延迟Tnormal设置为4.5 ms。
图13表明,当智能网关的延迟超过Tnormal时,处于繁忙工作状态,智能网关之间按照2.2.1小节所述的方法进行任务调度优化。例如,在采样点7,智能网关G4处于忙碌工作状态。因此,与G4邻近的智能网关G1,G2,G3开启G4线程,承担G4的部分任务。在采样时间8和9调度优化后,G4的延迟时间低于Tnormal,并转为正常工作状态。图13的过程与繁忙工作状态任务调度方法一致,因此,繁忙工作状态任务调度方法将有助于智能网关保持正常工作状态。
当智能网关处于故障工作状态时,相邻智能网关也能及时承接其任务,图14为智能网关出现故障后任务调度时雨图。
图14 智能网关出现故障后任务调度时雨图Fig.14 Working state change of smart gateways when a smart gateway fails
具体流程为:采样点1时,智能网关G3的颜色变为黑色,表示G3处于故障工作状态。因此,采用故障工作状态任务调度方法。在采样点2,相邻处于正常工作状态智能网关G4生成G3线程,并向智慧控制平台订阅G3的数据镜像,进而承担G3的任务。然而,G4承担了太多的任务,工作状态颜色变为红色,表明其处于繁忙的工作状态。因此在采样时间3和采样时间4,智能网关G1和G5根据繁忙工作状态任务调度方法承担G4的部分任务。
整个自愈任务调度过程结束后,故障的智能网关G3不再执行任务,而智慧控制平台给G3的任务仍然能够通过其他智能网关执行。
通过实际实验,验证了本文所提出的层次化智慧路灯网络中智能网关任务调度优化方法有助于保障智慧路灯系统的稳定和效率。
本文分析了智慧路灯系统的层次化网络结构,对智能网关的工作状态进行建模,并基于工作状态模型提出了改进任务调度优化方法。该方法无需智慧控制平台对数量日益增大的智能网关实施任务调度,只需要存储与发送数据镜像,智能网关之间能够主动利用工作状态模型进行任务调度。
此外,本文提出的任务调度优化方法在实际部署的智慧路灯系统中进行了验证。实验结果表明,智能网关的延迟时间可以控制在4.5 ms以下,而且当智能网关发生故障时,相邻智能网关能够承接其任务,而无需智慧控制平台控制。因此,本文提出的任务调度优化方法适用于需要效率与稳定的智慧路灯系统中。