Question : Smart proxy/router?

I have a desktop application -- we'll call it 'DT' -- which has the ability to configure a proxy server name (by name, not IP).  When set, it of course communicates with the proxy server.  The proxy server then routes it to the Internet, where it goes to a remote server,  and responses are then sent back to the proxy server, which then shuttles that response back to the DT application.

The problem is, what happens if the proxy server goes down?  (I'm currently working on high-availability capabilities for the proxy server, but even that won' t make it 100% available.)  From the users perspective, the DA application simply appears to stop working.

What I've been looking for is a device or service that would behave like a smart router.... it would watch the proxy server and, if it's up, it routes the DT application connection to the proxy server.  But if the proxy server goes down, I'd want the smart router to route the connection directly to the Internet.  The default would always be the proxy server, so, even if the connection was routed directly to the Internet,the smart router would keep watching for the proxy server to come back up, and if it did, to then route the connection through it.

I've suggested to our network people that maybe the DNS could be tweaked, but they point out that the propagation of a change would take 15-20 minutes, and may require users flush their DSN entries if there's a change.  That's WAY too long, plus I desperately need something that removes the user from the equation... it needs to work without needing the user to do anything.  Downtime should be < 30 seconds.

When I first started looking for something like this, I thought it would be easy, but I'm having trouble finding ANYthing resembling it.   Can anyone either:

 1.  point me to some existing software/hardware that can do this.
 2.  tell me a better way to accomplish the same thing
 3.  point me to some code that might help me write my own

Thanks!

Answer : Smart proxy/router?

I think the Ultramonkey solution will give you as close as possible to transparent service.  The idea being that the proxy handles the request and then forwards to an available server (and it monitors which servers are available using heartbeat and some other bits and pieces).  This effectively creates a solution that's load-balanced as well as HA.

In terms of monitoring the service - I use Nagios for monitoring - which gives a pretty accurate depiction of uptime and can make connections on specific ports, allowing a service to be monitored to ensure it's listening.  Another option would be to specify the proxy on the Nagios box and then to get it to make periodic http requests using the proxy, which would give you reporting on how well the proxy is performing (ie. not just that the service is up, but that it is *actually* working...).

Ultramonkey is effectively a bundle of linux services that all work in conjuction with each other when deployed (ldirectord, heartbeat, etc) which simplify deployment.  I'm not aware of a commercial solution that would provide similar functionality - although you might be able to get close with VMWare....it might be another avenue to explore
Random Solutions  
 
programming4us programming4us