一种多源和多目标的密码资源调度方法

文档序号:31078462发布日期:2022-08-09 22:02阅读:114来源:国知局
一种多源和多目标的密码资源调度方法

1.本发明属于密码资源调度技术领域,具体涉及一种多源和多目标的密码资源调度方法。


背景技术:

2.云计算技术日益成熟,广泛应用于政务、金融和工业等各类信息系统中,为提高服务质量,需要对云资源的管理调度问题进行研究,调度算法也在不算发展,主要包括传统调度算法、基于预测的调度算法、启发式智能调度算法。
3.传统调度算法包括先来先服务调度算法、高优先权调度算法和轮转调度算法等。先来先服务调度算法根据任务的到达顺序为其分配资源。高优先权调度算法根据任务的优先级来调配资源,优先级高的优先分配资源。轮转调度算法以轮转方式将资源请求分发到不同的云主机上。传统调度算法的实现方式简单,但很难适应复杂的实际应用环境。
4.基于预测的调度算法通常有一个预测模型,该模型根据历史任务的运行情况来预测下一个任务需求,为调度策略提供决策依据,目前常用的预测方法有基于马尔科夫链的预测模型、基于二次指数平滑法的预测模型等,其局限性是对历史数据有很强的依赖性。
5.启发式智能算法具有良好的全局优化搜索能力和学习能力,在智能计算领域受到广泛关注,包括遗传算法、粒子群算法等,用于云环境下资源调度,可以大幅度提高调度效率和调度质量,但相关内容还不够成熟,需要进一步深入研究。
6.粒子群算法(particle swarm optimization,pso)的基本思想源于生物学上对鸟类觅食行动的研究。假设有以下场景:在既定的范围内,鸟群任意觅食,寻找唯一的一份食物,每一只鸟不知晓食物的详细方位,但清楚食物与自己的距离有多远。主要策略是寻找鸟群中离食物距离最短的一只鸟,然后在该鸟的附近进行搜索。粒子群算法就是受这种生物行为启发,通常运用于求解优化问题。
7.粒子群算法将鸟群中的一只鸟比作优化问题的解,使其可以以限定的速度在限定的搜索空间中自由飞行,飞行速度需要受到自己和其他同伴的飞行经验影响,进行动态调整。当一只鸟发现较好的食物地点,会引导种群中的其他鸟类到该点聚集。
8.目前关于云计算环境下密码资源调度问题的研究较少,与本发明最相关的实现方案是王泽武等提出的基于熵权评价的虚拟密码机调度策略。该策略主要包括两个步骤,第一步是建立基于轮转优化的密码任务调度模型和密码卡i/o吞吐率分析模型,设计了迁移触发算法,确定调度的时机;第二步是建立基于熵权法的综合评价模型,根据云密码机资源利用率历史数据,确定云密码机资源权重,根据资源权重综合评价云密码机服务能力,比较迁移前后云密码机服务能力,采用差值排序法选择待迁移虚拟密码机和目标主机。
9.基于熵权评价的虚拟密码机调度策略是一种基于预测的调度算法,解决了密码资源调度过程中调度源和调度目标的选择问题,如果只有一个源虚拟密码机和一个目标主机,该方法可以得出具体的调度方案;如果存在多个源虚拟密码机、多个目标主机,该方案无法给出源虚拟密码机和目标主机的具体对应关系,只能得出哪些虚拟密码机需要调度,
没有给出具体的调度方案。现有方案无法适用于多源和多目标的密码资源调度问题。
10.原始的粒子群算法,搜寻目前离食物最近的鸟的周围区域,在每一轮迭代中,所有的粒子都向当前适应度值最高的点的周边搜索最优解。经过多轮迭代,满足结束条件后,当前适应度值最高的点的位置,为算法的最终解。粒子群算法通过迭代寻找到单个最优位置,这个位置是单个点。我们要解决的问题是当出现多个密码任务节点都需要密码资源时,多个密码资源节点的调度和布局问题,要找到的是多个点的位置,而不是单个点的位置。同时,原始粒子群算法可能出现某个位置附近粒子过于集中的问题,应用于云资源调度时,可能出现负载不均衡的情况。将粒子群算法应用于密码资源调度问题时,需要对原始的粒子群算法进行改进。


技术实现要素:

