您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Web服务组合方法综述(中国科技论文在线)
第3卷第2期2008年2月79中国科技论文在线SCIENCEPAPERONLINEWeb服务组合方法综述邓水光,吴朝晖(浙江大学计算机科学与技术学院,杭州310027)摘要:将分布在Internet中的Web服务进行无缝集成能帮助企业高效的开发分布式应用,实现企业异质异构资源的快速融合,达到企业服务增值的目的。目前服务组合的研究得到了学术界和工业界的广泛关注,提出了众多的服务组合方法。本文根据服务组合目标任务的不同将这些方法分成业务流程驱动的服务组合方法和问题求解的服务组合方法两大类,就当前主要的服务组合方法进行介绍,最后提出服务组合技术发展所面临的问题和今后的趋势。关键词:计算机应用;Web服务;综述;服务组合中图分类号:TP393文献标识码:A文章编号:1673-7180(2008)02-0079-6AsurveyofWebservicecompositionmethodsDENGShuiguang,WUZhaohui(CollegeofComputerScienceandTechnology,ZhejiangUniversity,Hangzhou310027)Abstract:WiththeemergenceoftechnologiesandstandardssupportingthedevelopmentofWebservices,moreandmoreservicesarebecomingavailableontheInternet.Composingexistingservicestoobtainnewfunctionalitybecomesessentialforbothbusiness-to-businessandbusiness-to-consumerapplications.Researchonservicecompositionhasattractedmanyresearchers’attention.Alotofservicecompositionmethodswereproposed.Thispapergivesanoverviewoftheresearchonservicecompositionmethods.Itdividesthosemethodsintotwocategories:business-process-drivenmethodsandtask-solve-orientedmethods;andthenintroducesthecurrentmethodsindetails.Finally,itpointsoutthefuturedirectionofservicecompositiontechnology.Keywords:computerapplication;Webservice;survey;servicecomposition0引言Web服务作为一种崭新的分布式计算模型已经在电子商务、企业应用集成等领域扮演着越来越重要的角色。随着Web服务相关标准的持续完善和支持Web服务的企业级软件平台的不断成熟,越来越多的企业将其业务功能和流程包装成标准的Web服务发布出去,实现便捷快速的寻求合作伙伴、挖掘潜在客户和达到业务增值的目的。如何有效地组合分布于Internet中的各类服务,实现服务之间的无缝集成,形成功能丰富的企业级服务流程以达到企业的商业目标,已经越来越成为Web服务发展过程中基金项目:国家科技支撑计划(2006BAH02A01);国家自然科学基金(60603025,60503018);国家高技术研究发展计划(2006AA01Z171)作者简介:邓水光(1979-),男,博士通信联系人:吴朝晖(1966-),男,教授,wzh@zju.edu.cn第3卷第2期2008年2月80的一个重要步骤。Web服务组合的研究正是在这种背景下被提出来,并吸引了工业界和学术界的广泛关注。国内外学者围绕Web服务组合建模语言、服务组合方法、服务组合执行、服务组合验证等方面进行研究,启动了诸多研究项目,如METEOR-S[1]、SEFL-SERV[2]、e-Flow[3]等。Web服务组合问题已经成为分布式计算、流程管理以及软件工程领域的一个研究热点,研究成果也层出不穷,本文重点就当前主要的服务组合方法进行综述。1Web服务组合定义与方法分类Web服务组合是将若干成员服务组合成大粒度流程服务的过程。由于目前尚未有统一的定义,不同的研究人员从不同的角度对Web服务组合问题进行定义[4~7]。文献[4]从业务流程的角度出发,认为Web服务组合是根据一定的业务规则将服务进行有机连接,使其相互协作从而完成既定的商务目标。文献[5]从应用集成的角度出发,认为Web服务组合是将来自于不同企业的异质异构信息系统和软件进行无缝集成,消除信息孤岛,从而形成互通互联的软件联合体的过程。文献[6]从问题求解的角度出发,认为Web服务组合是为达到用户特定目标,在给定的一些服务中,发现一个能满足这一目标的组合服务。文献[7]从任务规划的角度出发,认为服务组合是将大型任务分解成若干子任务后,分别为每一个子任务寻找完成该子任务的服务的过程。在综合以上观点之后,本文认为Web服务组合是指当单个Web服务无法满足用户需求时,将若干Web服务进行有机合成,以形成大粒度的具有内部流程逻辑的组合服务的过程。当前,工业界和学术界提出了众多的Web服务组合方法,可根据不同的分类标准进行归类。如根据Web服务组合实现方式可以分为服务编制(Orchestration)和服务编排(Choreography)两大类。两者的区别在于:服务编制需要一个总控流程来控制涉及到的Web服务,并协调Web服务不同操作的执行。相比之下,服务编排并不依赖中央的总控协调过程。相反,每个涉及其中的Web服务都知道何时执行自己的操作,和谁交互。此外按照Web服务组合的动态性程度可以分为静态Web服务组合和动态Web服务组合;根据自动化程度可以分为手动Web服务组合、半自动Web服务组合和全自动Web服务组合方法。按照Web服务组合方法的技术或理论基础可以分为基于工作流的服务组合和基于人工智能的服务组合。本文则根据服务组合所解决的问题类型的不同将其分为:业务流程驱动的Web服务组合和用户即时任务求解的Web服务组合。1)业务流程驱动的Web服务组合这类服务组合的目标是实现流程的自动化处理,它是工作流技术与Web服务技术相结合的产物。它以业务流程为基础,通过为业务流程中的每一个环节(步骤)分别选择和绑定Web服务,而形成一个流程式的组合服务。因此这类服务组合的内部结构、服务之间的交互关系和数据流等全都受控于业务流程。其组合过程可以描述为:首先依托建模工具根据业务逻辑手工创建业务流程模型,之后分别为流程中的每一个活动从服务库中选取并绑定能执行该步骤所对应任务的服务,并根据业务流程中的数据流设置服务之间的参数传递和参数映射。有时为了提高业务流程的灵活性,使得服务组合具有较好的容错性和动态性,往往借助服务模板、服务社区等机制实现服务的动态选取和运行时绑定。2)即时任务求解的Web服务组合这类服务组合的目标是解决用户提交的即时任务,它是根据完成该任务的需要,即时从服务库中自动选取若干服务进行自动组装而形成的。这类服务组合以完成用户任务为目标,与第一类服务组合相比,它一般不受业务流程逻辑的约束,服务组合过程自动化程度高,所形成的组合服务是若干服务的一个临时联合体,一旦用户任务求解结束,这个临时联合体也随即解散。因此,即时任务求解的Web服务组合多用于一次性问题求解,如一次服务的联合计算、一次用户出行设计、行程安排等问题。即时任务求解的服务组合过程是建立在服务和用户目标的形式化表达之上,通过任务规划、逻辑推理、搜索匹配等方法来完成。2业务流程驱动的Web服务组合业务流程驱动的Web服务组合主要是以工作流为技术基础。工作流是计算机辅助下的流程自动化或半自动化处理,它通过将流程分解成定义良好的活动、角色、规则和过程来执行和监控,旨在全面整合企业资源,提高流程流转效率[8]。工作流经过多年的发展,形成了一套成熟的理论、模型和方法,并被广泛应用于业务流程管理、业务过程重组、企业应用集成等领域。由于业务流程驱动的Web服务组合是在业务流程的基础上通过服务绑定而形成,因此工作流建模、执行与监控技术为业务流程驱动Web服务组合方法综述第3卷第2期2008年2月81中国科技论文在线SCIENCEPAPERONLINE的Web服务组合提供了较好的技术基础。2.1工作流与服务组合文献[3]和[9]均对工作流与服务组合进行了分析比较,认为工作流与服务组合既有非常相似之处,又有显著的不同点。相似之处在于两者均具有相同的生命周期,即流程建模阶段与流程运行阶段,在建模阶段均需要指定数据流和控制流,在运行阶段都由执行引擎负责解析流程定义并生成实例,通过调用外部应用或者服务进行执行。尽管工作流与服务组合存在很多相似之处,但两者在流程模型、建模过程、执行过程以及对分布式、动态性、安全性方面的要求不一样。表1列举了工作流与服务组合的不同之处。表1工作流与服务组合的比较Table1Thecomparisonbetweenworkflowandservicecomposition工作流服务组合(服务流)活动-应用活动-服务/活动-查询条件固定的应用不固定的服务固定执行者(User/Role/Org)不固定的服务提供商流程建模阶段局域范围(INTRANET)广域范围(INTERNET)-服务查询/匹配/选取多样的数据格式统一的XML数据格式“黑盒”式应用调用“半透明式”服务调用流程运行阶段-服务安全因素基于工作流的服务组合方法在很多服务组合的研究文献、原型系统和成型产品中得到体现[1]。我们根据动态性、灵活性等特点将基于工作流的服务组合的实现方式分为三类:静态服务组合、基于模板的服务组合和逐步演化的服务组合。这三类组合方法在动态性、灵活性、实现的难易上各不相同(如表2所示)。动态性是指服务组合在建模阶段活动与服务之间绑定的固化程度。灵活性则包括两个方面,其一是指服务组合流程建模的灵活性,其二是指服务组合在运行阶段服务绑定的灵活性。由于三种基于工作流的服务组合的实现方式各有所长,因此在很多原型系统和成型产品中都采用混合式的实现方法,以满足不同需求的服务组合。表2三类基于工作流的服务组合方法比较Table2Thecomparisonamongdifferenceservicecompositionmethodsbasedonworkflow方法类别服务绑定动态性灵活性实现难度静态服务组合建模时差差易基于模板的服务组合执行前一般一般难逐步演化的服务组合执行中很好好难2.2静态服务组合方法静态服务组合要求在建模阶段,为每一个活动人为的选取某一具体服务;在服务组合执行阶段,执行引擎根据与活动绑定的具体服务进行参数传递和服务调用。由于静态服务组合在建模阶段已经由设计者做好了服务绑定,所以减少执行引擎在服务组合执行期间为活动绑定服务而带来的开销。然而这也使得服务组合失去了必要的动态性和对异常的应变能力。一旦事先绑定好的服务变得不可用,或者存在更佳的可选服务,这种方法就不能实时地为活动执行提供更好的支持,因此动态性差。此外,对于服务组合设计者而言,要从数量巨大的Web服务中为每一个活动找到一个目标Web服务也比较难,因而灵活性差,所以这种方法适合在少量Web服务之间进行组合。2.3基于模板机制的服务组合方法第3卷第2期2008年2月82静态服务组合相比,基于模板的服务组合在动态性和灵活性上都得到了提高。该方法允许服务组合设计者为某些活动设定服务模板,而无须指定具体的服务[3]。在服务模板中对希望的目标服务进行描述,内容包括目标服务的功能、输入、输出、服务质量等。采用这种方法定制服务组合流程,形成流程定义①之后,在执行之前需要一个中间过程将抽象的服务组合定义转变成静态的服务组合流程。这种方法将服务的选取/匹配/绑定交给中间
本文标题:Web服务组合方法综述(中国科技论文在线)
链接地址:https://www.777doc.com/doc-1580814 .html