General J2EE: control server behind firewall from a public ip server

  1. control server behind firewall from a public ip server (2 messages)

    I'm looking for a Java technology that would allow me to accomplish the following: host a (behind firewall) initiates a connection to host b (public ip on different network) Now requests sent to host b, should be fowarded to host a. This is for an automation project I have in mind, but the general idea is n-hosts need to connect to a central server to be controlled. I know how to implement this with sockets, but I'd rather not. Anyone know of a technology that would support this? Thanks.
  2. A proxy? A VPN? If you do it any other way, there's no point in having a firewall and you should just get rid of it, or at least move your server to the DMZ.
  3. I can't move my server, I don't have control over the firewall and I don't want to mess with proxy/tunnels. What I'm trying to do is similar to how instant messenger software works (e.g. client connects to IM server, another client sends message and server initiates calls to client that is behind firewall).