《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > Web服务组合综述

Web服务组合综述

2009-05-15
作者:熊 伟

    摘 要:综述了Web服务组合的起源、概念和特点,介绍了Web服务组合的目标和方式,提出了服务组合的正确性验证及Web组合的性能分析、评价及其优化。
    关键词:Web服务组合;SOC;服务质量;性能分析

 

    20世纪90年代末,随着分布式对象技术和XML技术的发展,出现了Web服务(Web services)技术,基于Web服务的分布式计算模式正在成为技术发展的趋势。Web服务技术吸收了分布式计算、Grid计算和XML等各种技术的优点,通过采用WSDL,UDDI和SOAP等基于XML的标准和协议,解决了异构分布式计算以及代码与数据重用等问题,具有高度的互操作性、跨平台性和松耦合的特点,引起了世界范围内学术界和工业界的极大兴趣。
    然而单个Web服务提供的功能有限,只有通过对已有的单个Web服务进行组合,其潜力才能真正发挥出来。
1 Web服务组合的起源
    作为信息领域的核心问题,如何实现灵活地集成企业业务经历了从EDI到EAI的发展历程。传统的EDI(Electronic Data Interchange)试图通过VAN(Value Added Networks)连接企业和他们的客户、供应商以及合作伙伴。作为企业业务集成领域的先驱,EDI建立专有系统,实现企业和特定伙伴之间点对点的业务连接。但是,这种传统的EDI是一种费用高昂、灵活性差和耗时的解决方案。
    在20世纪90年代提出了EAI(Enterprise Application Integration)。EAI主要目的是集成企业内部分散的系统[1]。尽管EAI满足了许多企业的一些内部应用集成需求,但是EDI和EAI都没有实现对涵盖整个价值链的业务流程支持,其交互方式也各不相同,相关集成技术亦随着应用的不同而不尽相同。因此,迫切需要一种新的技术以灵活的和标准化的方式实现企业业务集成。
    随着分布式对象技术和XML技术的发展,出现了Web服务技术。Web服务是指那些由URI来标识的应用组件,其接口和绑定信息可以通过XML定义、描述和查找;同时,Web服务通过基于Internet协议的XML消息,可与其他软件、应用直接交互[2]。换言之,Web服务就是可以通过标准的Internet协议访问的应用组件,它不依赖于特定的硬件、操作系统和编程环境。
    由于Web服务提供了一种一致化编程模型,从而在企业内外都可以利用通用的信息基础设施以一种通用的方法进行业务集成。
    面向服务的计算(SOC)的核心理念是在交互的软件成分之间,构建松耦合的协同软件体系。SOC以Web服务作为基本组成成分,并采用了一系列标准化的协议进行交互。面向服务的体系结构解决了如何描述和组织服务的问题,以便服务可以被动态地、自动地发现和使用。而Web服务组合作为以Web服务为基础的信息基础设施和企业业务应用集成之间的桥梁,将服务模块组合起来成为完整的应用。
2  Web服务组合的概念和特点
    近年来,随着Web服务组合研究的展开,不同的研究人员对Web服务组合的概念有着不同的认识。以下几个具有代表性的定义从不同的角度对Web服务组合进行了描述。
    IBM公司的定义[3]:Web服务组合是支持业务流程逻辑的一组Web服务,其本身既可以是最终的应用,也可以是新的Web服务,组合是通过确定不同Web服务的执行顺序和Web服务之间的复杂交互来实现。
    斯坦福大学SWIG小组的定义[4]:Web服务组合就是研究如何通过组合自治的Web服务而获得新的功能的问题,通过组合有助于减少新应用的开发时间和费用。
    HPBPM室的定义[5]:Web服务组合实际上是服务提供者将己有的Web服务作为新的服务的构筑模块重用,并且在总体上实现对各个模块的增值。这种增值体现在新的服务满足特定需求的能力,以及可以提供更高的可用性和QoS保障。
    佐治亚大学计算机系的定义[6]:Web服务组合主要研究用于服务组合的方法论、建模的服务和功能的抽象方式。
    从上述定义可以看出:Web服务的价值在于服务重用,重用的目的是使服务增值。Web服务组合是各个小粒度的Web服务相互之间通信和协作来实现大粒度的服务功能;通过有效地联合各种不同功能的Web服务,组合服务开发者可以解决更为复杂的问题,达到服务增值的目的。
    Web服务组合具有以下一些特点:
    (1)  层次性和可扩展性
    Web服务的组合通过重用并组装已有的Web服务来生成一个更大粒度的服务,使得组合的Web服务具有层次性和可扩展性。
    (2)  动态与自适应性
    Web服务组合是一个动态、自适应的过程,它在标准协议的基础上,根据客户的需求,对封装特定功能的现有服务进行动态地发现、组装和管理。
    (3)  提高了组合与交易过程的自动化程度
    Web服务组合通过动态的语义分析与服务的自动化匹配,减少了不必要的人工干预,易于实现动态电子商务交易过程的自动化。
    (4)  提高软件生产率
    通过重用已有的服务,并自动化地生成新的服务或系统,极大提高了软件的生产效率。
