[0023] 下面结合具体实施例对本发明做进一步的分析。
[0024] 本发明所提供的边缘云环境中任务安全卸载的效益最大化方法如图1具体实施步骤如下:
[0025] 步骤S1构建安全模型,安全服务包括机密性服务(confidentiality services)和完整性服务(integrity services)。
[0026] 步骤S1‑1运行所有的机密性服务和完整性服务得到它们的执行时间,假设运行服务的执行时间越长具有越高的安全等级,据此,机密性服务的安全等级计算为:
[0027]
[0028] 其中 为第k个机密性服务的执行时间; 为第k个机密性服务的安全等级;Q1为人为定义的机密性服务执行时间基准,可以为0.85。
[0029] 完整性服务的安全等级计算为:
[0030]
[0031] 其中 表示第k个完整性服务的执行时间; 表示第k个完整性服务的安全等级;Q2为人为定义的完整性服务执行时间基准,可以为0.13。
[0032] 步骤S1‑2执行时间与数据大小成正比,可以得到:
[0033]
[0034] 其中 表示1MB的数据在单个CPU下安全服务S的执行时间;D为数据大小; 表示s服务的执行时间;N表示CPU的数量;cd表示机密性服务;ig表示完整性服务;
[0035] 步骤S1‑3假设外界攻击次数服从泊松分布,那么添加安全等级为 的安全服务的任务的风险概率为如下的指数分布:
[0036]s s
[0037] 其中sd表示任务的安全需求;π表示安全服务s的风险系数; 表示第k个安全服务s的安全等级;
[0038] 因此两种安全服务下的联合风险概率为:
[0039]
[0040] 步骤S1‑4为了保证移动设备提交任务的安全性,满足任务要求的安全服务S的安s全等级大于或等于sd
[0041]
[0042] sds为云端和边缘节点对安全服务s的安全需求的最大值
[0043] sds=max{sds(edge),sds(cloud)},s∈{cd,ig} 式(7)
[0044] 其中sds(edge)表示边缘节点上的安全需求;sds(cloud)表示云端上的安全需求[0045] 在这种情况下,表示使用等级为 的安全服务可以保证数据的安全性
[0046] 步骤S2制定安全任务卸载的效益最大化问题
[0047] 步骤S2‑1设xi为任务ti的执行位置,xi=1表示任务ti被卸载到远程云端上并执行,xi=0表示任务ti在边缘节点(即本地)执行,即:
[0048]
[0049] S(τ)={1,2,…,n(τ)},表示任务的索引编号集合,n(τ)为任务数量。
[0050] 步骤S2‑2使用X(τ)={x1,…,xi,…,xn(τ)}表示任务在时间间隔τ上的执行位置。使用Y(τ)={y1,…,yi,…,yn(τ)}表示时间间隔τ处任务的执行顺序,其中yi≠yj,任意的两个任务不能有相同的执行顺序。
[0051] 步骤S2‑3任务ti的效益 计算如下:
[0052] ①任务在边缘节点上的效益计算:
[0053]
[0054] 表示第i个任务的结束时间实际值, 表示第i个任务的截止日期期望值,ηi表示完成任务ti所获得的效益。
[0055] 这表明如果某项任务不能在截止日期前完成,则边缘节点的效益为0。
[0056] ②任务ti卸载到云端时的效益计算:
[0057] 如果一个任务计划在远程云端上执行,那么在卸载之前,应该添加安全服务来保证数据的安全性。任务ti将会经历四个步骤,分别为添加安全服务,传输数据到云端,卸载安全服务,执行任务。任务ti的结束时间实际值包括五个部分:
[0058]
[0059] 其中 是任务ti的开始时间, 是任务ti在边缘节点上添加安全服务的时间, 是任务ti传输数据到云端的传输时间, 是任务ti卸载安全服务所消耗的安全时间, 是任务ti在远端云上的执行时间。
[0060] 对于任务ti,由于带宽是个常量, 和 是固定的。为了保证 以下条件应该满足:
[0061]
[0062] 此时
[0063]
[0064] 其中Di表示任务ti的数据大小,Wi表示任务ti的工作负载;
[0065] 根据上式,我们可以计算任务ti在云端所需的最小资源
[0066]
[0067] 云端的费用为:
[0068]
[0069] 其中p表示1MB数据在单位时间的计算费用, 表示任务ti在云端的总消耗时间。且
[0070] 其中
[0071] 在云上计算的任务ti的效益为:
[0072]
[0073] 步骤S2‑4在时间间隔τ边缘节点的总效益计算如下:
[0074]
[0075] 步骤S3使用遗传算法,在每个时间间隔τ上使上述总效益ψ最大化。效益Ψ(·)可以看做与X(τ)和Y(τ)相关的函数,X(τ)={x1,…,xi,…,xn(τ)},表示任务的执行位置,Y(τ)={y1,…,yi,…,yn(τ)},表示任务的执行顺序。X(τ)和Y(τ)的搜索空间满足如下的公式:
[0076]
[0077]
[0078]
[0079] S(τ)={1,2,..,n(τ)}
[0080] 步骤S3‑1种群初始化,随机产生一个数∈在[0,1]之间,如果∈≤0.5,xi=0,否则xi=1。
[0081] 步骤S3‑2重复步骤S3‑1直至产生了n(τ)个执行位置。
[0082] 步骤S3‑3将复制S(τ)为S;
[0083] 步骤S3‑4随机产生一个正整数∈在[1,|S|]之间,让yi为S中的第∈个元素s∈,然后移除第∈个元素。即yi=s∈,S=S‑{s∈};
[0084] 步骤S3‑5重复步骤S3‑4直至产生了n(τ)个执行顺序。这样就产生了一个个体,分别包括任务计划的执行位置和执行顺序。
[0085] 步骤S3‑6重复步骤S3‑1到步骤S3‑5直至产生了m个个体,m为人为设定的种群个体的数量。
[0086] 步骤S4交叉是关键的遗传操作,交叉的作用是产生后代,群体中的个体就可以更好地探索未知的解空间。变异是遗传算法的另一个重要操作,能够提高适应度值,防止算法过早收敛。
[0087] 步骤S4‑1从种群中选取两个个体,X1和X2分别表示这两个个体的执行位置向量。随机选取一个分界点,从这个分界点处X1和X2被分成两个子串 和 交换他们的第二部分产生两个新的执行位置向量X12和X21,即 见图2。
[0088] 步骤S4‑2Y1和Y2分别表示上个步骤选取的两个个体的执行顺序向量,随机选取分界点,从该分界点处被分为两个子串 和 通过交换两个子串,得到了两个临时执行顺序向量Y′12和Y′21,即 接下来,从前到后分别扫描
两个临时个体,删除重复出现的数字,这个操作避免了执行顺序的冲突,此时产生两个新的执行顺序向量。见图3。
[0089] 步骤S4‑3循环步骤S4‑1和步骤S4‑2,直至种群中的所有个体都被选择完,此过程产生了m个新的个体。
[0090] 步骤S4‑4从种群中遍历所有个体执行如下:随机产生一个在[0,1]之间的数∈,如果∈
[0091] 步骤S4‑5X表示当前个体的执行位置向量,随机产生一个数正整数∈’在[1,n(τ)]之间,∈’是变异点,那么x∈’=|x∈’‑1|。见图4。
[0092] 步骤S4‑6Y表示当前个体的执行顺序向量,随机产生两个在[1,n(τ)]的正整数∈1和∈2,∈1≠∈2,交换 和 产生一个新的执行顺序Y′;见图5。
[0093] 步骤S4‑7种群选择阶段,将具有更优解的个体保存下来。此时我们已经有了m+m个个体,Ψ(X(τ),Y(τ))为适应性函数,分别计算每个个体的Ψ值,从大到小进行排序,选择前m个个体保存下来。
[0094] 步骤S4‑8重复M次步骤(4)至(4.8),M表示遗传算法的最大迭代次数。排序最大的个体,即为最终的任务卸载方案。