Hi,
I would like to shortly anounce use-case of one of our customer and
describe solution proposed by SOPERA.
Service Provider receives messages from a business system.
Processing of each message is a complex process containing some steps and provider would like to inform consumer about each step of processing.
In other words, provider maintains kind of conversation session with consumer.
It looks like:
Code:
-------------------------------------
consumer provider
--> request
<-- response step 1
<-- response step 2
<-- response step 3
<-- finish conversation
--------------------------------------
SOPERA supports this scenario via multi-callbacks.
By using request-callback communication style it is possible to define mutiple callback operations:
Code:
<portType name="MulticallbackService">
<operation name="OneWayOperation">
<input message="tns:oneWayRequestMsg"/>
</operation>
</portType>
<wsdl:portType name="MulticallbackServiceConsumer" sdx:partnerPortType="tns:MulticallbackService">
<operation name="CallbackOperationStep1" sdx:partnerOperation="OneWayOperation">
<input message="tns:CallbackOperationStep1"/>
</operation>
<operation name="CallbackOperationStep2" sdx:partnerOperation="OneWayOperation">
<input message="tns:CallbackOperationStep2"/>
</operation>
<operation name="CallbackOperationStep3" sdx:partnerOperation="OneWayOperation">
<input message="tns:CallbackOperationStep3"/>
</operation>
<operation name="CallbackOperationFinish" sdx:partnerOperation="OneWayOperation">
<input message="tns:CallbackOperationFinish"/>
</operation>
<operation name="OneWayOperationCallbackFault"
sdx:faultOperation="true" sdx:partnerOperation="OneWayOperation">
<input message="tns:OneWayOperationCallbackFault"/>
</operation>
</wsdl:portType>
Provider can inform consumer about different steps of request processing via calls of different callback functions.
End of conversation can be recognized via special operation ("CallbackOperationFinish") or via message.
Sample sdx with muticallback is attached.