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

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

Info

Publication number
CN103108044B
CN103108044B CN201310044197.4A CN201310044197A CN103108044B CN 103108044 B CN103108044 B CN 103108044B CN 201310044197 A CN201310044197 A CN 201310044197A CN 103108044 B CN103108044 B CN 103108044B
Authority
CN
China
Prior art keywords
web service
layer
input
output
dependency graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310044197.4A
Other languages
English (en)
Other versions
CN103108044A (zh
Inventor
杨育彬
夏永敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201310044197.4A priority Critical patent/CN103108044B/zh
Publication of CN103108044A publication Critical patent/CN103108044A/zh
Application granted granted Critical
Publication of CN103108044B publication Critical patent/CN103108044B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于依赖图约减和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服务组合。

Description

一种基于依赖图约减和QoS保持的Web服务组合方法
技术领域
本发明涉及计算机互联网Web服务组合领域,特别是一种基于依赖图约减和QoS(服务质量)保持的Web服务组合方法。
背景技术
Web服务组合是关于处理自治的服务组件的组装问题,使得从原始的服务组件得到一个新的服务,给出相应的发布服务接口。目前的Web服务体系结构,接口是由WSDL(Web服务描述语言)描述的,通过UDDI(统一描述、发现和集成)发布。但是,支持组合需要更进一步的要求:(1)组合定义(2)确保服务在既保证单个服务的一致性又保证整个组合服务的一致性的情况下被组合。目前没有一种关于Web服务应该怎样组合一致的观点。
Web服务的组合为复杂的Web应用提供了有效的解决方案。从现实应用来看,Web服务的组合可以实现虚拟社区中软硬件的共享;从Web服务本身来看,Web服务的组合实现了组合服务的动态生成,提高了服务组件及基本服务的可重用性和利用率,减少了系统的开销。但是其中存在的诸如服务组合粒度、服务组件或基本服务之间的通信方式及其优化、服务的聚类、服务的社区化分类管理、组合服务的有效性验证及安全等问题,有待进一步的研究和探索。目前,Web服务组合侧重于基于QoS的服务组合方法。但是,在已有的组合方法中,能够获得最高的QoS的服务组合结果中大多存在较多的冗余的Web服务。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于依赖图约减和QoS保持的Web服务组合方法。
发明内容:为了解决上述技术问题,本发明公开了一种能够减少冗余的Web服务的组合方法,包含如下步骤:
步骤1,预处理:对所有的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能够被激活所必需满足的输入集合,记为Input<in1,in2,…,inn>,其中,ini为单一的输入,1≤i≤n,n表示输入的总数量,Output是指执行Web服务WS后能够得到的所有输出集合,记为Output<out1,out2,…,outm>,其中,outj为单一的输出,1≤j≤m,m表示输出的总数量,QoS指WS的非功能属性,包括响应时间RT,吞吐量TP;
对于用户给定的请求<Rin,Rout>,Rin表示用户给定的输入集合,Rout表示用户需要得到的输出集合;从用户给定的输入Rin开始,逐层添加可被调用执行的Web服务,直到得到用户需要的所有的输出Rout,当且仅当该Web服务的所有输入参数都已得到Web服务可被调用执行;
第l层Ll层添加的Web服务满足 即在第l层添加的第x个Web服务WSl,x在第l层之前的第k层没有被添加,并且当该Web服务在第l层可被调用执行时必须添加在第l层;其中是指第l层的第x个Web服务输入集合,Outputp是指第p层中所有Web服务的输出集合的并集,2≤p≤l-1,1<l<C,C为总层数,Lk表示第k层,WSl,x表示Ll层的第x个Web服务。
步骤3添加虚拟Web服务:对于Li的每一个Web服务的每一个输出outi,当outi跨越几层而作为后面Lj(j>i+1)层中Web服务的输入时,在这跨越的每层Lk(i<k<j)中都添加且仅添加一次一个虚拟Web服务,该虚拟Web服务的输入和输出都是outi,并且具有最高的QoS值,比如:响应时间为0,吞吐量无穷大;最后,同样对于用户给定的所有输入Rin在第一层生成一个虚拟Web服务,对于用户给的输出Rout在最后一层生成一个虚拟Web服务。
步骤4去除对输出没贡献的Web服务:假设Web服务依赖图有n层,第一层和最后一层只含有一个由步骤3产生的虚拟Web服务,从后往前,逐层遍历Web服务依赖图,对于Ll层,当 其中,WSl+1x∈Ll+1,x=1,2,...,s,即当第l层的第x个Web服务WSl,x的输出集合与第l+1层的所有Web服务的输入集合的交集为空时,则判定第l层的第x个Web服务WSl,x是对输出没有贡献的,从Ll层中去除。
步骤5计算QoS值(只考虑响应时间和吞吐量):从前往后,对于第l层的第x个Web服务WSl,x∈Ll,l=2,3,...,C,该Web服务的输入集合当第l-1层的第y个Web服务WSl-1,y∈Ll-1,对于输入则把Web服务WSl-1,y加入到alll-1(ini)集合中,其中,alll-1(ini)是指在Ll-1层能够输出ini的Web服务集合,初始为空;为第l-1层的第y个Web服务WSl-1,y的输出集合。
对所有的alll-1(ini)其中i=1,2,...,n集合,输入ini能够得到的最小的响应时间为集合alll-1(ini)中的Web服务执行完所需的最小时间,即bestrt(ini)=min{alll-1(ini)},则从输入开始到执行完Web服务WSl,x所需要的最小时间为得到该Web服务所有输入中最大的响应时间加上该Web服务本身执行的时间,即RT.WSl,x=max{bestrt(ini)}+WSl,x.RT,其中,RT.WSl,x是指从输入开始到执行完Web服务WSl,x所需的最小时间,WSl,x.RT为执行Web服务WSl,x本身需要的时间。同样,对所有的alll-1(ini)其中i=1,2,...,n集合,输入ini能够得到的最大吞吐量besttp(ini)=max{alll-1(ini)},则从输入开始到执行完Web服务WSl,x所能产生的最大吞吐量取为得到该Web服务所有输入和Web服务本身执行所产生的吞吐量中最小的,即TP.WSl,x=min{besttp(ini),WSl,x.TP},其中,TP.WSl,x为RT.WSl,x是指从输入开始到执行完Web服务WSl,x所能提供的最大吞吐量,WSl,x.TP为Web服务WSl,x所能提供的吞吐量。由此得到了到目前为止Web服务WSl,x能够获得的最高的QoS值。
步骤6约减多余的服务:对于Ll层的Web服务WSl,x,其输入集合 由步骤5得出的alll-1(ini)、bestrt(ini)和besttp(ini)可以进行如下操作:求最小响应时间,对中所有的输入ini,从i=1到i=n,查看所有的alll-1(inq),1≤q≤n,如果集合alll-1(inq)中包含bestrt(ini)中的Web服务,则修改bestrt(inq)=bestrt(ini)。这样Web服务WSl,x保留的l-1层的Web服务集为能够产生该Web服务WSl,x输入的具有最小响应时间的Web服务的并集,即setrt(WSl,x)={bestrt(ini)|i=1,2,...,n}。
求最大吞吐量,对中所有的输入ini,从i=1到i=n,查看所有的alll-1(inq),1≤q≤n,如果集合alll-1(inq)中包含besttp(ini)中的Web服务,则修改besttp(inq)=besttp(ini)。这样Web服务WSl,x保留的l-1层的Web服务集为能够产生该Web服务WSl,x输入的具有最大吞吐量的Web服务的并集,即settp(WSi,j)={besttp(ini)|i=1,2,...,l}。
步骤7选取Web服务:在最后一层选取具有最高QoS值的Web服务,然后选取被选取的Web服务由步骤6保留的Web服务的集合,依次进行下去直到第一层。
本发明是专门针对基于QoS的Web服务组合而提出的方法。QoS是一种评价Web服务组合结果的质量的准则,一个好的Web服务组合不仅要求功能需求满足,而且还要具有好的QoS。本发明具有以下特征:1)能够获得最高的QoS(目前只考虑响应时间和吞吐量);2)获得最高的QoS的Web服务组合结果中尽可能的减少冗余的Web服务。
有益效果:本发明能够获得最高的QoS的同时,能够减少Web服务组合结果中冗余的Web服务的数量,Web服务组合结果的执行代价相应的减少,因此具有较高的应用价值。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明Web服务组合流程图。
图2Web服务依赖图。
图3为添加虚拟服务Rin和Rout后的示意图。
图4为去除对输出没贡献的Web服务后的示意图。
图5为计算服务质量QoS后的示意图。
图6为约减多余的Web服务后的示意图。
图7为最终组合结果示意图。
具体实施方式
如图1所示,本发明公开了基于QoS的Web服务组合方法,包含如下步骤:
步骤1,预处理:对所有的Web服务进行预处理,生成一系列Map映射关系,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能够被激活所必需满足的输入集合,记为Input<in1,in2,…,inn>,其中,ini为单一的输入,1≤i≤n,n表示输入的总数量,Output是指执行Web服务WS后能够得到的所有输出集合,记为Output<out1,out2,…,outm>,其中,outj为单一的输出,1≤j≤m,m表示输出的总数量,QoS指WS的非功能属性,包括响应时间RT,吞吐量TP;
对于用户给定的请求<Rin,Rout>,Rin表示用户给定的输入集合,Rout表示用户需要得到的输出集合;从用户给定的输入Rin开始,逐层添加可被调用执行的Web服务,直到得到用户需要的所有的输出Rout,当且仅当该Web服务的所有输入参数都已得到Web服务可被调用执行;
第l层Ll层添加的Web服务满足 即在第l层添加的第x个Web服务WSl,x在第l层之前的第k层没有被添加,并且当该Web服务在第l层可被调用执行时必须添加在第l层;其中是指第l层的第x个Web服务输入集合,Outputp是指第p层中所有Web服务的输出集合的并集,2≤p≤l-1,1<l<C,C为总层数,Lk表示第k层,WSl,x表示Ll层的第x个Web服务。
步骤3添加虚拟Web服务:对于Li的每一个Web服务的每一个输出outi,当outi跨越几层而作为后面Lj(j>i+1)层中Web服务的输入时,在这跨越的每层Lk(i<k<j)中都添加且仅添加一次一个虚拟Web服务,该虚拟Web服务的输入和输出都是outi,并且具有最高的QoS值,比如:响应时间为0,吞吐量无穷大;最后,同样对于用户给定的所有输入Rin在第一层生成一个虚拟Web服务,对于用户给的输出Rout在最后一层生成一个虚拟Web服务。
步骤4去除对输出没贡献的Web服务:假设Web服务依赖图有n层,第一层和最后一层只含有一个由步骤3产生的虚拟Web服务,从后往前,逐层遍历Web服务依赖图,对于Ll层,当 其中,WSl+1,x∈Ll+1,x=1,2,...,s,即当第l层的第x个Web服务WSl,x的输出集合与第l+1层的所有Web服务的输入集合的交集为空时,则判定第l层的第x个Web服务WSl,x是对输出没有贡献的,从Ll层中去除。
步骤5计算QoS值(只考虑响应时间和吞吐量):从前往后,对于第l层的第x个Web服务WSl,x∈Ll,l=2,3,...,C,该Web服务的输入集合当第l-1层的第y个Web服务WSl-1,y∈Ll-1,对于输入则把Web服务WSl-1,y加入到alll-1(ini)集合中,其中,alll-1(ini)是指在Ll-1层能够输出ini的Web服务集合,初始为空;为第l-1层的第y个Web服务WSl-1,y的输出集合。
对所有的alll-1(ini)其中i=1,2,...,n集合,输入ini能够得到的最小的响应时间为集合alll-1(ini)中的Web服务执行完所需的最小时间,即bestrt(ini)=min{alll-1(ini)},则从输入开始到执行完Web服务WSl,x所需要的最小时间为得到该Web服务所有输入中最大的响应时间加上该Web服务本身执行的时间,即RT.WSl,x=max{bestrt(ini)}+WSl,x.RT,其中,RT.WSl,x是指从输入开始到执行完Web服务WSl,x所需的最小时间,WSl,x.RT为执行Web服务WSl,x本身需要的时间。同样,对所有的alll-1(ini)其中i=1,2,...,n集合,输入ini能够得到的最大吞吐量besttp(ini)=max{alll-1(ini)},则从输入开始到执行完Web服务WSl,x所能产生的最大吞吐量取为得到该Web服务所有输入和Web服务本身执行所产生的吞吐量中最小的,即TP.WSl,x=min{besttp(ini),WSl,x.TP},其中,TP.WSl,x为RT.WSl,x是指从输入开始到执行完Web服务WSl,x所能提供的最大吞吐量,WSl,x.TP为Web服务WSl,x所能提供的吞吐量。由此得到了到目前为止Web服务WSl,x能够获得的最高的QoS值。
步骤6约减多余的服务:对于Ll层的Web服务WSl,x,其输入集合 由步骤5得出的alll-1(ini)、bestrt(ini)和besttp(ini)可以进行如下操作:
求最小响应时间,对中所有的输入ini,从i=1到i=n,查看所有的alll-1(inq),1≤q≤n,如果集合alll-1(inq)中包含bestrt(ini)中的Web服务,则修改bestrt(inq)=bestrt(ini)。这样Web服务WSl,x保留的l-1层的Web服务集为能够产生该Web服务WSl,x输入的具有最小响应时间的Web服务的并集,即setrt(WSl,x)={bestrt(ini)|i=1,2,...,n}。
求最大吞吐量,对中所有的输入ini,从i=1到i=n,查看所有的alll-1(inq),1≤q≤n,如果集合alll-1(inq)中包含besttp(ini)中的Web服务,则修改besttp(inq)=besttp(ini)。这样Web服务WSl,x保留的l-1层的Web服务集为能够产生该Web服务WSl,x输入的具有最大吞吐量的Web服务的并集,即settp(WSi,j)={besttp(ini)|i=1,2,...,l}。
步骤7选取Web服务:
在最后一层选取具有最高QoS值的Web服务,然后选取被选取的Web服务由步骤6保留的Web服务的集合,依次进行下去直到第一层。
实施例1
对于用户的一个请求(Rin,Rout),其中Rin={x,y,z},Rout={u,v,w}。根据用户的请求按照Web服务组合方法中的步骤2可以生成图2的服务依赖图。
图2中,圆角矩形A~J代表Web服务,圆角矩形A~J内后面的数字代表QoS属性值(图中以响应时间为例),小圆a~z代表Web服务的输入输出,对于当前Web服务而言前面连接的是输入,后面连接的是输出。
根据Web服务组合方法中的步骤3添加虚拟Web服务,因此,添加图中Rin和Rout,且响应时间都为0,如图3。
根据Web服务组合方法中的步骤4去除对输出没贡献的服务,首先去除Web服务I,J,因为I和J的输出对Rout没有任何贡献,同理,去除I和J后又可以去除H,最终得到如图4。
根据Web服务组合方法中的步骤5计算QoS值(图中为响应时间),以Web服务D为例:
InputD={a,b,c},上一层(即第2层)能够输出a的Web服务集all2(a)={A},同样,all2(b)={A,B},all2(c)={A,C}。则Web服务D每个输入对应的最高的响应时间为bestrt(a)=min{all2(a)}={A},同理,bestrt(b)=min{all2(b)}={B},bestrt(c)=min{all2(c)}={A}。由D.RT=max{bestrt(ini)}+D.RT可得图5。
根据Web服务组合方法中的步骤6约减多余的服务,还是以Web服务D为例:在约减前Web服务D的前驱pre(D)=bestrt(a)∪bestrt(b)∪bestrt(c)={A,B},根据步骤6进行约减,因为对于a选取A,对于b选取B,对于c选取A,但是我们可以看出,当我们选择了A之后,A也能产生b,所以b选择B是多余的,可以除去,这样约减后pre(D)={A}。处理后可得如下简化图6,图6为了看起来直观除去了输入输出,直接是Web服务之间的连接。图6中,E没有和Rout连接是因为由于v只能选择D,而D能够产生u,所有u选择E便是多余的,这样u,v都可由D产生。
根据Web服务组合方法中的步骤7从后往前选取Web服务可得最后执行路径,首先选取那些与输出Rout有连接的服务,逐层向前选取,直到Rin,最后结果如图7。
最后可根据图7执行得到用户想要的输出结果。
实施例2
下面以一个简单的旅游安排为例来说明,当用户希望旅游服务帮忙预定机票和酒店时,用户输入请求(Rin,Rout),其中Rin={出发地点a,出发时间b},Rout={期望入住酒店地点c,期望入住酒店时间d}。对于该请求,主要处理步骤如下:
步骤1:输入请求Rin作为第一层,根据Rin产生第二层的服务,比如有航空公司A和航空公司B,A和B的输入均为{起飞地点a,起飞时间b},输出均为{到达城市地点x,到达时间y};该输出可作为第三层的输入,因此由第二层产生第三层的服务,比如酒店C和酒店D,输入均为{城市x,预定时间y},输出{酒店地址c,入住时间d};由于到第三层已经得到用户希望的Rout,把Rout作为第四层结束。此步骤包含去掉那些不相关的服务,比如酒店地址不符,入住时间不符等等。
步骤2:当用户希望较快的得到安排结果时对服务组合的要求就是响应时间最小,从第一层到最后一层计算响应时间,假如通过计算得出到达城市地点x对应的最小响应时间的服务为A,预定时间y对应的最小响应时间的服务为B,c,d对应的最小响应时间的服务都为C
步骤3:约减多余的服务,很明显的可以看出,当我们选择了A,再选择B就是多余的,因为A也能输出预定时间y,通过约减我们保留A,B中的任意一个,假如保留A,这样最后组合的结果就是A和C,因此达到约减多余服务,提高组合结果质量的效果。
同理,对于获得最大吞吐量的组合过程亦是如此。
本发明提供了一种基于依赖图约减和QoS保持的Web服务组合方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (7)

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能够被激活所必需满足的输入集合,记为Input<in1,in2,...,inn>,其中,ini为单一的输入,1≤i≤n,n表示输入的总数量,Output是指执行Web服务WS后能够得到的所有输出集合,记为Output<out1,out2,...,outm>,其中,outj为单一的输出,1≤j≤m,m表示输出的总数量,QoS指WS的非功能属性,包括响应时间RT,吞吐量TP;
对于用户给定的请求<Rin,Rout>,Rin表示用户给定的输入集合,Rout表示用户需要得到的输出集合;从用户给定的输入集合Rin开始,逐层添加被调用执行的Web服务,直到得到用户需要的所有的输出集合Rout;当且仅当该Web服务的所有输入参数都已得到,则Web服务被调用执行;
第l层Ll层添加的Web服务满足 即在第l层添加的第x个Web服务WSl,x在第l层之前的第k层没有被添加,并且当该Web服务在第l层被调用执行时必须添加在第l层;其中是指第l层的第x个Web服务输入集合,Outputp是指第p层中所有Web服务的输出集合的并集,2≤p≤l-1,1<l<C,C为总层数,Lk表示第k层,WSl,x表示Ll层的第x个Web服务。
3.根据权利要求2所述的方法,其特征在于,步骤3中添加虚拟Web服务包括以下步骤:
对于第l层的每一个Web服务的每一个输出outj,当输出outj跨越一层以上作为后面第h层中Web服务的输入时,h≥l+1,在跨越的每层中都添加一个虚拟Web服务,该虚拟Web服务的输入和输出都设为outj,且具有最高的QoS值,把第一层输入集合Rin和最后一层输出集合Rout也分别作为一个虚拟Web服务。
4.根据权利要求3所述的方法,其特征在于,步骤4去除对输出没贡献的Web服务包括以下步骤:
假设Web服务依赖图有n层,第一层和最后一层只含有一个由步骤3产生的虚拟Web服务,从输出层到输入层逐层遍历Web服务依赖图,对于Ll层,当 其中,WSl+1,x∈Ll+1,x=1,2,...,s,s表示第l+1层的Web服务的总数,即当Ll层的第x个Web服务WSl,x的输出集合与第l+1层的所有Web服务的输入集合的交集为空时,则判定Ll层的第x个Web服务WSl,x对输出没有贡献,从Ll层中去除。
5.根据权利要求4所述的方法,其特征在于,步骤5计算QoS值包括以下步骤:
从输入层到输出层,对于Ll层的第x个Web服务,WSl,x∈Ll,l=2,3,...,C,该Web服务的输入集合当第l-1层的第y个Web服务 WSl-1,y∈Ll-1,如果即输入ini属于集合又且 即输入ini属于集合则把Web服务WSl-1,y加入到alll-1(ini)集合中,其中,alll-1(ini)是指在Ll-1层能够输出ini的Web服务集合,初始为空; 为第l-1层的第y个Web服务WSl-1,y的输出集合;
对所有的alll-1(ini)其中i=1,2,...,n集合,输入ini能够得到的最小的响应时间为Web服务集合alll-1(ini)中的Web服务执行完所需的具有最小时间Web服务bestrt(ini),即bestrt(ini)=min{alll-1(ini)},则从输入开始到执行完Web服务WSl,x所需要的最小时间RT.WSl,x为得到该Web服务所有输入中最大的响应时间max{bestrt(ini)}加上该Web服务本身执行的时间WSl,x.RT,即RT.WSl,x=max{bestrt(ini)}+WSl,x.RT,其中,RT.WSl,x是指从输入开始到执行完Web服务WSl,x所需的最小时间;WSl,x.RT为执行Web服务WSl,x本身需要的时间,bestrt(ini)为Web服务集合alll-1(ini)中的Web服务执行完所需的具有最小时间Web服务,max{bestrt(ini)}是指WSl,x所有输入参数对应的Web服务中最大响应时间;
对所有的alll-1(ini)其中i=1,2,...,n集合,输入ini能够得到的具有最大吞吐量的Web服务besttp(ini)=max{alll-1(ini)},则从输入开始到执行完Web服务WSl,x所能产生的最大吞吐量TP.WSl,x取为得到该Web服务所有输入和Web服务本身执行所产生的吞吐量中最小值,即TP.WSl,x=min{besttp(ini),WSl,x.TP},其中,TP.WSl,x是指从输入开始到执行完Web服务WSl,x所能提供的最大吞吐量,WSl,x.TP为Web服务WSl,x所能提供的吞吐量,besttp(ini)为输入ini能够得到的具有最大吞吐量的Web服务,min{besttp(ini),WSl,x.TP}为取所有besttp(ini)和WSl,x中吞吐量的最小值,由此得到当前Web服务WSl,x能够获得的最高的QoS值。
6.根据权利要求5所述的方法,其特征在于,步骤6约减多余的Web服务包括以 下步骤:
对于Ll层的Web服务WSl,x,其输入集合由步骤5得到的alll-1(ini)、bestrt(ini)和besttp(ini)进行如下操作:
求最小响应时间,对中所有的输入ini,从i=1到i=n,查看所有的alll-1(inq),1≤q≤n,如果集合alll-1(inq)中包含bestrt(ini)中的Web服务,则修改bestrt(inq)=bestrt(ini);由此,Web服务WSl,x保留的第l-1层的Web服务集为产生该Web服务WSl,x输入的具有最小响应时间的Web服务的并集setrt(WSl,x),即setrt(WSl,x)={bestrt(ini)|i=1,2,...,n};
求最大吞吐量,对中所有的输入ini,从i=1到i=n,查看所有的alll-1(inq),1≤q≤n,如果集合alll-1(inq)中包含besttp(ini)中的Web服务,则修改besttp(inq)=besttp(ini);由此Web服务WSl,x保留的第l-1层的Web服务集为产生该Web服务WSl,x输入的具有最大吞吐量的Web服务的并集settp(WSi,j),即settp(WSi,j)={besttp(ini)|i=1,2,...,l}。
7.根据权利要求6所述的方法,其特征在于,步骤7选取Web服务中:在最后一层输出层选取具有最高QoS值的Web服务,然后选取被选取的Web服务由步骤6保留的Web服务的集合,执行步骤7直到第一层输入层。
CN201310044197.4A 2013-02-04 2013-02-04 一种基于依赖图约减和QoS保持的Web服务组合方法 Expired - Fee Related CN103108044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310044197.4A CN103108044B (zh) 2013-02-04 2013-02-04 一种基于依赖图约减和QoS保持的Web服务组合方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310044197.4A CN103108044B (zh) 2013-02-04 2013-02-04 一种基于依赖图约减和QoS保持的Web服务组合方法

