I have to do a workshop in a firewalled environment which is preventing me to show everything I would like and I'm looking for a workaround.
I'll be demoing a software which runs on Windows. During the workshop, participants are expected to connect to this software from their phones with a browser.
Windows Phone
+-------------------+ +------------------+
| | | |
| Demo software | | |
| | | |
| | | |
| :8080 | <--------+ Browser |
| | | |
| | | |
+-------------------+ +------------------+
The problem is that all workshop machines are firewalled and it is impossible (due to the rigidity of the organization where I'm doing the workshop) to open a hole in the firewall.
So I was thinking to run some kind of a proxy (luckily, that is allowed) on each workshop machine. This proxy would connect to some kind of a server on the outside, register itself with some autogenerated ID and start waiting for data.
A phone would then connect to http://server.xxx/proxyid and server would route its request to the apropriate proxy, based on the proxy ID (via already established connection, so the data would be able to pass through the firewall). Proxy would then contact the web server in the demoed software, get the response and pass it back to the server, which would forward the response to the phone.
Firewall
+
|
Windows |
+---------------------+ |
| | |
| +-------------+ | | server.xxx
| | Demo SW | | | +------------------------+
| | | | | | |
| | :8080 | | | | |
| +--------+----+ | | | |
| ^ | | | |
| | | | | |
| +--------+----+ | | | |
| | Proxy | | | | |
| | +------------> |:80 |
| | ID | | | | |
| +-------------+ | | +------------------------+
| | | ^
+---------------------+ | |
| |
| |
+ |
Phone |
+-----------------------------------+
| Browser | |
| +--------------+----------------+ |
| | http:://server.xxx/ID | |
| | | |
| +-------------------------------+ |
+-----------------------------------+
Are there any building blocks that would allow me to put this workaround together so I don't have to program it? Preferably the server part should run on Windows too (some kind of Linux would also work).