11.为了解决多源和多目标条件下的密码资源调度问题,本发明提出一种多源和多目标的密码资源调度方法,具有良好的全局优化搜索能力和学习能力,能够保证无论哪些密码任务节点出现密码资源需求,在总体保障能力满足要求的情况下,密码资源都能在尽可能短的时间内部署到密码任务节点,同时,不会出现多个密码资源节点过度聚集的情况。
12.为解决上述技术问题,本发明采用以下的技术方案:
13.本发明提供了一种多源和多目标的密码资源调度方法,包含以下步骤:
14.初始化密码资源节点和密码任务节点的相关参数,并将这些参数发送给节点状态存储模块中以二叉搜索树的结构进行存储;
15.确定每个密码资源节点是聚焦节点还是周边节点,对每个聚焦节点确定其收拢域;
16.在一轮迭代中,当所有密码资源节点完成聚焦节点、周边节点和收拢域的确定后,对于每个密码任务节点,计算单节点保障能力,对于每个聚焦节点,计算聚焦权值;
17.根据单节点保障能力和聚焦权值更新每个密码资源节点的速度,各密码资源节点通过计算出的速度更新自己的位置,经过反复迭代,最终得出各个密码资源节点的最优位置和最优整体布局。
18.进一步地,所述初始化密码资源节点和密码任务节点的相关参数,并将这些参数发送给节点状态存储模块中以二叉搜索树的结构进行存储,包含以下步骤:
19.初始化模块生成每个密码资源节点的标识cid、生成每个密码任务节点的标识did和密码任务节点所需保障能力e_need;
20.初始化模块在位置边界内随机生成每个密码资源节点的初始位置coordinate(cid);
21.初始化模块在最大速度v
max
的范围内随机生成每个密码资源节点的初始速度v;
22.初始化模块生成每个密码资源节点的节点状态rs(cid),rs(cid)={cid,coordinate(cid),v,foc,per,wei,e,e0,servdid,focuscid,gather_range,pbest},其中foc,per,wei,e,e0,gather_range均置为0,servdid、focuscid置为空,pbest置为其历史上的最优位置;cid表示密码资源节点标识,did表示密码任务节点标识,coordinate(cid)表示密码资源节点的位置,v表示速度,foc表示聚焦节点标志,per表示周边节点标志,wei表示聚焦权值,e表示基本保障能力,e0表示单节点保障能力,servdid表示服务对象标识,
gather_range表示收拢域的半径,focuscid表示密码资源节点所归属聚焦节点的cid,pbest表示历史最优位置;
23.初始化模块向节点状态存储模块发送消息m1={rs(cid)},rs(cid)表示密码资源节点状态;
24.节点状态存储模块接收到消息m1,用每个rs(cid)作为二叉搜索树的结点生成rst(cid)并进行存储,rst(cid)表示密码资源节点状态树;
25.初始化模块初始化每个密码资源节点对单个密码任务节点的距离l、传输时延t,任务匹配度x,资源量r,生成资源-任务节点关系元组rtc(did,cid),rtc(did,cid)={did,cid,l,t,x,r},并向节点状态存储模块发送消息m2={rtc(did,cid)};
26.节点状态存储模块接收m2,用每个rtc(did,cid)作为二叉搜索树的结点生成rtct(did,cid)并进行存储,rtct(did,cid)表示资源-任务节点关系树;
27.初始化模块初始化基本保障能力树et(did),对树中的每个结点{did,e,cid}的基本保障能力e置为0。
28.进一步地,确定聚焦节点包括:
29.聚焦节点确定模块向节点状态存储模块发送消息m3={did};
30.节点状态存储模块根据收到的did,在rtct(did,cid)树中查找与当前did相匹配的rtc(did,cid)结点,并向聚焦节点确定模块发送消息m4={did,rtc(did,cid)};
31.聚焦节点确定模块收到m4后,提取rtc(did,cid)中的t、x和r,根据基本保障能力计算公式计算出基本保障能力e;
32.聚焦节点确定模块向节点状态存储模块发送消息m5={did,e,cid};
33.节点状态存储模块接收消息m5,用其中的信息作为二叉搜索树的结点生成et(did)并进行存储,et(did)表示基本保障能力树;
34.聚焦节点确定模块在计算完各个结点的基本保障能力后,向节点状态存储模块发送最大基本保障能力查询消息m6={did};
35.节点状态存储模块接收到m6后,根据did,查找相应的et(did),找到基本保障能力最大的结点,得到其cid,并更新rst(cid)中的结点,将相应结点的servdid置为did,focuscid字段置为自身的cid。
36.进一步地,所述基本保障能力定义为某个密码资源节点对某个密码任务节点所能提供的保障能力,计算公式如下:
[0037][0038]
式中,t为传输时延,r为资源量,x为任务匹配度,η为调节因子。
[0039]
进一步地,确定周边节点和收拢域包含以下步骤:
[0040]
步骤1,周边节点确定模块向节点状态存储模块发出查询请求,查询所有聚焦节点的状态信息;
[0041]
步骤2,节点状态存储模块接收到查询请求后,遍历每一个rst(cid)的结点,若结点的foc字段为1,则停止遍历,向周边节点确定模块发送消息m7={cid,coordinate(cid),servdid},其中cid为当前结点的cid;若结点的foc字段为0,则不做任何操作,继续遍历;
[0042]
步骤3,周边节点确定模块在接收到m7后,计算周边节点与当前聚焦节点的距离l_
res,计算结果以{cid1,l_res,cid2}为结点存储在二叉搜索树pft(cid1),其中pft(cid1)表示周边-聚焦节点关系树,cid1为周边节点的cid,cid2为聚焦节点的cid,一个周边节点对应一棵树,当前周边节点计算完成后,继续向节点状态存储模块发送请求;
[0043]
步骤4,节点状态存储模块收到请求后,继续往下遍历,遍历完所有结点后,向周边节点确定模块发送遍历完成消息ack;
[0044]
步骤5,周边节点确定模块收到遍历完成消息ack后,遍历每一棵pft树,在每一棵树中找出l_res最小的结点,以确定该周边节点的归属;再向节点状态存储模块发送消息m8={cid1,cid2,l_res};
[0045]
步骤6,节点状态存储模块接收消息m8,将cid2存入当前周边节点所对应rst(cid)的focuscid字段,以cid2为索引查找rst(cid)中的结点,将l_res的值与gather_range进行比较,若l_res更大则将gather_range的值更新为l_res,获取servdid的值,记为servdid0;遍历完成后,gather_range即为该聚焦节点收拢域的半径;以cid1为索引查找rst(cid)中的结点,并将结点中per的值更新为1,将servdid的内容更新为servdid0。
[0046]
进一步地,所述计算单节点保障能力包含以下步骤:
[0047]
步骤a,单节点保障能力计算模块向节点状态存储模块发出单节点保障能力计算请求m9={did};
[0048]
步骤b,节点状态存储模块在接收到请求m9后,遍历rst(cid),根据收到的did查询rst(cid)中每个结点的servdid,若servdid的值和收到的did相同,则将该结点存储的cid提取出来存入列表lista中,lista中存储的是所需计算的密码任务节点对应的聚焦节点及周边节点的cid;记foc字段为1的结点存储的cid为cid1,将foc字段为0的结点存储的cid存入列表listb中,listb中存储的是lista中周边节点的cid;当遍历完rst(cid)的所有结点后,执行步骤c;
[0049]
步骤c,节点状态存储模块根据m9中的did查询相应的et(did),根据列表lista中的cid对比et(did)中第一个结点的cid,若相同,则提取结点中e的值并存入列表listc中,listc存储的是聚焦节点及周边节点的e值;若不相同,则继续查询下一个结点,当遍历完所有结点后,执行步骤d;
[0050]
步骤d,节点状态存储模块根据列表lista统计每个聚焦节点的周边节点数量count,形成消息m10={count},并将其发送给聚焦权值计算模块;节点状态存储模块将步骤c产生的listc形成消息m11发送给单节点保障能力计算模块;
[0051]
步骤e,单节点保障能力计算模块收到m11后,根据列表listc中e的值,依据单节点保障能力计算算法,计算出单节点保障能力e0;
[0052]
步骤f,根据单节点保障能力计算算法计算出单节点保障能力e0,并将计算结果和该密码任务节点的did形成消息m12={e0,did}发送给节点状态存储模块;节点状态存储模块在接收到m12后,查询rst(cid)中聚焦节点的servdid字段,若此字段和m12中的did相同,则将收到的单节点保障能力写入查询到结点的e0字段;
[0053]
重复步骤a至f,完成对所有密码任务节点保障能力的计算。
[0054]
进一步地,所述单节点保障能力e0计算算法的公式为:
[0055]
e0=∑e。
[0056]
进一步地,所述计算聚焦权值包括:
[0057]
聚焦权值计算模块向节点状态存储模块发出聚焦权值计算请求m13={cid};
[0058]
节点状态存储模块收到查询请求m13后,查询rst(cid),查询聚焦节点的数量n

