The term asynchronous service is perhaps somewhat misleading. We use it to indicate a category of services that are associated with two interfaces. One is the interface implemented by the service itself with one or more one-way operations that only take an input. The other interface is the callback interface: the interface that the service expects when it calls back to deliver the response message. This interface has to be implemented by the party invoking the service. The address of the implementation has to be delivered along with request message – so the service knows where to call with the response. In human interactions, the callback interface is for example the telephone or fax machine and their wired or wireless connection.
Only if you have the ability to be called back in the manner described by the service provider, can you make a successful call to the asynchronous service and get the response you are looking for.
The implementation of an asynchronous web service requires some steps in addition to what a synchronous service implementation has to do. These steps concern the interpretation of the request headers to extract the address to send the response to as well as a message identifier used for identification of the conversation. Additionally, the service implementation will have to make a service call itself – to the address dynamically extracted.
This section discusses the implementation of the asynchronous service with Service Bus projects, Mediator and first of all BPEL. We will also look at invoking asynchronous services from these three environments. Mediator and Service Bus can both expose an asynchronous interface on top of a synchronous and an asynchronous back end or business service. BPEL in addition can present a synchronous interface on top of an asynchronous back end.
The service we will implement is an asynchronous form of hello world: ThoughtfulGreeterService
Test an Asynchronous Web Service using SoapUI – on the SOA Suite Handbook Blog
Unit Testing Asynchronous BPEL Processes Using soapUI by Daniel Amadei – http://www.oracle.com/technetwork/articles/soa/bpel-amadei-1518001.html
Building an asynchronous web service with OSB 11g – Edwin Biemond
The starting point sources are in the folder AirportCharge_step1. The end result for this section is in the AsynchronousServiceBusApplication-step1 folder for Service Bus and in AsynchronousSOA-step1 for the SOA Composite with BPEL and Mediator.