基于服务格的替代Web服务数据处理方法

文档序号:6469292阅读:145来源:国知局
专利名称:基于服务格的替代Web服务数据处理方法
技术领域
本发明属于Web与数据库技术领域,具体涉及一种新颖高效的基于服务格的替代Web服务数据处理方法。

背景技术
虽然支持Web服务的协议,如XML、WSDL、UDDI、SOAP等,提供了Web服务技术的实现基础,但目前Web服务的关键实现技术还是来自于传统的分布式计算技术,如远程过程调用(RPC)、远程方法接口(RMI)等等。在大多数情况下,服务提供者只提供服务方法的接口,而不是服务的全部内容。这样,为了成功地调用一个Web服务,服务调用者必须全面了解该服务,包括接口及描述等信息。但服务请求者对服务的可用性并不能进行控制,除非他自己是所调用服务的提供者。但是,在当前的Web服务应用技术中没有实现对Web服务可用性的监测。当一个Web服务不可用时,往往会导致服务请求者的程序不可用或发生异常,这是因为还没有技术能够实现在服务集中自动地查找一个相似的Web服务来替换原来的Web服务。
服务的可用性是指衡量一个服务可被成功调用的能力。由于诸多原因,如服务提供者的网络错误、服务无效、恶意攻击等等,都会造成服务不可用,而由于被请求服务的不可用往往会破坏服务请求者的应用程序正常运行。因此,为了保证服务请求者的应用程序不间断运行,服务的可用性在Web服务应用中是一个非常值得重视的问题。相对于服务请求者来说,在Web服务系统中,有必要建立一个有效异常处理机制来判断执行服务过程可能产生的异常中哪些异常应该处理、哪些异常可以忽略。如果这个异常处理机中具有查找替代Web服务并帮助服务请求者选取替代Web服务的能力,对于服务请求者的应用系统的正常运行起重要的保证作用。
目前,上述问题可以从两个方面来解决。第一个方面是异常处理,另一个是当有异常发生时如果检索替代Web服务。对于异常处理问题,在工作流领域中已经有比较深入的研究,一般是在工作流异常处理模型中建立一个规则库来处理发生的异常。如果在规则库中没有与异常相匹配的规则,就通过计算这个异常与以前处理过的异常相似度来获取以往相似异常的处理经验。一般通过活动图的方式对异常处理进行建模,对预计可能发生的异常映射在活动图上进行分类,并且预先规定每类异常的处理方法。这些方法都对服务执行时异常的建模和处理提出了解决方法,但并没有说明如何从Web服务集中检索指定服务的替代服务。
随着Web服务数目的增加,Web服务集越来越大,如何从Web服务集中检索出给定服务的替代Web服务是研究的重点问题。要很好的实现替代Web服务的检索,关键是对服务集的服务采取有效的形式进行组织,要求这种形式可以体现服务之间的替代关键,以方便替代服务的查找。我们利用形式概念分析有效地发现了Web服务之间的关系,并利用服务格很好地表达这种关系,并且实现了满足一般需求的Web服务检索。在本发明中,我们就替代服务检索,这一问题进行重点研究,提出在服务格上进行高效地检索给定Web服务集中某个特定Web服务的替代服务的方法。


发明内容
本发明充分利用现有的Web服务描述信息(如WSDL文档、UDDI元数据),分析Web服务在各个粒度级别上的潜在语义关系,并利用服务格来表达服务间这种关系,从而对服务集进行有效组织。
本发明提出在服务格上进行高效地检索给定Web服务集中某个特定Web服务的替代服务的方法。
首先说明与本发明有关的一些概念和定义 1替代Web服务集 设wsi(oplisti)是服务集

中一个Web服务,rj为wsi的一个服务请求j调用wsi的方法集,即。在

中所有能够满足rop=rj∩oplistj≠φ的Web服务wsj(oplsitj)构成的集合,称为服务集

中wsi(oplisti)关于服务请求j在方法集rop上的替代Web服务集,记为D·Rep(wsi,rj)。
2最优替代Web服务集 设Aws1是服务集

中某个Web服务ws关于服务请求r的替代服务集,如果不存在Aws2,满足Aws2

Aws1,(Aws2也是ws关于r的替代服务集),则称Aws1是ws关于服务请求r的最优替代Web服务集,记为D·OptimalRep(ws)。
3可替代服务结点 给定Web服务集


为单一Web服务。与

对应的服务格为


是服务wsi的一个请求。设WsCj是

的一个结点,如果满足in(WsCj)∩r≠φ,则称WsCj是wsi的一个可替代服务结点。
4完全可替代服务结点 给定Web服务集


为单一Web服务。与

对应的服务格为

WsCj是

的一个结点,如果WsCj满足in(WsCj)=oplisti,称WsCj是服务格

