一、伙伴链接类型(Partner Link Types)

1.交互过程

  伙伴之间的交互过程共分为两种典型情况:

  • 流程调用伙伴后同步等待返回结果。这种情况通常是伙伴能很快返回结果,流程不需要等待很长时间。
  • 流程调用伙伴后异步等待返回结果。这种情况通常是伙伴需要较长时间返回结果,这时流程不需要等待,可继续执行。伙伴执行完后将回调流程接口,通知流程返回结果。

2.作用

  伙伴链接类型定义了一个交互中依赖的关系。

  

<plnk:partnerLinkType name="NCName">

    <plink:role name="NCName" portType="QName" />
<plink:role name="NCName" portType="QName" /> </plnk:partnerLinkType name="NCName">

  伙伴链接类型的名字由name属性指定。角色用来描述一个交互中参与者所起的作用。角色的定义除了名字以外还引用了wsdl中定义的接口定义。任何参与这种交互并且充当该角色的服务必须实现这个接口。以下两种场景说明:

  • 但角色伙伴链接类型。这意味着交互中只有一个角色,只需交互的一方实现角色中引用的接口,而对交互的另一方没有任何限制。
<plnk:partnetLinkType namee="OrderProcessPLT">

<plnk:role name="OrderProcessRole">

    <plnk:portType name="wsd10:OrderProcess" />

</plnk:role>

</plnk:partnetLinkType>

这个伙伴链接类型只定义了一个角色OrderProcessRole,实现该角色的接口必须实现OrderProcess接口,对交互的另一方没有任何限制,任何服务都可以参与这个交互,调用OrderProcessRole提供的服务。

  • 双角色伙伴链接类型。交互中涉及到两个角色。交互的双方都必须实现相应角色接口才能正确完成一次交互。
<plnk:partnerLnkType name="ShipPartnerPLT">

  <plnk:role  name="ShipServiceRequester">
<plnk:portType name="ns1:ShipServiceCallBack" />
</plnk:role> <plnk:role name="ShipServiceProvider">
<plnk:portType name="ns1:ShipProduct" />
</plnk:role> </plnk:partnerLnkType>

这个伙伴链接定义了两个角色,ShipServiceRequester和ShipServiceProvider,因此参与交互的双方都必须实现各自角色的接口。比如,一个订单处理流程调用送货服务的ShipProduct接口以启动送货服务,送货完毕后调用订单处理流程实现的ShipServiceCallBack以返回确认信息。

3.伙伴链接(Partner  Links)

伙伴链接可以看做是伙伴链接类型的实例。

<partnetLinks>

   <partnetLink name="NCName" partnetLinkType="QName" myRole="NCName" partnetRole="NCName" initializePartnetRole="yes|no"/>

</partnetLinks>

定义伙伴链接需要指明它是哪种伙伴链接类型,以及它将扮演的角色。myRole指定调用者在交互中的角色,而partnerRole则指出伙伴的角色。initializePartnetRole的值指出BPEL引擎是否在第一次调用partnetRole所指定的服务时先初始化它的端点引用。

例如:

<partnerLinks>

  <partnetLink name="callShipServicePartnerLink" partnerLinkType="ShipPartnerPLT" myRole="ShipServiceRequester" partnerRole="ShipServiceProvider" />

</partnerLinks>

这个伙伴链接定义表明,它是送货服务的调用方,而且它会实现ShipServiceCallBack接口以便送货服务回调。

