in reply to HTTP server guidance

Using Apach or IIS will mean that you could hit a different process every time. It is possible to keep a socket open with mod_perl or PerlEx, but that will only work if the proprietary server doesn't have any rules about flow, i.e. you may get one conversation bouncing between different connections on each request.

If that's a problem, you can use the technique that merlyn discussed in one of his columns using HTTP::Daemon to keep a separate process alive and connected to the backend server for each HTTP client. This will not scale very well, but is ideal for a small load.