Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

When invoking a service asynchronously, we need to define two roles (myRole and partnerRole) for the partner link. In a synchronous interaction only partnerRole is need to be defined. These roles are defined in partner link type and they map to particular port types. A partner link type binds two port types; port type process offers(myRole) to a partner and port type partner offers(partnerRole) to a process. In the above example DILoanService is invoked asynchronously and DILoanService has to provide aportType, which defines the partnerRole and another portType which definesmyRole.

 


Deploying the Sample

WSO2 BPS provides a sample, which can be deployed and executed to understand the constructs. Follow the instructions below to deploy and trigger the process.

...

How asynchronous interaction works

In LoanServiceLoanProcess.bpel, the following snippet is given.

...

5. partnerLink="DILoanServicePL" - An essential attribute in a <receive /> element. This determines the WSDL's portType to be chosen based on the partnerLinkType attribute and the myRole attributes defined in the particular <partnerLink /> element. For example, in LoanServiceLoanProcess.bpel,

Code Block
languagehtml/xml
<partnerLinks><partnerLinkname="DILoanServicePL" partnerLinkType="ns2:LoanServicePT" partnerRole="LoanServiceRole" myRole="LoanServiceClientRole"/></partnerLinks> ......... <receivename="ReceiveDILoanService" createInstance="no" partnerLink="DILoanServicePL" operation="onLoanOffer" portType="ns2:LoanServiceCallbackPortType" variable="diLoanServiceResponse"><correlations><correlationset="correlator" initiate="no"></correlation></correlations></receive>

...