一、伙伴链接类型(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. 利用windbg探索进程和进程上下文

    1.列出所有活动进程 使用!process命令可以打印出活动进程的信息.第一个参数是要打印的EPROCESS的地址,如果指定为0则表示打印所有的进程.第二个参数用于说明打印进程信息的详细级别.指定0则 ...

  2. JavaScript案例三:动态显示时间

    用JavaScript实现在页面上动态的显示时间 <!DOCTYPE html> <html> <head> <title>JavaScript动态显示 ...

  3. unity scroolView 和 groupview

    #pragma strict var scrollPosition:Vector2; function Start () { scrollPosition[0]=50; scrollPosition[ ...

  4. BZOJ3789 : 扫雪车

    有上下界的网络流 T向S连容量为正无穷的边,将有源汇转化为无源汇 每条边容量减去下界,设in[i]表示流入i的下界之和减去流出i的下界之和 新建超级源汇SS,TT 对于in[i]>0的点,SS向 ...

  5. 【POJ】A New Stone Game(博弈论)

    http://poj.org/problem?id=1740 题目大意就是,对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余石子的一部分分 ...

  6. JS中setInterval、setTimeout不能传递带参数的函数的解决方案

    在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,接下来为大家介绍具体的解决方法 在JS中无论是setTimeout还是s ...

  7. c# 使用GetOleDbSchemaTable获取access数据库结构

    c# 使用GetOleDbSchemaTable获取access数据库结构 ado.net可以使用GetOleDbSchemaTable方法来获取access数据库的结构,但得到的datatable的 ...

  8. 象写程序一样写博客:搭建基于github的博客

    象写程序一样写博客:搭建基于github的博客   前言 github 真是无所不能.其 Pages 功能 支持上传 html,并且在页面中显示.于是有好事者做了一个基于 github 的博客管理工具 ...

  9. Java 的class文件关系

    一个java源文件javac出多个class文件出来!是怎么回事? 1. 你在一个文件里定义了几个类的时候,会出现这种情况,比如public class A {}class B {}class C { ...

  10. 使用Eclipse自带Web Service插件(Axis1.4)生成Web Service服务端/客户端

    创建一个名字为math的Java web工程,并将WSDL文件拷入该工程中 将Axis所需的jar包拷贝至WebRoot\WEB-INF\lib目录下,这些jar包会自动导入math工程中 一,生成W ...