一种基于依赖图约减和QoS保持的Web服务组合方法

文档序号:7874403阅读:153来源:国知局
专利名称:一种基于依赖图约减和QoS保持的Web服务组合方法
技术领域
本发明涉及计算机互联网Web服务组合领域,特别是一种基于依赖图约减和QoS(服务质量)保持的Web服务组合方法。
背景技术
Web服务组合是关于处理自治的服务组件的组装问题,使得从原始的服务组件得到一个新的服务,给出相应的发布服务接口。目前的Web服务体系结构,接口是由WSDUWeb服务描述语言)描述的,通过UDDI (统一描述、发现和集成)发布。但是,支持组合需要更进一步的要求:(I)组合定义(2)确保服务在既保证单个服务的一致性又保证整个组合服务的一致性的情况下被组合。目前没有一种关于Web服务应该怎样组合一致的观点。Web服务的组合为复杂的Web应用提供了有效的解决方案。从现实应用来看,Web服务的组合可以实现虚拟社区中软硬件的共享;WWeb服务本身来看,Web服务的组合实现了组合服务的动态生成,提高了服务组件及基本服务的可重用性和利用率,减少了系统的开销。但是其中存在的诸如服务组合粒度、服务组件或基本服务之间的通信方式及其优化、服务的聚类、服务的社区化分类管理、组合服务的有效性验证及安全等问题,有待进一步的研究和探索。目前,Web服务组合侧重于基于QoS的服务组合方法。但是,在已有的组合方法中,能够获得最高的QoS的服务组合结果中大多存在较多的冗余的Web服务。

