77范文网 - 专业文章范例文档资料分享平台

BPEL 简明开发手册(3)

来源:网络收集 时间:2018-12-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

我们首先添加所需的命名空间。此处,我们必须定义目标命名空间以及用于访问雇员和航空公司 WSDL 以及此 BPEL 流程 WSDL 的命名空间。我们还必须为所有 BPEL 活动标记声明命名空间(此处采用缺省命名空间,以便不必限定每个 BPEL 标记名)。BPEL 活动命名空间必须为

http://schemas.xmlsoap.org/ws/2003/03/business-process/:

targetNamespace=\

xmlns=\xmlns:trv=\

xmlns:emp=\xmlns:aln=\...

合作伙伴链接(partnerLink) ―――在bpel文件中定义此partnerLinks目的在于导入各个wsdl文件中的partnerLink,并且确定在交互过程忠各自的角色如何。

接下来,我们必须定义合作伙伴链接,它们定义与此 BPEL 流程交互的不同方。每个合作伙伴链接都与描述其特性的特定 partnerLinkType 相关。每个合作伙伴链接还最多指定两个属性:

? myRole:表明业务流程本身的角色。 ? partnerRole:表明合作伙伴的角色。

注意: myRole是此bpel流程所扮演的角色,而partnerRole是其合作伙伴所扮演的角色。

合作伙伴链接仅可以指定一个角色,通常同步请求/响应操作也仅能指定一个角色。对于异步操作,它指定两个角色。在本示例中,我们定义四个角色。第一个合作伙伴链接称作客户端,由 travelLT 合作伙伴链接类型描述其特性。此客户端调用该业务流程。我们需要指定 此BPEL 流程 (myRole 属性) 的角色为travelService。我们必须指定第二个角色:partnerRole。此处,该角色为 travelServiceCustomer,它项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏 Page 12

描述 BPEL 流程客户端的特性。

第二个合作伙伴链接称作 employeeTravelStatus,由 employeeLT 合作伙伴链接类型描述其特性。它是 BPEL 流程与 Web 服务之间的一个同步请求/响应关系;我们再次仅指定一个角色。此时,该角色为 partnerRole,这是因为我们描述了 Web 服务(它是此 BPEL 流程的合作伙伴)的角色:

最后两个合作伙伴链接对应于航空公司 Web 服务。由于它们使用同一类型的 Web 服务,因此我们基于一个合作伙伴链接类型 flightLT 指定两个合作伙伴链接。此处,由于我们使用异步回调通信,因此需要两个角色。此 BPEL 流程 (myRole) 对于航空公司 Web 服务的角色为 airlineCustomer,而航空公司 (partnerRole) 的角色为 airlineService:

变量

变量 BPEL 流程中的变量用于存储消息以及对这些消息进行重新格式化和转换。您通常需要为发送到合作伙伴以及从合作伙伴收到的每个消息定义一个变量。就我们的流程而言,我们需要七个变量。我们将它们命名为 TravelRequest、EmployeeTravelStatusRequest、EmployeeTravelStatusResponse、FlightDetails、FlightResponseAA、FlightResponseDA 和 TravelResponse。

我们必须为每个变量指定类型。可以使用 WSDL 消息类型、XML 模式简单类型或 XML 模式元素。在我们的示例中,我们对所有变量使用 WSDL 消息类型:

messageType=\

messageType=\

项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏 Page 13

BPEL 流程主体

BPEL 流程主体流程主体指定调用合作伙伴 Web 服务的顺序。它通常以 (用于定义多个将按顺序执行的操作)开始。在顺序中,我们首先指定启动业务流程的输入消息。我们使用 构造(它等待匹配消息,在本示例中为 TravelRequest 消息)实现此目的。在 构造中,我们不直接指定消息。而是指定合作伙伴链接、端口类型、操作名称以及可选变量(用于保存收到的消息以用于随后的操作)。

我们将消息接收与客户端合作伙伴链接在一起,并等待对端口类型 TravelApprovalPT 调用 TravelApproval 操作。我们将收到的消息存储到 TravelRequest 变量中:

等待客户端调用 TravelApproval 操作,并将传入的消息以及有关业务出差的参数存储到 TravelRequest 变量中。此处,此变量名与消息名相同,但并不一定要相同。

接下来,我们需要调用雇员出差状态 Web 服务。但在调用之前,我们必须为此 Web 服务准备输入。查看雇员 Web 服务的 WSDL,可以看到我们必须发送由雇员部分组成的消息。我们可以通过复制客户端发送的消息的雇员部分来构造此消息。编写相应的赋值语句:

...

...

现在,我们就可以调用雇员出差状态 Web 服务了。为了进行同步调用,我们使用 活动。我们使用 employeeTravelStatus 合作伙伴链接,并对 EmployeeTravelStatusPT 端口类型调用 项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏 Page 14

EmployeeTravelStatus 操作。我们已经在 EmployeeTravelStatusRequest 变量中准备了输入消息。由于它是同步调用,因此该调用等待回应并将其存储在 EmployeeTravelStatusResponse 变量中:...

inputVariable=\

outputVariable=\

同步调用会有两个变量:inputVariable、outputVariable。 ...

下一步是调用上述两个航空公司 Web 服务。同样,我们先准备所需的输入消息(这两个 Web 服务的输入消息相同)。FlightTicketRequest 消息包含两部分:

? flightData:它从客户端消息 (TravelRequest) 中检索而得。

? travelClass:它从 EmployeeTravelStatusResponse 变量中检索而得。

因此,我们编写一个包含两个 copy 元素的赋值:

...

...

输入数据包含需要传递给航空公司 Web 服务的数据。由于格式相同,因此我们可以使用一个简单复制直接传递它。在实际情况下,通常需要执行转换。为此,可以使用具有 的 XPath 表达式、使用转换服务(如 XSLT 引擎)或使用由特定 BPEL 服务器提供的转换功能。

现在,我们准备调用这两个航空公司 Web 服务。我们将进行并发的异步调用。为表述并发,BPEL 提供了 活动。对每个 Web 服务的调用将包含两个步骤:

? 使用 活动进行异步调用。 ? 使用 活动等待回调。

我们使用 对这两个活动进行分组。这两个调用只在合作伙伴链接名称上存在差别。我们对一个调用使用 AmericanAirlines,对另一个调用使用 DeltaAirlines。两者均对 FlightAvailabilityPT 端项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏 Page 15

口类型调用 FlightAvailability 操作,发送 FlightDetails 变量中的消息。

使用 活动接收回调。我们再次使用这两个合作伙伴链接名。 等待对 FlightCallbackPT 端口类型调用 FlightTicketCallback 操作。我们将结果消息分别存储到 FlightResponseAA 和 FlightResponseDA 变量中:

...

'confirmationData','/confirmationData/Price') 项目名称: 版本:<0.1> 文档名称:BPEL 简明开发手册 日期:<2006/11/25> 文档创建者:Sika Team 公司机密文件,请勿外漏 Page 16

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库BPEL 简明开发手册(3)在线全文阅读。

BPEL 简明开发手册(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/381752.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: