摘 要: Web服务作为一种通过网络集成分布式异构应用的技术,它提供了一种松散耦合的软件开发模式,实现了粗粒度的软件重用。随着Web服务技术的深入应用,Web服务组合的概念应运而生,它通过将功能相对单一的多个Web服务按照一定粒度进行组合,可提供更为强大的服务功能。由于来自异构环境的不同Web服务实体间安全需求、安全能力、可信任程度间的差异,使得对Web服务组合安全性的研究成为了关注的重点。简述了Web服务组合的主要实现方式,指出了Web服务组合实现中面临的主要安全问题,重点分析了目前面向方面(aspect oriented)技术在Web服务安全组合实现中的应用,讨论了其实现上的不足及未来的研究动向。
关键词: Web服务组合;安全;Aspect oriented
中图法分类号: TP393.08 文献标识码: A
Research on Aspect oriented technique application in web service secure composition
Yang Yang, WU Li-Fa, HE Zheng-Qiu
(Institute of Command Automation, PLAUST, Nanjing, Jiangsu 210007)
Abstract: Web service technique integrates distributed and heterogeneous applications over the network by providing a loose-coupling software reuse model in coarse-granularity. With the extensive application of web service technique, the concept of web service composition emerges. Through compositing some web services with relatively simple functions in a specific granularity, it can provide more valuable service function.. On account of the differences of security request、security constraints and reliability among composition partners in heterogeneous environment , it makes the research of Web service composition security a new focus. This paper summarizes the main implement methods for Web service composition and points out its principal security issues. We focus on how to apply the aspect oriented technique to realize web service secure composition. The deficiencies of this technique and the future research directions are also discussed. .
Key words: Web service composition; security; Aspect oriented
1 Web服务组合
为了分散和简化应用逻辑,提高服务可重用性,单个Web服务往往不可能做得非常复杂。因此,通常需要组合多个简单的Web服务以满足对复杂服务的应用需求[1]。为了将松散耦合、分散的各Web服务有机组织成一个可用的系统,Web服务组合的实现方法也成为了研究的热点。
1.1基于工作流的服务组合方法
WSFL(Web Service Flow Language), XLANG, BPEL4WS (Business Process Execution Language for Web Service), BPML(Business process management language)等都是基于工作流来实现服务组合的规范,其中,BPEL4WS 是对WSFL及XLANG整合的产物,也是目前关于Web服务组合事实上的标准。BPEL4WS于2007年更名为WS-BPEL,并推出了2.0版本[2]。
WS-BPEL流程编码定义了Web服务间的逻辑依存关系、服务组合的实现顺序以及服务之间数据交互的方式。一个 BPEL 流程由多个步骤组成,每个步骤称为一个动作(activity)。BPEL 支持基本(basic)动作和结构化(structured)动作。基本动作表示服务组合流程的基本构造,包括以下几种操作:
• <invoke> 调用Web 服务
• <receive> 接收请求
• <reply> 响应
• <assign> 操作数据变量
• <throw> 指示故障和异常
• <wait> 等待一段时间
• <terminate> 终止流程。
除了以上基本动作外,WS-BPEL还定义了结构化动作实现服务组合流程的执行逻辑。WS-BPEL定义的主要结构化动作包括:
• 顺序 (<sequence>),它允许定义一组按顺序调用的活动。
• 流 (<flow>),用于定义一组将并行调用的活动
• Case-switch 构造 (<switch>),实现分支
• While (<while>),实现循环
• 选择 <pick> 在多个可替换选项中作选择。
此外,WS-BPEL还定义了Partner和 PartnerLink等内容用于将各个不同的Web服务纳入服务组合流程,BPEL引擎是Web服务组合的集中控制点。基于工作流的服务组合实现方式技术较为成熟,并已得到了广泛的支持。
1.2 基于语义的组合方法
基于语义的Web服务组合方法,通过为Web服务描述和服务请求描述添加能被计算机系统所理解的语义,使得Web服务组合方案通过推理自动生成。 因此,服务描述对基于语义的Web服务组合十分重要。OWL-S是支持基于语义的服务组合实现中最常见的服务描述语言,它实际上就是基于Web本体语言定义的用来描述Web服务的一个本体。在这个Web服务本体中,处于最上层的是服务类(Service),它包含三个主要的属性:presents、 describedBy和supports,分别用来在服务类与ServiceProfile、 ServiceModel和 ServiceGrounding这三个类之间建立关联。简单来说,
(责任编辑:adminadmin2008)