TCP/IP Proxy Servers

The Object class provides the transient JadeTcpIpProxy subclass, which implements TCP/IP network proxy support that enables you to open a TCP/IP network connection through a proxy server.

If you cannot establish a direct TCP/IP connection because of physical network layouts or restrictions (for example, the use of a firewall), you may have to establish a connection through a proxy server by using the functionality provided by this class.

Proxies can be used as part of a firewall solution, as they sit between the client application and the server application and do not permit the client to connect directly to the server. The client is required to connect to the proxy, and asks the proxy to connect to the server on the client’s behalf. The proxy may also require authentication from the client before it allows the connection to the server. There are a number of different types of proxies, the two major types being HyperText Transfer Protocol (HTTP) and SOCKS. From the perspective of the client, the difference between the types of proxy is the protocol (that is, the type and format of messages) used between the client and the proxy. The other issue for the client is determining the type of proxy and where it is running.

The TcpIpConnection class networkProxy property contains a reference to the JadeTcpIpProxy class. If this reference contains a non-null value, the JadeTcpIpProxy class connect method is executed, which in turn calls the TcpIpConnection class open or openAsynch method for each attempt to connect to the proxy. If the value of the networkProxy property value is null, the TcpIpConnection class open or openAsynch method is executed.

For details, including code examples and issues to consider when reimplementing JadeTcpIpProxy class functionality, see Chapter 1 of your JADE Encyclopaedia of Classes. See also "Firewall for the JADE Internet Environment", in Chapter 4 of the JADE Installation and Configuration Guide.