BPEL 2.0服务契约之实战篇:如何为封装WS-BPEL的服务设计WSDL定义?

 
   | |

导读:文章用实例介绍了如何为封装WS-BPEL的服务设计WSDL定义。如果WS-BPEL流程作为一个服务的形式存在,应该有相应的WSDL文档,客户服务才能调用这个流程。

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

 
正在加载数据...

【TechTarget中国原创】在本文的第二部分中,我们介绍了如何使用WS-BPEL。在这一部分,我们将着重用实例介绍如何为封装WS-BPEL的服务设计WSDL定义。

  鉴于WS-BPEL编制与WSDL定义之间的联系,这样就可以把编制本身当成一个服务,这个服务可以被另一个服务调用,或者作为另一个编制或编排的一部分。

【TechTarget中国原创】在本文的第二部分中,我们介绍了如何使用WS-BPEL。在这一部分,我们将着重用实例介绍如何为封装WS-BPEL的服务设计WSDL定义。

  鉴于WS-BPEL编制与WSDL定义之间的联系,这样就可以把编制本身当成一个服务,这个服务可以被另一个服务调用,或者作为另一个编制或编排的一部分。

  如果WS-BPEL流程作为一个服务的形式存在的话,那么应该有相应的WSDL文档,客户服务才能调用这个流程。例如,图3中描述的WS-BPEL流程可能与下面的WSDL定义相关联。

  点击查看例1。

  你会看到,该WSDL文档没有包含binding或service元素。事实上,WS-BPEL流程服务的WSDL文档只包含了服务的抽象定义和partnerLinkType部分,该partnerLinkType部分代表流程服务与其客户端服务之间的交互。在这个具体的例子中,WSDL定义只包含了一个partnerLinkType部分,支持客户端使用的一个操作来初始化流程。

  partnerLinkType部分最多定义两种角色,每一种角色结果都和之前提及的WSDL文档中定义的portType有关。WS-BPEL使用伙伴链接机制对WS-BPEL流程和参与者之间的关系进行定义。在本章的稍后部分你会看到,WS-BPEL流程的定义包含了partnerLink元素,用来指定WS-BPEL流程和客户端,及合作伙伴者之间的交互。WS-BPEL流程定义文档中的每个partnerLink都和对应的WSDL文档中的partnerLinkType相关联。用示意图表示的话,如图4所示。

  一旦你为流程服务创建了WSDL定义,那么对于流程执行时将被调用的伙伴服务,就要确保修改这些服务的WSDL文档。为了能够让一个服务成为WS-BPEL编制的一部分,你可能想在对应的WSDL文档中增加一个partnerLinkType元素。例如,为了能够让图3中的Notification服务参与到编制中,你需要创建一个如下的WSDL文档。

  点击查看例2。

  注意高亮加粗的partnerLinkType部分。在描述服务的WSDL文档末加入这一部分,可以让这个服务成为一个伙伴链接,让这个服务可能成为编制的一部分。

  之前提到过,WS-BPEL使用伙伴链接机制为业务流程中交互的服务进行建模。这有一段图3所示的WS-BPEL业务流程定义,描述了使用伙伴链接的proposalProcessingService流程服务:

  点击查看例3。

  上面的例子只显示了流程定义中的两个partnerLink。第一个partnerLink指定了WS-BPEL流程和它的客户端之间的交互。另一个partnerLink指定了WS-BPEL流程与在这里作为伙伴服务的Notification服务之间的交互。

  图4也许能帮你更好地理解在WS-BPEL中如何使用伙伴链接机制。

            

  图4:WSDL文档中指定的partnerLinkType如何和WS-BPEL流程定义中的partnerLink之间相关联

  图中的这个例子表示了描述WS-BPEL流程服务的WSDL文档中的partnerLinkType和流程定义中的partnerLink之间的关系。当定义partnerLinkType时,使用myRole属性来指定WS-BPEL流程的角色。为了指定伙伴的角色,则需要使用partnerRole属性,参见之前讨论过的流程定义文档。

  看一下这里讨论的流程定义文档中的partnerLink部分,你会发现它们其实没有提供任何关于WSDL文档位置的信息。这些WSDL文档包含相应的伙伴链接类型。这些信息其实储存在流程部署描述符(descriptor)文件中。这个文件的格式会因为你所用的WS-BPEL工具有所不同。

  下面是两个不同描述符的例子,它们是由不同的工具创建的:

  点击查看例4。

  点击查看例5。

  在接下来的第四部分,我们将用更多的实例来演示如何为流程创建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中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录