views:

489

answers:

3

I'd like to put some kind of caching reverse proxy in front of a SOAP webservice over HTTP to improve both performance and availability. Is there some software that performs this? (Preferably free and easy to install/use).

The idea is here: the responses of the webservice vary with the request, but for each request the responses rarely change. So the proxy could store the responses for each request for some time, and give the cached response when the same request is sent again. There is only a limited number of different requests. The proxy does not need to parse and understand the request or response. But it does need to understand HTTP POSTs and, say, construct a hash of the request in order to find the correct response. Caching by the URL, as done normally in HTTP Proxies, does not help here.

(Of course one can cache the webservice's results in the application that calls the webservice, but I am looking for a solution that is standalone, independent from the application.)

A: 

Edit: Misread the question, sorry! HTTP caches work at the HTTP level. SOAP tunnels through HTTP, hiding the relevant information in the request's entity body where HTTP caches can't look.

This limitation of SOAP was recognized and SOAP 1.2 aims to correct some of that by supporting GET methods as well. See this overview, "HTTP GET Support".

If you can use SOAP 1.2, and set your application up to support GET, then the advice below still stands.

Original: Yes, check out Squid and HAProxy for example.

The term used to describe this setup is reverse proxy cache (this article cites others).

Jim Ferrans
Do these cache the HTTP POSTs used for Webservices? I am aware that HTTP proxys cache HTTP GETs, but I didn't think it works for POST as well, does it?
hstoerr
You're completely right, of course, I was being dyslexic and missed "SOAP".
Jim Ferrans
+1  A: 

Try Ventus Proxy For Webservices. it does exactly what you need.

http://www.ventusproxy.com

Joan
A: 

I'm not sure if it works with SOAP or not, but check out Varnish. It's a very powerful cache/reverse proxy.

vpetersson