Hi,
I need a suggestion regarding following use case.
I am required to support additional communication style between client and
server named request-callback.
The communication is asynchronies and looks like as a combination of two
one-way operations:
1. Client activates own callback endpoint with one or many one-way operations
2. Client sends request to one-way operation on service side
3. Service sends response to client callback endpoint on the base of request
wsa:ReplyTo header.
In this case WSDL contains two portTypes (one for service, one for client),
related one with another using bpel:partnerLink.
Additionally, every operation in callback portType contains custom attribute
points to partner operation in service portType:
<portType name="Library" sdx:status="design">
<operation name="seekBookInBasement">
<input message="dpag:seekBookRequest"/>
</operation>
</portType>
<portType name="LibraryCallback" sdx:status="design">
<operation name="seekBookInBasementResponse"
sdx:partnerOperation="seekBookInBasement">
<input message="dpag:seekBookResponse"/>
</operation>
<operation name="seekBookInBasementFault" sdx:faultOperation="true"
sdx:partnerOperation="seekBookInBasement">
<input message="dpag:seekBookError"/>
</operation>
</portType>
<plnk:partnerLinkType name="CallbackPartnerLink"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
<plnk:role name="service">
<plnk:portType name="ex:Library"/>
</plnk:role>
<plnk:role name="callback">
<plnk:portType name="ex:LibraryCallback"/>
</plnk:role>
</plnk:partnerLinkType>
Using this relation client and service can determine the callback portType and
partner operations (it is necessary for internal API, schema validation and
design time).
Question: is there more elegant and standard way to link portTypes and
operations in WSDL one with another?
Regards,
Andrei.