融合边缘计算与区块链的工业互联网资源优化配置研究 ①
2021-01-12叶欣宇孙恩昌张延华
杨 乐 李 萌 叶欣宇 孙恩昌 张延华
(*北京工业大学信息学部 北京 100124) (**先进信息网络北京实验室 北京 100124)
0 引 言
当前,工业互联网的快速发展吸引了工业界和学术界的广泛关注[1]。工业互联网技术的应用可实现机器与机器[2]、人与机器的高效便捷的交互。多种类型的工业互联网设备,又名机器类型通信设备(machine-type communication devices, MTCDs),被广泛应用于多种工业领域中,包括环境监测、制造业、视频监控以及智能网络等。预计到2021年,将有近250亿数量的工业互联网设备接入网络,用于收集和传输工业数据[3]。
在工业场景下[4],工业数据的安全性和可靠性至关重要。然而,由于MTCD分布极其广泛以及交互数据种类多样,数据的隐私性和安全性往往难以保证。另一方面,工业互联网中能量资源和计算资源短缺明显,因大多数MTCD在脱离人工控制状态下进行工作,且为了延长设备工作寿命,此类设备仅装配有限的电池供给和轻量的计算资源。因此,一些复杂繁重的计算任务难以在这些设备内独立完成。
针对存在于工业互联网系统中的数据安全性问题,新兴的区块链技术被广泛应用于工业领域[5]。区块链最早是一种服务于比特币的底层技术,用于记录存储比特币的各类交易。相比于传统的由第三方控制的中心化账本,区块链实质上是一种拥有点对点网络结构的分布式账本,可有效保障数据的安全性和可靠性。然而,无论是以比特币、以太坊为首的公链结构,还是应用拜占庭容错共识机制的私链结构,都需要大量的计算资源用于挖矿和共识。因此,区块链中计算的效率和稳定性极为重要。
为应对设备、节点计算能耗过高、计算资源短缺的问题,计算任务卸载的方式可有效提高设备和节点的计算能力。通过将计算任务从设备卸载到服务器,不仅可明显提升计算效率,还减少了设备的计算能耗。近年来,大量的研究工作聚焦于包含有中心云计算和移动边缘计算[6-7](mobile edge computing, MEC)的混合数据计算模型[8]。其中,相比于中心化的云计算,分布式的MEC拥有低传输时延、低计算开销以及低设备能耗等优势。更重要的是,分布式的计算卸载结构可支撑区块链中共识节点的验证计算过程[9]。因此,将区块链和MEC整合至工业互联网场景成为了当下一种新的研究发展方向[10]。对此,Zhang等人[11]提出了一种结合了区块链和MEC技术的车载自组织网络安全结构。他们应用区块链保证数据的可追溯性,并借助MEC解决区块链中的高维计算问题,既保障了数据的安全性,也提升了区块链节点的验证效率。Qiu等人[12]提出了一种计算卸载框架用于提升移动设备的计算能力。他们将设备中的挖矿任务和数据处理任务卸载至MEC服务器或云计算服务器,有效提升计算任务的处理效率。
近年来,针对工业互联网系统高动态、多维度等特点,深度强化学习(deep reinforcement learning,DRL)逐渐成为受高度关注的优化方法[13-15]。智能体agent按照所学习的策略对环境施加动作,并从中获得即时奖励。两者交互过程持续进行,直到环境达到最终状态。在此过程中,agent不断学习和调整策略以获得最大的长期累积收益。DRL中加入了深度神经网络结构对agent的动作进行估计,可更有效应对高维的状态、动作问题。近年来,基于DRL方法对工业互联网系统性能进行优化的研究逐渐增加。Qiu等人[16]基于dueling deep Q-learning算法对区块链架构下的工业互联网系统吞吐量进行性能优化,有效提升了系统中交易的处理效率。Feng等人[17]应用DRL算法,针对基于区块链的工业互联网系统,联合优化了MEC系统的计算效率和区块链系统的交易吞吐量。
尽管上述研究均结合区块链和MEC技术对系统性能进行了不同程度的优化,但在工业互联网场景下仍将面临一些潜在的问题和挑战。例如,如何选择计算任务的处理方式来平衡设备能耗和系统计算开销。同时,在计算任务卸载过程中,考虑到计算服务器的计算资源和计算开销,须选择更适合的目标服务器处理计算任务。此外,由于区块链技术的引入,设备能耗和计算负载的问题也将更加严峻。因此,在设计系统时均须仔细考虑以上问题。
针对上述问题和挑战,本文提出一种融合边缘计算和区块链技术的工业互联网资源分配优化方法。首先,联合考虑工业互联网场景下的控制器和计算服务器状态。其次,动态调整卸载决策、区块链的区块尺寸和计算服务器的选择。最后,通过设置状态空间、动作空间和奖励函数,建立一个马尔可夫决策过程(Markov decision process, MDP)用以描述此动态联合优化问题,并基于DRL方法进行求解,不仅有效减少设备计算能耗,还显著降低系统的整体计算开销,并提高数据共识效率。相比于已有相关研究,本文方法更适应高动态、多维度的工业互联网场景,在设备能耗、系统开销上可取得更好的优化效果。
本文的结构安排如下,第1节介绍本文的系统模型及网络场景;第2节将建立一个包含卸载决策、区块尺寸调整和计算服务器选择的联合优化问题;第3节基于DRL方法对所提优化问题求解;第4节介绍仿真实验环境和参数,并根据仿真结果进行讨论和分析;第5节是对本文工作的总结和展望。
1 系统模型
如图1所示,本文的系统模型包含3部分,分别为用户层、控制器层和区块链层,本章将对这3部分的模型详细描述。
1.1 用户层
本文假设在所述网络场景中存在u个小区。在每个小区中,都分布着大量的工业互联网设备,与本地控制器连接。工作期间这些设备将收集的本地数据传输至本地控制器中,用于数据共识和记录。以智能电表设备为例,各小区内智能电表定时向其本地控制器传输耗电量数据。在每个时刻t={0,1,…,T-1},控制器系统指定一个控制器作为主控制器,接收各本地控制器的工业数据,并对这些数据处理、打包,上传到区块链系统。
图1 系统模型图
1.2 控制器层
在每个小区内,都包含一个本地控制器和一个部署于基站旁的本地MEC服务器。本地控制器不仅可通过基站收发数据,还可对数据进行处理和打包。小区可由集合U={1,2,…,u}表示,并假设控制器与小区一一对应,表示为U*=U={1,2,…,u},控制器u在其关联小区u收集本地工业数据。
此外,每个控制器均有独立的能量状态和算力状态,分别表示为G(t)={g1(t),g2(t),…,gu(t)}和C(t)={c1(t),c2(t),…,cu(t)}。本地MEC服务器则用于处理本地控制器卸载的计算任务。
在工作期间,每个本地控制器收集MTCD的不同类型工业数据,且为节省控制器与区块链系统间的数据传输损耗,各本地控制器将数据首先传输至主控制器。主控制器对数据处理、打包,并将打包好的数据作为一批交易传输至区块链系统。其中,主控制器由此产生的计算任务既可在设备本地处理,也可卸载至本地MEC服务器处理,来提升处理效率并减少本地能耗。任务处理的能耗和计算开销如下,若主控制器选择在设备本地处理,时刻t时的处理能耗Ec(t)表示为
Ec(t)=zu·q(t)
(1)
其中,q(t)为时刻t时的计算任务复杂度,zu为与设备算力状态相关的能耗系数,表示为
zn=10-27·(cu)2
(2)
其中,cu表示控制器u的算力状态。
若主控制器选择卸载计算任务,其在时刻t产生的数据传输能耗Es(t)和由本地MEC服务器收取的计算开销Ms(t)分别表示为
(3)
Ms(t)=ξ(t)+μ·q(t)
(4)
其中,d(t)表示时刻t时计算任务的数据量,pt为主控制器的传输功率,rcs表示控制器与本地MEC服务器间的数据传输速率,ξ(t) 和μ分别为本地MEC服务器的固定计算开销和开销系数。
将收集的数据处理、打包后,主控制器将此未验证的区块传输至区块链系统,其传输能耗En(t)表示为
(5)
其中,rcn为控制器与区块链系统间的数据传输速率,n为区块链节点数量。
综上,在时刻t,若主控制器在设备本地执行计算任务,则其产生的总能耗E(t)和服务器收取的计算开销Mc(t)分别为
E(t)=Ec(t)+En(t)
(6)
Mc(t)=0
(7)
相反,若主控制器将计算任务卸载至本地MEC服务器,则其产生的总能耗E(t)和服务器收取的计算开销Mc(t)分别为
E(t)=Es(t)+En(t)
(8)
Mc(t)=Ms(t)
(9)
1.3 区块链层
在区块链系统中,存在n个共识节点,由集合N={1, 2,…,n}表示。这些节点负责验证来自主控制器发送的交易,并将已验证的区块添加至区块链。
(1) 共识机制。本文的区块链共识机制应用了实用型拜占庭容错机制(practical Byzantine fault tolerance, PBFT),可在被攻击节点数量低于总节点数量三分之一的情况下保证系统的正常运行。如图2所示,PBFT的共识过程可分为请求、预准备、准备、确认和回复5个阶段,具体过程如下。
图2 PBFT工作流程
第1步,主控制器向区块链系统发送数据共识请求和已打包的未验证区块,并由区块链系统随机分配一个主节点,负责验证区块的相关信息。具体地,主节点依次验证区块的签名和消息身份验证码(message authentication code, MAC),若以上信息验证通过,主节点将继续验证区块中每个交易的签名和MAC。本文假设节点验证一个签名及生成/验证一个MAC所需的计算轮数分别为θ和α。
因此,在请求阶段,主节点所需的计算轮数为
(10)
其中,b(t)为时刻t时区块中交易的总量,h为交易的平均尺寸。
第2步,主节点生成并发送一个MAC至系统中各从节点。各从节点将验证此MAC,验证通过后再验证区块中各交易的签名和MAC。因此,在预准备阶段,主节点和从节点所需的计算轮数分别为
c2p(t)=(n-1)·α
(11)
(12)
其中,g为由主控制器发送的正确交易的比例。
第3步,验证通过的从节点均生成并发送一个MAC至所有其余节点,证实其成功完成上一步验证过程。每个节点均收到并验证n-1个来自其余节点发送的MAC。当验证通过的节点数量多于2f(f=(n-1)/3)时,下一阶段过程才能进行。因此,在准备阶段,主节点和从节点所需的计算轮数分别为
c3p(t)=2f·α
(13)
c3r(t)=(n-1+2f)·α
(14)
第4步,收到超过2f数量正确验证消息的节点再次向所有其余节点发送一个MAC,证明其完成了上一步验证。与此同时,每个节点也再次对这些MAC进行验证。在确认阶段,所有节点所需的计算轮数均为
c4(t)=(n-1+2f)·α
(15)
第5步,所有收到超过2f数量有效确认信息的节点向主控制器发送回复消息。若正确的回复消息数量超过2f,则共识过程视为成功完成,生成的区块顺利被添加至区块链,并向全网络广播。同时,生成区块也根据区块尺寸产生开销,表示为
Mb(t)=ε·s(t)
(16)
其中,s(t)表示在时刻t生成的区块尺寸,ε为描述区块尺寸与区块开销的常系数。
(2) 服务器计算。在每一步验证过程中,所有节点(包括主节点和从节点)都会验证大量的签名和MAC,由此产生了一批复杂繁重的计算任务。同时,在每次PBFT共识过程中还存在与总交易量相关的时限tl,若共识时延超出此时限,生成的区块将无法及时添加至区块链。因此,共识的效率至关重要。
为应对这些复杂繁重的计算任务,并满足共识过程的时限要求,MEC服务器和云计算服务器被用于支持节点的共识过程,两种服务器拥有不同的计算能力,并产生不同的计算开销。此外,当区块尺寸不足而导致多次共识过程时,服务器将产生额外的计算开销。
根据每一阶段所需计算轮数,共识过程所需总计算轮数为
b(t)≤s(t) (17)
若总交易量大于区块尺寸,则多次共识所需总计算轮数(本文假设最多为两次共识)为
b(t)>s(t) (18)
因此,共识时延和共识计算开销分别为
(19)
(20)
其中,tb为节点间的广播时延,ti为区块生成间隔。
据此,总开销M(t)表示为
M(t)=Mc(t)+Mn(t)+Mb(t)
(21)
当共识时延Dn(t)小于共识时限tl,则可视为一次成功的共识过程,所生成的区块被添加至区块链,主控制器也将收到数据共识成功的消息。
综上,本文设置W(t)表示时刻t时系统总能耗和总开销之和,表示为
W(t)=ke·E(t)+km·M(t)
(22)
其中,ke和km分别为能耗和开销的权重系数,且满足0≤ke≤1, 0≤km≤1和ke+km=1。
2 问题建模
基于区块链的工业互联网系统存在高动态性、多维度性等特点。因此,本文通过构建一个离散马尔可夫决策过程来描述此优化问题,旨在联合优化设备能耗和系统计算开销,提高共识效率。通过构建优化问题的状态空间、动作空间和奖励函数,基于深度强化学习的优化方法对问题求解。
2.1 状态空间
在每个决策时刻,智能体agent通过观察环境状态,实时地学习经验并升级问题策略。结合本文优化问题,agent须实时获取各控制器和计算服务器的状态。因此,本文定义时刻t时的状态空间为
(23)
其中,G(t)={g1(t),g2(t),…,gu(t)}为所有控制器的能量状态集合,γ(t)={γ1(t),γ2(t),…,γv(t)}和η(t)={η1(t),η2(t),…,ηv(t)}分别为服务器的计算资源状态集合和计算开销状态集合,包含v-1个MEC服务器和1个云计算服务器。
2.2 动作空间
为获取最大长期收益,需动态调节系统的若干部分。本文设置的调节动作包含卸载决策动作ap(t),区块尺寸调整动作ab(t)和服务器选择动作as(t),在时刻t时的动作空间表示为
a(t)=[ap(t),ab(t),as(t)]
(24)
其中,ap(t)∈(0,1)为卸载决策,ap(t)=0表示本地处理,ap(t)=1表示卸载。ab(t)∈(1,2,…,w)为所选区块尺寸等级,as(t)∈(1,2,…,v)为所选用于支持共识节点计算的服务器。
2.3 奖励函数
为降低设备能耗和系统计算开销,并提高共识效率,本文据此构建即时奖励函数为
(25)
其中,σ(t)为共识成功的额外基础奖励,k为系统总开销的权重参数。
3 基于DQL的工业互联网系统资源分配决策算法
针对工业互联网系统中控制器和服务器状态的高动态性和多维度性的特点,并基于联合优化目标,本文采用深度强化学习方法对系统的资源分配进行优化,以获取最佳长期收益。
深度Q-learning(deep Q-learning, DQL)结构中包含一个用于近似动作-状态值的深度神经网络层,和一个用于动态网络更新和策略决策的在线深度Q网络层。基于DQL方法,智能体agent与环境交互并获取经验,最终根据收敛的值函数执行智能策略。具体地,在时刻t,agent观察环境状态s(t),包含控制器能量状态和服务器计算资源、计算开销状态。随后,agent选择并执行动作a(t),包含卸载决策、区块尺寸调整和服务器选择。同时,环境反馈agent即时奖励r(t),并跳转至下一状态s(t+1)。此过程循环进行,直至环境达到最终状态sterminal。
由于DQL方法是一种基于值函数的优化算法,在不同状态下准确地评价动作尤为关键。当前,一种普遍用于评价动作优劣的方法,称为动作-状态值Qπ(s,a),所示如下:
(27)
其中,Eπ[*]表示数学期望,γ∈(0,1)为奖励折扣因子,rt+k+1为在时刻t+k+1执行策略π获得的奖励。
据此,agent不断通过下式迭代动作-状态值,表达式为
Q(s,a)←Q(s,a)+α[r(s,a)
(28)
在所提优化问题中,状态空间和动作空间均复杂高维,难以探索到所有状态以及获取每一组动作-状态值。而深度神经网络通过调整网络中的参数,具有从高维数据中获取低维特征的能力。据此,本文应用深度神经网络生成近似值Q(s,a,θ)用以近似动作-状态值Q(s,a)。agent将观察到的环境特征输入深度神经网络,随后从网络中获取该环境状态下所有动作的近似Q值作为网络输出。
DQL方法的工作流程如图3所示,估计网络输出近似值Q(s,a,θ),并由损失函数L(θ)训练网络中参数,通过调整网络层的权重和偏置θ以最小化L(θ),从而达到反向训练。损失函数L(θ)表达式为
-Q(s,a,θ))2]
(29)
图3 DQL工作流程
然而,深度Q网络在训练中仍会存在不稳定的情况,这有可能导致训练效果不佳,甚至训练失败。针对此问题,本文增加了经验回放和固定目标网络两种措施。
(1) 经验回放。为打破经验学习的时间相关性,agent将探索经验
(2) 固定目标网络。目标网络和估计网络拥有相同的网络结构,但相比估计网络中参数的实时更新,目标网络将其网络中参数暂时冻结,以消除估计网络输出的估计Q值和目标网络输出的目标Q值间的相关性。当经过一定的训练步数后,目标网络将其参数与估计网络中参数同步。
因此,改进的损失函数L(θ)表达式为
-Q(s,a,θ))2]
(30)
其中,θ-为目标网络中的权重和偏置参数。
综上,基于DQL的工业互联网系统资源分配决策算法的具体工作流程如算法1所示。
算法1 基于DQL的工业互联网系统资源分配决策算法1:初始化: 初始化估计网络中的参数θ 初始化目标网络中的参数θ- 初始化记忆库容量M和样本容量B 初始化贪婪系数ε2:for episode = 1,K do3:随机重置控制器和服务器初始状态sinitial,并使s(t)=sinitial4: while s(t)!=sterminaldo5: 根据概率ε随机选择动作a(t)6: 否则选择指定动作a(t)=argmaxaQ(s(t), a,θ)7: 执行动作a(t)并获取即时奖励r(t),观察下一状态s(t+1)8: 将经验
其中5~7行是agent与环境的交互过程;8~9行应用经验回放机制抽取训练样本;随后,10~13行为估计网络的训练过程和目标网络的同步过程;5和13行应用贪婪系数ε以平衡探索动作和偏好动作选择。
4 仿真实验及结果分析
本节首先介绍仿真实验的环境和参数,随后展示并讨论不同框架和不同方法下的相关仿真结果。
为更直观评估本文所提方法,将对下列框架、方法进行仿真分析:(1) 无卸载决策框架,计算任务全部在控制器本地执行;(2) 无区块尺寸调整框架,生成的区块尺寸固定;(3) 无服务器选择框架,随机挑选服务器支持节点的共识过程计算;(4) Q-learning方法,基于Q-learning算法优化。
本文仿真实验环境为Python3.6和广泛用于部署机器学习算法的Tensorflow1.31.1环境。在网络场景中,考虑存在6个小区对应6个本地控制器,以及3个用于支持节点共识过程计算的服务器,包括2个MEC服务器和1个云计算服务器。此外,在区块链系统中部署有4个共识节点用于数据共识,场景中其他参数具体如表1所示。
表1 实验参数设置
同时,本文将用于支持节点共识过程计算的MEC服务器和云计算服务器的计算资源状态设置为4个等级,分别为很高、高、中等和低,其状态转移矩阵表示为
(31)
此外,支持节点共识过程计算的MEC服务器和云计算服务器的计算开销状态分为3个等级,分别为昂贵、普通和廉价,其状态转移矩阵表示为
(32)
图4展示了不同方法优化效果的收敛性比较。在图中,随着迭代次数的增加,各方法优化曲线都在大约2 500次迭代后达到收敛,且相比于其他方法,本文所提方法优化后可得到更高的总奖励。主要原因是,合理的卸载决策和适当的区块尺寸有助于减少设备能耗和计算开销,且选择更高效廉价的服务器也可节省系统开销。
图4 不同框架下曲线收敛性对比
此外,图5展示了本文所提出的DQL方法与Q-learning方法的优化曲线收敛性比较。如图所示,所提方法可达到更高的总奖励并具有更稳定的收敛性。其主要原因是,基于区块链的工业互联网系统中的状态动态高维,Q-learning方法难以探索评估所有动作-状态对,其不完整的探索使agent很难获得最佳策略。相反,所提DQL方法通过深度神经网络评估不同状态下动作优劣,更加适应系统的高维复杂环境。因此,所提方法可取得更好的优化效果。
图5 本文方法和Q-learning方法曲线收敛性对比
图6和图7展示了在不同框架、方法优化下,设备能耗与小区数量的关系对比图。如图所示,当小区数量增加时,设备能耗也随之增加。同时,本文所提方法优化的设备能耗在小区数量大于4时,均明显低于其他方法。主要原因是,相比于其他方法,所提方法的卸载决策更合理,在平衡设备能耗和计算开销后决策是否卸载计算任务,有效缓解了设备在面临复杂计算任务时的能耗压力。
图6 不同框架下设备能耗与小区数量关系图
图7 不同方法下设备能耗与小区数量关系图
图8和图9展示了不同框架、方法下计算开销与小区数量的关系图。在图中,随着小区数量增加,计算开销也随之增加,但本文所提方法下的计算开销始终低于其他方法。主要原因是增加的计算任务量占有了更多的服务器计算资源,衍生出更多计算开销,且为承载更多的交易量,调整后生成了更大尺寸的区块。因此,计算开销明显增加。然而,本文方法适时地调整区块尺寸以及恰当地选择更廉价高效的服务器,有效节省了额外的计算开销。
图8 不同框架下计算开销与小区数量关系图
图9 不同方法下计算开销与小区数量关系图
图10和图11展示了不同框架、方法下系统能耗开销和与小区数量的关系图。如图所示,在所有方法下,系统能耗开销和均随着小区数量的增加而增长。系统能耗开销和包含设备能耗和计算开销,由于存在对卸载决策、区块尺寸调整和服务器选择的联合优化,相比于已有方法,本文所提方法可取得更好效果。
图10 不同框架下系统能耗开销和与小区数量关系图
图11 不同方法下系统能耗开销和与小区数量关系图
5 结论与展望
本文针对基于区块链的工业互联网系统,提出了一种设备能耗和系统计算开销联合优化的决策方法。本文将移动边缘计算和区块链技术整合应用于工业互联网场景中,联合考虑控制器和服务器的状态。同时,基于区块链协议和计算服务器资源构建区块链共识时延模型,在保证数据安全性的基础上,提升了区块链共识和数据处理的效率。本文将此优化问题构造为马尔可夫决策过程,并根据优化场景的高动态、多维度的特点,采用更适合高维场景的深度强化学习方法予以建模求解。通过仿真结果证明,本文所提方法不仅具有更稳定快速的收敛性,还能更有效地减少设备能耗,节省计算开销,并提升区块链共识效率。
未来的工作将在现有工作基础上,考虑更多的区块链共识协议,并关注工业互联网中数据缓存等问题。