• bpel 之伙伴


    一、伙伴链接类型(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接口以便送货服务回调。

  • 相关阅读:
    2020年蓝桥杯校内模拟赛
    kaggle入门——泰坦尼克之灾
    在线程池里面执行
    如何使用在线工具手动验证JWT签名
    python日志模块
    性能测试
    自动生成时间
    jmeter + tomcat + ant + svn +jenkins 实现持续集成测试
    JMeter性能测试,完整入门篇
    jmeter 24个常用函数
  • 原文地址:https://www.cnblogs.com/rigid/p/4323461.html
Copyright © 2020-2023  润新知