3  Web服务组合的目标和方式
    Web服务组合的根本目的是为了提高软件的生产力。工业界倾向于通过提高软件的可重用程度以及软件的自动化生成水平来解决软件生产率、可靠性以及可维护性等困扰软件发展的根本性问题。
    在软件重用方式上,也从紧耦合的过程调用发展到对象继承等方式,并且向着Web服务组合的松耦合方式发展;在开发方式上,也从最初的基于代码的开发发展到基于组件的开发,并且向着基于软件工厂的自动化软件生成方向迅速发展[7]
    Web服务组合的方式一般可抽象地划分为静态组合与动态组合两种,其主要区别在于选择被组合服务的时机不同,前者是由设计人员在设计时确定,而后者则是在运行时选择。
    根据不同标准和具体需求,人们从不同的角度对Web服务的组合方式进一步分类。参考文献[8]将服务组合分为: (1)主动式/反应式的服务组合(proactive/ reactive composition) ;(2)强制式/选择式的服务组合(mandatory/optional composition) 两大类。其中主动式服务组合是一种离线式或预编译的稳定的组合方式;而反应式服务组合则是一种在线的、动态的和实时的组合方式,它根据子服务的带宽、性能以及执行代价等实时参数对所组合的服务进行优化,并将最终结果提供给用户。强制式服务组合要求所有的子服务必须按照特定的规则正确执行并产生满意的结果,才能保证组合服务的正确执行;而选择式服务组合则无须这些规则,且子服务间的依赖性较弱。
    参考文献[9]在这种服务组合分类的基础上,建立了一种融合上述多种组合方式优点、基于案例库推理的Web服务组合模型。
    参考文献[10]根据服务组合过程中的执行策略,认为服务组合包括:服务请求描述、服务匹配与兼容性检测、服务组合描述以及服务执行监测与协调4个核心要素。并将服务组合分为3种类型:(1)探索式组合(exploration composition);(2)半固定式组合(semifixed composition);(3)固定式组合(fixed composition) 。其中,探索式组合是在客户动态业务需求与协作的组合服务基础上,利用服务代理来比较预期的服务是否与已发布的服务特征相匹配,并根据组合计划,选择满足相应等级、可访问性、成本以及性能判据的服务进行动态组合。固定式组合是将固定的或是预定义的服务进行组合,而且组合服务的结构与子服务间的绑定均通过静态方式来实现,并将向组合服务发送的请求转化成子请求且映射到子服务来执行。半固定式组合则是介于两者之间,它在服务组合时根据组合服务规范或计划来匹配并获取一些候选的服务,在运行时动态地实现服务的绑定。
    无论采用何种分类方式,Web服务组合均可分为计划、定义以及实施三个阶段[11]。其中,计划阶段的主要任务是发现候选的服务,检测这些候选服务组合的可行性与一致性,并最终提供多个服务组合的候选计划;定义阶段是在候选的服务组合计划中选择且生成实际的组合结构,并提供一个服务组合的语义规范;实施阶段则是根据服务组合规范来绑定组合的服务,使这些服务能够协同地工作以及满足相应的任务或功能。
