近年来,随着Web服务标准的持续完善和支持Web服务的企业级软件平台的不断成熟,特别是SOC(Service-Oriented Computing,面向服务的计算)和SOA概念的蓬勃兴起和应用,越来越多的企业和商业组织参与到软件即服务(Software as a Service,SaaS)的行列中来,纷纷将其业务功能和组件包装成标准的Web服务发布出去,实现快速便捷地寻求合作伙伴、挖掘潜在客户和达到业务增值的目的。然而,目前网络上发布的服务大多是结构简单、功能单一的服务,无法满足企业复杂应用的需要。如何有效地组合分布于网络中的各种功能服务,实现服务之间的无缝集成,形成功能强大的企业级流程服务以完成企业的商业目标,已经成为Web服务发展过程中一个重要的研究领域[2]。通过Web服务组合方法将若干Web服务组合,这个组合服务能否正确执行并成功实现用户既定的目标,是检验Web服务组合方法正确性和可用性的标准。因此,在将组合出来的流程服务正式投入运行之前,对其进行验证是至关重要的。然而,现有的许多Web服务及其组合描述语言都是半形式化的,容易出错且不容易对其进行检测及验证,也没有相应的形式化工具对其给予支持,这就使得Web服务组合的正确性很难得到保证[41]。
Web服务组合的行为兼容性验证的主要目标是验证组合的服务之间是否能够在不违反各自内部业务逻辑的前提下,完成与其他服务的交互[2]。早期的研究工作大多停留在组合服务内部流程逻辑的正确性验证,还有对服务行为等动态属性的进一步认识上。针对上述问题,许多研究者提出了动态兼容性的验证方法,如邓水光[2]给出了接口视图、行为视图以及服务视图的概念来说明服务行为兼容性概念,并提出了行为兼容性的验证方法。Liu[42]应用Pi演算建模Web服务并形式化描述服务间的交互行为,包括服务交互的信息流、服务的角色和目标以及服务交互的信道。然而,该方法并未考虑服务的多角色和多目标情况,对所提出的建模理论的正确性尚未验证。Marwaha等[43]将BPEL映射为Pi演算,借以处理组合服务兼容性变化问题。该方法以静态形式描述了BPEL中的变量及控制流,并未针对服务间的动态交互过程进行描述。也有研究者通过Pi演算描述、验证组合服务之间动态交互过程的正确性,但对于信道通信仅描述两个服务之间的信息交换,未考虑多个服务在信道之间的信息交换[44,45]。胡静等[46,47]使用Pi演算描述Web服务模型和服务类型正确性的判定规则,并针对业务流程运行时服务的可替换性进行验证。该方法细化了服务的相容性判定,但仍未解决多服务兼容性验证问题。以上方法大多仅考虑两个服务之间的兼容性验证,并没有给出多个服务间的行为兼容性验证方法;相比之下,本章方法针对多个Web服务间的行为交互问题,重点考虑服务组合兼容性的自动化验证,在服务自动组合的同时允许一个服务有多个输入、输出,且自动生成服务的进程表达式和用于进程推演的消息序列以支持自动化验证。(www.xing528.com)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。