About Glacier2

3 min read

3 min read

3 min read

3 min read

3 min read

3 min read

3 min read

3 min read

3 min read

Glacier2 is a forward proxy deployed near your servers. Clients connect to Glacier2 and send it their requests, and Glacier2 forwards these requests to the servers. Callbacks from the servers to the clients travel the other way through Glacier2, over the connections the clients opened. The servers are usually unaware of Glacier2: the clients connected through Glacier2 look like local clients to them. The illustration below shows two clients and two servers communicating through Glacier2.

Clients A and B use bidirectional connections through their firewall to Glacier2. Glacier2 forwards requests to servers A and B, which send callbacks to Glacier2 over separate connections.

Glacier2 has the following advantages and limitations.

  • Clients often require only minimal changes to use Glacier2.
  • Only one front-end port is necessary to support any number of servers, allowing a Glacier2 router to easily receive connections from a port-forwarding firewall.
  • The number of connections to back-end servers is reduced. Glacier2 effectively acts as a connection concentrator, establishing a single connection to each back-end server to forward requests from any number of clients. Similarly, connections from back-end servers to Glacier2 for the purposes of sending callbacks are also concentrated.
  • Servers are unaware of Glacier2's presence, and require no modifications whatsoever to use Glacier2. From a server's perspective, Glacier2 is just another local client, therefore servers are no longer required to advertise "public" endpoints in the proxies they create. Furthermore, back-end services such as IceGrid can continue to be used transparently via a Glacier2 router.
  • Callbacks through Glacier2 are supported without requiring new connections from servers to clients. In other words, the router forwards a callback from a server to a client over the connection that the client established to the router, thereby eliminating the administrative requirements associated with supporting callbacks in the client firewall.
  • Glacier2 requires no knowledge of the application's Slice definitions and therefore is very efficient: it routes request and reply messages without unmarshalling the message contents.
  • In addition to its primary responsibility of forwarding Ice requests, Glacier2 offers support for user-defined session management and authentication.
  • Clients connect to the router over a connection-oriented transport such as TCP or SSL; Glacier2 does not accept UDP connections from clients.
  • Callback objects in a client must use a Glacier2-supplied category in their identities.