语义Web服务WS-BPEL扩展 (BPEL4SWS)

Web服务业务流程执行语言,第2版(WS-BPEL 2.0,简称BPEL),基于伙伴链接(基于WSDL1.1的定义)为不同Web服务之间的交互定义了编配模型。这一语言包含了描述复杂控制流所需要的特性,包括错误处理和补偿行为。

该语言的一大限制就是要求使用伙伴链接来定义目标Web服务,这导致了流程实现和服务之间的点对点通讯。语义Web服务BPEL(BPEL4WS)试图通过使用语义Web服务框架定义通讯信道来克服这一限制。相对于显式地指定活动,它借助对服务请求者和提供者的本体描述,为描述带来了极大的灵活性。该规范:

为BPEL引入一个扩展以支持使用语义Web服务框架而不是WSDL1.1来描述交互。语义Web服务(SWS)可看作是Web服务之上的集成层;它们使用本体作为数据模型并且拥有丰富的概念模型。语义面向服务架构参考本体论(RO4SSOA)致力于将这一概念模型进行标准化。

一个对话是对伙伴链接的一个WSDL-less抽象:对话不是引用一个伙伴链接,而是引用一个目标或是基于RO4SSOA定义的Web服务描述

对于对话的支持是建立在该标准引入的几个新类型之上的:

为了定义伙伴之间的消息交换,BPEL4SWS定义了新的活动类型:表示WSDL-less接收的回复和调用活动;一个WSDL-less活动;和一个WSDL-less。这些活动可使用元素来分组。以此方式,一个BPEL4SWS流程可以参与到与伙伴的长期多消息交互中。对话可使用元素来分组。这种方式可以定义与单一伙伴进行的多个对话。

BPEL4SWS对话被认为适于解决具体问题,比如,预订航班。每一对话里面都有两个角色——一个伙伴提供预订航班的功能,通过RO4SSOA的服务概念来描述;另一个想要使用/消费该功能的伙伴,通过目标的概念来描述。作为结果,BPEL4SWS将区分提供对话(providing conversation)和消费对话(consuming conversation)。对于提供对话,流程可以为伙伴服务提供功能,而在消费对话里,一个BPEL4SWS流程将会使用伙伴服务所提供的功能。提供对话是用服务描述来描述的,而消费对话是用目标描述来标记的,即附加了目标。目标描述被用来发现相应的Web服务。如果没有找到相应的服务,将会抛出noServiceFound错误。

BPEL4SWS里的对话是使用RO4SSOA的概念来描述的:

RO4SSOA于Web服务之上构建了一层。它从技术细节当中抽象出来,为服务请求者和服务提供者提供的服务描述不仅专注于接口,同时还用假设和影响描述了服务的能力……实现RO4SSOA的框架要求一个提供如下功能的中间件组件:
  • 基于目标的服务发现
  • 服务请求者与服务提供者之间的通讯生命周期管理
  • 能接收来自服务请求者和提供者两方面数据的端点
  • 能调用服务请求者和提供者两者的手段

尽管这一规范还处于非常早期的阶段,BPEL4SWS是以“现有情况提供并只用于审阅和评估”,但它提供了服务编配和语义Web服务之间的直接集成路径,反过来它也能支持更加显著的服务集成模式,并能更好的匹配现实业务场景。

查看英文原文: WS-BPEL Extension for Semantic Web Services (BPEL4SWS)

你可能感兴趣的:(语义Web服务WS-BPEL扩展 (BPEL4SWS))