1.本发明涉及云计算资源调度技术领域,尤其是指一种隐私感知的混合云服务流程调度方法。
背景技术:2.随着业务需求的多样性和复杂性,服务流程对计算资源的要求越来越高。在云环境中执行服务流程具有资源灵活、运行成本低等好处,是目前的流行趋势。在现实商业世界中,敏感数据广泛存在。例如,大量高私密性的敏感数据往往要求不能传输,或部分私密级别要求较低的敏感数据也强调只能在某些特定资源间传输。由于服务流程中的任务可能涉及敏感数据,如何在云环境中运行隐私感知服务流程受到了广泛关注。
3.长期以来,安全和隐私问题一直是云计算的热点。许多研究关注如何直接处理加密数据的技术,从而在公有云环境中运行隐私感知服务流程。为了保证公有云中敏感数据的安全,在传输和存储过程中必须对其进行加密,因此有针对如何直接处理加密数据从而在公有云环境中运行隐私感知服务流程的研究。然而,由于现有加密技术对加密数据的操作功能有限,可扩展性较差。此外,也有采用将敏感数据的传输过程加密的方法,针对的是如何选择合适的安全服务来优化公有云环境下的资源调度性能和安全要求;但是,由于敏感数据在公有云资源上运行时需解密,仍存在暴露数据的风险;并且,由于存在大量加密、解密操作,计算效率低下,云服务流程的总成本高。
4.为了避免在公有云中暴露敏感数据,在混合云中运行隐私服务流程得到了越来越多的关注。在该模型中,敏感数据存储在私有云中,从而可以保护数据隐私。涉及敏感数据的相关任务被限制在私有云中运行,而不需要敏感数据的任务可以灵活选择公有云或私有云资源,从而应对资源的峰值需求。相较于传统的云服务流程调度,隐私感知的混合云服务流程调度问题不仅要考虑任务间的数据依赖关系,还要考虑它们的隐私安全约束要求。除此之外,不仅需定义企业的私有云环境,还需定义公有云环境。特别是企业的私有云资源是“有限”的,而公有云能提供“无限”资源。由于私有云中资源有限,若调度安排不当,一旦资源被非隐私任务占用,则隐私任务就无法分配给私有云,导致服务流程无法正确运行。因此,隐私感知的混合云服务流程调度问题比传统的云资源调度问题更复杂。
5.虽然混合云服务流程调度问题得到了广泛研究,但当前研究少有考虑隐私任务的需求,难以满足隐私感知的混合云服务流程调度需求。有研究求解了标记敏感数据的服务流程调度问题。该类研究通过标记敏感数据,并在私有云能力富余情况下,把非隐私任务安排到私有云,从而降低运行成本。然而,上述模型只能回答任务是在私有云还是公有云环境运行,但并未细化考虑云环境中的各种虚拟机资源类型。考虑到混合云中的各种虚拟机类型,有研究构建了隐私感知的混合云服务流程调度问题,并使用改进的遗传算法和快速非支配排序来解决该问题;但是,该研究把任务标记为隐私任务和非隐私任务,只考虑了隐私任务必须在私有云运行这类单级隐私安全约束,缺乏针对敏感数据的特点设置的复杂隐私安全约束。还有研究构建了具有多级隐私安全约束的混合云服务流程调度问题,根据敏感
数据的私密级别要求,将任务标记为私有任务、社区任务和公有任务,并定义了隐私任务根据类别不同可在私有云或社区云中运行这类二级隐私安全约束,该研究提出了三种启发式方法来最小化服务流程运行成本;但是,此研究提出的方法在求解时高度依赖于隐私任务的分类,其可扩展性较差。此外,上述模型的云环境仅考虑了单私有云及单公有云的混合云情况,没有考虑企业联盟情况下的复杂混合云环境。
技术实现要素:6.为此,本发明所要解决的技术问题在于克服现有技术中的不足,提供一种隐私感知的混合云服务流程调度方法,可以通用于混合云服务流程调度下的更细粒度的隐私感知需求、在保证满足隐私安全约束的基础上提高解的质量、降低云服务流程的总成本。
7.为解决上述技术问题,本发明提供了一种隐私感知的混合云服务流程调度方法,包括以下步骤:
8.s1:建立隐私感知的混合云服务流程调度的形式化模型,所述隐私感知的混合云服务流程调度的形式化模型包括模型目标、隐私安全的位置约束和隐私任务的时间约束;
9.s2:在所述隐私感知的混合云服务流程调度的形式化模型下,建立调度解的编码规则、元启发式算子生成新调度解的策略、隐私感知的任务优先级映射规则和针对不可行调度解的修复策略;
10.s3:使用所述调度解的编码规则、元启发式算子生成新调度解的策略、隐私感知的任务优先级映射规则和针对不可行调度解的修复策略得到隐私感知的混合云服务流程调度的最佳方案。
11.作为优选的,所述隐私感知的混合云服务流程调度的形式化模型,具体为:
12.建立由多个成员组成的私有云集合pc={pc1,
…
,pci,
…
,pcn},其中每个pci代表一个私有云成员;建立由多个提供商组成的公有云集合ec={ec1,
…
,eci,
…
,ecm},其中每个eci代表一个公有云服务提供商;设置私有云中的虚拟机数量有限,且所有虚拟机都已经部署;公有云中的虚拟机数量无限;
13.每个公有云服务提供商都提供了不同机器配置和定价模型的虚拟机类型,虚拟机类型表示为vmti={vmt
i1
,
…
,vmt
i j,
…
,vmt
ik
},其中vmt
i j
表示第i个云提供的第j个虚拟机类型;
14.建立模型目标:
15.min toalcost=pcost+tcost
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1);
16.其中toalcost是云服务流程的总成本,pcost是处理成本,tcost是传输成本;处理成本的计算公式为:
[0017][0018]
其中,t
ij
是服务流程i中第j个任务,wp是服务流程集合,wp={wp1,
…
,wpi,
…
,wpm},服务流程集合中的每个服务流程表示为wpi=《tsi,ai》,tsi是该服务流程中的任务集合,ai是连接任务的有向弧集合;vmtk是第k个云服务提供商提供的vm类型集合,vm
kv
是第k个云服务提供商提供的第v种vm类型的资源集合;x
ijkvq
表示任务t
ij
是否由第k个云提供的第v类虚拟机的实例q执行,x
ijkvq
为0-1变量,x
ijkvq
=1表示任务t
ij
由第k个云服务提供商的
第v种vm类型的第q个实例完成;cr
kv
是第k个云服务提供商的第v种vm类型的单位订阅成本,et
ij
是任务t
ij
的结束时间,st
ij
是任务t
ij
的开始时间,b
kv
是第k个云服务提供商的第v个vm类型资源的订阅周期;npt是非隐私任务集合,|npt|是非隐私任务的数量;
[0019]
传输成本的计算公式为:
[0020][0021]
其中,d表示任意一组被任务t
ij
调用的数据,其中sd
ij
是指存储于设备中且被任务t
ij
调用的数据集合,id
ij
是由任务t
iu
产生且被后续任务t
ij
调用的中间数据集合,fd是数据量,cc
pk
是从数据d的存储位置p到任务t
ij
的执行位置k之间每gb数据的传输成本,pred(t
ij
)是任务t
ij
的紧前任务集合,t
iu
是任务t
ij
的紧前任务,为0-1变量,若表明任务t
iu
由第k’个云服务提供商的第v’种vm类型的第q’个实例完成;是指任务t
iu
所匹配的云服务提供商k’和任务t
ij
所匹配的云服务提供商k之间每gb数据的传输成本;
[0022]
定义隐私安全的位置约束为:给定一组敏感数据pds,一组服务流程wp,以及私有云中的一组虚拟机pvs;对于每个敏感数据pd∈pds,隐私安全的位置约束被定义为pcn=《pd,pts
pd
,pvs
pd
》,其用于限制涉及敏感数据pd的隐私任务集pts
pd
必须存储在私有云中的虚拟机集pvs
pd
;其中,pts
pd
={t
ij
|t
ij
∈wp,pd∈δin(t
ij
)∪δout(t
ij
)}表示一组隐私任务集,每个隐私任务t
ij
的输入数据δin(t
ij
)或输出数据δout(t
ij
)包含pd,pvs
pd
是私有云中可以访问pd的一组虚拟机集;隐私安全的位置约束形式化表示为:
[0023][0024]
其中,表示任务t
ij
不由第k个云提供的第v类虚拟机的实例q执行,表示第k个云提供的第v类虚拟机的实例q;
[0025]
定义隐私任务的时间约束为:给定一组敏感数据pds,一组服务流程wp,以及私有云中的一组虚拟机pvs;对于每个敏感数据pd∈pds,隐私任务的时间约束被定义为ptn=《pd,pts
pd
,sdu》;其中,pts
pd
={t
ij
|t
ij
∈wp,pd∈δin(t
ij
)∪δout(t
ij
)}表示一组隐私任务集,其输入数据δin(t
ij
)或输出数据δout(t
ij
)包含pd;隐私任务集pts
pd
中的任意任务t
ij
必须在sdu时间段内完成;隐私任务的时间约束形式化表示为:
[0026][0027]
其中,et
iu
是产生敏感数据pd的任务t
iu
的结束时间,et
ij
是使用敏感数据pd的任务t
ij
的结束时间,隐私任务的时间约束用于表示从敏感数据的产生到结束的总时长不能大于特定时间sdu。
[0028]
作为优选的,所述隐私感知的混合云服务流程调度的形式化模型中,还限制了每个任务分配给虚拟机类型的一个实例和每个虚拟机在每个时间段只能运行一个任务;
[0029]
所述每个任务分配给虚拟机类型的一个实例,表示为:
[0030][0031]
所述每个虚拟机在每个时间段只能运行一个任务,表示为:
[0032][0033][0034]
其中,是用于标记任务t
ij
是否在时刻s执行,若表明任务t
ij
在时刻s执行;的计算公式为:
[0035][0036]
作为优选的,所述调度解的编码规则,具体为:
[0037]
设置云服务流程中包含n个任务,则一个调度方案为一个4*n的矩阵,矩阵的长度为n,矩阵中每一列存储了一个任务相关的编码信息;矩阵中包含四行,第一行存储了位置值,用于确定任务的调度优先级;矩阵的第二行~第四行为资源的匹配结果,用于回答该任务是由哪个云的哪种虚拟机类型中的哪个实例来完成。
[0038]
作为优选的,所述元启发式算子生成新调度解的策略,具体为:
[0039]
s2-2-1:将父代调度解集根据解的目标函数值从高到低排序,平均分为两个子种群sps_l1和sps_l2;
[0040]
s2-2-2:在0-1之间随机生成一个小数r1,若r1》阈值rs_1,随机从子种群sps_l1或sps_l2中选择一个调度解,根据该调度解相应编码位上的取值来确定新解的编码向量;
[0041]
s2-2-3:若r1≤阈值rs_1,则在0-1之间随机生成一个小数r2,若r2》阈值rs_2,则编码向量由当前最好的调度解中对应的编码值填充;若r2≤阈值rs_2,进入s2-2-4;
[0042]
s2-2-4:在0-1之间随机生成一个小数r3,若r3》阈值bar,从第二子群体sps_l2中随机选择一个调度解,并根据该调度解相应编码位上的取值来确定新解的编码向量;若r3≤阈值bar,以小概率执行变异算子,确定新解的编码向量;
[0043]
s2-2-5:依次执行s2-2-2~s2-2-4确定新解中每个任务的编码向量,编码向量由《位置值,云服务提供商编号,虚拟机类型编号,虚拟机实例编号》4个值组成,编码向量对应一个任务的调度结果,由每个任务的编码向量得到新调度解。
[0044]
作为优选的,所述隐私感知的任务优先级映射规则,具体为:
[0045]
s2-3-1:定义候选列表用于存储当前可调度的任务集合,所述候选列表初始化为每个服务流程的开始任务集合;
[0046]
s2-3-2:在候选列表中选中一个任务;
[0047]
s2-3-3:当一个任务被选中,在候选列表中删除该任务,且该任务的后续任务则进入候选列表;
[0048]
s2-3-4:重复执行s2-3-2~s2-3-3直到候选列表为空。
[0049]
作为优选的,所述在候选列表中选中一个任务时的选择规则为:
[0050]
若候选列表中存在隐私任务,则在0-1之间随机生成一个小数r4,若r4》阈值ran,则选择位置值最高的隐私任务,否则通过轮盘选择策略从隐私任务中随机选择;若候选列表中不存在隐私任务,则在0-1之间随机生成一个小数r5,若r5》阈值ran,则从候选列表中选择
位置值最高的任务,否则通过轮盘选择策略进行随机选择。
[0051]
作为优选的,所述针对不可行调度解的修复策略,具体为:
[0052]
s2-4-1:针对不满足所述隐私安全的位置约束的任务,初始化修复状态为n;执行s2-4-2开始遍历该任务的隐私安全约束对应的虚拟机集合;
[0053]
s2-4-2:对当前的虚拟机,计算隐私任务在该虚拟机上的开始时间和结束时间;
[0054]
s2-4-3:找到已安排到该虚拟机上、且在隐私安全约束定义的执行时间段内运行的任务集合,标记为冲突任务集合;
[0055]
s2-4-4:对冲突任务集合中的每一个任务,建立候选虚拟机集合并将冲突任务集合中的任务安排到候选虚拟机集合中的虚拟机上;
[0056]
s2-4-5:若所有冲突任务均能安排到其他虚拟机,则把该不满足约束的任务安排到当前虚拟机,更新调度解中上述任务与资源匹配关系,从而获得新解,标记修复状态为y;否则,遍历下一个满足条件的虚拟机,执行s2-4-2;
[0057]
s2-4-6:重复s2-4-2~s2-4-5直到遍历完该任务的隐私安全约束对应的虚拟机集合中的所有虚拟机;若执行状态为y,表明不可行解修复成功,从这些可行解中选择成本最低的作为更新后的调度解;否则,若执行状态为n,表明不可行解修复失败。
[0058]
作为优选的,所述建立候选虚拟机集合并将冲突任务集合中的任务安排到候选虚拟机集合中的虚拟机上,具体为:
[0059]
s2-4-4-1:若该任务为隐私任务,则标记所有除当前虚拟机外、且满足隐私位置及时间约束的虚拟机集合为候选虚拟机集合;否则标记所有除当前虚拟机外的虚拟机集合为候选虚拟机集合;
[0060]
s2-4-4-2:随机从候选虚拟机集合中随机选择一个虚拟机,若冲突任务能在原执行时间段内执行,则安排到该虚拟机上;否则,进入s2-4-4-3;
[0061]
s2-4-4-3:删除该虚拟机,若候选虚拟机集合为空,表明不能将冲突任务均能安排到其他虚拟机;否则执行s2-4-4-2,重新从候选虚拟机集合中选择合适的虚拟机。
[0062]
作为优选的,所述使用所述调度解的编码规则、元启发式算子生成新调度解的策略、隐私感知的任务优先级映射规则和针对不可行调度解的修复策略得到隐私感知的混合云服务流程调度的最佳方案,具体为:
[0063]
s3-1:随机生成一组初始解,初始解中各位置值是随机生成的实数,初始解中除各位置值的其他编码位是整数类型,除各位置值的其他编码位从考虑隐私安全约束满足的可用虚拟机中随机选择;
[0064]
s3-2:使用所述隐私感知的任务优先级映射规则确定任务在资源上的执行顺序;
[0065]
s3-3:将任务按照虚拟机匹配结果及优先级顺序依次安排到虚拟机,从而计算出每个任务在该虚拟机上的开始时间和结束时间;
[0066]
s3-4:针对不满足所述隐私安全的位置约束的调度解,使用针对不可行调度解的修复策略进行调整;
[0067]
s3-5:判断调度解是否满足所述隐私安全的位置约束和隐私任务的时间约束,若满足,则执行s3-6;若不满足,则舍弃该解,重新执行s3-1~s3-4生成一个新解;
[0068]
s3-6:使用所述模型目标计算此时的云服务流程的总成本,若此时的总成本小于最优解的成本,则用当前的可行调度解更新最优解;
[0069]
s3-7:使用所述元启发式算子生成新调度解的策略获得新调度解的位置值;
[0070]
s3-8:重复s3-2~s3-7直到达到预设条件,将当前的最优解作为隐私感知的混合云服务流程调度的最佳方案。
[0071]
本发明的上述技术方案相比现有技术具有以下优点:
[0072]
(1)本发明提出的具有隐私感知的混合云服务流程调度模型形式化模型与传统的单级和多级隐私安全约束不同,模型基于敏感数据的个性化需求定义了包含隐私位置及隐私时间的更细粒度的隐私安全约束,更符合业务环境中隐私安全约束需求。同时,模型考虑了多个企业各自拥有私有云资源,及多个公有云服务提供商提供众多公有云资源的情况,其更符合实际且满足日益成熟的企业联盟发展趋势。
[0073]
(2)通过使用建立调度解的编码规则和元启发式算子生成新调度解的策略提高了解的质量、增加解的多样性,能满足个性化隐私安全约束及混合云中的资源限制约束。在此基础上,通过使用隐私感知的任务优先级映射规则从任务的角度提高了解的质量,通过使用针对不可行调度解的修复策略从虚拟机资源的角度提高了解的质量,从而降低云服务流程的总成本。
附图说明
[0074]
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
[0075]
图1是本发明的流程图;
[0076]
图2是本发明中调度解的编码规则示意图;
[0077]
图3是本发明实施例中使用元启发式算子生成新调度解的示例图;
[0078]
图4是本发明实施例中隐私感知的任务优先级映射规则的示例图;
[0079]
图5是本发明实施例中针对不可行调度解的修复策略的示例图;
[0080]
图6是本发明实施例中求解隐私感知的混合云服务流程调度的最佳方案的示例图;
[0081]
图7是本发明实施例中不同任务数量下sipht服务流程的调度成本的对比图;
[0082]
图8是本发明实施例中不同任务数量下ligo服务流程的调度成本的对比图;
[0083]
图9是本发明实施例中不同资源数量下sipht服务流程的调度成本的对比图;
[0084]
图10是本发明实施例中不同资源数量下ligo服务流程的调度成本的对比图;
[0085]
图11是本发明实施例中不同隐私安全约束数量下sipht服务流程的调度成本的对比图;
[0086]
图12是本发明实施例中不同隐私安全约束数量下ligo服务流程的调度成本的对比图。
具体实施方式
[0087]
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0088]
参照图1所示,本发明公开了一种隐私感知的混合云服务流程调度方法,包括以下步骤:
[0089]
s1:建立隐私感知的混合云服务流程调度的形式化模型,所述隐私感知的混合云服务流程调度的形式化模型包括模型目标、隐私安全的位置约束和隐私任务的时间约束。
[0090]
混合云由私有云和公有云组成。在现实商业世界中,越来越多的企业联盟出现,例如供应链联盟,其中部分成员可能会建立自己的私有云。因此,本发明建立由多个成员组成的私有云集合的情况,其形式化为pc={pc1,
…
,pci,
…
,pcn},其中每个pci代表一个私有云成员;此外,考虑到公有云中有众多云服务提供商,因此建立由多个提供商组成的公有云集合ec={ec1,
…
,eci,
…
,ecm},其中每个eci代表一个公有云服务提供商;为了在私有云中提供稳定的运行环境,本发明设置私有云中的虚拟机数量有限,且所有虚拟机都已经部署;与此不同,公有云中的虚拟机数量无限;
[0091]
每个公有云服务提供商都提供了不同机器配置和定价模型的虚拟机(vm)类型,以便客户可以按需使用虚拟机。本发明将虚拟机类型表示为vmti={vmt
i1
,
…
,vmt
i j
,
…
,vmt
ik
},其中vmt
i j
表示第i个云提供的第j个虚拟机类型;
[0092]
本发明模型目标是最小化云服务流程的总成本。考虑到在云中执行服务流程时,总成本主要由处理成本和传输成本构成。因此,本研究细化描述了隐私安全约束下的任务处理成本和传输成本,如公式(2)~(3)所示。
[0093]
建立模型目标:
[0094]
min toalcost=pcost+tcost
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1);
[0095]
其中toalcost是云服务流程的总成本,pcost是处理成本,tcost是传输成本;
[0096]
如公式(2)所示,处理成本由两部分组成;第一部分是分配到私有云的任务集合的处理成本,每一项代表一个任务分配到相应虚拟机的执行时段与该虚拟机的订阅单价的乘积;类似;第二部分表示分配到公有云的任务集合的处理成本,其中,由于隐私安全约束的存在,分配到公有云的任务只可能是非隐私任务。处理成本的计算公式为:
[0097][0098]
其中,t
ij
是服务流程i中第j个任务,wp是服务流程集合,wp={wp1,
…
,wpi,
…
,wpm},服务流程集合中的每个服务流程表示为wpi=《tsi,ai》,tsi是该服务流程中的任务集合,ai是连接任务的有向弧集合;vmtk是第k个云服务提供商提供的vm类型集合,vm
kv
是第k个云服务提供商提供的第v种vm类型的资源集合;x
ijkvq
表示任务t
ij
是否由第k个云提供的第v类虚拟机的实例q执行,x
ijkvq
为0-1变量,x
ijkvq
=1表示任务t
ij
由第k个云服务提供商的第v种vm类型的第q个实例完成;是第k个云服务提供商的第v种vm类型的单位订阅成本,et
ij
是任务t
ij
的结束时间,st
ij
是任务t
ij
的开始时间,b
kv
是第k个云服务提供商的第v个vm类型资源的订阅周期;npt是非隐私任务集合,|npt|是非隐私任务的数量;
[0099]
其次,传输成本用于计算执行服务流程过程中由于数据传输产生的成本。考虑到服务流程相关的数据包括存储在特定位置的外部数据(例如原始数据和最终数据),和执行任务产生的需流转到下一任务的中间数据。因此,传输成本由两部分组成,如公式(3)所示,第一部分是外部数据在其存储位置和云资源之间传输的成本,第二部分是在云之间传输的中间数据的成本。传输成本的计算公式为:
[0100][0101]
其中,d表示任意一组被任务t
ij
调用的数据,其中sd
ij
是指存储于设备中且被任务t
ij
调用的数据集合,id
ij
是由任务t
iu
产生且被后续任务t
ij
调用的中间数据集合,fd是数据量,cc
pk
是从数据d的存储位置p到任务t
ij
的执行位置k之间每gb数据的传输成本,pred(t
ij
)是任务t
ij
的紧前任务集合(即任务t
ij
开始前必须完成的任务集合),t
iu
是任务t
ij
的紧前任务,为0-1变量,若表明任务t
iu
由第k’个云服务提供商的第v’种vm类型的第q’个实例完成;是指任务t
iu
所匹配的云服务提供商k’和任务t
ij
所匹配的云服务提供商k之间每gb数据的传输成本;
[0102]
定义1(隐私安全的位置约束)为:给定一组敏感数据pds,一组服务流程wp,以及私有云pvs中的一组虚拟机;对于每个敏感数据pd∈pds,隐私安全的位置约束被定义为pcn=《pd,pts
pd
,pvs
pd
》,其用于限制涉及敏感数据pd的隐私任务集pts
pd
必须存储在私有云中的虚拟机集pvs
pd
;其中,pts
pd
={t
ij
|t
ij
∈wp,pd∈δin(t
ij
)∪δout(t
ij
)}表示一组隐私任务集,每个隐私任务t
ij
的输入数据δin(t
ij
)或输出数据δout(t
ij
)包含pd,pvs
pd
是私有云中可以访问pd的一组虚拟机集;一般而言,敏感数据存储在特定的私有云设备中,每个数据均有自己的隐私要求。因此,本发明不是简单地指定涉及敏感数据的任务必须在私有云中分配,而是从敏感数据的角度精确地设置隐私任务的隐私安全约束。如定义1所示,由于隐私级别不同,每个敏感数据都有自己的访问控制要求。该要求将导致使用敏感数据任务的可选虚拟机受到限制。
[0103]
根据定义1,每个敏感数据d都有自己的隐私安全约束,它限制了虚拟机的读取或写入。因此,使用敏感数据的任务只能在特定的虚拟机候选列表中进行选择,从中确定执行该任务的最佳资源。因此,隐私安全的位置约束形式化表示为:
[0104][0105]
其中,表示任务t
ij
不由第k个云提供的第v类虚拟机的实例q执行,表示第k个云提供的第v类虚拟机的实例q。
[0106]
定义2(隐私任务的时间约束)为:给定一组敏感数据pds,一组服务流程wp,以及私有云中的一组虚拟机pvs;对于每个敏感数据pd∈pds,隐私任务的时间约束被定义为ptn=《pd,pts
pd
,sdu》;其中,pts
pd
={t
ij
|t
ij
∈wp,pd∈δin(t
ij
)∪δout(t
ij
)}表示一组隐私任务集,其输入数据δin(t
ij
)或输出数据δout(t
ij
)包含pd;隐私任务集pts
pd
中的任意任务t
ij
必须在sdu时间段内完成;为了保证敏感数据的安全性,往往具有较严格的使用时间要求。因此,为保证敏感数据能够在指定时间内使用,本发明定义了隐私任务的时间约束。如定义2所示,由于隐私级别不同,每个敏感数据都有自己的时间控制要求。该要求将导致使用敏感数据任务的执行时间受到限制。
[0107]
隐私任务的时间约束形式化表示为:
[0108][0109]
其中,et
iu
是产生敏感数据pd的任务t
iu
的结束时间(该时间标志了敏感数据pd的
产生),et
ij
是使用敏感数据pd的任务t
ij
的结束时间(该时间标志了敏感数据pd的使用结束),隐私任务的时间约束用于表示从敏感数据的产生到结束的总时长不能大于特定时间sdu,从而保证敏感数据的安全性。
[0110]
本实施例中的隐私感知的混合云服务流程调度的形式化模型中,还限制了每个任务分配给虚拟机类型的一个实例和每个虚拟机在每个时间段只能运行一个任务;
[0111]
所述每个任务分配给虚拟机类型的一个实例,表示为公式(6):
[0112][0113]
所述每个虚拟机在每个时间段只能运行一个任务,表示为公式(7)~公式(8):
[0114][0115][0116]
其中,是用于标记任务t
ij
是否在时刻s执行,若表明任务t
ij
在时刻s执行;的计算公式为:
[0117][0118]
s2:在所述隐私感知的混合云服务流程调度的形式化模型下,建立调度解的编码规则、元启发式算子生成新调度解的策略、隐私感知的任务优先级映射规则和针对不可行调度解的修复策略。
[0119]
s2-1:调度解的编码规则,具体为:
[0120]
为了定义调度解,定义如图2所示的编码规则。设置云服务流程中包含n个任务,则一个调度方案为一个4*n的矩阵,矩阵的长度为n,矩阵中每一列存储了一个任务相关的编码信息;矩阵中包含四行,第一行存储了位置值,用于确定任务的调度优先级;矩阵的第二行~第四行为资源的匹配结果,用于回答该任务是由哪个云的哪种虚拟机类型中的哪个实例来完成。例如,第一列的编码表示任务t
11
的位置值为0.16,它将由第一个云(pc1)提供的第二个虚拟机类型(大型)的第一个虚拟机实例来执行,该资源标记为pc1_large_1。
[0121]
s2-2:元启发式算子生成新调度解的策略,具体为:
[0122]
s2-2-1:将父代调度解集根据解的目标函数值从高到低排序,平均分为两个子种群sps_l1和sps_l2;
[0123]
s2-2-2:在0-1之间随机生成一个小数r1,若r1》阈值rs_1,本实施例中阈值rs_1取值5/12,则根据迁移算子确定编码向量:随机从子种群sps_l1或sps_l2中选择一个调度解,根据该调度解相应编码位上的取值来确定新解的编码向量;
[0124]
s2-2-3:若随机数r1≤阈值rs_1,则根据调整算子确定编码值:则在0-1之间随机生成一个小数r2,若r2》阈值rs_2,本实施例中阈值rs_2取值0.5,则编码向量由当前最好的调度解中对应的编码值填充;若r2≤阈值rs_2,进入s2-2-4;
[0125]
s2-2-4:在0-1之间随机生成一个小数r3,若r3》阈值bar,本实施例中阈值bar取值0.05,则从第二子群体sps_l2中随机选择一个调度解,并根据该调度解相应编码位上的取值来确定新解的编码向量;若r3≤阈值bar,以小概率执行变异算子,确定新解的编码向量,以增加搜索多样性;其中,由于位置值是实数,所以本实施例中使用le
′
vy飞行算子进行变异。相比之下,其他编码位是整数类型,因此它们是从考虑隐私安全约束满足的可用虚拟机中随机选择的。
[0126]
s2-2-5:依次执行s2-2-2~s2-2-4确定新解中每个任务的编码向量,编码向量由《位置值,云服务提供商编号,虚拟机类型编号,虚拟机实例编号》4个值组成,编码向量对应一个任务的调度结果,由每个任务的编码向量得到新调度解。
[0127]
在初始阶段,每个调度解的编码都是随机生成的。在迭代阶段,它由元启发式算子决定,本发明设计了用于生成隐私感知调度解的元启发式算子。根据所设计的求解框架,当执行迁移算子时,每个任务的位置值继承从第一个子种群或第二个子种群中随机选择的解的位置值。当执行调整算子时,位置值要么继承目前最好的调度解,要么继承第二子种群中的解。此外,算法会以小概率执行变异算子,以增加搜索的多样性。针对本发明的问题,在设计上述策略细节时,重点考虑了以下两个要点。
[0128]
首先,为保证所生成的调度解满足所有隐私安全约束要求,在初始阶段,每个隐私任务只能从私有云中可以执行该隐私任务的特定虚拟机候选列表中随机选择一个虚拟机。在迭代阶段,又可能会发生两种情况。当单纯执行迁移算子或调整算子时,可以保证新生成的调度解满足隐私安全约束,因为该解是从满足隐私安全约束的父代解中继承而来。但当调用了变异算子时,对于隐私任务来说,需限制新匹配的虚拟机只能从能够执行该隐私任务的虚拟机候选列表中选择,从而保证满足隐私安全约束。
[0129]
其次,考虑到私有云中存在有限资源,而公有云中存在无限资源。根据本发明的编码规则,虚拟机匹配结果应该明确回答该任务是由哪个云的哪种虚拟机类型中的哪个实例来完成,以便解码为调度时间表。考虑到公有云中资源的最大使用数量不会超过服务流程中的非隐私任务的数量,因此,本发明将公有云中每种虚拟机类型的虚拟机数量初始化为服务流程中的非隐私任务的数量。因此,非隐私任务可分配给私有云中的现有虚拟机或公有云中的任意虚拟机。
[0130]
本实施例中,父代调度解集首先被分为两个子群,分别表示为sps_l1和sps_l2。如图3所示,对于每个解,第一行代表其位置值,第二至第四行记录了各任务的虚拟机配置结果(为简单起见,图3中只显示了第一和第二行,而省略了第三和第四行)。新解sp1通过迁移算子生成,其中阴影部分是从sps_l1中继承,而白色部分从sps_l2继承。此外,另一新解sp2基于调整算子生成,其中阴影部分是从当前最优解bsf继承的结果。特别地,第五列编码向量是由变异算子决定的,它记录了隐私任务t
16
的虚拟机匹配信息。
[0131]
s2-3:由于多个任务可能被分配给同一个虚拟机,因此需要决定任务在该资源上的执行顺序。考虑到隐私任务只能在特定的虚拟机中执行,一旦这些虚拟机在规定时间内被其他任务占用,就会导致解决方案不可行。因此,隐私任务应该具有更高的优先级。基于以上考虑,提出了隐私感知的任务优先级映射规则。所述隐私感知的任务优先级映射规则,具体为:
[0132]
s2-3-1:首先,定义一个候选列表用于存储当前可调度的任务集合,所述候选列表
初始化为每个服务流程的开始任务集合;
[0133]
s2-3-2:在候选列表中选中一个任务,执行s2-3-3;
[0134]
在候选列表中选中一个任务时的选择规则为:
[0135]
若候选列表中存在隐私任务,则在0-1之间随机生成一个小数r4,若r4》阈值ran,本实施例中阈值ran取值0.8,则选择位置值最高的隐私任务,否则通过轮盘选择策略从隐私任务中随机选择;若候选列表中不存在隐私任务,则类似地在0-1之间随机生成一个小数r5,若r5》阈值ran,则从候选列表中选择位置值最高的任务,否则通过轮盘选择策略进行随机选择;
[0136]
s2-3-3:当一个任务被选中,在候选列表中删除该任务,且该任务的后续任务则进入候选列表;
[0137]
s2-3-4:重复执行s2-3-2~s2-3-3直到候选列表为空。
[0138]
图4显示了隐私感知的任务优先级映射规则的示例。开始时,初始化候选列表为云服务流程的开始任务t
11
和t
21
。由于t
11
和t
21
都是隐私任务,因此基于它们的位置值来确定哪个任务具有最高优先级。其中t
11
的位置值为0.53而t
21
为0.36。根据所设计的选择规则最终选择了t
11
,因此从候选列表中删除t
11
,并添加其后继任务t
12
。由于t
21
为隐私任务而t
12
为非隐私任务,根据隐私任务比非隐私任务具有更高的优先级规则,t
21
被选中。因此,从候选列表中删除t
21
并添加其后继t
22
。重复上述过程,直到确定所有任务的优先级。
[0139]
s2-4:针对不可行调度解的修复策略,具体为:
[0140]
s2-4-1:针对不满足所述隐私安全的位置约束(即公式(4))的任务,初始化修复状态为n;执行s2-4-2开始遍历该任务的隐私安全约束对应的虚拟机集合;
[0141]
s2-4-2:对当前的虚拟机,计算隐私任务在该虚拟机上的开始时间和结束时间;
[0142]
s2-4-3:找到已安排到该虚拟机上、且在隐私安全约束定义的执行时间段内运行的任务集合,标记为冲突任务集合;
[0143]
s2-4-4:对冲突任务集合中的每一个任务,建立候选虚拟机集合并将冲突任务集合中的任务安排到候选虚拟机集合中的虚拟机上;
[0144]
建立候选虚拟机集合并将冲突任务集合中的任务安排到候选虚拟机集合中的虚拟机上,具体为:
[0145]
s2-4-4-1:若该任务为隐私任务,则标记所有除当前虚拟机外、且满足隐私位置及时间约束的虚拟机集合为候选虚拟机集合;否则标记所有除当前虚拟机外的虚拟机集合为候选虚拟机集合;
[0146]
s2-4-4-2:随机从候选虚拟机集合中随机选择一个虚拟机,若冲突任务能在原执行时间段内执行,则安排到该虚拟机上;否则,进入s2-4-4-3;
[0147]
s2-4-4-3:删除该虚拟机,若候选虚拟机集合为空,表明不能将冲突任务均能安排到其他虚拟机;否则执行s2-4-4-2,重新从候选虚拟机集合中选择合适的虚拟机。
[0148]
s2-4-5:若所有冲突任务均能安排到其他虚拟机,则把该不满足约束的任务安排到当前虚拟机,更新调度解中上述任务与资源匹配关系,从而获得新解,标记修复状态为y;否则,遍历下一个满足条件的虚拟机,执行s2-4-2;
[0149]
s2-4-6:重复s2-4-2~s2-4-5直到遍历完该任务的隐私安全约束对应的虚拟机集合中的所有虚拟机;若执行状态为y,表明不可行解修复成功,从这些可行解中选择成本最
低的作为更新后的调度解;否则,若执行状态为n,表明不可行解修复失败。
[0150]
由于多个任务可能被分配给同一个虚拟机,因此可能存在先执行非隐私任务,再执行隐私任务的情况。但是,隐私任务只能由私有云中的特定虚拟机及特定时间段内执行。一旦这些虚拟机在所要求的时间段内被其他任务占用,就不能将虚拟机分配给满足时间约束的隐私任务。以图5为例。根据与位置相关的隐私安全约束,隐私任务t16只能分配给pc1_large_1。此外,根据隐私时间约束,其应该在敏感数据产生后的12小时前完成。根据调度计划的优先级顺序,假设非隐私任务t22先分配给pc1_large_1,其持续时间从第4小时到第7小时。结果表明,t16的执行时间延时了,导致其不能满足时间约束要求。
[0151]
如图5所示,为了使调度解可行,一种直观的方法是将任务t22重新分配给其他虚拟机,为t16腾出空间。因此,本发明针对不可行的调度解提出了修复策略。首先,构建能执行隐私任务的候选虚拟机列表。对于列表中的每个候选虚拟机,计算隐私任务在该虚拟机上的开始时间和结束时间。然后,获取该时间段内已分配给该虚拟机的冲突任务集合。依次将冲突任务重新分配给其他能执行该任务的资源集合。一旦所有冲突的任务都可以重新分配,则隐私任务将分配给特定的虚拟机,从而获得可行解。因为通过上述操作可获得多个可行解,因此从这些可行解中选择成本最低的作为更新后的调度解。
[0152]
s3:使用所述调度解的编码规则、元启发式算子生成新调度解的策略、隐私感知的任务优先级映射规则和针对不可行调度解的修复策略得到隐私感知的混合云服务流程调度的最佳方案。
[0153]
s3-1:随机生成一组初始解,初始解中各位置值是随机生成的实数,初始解中除各位置值的其他编码位是整数类型,除各位置值的其他编码位从考虑隐私安全约束满足的可用虚拟机中随机选择;
[0154]
s3-2:使用所述隐私感知的任务优先级映射规则确定任务在资源上的执行顺序;
[0155]
s3-3:将任务按照虚拟机匹配结果及优先级顺序依次安排到虚拟机,从而计算出每个任务在该虚拟机上的开始时间和结束时间;
[0156]
s3-4:针对不满足所述隐私安全的位置约束的调度解,使用针对不可行调度解的修复策略进行调整;
[0157]
s3-5:判断调度解是否满足所述隐私安全的位置约束和隐私任务的时间约束,若满足,则执行s3-6;若不满足,则舍弃该解,重新执行s3-1~s3-4生成一个新解;
[0158]
s3-6:使用所述模型目标计算此时的云服务流程的总成本,即根据公式(1)计算总成本;若此时的总成本小于最优解的成本,则用当前的可行调度解更新最优解;
[0159]
s3-7:使用所述元启发式算子生成新调度解的策略获得新调度解的位置值;
[0160]
s3-8:重复s3-2~s3-7直到达到预设条件,将当前的最优解作为隐私感知的混合云服务流程调度的最佳方案。
[0161]
如图6所示,本实施例中的生成新解的示例。首先,可通过本发明的元启发式算子生成解的编码值,从图中可看出,任务t
11
的位置值为0.16,并分配给虚拟机pc1_small_1,任务t
12
的位置值为0.18,
…
,依次类推。其次,根据隐私感知的任务优先级映射规则,任务优先级可计算为{t
11
,t
21
,t
22
,
…
},这意味着将首先分配t
11
,然后分配t
21
,依此类推。再次,可以计算每个任务的执行时间。例如,t
12
的开始时间是第3个小时,因为它的前置任务t
11
需要花3小时完成,而它的结束时间是第5小时,因为small类型的虚拟机pc1需要2小时来完成t
12
。
最后,判断该解是否满足所有约束。由于t16不满足隐私安全约束,因此采用修复策略来修复解,并基于公式(1)计算解的目标值。
[0162]
本发明提出的具有隐私感知的混合云服务流程调度模型形式化模型与传统的单级和多级隐私安全约束不同,模型基于敏感数据的个性化需求定义了包含隐私位置及隐私时间的更细粒度的隐私安全约束,更符合业务环境中隐私安全约束需求。同时,模型考虑了多个企业各自拥有私有云资源,及多个公有云服务提供商提供众多公有云资源的情况,其更符合实际且满足日益成熟的企业联盟发展趋势;由于传统的单级和多级隐私安全约束、单混合云环境都可以作为本发明模型的特例,因此它比现有研究中的模型更通用。
[0163]
同时,本发明通过使用建立调度解的编码规则和元启发式算子生成新调度解的策略提高了解的质量、增加解的多样性,能满足个性化隐私安全约束及混合云中的资源限制约束。在此基础上,通过使用隐私感知的任务优先级映射规则从任务的角度提高了解的质量,通过使用针对不可行调度解的修复策略从虚拟机资源的角度提高了解的质量,从而降低云服务流程的总成本。
[0164]
为了进一步说明本发明的有益效果,本实施例中使用工作流生成器构建的sipht和ligo工作流实例来评估所提出的算法。每个实例都以dax(xml中的有向无环图)格式表示。因为每个特定任务数量和结构的工作流都有19个实例,所以本实施例中在每个测试用例中随机选择一个实例。实验案例中设置的参数如表2所示:
[0165]
表2实验案例参数设置表
[0166][0167]
将本发明(privacy-aware process scheduling in hybrid clouds,使用ppshc表示)与目前最新的两种隐私安全约束方法multiterminal cut for privacy in hybrid clouds(mphc)、multi-objective privacy-aware workflow scheduling algorithm(mopa)进行比较。所有算法均运行在3.6ghz intel core i7和8gb ram的机器上。由于本发明跟mopa是元启发式算法,其种群大小设置为50。停止条件为至少执行500次迭代,未改进的迭代次数达到100次或迭代次数达到5000次。ppshc算法参数设置如下:选择概率rs_1=5/12,rs_2=0.5;调整率bar=0.05。对比方法的参数定义详见文献“mphc:s.sharif,
p.watson,j.taheri,s.nepal,a.zomaya.privacy-aware scheduling saas in high performance computing environments.ieee transactions on parallel and distributed systems 28(4)(2017)1176-1188”和“mopa:wen,j.liu,w.dou,x.xu,b.cao,j.chen.scheduling workflows with privacy protection constraints for big data applications on cloud.future generation computer systems 108(2020)1084-1091”。通过公式(1)计算解的目标值衡量各运行算法的调度效果。
[0168]
此外,统计成本降低率来分析本发明的有效性。成本降低率的计算公式为:
[0169]
成本降低率=(mphc或mopa成本-ppshc成本)/ppshc成本;从成本降低率的计算公式可知,若成本降低率》0,表明本发明较对比方法的成本要低,即求解效果更好;同时,成本降低率的值越大,表明本发明较对比方法的优化效果越好。
[0170]
仿真实验从改变任务数量、改变资源数量和改变隐私安全约束数量三个方面进行对比:
[0171]
(1)改变任务数量
[0172]
在这组实验中,工作流中的任务数量分别为100~1000。私有云中虚拟机数量为30,公有云可提供无限虚拟机。隐私安全约束的数量为20。不同任务数量下sipht服务流程的调度成本如图7所示,不同任务数量下ligo服务流程的调度成本如图8所示。
[0173]
图7显示在不同任务数量sipht服务流程的测试算例下,不同算法所获得的最好解的成本。以sipht服务流程结构的100任务数量为例,本发明ppshc获得的最好解的成本为$794.75,mphc及mopa的最好解的成本为$1229.84及$1023.41。根据成本降低率计算公式,本发明较mphc的成本降低率=(mphc成本-ppshc成本)/ppshc成本=(1229.84-794.75)/794.75=54.74%,类似可计算出本发明较mopa的成本降低率=(mopa成本-ppshc成本)/ppshc成本=(1023.4-794.75)/794.75=28.77%。因此,可以得出本发明较mphc、mopa算法的成本降低率分别为54.74%和28.77%。采用同样的方法,可以计算出不同算例下的成本降低率。统计所有算例的成本降低率,得出其最小值为12.82%,最大值为95.89%。
[0174]
图8显示在不同任务数量ligo服务流程的测试用例下,各方法的求解结果。根据上述数据,计算本发明较mphc、mopa算法的成本降低率。进一步,统计所有成本降低率可知,本发明较对比方法的成本降低率为9.30%~107.97%。
[0175]
因此,从图7和图8可以看出,针对sipht及ligo服务流程结构的不同任务数量(100~1000),本发明ppshc均能够获得比对比方法更低的目标值。
[0176]
(2)改变资源数量
[0177]
在这组实验中,工作流中的任务数量为200。私有云中虚拟机数量从12~120不等,公有云可提供无限虚拟机。隐私安全约束的数量为20。结果如图9、图10所示。
[0178]
图9显示在不同资源数量sipht服务流程测试用例下,各方法的求解结果。使用与改变任务数量中相同的分析方法,可以从图9看出,计算本发明较mphc、mopa算法的成本降低率。统计所有成本降低率可知,本发明较对比方法的成本降低率为4.05%~63.48%。图10显示针对ligo服务流程测试用例,各方法的求解结果。计算并统计所有成本降低率可知,本发明较对比方法的成本降低率为1.44%~47.75%。
[0179]
因此,从图9和图10可以看出,在不同资源数量的测试算例下,本发明的ppshc方法均能够获得比mphc、mopa算法更低的目标值。
[0180]
(3)改变隐私安全约束数量
[0181]
在这组实验中,工作流中的任务数量分别为200。私有云中虚拟机数量为30,公有云可提供无限虚拟机。隐私安全约束的数量从5~50不等。结果如图11、图12所示。
[0182]
图11显示在不同隐私安全约束数量的sipht服务流程测试用例下,各方法的求解结果。根据上述数据,计算本发明较mphc、mopa算法的成本降低率。使用与改变任务数量中相同的分析方法,可以从图11看出,本发明较对比方法的成本降低率为7.47%~123.73%。图12显示针对ligo服务流程测试用例,各方法的求解结果。使用与改变任务数量中相同的分析方法计算并统计所有成本降低率可知,本发明较对比方法的成本降低率为0.33%~85.97%。
[0183]
因此,从图11和图12可以看出,在不同隐私安全约束数量的测试算例下,本发明的ppshc方法均能够获得比对比方法更低的目标值。
[0184]
从改变任务数量、改变资源数量和改变隐私安全约束数量三个方面的实验可以看出,本发明有效提高了解的质量、降低了云服务流程的总成本,进一步说明了本发明的有益效果。
[0185]
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0186]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0187]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0188]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0189]
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。