BPEL 2.0服务契约之理解篇:如何使用WS-BPEL?

日期: 2009-06-29 作者:Yuli Vasilev翻译:杨晓明 来源:TechTarget中国 英文

在本文的第一部分中,我们介绍了服务合成的基本要素编排和编制的区别与关系。在这一部分,我们将介绍如何使用WS-BPEL。   之前提到过,WS-BPEL是一种编制语言,通过定义控制流,来描述Web服务应用的执行逻辑,为伙伴服务提供了一种共享上下文的方法。伙伴服务指的是和WS-BPEL流程交互的服务。

  WS-BPEL是建立在几种规范之上,如SOAP、WSDL和XML Schema。WSDL可能是其中最重要的一个。在基于WS-BPEL的合成服务中,正是WSDL让服务起到作用。WS-BPEL可以定义业务流程,通过WSDL描述,让流程与合作服务进行交互(稍后具体解释)。

  有意思的是,虽然WS-B……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

在本文的第一部分中,我们介绍了服务合成的基本要素编排和编制的区别与关系。在这一部分,我们将介绍如何使用WS-BPEL。

  之前提到过,WS-BPEL是一种编制语言,通过定义控制流,来描述Web服务应用的执行逻辑,为伙伴服务提供了一种共享上下文的方法。伙伴服务指的是和WS-BPEL流程交互的服务。

  WS-BPEL是建立在几种规范之上,如SOAP、WSDL和XML Schema。WSDL可能是其中最重要的一个。在基于WS-BPEL的合成服务中,正是WSDL让服务起到作用。WS-BPEL可以定义业务流程,通过WSDL描述,让流程与合作服务进行交互(稍后具体解释)。

  有意思的是,虽然WS-BPEL是目前最受欢迎的可执行业务流程语言,但并不是对基于Web服务应用的执行逻辑进行定义的唯一方法。还有其他规范,如XLANG、WSFL、XPDL和BPML。每一种都可以替代WS-BPEL。

  通过WS-BPEL,你可以把一组Web服务集成到业务流程流中,从而构建业务流程。WS-BPEL业务流程具体指定了如何在该流程的实例和伙伴服务之间协调交互。图3举的例子就是WS-BPEL业务流程的工作流示意图。

                   

  图3:把WS-BPEL流程封装到图1描述的合成服务之工作流示意图

  图中所描述的WS-BPEL流程把所有的服务都集成到一个点对点流程中,这些服务都是从接受方案开始到最终完成所有步骤所需的服务。在这个具体的例子中,该流程集成了四个Web服务,如图1中所示。在下文我们将介绍WS-BPEL流程如何通过WSDL文档定义的一个伙伴链接来连接Web服务。

  WS-BPEL流程除了具有调用多个服务的能力外,还可能对XML数据进行操作,运行并行处理、条件分支和循环来控制流程流。例如,在上面的流程中,你可以使用一个开关动作,建立两个分支。如果提交方案的是一名新作者,那么这个流程就会调用“Author”服务,把作者的信息保存到数据库。否则,就跳过这一步。

  在接下来的第三部分,我们将用实例具体讲解如何设计WSDL定义。

  关于作者

  Yuli Vasiliev是软件开发者、自由撰稿人和咨询师。目前专注于开源开发、Oracle技术和SOA。他具有十多年的软件开发经验和七年多的技术写作经验。他出版的新书《SOA and WS-BPEL》具体详述了如何使用开源产品PHP和ActiveBPEL引擎创建和部署你自己的面向服务解决方案。 

相关推荐