As noted earlier, the BPEL engine uses a partner link to help manage the conversation between two partners. Each partner link is a kind of variable that is based on a partner link type and contains an endpoint reference. You can use the BPEL assign activity to copy an endpoint reference to or from a given partner link.
Each activity that accesses a service in any way requires a partner link. Here is a declaration based on a partner link type that defines only one role.
<partnerLinks> <partnerLink name="ProcessQuote" partnerLinkType="ProcessQuotePLT" myRole="ProcessQuoteRole"/> </partnerLinks>
The attribute myRole indicates that the role is enacted by the BPEL process. Specifically, the BPEL process provides the operations described in the port type that is related to the role ProcessQuoteRole.
Let's look at a second, similar declaration. Here, the attribute partnerRole indicates that the role (related to another port type) is enacted by the partner service.
<partnerLinks> <partnerLink name="mainframeQuoteMgr" partnerLinkType="PartnerLinkPLT" partnerRole="handleMainframe" /> </partnerLinks>
Here is a declaration based on a partner link type that defines two roles.
<partnerLinks> <partnerLink name="MotorVehicleRecords" partnerLinkType="MotorVehicleRecordsLT" myRole="motorVehicleRecordsCallback" partnerRole="MotorVehicleRecords"> </partnerLinks>
Multiple partner links can be based on the same partner link type. The case arises, for example, when you use the same service interface to interact with multiple vendors.