中服务wsi的完全可替代服务结点,记为
5关于服务请求的完全可替代服务结点 设是服务wsi(oplisti)一个服务请求,若服务格

中的某个结点WsCi满足in(WsCi)=rj,则称WsC1是关于服务请求rj的完全可替代服务结点,记为
与服务替代方法相关的性质 性质i若

是根据Web服务集

生成的服务格,



中任意一个Web服务,则

中关于服务wsi的完全可替代服务结点有且仅有一个; 性质ii在服务格

中,某个服务wsi(oplisti)的完全可替代服务结点WsCi是服务wsi的链中外延包含wsi结点中距离底结点最近一个结点; 性质iii在服务格中,每个服务所有替代服务在必定包含经过该服务的完全可替代服务结点的某条路径中。
替代Web服务数据处理方法的形式化描述如下 设

为一个Web服务集,

为某一个Web服务。给定Web服务ws的服务请求集为keq={r1,r2,...,...,rm},其中rj∈Req是服务请求j中调用服务ws的方法集。替代Web服务检索的目的就是,当服务ws失效时,针对每个服务请求rj都要在

找到ws的最优替代Web服务集Aw。
由服务格的相关性质可知,在服务格中一个服务的替代服务必定在经过这个服务的完全可替代服务结点的路径上,因此,在检索替代服务时,不需要遍历整个服务格而只需搜索满足上述条件的路径。
基于是上述基本概念及最优替代服务集的选取策略,给出服务格上替代服务检索算法Retrieving_Alternates的流程图。算法Retrieving_Alternates从服务格的顶结点开始,以深度优先方式进行查找服务ws的最优替代服务集。基于服务格的替代Web服务检索基本步骤如下 步骤1预处理,将所有请求调用的方法组成一个集合oplist后,采用一个整型数组visited_node[]来标识一个结点是否被访问过,初始化替代服务集hrep←φ和最优替代服务集hoptrep←φ; 步骤2查找替代服务集 1)如果一个未被访问过的某个结点WsCi的内涵与集合oplist的交sopi不为空,那么它的外延ex(WsCi)-{ws}就是ws关于方法集sopi的替代服务; 2)如果sopi为空,那么停止搜索这个结点及其子孙结点,保证只搜索经过ws的完全可替代服务结点的路径; 3)如果结点WsCi和孩子结点WsCi+1的内涵与oplist的交sopi+1相等,那么停止搜索WsCi+1及其子孙结点; 4)返回上一层,继续搜索没有被访问的结点,直到检索到关于服务请求r=oplist的完全可替代服务结点。
步骤3查找最优替代服务集 本步骤把可替代服务集分为四类 1)如果某个结点的外延中,除被替代Web服务外,只剩下1个Web服务,那么这个服务是必选服务; 2)如果某个结点的外延中,除被替换Web服务之外的服务个数大于1,那么这些服务就是任选服务; 3)所有任选服务中,出现频率较高的服务为优先选择服务; 4)在路径结点中出现的,所有除1)、2)、3)之外的其它结点外延中的服务均为可舍弃服务。
在步骤2的基础上采用贪心算法每次只选取可支持最多的、且没有被结果集中已有服务所支持方法的替代服务。方法的停止条件是找到最多的被请求方法的最优服务集。算法中的hrep.get(max(lest∩in(WsCi))表示从hrep中找内涵与lest具有最大交集的服务。
分析上述算法,在搜索服务格时,对图中每个结点访问一次,因为如果某个结点被标识成被访问过,就不在对其进行搜索。因此,搜索服务格的过程实质上是对每个结点查找其邻接点(孩子结点)的过程。其复杂度取决于服务请求集r含有的不同方法的数目及所采用的存储结点。如采用二维数组表示邻接矩阵作服务格的存储结构时,查找每个结点的邻近点所需时间为O(n2),其中n为服务格中结点数。
步骤3的复杂度主要与替代Web服务集的服务格中含有被请求方法的结点数、与被请求方法数有关,我们不难分析,该算法的复杂度为O(l*m),其中l为含替代服务的结点数,m被请求的方法数。相对n来说,l和m在小很多,所以算法Retrieving_Alternates的复杂度为O(n2)。
本发明的优越功效在于本发明充分利用Web服务间的潜在语义关系来建立一个基于Web服务形式概念的服务格,在实现了基于格的Web服务的管理和检索的基础之上,提出了动态网络环境下关于Web服务失效问题的解决方法。当某个Web服务失效时,利用该方法可以快速高效地找到失效服务的语义最相关的替代服务,从而保证了使用此服务的其他应用或系统的正常运行。从理论和实验两个方面,都充分证明了该技术方法的可行性,以及具有优越的性能。这是其他技术和方法所不具备的,该技术填补了相关研究和技术领域的空白,并且具有广泛的实际应用价值。在电信IP业务自动开通的项目实践中,得到了极佳的验证。



图1为算法Retrieving_Alternates的流程图; 图2(包括图2a和图2b)与表1相对应的Web服务集的服务格; 图3为服务ws1的关于服务请求的完全替代服务结点。

具体实施例方式 请参阅附图所示,下面结合实际的例子来详细介绍本发明所述的基于服务格的替代Web服务数据处理方法的具体实施过程 1)Web服务及服务格的实例介绍 利用表1给出的Web服务及其方法,根据“基于形式概念分析的Web数据处理方法”中的定义7得到表2所示的Web服务形式背景表。
表1
表1是由满足“基于形式概念分析的Web数据处理方法”中的定义6的不同服务组成的,其中,WS1、WS2、WS3、WS4、WS5、WS6分别代表着服务TempService、TravelService、SkatingService、SportService、PublicService、TrainSerivice。这些服务分别具有不同的功能(或方法),比如,服务TempService可以提供天气预报(getAirForecast)、气温(getTemperature),以及不同地区的信息(getDistrict)和编号(getZip)。另外,方法名后边括号里面的大写字母是方法的缩写形式,比如,AF是方法getAirForecast的缩写。
表2 表2根据“基于形式概念分析的Web数据处理方法”中的定义7,表2是表1对应的Web服务形式背景,第一列对应着不同的服务,其余的列则代表着不同的方法,这就类似于关系数据库中表的形式。其中,每一个服务与每一个方法都对应着一个值(0或1),当某个服务包含某个方法时,则其对应的值为1,否则,值就为0。比如,服务WS1包含四个方法AF、DT、TP、ZP,那么(WS1,AF)、(WS1,DT)、(WS1,TP)、(WS1,ZP)的值都为1,而(WS1,BT)、(WS1,HP)、(WS1,OE)、(WS1,TA)的值都为0。
根据表2所示的Web服务形式背景表得到图2a所示的Web服务集的服务格,为了表达方便,服务格中的每个结点都有一个ID,各结点所对应的Web服务形式概念如图2b所示。
图2a是服务格,图2b是每个结点(形式概念)所对应的外延和内涵。在图2a中,父节点外延包含每个子孙结点的外延,但每个子孙结点的内涵都包含祖先结点的内涵,比如结点WsC1是WsC6的祖父结点,则和另外,虚线表示的是服务格中的最大链。在图2b中,每个形式概念所对应的外延和内涵分别在第二列和第三列,比如,形式概念WcS2的外延和内涵分别是ex(WcS2)={WS1,WS2,WS4},in(WsC2)={AF}。
图3是服务ws1的关于服务请求的完全替代服务格结点。图的虚线部分标出了ws1的所有可能替代服务结点。所有可以替代ws1的服务均出现在经过WsC11(ws1的完全可替代服务结点)的路径中。其余部分与图2含义一致。
2)基于服务格的替代Web服务方法的实例 本例用到的是图2、图3是与表1相对应的Web服务集的服务格。如图3所示,因为in(WsC11)={AF,DT,TP,ZP}和ws1的方法集相同,所以在