4  Web服务组合的正确性验证
    组合Web服务的正确性是对其进行性能分析和优化的前提。由于基于SOA 的Web服务体系结构提供了一个与技术无关的服务集成方式,因此,对服务组合的验证不再是一个纯技术的问题。如何保持语义信息,并在服务组合与业务流程配置之前对服务的状态变迁、行为以及标识进行验证,以确保服务组合执行结果的正确性,成为服务组合验证面临的主要挑战。现有的研究工作主要集中在两个层次上:操作层和服务层[12]
    在操作层上,要保证实现交互的Web服务之间的接口以及输入与输出消息的匹配;在服务层上,要保证组合服务的执行顺序必须有效,即需要提供服务的可达性、活性以及死锁解除能力的有效性验证。为此,参考文献[13]提供了一个模型化的服务组合验证模式,它的设计规范用UML来建模,采用自行开发的LTSA 模型验证工具、消息序列图MSC(message sequence charts)以及有限状态过程FSP(finitestate process)来标记描述和推理并发的程序,并对一个由BPEL4WS规范描述的服务组合过程进行标记与验证,从而通过提供早期的设计验证,可以较容易地理解组合过程中存在的与期望过程的差别、限制以及不希望的执行路径。参考文献[14]提出了一个基于Petri 网的服务组合模型,并通过对10 种组合元模型的代数与Petri 网的形式化语义分析,建立起了从代数结构模型向Petri 网的关系映射,从而为服务组合过程中的属性验证以及一致性的检测和优化提供了一种形式化的工具。而参考文献[15]则提出了一种服务组合图模型(SCG) ,并将其用于服务自动化组合过程中的高层可视化建模与验证,同时利用SCG语法与元模型对服务组合进行控制,从而降低了由于组合失配以及结构冲突而造成的系统故障。此外,利用一阶逻辑或时序逻辑或代数演算等形式化方式,对服务组合进行模拟和验证,为服务组合的精确语义描述与验证提供了基础。参考文献[16]指出,已有的规范如BPML、BPEL、WSCI和OWL-S只停留在描述层,没有提供任何机制或工具支持自身的正确性校验。指出CPN的属性在校验Web服务组合中的特定含义:(1) Reachability(可达性):校验组合模型是否能达到期望的结果;(2) Boundedness(有界性):控制库所中托肯数>1,指示服务过程错误;消息库所中托肯的数量可以检查是否缓冲溢出;(3) Dead Transtions(死变迁):存在死变迁说明有不能实现的活动;(4) Dead Marking(死标识):由状态空间分析工具报告的死标识数量若超过期望值,说明有设计错误;(5) Liveness(活性):可用于矫正前面的错误;(6) Home:CPN总是可以返回到的一个标识;(7) Fairness(公平性):单个变迁触发的频率,可以用于显示活动执行次数,发现死活动;(8) Conservation(守恒性):系统中的托肯永远不会消失。文献提出采用彩色Petri网校验Web服务组合的方法,通过转换规则可以将服务组合规范转变成CP网,进而利用CP网工具分析其性能,调查例如死锁或活锁的行为特性。
    除了必须保证操作层和服务层的正确性外,组合Web服务还必须保证在业务逻辑层上的正确性。在业务逻辑层上,要保证组合Web服务的执行符合业务规则的要求,执行结果能够满足业务需求。本文从软件工程的角度出发,通过实例研究了采用仿真模拟和数学分析两种途径在业务逻辑层上验证组合Web服务正确性的一般方法。
5  Web服务组合的性能分析、评价及其优化
    除了正确性之外,服务质量也是用户关心的重要问题,服务质量是组合Web服务性能的体现。服务质量不仅包括与时间相关的性能,如响应时间、等待时间等,还包括与时间无关的性能,如可靠性、成本等。相对Web服务组合,其他方面的研究,例如性能分析、评价以及性能优化的研究则较少。随着对Web服务组合研究的深入,已有一些性能分析、评价以及性能优化的研究成果。
    参考文献[17]提出可以基于UML进行组合部件性能分析的方法。文献首先定义了一个简单的语言用于描述部件的组合,然后提出了将其映射到实时(UML RT-UML)的方法,指出可以通过基于UML的方法和算法完成性能分析,而没有具体介绍基于UML的性能分析算法。
    参考文献[18]提出一种成本驱动的基于遗传算法的Web服务组合优化方法,该方法采用UML’s activity diagram描述服务组合,将测试和仿真相结合完成针对时间特性的性能分析。该方法的基本思想是首先在轻负载下根据Web服务和其流程自动生成测试代码和仿真模型,然后仿真重负载下的情况。该方法的优点是:基于测试结果的仿真有助于提高仿真的精度,即测试记录下低负载时的Web处理行为(响应时间和吞吐量),根据这些数据设置仿真参数。该方法实现了一个称为sPAC的性能分析工具。该工具有图形化描述、自动生成测试代码和自动生成仿真模型的特点。
    在以Internet为代表的分布、异构、多自治域的广域网环境下,高度动态的网络环境和多变的用户需求要求Web服务组合跳出静态组合模式,能够及时调整和优化组合Web服务,提供高效率、低成本的动态服务组合。服务质量是组合Web服务的生命。随着Web服务的发展,各行业和领域内服务功能不断细分和深化,用户对服务质量也有更高更多的需求。能够提供保证服务质量的组合Web服务是Web服务组合走向实用的必要条件。本文以分布、异构、多自治域的广域网环境为背景,通过对于现有Web服务组合理论和技术研究的综述,对它在进一步的理论和技术研究方面进行了探讨。目前,Web服务组合理论和技术研究还处于起步阶段,有待广大研究者在理论深度、技术多样性上做更为广泛、深入的研究探讨。
