This forum has been archived. Please start a new discussion on GitHub.

Questions on firewall traversal

I think I'm looking for a lighterweight solution for using bi-directional sockets in Ice. I'm not sure I see too many instances where the end-users of our application will deploy a Glacier firewall.

I have a couple of questions and I'm also wondering about the new capabilities that will be offered in Glacier2.

1. If I have an application that use callbacks as well as multiple object adapters is it necessary to use the Glacier starter service to create a router for each adapter?

2. What additional capabilities will be supported in Glacier2?

3. Is there any possiblity of supporting bi-directional sockets in Ice without the use of a Glacier server? In many scenarios there is a firewall that allows outgoing connections on any port, but inbound connections are not allowed. Currently, our application makes extensive use of callbacks.

Regards --Roland


  • Glacier2 will be much more lightweight than Glacier. There is no starter anymore. It's a single process, with a single port the clients connect to, and another single port the servers connect to. Furthermore, Glacier2 can be deployed behind an existing firewall, i.e., you can forward just one single port from your existing firewall to Glacier2. This means that it will be much easier for your end-users to deploy Glacier2 together with your application. In fact, you could make it part of your application, i.e., install Glacier2 together with your server. Glacier2 and your server could then simply communicate over loopback.

    Ice 2.0 with Glacier2 is about to be released in the next days. Let me suggest that you have a look at the Glacier2 chapter in the manual that will accompany Ice 2.0. I hope this will answer your questions in detail.
  • Hi Marc, Thanks for the quick response. This sounds very promising and exactly what I was hoping for in Glacier2.

    I'm also wondering if you've given any thought to creating what is sometimes called a rendevous or replication server. Sorry, there might be a better term.

    What I would like to do is create a generic (as in not necessarily specific to a single ICE application) Internet Service/Server that can serve as a common access point where User A behind firewall A can find and establish indirect connections to user B behind firewall B. The users would use the rendevous point, that is on the Internet, to register, find other users and establish connections between them. The rendevous server would then do the necessary routing between connections. This would be simliar to the way instant messaging systems work, such as Jabber, only the content would be real-time and not http or XML based.

    Regards --Roland