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.

Reply via email to