asynchronous web services jaliya n. ekanayake. basics of web services

18
Asynchronous Web Services Jaliya N. Ekanayake

Upload: citlali-tandy

Post on 31-Mar-2015

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Asynchronous Web Services

Jaliya N. Ekanayake

Page 2: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Basics of Web Services

Page 3: 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

Page 4: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

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.

Page 5: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

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.

Page 6: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

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

Page 7: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Client Side Asynchrony Fire and Forget.

Invokes the service and return immediately without ever bothering about a response.

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.

Client ProxyClient

Service

1 Invoke

3 Return

2 SendClient Machine Server

Page 8: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Fire and Forget

Code Snippet

Example>>

Page 9: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Client Side Asynchrony Polling

Client repeatedly poll for the availability of the results, while performing some other task.

Issues Client has to wait polling Client has to handle the complexity of this polling operation Response can be retrieved asynchronously

Client Proxy

ClientService

1 Invoke

3 Return a Poll Object

2 SendClient Machine Server

Poll ObjectPolling and getting back the result Set the Response

Page 10: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Polling Code Snippet

Example>>

Page 11: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Client Side Asynchrony Result Callbacks

Client provides a callback method. Proxy will dispatch the result using the callback method.

Issues Client has to provide the callback method Client has to handle the additional complexity Response can be retrieved asynchronously

Client Proxy

ClientService

2 Invoke 3 SendClient Machine Server

Callback1 Creates a Callback Object 4 Response is dispatched

to the callback by the client proxy

Page 12: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Callback Code Snippet

Example>>

Page 13: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

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.

Page 14: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Asynchronous Web Service Model contd.. The model

Features Service sends the response by itself. Correlation information contains in the SOAP message itself. Client has both a Sender and a Receiver.

Client

Sender

Receiver

Service

M

M

Page 15: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

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.

Page 16: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

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

Page 17: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

References http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmaj/html/

aj2mpsoarch.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/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

Page 18: Asynchronous Web Services Jaliya N. Ekanayake. Basics of Web Services

Thank You!