Publications (2)

Publication Number Publication Date
CN103108044A CN103108044A (zh) 2013-05-15
CN103108044B true CN103108044B (zh) 2015-08-19

Family

ID=48315611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310044197.4A Expired - Fee Related CN103108044B (zh) 2013-02-04 2013-02-04 一种基于依赖图约减和QoS保持的Web服务组合方法

Country Status (1)

Country Link
CN (1) CN103108044B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104166733B (zh) * 2014-09-03 2017-07-18 南京大学 一种基于依赖图模型的Web服务组合结果修复方法
CN109167833B (zh) * 2018-09-05 2021-04-06 河海大学 一种基于图的可扩展QoS感知组合方法
CN109408046B (zh) * 2018-09-05 2022-01-28 河海大学 一种基于图的最短路Web服务组合方法
CN112765407B (zh) * 2020-12-30 2022-11-11 重庆邮电大学 物联网环境下基于用户偏好的QoS服务组合方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008047351A2 (en) * 2006-10-19 2008-04-24 Checkmarx Ltd. Locating security vulnerabilities in source code
CN101674290A (zh) * 2008-11-26 2010-03-17 天津大学 基于语义web服务关系网络的自动服务组合系统
CN102063288A (zh) * 2011-01-07 2011-05-18 四川九洲电器集团有限责任公司 一种面向dsp芯片的指令调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008047351A2 (en) * 2006-10-19 2008-04-24 Checkmarx Ltd. Locating security vulnerabilities in source code
CN101674290A (zh) * 2008-11-26 2010-03-17 天津大学 基于语义web服务关系网络的自动服务组合系统
CN102063288A (zh) * 2011-01-07 2011-05-18 四川九洲电器集团有限责任公司 一种面向dsp芯片的指令调度方法

