You are asking about asynchronous calls on the server side - do you mean asynchronous invocation of other web services from a web service or do you mean implementing a web service that processes request asynchronously? If the latter, then:
In order for your web service server to be asynchronous, an option is to follow something along these lines:
- Receive a request.
- Validate the request to the extent possible.
- Generate an id for the request (only if polling is used).
- Associate the id with the request (only if polling is used).
- Queue the request in a queue of some sort.
- Return the id (only if polling is used).
At this time, the client has completed the request and received a result, optionally containing an id with which it can poll for the result of the request later.
At some point in time in the web service server:
- The request is taken from the queue and processed.
- If the result is to be returned using callback, then call back and enclose the result.
- If the result is to be returned using polling, then place the request result in the polling queue.
Later when the client calls the polling function, supplying the request id, the result is returned to the client.
The above is a basic outline of how to implement asynchronous processing of requests in a web service. There may be additional aspects to take into consideration.
I haven't seen any tutorials on this subject.