BPEL 2.0服务契约之实战篇:如何创建WS-BPEL流程服务?

 
   | |

导读:文章讲述的是运用大量的实例介绍如何创建WS-BPEL流程服务。面向服务设计都建议流程服务的设计应该从服务契约开始。

关键词:BPEL 2.0 WS-BPEL 流程服务 WSDL

 
正在加载数据...

【TechTarget中国原创】在本文的第三部分,我们用实例介绍了如何为封装WS-BPEL的服务设计WSDL定义。在这一部分,我们将运用更多的实例介绍创建WS-BPEL流程服务。

  通常的面向服务设计都建议流程服务的设计应该从服务契约开始。所以为了提供更多的WSDL和WS-BPEL定义的例子,我们就来遵循这个过程。

【TechTarget中国原创】在本文的第三部分,我们用实例介绍了如何为封装WS-BPEL的服务设计WSDL定义。在这一部分,我们将运用更多的实例介绍创建WS-BPEL流程服务。

  通常的面向服务设计都建议流程服务的设计应该从服务契约开始。所以为了提供更多的WSDL和WS-BPEL定义的例子,我们就来遵循这个过程。

  Hello服务的WSDL定义(抽象描述)

  我们从一个简单的Hello服务的新WSDL文档开始:

  点击查看例6。

  例6中的高亮显示部分表示的是partnerLinkType结构。在该结构中,对WS-BPEL流程和它的使用者(客户端服务)的关系进行了定义。

  注意,必须为所涉及的每一个伙伴服务指定partnerLinkType的结构。不过在这个例子中,WS-BPEL流程只有一个伙伴,即流程的使用者。因此,只需在描述这个WS-BPEL流程服务的WSDL文档中指定一个partnerLinkType结构。

  Hello服务WSDL定义(抽象和具体描述)

  也许你已经注意到,例6中的WSDL定义没有包含部署信息(绑定和地址信息)。事实上客户端服务使用的是这个文档的修改版。基于上面的WSDL代码,WS-BPEL引擎可以动态地生成包含绑定和地址信息的文档。因此,当我们用浏览器请求这个WSDL定义时,我们应该收到下面的输出信息:

  点击查看示例7。

  WS-BPEL引擎隐式地生成了绑定和服务的定义,因此客户端伙伴服务能够使用这里讨论的流程服务。

  Hello WS-BPEL流程定义

  下一步要实施WS-BPEL流程定义。这些是相应hello.bpel文件的内容:

  点击查看例8。

  partnerLinks部分包含与伙伴服务建立关系的partnerLink部分;在执行过程中,这些伙伴服务与业务流程进行交互。在例8中,partnerLinks部分只包含了一个入口,即表示流程服务和客户端服务之间关系的入口。这种情况下,需要使用partnerLink元素中myRole属性,因为WS-BPEL流程服务是客户端服务的服务提供者。

  注意partnerLink元素中partnerLinkType属性指定的名字。这个很重要,它就是之前提到hello.wsdl文档中对应的partnerLinkType部分指定的名字。

  序列结构中定义的活动顺序非常直接明了。第一个是receive(接收)活动,用来处理客户端服务发送过来的请求消息。把receive的createInstance属性设置为“yes”,就是告诉WS-BPEL引擎:当活动接收到请求消息时,创建一个流程实例。

  序列活动中的下一个活动是assign(赋值)。这里实际上是基于输入消息中的信息,生成了输出消息。

  最后,定义了一个reply(回答)活动,它负责向客户端服务发送输出消息。部署完hello流程服务,知道了如何去获得向客户端描述这个服务的WSDL文档,接下来就是测试。为此,你可能需要创建并运行下面这段PHP脚本:

  点击查看例9。

  当执行时,上面的脚本应该会调用之前讨论的hello流程服务,并输出下面的hello消息:

  Hello,Larry!

  在本文的最后一部分,我们将进一步用实例介绍WS-BPEL流程服务如何与伙伴服务产生交互。

  关于作者

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

 
查看全文
 
 
 
 
 

BPEL

 
许多人希望看到建模工具成为企业之间的交流和发展主要手段。UML建模工具厂商Sparx Systems最近发布的版本主要目的是要进一步寻求原因……
 
BPEL(业务流程执行语言),即WS-BPEL(Web服务业务流程执行语言)的简称,是一种可执行的XML语言,可以用来对“云”上Web服务之间的交互加以建模。
 
BPEL(业务流程执行语言),即WS-BPEL(Web服务业务流程执行语言)的简称,是一种可执行的XML语言,可以用来对“云”上Web服务之间的交互加以建模。
 
从旧金山湾区到硅谷的铁路系统最近完成了一次升级,来自二十一世纪的面向服务架构(SOA)满足了建于19世纪铁路系统的业务流程升级需求。
 
Verizon是美国主要的电信运营商之一。目前Verizon无线业务采用了面向服务架构(SOA)应用,明显降低了IT能耗。该应用是通过使用Oracle BPEL流程管理器进行编制……
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录