BPEL4WS 概述
商业流程执行语言BPEL4WS(Business Process Execution Language For Web Services)是专为整合Web Services而制定的一项规范标准。
作为可执行流程的实现语言,BPEL4WS 的作用是将一组现有的服务整合起来,从而定义一个新的 Web 服务。因此,BPEL4WS 基本上是一种实现这样的整合的语言。与其它任何 Web 服务一样,整合服务的接口也被描述为 WSDL portType 的集合。整合(称为“流程”)指明了服务接口与整合的总体执行的配合情况。
介绍
BPEL4WS 支持两种截然不同的使用情形:
l 可执行工作流—描述业务交互中参与者的实际行为;
l 抽象流程—描述各方参与者对外可见的消息交换。
简单地说,BPEL的作用是将一组现有的服务组合起来,从而定义一个新的Web服务。因此,BPEL基本上是一种实现此种组合的语言。组合服务的接口也被描述为WSDL portType的集合。图 1((见附件))说明了从外部看到的 BPEL4WS 流程的上述情况。
SalesDB |
start |
end |
Router |
Billing |
portType |
WebService |
WebService |
WebService |
WebService (BPEL4WS流程) |
Invoke |
Receive |
Invoke |
Reply |
图1 作为 BPEL4WS 流程实现的 Web 服务的视图
不同于用传统的编程语言来实现 WSDL 服务,每个 portType 的每项操作并不映射成 BPEL4WS 中的一个独立的逻辑块。服务的整个类型(即该服务的 portType 集合)由单个 BPEL4WS 流程实现。这样,与调用接口操作的外部用户相对应的特定“入口点”在 BPEL4WS 描述中指明。
BPEL4WS 流程本身基本上就是一个流程图,类似于用来表达算法的流程图。流程的每一步称为一个活动。存在以下一些基本活动:调用某个 Web 服务上的操作( <invoke> ),等待一条消息来响应由某人从外部进行调用的服务接口的操作( <receive> ),生成输入/输出操作的响应( <reply> ),等待一段时间( <wait> ),把数据从一个地方复制到另一个地方( <assign> ),指明某个地方出错了( <throw> ),终止整个服务实例( <terminate> ),或者什么也不做( <empty> )。 通过使用语言所提供的任何结构化活动,可以将这些原语活动组合成更复杂的算法。
BPEL4WS 允许递归地组合结构化活动,以表达任意复杂的算法,这些算法表示了服务的实现。
至于这些操作如何使用,在后面的文章介绍。要进行联系的话可以利用Eclipse的BPEL插件。可以采取Update的方式进行安装,Update的更新超链接是http://download.eclipse.org/technology/bpel/update-site/
图2(见附件)显示了一个在Eclipse环境下的BPEL例子。
描述: 图1图2
附件: 图1图2.doc (116 K)