标签:
一、伙伴链接类型(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接口以便送货服务回调。
标签:
原文地址:http://www.cnblogs.com/rigid/p/4323461.html