第27卷第8期 2010年8月 计算机应用与软件 Computer Applications and Software Vo1.27 No.8 Aug.2010 Web服务组合的容错管理 胡 蓉 刘建勋 (湖南科技大学知识处理与网络化制造湖南省普通高校重点实验室湖南湘潭41 1201) 摘 要 Web服务有广阔的应用前景,得到了工业界和学术界的广泛关注。目前,将细粒度的Web服务按照用户需求或特定的 业务逻辑进行合成,以完成更复杂的功能,是提高服务利用率的有效手段之一。然而,服务组合涉及多个主体和多种平台,难以保证 其可用性和可靠性。针对服务组合的特点,分析了组合过程中可能出现的故障,构建了服务组合容错管理框架,提出了相应的容错 策略、故障检测及容错实施方法,并通过仿真实验验证了该方法的有效性。 关键词 服务组合容错替换重构 FAULT.TOLERANT MANAGEMENT OF WEB SERVICE COMPoSITION Hu Rong Liu Jianxun (Key Lab ofKnowledge Processing and Networked Manufacturing,Hunan£,n ” ofScience and Technology,Xiangtan 411201,Hunan,China) Abstract Web Services have wide application prospects and have been attracted widespread concerns by the industry and academia.At present,many fine-grained Web Services are composed in accordance with user requirements or speciifc business logic in order to accomplish more eomplex functions,which is one of effective means of improving service utilisation rate.However,as the service composition involves a number of subjects and a variety of platforms,it is diiculft to ensure its availability and reliability.In this paper,according to the eharaeteris— tics of service composition,probable faults in composing process are analysed,the fault—tolerant management framework of service composition is constructed,the respective fault—tolerant policy is prospect,and the methods of fault detection and fault—tolerant execution are presented.The efficiency of these approaches is proved through simulation experiments. Keywords Service composition Fault-tolerant Replacement Reconstructio 合提供一定的故障检测和恢复操作功能。文献[6]提出一种容 0引 言 Web服务是松耦合、自描述的软件系统,作为SOA的 优 实现技术,已成为学术界和产业界的新宠。若干Web服务分布 于网络环境中,按照特定的业务逻辑合成,形成更为复杂的应 用。相对于单个Web服务,组合服务的任一环节的失效,将导 错实时调度算法,通过分配容错优先级和支持启动出错任务的 补任务,实现了多级关键任务的容错。 2组合服务故障 Web服务组合运行环境的非可靠、异构、分布性,子服务本 致整个组合服务功能无法完成,性能难以保证。因此,提供组合 服务容错框架,在出错时及时容错,是保证服务组合的质量 (QoS)的重要手段之一。 身的不稳定性,服务组合过程的动态性,都可能导致服务组合的 功能和质量难以得到保证。因此服务组合运行时的容错研究十 分重要。组合服务故障产生的原因,可分为以下几种情形: (1)服务失效 由于Web服务器崩溃、服务更改、移除等 原因造成失效,使服务无法调用。 (2)通信故障 因为网络通信线路、设备损害或网络拥塞、 错误等原因造成服务不可达。 (3)结果误差雪球效应导致服务误差被传递和放大,组 1相关研究 容错作为一种通用的可信性保障机制,目的是使系统在运 行出现错误时能够继续提供标准或降级服务。当前Web服务 的容错研究主要从扩展标准协议人手,如容错SOAP_】 利用 Web服务复制和日志的方法实现Web服务的故障恢复机制;工 合服务结果不能满足功能或性能要求。 服务组合的容错处理涉及到处理多个已执行和未执行的成 分(原子)服务,以及多个成分服务之间的协调关系,不能使用 业界也在致力于制订容错的XML消息通信标准,WS-RM,WS— Reliability Messaging等规范为服务消息可靠传递提供了全局唯 一单一的容错手段,还需考虑流程重构的代价 。因此,本文对 收稿日期:2009—12—12。国家自然科学基金项目(60673119,90 818004);湖南省教育厅项目(09K085)。胡蓉,讲师,主研领域:Web服 标识、消息重发等机制 ;文献[3]则扩展UDDI标准,提出主 动UDDI的方法,建立一种基于代理的UDDI复制机制;此外,还 有一些对Web服务的容错架构及其支持机制的研究,如文献 [4]在消息层提供动态绑定和恢复备份策略;文献[5]为服务组 务,信息系统集成。 第8期 胡蓉等:Web服务组合的容错管理 63 服务组合运行时出现故障的情况进行分析并提出相应的排错方 法,通过Web服务组合容错管理,保证服务组合的质量和可 用性。 Ts一般部署在服务组合代理或者单独的功能服务器上,为 每个组合服务开辟缓存空间,存放各检查点的QoS约定值。故 障检测模块对各检查点的状态进行检测,计算并比较实测QoS 值和约定QoS值,若偏差在上限之内,则组合继续执行;若偏差 3服务组合容错管理 3.1容错管理框架 容错管理框架如图1所示,在Web服务和服务组合应用平 台之下,分为以下三层,其功能如下: (1)策略层通过分析用户在服务请求时提出的QoS需求 超过上限,则根据容错策略库中配置的容错策略,按照偏差小、 较大、大,分别调用重试模块、替换模块和重构模块,透明地完成 服务组合的容错过程,使组合服务能完成基本功能,并且质量接 近用户需求。 4容错管理的实现 或者根据服务组合特征给出服务容错需求,然后确定服务容错 策略,并在容错过程中进行修改和重新选择。 (2)检测层容错策略确定后,在服务组合的各个检查点 监控服务状态,实时备份服务状态和结果,并与预订功能和状态 进行比较,若超出误差范围,则转入容错处理。 (3)实施层当故障出现时,故障检测评估故障对应用的 影响,并将故障报告容错实施模块。根据错误类别和容错策略 启动容错实施层的故障恢复服务,同时重新调整该服务的下一 步容错策略。 窖错管理 实施层 [二! ][二重[] [二亘[][二 [] —■卜 幢测屡 [ 亘][ ] { 宴肘备甜 i f 谩善比较 } ■■卜 肇暗层 lQ。 分析 l l 策略制定 l }策略改变 l j 策略选择 I 图1 Web服务容错管理框架 3.2容错管理者 容错管理者TS(Tolerant Supervisor)是实现服务容错管理的 核心,由策略库(Policy)、故障检测(Fault Detection)模块、重试 (Restart)模块、替换(Replacement)模块、重构(Reconstruction) 模块组成,如图2所示、候选服务库CS(Candidate Sevrice)中存 放了功能相同(输入、输出相同或相容)、质量属性不同的Web 服务,而这些服务都注册于UDDI。 ]+-{: '』L J L L 图2容错管理者结构 4.1容错策略 服务容错管理者监测具体服务组合执行时的服务质量,将 已完成服务的QoS实测值之和与约定值比较,根据偏差不同采 取不同的容错方法。偏差 的计算方法如下: (∑Qreo,( )一∑Q ( )) = ——__— ———一 (1) ∑Q一( ) 其中Q (i)表示第i个子服务实测QoS值,Q一( )表示第i个 子服务QoS约定值。容错策略为:偏差在0一 区段内,偏差值很 小,流程继续执行;在 —JB区段内,偏差值较大,采用重试方 法;在卢一y区段内,偏差值很大,采用替换失效服务的处理方 法,若超过 阶段,采用重构的方法来实施容错 。用公式(2) 表示如下: ,。。 “ 0< < {【 rec。 trHc£ ≥ 、 、 的取值可参照文献[7],将微粒群算法与K均值算法 相结合计算得到。 4.2故障检测 故障检测是容错中非常关键的、必须首先解决的问题。只 有检测到失效,才可能进行定位和恢复。Ts对子服务(WS )的 检测可分为pull和push两种方式。 (1)pull方式由Ts轮询(polling)被检测服务是否失效, 如图3所示。Ts每隔t时问询问一次服务是否存活,若在Ts发 完询问消息后t时间内没有收到WS 的应答,则WS 进入“Sus- pect”状态,重试呼叫,若仍无应答,则该WS 转入Fault状态,需 要启动替换或重构进程;若回答“Yes”,则从“Suspect”状态转为 “Run”状态。 图3 polling示意图 (2)push方式 由被检测服务定时向TS发送心跳(Heart— beat)消息表明自己存活,如图4所示。WS 每隔时间向Ts发送 存活消息,若Ts在t时间段没有感受到WS 的心跳,则WS 进 入“Suspect”状态,若在下一个t时间内仍没有收到心跳消息,则 计算机应用与软件 WS 转入“Fault”状态。 2010血 aI: b一矗Inif ≠0else ‘=1 =1 J 1 其中, 和 是各个QoS指标的权重,且∑ +∑ =1。q 表示正属性,即数值越高表示服务质量越好,如可靠性、声誉等; q 表示负属性属性,即数值越小表示服务质量越好,如响应时 间、代价等。d 和d 分别是两种类型属性的最大最小值偏差。 因为发生故障时,已经消耗了一定的QoS(比如时间和费 图4 Heartbeat不意图 push方式中,只需传送o/le—way消息,通信效率较高,然而, 用),因此,重构需要在剩余的QoS效用范围内完成预定功能。 如果所有Web服务都向Ts报告其存活状态,心跳消息很有可 能突发性地阻塞网络,且失效检测参数(如时间)需分布在各个 WS上,所以,我们采用polling方式,由Ts轮询组合中的子服务 及其相应候选服务,以便在出错时及时替换有效服务。同时,因 为只需询问参与组合的部分服务,避免了额外的通信损失。 4.3容错实施 4.3.1 重试 重试是当某物理服务故障时,间隔一段时间后再次调用该 服务。对于硬件的临时故障或者系统本身有自我调节能力时, 这是一种简单有效的方法。对服务的调用失败、服务未正常结 束等故障,都可以通过重斌机制来进行简单的容错处理。但是, 重试时间和次数要控制在一定范围之内,不能引起QoS违约。 4.3.2替换 文献[9]曾提出用基于服务副本保证单个服务的可用性, 本文也通过将子服务复制到TS的方法来支持容错,为避免多个 Web服务副本在TS中占用过多的系统资源,仅将处于“Sus— pect”状态的服务复制到TS缓存中,并启动到就绪态。若时间 片用完服务仍旧没有响应,即服务发生故障(Fault)时,服务副 本进入“Run”状态,代替原服务执行。因为该服务是原服务的 副本。且处于Ts中,原则上只要 工作正常,都能得到响应。 此外,服务副本在完成功能后还将在Ts缓存中存在一段时问, 直到被淘汰。淘汰更新机制保证了Ts中服务副本的数量和新 颖性,提高了服务替换速度,且不致引起副本过多造成Ts存储 溢出。WS,的服务副本的淘汰率R(i)计算方法如下: 1 Ⅳr 、 ( ) 专 可 (。) 其中, (i)为服务副本最近一次调用时间, (i一1)为该副本 前一次调用时问,则 表示副本的新鲜度; 』 1 J~』 t z—l J (i)为服务副本的使用次数,N(i)为原服务WS 的使用次数, N,i、 矗 表示副本利用率,将利用率和新鲜度相乘,值最小 的服务副本被淘汰。 4.3.3 重构 从UDDI中检索相同功能的服务,加入候选服务数据库cs, 并扩展Web服务的描述项,重新定义Web服务为:WS=<S,F, P,,,O,p>,其中,s表示该服务的状态;F表示服务能完成功能 集;P表示服务中封装的所有操作;,和0分别是服务的输入、 输出数据接口;Q则是服务的QoS效用值。 候选服务WS 的QoS效用值 ( )计算方法如下: ):主 + d :q 一 if d ≠0 else 兰 :1 一般有两种重构方式:全局重构和局部重构。全局重构方案放 弃所有完成工作,重新选择和规划组合路径;局部重构不放弃已 经完成的服务成果,而是从故障点出发,重新组织和规划能达成 目标的子服务。局部重构能缩短服务重组时间,节省组合费用 和资源,因而成为组合重构的首选方案。 我们定义候选服务组合图CSG(Candidate Services Graph), 将局部重构转化为从候选服务组合图中寻找最优路径。在CSG 中,每个候选服务被定义为一个服务结点,并增加虚拟源节点S (用户请求端)和终结点E(用户接收端)。相同功能的Web服 务组成候选服务,在图中被排成一列,候选服务的QoS效用值 设置成有向图中边的权重,不连通的节点之间的边权值设为0, 与E= 点的边权值设为1,如图5所示(为清晰图面,只画了 WS 到其他不连通边及其权值O)。 图5候选服务组合图 设发生故障的子服务为WS Len(i)表示第i列候选服务 数,L表示从i到目标E的候选服务列数,第i条服务重构链 SRL [Ⅳ]为整数数组,其数据项的值表示第i列的候选服务序 号,数据项的顺序则表示服务组合顺序。基于CSG的局部重构 伪码如下: 1)WS ,=Q=rain 2)For 11=i to L 3)For k=1 lo Len(i) 4) If(QoS(WS。k)>Q) 5) Q=QoS(WS。k) 6) Endif 7) SRL [n]=k 8) End ̄r 9)Endfor 依据该算法,若图5所示组合图中原用户服务组合路径为 {WS ,WS23,WS WS ,},当WS:3出现故障,按边权值最大算 法,得到的SRL:[N]={1,1,2},即新的组合路径为{WS 。, WS31,WS42 。 第8期 胡蓉等:Web服务组合的容错管理 65 L m O m m m 的时间较多,但多次发生故障的概率很小,从总体上看,我们的 ∞∞鲫 ∞∞蚰邬曲5仿真实验 为验证组合容错方法的有效性,我们用Matlab7.0编写仿 真程序,对本文提出的容错方法和过程进行模拟。设定某服务 实验仍证明了容错方法的有效性。 6 结论 功能由10个子服务完成,仿真器为服务组合的每个子服务随机 生成数目为1—20不等的候选服务,并在[0,1]范围内随机产 Web服务在电子商务、应用集成、业务流程管理等领域有 广阔的应用前景,得到了工业界和学术界的广泛关注。目前, 生各个候选服务的QoS效用值。 我们认为子服务的故障率满足Poisson分布。随机变量 表示在单位时间内子服务失效的次数,A取值为0.3,表示单位 Web服务研究仍有许多关键问题尚待解决。其中的一个非常 重要的问题是Web服务的可用性问题。容错是增强Web服务 可用性的核心技术。本文针对Web服务的特点,对组合过程中 时间内子服务平均失效率为0.3。根据Poisson概率分布公式: =e-A筹 单位时间内子服务发生一次故障的概率为0.736,发生2次故 障的概率为0.406,发生3次故障的概率为0.199,3次以上概率 很小,我们暂不讨论。 我们将 分别设定为1、2、3,进行3组有容错和无容错的 比较试验(实验结果如图6一图8所示)。定义服务成功率= (服务成功次数/服务请求次数)X(总完成时间/规定时间),每 组实验的过程如下: (1)指定服务完成时间为t ,略大于各个子服务的预定完 成时间之和,k=1。 (2)若k<10,则提交10次服务请求,分别计算在有容错和 无容错情况下,组合服务的成功率,k=k+1。 (3)指定服务完成时间为t。+s,s>0,转(2)。 图6 X=1时有容错和无容错系统的可靠性比较 X=2时有容错和无容错系统的可靠性比较 图8 X=3时有容错和无容错系统的可靠性比较 从图6、图7可以看出,采取容错方法后,相较于没有采取 任何容错措施的系统,组合服务的成功率得到了较大的提高。 图8中有几处(第1、4、6组)无容错系统的成功率略高于有容错 系统的成功率,主要是一次组合中发生3次故障,致使容错耗费 可能发生的故障和错误进行了分析,构建了Web服务组合容错 管理框架。在此框架下,详细描述了当子服务发生故障时依据 相应的容错策略实施容错的过程,提出了组合重构的两种算法, 并通过仿真实验,验证了该容错管理方法的有效性。下一步的 工作,是在保证组合成功率的前提下,提高容错的效率,使QoS 让用户满意。 参考文献 [1]Liang D.Fault—tolerant Web Service[C]//Proceedings of the 10th Asia Paciifc Software Engineering Conference.Chiangmai,Thailand:[S. n.],2003:310—319. [2]刘影,何克清,梁鹏.Web服务中可靠性消息规范的比较研究[J]. 计算机应用研究,2006,23(12):101—103. [3]Jeckle M,Zengler B.Active UDDI—an Extension to UDDI for Dynamic and Fault.Tolerant Service Invocation,Web and Database-Related Workshops on Web,Web—Services and Database Systems,LNCS,2003: 91—99. 『4]Erradi A,Maheshwaft P.QoS aware Middleware for Reliable Web Serv— ices Interactions[C]//Proc.of IEEE Int’l Conf.Off e—Technology,e- Commerce and e—Service.WashingtON D.C.USA:IEEE Computer Soci— ety,2005:634—639. 『5 1 Erie W,Stefan T,Thomas M.A Service.oriented Middleware for Runt- ime Web Services Interoperability『C]//Proe.of the IEEE Int’l Conf. on Web Services.[S.1.]:IEEE Computer Society,2006. [6]曾坤,黎忠文.一种支持多级关键度任务的容错实时调度算法 [J].四川大学学报:自然科学版,2008,45(4):779—784. [7]张立敏,高春鸣,蔡美玲.Web服务组合运行时的容错处理[J].计 算机工程与应用,2008,44(3):143—147. [8]邹方,高春鸣.Web服务组合运行中的容错架构[J].计算机工程, 2008,34(18):89—91. [9]Jorge Salas,Francisco Perez—Sorrosla,etc.WS-replication:a framework f0r highly available web services[C]//Proceedings of the 15th Interna— tional Conference on World Wide Web[S.1.].Edinburgh,Scotland, 2006:23—26. (上接第3页) [10]Kim S,Park S,Won D.Information and Communications Security ICICS 97,Beijing,November,1997[C].Berlin:Springer-Verlag,1997. [1 1]Neuman B C.Proceedings of the 13th International Conference on Dis‘ tributed Computing Systems,Pittsburgh,May 25—28,1993[C].Clif- ford Neuman,1993. [1 2]Niko B,Pfitzmann B.Advances in Cryptology—EUROCRYPT’97,Kon- stanz,May 11-15,1997[C].Berlin:Springer—Verlag,1997. [1 3]Fujisaki E,Okamoto T.Advances in Cryptology—CRYPTO’97,Santa Bar- bara CA,August 17—21,1997[c],Berlin:Springer—Verlag,1997.