每个伙伴连接都有一个 WSDL parternerLinkType 表明其特征.伙伴连接的 myRole/partnerRole 属性指定了给定的 parternerLinkType 的伙伴和流程将如何交互。myRole 属性引用的是流程在 parternerLinkType 中将要扮演的角色,而 partnerRole 指定了伙伴将要扮演的角色。
<partnerLinks>
<partnerLink name="customer"
partnerLinkType="lns:loanPartnerLinkType"
myRole="loanService"/>
<partnerLink name="approver"
partnerLinkType="lns:loanApprovalLinkType"
partnerRole="approver"/>
<partnerLink name="assessor"
partnerLinkType="lns:riskAssessmentLinkType"
partnerRole="assessor"/>
</partnerLinks>
伙伴连接代表流程间的交互,伙伴用来表示与自己交互的实体,如下:
<partner name="SellerShipper"
xmlns="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
<partnerLink name="Seller"/>
<partnerLink name="Shipper"/>
</partner>
伙伴在流程定义中不是必须的.伙伴不需要覆盖流程定义中的所有的伙伴连接.当你定义了一个伙伴,则它必须实现对应伙伴下的伙伴连接的角色应该完成的任务(应该提供的服务).伙伴的定义不能重叠,也就是说,一个伙伴连接,不能同时出现在多个伙伴定义中.