任君玉,祝长鸿,廖栋森,万海斌,覃团发
1.华南理工大学 电子与信息学院,广州510641
2.广西大学 行健文理学院,南宁530005
3.广西大学 计算机与电子信息学院,南宁530004
4.广西多媒体通信与网络技术重点实验室,南宁530004
近几年,随着物联网(Internet of Things,IoT)技术的发展,其底层技术无线传感网(Wireless Sensor Networks,WSN)得到了快速发展。作为生物和智慧医疗领域的一种特殊类型的无线传感网,无线体域网(Wireless Body Area Network,WBAN)已经得到了社会各个部门,包括学术界、工业界及政府部门的广泛关注[1-2]。体域网一般由部署在体内、体表或体表附近的传感器构成,这些传感器可以获取人体的体温、血压、血氧、脑电图、心电图等各项生理参数[3]。各个传感器将收集到的生理参数通过无线通信发送到体域网网关设备HUB(典型设备如手机),HUB再通过蜂窝网或者因特网发给急救中心或医生以进一步采取诊疗方案。
体域网所采集的是人体健康生理参数,因此对系统可靠性有较高要求;另外,体域网数据时延敏感,尤其当病人情况紧急的时候,对系统时延有极高要求;并且,体域网传感器由于需要周期性采集人体生理数据,数据量巨大。但是,由于体域网网关节点资源有限,导致其不方便对所收集的大量人体生理数据进行存储,更无法对计算密集型任务进行分析。因此,体域网作为智慧医疗系统的底层网络架构,必须引入新的范式及有效的解决方案以完成体域网海量数据可靠、实时的存储与分析。目前,云计算、雾计算技术已经成为研究热点,这为基于体域网的智慧医疗系统的研究与落地应用提供了机遇。
云计算技术相对比较成熟,可以提供无限的计算和存储能力,目前已经有不少工作将云计算与IoT技术相结合进行研究,以解决来自IoT设备的海量数据存储与处理问题。体域网作为IoT技术的一个具体应用,可以将云计算与体域网技术结合起来,以解决体域网海量数据的存储问题及体域网的大数据分析与处理,辅助完成远程医疗诊断及病人身体状况与疾病的预测及分析[4-9]。但是,由于云的地理位置较远,数据传输时延大,导致其无法对体域网数据进行实时处理与分析,这对于时延敏感的医疗健康应用系统尤其是紧急情况下的数据分析与处理带来巨大挑战。
雾计算介于云层与终端设备层之间,并且在地理位置上更靠近于用户终端设备。雾计算技术本质上是将云的计算和存储能力扩展到网络的边缘,通过计算卸载可以为低时延任务执行提供解决方案[10-12]。因此,在时延敏感的IoT系统中利用雾计算技术,可以有效解决数据实时传输与处理的问题。文献[13]针对将雾计算技术应用到医疗物联网生态系统中存在的技术和挑战问题进行了综述。文献[14]采用基于云、雾结合的网络架构,主要解决危重病人的数据处理时延问题,根据人体生理参数临界值,本地处理单元采用博弈论讨价还价的方法对体域网传感器数据的传输进行决策,决定数据传输到云还是雾,与基于传统的云计算方法相比,该方法无论在功耗还是数据传输时延方面都更低。文献[15]研究人体生理指标参数特征提取问题,通过在智能网关设备中集成雾计算层进行心电图特征提取,可以获得更快的系统响应,满足低时延处理需求。
此外,在雾计算辅助的IoT环境下,如何合理有效地利用雾计算资源也是目前的一个研究热点,相关的工作大多是关于任务卸载策略优化问题的研究。根据不同的应用特点及需求,设计不同的任务卸载策略,很多研究工作利用博弈论的方法进行策略优化。然而,目前基于雾计算的体域网任务卸载相关研究尚不多见。
将体域网与雾计算技术进行结合,可以满足体域网的低时延需求。在这种情况下,资源受限的体域网网关节点可将其收集的病人体内的生理数据处理成可卸载任务,然后按照一定的策略将任务与数据卸载到雾计算节点,由雾计算节点完成相应的任务处理和数据存储,最终将结果提供给相关的医疗机构及体域网用户进行读取以对疾病进行辅助诊疗。文献[16]提出基于雾计算辅助的体域网数据交付协议,根据该协议,体域网网关设备选择时延低与可靠性高的雾节点进行数据交付。但是该方法的参数权值不能自适应调节,尤其是没有考虑到病人在紧急状态时对数据处理时延的高度敏感性,因此不适用于紧急情况。
受以上工作启发,本文提出基于雾计算辅助的体域网任务卸载方法以降低体域网数据处理时延。为了满足紧急任务的高度时延敏感性,在本方案中,对紧急任务采用抢占式任务调度,从而避免了由于排队带来的时延;同时,目标雾节点将分配全部CPU资源对该任务进行处理,以降低紧急任务总时延。因而,对于紧急任务,本文所设计方案的总时延大大降低。此外,所设计的方案可以根据任务的不同(紧急与否),自适应调整目标节点评价尺度,当任务紧急时,以时延及负载最低为评价尺度进行优化选择目标评价雾节点;当任务非紧急时,以时延及可靠性为目标节点评价尺度,选择最佳目标雾节点,从而确保系统的实时性及可靠性。因此,相对文献[16],本文所设计的方案不仅能够很好地适应紧急情况下的低时延应用需求而且还可以根据任务是否紧急,自适应调整优化目标以选择最佳任务处理目标雾节点。
本文的主要贡献有三个方面:
(1)提出雾计算辅助的体域网智慧医疗系统架构。利用雾计算技术实现体域网人体生理参数的实时处理,设计了相应的体域网任务卸载算法并进行仿真分析,仿真结果与理论分析结果一致。
(2)设计了目标雾节点的多目标选择评价算法。算法综合引入时延、接收信号强度、负载作为目标节点评价尺度,能够根据任务的紧急性自适应调节相关评价尺度。
(3)根据来自体域网网关节点的任务的不同特征,目标雾计算节点采取不同的任务处理策略。如果任务紧急,则对该任务进行抢占式优先调度;否则,需要按照先到先服务(First Come First Served,FCFS)的调度策略进行排队,只有等目标雾计算节点队列中的任务处理完后才可以对该任务进行处理。
下面将对本文方案所采用的系统模型、工作原理及算法进行介绍。
假设系统中有K个雾计算服务节点F,F={Fj|j=1,2,…,K},HUB为体域网网关节点,系统模型如图1所示。
图1 系统模型Fig.1 System model
当病人的体域网网关节点Hi的任务需要卸载时,按如下步骤选择任务处理目标雾节点。为了更加直观表示,图2给出了系统工作流程图。
图2 系统工作流程Fig.2 System working flow
(1)广播HELLO消息,格式为HELLO:(Di,Tth)。其中,Di代表卸载任务的数据量,Tth代表超时时间阈值。
(2)周围的雾节点Fj收到消息以后,检查其存储空间是否足够。若,则不回复消息;若则向Hi发送ECHO消息。其格式为其中,RSSIj代表接收到的信号强度,Bj代表剩余带宽,代表Fj的计算能力(每秒CPU周期数),LFj代表Fj的位置坐标;表示Fj的任务执行队列中的第l个任务Ql所需要的CPU周期数,代表Fj对第l个任务Ql所分配的CPU比率,Lj代表Fj中正在排队的任务数;代表Fj分配给该任务的CPU比率,λj表示Fj节点提供服务的价格指数(为方便分析,本文假定所有雾节点的价格指数均为1,即λj=λ=1)。
(3)Hi对Tth时间之内回复ECHO消息的节点进行统计,建立节点集合Si={Fj|j∈Z+}。
(4)Hi按照式(1)计算Si中的每个节点Fj(j=1,2,…,num(Si))处理请求任务的耗时,num(Si)表示集合Si的大小。
其中,Ci代表执行Hi节点的任务所需要的CPU周期数,Di代表卸载任务的数据量表示Hi到雾节点Fj的数据传输速率:
其中,pHi表示HUB的发射功率,σ2表示噪声干扰功率表示来自其他移动终端的干扰,Hij代表Hi与Fj之间的信道增益:
其中,αMj代表小规模衰减系数,dij代表移动体域网网关节点Hi与雾计算节点Fj之间的距离,βM代表Hi的信道衰减指数,dmax代表Hi的最大通信距离。
式(1)中的三部分分别对应任务排队时延、任务处理时延及任务上传时延(任务处理结果数据量很小,因而任务处理结果的回传时延很小,此处忽略不计)。其中,ei代表紧急标志位。若任务紧急(ei=1),该任务在雾计算节点中进行抢占调度,此时式(1)中的第1项变为0,因而对于紧急任务而言,可以避免由于排队造成的时延;并且此时,式(1)的第2项变为Ci/fjCPU,代表雾节点将分配全部CPU资源对该紧急任务进行处理,紧急任务的处理时延也因此得到降低。当任务非紧急(ei=0)时,则采用FCFS方式对该任务进行调度,因而非紧急任务存在排队时延,并且此时式(1)的第2项变为Ci/εM fjCPU,代表雾节点仅将εM(εM<1)比率的CPU资源用于该非紧急任务的处理。可见,紧急任务与非紧急任务的时延主要差别来自于排队时延与处理时延,而传播时延(式(1)的第3部分)与任务的紧急与否无关,只与任务对应的数据量及HUB节点的数据传输速率有关。
(5)Hi比较各个雾计算节点处理时延与任务期限TExp的关系。若TExp (6)分别对Si内的各个雾节点的时延TT、信号强度RSSI及任务负载按由小到大进行排序,得到对应的集合 其中,TTmin及TTmax分别表示中TT的最小及最大值。 其中,RSSImin及RSSImax分别表示中RSSI的最小及最大值。 (9)按照式(6)对SQ i中各雾节点队列中的任务负载总量进行归一化,得到Q*j: (10)按照式(7)计算Si中每个雾节点的适应度函数: (11)按照式(8)选择目标雾节点Ft: 假设雾节点均匀分布于5 km×3 km的平面区域内,体域网网关节点HUB随机移动。采用MATLAB对所提出的算法进行仿真。分别对不同节点的时延、系统可靠性、吞吐量指标进行仿真分析,仿真参数设置如表1所示。 表1 仿真参数Table 1 Simulation parameters 当任务在体域网网关节点HUB本地执行时,其能耗Elocal为: 其中,pexec为手机执行功率,Texec为任务执行时间,fHUB为HUB的CPU频率。 当将任务卸载到雾节点时,HUB的能耗Eoff为:其中,Talg为算法1运行时间,在本文场景下,仿真可得Talg≈1 ms,由于算法引起的能耗很低,相对于任务处理时间,此处忽略不计。 由式(9)、(10),定义卸载因子: 其中,ρ为能效系数,当fHUB、pexec、Rb及pH一定时ρ为常数。参照文献[17],可取pexec=0.5 W;同时,假设pH=0.2 W,Rb=4 Mbit/s,此时当γ≥1(Ci≥100Di)时,即任务对于CPU计算资源的要求更高,相对而言,对于数据传输所带来的信道资源要求较低,此任务可定义为计算密集型任务。对体域网网关HUB而言,此时任务在本地执行的能耗高于卸载时的能耗,因而应将任务卸载到雾节点进行处理;反之,当0<γ<1(0 图3 代表时延与任务所需周期数Ci的关系,并分别给出了雾节点及目标节点Ft在紧急(ei=1)及非紧急(ei=0)共4种情况下所对应的曲线图。 图3 时延与Ci的关系Fig.3 Relationship of delay with Ci 从图3中可以看出,随着Ci的增大,Ft及雾节点在所有情况下的时延都呈明显的增大趋势。同时,对于目标节点Ft而言,在两种情况下的时延差别明显,即在ei=1时的时延明显低于在ei=0的时延;相对而言,普通雾节点在ei=1与ei=0两种情况下的时延相差不太明显(紧急时的时延均值比非紧急时略低)。并且,无论任务是否紧急,目标节点Ft的平均时延均低于雾节点的时延。主要原因在于,当任务紧急时,节点需要对任务采用抢占式调度方式进行处理,因此无论雾节点的任务队列大小,均优先进行该任务的处理,这将大大降低紧急任务的处理时延,并且CPU资源全部用于执行该任务,也将进一步降低任务时延。而当任务非紧急时,进入雾节点的任务按照FCFS方式进行调度。此时,队列中的任务负荷量将直接决定任务处理时延,并且节点对排队任务按照一定的比例进行CPU计算资源分配。而在紧急情况下,所有CPU周期将优先分配给紧急任务进行处理。 图4 代表时延与任务数据量Di的关系。图4(a)、(b)分别给出了当Di变化时,在任务紧急(ei=1)及非紧急(ei=0)两种情况下,雾节点及目标雾节点Ft的时延变化趋势。 图4 时延与Di的关系Fig.4 Relationship of delay with Di 由图4可以得到以下结论: (1)时延随机波动。这是由于体域网网关节点HUB的位置随机变化,引起HUB与雾节点之间数据传输速率发生随机变化,导致随着Di的增长,任务时延并非按直线规律线性增长,而是随机起伏,但总体呈上升趋势。并且,当Di较小时,时延的变化趋势并不明显。但是随着Di的增大,无论是满足条件的集合中的雾节点还是目标雾节点Ft,其时延总体上都呈现较为明显的增长趋势。这是因为,当Di增长到一定程度以后,由其带来的时延增长将在很大程度上克服系统随机性所带来的时延波动,使时延呈总体上升趋势。 (2)图4(a)中的时延明显低于图4(b)中对应节点的时延。图4(a)中,目标雾节点Ft的时延均值约为3.2 s,雾节点的时延均值约为6.1 s;图4(b)中,Ft节点的时延均值约为4.9 s,雾节点的时延均值为11.6 s。可见:无论任务是否紧急,目标节点Ft的时延都小于普通雾节点的时延,这与理论分析是一致的。并且,在紧急情况下的时延均小于非紧急情况下的时延,主要原因有两点:第一,紧急时,所有节点时延主要取决于任务周期数Ci及任务数据量Di,当Ci保持不变,增大Di将从总体上导致时延的增加;在非紧急情况下,节点时延除了与Ci、Di的值有关,还与节点队列中的任务负载量有关系,因此在相同的情况下,若考虑任务负载,相对于紧急情况,必然引起节点更大的时延。第二,在紧急时算法是以时延最低为主要优化目标,而在非紧急时,以时延及可靠性为主要优化目标,相当于对时延目标进行了松弛。 (3)对比图4(a)及图4(b)可以发现,随着Di的增大,Ft节点在紧急情况相对于非紧急情况下的时延增长速度明显加快。这是因为节点将对紧急任务采用抢占式任务处理方式进行调度,不需要由于任务排队而带来额外耗时,数据传输耗时将在很大程度上影响节点时延,而在数据传输速率一定的情况下,数据传输耗时主要取决于任务数据量Di的大小,因此随着数据量Di的增长,系统时延明显增大。 图5 代表当Ci与Di保持不变时,进行多轮仿真得到的时延情况。图5(a)、(b)分别给出了在任务非紧急(ei=0)及紧急(ei=1)两种情况下,雾节点及目标Ft节点的时延变化情况。不难发现,在两种情况下,Ft节点的时延均明显低于雾节点的平均时延;同时,所有节点在紧急情况下的时延均低于在非紧急情况下的时延;此外,所有节点的时延随着仿真的进行而发生随机波动,这是由体域网网关节点HUB的随机移动性及雾节点参数在一定范围内的随机性所导致的。 图5 节点时延对比Fig.5 Comparison of node delay 图6 为系统时延及吞吐量与任务期限TExp之间的关系曲线。图中,左轴代表系统时延,右轴代表系统吞吐量。 图6 时延及吞吐量与任务期限TExp的关系Fig.6 Relationship of delay and throughput with TExp 由图6可见,系统吞吐量与延时呈反比关系。当TExp<6 s时,系统时延几乎呈垂直上升趋势增长到无穷大,这是由于当TExp设置太小时,导致满足条件的节点集合为空。而在将近6 s时,系统中至少出现了一个满足条件的节点,因此系统时延急剧下降。由吞吐量公式Throu=Di/Tt可知,吞吐量Throu与任务数据量Di及任务处理总时间Tt有关。因此,在6 s以前,当系统时延为无穷大时,系统吞吐量为0(见右轴),而当接近6 s,当系统时延陡然下降时,系统吞吐量急剧上升。而后,在TExp>6 s的情况下,增大TExp并不会显著改变系统时延及吞吐量,这是因为理论上TExp的改变只会改变满足条件的雾节点的个数Ns,不管Ns多大,最终的最佳目标雾节点只有一个,因此系统吞吐量并不会随着TExp的增长而呈明显的增大趋势。但是系统的随机性导致最终目标节点Ft的时延的随机性,因此当TExp>6 s以后,系统时延呈随机起伏,且由于吞吐量与时延的反比关系,导致其反方向随机波动。 图7 为节点的接收信号强度RSSI(Received Signal Strength Indicator)值在不同情况下的对比。 从图7中可以看出: 图7 节点RSSI在不同情况下的比较Fig.7 Comparison of node RSSI in different cases (1)在ei=0(非紧急)的情况下,目标节点Ft的RSSI值明显高于普通雾节点的RSSI值。这是因为在非紧急情况下,RSSI值是目标Ft节点选取的重要尺度,此时系统更倾向于选择RSSI高及时延低的节点作为目标节点。 (2)目标节点Ft在ei=0时的接收信号强度RSSI值明显高于其在ei=1时的值。这是因为,在非紧急情况下,系统将同时考虑时延及可靠性尺度,通过多目标优化选取最终的目标节点Ft;而在紧急情况下,系统以时延为主要尺度寻优选取目标节点Ft;同样,对于普通雾节点也有相似的结论,不同的是,对于普通雾节点而言,其RSSI值在紧急与非紧急两种情况下相差不大,当ei=1时,其均值约为4.58 pW,而当ei=0时,其均值约为4.74 pW,比ei=1时的值略小。 总之,对于Ft而言,ei=0时的RSSI值高于ei=1时的RSSI值,而RSSI值将直接影响系统丢包率的大小。因此,相对而言,系统在ei=0时的可靠性更高,这与理论分析是一致的。 图8 所示为节点在不同情况下的负载情况对比。图中,横坐标表示仿真轮数,纵坐标表示节点队列的任务负载量。 图8 节点负载在不同情况下的对比Fig.8 Comparison of node load in different cases 由图8可以得到如下结论: (1)在紧急情况下(ei=1),Ft节点的任务数在0~1之间波动,平均值接近于0;而在非紧急情况(ei=0)下,Ft的任务数最大达到10,平均值约4.5。由此可见,对于目标节点Ft而言,紧急时候的任务负载量明显低于非紧急时候的任务负载量。这是因为,在紧急情况下,系统以时延最低为目标优化选取最佳目标节点Ft。由式(1)可见,当ei=1时,由于雾节点采用抢占式调度方式,此时任务时延看似与任务负载无关,但是HUB需要为所分配的优先服务而付出代价,具体代价大小与任务负载Q成正比关系(见式(7))。因此,ei的值直接决定了目标节点的选取是否与任务负载Q有关。即当ei=1时,任务负载Q与Ft的选取有关,并且此时Q与时延指标T的权重系数都为1,即两个参数的重要程度相同,各对Ft的选取起1/2的影响作用。 (2)在非紧急情况下(ei=0),由式(7)可见,目标节点Ft的选取受时延指标TT、节点的接收信号强度RSSI的影响,并且其权重系数相同,各对Ft的选取起1/2的影响作用。由式(1)可见,此时任务队列Q及任务所需CPU周期数Ci及任务数据量Di三者权重系数相同,共同决定总时延的大小,因此综合来看,在最终Ft的选择中Q占据了1/6比重。 (3)在多目标优化中,参数的重要性系数越大,其对结果的影响作用越明显。因此,综合上述两条结论可知,ei=1时,Q对目标节点的选取将起到更为显著的作用。即当ei=1时,经过优化选择的目标雾节点的负载水平Q在ei=1概率上必然低于其在ei=0时的负载水平,这说明仿真结果与理论分析是一致的。 (4)不难发现,当ei=1时,普通雾节点与目标雾节点Ft的负载值有较大差异,Ft节点负载的最大值为1,均值为0.1,而雾节点负载的最大值约为6,均值约为5。由此可见,当任务紧急时,目标雾节点的负载值明显低于雾节点的负载平均值,与理论分析是一致的。 本文提出了一种基于雾计算辅助的体域网目标雾节点关联及任务卸载方法。通过将计算密集型任务卸载到雾计算节点进行处理,本文方法可以降低体域网网关节点的功耗,同时利用雾计算节点强大的数据处理能力,可以大大降低任务处理时延,满足时延敏感的体域网应用需求,尤其是在紧急情况下的应用。本文方法可以根据数据及任务的不同情况,自适应调整系统的优化目标函数的评价尺度,当任务紧急时,由于对时延的要求极高,算法以低时延为主要优化目标寻优选择最佳目标雾节点;而当任务非紧急时,同时考虑系统的时延及可靠性,对系统进行多目标优化。仿真结果表明,本文方法能够兼顾系统的时延及可靠性指标需求,对于紧急情况下的应用,能够大大降低系统时延,对于非紧急情况下的应用,系统时延及可靠性都可以得到保证,满足了基于体域网的智慧医疗系统对系统实时性及可靠性的要求。但是,如果网络中节点紧急任务较多,则本文所提方案需要进一步针对任务的不同属性划分优先级,对高优先级的任务进行优先调度,同时设计合理的机制防止低优先级及非紧急任务饥饿,这将是下一步的研究方向。2 仿真与分析
2.1 仿真环境设置
2.2 能耗分析
2.3 仿真结果分析
3 总结