发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于依赖图约减和QoS保持的Web服务组合方法。发明内容:为了解决上述技术问题,本发明公开了一种能够减少冗余的Web服务的组合方法,包含如下步骤:步骤I,预处理:对所有的Web服务进行预处理,生成一系列Map映射关系,一个输入对应一个需要该输入的Web服务的集合,一个Web服务对应Web服务的输入集合和输出集合。这样对于一个输入可以快速得到包含这一输入的所有Web服务,对于一个Web服务可以快速得到该Web服务的输入和输出。步骤2,生成Web服务依赖图:对于用户给定的一个请求,从用户给定的输入到用户要得到的输出,逐层加入Web服务,直到得到了用户想得到的所有的输出,从而生成Web服务依赖图;步骤3,添加虚拟Web服务:从输入层到输出层由前至后逐层遍历Web服务依赖图,对于每个Web服务的每个输出,如果该输出是当前层的后面层(除当前层的下一层)的输入,则在当前层的下一层添加一个虚拟Web服务。步骤4,去除对输出没贡献的Web服务:从输出层到输入层从后往前逐层遍历Web服务依赖图,去除那些对输出没有贡献的Web服务;步骤5,计算QoS (只考虑吞吐量和响应时间):从输入层到输出层从前往后遍历Web服务依赖图,计算每个Web服务的QoS,每个Web服务保留上一层能够提供最高QoS值的Web服务集;步骤6,约减多余的Web服务:步骤4中每个Web服务保留的上一层的Web服务集中Web服务数不是最少的,通过约减多余的Web服务,从而保留较少Web服务;步骤7,选取Web服务:从输出层到输入层从后往前逐层遍历Web服务依赖图,选取能够得到最高QoS的Web服务组合。步骤2生成Web服务依赖图:将一个Web服务记为WS〈Input, Output, QoS>, Input表示Web服务WS能够被激活所必需满足的输入集合,记为InpuiXin1, in2,..., inn>,其中,Ini为单一的输入,I ≤ i≤η,η表示输入的总数量,Output是指执行Web服务WS后能够得到的所有输出集合,记为OutpulXout1,out2,…,outm>,其中,out」为单一的输出,I ^ j ^ m,m表示输出的总数量,QoS指WS的非功能属性,包括响应时间RT,吞吐量TP ;对于用户给定的请求<Rin,Rout>, Rin表示用户给定的输入集合,Rout表示用户需要得到的输出集合;从用户给定的输入Rin开始,逐层添加可被调用执行的Web服务,直到得到用户需要的所有的输出Rwt,当且仅当该Web服务的所有输入参数都已得到Web服务可被调用执行;第I 层 L1 层添加的 Web 服务满足
权利要求
1.一种基于依赖图约减和QoS保持的Web服务组合方法,其特征在于,包含如下步骤: 步骤1,预处理:对所有的Web服务进行预处理,生成一组Map映射关系; 步骤2,生成Web服务依赖图:对于用户给定的请求,从用户给定的输入到用户要得到的输出,逐层加入Web服务,直到得到用户需要的所有输出,从而生成Web服务依赖图; 步骤3,添加虚拟Web服务:从输入层到输出层逐层遍历Web服务依赖图,对于每个Web服务的每个输出,如果该输出是当前层除了下一层的后面层的输入,则在当前层的下一层添加一个虚拟Web服务; 步骤4,去除对输出没有贡献的Web服务:从输出层到输入层逐层遍历Web服务依赖图,去除对输出没有贡献的Web服务; 步骤5,计算QoS值:从输入层到输出层遍历Web服务依赖图,计算每个Web服务的QoS值,每个Web服务保留上一层能够提供最高QoS值的Web服务的集合; 步骤6,约减多余的Web服务; 步骤7,选取Web服务:从输出层到输入层逐层遍历Web服务依赖图,选取能够得到最高QoS值的Web服务组合。
2.根据权利要求1所述的方法,其特征在于,步骤2中包括以下步骤: 将一个Web服务记为WS〈Input, Output, QoS>, Input表示Web服务WS能够被激活所必需满足的输入集合,记为InpuiXin1, in2,..., inn>,其中,ir^为单一的输入,I彡i彡η,η表示输入的总数量,Output是指执行Web服务WS后能够得到的所有输出集合,记为Output<out1; OUt2,…,outm>,其中,OUtj为单一的输出,I < j < m, m表示输出的总数量,QoS指WS的非功能属性,包括响应时间RT,吞吐量TP ; 对于用户给定的请求<Rin,Rout>, Rin表示用户给定的输入集合,Rout表示用户需要得到的输出集合;从用户给定的输入集合Rin开始,逐层添加可被调用执行的Web服务,直到得到用户需要的所有的输出集合Rtjut ;当且仅当该Web服务的所有输入参数都已得到,则Web服务可被调用执行; 第 I 层 L1 层添加的 Web 服务满足 h = i^hx.wsi,X ^ h(k < I) A Inputwsix ηOutput,^ ^ 0Λ Inputwsix c Rjn u Output2 U...U Owtpiit,—],即在第 I 层添加的第 χ 个Web服务WSu在第I层之前的第k层没有被添加,并且当该Web服务在第I层可被调用执行时必须添加在第I层;其中 是指第I层的第χ个Web服务输入集合,Outputp是指第P层中所有Web服务的输出集合的并集,2 SpS 1-1,I < I < C,C为总层数,Lk表示第k层,WS1;X表示L1层的第χ个Web服务。
3.根据权利要求2所述的方法,其特征在于,步骤3中添加虚拟Web服务包括以下步骤: 对于第I层的每一个Web服务的每一个输出OUtj,当输出OUtj跨越一层以上作为后面第h层中Web服务的输入时,h ^ 1+1,在跨越的每层中都添加一个虚拟Web服务,该虚拟Web服务的输入和输出都设为out」,且具有最高的QoS值,把第一层输入集合Rin和最后一层输出集合Rtjut也分别作为一个虚拟Web服务。
4.根据权利要求3所述的方法,其特征在于,步骤4去除对输出没贡献的Web服务包括以下步骤:假设Web服务依赖图有η层,第一层和最后一层只含有一个由步骤3产生的虚拟Web服务,从输出层到输入层逐层遍历Web服务依赖图,对于L1层,当WSu EL1AOutputwsix ni i U Inpiitwsui 2 U …U lnputws.^ J = 0 ’其中,WS1+lx e L1+1, χ =`1,2,...,s,即当L1层的第χ个Web服务WS1-的输出集合心卬Mtwiv与第1+1层的所有Web服务的输入集合的交集为空时,则判定L1层的第χ个Web服务WSu对输出没有贡献,从L1层中去除。
5.根据权利要求4所述的Web服务组合方法,其特征在于,步骤5计算QoS值包括以下步骤: 从输入层到 输出层,对于L1层的第χ个Web服务,WS1;X e L1, I = 2,3, , C,该Web服务的输入集合_^^^ = [In1Jn2, η },当第H层的第y个Web服务WSwiy e L1+如果扣e /npw%Su即输入ini属于集合/nptrt而&,有且⑷y即输入irii属于集合OwtpMtwsfO则把Web服务WSny加入到aim Qni)集合中,其中,all^ Qni)是指在L1^1层能够输出Ini的Web服务 集合,初始为空;0utputWSl_iy为第丨-丨层的第y个Web服务WS^y的输出集合; 对所有的all^ani)其中i = 1,2,...,η集合,输入Ini能够得到的最小的响应时间为Web服务集合alln Qni)中的Web服务执行完所需的具有最小时间Web服务bestrt Qni),即bestrtQrii) = mintall^ QniM,则从输入开始到执行完Web服务WS1^所需要的最小时间RT.WSljx为得到该Web服务所 有输入中最大的响应时间max Ibestrt (Ini)}加上该Web服务本身执行的时间 WSu.RT,即 RT.WS1;x = max {bestrt (Ini)}+WS1;X.RT,其中,RT.WS^ 是指从输入开始到执行完Web服务WSu所需的最小时间,WSu.RT为执行Web服务WSlix本身需要的时间,bestrt (Ini)为Web服务集合all^ Qni)中的Web服务执行完所需的具有最小时间Web服务,max Ibestrt QniM是指WSlix所有输入参数对应的Web服务中最大相应时间; 对所有的all^ani)其中i = 1,2,...,η集合,输入Ini能够得到的具有最大吞吐量的Web服务besi^Qrii) = max {al Iw (Ini)},则从输入开始到执行完Web服务WS^x所能产生的最大吞吐量TP.WSljx取为得到该Web服务所有输入和Web服务本身执行所产生的吞吐量中最小值,即TP.WS1;X = Ininibesttp(Ini),WS1;X.TP},其中,TP.WS1;X是指从输入开始到执行完Web服务WS1-所能提供的最大吞吐量,VShx.TP为Web服务WS^所能提供的吞吐量,besttp (Ini)为输入Iini能够得到的具有最大吞吐量的Web服务,min {besttp Qni), WSu.TP}为取所有besttp(ini)和WSu中吞吐量的最小值,由此得到当前Web服务WSu能够获得的最高的QoS值。
6.根据权利要求5所述的方法,其特征在于,步骤6约减多余的Web服务包括以下步骤: 对于L1层的Web服务WSu,其输入集合= Iin1, η2, η },由步骤5得到的alln Qni) AestrtQni)和 BesttpQni)可以进行如下操作: 求最小响应时间,对中所有的输入inp从i = I到i =n,查看所有的alIw(Inq), I≤q≤η,如果集合allHQriq)中包含BestrtQni)中的Web服务,则修改bestrt(inq) = bestrt (Ini);由此,Web服务WS1-保留的第1_1层的Web服务集为产生该Web服务WSu输入的具有最小响应时间的Web服务的并集Setrt(WS1)),即Setrt(WS1))={bestrt (Ini) i = I, 2,..., η}; 求最大吞吐量,对Inputwsix中所有的输入iny从i = I到i = η,查看所有的alIw(Inq), 1≤q≤η,如果集合allHQriq)中包含BesttpQni)中的Web服务,则修改besttp(inq) = besttp(Ini);由此Web服务WSu保留的第1_1层的Web服务集为产生该Web服务WS1, x输入的具有最大吞吐量的Web服务的并集settp (WSi,」),即settp (WSi,」)={besttp (ini) | i = 1,2,…1}。
7.根据权利要求6所述的Web服务组合方法,其特征在于,步骤7选取Web服务中:在最后一层输出层选取具有最高QoS值的Web服务,然后选取被选取的Web服务由步骤6保留的Web服务的集合,依次进行下去直到 第一层输入层。
全文摘要
本发明公开了一种基于依赖图约减和QoS(服务质量)保持的Web服务组合方法,包含如下步骤步骤1,预处理;步骤2,生成Web服务依赖图从用户给定的输入到用户要得到的输出,逐层加入Web服务,直到得到用户需要的所有输出;步骤3,添加虚拟Web服务从输入层到输出层逐层遍历Web服务依赖图;步骤4,去除对输出没有贡献的Web服务;步骤5,计算QoS值从输入层到输出层遍历Web服务依赖图,计算每个Web服务的QoS值,每个Web服务保留上一层能够提供最高QoS值的Web服务的集合;步骤6,约减多余的Web服务;步骤7,选取Web服务从输出层到输入层逐层遍历Web服务依赖图,选取能够得到最高QoS值的Web服务组合。
文档编号H04L29/08GK103108044SQ20131004419
公开日2013年5月15日 申请日期2013年2月4日 优先权日2013年2月4日
发明者杨育彬, 夏永敏 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1