中服务ws1(AF,DT,TP,ZP)的完全可替代服务结点是结点WsC11,即

又如,r1={TP}是服务ws1的一个请求,结点WsC3的内涵与r1相等,因此,WsC3是服务ws1关于请求r1的完全可替代服务结点,即
如图3所示,所有替代ws1的服务均出现在经过WsC11(ws1的完全可替代服务结点)的路径中。如路径WsC1→WsC2→WsC6→WsC11→WsC12中,因为in(WsC2)={AF},所以在结点WsC2外延ex(WsC2)={ws1,ws2,ws4}中除ws1之外的服务,都是ws1关于请求r1={AF}的替代服务。而in(WsC6)={AF,DT},ex(WsC6)={ws1,ws4},故ws4是ws1关于请求r2={AF,DT}的替代服务。路径WsC1→WsC4→WsC6→WsC11→WsC12中的结点除WsC6还有WsC4,因为in(WsC4)={DT},ex(WsC4)={ws1,ws4,ws5},因此,ws4和ws5都是ws1关于请求r3={DT}的替代服务,而路径WsC1→WsC3→WsC11→WsC12中的结点WsC3,in(WsC3)={TP},ex(WsC4)={ws1,ws3},故ws3是服务ws1关于r4={TP}的替代服务。图3的虚线部分标出了ws1的所有可能替代服务结点。
对于如何寻找最优替代服务,如图3所示,假设服务ws1的一个服务请求r={AF,DT,TP},通过检索,不难发现,ws1关于服务请求r的替代服务,只可能出现在结点WsC2,WsC3,WsC4,WsC6中。因为ex(WsC3)={ws1,ws2}除ws1外,只有ws2,因此ws2为必选服务。同时,ex(WsC6)={ws1,ws4}中,ws4也是必选服务。而ex(WsC2)={ws1,ws2,ws4}中的ws2和ws4及ex(WsC4)={ws1,ws4,ws5}中ws4和ws5为任选服务,但ws4已为必选服务,所以ws2和ws5为舍弃服务。这样,在图4的服务格中ws1关于服务请求r的最优替代服务集为{ws2,ws4}。
如图2本发明的算法Retrieving_Alternates的流程图所示,步骤是 1、输入参数,WsL是Web服务格,ws是被替代的Web服务,r是所有请求方法集合的集合; 2、初始化,oplist是所有请求方法集合的并集;visited_node是一个辅助数组,用来表示结点是否被访问过,0表示没有访问过,1表示访问过;hrep和hoptrep分别表示服务ws的关于服务请求集合r的替代Web服务集和最优替代Web服务集,初始化为空集; 3、用来表示当前是否还有结点未被访问,用来求出hrep,当存在未被访问的结点时,就执行4;否则执行8; 4、将当前结点标识为已访问过,求出当前结点的Web形式概念WsCi,以及WsCi和孩子结点WsCi+1的内涵分别与oplist的交集,分别是sopi和sopi+1; 5、如果sopi不为空且sopi不等于sopi+1,就将当前结点的外延(除了ws)全部加入的替代服务集hrep中; 6、如果sopi是oplist的真子集,就求出当前结点的孩子结点lnode;否则,就跳到3,继续执行; 7、如果孩子结点了lnode不是服务格的最底点,继续向下一层结点访问,然后跳到3,继续执行;否则直接跳到3,继续执行; 8、当hrep不为空时,就执行9;否则,执行14; 9、10当替代服务集只有一个服务时,就将此服务添加到hoptrep中,并求出其内涵oprep;否则,就直接执行11; 11、求出r和oprep的差集lestop,并从hrep中找内涵与lestop具有最大交集的服务,赋值给WsCi; 12、WsCi和lestop都不为空时,就执行13;否则,就跳到8,继续执行; 13、将当前服务WsCi添加到hoptrep中,并求出其内涵oprep以及r和oprep的差集lestop,并从hrep中找内涵与lestop具有最大交集的服务,赋值给WsCi,然后跳到12,继续执行; 14、输出服务ws的关于服务请求集合r的最优替代Web服务集,并结束。
权利要求
1、基于服务格的替代Web服务数据处理方法,其特征在于该方法步骤台下
步骤1从预先建立好的服务格的顶结点开始,以深度优先方式查找服务wsi的最优替代服务集;
步骤2查找替代服务集;
步骤3在替代服务集的基础上查找最优替代服务集。
2、按权利要求1所述基于服务格的替代Web服务数据处理方法,其特征在于
所述步骤2的查找替代服务集,其步骤是
1)如果一个未被访问过的某个结点WsCi的内涵与集合oplist的交sopi不为空,那么它的外延ex(WsCi)-{ws}就是ws关于方法集sopi的替代服务;
2)如果sopi为空,那么停止搜索这个结点及其子孙结点;
3)如果结点WsCi和孩子结点WsCi+1的内涵与oplist的交sopi+1相等,那么停止搜索WsCi+1及其子孙结点;
4)返回上一层,继续搜索没有被访问的结点,直到检索到关于服务请求r=oplist的完全可替代服务结点。
3、按权利要求1所述基于服务格的替代Web服务数据处理方法,其特征在于
所述步骤3的在替代服务集的基础上查找最优替代服务集,其步骤是
1)如果某个结点的外延中,除被替代Web服务外,只剩下1个Web服务,那么这个服务是必选服务;
2)如果某个结点的外延中,除被替换Web服务之外的服务个数大于1,那么这些服务就是任选服务;
3)所有任选服务中,出现频率较高的服务为优先选择服务;
4)在路径结点中出现的,所有除1)、2)、3)之外的其它结点外延中的服务均为可舍弃服务。
全文摘要
本发明属Web与数据库技术领域,具体涉及一种新颖高效的基于服务格的替代Web服务数据处理方法,此方法充分利用现有的Web服务描述信息(如WSDL文档、UDDI元数据),分析Web服务在各个粒度级别上的潜在语义关系,并利用服务格来表达Web服务在各个粒度级别上的潜在语义关系,从而对服务集进行有效组织,并在有效组织的服务格上进行高效地检索给定Web服务集中某个特定Web服务的替代服务的方法。本发明的优点是当某个Web服务失效时,利用该方法可以快速高效地找到失效服务的语义最相关的替代服务,从而保证了使用此服务的其他应用或系统的正常运行。
文档编号G06F17/30GK101420454SQ20081020055
公开日2009年4月29日 申请日期2008年9月26日 优先权日2008年9月26日
发明者彭敦陆, 周傲英, 王晓玲 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1