在本文的第三部分,我们用实例介绍了如何为封装WS-BPEL的服务设计WSDL定义。在这一部分,我们将运用更多的实例介绍创建WS-BPEL流程服务。 通常的面向服务设计都建议流程服务的设计应该从服务契约开始。所以为了提供更多的WSDL和WS-BPEL定义的例子,我们就来遵循这个过程。
Hello服务的WSDL定义(抽象描述) 我们从一个简单的Hello服务的新WSDL文档开始: 点击查看例6。 例6中的高亮显示部分表示的是partnerLinkType结构。在该结构中,对WS-BPEL流程和它的使用者(客户端服务)的关系进行了定义。 注意,必须为所涉及的每一个伙伴服务指定……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
在本文的第三部分,我们用实例介绍了如何为封装WS-BPEL的服务设计WSDL定义。在这一部分,我们将运用更多的实例介绍创建WS-BPEL流程服务。
通常的面向服务设计都建议流程服务的设计应该从服务契约开始。所以为了提供更多的WSDL和WS-BPEL定义的例子,我们就来遵循这个过程。
Hello服务的WSDL定义(抽象描述)
我们从一个简单的Hello服务的新WSDL文档开始:
例6中的高亮显示部分表示的是partnerLinkType结构。在该结构中,对WS-BPEL流程和它的使用者(客户端服务)的关系进行了定义。
注意,必须为所涉及的每一个伙伴服务指定partnerLinkType的结构。不过在这个例子中,WS-BPEL流程只有一个伙伴,即流程的使用者。因此,只需在描述这个WS-BPEL流程服务的WSDL文档中指定一个partnerLinkType结构。
Hello服务WSDL定义(抽象和具体描述)
也许你已经注意到,例6中的WSDL定义没有包含部署信息(绑定和地址信息)。事实上客户端服务使用的是这个文档的修改版。基于上面的WSDL代码,WS-BPEL引擎可以动态地生成包含绑定和地址信息的文档。因此,当我们用浏览器请求这个WSDL定义时,我们应该收到下面的输出信息:
WS-BPEL引擎隐式地生成了绑定和服务的定义,因此客户端伙伴服务能够使用这里讨论的流程服务。
Hello WS-BPEL流程定义
下一步要实施WS-BPEL流程定义。这些是相应hello.bpel文件的内容:
partnerLinks部分包含与伙伴服务建立关系的partnerLink部分;在执行过程中,这些伙伴服务与业务流程进行交互。在例8中,partnerLinks部分只包含了一个入口,即表示流程服务和客户端服务之间关系的入口。这种情况下,需要使用partnerLink元素中myRole属性,因为WS-BPEL流程服务是客户端服务的服务提供者。
注意partnerLink元素中partnerLinkType属性指定的名字。这个很重要,它就是之前提到hello.wsdl文档中对应的partnerLinkType部分指定的名字。
序列结构中定义的活动顺序非常直接明了。第一个是receive(接收)活动,用来处理客户端服务发送过来的请求消息。把receive的createInstance属性设置为“yes”,就是告诉WS-BPEL引擎:当活动接收到请求消息时,创建一个流程实例。
序列活动中的下一个活动是assign(赋值)。这里实际上是基于输入消息中的信息,生成了输出消息。
最后,定义了一个reply(回答)活动,它负责向客户端服务发送输出消息。部署完hello流程服务,知道了如何去获得向客户端描述这个服务的WSDL文档,接下来就是测试。为此,你可能需要创建并运行下面这段PHP脚本:
当执行时,上面的脚本应该会调用之前讨论的hello流程服务,并输出下面的hello消息:
Hello,Larry!
在本文的最后一部分,我们将进一步用实例介绍WS-BPEL流程服务如何与伙伴服务产生交互。
关于作者
Yuli Vasiliev是软件开发者、自由撰稿人和咨询师。目前专注于开源开发、Oracle技术和SOA。他具有十多年的软件开发经验和七年多的技术写作经验。他出版的新书《SOA and WS-BPEL》具体详述了如何使用开源产品PHP和ActiveBPEL引擎创建和部署你自己的面向服务解决方案。
作者
翻译
相关推荐
-
当业务流程遭遇软件服务
要是驾校的教练去出演像《速度与激情》这样的动作电影,我敢打赌他们给人的印象肯定有所不同。有人说:“他们应该更快绑好安全带。”这种分离类似于当今的业务流程管理。
-
理解并使用IMS SOAP Web服务
让我们从Web服务的角度来审视这一话题。为了通过简单对象访问协议(SOAP)支持Web服务,IMS需要三大部分的东西。首先是Rational Developer for System z……
-
用WebSphere DataPower SOA Appliances重写SOAPAction报头
IBM WebSphere DataPower通常被用于将一个SOAP/HTTP后端Web服务转换或调整为不同的Web服务接口。在这些情况中,几乎都使用中间逻辑来转换SOAP消息。
-
如何在SOAP应用程序中使用WSDL?
在过去的几年中,出现了一些标准协议,它们提供了XML中间件的一个重要组成部分:网络化服务的要求。这些网络化服务要求是通过网络。