本发明涉及计算机技术领域,尤其涉及一种基于联盟链的服务提供者确定方法及装置。
背景技术:
云计算使用虚拟化技术将it(internettechnology,互联网技术)资源集成到大规模和可扩展的资源池中,并通过互联网为用户提供多样化、灵活和可扩展的按需云服务。云计算技术的成功为闲置的社会资源的利用提供了更多的机会,大量的服务提供者不断出现,为云用户提供了以最佳价格找到最佳服务的机会,但同时也带来了挑战。
传统云服务选择依靠用户自身或服务代理完成对服务提供者的分析及选择。这样的方法缺乏服务选择的灵活性,且随着服务提供者数量的增加,依靠代理选择云服务变得越来越耗时,更存在故意操纵选择结果的风险。区块链作为近几年的信息技术,为以上问题提供了有效的解决方案。利用区块链技术构建分布式服务提供平台代替现有中心化代理机构,消除对第三方的依赖。
基于联盟区块链技术的服务提供架构中存在多服务提供者,需要基于智能合约技术设计实现有效的服务提供者确定方法。现有的服务提供者确定方法,仅考虑对服务提供者侧的优化,未考虑用户侧的服务需求,无法平衡用户侧与服务侧服务效益,或仅考虑用户侧服务效益,缺少对服务提供侧提供商的参与激励,进一步无法保证对用户方和服务提供方能有足够的激励加入服务资源的租用,无法保证社会资源的利用率。
因此,如何提出一种提高社会资源利用率的服务提供者确定方法,成为亟需解决的问题。
技术实现要素:
本发明提供一种基于联盟链的服务提供者确定方法,用以解决现有技术中为用户选择服务提供者时无法兼顾用户侧和服务提供侧导致无法保证社会资源利用率的缺陷,实现同时考虑用户侧和服务提供侧的情况下为用户确定服务提供者,提高社会资源的利用率。
第一方面,本发明提供一种基于联盟链的服务提供者确定方法,包括:
获取用户的当前服务任务的请求信息;
基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
根据本发明提供的一种基于联盟链的服务提供者确定方法,
所述匹配条件,包括:
所述服务提供者满足用户当前服务任务的资源需求值时的成本值不大于所述当前服务任务的价格阈值;
所述服务提供者的服务质量值大于所述用户可容忍的服务质量阈值;以及
所述服务提供者提供的所有服务的资源需求值未超过其服务资源可用值。
根据本发明提供的一种基于联盟链的服务提供者确定方法,所述服务提供者的服务质量值是,基于用户对所述服务提供者的主观信誉值,和其他用户对所述服务提供者的推荐信誉值,更新所述公开服务质量值获得。
根据本发明提供的一种基于联盟链的服务提供者确定方法,基于用户对所述服务提供者的主观信誉值,和其他用户对所述服务提供者的推荐信誉值,更新所述公开服务质量值,包括:
基于所述用户对所述服务提供者的用户服务反馈信息和所述公开服务质量值,获得所述用户对所述服务提供者的主观信誉值;
基于其他用户对所述服务提供者的服务信任参数和所述服务提供者的可靠性参数,获得其他用户对所述服务提供者的推荐信誉值;
基于所述用户对所述服务提供者的主观信誉值和其他用户对所述服务提供者的推荐信誉值,获得服务提供者的综合信誉值;
基于所述综合信誉值更新所述公开服务质量值,获得所述服务提供者的服务质量值;
其中,所述服务提供者的可靠性参数,基于所述服务提供者服务过的历史用户对所述服务提供者的第一历史主观信誉值,和所述其他用户对其历史服务提供者的第二历史主观信誉值获得。
根据本发明提供的一种基于联盟链的服务提供者确定方法,所述确定所述服务提供者是所述用户的目标服务提供者,其中,一个用户当前服务任务仅对应确定一个目标服务提供者,包括:
根据双目标优化模型,确定用户的目标服务提供者;
其中,所述双目标优化模型的约束条件用于描述所述匹配条件;
所述双目标优化模型的目标函数用于保证总体服务目标值最大;
所述总体服务目标值基于所有目标服务提供者的服务质量值总和,以及所有目标服务提供者的利润值总和确定;
所述目标服务提供者是,与所述一个用户当前服务任务匹配的所有服务提供者中的其中一个。
根据本发明提供的一种基于联盟链的服务提供者确定方法,所述根据双目标优化模型,确定用户的目标服务提供者,包括:
利用蚁群算法求解所述双目标优化模型,确定每一个用户的目标服务提供者。
根据本发明提供的一种基于联盟链的服务提供者确定方法,所述服务提供者是区块链系统中的区块链节点,所述用户是请求服务的区块链客户端。
第二方面,本发明还提供一种基于联盟链的服务提供者确定装置,包括:
获取模块,用于获取用户的当前服务任务的请求信息;
确定模块,用于基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于联盟链的服务提供者确定方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于联盟链的服务提供者确定方法的步骤。
本发明提供的基于联盟链的服务提供者确定方法及装置,通过基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定用户的目标服务提供者,兼顾了用户当前服务任务的价格阈值,可容忍的服务质量阈值和当前服务任务的资源需求值,以及服务提供者的单位资源成本值、公开服务质量值和服务资源可用值,保证用户方和服务提供方能有足够的激励加入服务资源的租用,提高社会资源的利用率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于联盟链的服务提供者确定方法流程示意图;
图2是本发明提供的基于区块链的分布式云服务架构示意图;
图3是本发明提供的最优服务匹配算法流程示意图;
图4是本发明提供的所有目标服务提供者的服务质量值总和随服务请求数量的变化情况示意图;
图5是本发明提供的所有目标服务提供者的利润值总和随服务请求数量的变化情况示意图;
图6是本发明提供的基于联盟链的服务提供者确定装置结构示意图;
图7是本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
大量的服务提供者使用云计算技术为云用户提供具有相似甚至相同功能的云服务。但是,这些服务的服务质量(qos)完全不同,并且会随着时间而变化。此外,很难区分服务提供者声明的qos是否与实际qos一致。
获取云服务的传统方式是客户用户直接面对服务提供者,用户收集服务提供者的服务信息并分析服务特征,然后选择一个服务提供者并支付服务费用。这种方法缺乏服务选择的灵活性,效率和选择性。另外,最近的研究表明,少数服务提供者通过依靠高度集中的服务器获得高利润来垄断“云服务市场”,从而导致云服务的高昂价格。
解决上述问题的一种方法是在用户和服务提供者之间添加云代理,以方便用户发现,监视和选择更合适的云服务。代理的引入为用户提供了云服务选择平台,使他们能够获得更高qos和更低价格的云服务。但是,随着服务提供者数量的最近增长,依靠云代理选择云服务已成为越来越耗时的任务,并且存在故意操纵选择结果的风险。
本发明为了克服上述方案存在的缺陷,提出基于效益的分布式云服务匹配策略。
图1是本发明提供的基于联盟链的服务提供者确定方法流程示意图,如图1所示所述方法包括如下步骤:
步骤100,获取用户的当前服务任务的请求信息;
步骤110,基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
具体地,可以首先获取用户的当前服务任务的请求信息,并获取服务提供者的服务能力信息;
可以理解的是,获取到用户的当前服务任务的请求信息则可以认为用户当前有服务需求,则可以基于用户当前服务任务的请求信息和服务提供者的服务能力信息,为用户匹配相应的服务提供者提供服务。
具体地,本实施例可以应用于基于区块链的分布式云服务架构。用户当前服务任务可以是云服务任务,服务提供者可以是云服务提供者。
作为近年来的新兴技术,区块链在各个领域引起了广泛的关注。它的智能合约技术和分布式技术特性为实现分布式云服务管理提供了技术基础。构建基于区块链技术的分布式云服务解决方案可以:
1)充分利用社交空闲资源。任何社会闲置资源均可在区块链网络中注册以提供服务;
2)提高用户利益。用户可以从分布式云服务环境中以更低的费用选择更能满足其需求的云服务;
3)保证服务交易的可靠性。使用区块链记录云服务交易,以确保交易凭证不会被篡改。区块链代替了现有中心化代理机构,并消除了对第三方的依赖。可靠的分布式云服务管理可以为用户提供更可靠,更有效的云服务,减少用户的付费,并有效利用社会资源。
因此,可以构建基于联盟链的服务提供架构,提供基于智能合约技术的分布式服务提供者选择平台。
可以理解的是,联盟链,也称为联盟区块链,本申请中所述的区块链可以认为是联盟链,区块链节点可以认为是联盟链节点。
具体地,图2是本发明提供的基于区块链的分布式云服务架构示意图,如图2所示,该架构包括物理层与逻辑层。物理层包括云服务提供者及云服务用户,云服务提供者作为区块链节点形成区块链网络,用户作为区块链客户端接入网络请求服务。
可以理解的是,联盟链网络由各个注册到链“账本”上的资源节点(即服务提供者)或用户节点(请求服务的区块链客户端)共同维护,服务提供者节点根据自身能力决定以区块链全节点或轻节点的身份加入网络,用户节点则配置区块链客户端,向网络发起服务请求交易,获取服务。
可以理解的是,除了资源节点或用户节点的服务注册信息,链“账本”中还存储包括信誉数据、交易记录和服务匹配相关的智能合约共四类服务相关数据。基于服务注册信息和信誉数据,调用基于智能合约的服务匹配算法可以有效实现服务提供者的选择确定;信誉数据和交易记录是交易纠纷发生时的一种持久、透明的证据。用户接受服务后,将以区块链交易的形式给出对服务提供的评价,并完成服务结算,记录服务交易。同时,服务评价将触发对服务信誉的更新。总的来说,定义服务提供包括:服务注册、服务请求、服务匹配、服务提供与服务反馈四个步骤。
本发明中的区块链网络中分布式云服务的系统模型中,可以有n个服务提供者,定义为s={s1,s2,…,sn},服务提供者可以利用闲置资源向用户提供服务以获得一定收益,每个si在进行服务注册时将在区块链上声明自己的服务能力信息
本发明中的区块链网络中分布式云服务的系统模型中,可以有m个用户提出云服务任务,定义为u={u1,...,um}。每个用户uj的当前服务任务的请求信息:
其中,
因此,可以基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定服务提供者的能力信息与用户的当前服务任务的请求信息相匹配,即可以认为服务提供者可以为用户完成当前服务任务。进而可以获得m个用户匹配的云服务提供者。
具体地,对于用户uj,可能匹配到多个服务提供者,可以只确定其中的一个服务提供者为用户uj的目标服务提供者。
本发明提出的基于区块链的分布式云服务中基于联盟链的服务提供者确定方法,消除了对第三方的依赖,智能合约支持下为用户提供自主、可靠、有效的云服务。
本发明提供的基于联盟链的服务提供者确定方法,通过基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定用户的目标服务提供者,兼顾了用户当前服务任务的价格阈值,可容忍的服务质量阈值和当前服务任务的资源需求值,以及服务提供者的单位资源成本值、公开服务质量值和服务资源可用值,保证用户方和服务提供方能有足够的激励加入服务资源的租用,提高社会资源的利用率。
可选地,在一个实施例中,所述匹配条件,包括:
所述服务提供者满足用户当前服务任务的资源需求值时的成本值不大于所述当前服务任务的价格阈值;所述服务提供者的服务质量值大于所述用户可容忍的服务质量阈值;以及所述服务提供者提供的所有服务的资源需求值未超过其服务资源可用值。
具体地,在服务提供者与用户的当前服务任务满足匹配条件时,可以认为服务提供者的能力信息与用户的当前服务任务的请求信息相匹配,即可以认为服务提供者可以为用户完成当前服务任务。
具体地,若服务提供者满足用户当前服务任务的资源需求值时的成本值不大于当前服务任务的价格阈值,且服务提供者的服务质量值大于用户可容忍的服务质量阈值,且服务提供者提供的所有服务的资源需求值未超过其服务资源可用值,则可以确定该服务提供者与该用户的当前服务任务匹配。
本实施例中,通过要求服务提供者满足用户当前服务任务的资源需求值时的成本值不大于当前服务任务的价格阈值,保证服务提供者完成用户的当前服务任务没有亏损,通过要求服务提供者的服务质量值大于用户可容忍的服务质量阈值,保证用户可以得到高质量的服务,通过服务提供者提供的所有服务的资源需求值未超过其服务资源可用值,保证服务提供者当前情况下有能力完成该用户的当前服务任务,考虑了用户和服务提供者双方的效益,最大化社会效益,保证对用户方和服务提供方有足够的激励加入服务资源的租用,提高社会资源的利用率。
可选地,在一个实施例中,所述服务提供者的服务质量值是,基于用户对所述服务提供者的主观信誉值,和其他用户对所述服务提供者的推荐信誉值,更新所述公开服务质量值获得。
具体地,在进行服务质量值计算时,可以考虑服务提供者的服务能力信息。但在实际应用中无法保证服务提供者所公开的服务能力信息中的公开服务质量值为真实值,因此为了保证服务提供者的服务可信可靠,可以通过信誉评估模型对公开服务质量值进行更新,获得可靠的服务质量值。
具体地,信誉评估模型可以基于用户对所述服务提供者的主观信誉值,和其他用户对所述服务提供者的推荐信誉值建立。
可以理解的是,在信誉评估模型中,用户在接受服务提供者的服务后可以给出有关该服务提供者特定云服务的服务质量(qualityofservice,qos)的反馈,该反馈可以通过区块链交易的形式发布到区块链网络中,完成评价记录。每一次的服务反馈都可以触发智能合约更新区块链中所记录的本地信誉值,基于用户的服务反馈,可以将用户的服务反馈定义为一个五元组
用户服务反馈信息存储于区块链上,用户和服务提供者均可以获得评价数据作为计算服务质量和参考服务质量的依据。因为区块链的不可篡改特性,可以保证通过共识的服务评价可信可靠。
基于用户服务反馈信息,用户的主观信誉值(usersubjectivereputation,usr)可以被持续更新并存储至区块链网络,用户的主观信誉值代表用户对服务提供者的信任程度。对于有当前服务任务需要申请服务的用户,若该用户还未接受某服务提供者的服务提供,或较少次接受,则不仅需要考虑自身对其的信任程度,更需要参考其他用户的信任程度。随着接受服务次数的增加,自身主观信任的比重可以变大。本发明提出的信誉评估模型除用户主观信誉值外,增加对推荐信誉的考虑,从而得到综合服务信誉。
可选地,在一个实施例中,基于用户对所述服务提供者的主观信誉值,和其他用户对所述服务提供者的推荐信誉值,更新所述公开服务质量值,包括:
基于所述用户对所述服务提供者的用户服务反馈信息和所述公开服务质量值,获得所述用户对所述服务提供者的主观信誉值;
基于其他用户对所述服务提供者的服务信任参数和所述服务提供者的可靠性参数,获得其他用户对所述服务提供者的推荐信誉值;
基于所述用户对所述服务提供者的主观信誉值和其他用户对所述服务提供者的推荐信誉值,获得服务提供者的综合信誉值;
基于所述综合信誉值更新所述公开服务质量值,获得所述服务提供者的服务质量值;
其中,所述服务提供者的可靠性参数,基于所述服务提供者服务过的历史用户对所述服务提供者的第一历史主观信誉值,和所述其他用户对其历史服务提供者的第二历史主观信誉值获得。
具体地,可以首先基于用户uj对该服务提供者的用户服务反馈信息和该服务提供者的公开服务质量值,获得所述用户对所述服务提供者的主观信誉值。
具体地,基于用户服务反馈信息
通过tn可查询区块链数据获得si所声明的服务质量
其中,si为uj提供服务的第k次服务的信誉评估差异值为
为了考虑信誉的变化性,可以设定当前服务次数为z,用户当前主观信誉值
其中tz为当前时间,tk为评价时间。λ(0<λ<1)为时间衰减因素,考虑用户的社会行为习惯,新的信任对总体信任的影响更大。
具体地,可以基于其他用户对服务提供者的服务信任参数和服务提供者的可靠性参数,获得其他用户对服务提供者的推荐信誉值;
当用户没有足够的经验来获得主观信誉值或希望获得其他用户参考时,已存在的关于服务的其他用户的信誉值可以被作为推荐参数。用户uj获得其他用户
为减少系统中由恶意用户提交的非诚实反馈对信誉体系的影响,并防止合谋攻击的出现,可以考虑推荐者的重要性(信誉的可传递性)、collusion(合谋攻击、可靠性)威胁,因此推荐信誉值为:
其中γr为用户r的可靠性参数(用于评估用户评价的可靠性)。定义
其中,
λr为用户的确定性影响因素。定义
具体地,获得用户对服务提供者的主观信誉值和其他用户对服务提供者的推荐信誉值,则可以获得服务提供者的综合信誉值;
具体地,基于主观信誉和推荐信誉,进行服务选择时,综合信誉可体现服务提供者的服务质量声明的可靠程度,因此对于用户uj和服务提供者si,用户uj对服务提供者si的主观信誉值为
综合信誉是用户对服务质量可信程度的反应,受主观信誉和推荐信誉的共同约束。在一般情况下,α β=1,用户u接受s的服务次数越多,其使用经验越丰富,主观信誉所占比例就越高,α取值增大。
具体地,获得综合信誉值后,可以基于综合信誉值更新公开服务质量值,获得所述服务提供者的服务质量值;
具体地,服务质量值可以是:
可选地,在一个实施例中,所述确定所述服务提供者是所述用户的目标服务提供者,其中,一个用户当前服务任务仅对应确定一个目标服务提供者,包括:
根据双目标优化模型,确定用户的目标服务提供者;
其中,所述双目标优化模型的约束条件用于描述所述匹配条件;
所述双目标优化模型的目标函数用于保证总体服务目标值最大;
所述总体服务目标值基于所有目标服务提供者的服务质量值总和,以及所有目标服务提供者的利润值总和确定;
所述目标服务提供者是,与所述一个用户当前服务任务匹配的所有服务提供者中的其中一个。
具体地,云区块链网络提供分布式云服务,可以保证用户和服务提供者通过提供服务或接受服务获得最大的效益。对于每个用户来说,其最大的效益即其通过接受云服务提供者si的服务,获得最大的服务执行满意度,该满意度可通过服务执行的qos进行量化。对于云服务提供者来说,其最大的效益即通过向用户提供服务,获得最大的利润值。
为保证用户的资源申请能得到响应,可以提出一种用户uj与云服务提供者si进行匹配的方法,同时可以保证服务提供者能够很好地匹配用户需求。
可以定义服务匹配决策变量为
可以理解的是,
其中,基于x的匹配决策,服务质量值总和为:
其中,基于x的匹配决策,利润值总和为:
本发明可以采用双目标优化模型,称为bd-match,如下所示:
目标函数f1和f2分别最大化服务质量值总和云服务提供者的利润值总和。
约束条件(1)
约束条件(2)
约束条件(3)
约束条件(4)
约束条件(5)
对于约束条件(1),服务提供者是由激励驱动的自治实体,来自用户的一项服务请求与一个服务提供者匹配,一旦服务提供者提供了一项服务,可以产生费用。因此可以用
其中,
对于约束条件(2),
对于约束条件(3),
为了更好地确定服务提供者的服务质量,本发明提出了可信qos模型,主要包括qos标准化量化子模型和云服务信誉评估子模型。
(1)服务qos标准化量化子模型;
由于服务属性qos取值标准的多样性会给用户的当前服务任务和服务提供者的匹配带来影响,因此可以对云服务属性qos进行归一化。假设服务提供者s∈s,a={a1,…,at,…,at}被定义为s的多属性集合,是用户u∈u的候选匹配对象。对于s来说,参考其不同属性指标特性,可将其服务属性集合a中的属性分为两类:定量属性、定性属性。假设aquan={a1,…,ak}为定量属性,aqual={ak 1,…,at}为定性属性,则s对于用户u的属性at∈a的qos值
(1)定量属性
对于定量属性来说,在进行属性值标准化时需要考虑3种不同取值特性的属性:
1)积极qos属性。这类属性在进行评估时,在一定服务质量范围内(不可能无穷大),属性qos值越大,服务质量越好,例如安全性、可用性、可靠性。
2)消极qos属性。同积极qos属性相反,该类属性在取值上越小越好(一定下界约束下),比如时延。
3)区间qos属性。该类属性既不属于积极qos属性又不属于消极qos属性,其最优取值是一个区间范围。
可以定义云服务s的第t个属性属于积极qos属性,且其qos取值为
其中,
消极qos属性同积极qos属性的定义相反,其标准化值
对于区间类型的属性at,若用户有特定需求,可以在服务申请中给出用户可承受取值范围,定义该范围为
(2)定性属性
定性属性没有标准的归一化方法,属性的标准化主要依赖于用户的偏好。因此可以参考用户偏好,为定性属性定义量化等级,取属性量化等级为d,考虑某些定性属性之间存在相互关联使得总体属性取值分别受单个属性影响,将相关属性定义为关联属性集ca={a1,…aca}。对于云服务提供者s的总数为qqual的定性属性,我们可以得到e个关联属性集合qqual={ca1,ca2,…,cae},qqual=|ca1| … |cae|,其中|cae|≥1。将cae作为新的归一化量化对象。
为获得关联属性集的标准化值,可以将用户对定性属性的取值偏好建模为有向图(r,e),称为属性值偏好图,其中r是cae的属性取值的集合代表nodes,e为边的集合。若num=|cae|为集合cae中包含属性个数,考虑各属性量化等级为d,则该集合共有v=dnum种取值情况,即图中存在v个节点,
对于属性集cae,若通过排序的服务提供者s所提供的服务属性质量序号为
(3)综合服务属性量化
在进行qos服务匹配时,数目众多的服务参数,不同服务属性表现形式、属性范围等各不相同,这使得服务匹配变得困难,有时甚至使服务匹配无法完成。为最大化程度的满足用户需求,并保证用户所匹配到的服务的总体性能,可以定义服务质量为:
其中,考虑用户对不同属性的偏好,ωt描述第t个属性相对于其他属性的重要性,且
本发明提出了一个受信任的qos模型,包括qos标准化量化模型及云服务信誉评估模型,提高服务提供者的服务质量的可靠性。
可选地,在一个实施例中,所述根据双目标优化模型,确定用户的目标服务提供者,包括:
利用蚁群算法求解所述双目标优化模型,确定每一个用户的目标服务提供者。
具体地,可以对双目标优化模型进行求解,获得最优匹配结果,可以实现所有目标服务提供者的服务质量值总和,以及所有目标服务提供者的利润值总和都尽可能大,使得总体服务目标值最大,进而即可确定最大总体服务目标值对应的x决策,即获得所有有服务任务用户与服务提供者之间的最优配对,即可确定每一个用户的目标服务提供者。
双目标优化问题bd-match是一个双目标优化问题。因为单目标任务分配问题为np-hard问题,所以本发明中的双目标优化问题也是一个np-hard问题。
不同于单优化问题,由于bd-match包含多个相互冲突的目标函数,不再具有唯一的最优解,其最优解为一个可能包含无穷多元素的解集。pareto最优表示在多目标下其解集不被其他解支配。可以设置所有目标服务提供者的服务质量值总和,以及所有目标服务提供者的利润值总和为两个目标,因此,当f1(x*)>=f1(x),f2(x*)>=f2(x),x为可行域中不等于x*的任意解,成立时x*为pareto最优解。依赖pareto解的支配关系,为解决该问题,可以提出最优服务匹配算法解决bd-match问题。
具体地,可以通过km算法或蚁群算法等任一种可以求解双目标优化模型的算法,确定每一个用户的目标服务提供者。
以基于蚁群优化的最优服务匹配算法为例,为使蚂蚁能够朝着不同的方向进行搜索,可以采用线性加权法(linercombinationofweights)对两个目标f=(f1,f2)进行加权处理。
可以定义w={w1,w2}为权重系数,其中w1 w2=1。
wi属于[0,1]。
该权重系数不用于反映决策者对目标函数的偏好,它仅是一个优化因子,通过动态调整期取值,得到pareto最优解集中的多个解。
加权后的bd-match问题的最优化目标可以为:
f(x)=w1*f1(x) w2*f2(x);
f(x)即为总体服务目标值。
为获得pareto最优解集中的多个解,可以对权重系数w1和w2进行动态调整。比如在每一次迭代过程中对w1和w2随机取值,保证一次完整的迭代过程中w1和w2保持不变且w1 w2=1即可。
可以定义q为权重更新因子,0<=q<=q,q属于n (正整数)。蚂蚁经过某条路径时产生的信息素及转移规则与当前蚂蚁行进时的权重系数相关。
在构建解过程中,信息素
启发式信息偏向于更高服务质量和服务收益的服务提供者,考虑资源约束,可以定义启发值:
其中
其中
其中,v和v为常量,用于标识信息素质量。
具体地,权重因子影响蚂蚁搜索目标,不同q值下同一路段有不同的转移概率,可以定义蚂蚁由节点uj向节点si转移的概率
其中α为信息素重要程度因子,β为启发值的重要程度因子,
图3是本发明提供的最优服务匹配算法流程示意图,如图3所示,基于蚁群优化的最优服务匹配算法流程如下所示:
step1:仿真参数初始化,设置常量的值。
step2:初始化循环变量i=1,q=1,a=1;
step3:利用权重更新向量生成权重w1,w2;
step4:构建加权目标函数f(x),定义解空间;
step5:初始化a个蚂蚁,并将其部署至代表用户的节点上;
step6:对每一只蚂蚁计算当前节点转移改了,根据状态转移规则规划服务匹配方式;
step7:根据支配关系更新pareto解集;
step8:更新信息素;
step9:判断是否遍历所有蚂蚁,完成遍历,转至step10,否则转至step6。
step10:判断是否完成迭代,完成迭代,转至step11,否知转至step5。
step11:判断是否遍历解空间,完成遍历,转至step12,否则转职step3。
step12:输出pareto解集。
本发明中,pareto解集为x决策。
本发明以用户和服务提供者两方为最优化目标,构建双目标优化问题,基于蚁群优化的服务匹算法解决该问题。基于智能合约技术在区块链网络中执行该算法,实现以自动选择、提供、使用和发布所需的云服务,完成可靠的服务交易。
可选地,在一个实施例中,所述服务提供者是区块链系统中的区块链节点,所述用户是请求服务的区块链客户端。
具体地,本发明可以应用于基于区块链的分布式云服务架构。用户当前服务任务可以是云服务任务,服务提供者可以是云服务提供者。相应地,服务提供者是区块链系统中的区块链节点,所述用户是请求服务的区块链客户端。
本发明基于区块链的分布式云服务提供架构,构建面向云提供商和用户的资源交易平台,服务提供者基于区块链技术相互制约,为用户提供低成本、安全、可靠的按需服务。
本发明提供的基于联盟链的服务提供者确定方法,通过基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定用户的目标服务提供者,兼顾了用户当前服务任务的价格阈值,可容忍的服务质量阈值和当前服务任务的资源需求值,以及服务提供者的单位资源成本值、公开服务质量值和服务资源可用值,保证用户方和服务提供方能有足够的激励加入服务资源的租用,提高社会资源的利用率。
以下对本发明对提出的基于效益的云服务匹配策略开展实验,分析其性能。在实验环境中,可以利用以太坊开源代码构建分布式云服务网络。基础实验环境中接入n=10个云服务提供者包含10个服务能力相异的服务。设定其资源量在[1,10]的范围中,单位资源服务成本在[1,10],可以考虑5个服务属性,包括3个定量属性与2个定性属性。
本发明的实验可以考虑m=10个用户请求服务的情况,随机设定用户服务资源需求量[1,10],支付为[2,15]。为简化实验,给定服务请求者服务需求及服务信誉下的服务提供者的可信qos在[0.2-0.9]范围内。在资源需求量小于总体服务资源量的条件下,完成服务匹配。可以对aco-sma(antcolonyoptimization-servicematchingalgorithm,蚁群算法)算法的参数α,β,q,ρ的不同取值进行实验,分析其对获得的pareto解的影响。其中,α为转移概率函数中信息素的重要程度因子,在分别取值0.0,0.5,1.0,1.5,2.0的情况下,运行算法程序获得的pareto前沿情况,α取值为0时质量较差,取值为1.5时获得相对最好质量。β为转移概率函数中启发函数的重要程度因子,β取值为1时获得更好的pareto最优前沿。q为权重更新因子,用于拓宽搜索空间,获得多个pareto最优解。当q>=10时,增加q的取值对解的影响比较不明显,但q对函数时间负责度的增加非常明显。ρ为信息素挥发系数,一定程度上影响蚂蚁行走的方向,其值越大,信息素挥发越快,对后面的路径选择影响越小,ρ取值为0.3时获得更优的pareto解。可以理解的是,本发明提供的aco-sma算法获得的解明显优于nsga-ii。
图4是本发明提供的所有目标服务提供者的服务质量值总和随服务请求数量的变化情况示意图,图5是本发明提供的所有目标服务提供者的利润值总和随服务请求数量的变化情况示意图;在bbdcs架构下,可以以qos为最优化目标(qb)的服务匹配机制及以服务收益为目标(pb)的服务机制同本文的以两者结合为目标的服务机制(bdc)进行对比分析。
图4主要以用户侧优化为目标,仅考虑服务qos为目标时,其qos取值更加优化,但同时以服务收益为目标的机制在qos上取值更低。
图5中则与图4的结果相反,以服务提供者侧优化为目的时,更多考虑服务提供者收益。如图4和图5所示,仅考虑一方的需求,可能会使得另一方失去参与兴趣。本发明通过双目标优化,既考虑用户侧,又考虑服务提供者侧的优化需求,促进更多的服务提供者对外出租自己的闲置资源,帮助更多的用户获得更加高性能好价格的服务,能够有效实现社会资源效益的最大化。
下面对本发明提供的基于联盟链的服务提供者确定装置进行描述,下文描述的基于联盟链的服务提供者确定装置与上文描述的基于联盟链的服务提供者确定方法可相互对应参照。
图6是本发明提供的基于联盟链的服务提供者确定装置结构示意图,该装置包括:获取模块610,确定模块620,其中:
获取模块610用于获取用户的当前服务任务的请求信息;
确定模块620用于基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
具体地,基于联盟链的服务提供者确定装置首先通过获取模块610获取用户的当前服务任务的请求信息,随后通过确定模块610基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,进而确定其中最优的服务提供者是用户的目标服务提供者。
本发明提供的基于联盟链的服务提供者确定装置,通过基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定用户的目标服务提供者,兼顾了用户当前服务任务的价格阈值,可容忍的服务质量阈值和当前服务任务的资源需求值,以及服务提供者的单位资源成本值、公开服务质量值和服务资源可用值,保证用户方和服务提供方能有足够的激励加入服务资源的租用,提高社会资源的利用率。
图7是本发明提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communicationsinterface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行基于联盟链的服务提供者确定方法,该方法包括:
基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于联盟链的服务提供者确定方法,该方法包括:基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于联盟链的服务提供者确定方法,该方法包括:基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种基于联盟链的服务提供者确定方法,其特征在于,包括:
获取用户的当前服务任务的请求信息;
基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
2.根据权利要求1所述的基于联盟链的服务提供者确定方法,其特征在于,所述匹配条件,包括:
所述服务提供者满足用户当前服务任务的资源需求值时的成本值不大于所述当前服务任务的价格阈值;
所述服务提供者的服务质量值大于所述用户可容忍的服务质量阈值;以及
所述服务提供者提供的所有服务的资源需求值未超过其服务资源可用值。
3.根据权利要求2所述的基于联盟链的服务提供者确定方法,其特征在于,所述服务提供者的服务质量值是,基于用户对所述服务提供者的主观信誉值,和其他用户对所述服务提供者的推荐信誉值,更新所述公开服务质量值获得。
4.根据权利要求3所述的基于联盟链的服务提供者确定方法,其特征在于,基于用户对所述服务提供者的主观信誉值,和其他用户对所述服务提供者的推荐信誉值,更新所述公开服务质量值,包括:
基于所述用户对所述服务提供者的用户服务反馈信息和所述公开服务质量值,获得所述用户对所述服务提供者的主观信誉值;
基于其他用户对所述服务提供者的服务信任参数和所述服务提供者的可靠性参数,获得其他用户对所述服务提供者的推荐信誉值;
基于所述用户对所述服务提供者的主观信誉值和其他用户对所述服务提供者的推荐信誉值,获得服务提供者的综合信誉值;
基于所述综合信誉值更新所述公开服务质量值,获得所述服务提供者的服务质量值;
其中,所述服务提供者的可靠性参数,基于所述服务提供者服务过的历史用户对所述服务提供者的第一历史主观信誉值,和所述其他用户对其历史服务提供者的第二历史主观信誉值获得。
5.根据权利要求1所述的基于联盟链的服务提供者确定方法,其特征在于,所述确定所述服务提供者是所述用户的目标服务提供者,其中,一个用户当前服务任务仅对应确定一个目标服务提供者,包括:
根据双目标优化模型,确定用户的目标服务提供者;
其中,所述双目标优化模型的约束条件用于描述所述匹配条件;
所述双目标优化模型的目标函数用于保证总体服务目标值最大;
所述总体服务目标值基于所有目标服务提供者的服务质量值总和,以及所有目标服务提供者的利润值总和确定;
所述目标服务提供者是,与所述一个用户当前服务任务匹配的所有服务提供者中的其中一个。
6.根据权利要求5所述的基于联盟链的服务提供者确定方法,其特征在于,所述根据双目标优化模型,确定用户的目标服务提供者,包括:
利用蚁群算法求解所述双目标优化模型,确定每一个用户的目标服务提供者。
7.根据权利要求1-6任一项所述的基于联盟链的服务提供者确定方法,其特征在于,所述服务提供者是区块链系统中的区块链节点,所述用户是请求服务的区块链客户端。
8.一种基于联盟链的服务提供者确定装置,其特征在于,包括:
获取模块,用于获取用户的当前服务任务的请求信息;
确定模块,用于基于用户当前服务任务的请求信息和服务提供者的服务能力信息,确定所述服务提供者与所述用户的当前服务任务满足匹配条件,则确定所述服务提供者是所述用户的目标服务提供者;
其中,一个用户当前服务任务仅对应确定一个目标服务提供者;
所述用户当前服务任务的请求信息包括:所述当前服务任务的价格阈值,用户可容忍的服务质量阈值和当前服务任务的资源需求值;
所述服务提供者的服务能力信息包括:单位资源成本值、公开服务质量值和服务资源可用值。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于联盟链的服务提供者确定方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于联盟链的服务提供者确定方法的步骤。
技术总结