Lots of WMS services are slow. The server constantly has to render images and the users simply have to wait and wait and wait. The solution: a wms proxy. You get quicker responses. Usability for the user goes up and the amount of work for the WMS server goes down.
Normally you’ve got data; a WMS server renders an image; the client gets the image. With a proxy, the proxy is the WMS server’s client and the proxy itself is the server that takes direct requests from the client. Often, the proxy only caches a certain area on the map.
What happens is that the proxy stores rendered tiles, so there is no re-re-re-rendering on the WMS server anymore. The proxy just stores a heap of tiles and serves them. If the proxy doesn’t yet have a tile, it only has to create it once (and thus it only requests it once from the actual WMS server).
Every map proxy uses tiles. There are two basic ways in which a proxy can generate them:
There are three well-known proxies:
WMS proxies can be accessed as a regular WMS server: GetCapabilities, GetMap, GetFeatureInfo, GetLegendGraphic and so on.
Apart from the speed increase, a proxy also means you can still get maps even if the original WMS server isn’t available. So you get a bit more reliability for free.
There are also drawbacks.
Despite the drawbacks, the advantages outweigh them! Speed!
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):