Asynchronous Web Services - Apache Software Foundation
Download
Report
Transcript Asynchronous Web Services - Apache Software Foundation
Asynchronous Web
Services
Jaliya N. Ekanayake
Basics of Web Services
Simple Web Service Invocations
Example of Synchronous Service Invocation.
Service takes some time to complete
Client is waiting for the response
Example of Asynchronous Service Invocation
Service takes some time to complete
Client is waiting for the response
Some Use Cases
Time consuming web services
long-lived operations
batch processing
peer to peer programs
event driven application models.
Web services that leverage The client can be a Reactive
Application
Client can be a server to some other clients. So the blocking
is not acceptable.
Some Use Cases contd..
User may not need to wait for the responses
User is doing some batch submission.
E.g. A bank submitting credit card information to a service
provider.
User can check for responses after sending few invocations.
The response from a service represents a collective information.
User need the response after some time.
E.g. A batch submission process, the result will be available in
the next day.
Supporting the Asynchrony
Protocol level asynchrony
E.g. JMS can be used to invoke the services asynchronously.
Client subscribes to a topic and return
Response will be delivered to client through the JMS Queue
Client Asynchrony Patterns
Fire and Forget
Callbacks
Polling
Service Asynchrony
Client Side Asynchrony
Fire and Forget.
Invokes the service and return immediately without ever bothering about
a response.
Client Machine
Server
1 Invoke
2 Send
Client
Proxy
Client
3 Return
Issues
No waiting. Client can immediately resume the thread.
Easy for the developers
Loosely coupled
No way to verify whether the request has been sent or not.
Service
Fire and Forget
Code Snippet
Example>>
Client Side Asynchrony
Polling
Client repeatedly poll for the availability of the results, while performing
some other task.
Client Machine
Server
2 Send
1 Invoke
Client
Proxy
Client
3 Return
a Poll Object
Polling and
getting back
the result
Poll Object
Set the Response
Issues
Client has to wait polling
Client has to handle the complexity of this polling operation
Response can be retrieved asynchronously
Service
Polling
Code Snippet
Example>>
Client Side Asynchrony
Result Callbacks
Client provides a callback method. Proxy will dispatch the result using
the callback method.
Client Machine
Server
3 Send
2 Invoke
Client
Proxy
Client
1 Creates a
Callback
Object
Callback
4 Response is dispatched
to the callback by the client proxy
Issues
Client has to provide the callback method
Client has to handle the additional complexity
Response can be retrieved asynchronously
Service
Callback
Code Snippet
Example>>
Asynchronous Web Service Model
The service does not “return” anything.
It can send the response (if any) by itself.
Transport may or may not be synchronous
E.g. 1 (HTTP Transport)
Service has a void return type and it will send a response after a
while using different HTTP connection
E.g. 2 (One way transport -JMS)
Service sends a response using a new one way transport.
What is required.
Service should have the capability to send the response by itself.
Client should be able to correlate the request and the response
Client should have an addressable endpoint.
Can use WS-Addressing <wsa:relatesTo> for standard correlation.
Asynchronous Web Service Model contd..
The model
Sender
M
Service
Receiver
M
Client
Features
Service sends the response by itself.
Correlation information contains in the SOAP message itself.
Client has both a Sender and a Receiver.
Support from the Existing Technologies
Microsoft .NET supports the client side asynchrony.
With the WSE 2.0 the service asynchrony is also supported.
Systinet WASP supports the client side asynchrony and WS-Addressing.
Axis 2 (Currently under development) will support both.
Summery
There are many advantages of using asynchronous patterns in
implementing web services for B2B, EAI scenarios.
Client Side Asynchrony
Fire & Forget
Polling
Callbacks
Service Asynchrony
Technology support
References
http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnmaj/html/aj2mpsoarch.asp
http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpguide/html/cpconinvokingwebservicesasynchronously.asp
www.fawcette.com/xmlmag/ 2003_02/magazine/practice/dchappell/
http://www.c-sharpcorner.com/Code/2004/April/AsyncWebServices.asp
http://www.esecurityplanet.com/prodser/article.php/2235201
http://xml.coverpages.org/ni2004-04-15-a.html
Thank You!