可靠服务组合的协调策略与分析范贵生刘冬梅陈丽琼虞慧群(华东理工大学计算机科学与工程系,上海200237)摘要:服务组合是构建复杂Web软件的有效方法,但服务事务状态的多样性使得服务组合的可靠性难以保证。为此,提出一种构造可靠服务组合的协调方法。该方法采用Petri网对工作流建模,以清晰地表达任务及任务之间的逻辑关系。在此基础上,根据服务的事务属性及服务组合的失效处理机制建立服务组合的失效处理模型,并提出一种构造可靠服务组合的协调策略及实施方法。利用Petri网相关理论证明该策略的有效性。旅游服务实例演示了协调技术的应用方法及其可行性。关键词Petri网;Web服务;服务组合;事务;可靠性1引言随着Internet技术应用的迅速发展,基于Web服务的分布式计算模式已经成为软件发展的趋势。Web服务能够统一地封装信息、行为以及业务流程,而无需考虑应用所在的环境。通过Web服务组合来动态生成新的应用系统,以满足实际的需要,已成为Web服务技术不断向前发展的技术动力[1]。然而,Web服务事务状态的多样性使得服务组合变得更为可靠和有效之前,还有一些问题需要处理。其中关键问题就是如何构建可靠服务组合,即如何根据服务的事务属性来分配可用服务以满足服务消费者的需求。虽然传统的事务技术在数据库系统和分布式系统中得到了广泛的应用,但由于Web服务自身的松耦合性、运行时间长、长事务等特点,使其在系统的可靠性和一致性方面面临新的挑战,如何对服务的事务属性进行形式化分析成为业界广泛讨论并关注的问题[2]。Petri网作为一种直观的图形建模工具和一种具有丰富数学基础的形式化模型,可以广泛应用于描述和研究并发、异步和分布式特征的系统,并提供了一种可操作语义及定性和定量分析[3]。最近的研究表明,Petri网适合用来描述服务组合的特性[4,17]。而可靠服务组合的构建不仅可以满足服务消费者的功能需求,同时也能反应出服务的事务属性及失效处理。Petri网及其相关的分析方法为这些目标实现提供了理论基础。本文要解决的就是如何根据服务消费者的需求来动态地分配可用服务,以构建所需的可靠服务组合。为此,提出一种基于Petri网构建可靠服务组合的方法。基本思路为:首先利用Petri网对任务及任务间的关系进行建模,生成相应的工作流模型;其次针对服务的事务属性,构建服务组合的失效处理模型(ServiceComposition’sFailureProcessing,SCFP),并分析SCFP模型的动态性质,从而保证所得到模型的正确性;最后给出可靠服务组合的定义,分析可靠服务组合构造的充分必要条件,提出相应的协调策略并证明其有效性,同时给出协调策略的具体实施。本文第2节给出了工作流的Petri网模型;第3节分析服务的事务属性和服务组合的失效处理机制,生成相应的SCFP模型;第4节提出可靠服务组合的协调策略及实施方法;第5节通过具体实例说明可靠服务组合的构建与分析过程;第6节阐述了相关的研究工作;最后是结论和下一步工作。2工作流的Petri网模型服务组合的功能可以由多个独立运行的子功能构成,本文将每个子功能称为任务。在服务组合流程中,每个任务会有多个可用服务与之对应。本文假设每个服务只能完成一个任务的功能,因此在服务组合中服务和任务是一一对应的。带事务属性的服务组合流程可以从工作流和失效处理两方面进行描述[15],工作流描述任务之间的数据通信本课题得到国家自然科学基金(60473055,60773094)及上海市曙光计划(07SG32)资助范贵生,男,1980年生,博士研究生,主要研究方向为软件工程,面向服务计算,形式化方法,E-mail:gs_fan@126.com;刘冬梅,女,1970年生,博士研究生,主要研究方向为软件工程,面向服务计算,形式化方法;陈丽琼,女,1982年生,博士研究生,主要研究方向为分布式计算,嵌入式系统,形式化方法;虞慧群,男,1967年生,博士,教授,博士生导师,IEEE高级会员,ACM会员,.主要研究方向为软件工程,信息安全,形式化方法-1-或同步,具体说明了任务组件之间的关系,直观上可以理解为一系列任务的依赖关系。而服务组合的失效处理则规约了服务运行失败时的处理机制,定义了服务的事务属性和服务的失败处理。两者主要区别是:...