,并将结果形成消息m14={n

},返回给聚焦权值计算模块;
[0059]
聚焦权值计算模块在收到消息m14后,根据m14和步骤d中收到的m10={count}计算出依据聚焦权值计算算法计算出聚焦权值w,聚焦权值计算模块向节点状态存储模块发送消息m15={w,cid},包含聚焦权值和其所属聚焦节点的cid;
[0060]
节点状态存储模块收到消息m15后,查询rst(cid),根据m15的cid,找到相应的结点,将聚焦权值w写入相应结点的wei字段;
[0061]
重复以上步骤,直至完成所有聚焦节点聚焦权值的计算。
[0062]
进一步地,所述聚焦权值w计算算法包括:
[0063]
记w
σ
为标准差,其计算公式为:
[0064][0065]
式中,n

为聚焦节点个数,为周边节点的总数除以聚焦节点的个数得到的平均值;ni=n
i1
+n
i3
,n
i1
为聚焦节点的周边节点个数,n
i2
为域间节点个数,n
i3
为域间节点个数修正值,修正值计算公式为:ta和tb分别是域间节点到此聚焦节点与到其所归属聚焦节点的传输时延;
[0066]
将标准差进行归一化处理,得到聚焦权值计算公式:
[0067][0068]
聚焦节点的聚焦权值越大说明周边节点越少,需要新周边节点加入;聚焦节点的聚焦权值越小则说明周边节点过剩,需要迁出周边节点。
[0069]
进一步地,更新速度和位置包含以下步骤:
[0070]
步骤a,速度和位置更新模块向节点状态存储模块发出速度和位置更新请求m16={cid};
[0071]
步骤b,节点状态存储模块收到请求m16后,查询rst(cid),根据m16中的cid,找到rst(cid)中相应的结点,从结点的coordinate(cid)字段获取当前位置,从v字段获取上一轮迭代的速度值,从pbest字段获取其历史最优位置,从结点的focuscid字段找到其对应聚焦节点的cid;
[0072]
步骤c,节点状态存储模块根据聚焦节点的cid查找rst(cid),获取相应结点的聚焦权值wei、聚焦节点的位置coordinate(cid),粒子速度计算公式中的w为wei字段的值、gbest
id
为coordinate(cid)字段的值;
[0073]
步骤d,节点状态存储模块将步骤b和步骤c查询到的信息与单节点保障能力计算模块计算出来的单节点保障能力e0一起形成消息m17,发送给速度和位置更新模块;
[0074]
步骤e,速度和位置更新模块接收m17,提取其中的数据,按照速度更新公式计算出此轮迭代的速度,如果速度值超过v
max
,则将其置为v
max
;按照位置更新公式计算出此轮迭代
的位置,并形成消息m18发送给越界检查和结束判断模块;
[0075]
步骤f,越界检查和结束判断模块收到m18后,根据结束条件对收到的数据进行判断,若越界则通知节点状态存储模块,节点状态存储模块收到消息后不再存储本轮迭代的结果数据;不越界则将消息交给节点状态存储模块进行存储;若满足结束条件则通知所有模块结束;
[0076]
所述速度更新公式为:
[0077][0078]
式中,i=1,2,......n,n是密码资源节点的总数,k表示迭代的次数,表示密码资源节点速度的第d维分量,w表示惯性权重,调节算法的收敛速度,c1,c2和c3表示加速度常数,调节学习最大步长,r1,r2,23是介于(0,1)之间的随机数,pbest
id
表示密码资源节点的历史最优位置,代表该密码资源节点历史上保障能力最高时的位置,是密码资源节点上一轮迭代后的位置,gbest
id
表示区域的最优位置,即聚焦节点的位置;w是该密码资源节点所归属聚焦节点的聚焦权值,e_need是该密码资源节点所服务密码任务节点需要的保障能力,e0是该密码资源节点所服务密码任务节点当前的单节点保障能力;
[0079]
所述位置更新公式为:
[0080][0081]
式中,t为每轮迭代的时间。
[0082]
与现有技术相比,本发明具有以下优点:
[0083]
1、本发明使用启发式智能调度算法,解决了多源和多目标条件下的密码资源调度问题,具有良好的全局优化搜索能力和学习能力;为聚焦节点赋予聚焦权值,通过聚焦权值对密码资源节点的位置更新速度进行调节,如果某个密码任务节点周围的密码资源节点过多,则减缓向该密码任务节点移动的速度,避免多个密码资源节点过于聚集到某个密码任务节点周围造成负载不均衡的情况。通过单节点保障能力影响密码资源节点的位置更新速度,使得密码资源短缺的密码任务节点能够尽快获得密码资源响应。
[0084]
2、本发明提出的多源和多目标的密码资源调度方法,当一个密码服务域内的多个密码任务节点发生密码资源需求时,对该域内密码资源节点的位置和资源进行合理调度,找到所有密码资源节点的最优位置和最优整体布局,使得该密码服务域内总体保障能力满足要求的情况下,各密码任务节点能够在尽可能短的时间内获得密码资源响应并实现负载均衡。
附图说明
[0085]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0086]
图1是本发明实施例的多源和多目标的密码资源调度方法的流程示意图。
具体实施方式
[0087]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0088]
为了更好地理解本发明,对涉及到的部分名词进行解释如下:
[0089]
1.密码算法:密码算法是实现信息“明”、“密”变换的一种特定的规则。不同的密码算法对应不同的变换规则。
[0090]
2.密钥:密钥是一组信息编码,它参与密码的“运算”,并对密码的“运算”起特定的控制作用。密钥是密码技术的重要组成部分。在密码系统中,密钥的生成、使用和管理至关重要。密钥通常需要严格保护,密钥的失控将导致密码系统失效。
[0091]
3.密码资源:密码资源指的是密码算法、密钥和密码运算能力。
[0092]
4.密码资源节点:存储有密码资源,能够提供密码资源的服务器。
[0093]
5.密码任务节点:为完成某项密码任务而需要密码资源的节点,密码任务包括数据加解密、签名验签、哈希值计算等。
[0094]
6.密码服务域:存在若干密码资源节点和密码任务节点,相对固定的一个密码服务区域。
[0095]
7.密码资源调度:当一个密码服务域内的多个密码任务节点均出现密码资源需求时,通过对该密码服务域内密码资源节点的调度,使得在密码资源总量满足要求的情况下,各密码任务节点能够在尽可能短的时间内获得密码资源响应,这个过程称为密码资源调度,其目的是提高密码服务效率。
[0096]
8.传输时延:信道时延和转发时延之和。信道时延是信号在信道上传输的时间,转发时延是信号在转发节点消耗的时间。
[0097]
9.基本保障能力:某个密码资源节点对某个密码任务节点所能提供的保障能力。
[0098]
10.聚焦节点:对某个密码任务节点而言,对其基本保障能力最强的密码资源节点称为该密码任务节点的聚焦节点。
[0099]
11.周边节点:如果某个密码资源节点不是聚焦节点,则称其为某个聚焦节点的周边节点,该周边节点归属于距离该周边节点最近的聚焦节点。
[0100]
12.收拢域:以聚焦节点为圆心,以该聚焦节点与距离其最远的周边节点的距离为半径作一个圆。这个圆被称为该聚焦节点的收拢域。
[0101]
13.域间节点:在某个聚焦节点的收拢域内,但并不归属于该聚焦节点的周边节点。
[0102]
14.单节点保障能力:对于某个密码任务节点,其对应的聚焦节点及其收拢域内的周边节点所能为其提供的基本保障能力之和。
[0103]
15.任务匹配度:对密码任务节点的某项任务而言,密码资源节点所提供的密码资源与该项任务的匹配程度。
[0104]
16.聚焦权值:为避免出现密码资源节点过于聚集在某一个密码任务节点周围造成负载不均衡的情况,为聚焦节点通过特定算法赋予其聚焦权值。聚焦权值反映的是聚焦节点需要其他密码资源节点向其聚集的权重。聚焦权值越大,其他密码资源节点向该聚焦
节点聚集的优先级越高,反之优先级越低。
[0105]
17.总体保障能力:所有单节点保障能力的赋权求和。
[0106]
下面再对符号进行说明:
[0107]
1.密码资源节点标识:用cid表示,用于唯一标识某个密码资源节点。
[0108]
2.密码任务节点标识:用did表示,用于唯一标识某个密码任务节点。
[0109]
3.密码资源节点的位置:用coordinate(cid)表示。
[0110]
4.聚焦节点标志:用foc表示,有0,1两个值,0表示该节点为非聚焦节点,1表示该节点为聚焦节点。
[0111]
5.周边节点标志:用per表示,有0,1两个值,0表示该节点为非周边节点,1表示该节点为周边节点。
[0112]
6.服务对象标识:用servdid表示,该标识符标识该密码资源节点所服务的密码任务节点,servdid存储的值为对应密码任务节点的标识did。
[0113]
7.聚焦权值:用wei表示,反映的是聚焦节点需要其他密码资源节点向其聚集的权重。
[0114]
8.速度:用v表示,表示节点运动的快慢,用于更新密码资源节点位置的中间变量。
[0115]
9.基本保障能力:用e表示。
[0116]
10.单节点保障能力:用e0表示。
[0117]
11.密码任务节点所需保障能力:用e_need表示,是某个密码任务节点为完成密码任务所需要的保障能力。
[0118]
12.基本保障能力树:用et(did)表示,et(did)的结点由{did,e,cid}组成,通过did唯一标识,一个密码任务节点对应一棵单一基本保障能力树,该树存储的是密码资源节点对该密码任务节点的基本保障能力,树中的每个结点对应一个密码资源节点,每个结点中存储的e为单个密码资源节点对密码任务节点的基本保障能力。
[0119]
13.密码资源节点状态:用rs(cid)表示,rs(cid)={cid,coordinate(cid),v,foc,per,wei,e,e0,servdid,focuscid,gather_range,pbest}。
[0120]
gather_range表示收拢域的半径,focuscid表示密码资源节点所归属聚焦节点的cid,pbest表示历史最优位置。
[0121]
14.密码资源节点状态树:用rst(cid)表示,一个密码资源节点对应树中的一个结点。
[0122]
15.l:密码资源节点与密码任务节点之间的距离。
[0123]
16.l_res:密码资源节点之间的距离。
[0124]
17.传输时延:t,密码资源节点到密码任务节点的传输时间。
[0125]
18.资源量:r,密码资源节点所拥有密码资源的多少。
[0126]
19.周边-聚焦节点关系树:pft(cid),一个周边节点对应一棵树,该树存储的是该周边节点与所有聚焦节点之间的距离,每个聚焦节点对应树中的一个结点。
[0127]
20.任务匹配度:x,对密码任务节点的某项任务而言,密码资源节点所提供的密码资源与该项任务的匹配程度。
[0128]
21.资源-任务节点关系元组:用rtc(did,cid)表示,rtc(did,cid)={did,cid,l,t,x,r},通过did唯一标识。
[0129]
22.资源-任务节点关系树:用rtct(did,cid)表示,通过did唯一标识,同一did的rtc(did,cid)组成一棵树。
[0130]
密码是保证网络与信息安全的基石,在信息化高度发展的今天,密码的应用已经渗透到社会生产生活的各个方面。在云计算环境中,为保障应用系统的安全,密码的应用越来越广泛。在一个云计算环境中存在若干个密码任务节点和密码资源节点,当密码任务节点需要完成某项密码任务时,向密码资源节点请求所需的密码资源。其中密码任务节点是完成数据加解密、签名验签、哈希值计算等密码任务的节点。密码资源节点是云计算环境中存放密码资源的虚拟机,负责保存密码资源以及相关的配置参数。众多密码资源节点构成密码资源节点集群,在收到密码任务节点对密码资源的请求时,向密码任务节点提供密码资源。
[0131]
如图1所示,本实施例提供一种多源和多目标的密码资源调度方法,包含以下步骤:
[0132]
步骤s11,初始化密码资源节点和密码任务节点的相关参数,并将这些参数发送给节点状态存储模块中以二叉搜索树的结构进行存储。
[0133]
步骤s12,确定每个密码资源节点是聚焦节点还是周边节点,对每个聚焦节点确定其收拢域。
[0134]
密码资源节点以聚焦节点或者周边节点的身份参加算法的迭代,聚焦节点和周边节点的运动行为是不同的,周边节点作为某个聚焦节点的附属,向对应的聚焦节点运动。聚焦节点和周边节点是算法的主要参与者,在算法的每一轮迭代中,周边节点围绕聚焦节点以某种规则运动,进而调整自己的位置,当满足结束条件完成迭代后,得到密码资源节点的最优位置和总体布局。
[0135]
步骤s13,在一轮迭代中,当所有密码资源节点完成聚焦节点、周边节点和收拢域的确定后,对于每个密码任务节点,计算单节点保障能力,对于每个聚焦节点,计算聚焦权值。
[0136]
聚焦权值和单节点保障能力是计算速度和位置时所需要的重要参数;聚焦权值直接反映了聚焦节点周围密码资源节点的聚集程度,将聚焦权值引入速度更新公式,对密码资源节点位置的调整产生影响。在算法的迭代中,某个聚焦节点的聚焦权值越小,它的周边节点向其靠近的速度越慢,或者不向距离自己最近的聚焦节点运动,而向其他聚焦节点靠近。
[0137]
步骤s14,根据单节点保障能力和聚焦权值更新每个密码资源节点的速度,各密码资源节点通过计算出的速度更新自己的位置,经过反复迭代,最终得出各个密码资源节点的最优位置和最优整体布局。速度是用于位置更新的中间变量,并不作为最后的输出结果,经过多轮迭代后的位置是最终结果。
[0138]
具体的,所述步骤11的节点状态初始化包含以下步骤:
[0139]
步骤s110,初始化模块接收人工输入的密码任务节点的数量m、密码资源节点的数量n,密码资源节点的资源量r、位置边界、最大速度v
max
和密码任务节点所需保障能力e_need。
[0140]
步骤s111,初始化模块生成每个密码资源节点的标识cid,生成每个密码任务节点的标识did和密码任务节点所需保障能力e_need。
[0141]
步骤s112,初始化模块在位置边界内随机生成每个密码资源节点的初始位置coordinate(cid)。
[0142]
步骤s113,初始化模块在最大速度v
max
的范围内随机生成每个密码资源节点的初始速度v。
[0143]
步骤s114,初始化模块生成每个密码资源节点的节点状态rs(cid),rs(cid)={cid,coordinate(cid),v,foc,per,wei,e,e0,servdid,focuscid,gathe r_range,pbest},其中foc,per,wei,e,e0,gather_range均置为0,servdid、focuscid置为空,pbest置为其历史最优位置。
[0144]
步骤s115,初始化模块向节点状态存储模块发送消息m1={rs(cid)}。
[0145]
步骤s116,节点状态存储模块接收到消息m1,先对rs(cid)进行合法性检测,检测cid是否合法、位置和速度是否越界等,若合法性检查不通过,反馈给初始化模块,由初始化模块重新生成,若合法性检查通过,节点状态存储模块用每个rs(cid)作为二叉搜索树的结点生成rst(cid)并进行存储。二叉搜索树把插入、查找、删除的时间复杂度都维持在o(logn),提高其他模块查询数据的效率。
[0146]
步骤s117,初始化模块初始化每个密码资源节点对单个密码任务节点的距离l、传输时延t,任务匹配度x,资源量r,生成资源-任务节点关系元组rtc(did,cid),rtc(did,cid)={did,cid,l,t,x,r},并向节点状态存储模块发送消息m2={rtc(did,cid)}。
[0147]
步骤s118,节点状态存储模块接收m2,用每个rtc(did,cid)作为二叉搜索树的结点生成rtct(did,cid)并进行存储。
[0148]
步骤s119,初始化模块初始化基本保障能力树et(did),对树中的每个结点{did,e,cid},基本保障能力e置为0,did赋值为密码任务节点标识,cid赋值为密码资源节点标识。
[0149]
在初始化和每一轮迭代后,每一个密码任务节点都对应有一个对其保障能力最强的聚焦节点。密码资源节点对密码任务节点的保障能力越强,在密码任务节点出现密码资源需求时,能够以越快的速度为密码任务节点提供密码资源,从而保证密码任务能够安全高效地执行,为用户提供优质的密码服务。聚焦节点的位置是当前情况下局部区域中的最优位置,但是由于我们不知道哪个密码任务节点会出现突发性的需求,所以在进行算法迭代时并没有规定密码任务节点的位置,只规定了密码任务节点与所有密码资源节点的距离。在这种情况下聚焦节点的位置只是暂时性的最优位置,不是最终的最优位置,在聚焦节点的周围存在距离密码任务节点更近的位置,其他节点向聚焦节点靠拢便有可能搜寻到这个位置。确定多个聚焦节点可以使尽可能多的密码任务节点在突发性需求时,能够尽快的获得密码资源的保障。
[0150]
聚焦节点的确定需要计算各个密码资源节点对所有密码任务节点的基本保障能力,此工作由聚焦节点确定模块完成,然后建立对单个密码任务节点的基本保障能力树,以二叉搜索树的结构进行存储。
[0151]
具体的,所述步骤s12中确定聚焦节点包含以下步骤:
[0152]
步骤s1211,聚焦节点确定模块向节点状态存储模块发送消息m3={did}。
[0153]
步骤s1212,节点状态存储模块根据收到的did,在rtct(did,cid)树中查找与当前did相匹配的rtc(did,cid)结点,并向聚焦节点确定模块发送消息m4={did,rtc(did,
cid)}。
[0154]
步骤s1213,聚焦节点确定模块收到m4后,提取rtc(did,cid)中的t、x和r,根据基本保障能力计算公式计算出基本保障能力e。
[0155]
步骤s1214,聚焦节点确定模块向节点状态存储模块发送消息m5={did,e,cid}。
[0156]
步骤s1215,节点状态存储模块接收消息m5,用其中的信息作为二叉搜索树的结点生成et(did)并进行存储。
[0157]
步骤s1216,聚焦节点确定模块在计算完各个结点的基本保障能力后,向节点状态存储模块发送最大基本保障能力查询消息m6={did}。
[0158]
步骤s1217,节点状态存储模块接收到m6后,根据did,查找相应的et(did),找到基本保障能力最大的结点,得到其cid,并更新rst(cid)中的结点,将相应结点的servdid置为did,focuscid字段置为自身的cid。
[0159]
基本保障能力定义为:某个密码资源节点对某个密码任务节点所能提供的保障能力,计算公式如下:
[0160][0161]
式中,t为传输时延,r为资源量,x为任务匹配度,η为调节因子。
[0162]
除聚焦节点外,所有的密码资源节点都是周边节点,查询周边节点到所有聚焦节点的距离,周边节点归属于距离该周边节点最近的聚焦节点。以聚焦节点为圆心,以该聚焦节点与距离其最远的周边节点的距离为半径作一个圆,确定该聚焦节点的收拢域。
[0163]
聚焦节点是一个局部最优节点,所以在聚焦节点周边空间寻找最优解的效率最高,周边节点向所在收拢域的聚焦节点靠拢,寻找最优解。在本方案中,每一轮迭代,聚焦节点的位置不改变,周边节点的位置需要改变,周边节点向距离自己最近的聚焦节点运动,这样可以使每一轮迭代中周边节点位置的改变不至于过大,以便于较快的寻找到最优解。
[0164]
具体的,所述步骤s12中确定周边节点和收拢域包含以下步骤:
[0165]
步骤s1221,周边节点确定模块向节点状态存储模块发出查询请求,查询所有聚焦节点的状态信息。
[0166]
步骤s1222,节点状态存储模块接收到查询请求后,遍历每一个rst(cid)的结点,若结点的foc字段为1,则停止遍历,向周边节点确定模块发送消息m7={cid,coordinate(cid),servdid},其中cid为当前结点的cid;若结点的foc字段为0,则不做任何操作,继续往下遍历。
[0167]
步骤s1223,周边节点确定模块在接收到m7后,计算周边节点与当前聚焦节点的距离l_res,计算结果以{cid1,l_res,cid2}为结点存储在二叉搜索树pft(cid1),其中pft(cid1)表示周边-聚焦节点关系树,cid1为周边节点的cid,cid2为聚焦节点的cid,一个周边节点对应一棵树,当前周边节点计算完成后,继续向节点状态存储模块发送请求。
[0168]
步骤s1224,节点状态存储模块收到请求后,按照步骤s1222继续往下遍历,遍历完所有结点后,向周边节点确定模块发送遍历完成消息ack。
[0169]
步骤s1225,周边节点确定模块收到遍历完成消息ack后,遍历每一棵pft树,在每一棵树中找出l_res最小的结点,以确定该周边节点的归属;再向节点状态存储模块发送消息m8={cid1,cid2,l_res};
[0170]
步骤s1226,节点状态存储模块接收消息m8,将cid2存入当前周边节点所对应rst(cid)的focuscid字段,以cid2为索引查找rst(cid)中的结点,将l_res的值与gather_range进行比较,若l_res更大则将gather_range的值更新为l_res,获取servdid的值,记为servdid0;遍历完成后,gather_range即为该聚焦节点收拢域的半径;以cid1为索引查找rst(cid)中的结点,并将结点中per的值更新为1,将servdid的内容更新为servdid0。
[0171]
在一轮迭代中,所有的密码资源节点完成聚焦节点、周边节点和收拢域的确定后,在当前情况下,每个密码资源节点的保障对象便暂时确定,单节点保障能力是对于某个密码任务节点,其对应的聚焦节点及其收拢域内的周边节点所能为其提供的基本保障能力之和。对某个密码任务的单节点保障能力越强,意味着当密码任务节点有密码资源需求时,其能够迅速得到保障的可能性越高。同时,密码资源节点总的保障能力是有限的,如果某些密码任务节点受到过度的资源保障,意味着其他的密码任务节点可能无法得到密码资源保障,所以将单节点保障能力引入速度更新公式。在迭代中,某个密码任务节点的单节点保障能力越高,密码资源节点向其对应的聚焦节点的运动速度越慢,甚至不向距离自己最近的聚焦节点运动,转而向其他聚焦节点靠近。
[0172]
具体的,所述步骤s13中计算单节点保障能力包含以下步骤:
[0173]
步骤s1311,单节点保障能力计算模块向节点状态存储模块发出单节点保障能力计算请求m9={did}。
[0174]
步骤s1312,节点状态存储模块在接收到请求m9后,遍历rst(cid),根据收到的did查询rst(cid)中每个结点的servdid,若servdid的值和收到的did相同,则将该结点存储的cid提取出来存入列表lista中,lista中存储的是所需计算的密码任务节点对应的聚焦节点及周边节点的cid;记foc字段为1的结点存储的cid为cid1(即聚焦节点的cid),将foc字段为0的结点存储的cid存入列表listb中,listb中存储的是lista中周边节点的cid;当遍历完rst(cid)的所有结点后,执行步骤s1313。
[0175]
步骤s1313,节点状态存储模块根据m9中的did查询相应的et(did),根据列表lista中的cid对比et(did)中第一个结点的cid,若相同,则提取结点中e的值并存入列表listc中,listc存储的是聚焦节点及周边节点的e值;若不相同,则继续查询下一个结点,当遍历完所有结点后,执行步骤s1314。
[0176]
步骤s1314,节点状态存储模块根据列表lista统计每个聚焦节点的周边节点数量count,形成消息m10={count},并将其发送给聚焦权值计算模块;节点状态存储模块将步骤s1313所产生的listc形成消息m11发送给单节点保障能力计算模块。
[0177]
步骤s1315,单节点保障能力计算模块收到m11后,根据列表listc中e的值,依据单节点保障能力计算算法,计算出单节点保障能力e0。
[0178]
步骤s1316,根据单节点保障能力计算算法计算出单节点保障能力e0,并将计算结果和该密码任务节点的did形成消息m12={e0,did}发送给节点状态存储模块;节点状态存储模块在接收到m12后,查询rst(cid)中聚焦节点(即节点的foc字段为1)的servdid字段,若此字段和m12中的did相同,则将收到的单节点保障能力写入查询到结点的e0字段。
[0179]
步骤s1317,重复步骤s1311至s1316,完成对所有密码任务节点保障能力的计算。
[0180]
所述单节点保障能力e0计算算法的公式为:
[0181]
e0=∑e。
[0182]
聚焦节点和它所属的周边节点形成收拢域,收拢域内的节点主要保障聚焦节点所对应的密码任务节点。所以当一个聚焦节点周围聚集了过多的周边节点时,某些密码任务节点得到保障的能力会超过它的需求,而某些密码任务节点可能无法得到资源保障。所以在本方案中引入了聚焦权值这个概念,聚焦权值反映的是聚焦节点需要其他密码资源节点向其聚集的权重。将聚焦权值引入速度更新公式,对密码资源节点位置的调整产生影响。在算法的迭代中,某个聚焦节点的聚焦权值越小,它的周边节点向其靠近的速度越慢,或者不向距离自己最近的聚焦节点运动,而向其他聚焦节点靠近。
[0183]
具体的,所述步骤s13中计算聚焦权值包含以下步骤:
[0184]
步骤s1321,聚焦权值计算模块向节点状态存储模块发出聚焦权值计算请求m13={cid}。
[0185]
步骤s1322,节点状态存储模块收到查询请求m13后,查询rst(cid),查询聚焦节点的数量n

