可靠服务组合的协调策略与分析.docx
《可靠服务组合的协调策略与分析.docx》由会员分享,可在线阅读,更多相关《可靠服务组合的协调策略与分析.docx(12页珍藏版)》请在三一办公上搜索。
1、可靠服务组合的协调策略与分析* 本课题得到国家自然科学基金(60473055,60773094)及上海市曙光计划(07SG32)资助范贵生,男,1980年生,博士研究生,主要研究方向为软件工程,面向服务计算,形式化方法,E-mail: gs_fan;刘冬梅,女,1970年生,博士研究生,主要研究方向为软件工程,面向服务计算,形式化方法;陈丽琼,女,1982年生,博士研究生,主要研究方向为分布式计算,嵌入式系统,形式化方法;虞慧群,男,1967年生,博士,教授,博士生导师,IEEE高级会员,ACM会员,. 主要研究方向为软件工程,信息安全,形式化方法范贵生 刘冬梅 陈丽琼 虞慧群(华东理工大学计
2、算机科学与工程系, 上海 200237)摘 要:服务组合是构建复杂Web软件的有效方法,但服务事务状态的多样性使得服务组合的可靠性难以保证。为此,提出一种构造可靠服务组合的协调方法。该方法采用Petri网对工作流建模,以清晰地表达任务及任务之间的逻辑关系。在此基础上,根据服务的事务属性及服务组合的失效处理机制建立服务组合的失效处理模型,并提出一种构造可靠服务组合的协调策略及实施方法。利用Petri网相关理论证明该策略的有效性。旅游服务实例演示了协调技术的应用方法及其可行性。关键词Petri网;Web服务;服务组合;事务;可靠性- 12 -1 引言随着Internet技术应用的迅速发展,基于We
3、b服务的分布式计算模式已经成为软件发展的趋势。Web服务能够统一地封装信息、行为以及业务流程,而无需考虑应用所在的环境。通过Web服务组合来动态生成新的应用系统,以满足实际的需要,已成为Web服务技术不断向前发展的技术动力1。然而,Web服务事务状态的多样性使得服务组合变得更为可靠和有效之前,还有一些问题需要处理。其中关键问题就是如何构建可靠服务组合,即如何根据服务的事务属性来分配可用服务以满足服务消费者的需求。虽然传统的事务技术在数据库系统和分布式系统中得到了广泛的应用,但由于Web服务自身的松耦合性、运行时间长、长事务等特点,使其在系统的可靠性和一致性方面面临新的挑战,如何对服务的事务属性
4、进行形式化分析成为业界广泛讨论并关注的问题2。Petri网作为一种直观的图形建模工具和一种具有丰富数学基础的形式化模型,可以广泛应用于描述和研究并发、异步和分布式特征的系统,并提供了一种可操作语义及定性和定量分析3。最近的研究表明,Petri网适合用来描述服务组合的特性4,17。而可靠服务组合的构建不仅可以满足服务消费者的功能需求,同时也能反应出服务的事务属性及失效处理。Petri网及其相关的分析方法为这些目标实现提供了理论基础。本文要解决的就是如何根据服务消费者的需求来动态地分配可用服务,以构建所需的可靠服务组合。为此,提出一种基于Petri网构建可靠服务组合的方法。基本思路为:首先利用Pe
5、tri网对任务及任务间的关系进行建模,生成相应的工作流模型;其次针对服务的事务属性,构建服务组合的失效处理模型(Service Compositions Failure Processing, SCFP),并分析SCFP模型的动态性质,从而保证所得到模型的正确性;最后给出可靠服务组合的定义,分析可靠服务组合构造的充分必要条件,提出相应的协调策略并证明其有效性,同时给出协调策略的具体实施。本文第2节给出了工作流的Petri网模型;第3节分析服务的事务属性和服务组合的失效处理机制,生成相应的SCFP模型;第4节提出可靠服务组合的协调策略及实施方法;第5节通过具体实例说明可靠服务组合的构建与分析过程
6、;第6节阐述了相关的研究工作;最后是结论和下一步工作。2 工作流的Petri网模型服务组合的功能可以由多个独立运行的子功能构成,本文将每个子功能称为任务。在服务组合流程中,每个任务会有多个可用服务与之对应。本文假设每个服务只能完成一个任务的功能,因此在服务组合中服务和任务是一一对应的。带事务属性的服务组合流程可以从工作流和失效处理两方面进行描述15,工作流描述任务之间的数据通信或同步,具体说明了任务组件之间的关系,直观上可以理解为一系列任务的依赖关系。而服务组合的失效处理则规约了服务运行失败时的处理机制,定义了服务的事务属性和服务的失败处理。两者主要区别是:前者假设服务还没分配,仅仅描述服务组
7、合流程的数据依赖;后者假设服务已经分配,主要考虑服务的事务属性和服务失败处理。本节依据服务消费者提供的功能需求,利用Petri网的基本原理,按接口匹配的原则建立系统的工作流模型。2.1 任务Petri网模型由于系统的功能是由一系列任务组合而成,而任务的组合又可以构成一个新的任务,如此嵌套可以构造出任意复杂的系统。因此,可利用Petri网对任务进行建模,且每个任务在运行过程中需要输入某些参数和输出一定的结果。下面给出任务的形式化定义。定义1:有界Petri网C=(P,T,F)称作任务,其中:(1)P=PSPI是一个有限库所集,PI表示任务的接口,PS表示任务的位置,其中PSPI=F;(2)T是一
8、个有限的变迁集,m0,并且PTF, PT=F;(3)F(PT)(TP)是有向弧集合,F称为流关系;图1 带有接口的任务C1在任务模型中,接口代表该任务输入或输出(参数则映射为库所中的令牌)。本文假设任务只有获得所需参数才能运行开始操作,且运行结束后统一输出参数,具体接口个数可以根据实际情况增减。图1中的任务C1有三个接口:库所Pi1和Pi2存放任务开始操作(tin)所需的参数,而库所Pi3则存放任务结束(tin)的输出结果。Pin, Pe表示任务C1的开始和结束位置。某时刻各库所中令牌的分布状况称为任务的标识,在标识M下,库所p中的令牌数量记为M(p);变迁t在标识M下使能的,记做Mt,否则记
9、做Mt表示顺序:CiCj表示任务Ci和Cj顺序运行,即Cj只有在Ci运行结束后才能开始。(2)算子+表示选择:Ci+Cj表示任务Ci和Cj只有一个可以运行。(3)算子|表示并行:Ci|Cj表示任务Ci和Cj可以同时运行,但要它们都执行结束后整个组合才算执行结束。通过采用上述的算子可以将任务间的关系描述为一个表达式。将在任务Ci运行时刻已经结束的任务称为Ci的前向任务,而Ci运行结束时还未开始的任务称为Ci的后向任务。为了区别任务的操作,在相应的变迁和库所前标注对应的任务。如任务Ci中的开始变迁,表示为Citin。如果变迁是为了描述任务间关系而引入,则不标注。顺序结构允许两个任务Ci和Cj顺序地
10、执行,当一个任务需要用到另外一个任务的输出时就要使用顺序结构来组合。顺序运行CiCj的Petri网模型如图2所示。在Ci和Cj中引入接口Pij使得,Pij=Cite,Pij=Cjtin。Pij的存在使得任务Cj只能在Ci结束之后开始运行。图2 顺序关系的建模为了构造任务间的并行,选择和循环关系,需要分别对任务间的两对基本组件即AND-split和OR-split,AND-join和OR-join进行建模,具体的Petri网模型如图3所示(设任务Ck是Ci1,Ci2, ,Cim的共同前向/后向任务)。AND-split的Petri网模型如图3(a)所示:在Ck中引入接口Pki1, Pki2, ,
11、 Pkim,每个并行的任务Cij中引入接口Pkij。其中Pkij=Ckte, Pkij=Cijtin, j=1, 2, , n。OR-split的Petri网模型如图3(b)所示:在Ck和所有的选择任务中引入接口Pij使得Pij=Ckte, Pij=Ci1tin, Ci2tin, , Cimtin。AND-join的Petri网模型如图3(c)所示:在Ck中引入接口Pki1, Pki2, , Pkim,每个并行的任务Cij中引入接口Pkij。其中Pkij=Cktin, Pkij=Cijte, j=1, 2, n。OR-join的Petri网模型如图3(d)所示:在Ck和所有的选择任务中引入接口
12、Pij使得Pij=Cktin, Pij=Ci1te, Ci2te, Cimte。图3 基本组件的建模下面结合Petri网的合成运算,匹配相应的接口以构造整个系统的工作流模型。定义2:设系统中的任务Ci=(Pi,Ti,Fi),则按照下列步骤构造的五元组S=(C;P,T,F,M0)称为系统的工作流模型: (1)C=C1, C2, , Cn,n为系统中任务的个数;(2)依据任务间关系,合成C1, C2, , Cn的对应接口;(3)引入变迁Tstart和库所Pstart分别描述整个系统的初始位置和开始操作,且:Tstart=Pstart, Tstart=Ci1Pin, Ci2Pin, , CinPin
13、, Pstart=F, Pstart=Tstart;(4)设置初始标识M0(Pstart)=1,其余库所为0。工作流模型描述整个系统所能完成的功能,对工作流模型中每个任务分配具体的服务则构成了服务组合。如果分配过程中考虑服务的事务属性,则称它为带事务属性的服务组合。本文中如无特殊说明,服务组合均指带事务属性的服务组合。下面根据所得的工作流模型构造服务组合的失效处理模型。3 服务组合的失效处理模型3.1 服务的事务属性由于Web服务自身的特点,使得传统的事务处理技术无法直接应用在Web服务事务的处理过程,文献7提出的模型指明了服务事务属性的语义,该模型是基于文献8所考虑的三种不同的类型的事务属性
14、。由此可以延伸Web服务执行任务时主要有下面三种特性:可重复的(r),可补偿的(cp),不可补偿也不可重复的(p)。相应的服务事务属性可以有以下几种情况:cp、p、r、r,cp。根据服务的事务属性,可以建立如图4所示的模型。图4(a)是对可补偿的服务进行建模,PItr表示该服务事务处理的条件。库所SiPItr中有令牌表示服务组合中有其它服务失败,需要根据服务Si的事务属性进行相应的协调。而服务的输入和输出(PIin, PIe)根据实际需要可以进行增减。可补偿服务的运行过程可能处于初始、运行、结束、中断、取消、补偿和失败位置,其中Pin, Pac, Pe,Pab, Pca, Pcp, Pfa称为
15、任务的位置库所。其它的事务属性可以用类似的方法进行描述,具体的模型如图4(b)图4(d)。图4 服务的事务属性模型 通过对图4的分析可知,事务属性不同的服务,运行过程可能到达的位置集和操作也不同。图4中库所和变迁的实际映射如表1所示:表1 事务属性模型中变迁和库所的对照P/T位置/操作P/T位置/操作P/T位置/操作Pin初始位置Pab中断位置Pfa失败位置Pe结束位置Pca取消位置Pcp补偿位置Pac运行位置PIe结束输出PIc失败输出PItr事务输入PIin运行输入tin运行操作tca取消操作trt重试操作tfa失败操作tcp补偿操作tab中断操作te结束操作从表1可知,采用Petri网可
16、以精确地描述服务的事务属性。将初始、运行、结束和失败位置称为服务的运行位置,而中断、取消和补偿位置称为服务的事务位置。3.2 服务组合的失效处理模型由于每个服务具有自身的事务属性。当某个服务运行失败时,如何协调其它服务,保证整个系统的可靠运行,成为服务组合中必须解决的一个问题。本文引入失效处理模块(FCM)来处理该问题。假设同一时刻系统中最多有一个服务失败,其服务失败处理时间可以忽略。由于实际情况中有些任务是不可取消的也不可以补偿的(NCC),这类任务所对应的服务协调操作比较特殊。如其它服务失败的时刻该服务处于运行位置,则协调其到达结束位置。其对应的服务模型如图5所示,其中tce是服务的协调操
17、作。与结束操作te不同的是,该操作虽然也能让服务运行结束,但不输出结果。图5 不可取消任务对应的服务模型不妨设服务Si是完成Ci的功能,则服务组合的失效处理机制有:(1)设任务Ci是Cj的前向任务,若服务Si失败,则中断服务Sj。(2)设任务Ci是Cj的前向任务,若服务Sj失败,分两种情况协调Si:服务Si是可补偿的,则对Si进行补偿;服务Si是不可补偿的,则不做任何操作,服务Sj停留在结束位置。(3)设任务Ci是Cj并行运行,若服务Si失败,分四种情况协调Sj:服务Sj处在运行位置且任务Cj可取消的,则取消Sj的运行;服务Sj处在运行位置且任务Cj不可取消的,则协调Sj的运行使其到达结束位置
18、;服务Sj处在结束位置且Sj是可补偿的,则对Sj运行补偿;服务Sj处在结束位置且Sj是不可补偿的,则不做任何操作,服务Sj停留在结束位置。失效处理模块的功能为:当系统中某个服务运行失败时,基于上述处理机制,依据其它服务的事务属性协调系统结束。下面对FCM进行建模(同理在变迁和库所之前标注对应的服务)。引进库所Pc和变迁tc分别表示系统协调的初始位置和协调操作,使得:(1)Pc=S1tfa, S2tfa, , Sktfa, Pc=tc(2)tc=Pc, tc=S1PItr, S2PItr, , SnPItr条件(1)表明服务组合中若有服务失败则调用FCM模型;条件(2)描述了FCM模块给每个服务
19、都输入事务处理参数。若对工作流模型S中的每个任务都分配一个服务,则构成了具体的服务组合,不妨设S为分配好的服务集。基于此,下面给出服务组合的失效处理模型形式化定义:定义3:工作流模型S,S是所分配的服务集,则按照下列步骤构造的四元组SS=(Ps,Ts,Fs;Ms0)称为服务组合的失效处理模型(Service Compositions Failure Processing, SCFP):(1)根据服务的事务属性建模构造S集合中每个服务的Petri网模型;(2)按照S中的数据流程合成服务的Petri网模型;(3)依据上述FCM模型的建模方式添加相应的变迁和库所。(4)保持S中的初始状态不变。从定义
20、3可以看出SCFP模型是在工作流模型S的基础上对带事务特性的服务组合进行建模。3.3 模型性质本文中系统状态由标识M表示,如M(CiPe )=1表示在状态M下,任务Ci已经运行结束。将任务Ci在状态Ma中不为零的库所记作Mai。下面分析SCFP模型的一些主要性质。性质1:SCFP模型SS中,任一可达状态M下的每个服务都只能处于一个位置。证明:从建模过程SS可知,服务Si的位置库所满足库所不变量:M(SiPin)+M(SiPac)+M(SiPca)+M(SiPfa)+ M(SiPe)+M(SiPab)+M(SiPcp)=1。而服务组合一旦运行,会对每个服务进行初始化(变迁Tstart),即输入令
21、牌到库所SiPin。根据Petri网的运行机制可得:服务只能处于初始、运行、取消、失败、结束、中断和补偿位置中的一个。 证毕同一个SCFP模型由于任务对应的服务失败时刻不同,系统的终止位置也会不同。按照任务间的关系计算出工作流模型S的所有可能终止状态,记为TS(S)。其中TS(S)=METSF(S):(1)正常终止状态ME:i1,nME(CiPe)=1,ME表示系统中所有任务都正常结束的状态。对于一个工作流模型,其正常终止状态唯一。(2)失败终止状态集合TSF(S):MFTSF(S)有$i1,nMF(CiPfa)=1,MF(CiPfa)表示系统中任务Ci失败,经过系统协调到达的终止状态,也称M
22、F(CiPfa)是Ci的失败终止状态。记集合TSF(S,Ci)是任务Ci在TSF(S)中的所有失败终止状态集合。在服务组合中,失效处理机制是系统的核心。因此有必要分析建立的模型是否保证该处理机制。性质2:SCFP模型SS保证了服务组合的失效处理机制。证明:(1)证明SS保证了服务组合的失效处理机制(1)设任务Ci是Cj的前向任务,在状态M下服务Si失败M(Pc)=1Pc=tc, tc=Pc, tc=S1PItr, S2PItr, , SnPItrMtcM, 其中M(SjPItr)=1任务Ci是Cj的前向任务M(SjPin)=1MSjtabMSjtabM, 其中M(SjPab)=1系统中断了服务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可靠 服务 组合 协调 策略 分析
链接地址:https://www.31ppt.com/p-2017693.html