I need to implement some asynchronous web services, and I would like to know
how you have managed this using SOAP::Lite.
I have read these papers to get an idea of what needs to be done:
I have some ideas but since this is my first incursion into SOAP, I am not
sure how to tackle it.
The papers basicly discuss these patterns:
Pattern 1 One-way and notification operations: UDP server and client (I say
UDP because neither the client or the server require an acknowledgement)
which exchange roles. The client needs to have a listener to get the response
whenever the server answers. The request and response can be seen as 2
Pattern 2 Request/reply operations: The same as above but the request and
response are not separate requests, they just require 2 separate transport
Pattern 3 Request/reply operations with polling: The client sends a request
and gets a transaction ID as the response, then the client polls the server
for the status of that transaction periodically. This model is not very
efficient since it requires more than one request (posibly many) to get the
Pattern 4 Request/reply operations with posting: the client sends a request,
the server answers with a transaction ID, then the server becomes a client
and sends the response to the client and the client acknowledges with the
transaction ID. This is like alike pattern 1, but there are acknowledgement
at both endpoints.
Do you think any of these patterns are viable, how would you implement them
Also, could it be useful to have sort of an opensource proxy which runs a
queue, it recieves the requests from the clients, queues them and forwards
them to the appropiate endpoint? I read a bit about MQ Transport but I think
we need a free option.
Probably I am talking to much nonsense now, so I'll shut up now :)
PS. I am reading Programming Web Services with Perl, didn't find much about
this subject, I am at chapter 6 though.