参考文献
[1] Hanson J E, N andi P , umaranK S. Conversation support for business process integration. In : Proc. of the 6th Inte. Enterprise Distributed Object Computing Conf. (EDOC'02), Lausanne, Switzerland, Sept 2002 : 65-74.
[2] Christensen E,Curbera F, Meredith G,et at. Weerawarana, World Wide Web Consortium, Web Service Description Language (WSDL1.1), Available at http: / Iwww.w3.org/TR / wsdl, March 2001.
[3] Leymann F, Roller D, Schmidt M T . Web services and business process management. IBM System Journal, Vo1.41, No.2, 2002, 41(2):198-211.
[4] Ponnekanti S R,  Fox A , SWORD: a developer toolkit for Web service composition. In: Proc. of the 11th Inte. World Wide Web Conf. (WWW2002) [C], Hawaii, USA, May 2002.
[5] Piccinelli G. Service provision and composition in virtual business communities. Technical Report HPL-1999-84, Hewlett-Packard, http://www.hpl.hp. comltechreports/1999/HPL-1999-84.htm1, 1999.
[6] Zhang R Y, WANG J. ONTOS: ontology-driven Web service composition Platform.  http://webster.es.uga.edu/~ruoyan/ONTOS.htm.
[7] Griss M L. Architecting for largescale systematic component reuse [A], In: Proc. of the Inte. Conf. on Soft. Engi.[C], 1999: 615 - 616.
[8] Dynamic service composition: state of the art and research directions [R], Department of Computer Science and Electrical Engineering, University of Maryland, USA, http://w w w.cs.umbc.edu/~dchakr1/ papers/techreportcomposition.ps, 2001.
[9] Web service composition with case based reasoning [A]. In: proc. of the 14th Aust ralian Databased Conference[C], http://crpit.com/confpapers/ RPITV17Limthanmaphon.pdf, 2003.
[10] Web component: a substrate for web service reuse and composition [J]. Lecture Notes in Computer Science, 2002, 2348: 21 - 36.
[11] Web component: a substrate for web service reuse and composition [J]. Lecture Notes in Computer Science, 2002, 2348: 21 - 36.
[12] Zhihong R, Jiannong C , Chan A T S , et al. Composition and automation of grid services[C]. A PPT2003 Lect ure Notes of Computer Science[C], 2003, 2834: 352 - 362.
[13] Foster H , Uchitel S, Magee J . Model2based verification of web service composition [A]. In: proc. of the 18th IEEE Inte. Conf. on Automated Software Engineering[C]. 2003:152 - 161.
[14] Hamadi R , Benatallah B . A Petrinet-based model for web service composition [A]. In: Proc. of the 14th Australasian Database Conf. on Database Technologies [C], 2003: 191 - 200.
[15] Dynamic service composition: state of the art and research directions [R]. Department of Computer Science and Electrical Engineering, University of Maryland, USA, http://w w w.cs.umbc.edu/~dchakr1/ papers/techreportcomposition.ps, 2001.
[16] YanPing Yang, QingPing Tan, Yong Xiao. Verifying Web services composition based on hierarchical colored petri nets. ACM IHIS’05 [C]. Bremen, Germany. November 4. 2005.
[17] Grassi V, Mirandola R. Towards automatic compositional performance analysis of component-based systems. ACM WOSP 04,  Redwood City, CA January 14-16, 2004.
[18] Cao L, Li ML, Cao J. Cost-driven web service selection using genetic algorithm. In: Proc. WINE 2005, Hong Kong, China, dec. 2005.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。