Also Published As

Publication number Publication date
CN103108044A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
CN103108044B (zh) 一种基于依赖图约减和QoS保持的Web服务组合方法
CN109167686B (zh) 一种基于多层复杂网络拓扑的布局与展现方法
CN106254240B (zh) 一种数据处理方法和路由层设备以及系统
KR102042403B1 (ko) 요청의 위치 정보를 수정하기 위한 방법들 및 시스템들
CN106663130A (zh) 一种问答方法、系统和机器人
CN109670159A (zh) 视图的创建及管理方法、装置、电子设备和存储介质
CN109379281A (zh) 一种基于时间窗口的流量调度方法及系统
CN103780686A (zh) 一种云组织内自定义申请审批流程的方法及系统
CN107360031B (zh) 一种基于优化开销收益比的虚拟网络映射方法
CN105740085A (zh) 容错处理方法及装置
CN109408046A (zh) 一种基于图的最短路Web服务组合方法
CN1323522C (zh) 一种确定客户边缘路由器与虚拟专用网络间关系的方法
CN104796467B (zh) 一种计算具有QoS关联关系的QoS最优组合服务限定范围的方法
CN103106269B (zh) 一种基于搜索空间约减的Web服务组合方法
CN106558159B (zh) 一种拼车方法和装置
CN104639631A (zh) 基于mas价格协商的sdn资源交易方法
CN108629435A (zh) 车辆预订方法及装置
CN102591714B (zh) 一种流程调用方法、系统及应用服务器
CN104009904A (zh) 面向云平台大数据处理的虚拟网络构建方法及系统
CN104572826B (zh) 路径查询方法及装置
Choo et al. Reliable vehicle selection algorithm with dynamic mobility of vehicle in vehicular cloud system
CN115037565B (zh) 组播数据转发方法、装置、网络设备、存储介质及系统
CN115240443B (zh) 一种双向绿波协调控制方法、装置、电子设备和存储介质
CN110442325A (zh) 基于nodejs渲染池的架构模型以及页面处理方法
EP3738081A1 (en) Processing for multiple input data sets

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150819

Termination date: 20220204