,并将结果形成消息m14={n

},返回给聚焦权值计算模块。
[0186]
步骤s1323,聚焦权值计算模块在收到消息m14后,根据m14和步骤s1314中收到的m10={count}计算出依据聚焦权值计算算法计算出聚焦权值w,聚焦权值计算模块向节点状态存储模块发送消息m15={w,cid},包含聚焦权值和其所属聚焦节点的cid。
[0187]
步骤s1324,节点状态存储模块收到消息m15后,查询rst(cid),根据m15的cid,找到相应的结点,将聚焦权值w写入相应结点的wei字段。
[0188]
步骤s1325,重复步骤s1321至s1324,直至完成所有聚焦节点聚焦权值的计算。
[0189]
所述聚焦权值w计算算法包括:
[0190]
记wσ为标准差,其计算公式为:
[0191][0192]
式中,n

为聚焦节点个数,为周边节点的总数除以聚焦节点的个数得到的平均值;ni=n
i1
+n
i3
,n
i1
为聚焦节点的周边节点个数,n
i2
为域间节点个数,n
i3
为域间节点个数修正值,修正值计算公式为:ta和tb分别是域间节点到此聚焦节点与到其所归属聚焦节点的传输时延。
[0193]
将标准差进行归一化处理,得到聚焦权值计算公式:
[0194][0195]
聚焦节点的聚焦权值越大说明周边节点越少,需要新周边节点加入;聚焦节点的聚焦权值越小则说明周边节点过剩,需要迁出周边节点。
[0196]
具体的,步骤s14的更新速度和位置包含以下步骤:
[0197]
步骤s141,速度和位置更新模块向节点状态存储模块发出速度和位置更新请求m16={cid}。
[0198]
步骤s142,节点状态存储模块收到请求m16后,查询rst(cid),根据m16中的cid,找
到rst(cid)中相应的结点,从结点的coordinate(cid)字段获取当前位置,从v字段获取上一轮迭代的速度值,从pbest字段获取其历史最优位置,从结点的focuscid字段找到其对应聚焦节点的cid。
[0199]
步骤s143,节点状态存储模块根据聚焦节点的cid查找rst(cid),获取相应结点的聚焦权值wei、聚焦节点的位置coordinate(cid),粒子速度计算公式中的w为wei字段的值、gbest
id
为coordinate(cid)字段的值。
[0200]
步骤s144,节点状态存储模块将步骤s142和步骤s143查询到的信息与步骤s1315计算出来的单节点保障能力e0一起形成消息m17,发送给速度和位置更新模块。
[0201]
步骤s145,速度和位置更新模块接收m17,提取其中的数据,按照速度更新公式计算出此轮迭代的速度,如果速度值超过v
max
,则将其置为v
max
;按照位置更新公式计算出此轮迭代的位置,并形成消息m18发送给越界检查和结束判断模块。
[0202]
步骤s146,越界检查和结束判断模块收到m18后,根据结束条件对收到的数据进行判断,若越界则通知节点状态存储模块,节点状态存储模块收到消息后不再存储本轮迭代的结果数据;不越界则将消息交给节点状态存储模块进行存储;若满足结束条件则通知所有模块结束。
[0203]
(1)速度更新算法
[0204]
本算法将密码资源节点抽象成为无质量的粒子进行研究,粒子仅具有两个属性:速度和位置。下文中所说的粒子指的就是密码资源节点,粒子的速度是一个用于迭代的中间变量,粒子的位置代表密码资源节点的实际位置。粒子速度的计算公式为:
[0205][0206]
该计算公式在第三部分中引入了聚焦权值,使得粒子的聚集程度对粒子的速度产生影响,避免某个密码任务节点周围过度聚集密码资源节点的情况,实现负载均衡;与传统的粒子群算法相比,还增加了第四部分c3r3×
(e_need-e0),考虑了单节点保障能力对粒子速度的影响。粒子对应密码任务节点所需保障能力的缺口越大,则粒子的运动速度越快。
[0207]
式中,i=1,2,......n,n是密码资源节点的总数,k表示迭代的次数,表示密码资源节点速度的第d维分量,w表示惯性权重,调节算法的收敛速度,c1,c2和c3表示加速度常数,调节学习最大步长,r1,r2,23是介于(0,1)之间的随机数,pbest
id
表示密码资源节点的历史最优位置,代表该密码资源节点历史上保障能力最高时的位置,是密码资源节点上一轮迭代后的位置,gbest
id
表示区域的最优位置,即聚焦节点的位置;w是该密码资源节点所归属聚焦节点的聚焦权值,e_need是该密码资源节点所服务密码任务节点需要的保障能力,e0是该密码资源节点所服务密码任务节点当前的单节点保障能力。
[0208]
(2)位置更新公式
[0209][0210]
式中,t为每轮迭代的时间,为单位时间。
[0211]
(3)结束条件
[0212]
a.达到所设最大迭代次数。
[0213]
b.两次迭代的差值小于设定的阈值。
[0214]
c.判断当前最优解是否越界,越界则取上一次未越界的结果。
[0215]
d.总体保障能力达到预期目标。
[0216]
(4)总体保障能力
[0217]
对全部密码任务节点承担的任务进行预先评估,赋予任务权值,并进行归一化处理,任务权值越高则资源保障优先级越高,需要优先保障。记密码任务节点数量为m,每个节点的任务权值为qi,e0为单节点保障能力。
[0218]
总体保障能力计算公式为:
[0219][0220]
本发明要解决的技术问题是多源和多目标的密码资源调度问题。当一个密码服务域内的多个密码任务节点发生密码资源需求时,通过本发明给出的调度方法对该域内密码资源节点进行调度,找到所有密码资源节点的最优位置和整体布局,使得该服务域内总体保障能力满足要求的情况下,各密码任务节点能够在尽可能短的时间内获得密码资源响应。同时,避免密码资源节点过于聚集在某一个密码任务节点周围造成负载不均衡的情况。
[0221]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0222]
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1