bpel 之伙伴的更多相关文章

  1. 使用BPEL创建Web服务组合

    http://www.cnblogs.com/ahhuiyang/archive/2012/12/18/2824131.html 为简单起见,本例的Web服务组合只调用一个Web Service AP ...

  2. BPEL 实例教程

    http://www.oracle.com/technetwork/cn/articles/matjaz-bpel1-090722-zhs.html BPEL 实例教程 作者:Matjaz Juric ...

  3. BPEL_Oracle BPEL新一代工作流介绍(概念)

    2014-11-02 Created By BaoXinjian

  4. 伙伴们休息啦canvas绘图夜空小屋

    HTML5 canvas绘图夜空小屋 伙伴们园友们,夜深了,休息啦,好人好梦... 查看效果:http://hovertree.com/texiao/html5/28/ 效果图如下: 代码如下: &l ...

  5. 《虚拟伙伴》AR增强现实应用开发总结

    一.概述 1.1选题背景 随着时代的发展,人们的生活节奏越来越快,生活质量也越来越高,但却在繁忙之中忽略或者忘记了关心自己成长时代最重要或者最正确的事情和道理.虽然现在有很多社交平台,如微博,微信,f ...

  6. 华清远见成为ARM大学计划正式合作伙伴

    来源:华清远见嵌入式学院 近日,华清远见教育集团成为ARM大学计划合作伙伴,这是ARM大学计划合作伙伴中的国内唯一教育机构.此次合作是ARM公司对华清远见教育集团的高度认可,也充分证明了华清远见这些年 ...

  7. BPEL是个什么东东

    研究团队有个做智能服务组合的,其中用到叫BPEL的东西,因为全称是Business Process Execution Language,译成中文就是商业执行过程语言,这个东东的是整合SOA的一个执行 ...

  8. RESTful API的重磅好伙伴Swagger2

    本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档. 它既可以减少我们创建文 ...

  9. ASP.NET MVC4系列验证机制、伙伴类共享源数据信息(数据注解和验证)

    一,mvc前后台验证 自定义属性标签MyRegularExpression using System; using System.Collections.Generic; using System.C ...

随机推荐

  1. 如何开启SQL Server 2008的远程联机

    需要开启SQL Server 2008 远程联机,需按如下操作步骤执行: 1.首先需要在{程序}-{Microsoft SQL Server 2008}-{配置工具}-{SQL Server 配置管理 ...

  2. Android 文件夹命名规范 国际化资源

    Android 文件夹命名规范 国际化资源 android多国语言文件夹文件汇总如下: 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values- ...

  3. node相关--WebSocket

    socket:socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. ajax: 通过HTTP请求+响应模式的方式来发送和 ...

  4. QUnit使用笔记-3测试用户操作

    模拟操作: elem.trigger(event); elem.triggerHandler(event); triggerHandler的不同: 不会引起事件的默认行为 .trigger() 会操作 ...

  5. easyui的validatebox重写自定义验证规则的几个实例

    validatebox已经实现的几个规则: 验证规则是根据使用需求和验证类型属性来定义的,这些规则已经实现(easyui API): email:匹配E-Mail的正则表达式规则. url:匹配URL ...

  6. Quartz.Net 配置模板范例

        1.App.config <?xml version="1.0" encoding="utf-8"?> <configuration& ...

  7. Unity Built-in Shader详解三

    上次讲的是Transparent Shader Family,他们是绘制半透明的对象使用的,但他们并不能满足我们全部的要求. Transparent Cutout Shader Family是对半透明 ...

  8. JavaScript判断用户是通过电脑端还是移动端访问

    每个浏览器对应的useragent不同,JavaScript通过判断useragent的类型,便可以判断出用户所使用的浏览器类型,包括 IE.Firefox.chrome等.还可以判断用户是否通过移动 ...

  9. POJ 3281 (最大流+匹配+拆点)

    题目链接:http://poj.org/problem?id=3281 题目大意:有一些牛,一堆食物,一堆饮料.一头牛要吃一份食物喝一份饮料才算满足,而且牛对某些食物和饮料才有好感,问最多有多少头牛是 ...

  10. TYVJ P1075 硬币游戏 Label:dp

    背景 农民John的牛喜欢玩硬币,所以John就为它们发明了一个新的两人硬币游戏,叫做Xoinc. 描述 最初地面上有一堆n个硬币(5<=n<=2000),从上面数第i个硬币的价值为C_i ...