首页 . 理学 . 计算机科学技术 . 软件工程 . 软件服务工程 . 服务业务分析 . 服务业务过程

业务流程执行语言

/business process execution language; BPEL/
条目作者苏森李兵
条目作者苏森

苏森

李兵

李兵

最后更新 2024-12-03
浏览 141
最后更新 2024-12-03
浏览 141
0 意见反馈 条目引用

一种基于XML的,用来描写业务流程的编程语言,被描写的业务流程的每个单一步骤则由Web服务来实现。

英文名称
business process execution language; BPEL
所属学科
计算机科学技术

业务流程执行语言的目标是要实现业务流程定义格式的标准化,使得企业之间可以通过Web服务无缝的进行交互。业务流程执行语言支持两种不同的业务流程描述方法:编制(orchestration)。即可编写可执行的服务组合过程,可执行流程允许指定业务流程的准确细节。它们遵循编制范例,并可由编制引擎执行。编排(choreography)。可用于定义服务协作协议,抽象业务协议允许只指定双方之间的公共消息交换。它们不包含流程的内部细节并且无法执行。它们遵循编排范例。

通常情况下,BPEL业务流程接收请求,为了满足请求,该流程调用相关的Web服务,然后响应原始调用方。由于BPEL流程与其他Web服务通信,因此它在很大程度上依赖于所调用的Web服务的网络服务描述语言(web services description language; WSDL)描述。BPEL描述的组合服务也可作为一个Web服务发布,因此也可以有其对应的WSDL文档,并像其他Web服务一样被调用。

BPEL流程模型位于由WSDL所定义的服务模型之上。位于BPEL流程模型核心的是由WSDL描述的服务间的对等交互概念;流程及其伙伴都被建模成WSDL服务。业务流程定义了怎样协调流程实例与它的伙伴间的交互。在这个意义上,一个BPEL流程定义提供或使用一个或多个WSDL服务,还通过Web服务接口提供流程实例相对于它的伙伴和资源的行为和交互的描述。BPEL业务流程的定义也遵循WSDL的分离模型,即把业务流程使用的抽象消息内容与部署信息(消息和portType与绑定和地址信息)分开。具体地说,BPEL流程用抽象WSDL接口(portType和操作)来表示所有的伙伴以及与这些伙伴的交互;它并不引用流程实例使用的实际服务。BPEL流程是可重用的定义,可以不同的方式在不同的情况下被部署同时在它们之间保持一致的应用程序级别的行为。因此,BPEL流程模型可看成是在WSDL定义的服务模型之上的一层,BPEL流程定义和WSDL文件之间的映射关系(见图)。

BPEL流程定义和WSDL文件之间的映射关系BPEL流程定义和WSDL文件之间的映射关系

在BPEL中,一个业务流程定义了一个流程实例和它的伙伴之间的交互。为了定义一个业务流程,BPEL引入了一些新的XML元素,例如:

Partners——业务事务中的参与者(actors)。

Containers——组成业务流程中的某一状态的一组消息。

Operations——所需Web服务的类型。

Port types——运行(operations)所要求的相关Web服务的关系。

BPEL支持三类活动元素:基本活动元素(basic activities)、结构化活动元素(structured activities)以及其他活动元素(other activities)。基本活动元素是指由业务流程的一个基本的步骤,活动内不会嵌套其他活动;而结构化活动元素从外部看是一个步骤而从内部看却有若干个步骤。其他与结构化活动配合使用的元素包括else if,else,catch,compensateHandler,faulthandler,everntHandlers,terminationHandler等。其中,基本活动元素包括:

Invoke——允许业务流程在某一个Web服务提供的portType上调用单向的(one-way)或请求/响应(request/respose)操作。

Receive——允许业务流程停下来等待消息到来。

Reply——允许业务流程对收到的消息发送一个回复消息。

Wait——通知流程等待一段时间。

Assign——把数据从一处复制到另一处。

Throw——表明发生了某个错误。

Terminate——终止整个编排实例。

结构化活动元素包括:

Sequence——定义一个有序的任务序列

Switch——根据条件选择某一分支

Pick——停下并等待某一适当消息的到来,或者等到超时继续前进。只要多个触发器中的一个发生,就执行相应的活动,任务便结束了。

While——定义循环执行,直至满足某一个条件的一组任务。

Flow——表明一组应并行执行的步骤(可以通过建立连接来定义一个特定流程的执行序列)

一般来说,BPEL核心组件包括三个部分:BPEL设计工具(BPEL designer)、业务流模板(process flow template),以及BPEL引擎(BPEL engine)。常见的BPEL引擎和设计工具有Active BPEL Designer、BPWS4J、Oracle BPEL Process Manager等。

  • 徐晓飞,王忠杰.服务工程与方法论.北京:清华大学出版社,2011.
  • 邓娜,程渤,陈俊亮.业务流程执行语言中流程模板的生成.北京邮电大学学报,2011(6),42-46.
  • 孙红俊,范玉顺.业务过程执行语言流程语义标注方法研究.计算机集成制造系统,2009(3),609-617.

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!