BPEL(发音为'bipple'或'bee-pell')是Business Process Execution Language的缩写,意为业务过程执行语言,是一种基于XML的,用来描写业务过程的编程语言,被描写的业务过程的每个单一步骤则由Web服务来实现。
2002年IBM、BEA和微软一起开发和引入了BPEL作为描写协调Web服务的语言。这个描写的本身也由Web服务提供,并可以当作Web服务来使用。
通过BPEL可以描写一个参加一个Web服务过程的Web服务的接口,比如信息需要按照怎样的顺序被输入,但是BPEL无法用来描写一个业务过程的调谐。
<script type="text/javascript">
//<![CDATA[
if (window.showTocToggle) { var tocShowText = "显示"; var tocHideText = "隐藏"; showTocToggle(); }
//]]>
</script>
[编辑] 综述
WS-BPEL原名BPEL4WS,是基于WSDL建立的,除WSDL外它还使用XML模式定义、XPath和WS-Addressing等标准。
BPEL将微软的Xlang与IBM的WSFL连接到一起。
BPEL的目的在于大规模编程,值得注意的是BPEL不直接支持人机对话,BPEL所描写的过程仅与Web服务通信,而这些Web服务却可以提供与用户的信息交换,但它们不是用户本身。
BPEL本身提供一个基础,在这个基础上可以发展支撑新的应用的“支柱”。比如在BPEL本身的设置中就已经包括了“抽象业务过程”和“可执行业务过程”。其它的支柱包括BPELJ([1])和BPEL4People([2])。
BPELJ的目标在于将Java语言结合到BPEL中来加速其操作过程,缺点是它与Java息息相关,不能没有Java运行。IBM和SAP公司一起发表了一份名为BPEL4people的白皮书,其目的是将BPEL扩展为能够直接与人交换信息。
BPEL使用块状结构,在定义局部环境时可以定义适用于这个环境范围内的变数(变量)。此外故障处理、补偿处理和事故处理也可以与局部环境相连。
BPEL本身没有定义描写过程模型的图像表达,但是BPMN标准可以用来描写BPEL的模型。
[编辑] 抽象的和可执行的过程
可执行的过程是一个可以在一个计算机上执行的过程。抽象过程是用来描述一个过程的反应的。它被用在一个可执行过程的表面来将这个过程的内部行为掩饰起来不让业务对象看到。
[编辑] 下级过程
BPEL本身没有对下级过程的定义,因此假如一个主过程结束了的话,要结束其下级过程不总是可行。通过专门使用一个起这个作用的Web服务可以达到这个目的,但这个解决方法在BPEL的标准中并没有提到。
IBM和SAP公司发表了一个名为《WS-BPEL 2.0,下级过程延展》的白皮书([3])来讨论将BPEL延展为可以控制下级过程的问题。
[编辑] 发展状况
目前的版本是1.1,在这个版本中其它公司如SAP公司和希柏系统软件有限公司也参加了其发展。2003年4月这个版本被提交结构信息标准化促进组织标准化。
版本2.0正在工作中,其中包括细节改善,但是与版本1.x不相容。2004年9月14日结构信息标准化促进组织将其规定命名为WS-BPEL 2.0。
[编辑] 语言组成部分
基本活动,这些是最基础的,也就是说不基于其它活动的活动:
-
assign——赋值
-
invoke——同步或异步地呼叫一个Web服务
-
receive/reply——提供一个同步或者异步呼叫一个Web服务的接口
-
throw——提示一个错误,一个故障处理可以处理这样的错误。假如一个错误不被处理的话它最终到达最高层后导致过程的终止
-
wait——等候一个时机或者一段时间
-
empty——无所事事,比如在一个错误发生后可以不做反应来消除这个错误
结构性活动,这些活动包括其它活动,可以以此建立复杂的过程:
-
sequence——按照一个序列处理一系列活动
-
while——在一个条件满足的情况下处理一个活动
-
switch——按照不同条件处理不同活动
-
flow——平行或者按照随意顺序处理活动
-
pick——按照外部事件从过程的角度不定值地选择
scopes——使用这个结构可以将一组活动组织在一起作为一个处理单位。通过这个组织方法多个活动可以使用同一个故障处理、事故处理和补偿处理。通过补偿处理BPEL可以处理长时间的处理。
[编辑] BPEL引擎
使用BPEL引擎可以执行BPEL程序。
<!--
NewPP limit report
Preprocessor node count: 583/1000000
Post-expand include size: 846/2048000 bytes
Template argument size: 255/2048000 bytes
Expensive parser function count: 0/500
--><!-- Saved in parser cache with key zhwiki:pcache:idhash:285999-0!1!0!!zh-cn!2!zh-cn and timestamp 20081214080621 -->
分享到:
相关推荐
BPEL介绍BPEL介绍BPEL介绍BPEL介绍BPEL介绍BPEL介绍
bpel完整实例(webservice+bpel) openesb bpel
BPEL中文教程,帮你快速学习BPEL BPEL学习很好的教程
BPEL实例教程代码
BPEL 相关集合的例子 部署环境 ODE
bpel 最新 SOA
这是对BPEL做了一个简单的介绍,关于BPEL的一些常识
其中BPEL4WS就是属于用特定的服务组合定义语言模式,目前已经成为WEB服务组合的主流方法(注意:OWL-S是基于AI规划的WEB服务组合方法) BPEL4WS是专门为整合Web服务而制定的一项规范标准。BPEL4WS 的作用是将一组...
BPEL编程思想详解
安装好BPEL插件的eclipse,适合没有在线安装BPEL插件的同学使用
bpelBPEL活动浅析 BPEL活动(Activity)是指BPEL流程中一条语句或者一个步骤的执行。
《bpel primer》是个非常经典的Bpel介绍资料,很值得参考,推荐给大家!!!
本文档定义了基于Web 服务的指定的业务流程语言。称作Web 服务的业务流程执行语 言(此后在文档中简称WS-BPEL)。WS-BPEL 中的流程通过专门的Web 服务接口实 现功能性的输出和输入。
oracle bpel 流程开发指导 Oracle® BPEL Process Manager Developer’s Guide 10g (10.1.3.1.0)
bpel安装指导 关于Oracle中间件
WS-BPEL 2.0发展历史 BPEL是什么 为什么需要BPEL 语言特点 基本元素介绍
WS-BPEL2.0标准规范正式发布
北航老师的ppt,对bpel的讲解.关于bpel语法及规范
BPEL简单入门教程,适合刚入门的童鞋。
BPEL2.0的几个规范,包括:wsbpel-v2.0,wsbpel-v2.0-Primer,bpel4people-1.1-spec,WS-HumanTask_v1