伙伴链接

另请参见

在 BPEL 上下文中,伙伴链接描述了 BPEL 流程和外部 Web 服务之间的交互。伙伴链接活动用于定义每个伙伴在对话消息交换中所扮演的角色。依靠其对伙伴链接类型的引用,伙伴链接活动间接地指示每个伙伴实现的端口类型。

伙伴链接元素和伙伴链接类型定义

伙伴链接类型是对 WSDL 的 BPEL 扩展。因此,它在 WSDL 文件中进行定义,而不是在 BPEL 文件中定义。伙伴链接类型在一个或两个任意角色之间创建关联,并指示每个角色必须实现一个端口类型。通过将端口类型与角色进行关联,伙伴链接类型定义了伙伴之间的交互规则。

请不要混淆伙伴链接元素和伙伴链接类型定义之间的区别:

伙伴链接类型定义是伙伴链接元素的先决条件。只能通过引用特定的伙伴链接类型和角色(必须在 WSDL 文件中进行定义)来定义伙伴链接元素。

添加伙伴链接的方法

可以使用以下任一方法,在业务流程中添加伙伴链接:

使用伙伴链接元素

使用伙伴链接元素:

  1. 在“设计”视图中,使用上面列出的一种方法,将伙伴链接元素添加到图中。
    将显示伙伴链接属性编辑器对话框。
  2. 在属性编辑器对话框中,请指定以下内容:
  3. 请选择以下任一选项来指定伙伴链接类型:

使用现有的合作伙伴链接类型

  1. 选择“使用现有的合作伙伴链接类型”选项,然后从下拉列表中选择伙伴链接类型。并自动填充“我的角色”和/或“伙伴角色”字段。
  2. 单击“确定”。
    IDE 将使用您提供的值来修改 BPEL 文件。

将伙伴链接类型添加到 WSDL 文件,并配置要使用该类型的伙伴链接元素:

  1. 选择“使用新建的合作伙伴链接类型”选项。
  2. 指定要添加伙伴链接类型的 WSDL 文件。可以执行以下任一操作:
  3. 指定伙伴链接类型的名称。
  4. 按如下方式指定业务流程角色(我的角色)和/或伙伴角色(伙伴角色):
    1. 选中要定义的角色所对应的复选框。
    2. 在“角色名称”字段中指定角色名称。
    3. 从下拉列表中选择端口类型。
  5. 单击“确定”。
    IDE 将在 WSDL 文件中添加新的伙伴链接类型定义,并使用您提供的值来修改 BPEL 文件。

动态寻址

有时,您需要与事先并不知道其端点的合作伙伴服务进行通信,或者需要在流程执行期间更改端点引用 (EPR)。通过使用动态伙伴链接功能,可以为伙伴链接动态分配端点引用。这意味着,您可以使用一个伙伴链接与多个 Web 服务进行通信,前提是这些服务具有相同的接口。

每个伙伴链接都定义了抽象信息和具体信息。描述 Web 服务接口的抽象信息应该是静态的;而具体访问信息(如地址和端口)则可以动态进行查找并使用。

注意:要成功部署流程,应完全定义伙伴链接。这意味着,在部署项目时,伙伴链接的 WSDL 文件应同时包含所定义的伙伴链接的抽象和具体信息(包括地址和端口),而后可以从 WSDL 文件中单独更改具体信息。

注意:BPEL 规范要求只能动态更改合作伙伴 EPR。按照 BPEL 的规定,只能将新值赋给伙伴链接元素的 partnerRole。在部署 BPEL 后,不能再更改 myRole 值。

要将新的 EPR 赋给伙伴链接,您可以使用标准赋值活动和 BPEL 映射器。

可以使用不同的方法提供 EPR 信息:

如果使用传入消息,则应该在 WSDL 中将 EPR 架构定义为消息的一部分。要将 EPR 赋给伙伴链接,请使用消息变量。

通过变量将新的端点引用赋给伙伴链接:

  1. 在流程中创建新的赋值活动。
  2. 打开 BPEL 映射器。
  3. 在右侧的目标树中,查找要将新的具体部件传送到的伙伴链接。
  4. 在源树中,查找包含新端点地址的变量。
  5. 可以根据不同的架构来定义 Web 服务的地址,并且 JBI 容器需要使用一种名为 ServiceRefType 的特殊数据类型,这是一个简单包装器,可用于任何描述数据类型的端点。

    包装数据:


  6. 绘制从变量到该函数的传入连接。然后,绘制到伙伴链接的传出连接。
  7. 将新的具体部件赋给伙伴链接。
另请参见
接收
回复
调用
添加 WSDL 和 XML 架构导入
关于 WSDL 编辑器
BPEL 设计器组件面板:Web 服务
关于 BPEL 设计器的“设计”视图

法律声明