1.一种基于QoS的微服务动态编排方法,其特征在于,具体包括以下步骤:S1、基于工作流对QoS的全局约束进行分解得到局部约束,选择符合局部约束的服务实例构成候选服务集合;
S2、使用效益函数获取工作流中节点的最优候选服务集合,实时监控并获取工作流节点的QoS属性,动态调整工作流节点的QoS约束;动态调整工作流节点的QoS约束具体包括:获取待执行节点的候选服务集实例各个QoS属性的最大值和最小值,并对服务实例的QoS属性进行归一化处理;
对QoS属性权重初始化,并根据归一化QoS属性值和权重构建服务选择综合效益函数,选取效益最优的服务实例执行;
判断实时监控节点服务实例执行是否满足QoS局部约束,对于不满足约束条件的服务,获取后继工作流的期望约束和实际剩余约束差值并重新分配后继工作流局部约束;
后继节点根据重新分配的局部约束,重新筛选节点的可用候选服务,并依据节点在局部约束下是否有可用服务,判断后继工作流是否能够进行编排;
S3、计算后继工作流QoS属性的约束紧迫度,调整后继工作流的效益函数的权重,后继节点重复S2~S3直到工作流结束;调整后继工作流的效益函数的权重的过程包括:根据后继工作流的实际剩余约束和期望约束在全局约束下的占比差值,计算当前执行状态下,正向、负向QoS属性的约束紧迫度;
根据计算的约束紧迫度计算优先级,约束紧迫度越高,则后继节点选择服务实例时,效益函数相应分配的权重越大,在下一步节点服务实例选择前,调整效益函数中各项QoS属性的权重,即:计算调整权重之后的效益函数,并选择待执行节点当前效益最优的服务实例执行;
其中,Urgencyr表示属性r的约束紧迫度,表示为:
其中,属性r包括响应时间rt、成本cost、可靠性rel以及可用性avl;Cr为QoS属性r的全局约束;diff r(succ(ti))为节点ti后继工作流在QoS属性r上的实际执行结果和期望约束间的差值;succ(ti)为节点ti的后继工作流;n为succ(ti)的节点数量;Cr‑actual(ti)表示后继工作流succ(ti)实际剩余约束;节点的QoS属性包括响应时间、成本、可靠性以及可用性。
2.根据权利要求1所述的一种基于QoS的微服务动态编排方法,其特征在于,获取任务节点候选服务集的过程包括:遍历工作流节点,计算节点候选服务集的各项QoS属性的值,根据工作流结构,计算不同节点在工作流中全局可分配约束的权重占比,即其全局约束;
根据工作流结构,将全局约束按照节点权重分解为局部约束,其中响应时间、成本的约束为上限约束,低于约束阈值即为符合条件,可用性和可靠性约束为下限约束,高于约束阈值即为符合条件,选择符合约束条件的服务实例构成候选服务集合,局部约束表示为:Cr(ti)=Cr*Wr‑i r∈{rel,avl,cost,rt};
其中,Wr‑i为节点ti在工作流中全局可分配约束的权重占比,即节点ti的全局约束;Cr(ti)为节点ti的局部约束;Cr为QoS属性r的全局约束。
3.根据权利要求2所述的一种基于QoS的微服务动态编排方法,其特征在于,根据工作流结构计算不同节点在工作流中全局可分配约束的节点权重Wr‑i的过程具体包括:计算节点ti的候选服务集的响应时间rt、成本cost、可靠性avl、可用性rel四项QoS属性均值;
根据工作流的结构计算工作流节点QoS均值的合计值;
根据各节点的QoS属性均值和工作流节点QoS均值的合计值计算节点ti在全局工作流中的可分配约束的权重占比。
4.根据权利要求3所述的一种基于QoS的微服务动态编排方法,其特征在于,节点ti在全局工作流中的可分配约束的权重占比表示为:其中,Wr‑i表示节点ti在全局工作流中的可分配约束的权重占比;Qr‑mean(ti)为QoS属性r的均值;n为节点的数量;Qr(sim)表示第i个节点的第m个实例的QoS属性r的值;k为节点ti候选服务集的实例数量。
5.根据权利要求3所述的一种基于QoS的微服务动态编排方法,其特征在于,根据工作流的结构计算工作流节点QoS均值的合计值包括:在顺序结构中,成本和响应时间通过节点QoS顺序相加获取,可用性和可靠性通过顺序相乘获取;
在并行结构中,响应时间取所有并行分支中的最大值,成本、可靠性、可用性取该分支之和;
在条件结构中,每个节点响应时间、成本、可靠性、可用性值乘以条件概率,条件概率为执行该条件分支的概率占比;
在循环结构中,按循环次数将循环结构展开为顺序结构,并按照顺序结构的计算方式计算展开后的顺序结构之和。
6.根据权利要求1所述的一种基于QoS的微服务动态编排方法,其特征在于,重新分配后继工作流局部约束的过程具体包括:根据效益函数,选择待执行节点的效益最优服务执行,并监控服务执行的QoS属性,若在节点局部约束内完成,就执行下一节点,否则获取后继工作流实际剩余约束;
计算实际剩余约束和原已分配的期望约束的差值diff,diff表示当前实际执行情况下剩余的约束空间与原本规划的后继约束的偏离值,并将diff值按节点权重Wr‑i,划分成每个节点的局部约束调整值,用于调整每个后继节点的局部约束,用后继节点的原约束值加上局部约束调整值来表示新的局部约束。
7.根据权利要求6所述的一种基于QoS的微服务动态编排方法,其特征在于,将diff值按节点权重Wr‑i,划分为每个节点的局部约束调整值,用于调整后继工作流节点的局部约束,用后继节点的原约束值加上局部约束调整值来表示新的局部约束,新的局部约束表示为:Cr(tj)=Cr(tj)+diffr(succ(ti))*Wr‑j tj∈succ(ti);
其中,Cr(tj)为节点tj的局部约束;succ(ti)为节点ti的后继工作流;diff r(succ(ti))为节点ti后继工作流在QoS属性r上的实际执行结果和期望约束间的差值,Cr‑actual(ti)表示后继工作流succ(ti)实际剩余约束。