ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzahh_5.4.0.1/proxies.htm

244 lines
15 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="Proxy Support" />
<meta name="abstract" content="IBM Toolbox for Java includes proxy support for some classes. Proxy support is the processing that IBM Toolbox for Java needs to carry out a task on a Java virtual machine (JVM) when the application is on a different JVM." />
<meta name="description" content="IBM Toolbox for Java includes proxy support for some classes. Proxy support is the processing that IBM Toolbox for Java needs to carry out a task on a Java virtual machine (JVM) when the application is on a different JVM." />
<meta name="DC.Relation" scheme="URI" content="page1.htm" />
<meta name="DC.Relation" scheme="URI" content="rzahh505.htm" />
<meta name="DC.Relation" scheme="URI" content="rzahh502.htm" />
<meta name="DC.Relation" scheme="URI" content="proxex1.htm" />
<meta name="DC.Relation" scheme="URI" content="proxex2.htm" />
<meta name="DC.Relation" scheme="URI" content="proxex3.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="proxies" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Proxy Support</title>
</head>
<body id="proxies"><a name="proxies"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Proxy Support</h1>
<div><p>IBM<sup>®</sup> Toolbox
for Java™ includes
proxy support for some classes. Proxy support is the processing that IBM Toolbox for Java needs
to carry out a task on a Java virtual machine (JVM) when the application
is on a different JVM.</p>
<div class="section"><p>Proxy support includes <a href="#proxies__usingencryption">using
the Secure Sockets Layer (SSL)</a> protocol to encrypt data.</p>
<p>The
proxy classes reside in jt400Proxy.jar, which ships with the rest of the IBM Toolbox
for Java.
The proxy classes, like the other classes in the IBM Toolbox for Java, comprise a set of platform independent Java classes
that can run on any computer with a <a href="jvm.htm#jvm">Java virtual
machine</a>. The proxy classes dispatch all method calls to a server application,
or proxy server. The full IBM Toolbox for Java classes are on the proxy server. When
a client uses a proxy class, the request is transferred to the proxy server
which creates and administers the real IBM Toolbox for Java objects.</p>
<p>Figure 1 shows how the
standard and proxy client connect to the server. The proxy server can be
the iSeries™ that
contains the data.</p>
<p><strong>Figure 1: How a standard client and a proxy client
connect to a server</strong></p>
<p><img src="rzahh505.gif" longdesc="rzahh505.htm" alt="Standard and proxy connections" /></p>
<p>An
application that uses proxy support performs more slowly than if it uses standard IBM Toolbox
for Java classes
due to the extra communication needed to support the smaller proxy classes.
Applications that make fewer method calls have less performance degradation.</p>
<p>Before
proxy support, the classes containing the public interface, all the classes
needed to process a request, and the application itself ran on the same JVM.
When using proxy support, the public interface must be with the application,
but classes for processing requests can run on a different JVM. Proxy support
does not change the public interface. The same program can run with either
the proxy version of IBM Toolbox for Java or the standard version.</p>
</div>
<div class="section"><h4 class="sectiontitle">Using the jt400Proxy.jar file</h4><p>The goal of the multiple-tier,
proxy scenario is to make the public interface jar file as small as possible,
so that downloading it from an applet takes less time. When you use the proxy
classes, you don't need to install the entire IBM Toolbox for Java on the client. Instead, use <a href="jar.htm#jar">AS400JarMaker</a> on
the jt400Proxy.jar file to include only the required components, which makes
the jar file as small as possible.</p>
<p>Figure 2 compares the size of the
proxy jar files with the standard jar files:</p>
<p><strong>Figure 2: Size comparison
of proxy jar files and standard jar files</strong></p>
<p><img src="rzahh502.gif" longdesc="rzahh502.htm" alt="Size comparison of proxy jar files and standard jar files" /></p>
<p>An
additional benefit is that proxy support requires you to have fewer ports
open through a firewall. With standard IBM Toolbox for Java, you must have multiple ports open.
This is because each IBM Toolbox for Java service uses a different port to communicate
with the server. For example, Command call uses a different port than JDBC,
which uses a different port than print, and so on. You must allow each of
these ports through the firewall. However, when using proxy support, all the
data flows through the same port.</p>
</div>
<div class="section"><h4 class="sectiontitle">Standard proxy and HTTP tunneling</h4><p>Two options are
available for running via a proxy: standard proxy and HTTP tunneling:</p>
<ul><li>Standard proxy is where the proxy client and proxy server communicate
by using a socket over a port. The default port is 3470. Change the default
port by using the <a href="javadoc/com/ibm/as400/access/ProxyServer.html#SETPORT(INT)"> setPort()</a> method on the ProxyServer class, or by using
the <tt>-port</tt> option when starting the proxy server. For example: <pre> java com.ibm.as400.access.ProxyServer -port 1234</pre>
</li>
<li>HTTP tunneling is where the proxy client and proxy server communicate
by way of the HTTP server. The IBM Toolbox for Java provides a servlet that handles the
proxy request. The proxy client calls the servlet by way of the HTTP server.
The advantage of tunneling is that you are not required to open an additional
port through the firewalls, because communication is by way of the HTTP port.
The disadvantage of tunneling is that it is slower than standard proxy.</li>
</ul>
<p>IBM Toolbox
for Java uses
the proxy server name to determine if standard proxy or tunneling proxy is
being used:</p>
<ul><li>For standard proxy, just use the server name. For example: <div class="p"><pre> com.ibm.as400.access.AS400.proxyServer=myServer</pre>
</div>
</li>
<li>For tunneling, use a URL to force the proxy client to use tunneling. For
example: <pre> com.ibm.as400.access.AS400.proxyServer=http://myServer</pre>
</li>
</ul>
<p>When running standard proxy, a socket connection exists between the
client and server. If that connection fails, the server cleans up resources
associated with that client.</p>
<p>When using HTTP tunneling, using the HTTP
protocol makes proxy connectionless. That is, a new connection is made for
each data flow. Because the protocol is connectionless, the server does not
know if the client application is no longer active. Consequently, the server
does not know when to clean up resources. The tunneling server solves this
problem by using a thread to clean up resources at a predetermined interval
(which is based on a timeout value).</p>
<p>At the end of the predetermined
interval, the thread runs and cleans up resources that have not been used
lately. Two <a href="systemproperties.htm#systemproperties">system properties</a> govern
the thread:</p>
<ul><li>com.ibm.as400.access.TunnelProxyServer. <a href="systemproperties.htm#systemproperties__proxy">clientCleanupInterval</a> is
how often, in seconds, the cleanup thread runs. The default is every two hours.</li>
<li>com.ibm.as400.access.TunnelProxyServer. <a href="systemproperties.htm#systemproperties__proxy">clientLifetime</a> is
how long, in seconds, a resource can be idle before it is cleaned up. The
default is 30 minutes.</li>
</ul>
</div>
<div class="section"><h4 class="sectiontitle">Using proxy server</h4><p>To use the proxy server implementation
of the IBM Toolbox
for Java classes,
complete the following steps:</p>
<ol><li>Run AS400ToolboxJarMaker on jt400Proxy.jar to discard classes that you
do not need. This step is optional but recommended.</li>
<li>Deliver jt400Proxy.jar to the client. For Java applets, you may be able to download
the jar file from the HTML server.</li>
<li>Determine what server you will use for the proxy server. <ul><li>For Java applications, the proxy server can be any computer.</li>
<li>For Java applets, the proxy server must be running on the
same computer as the HTTP server.</li>
</ul>
</li>
<li>Ensure that you have put jt400.jar in the CLASSPATH on the server.</li>
<li>Start the proxy server or use the proxy servlet: <ul><li>For standard proxy, start the proxy server by using the following command:
<div class="p"><pre> java com.ibm.as400.access.ProxyServer</pre>
</div>
</li>
<li>For tunneling proxy, configure your HTTP server to use the proxy servlet.
The servlet class name is com.ibm.as400.access.TunnelProxyServer and it is
contained in jt400.jar.</li>
</ul>
</li>
<li>On the client, set a <a href="systemproperties.htm#systemproperties">system
property</a> to identify the proxy server. IBM Toolbox for Java uses this system property to determine
if standard proxy or tunneling proxy is being used. <ul><li>For standard proxy, the property value is the name of the machine that
runs the proxy server. For example: <div class="p"><pre> com.ibm.as400.access.AS400.proxyServer=myServer</pre>
</div>
</li>
<li>For tunneling proxy, use a URL to force the proxy client to use tunneling.
For example: <div class="p"><pre> com.ibm.as400.access.AS400.proxyServer=http://myServer</pre>
</div>
</li>
</ul>
</li>
<li>Run the client program.</li>
</ol>
<p>When you want to work with both the proxy classes and classes not
in jt400Proxy.jar, you can refer to jt400.jar instead of jt400Proxy.jar. jt400Proxy.jar
is a subset of the jt400.jar and, therefore, all of the proxy classes are
contained in the jt400.jar file.</p>
</div>
<div class="section" id="proxies__usingencryption"><a name="proxies__usingencryption"><!-- --></a><h4 class="sectiontitle">Using SSL</h4><p>When using proxy,
three options are available for encrypting data as it flows from the proxy
client to the target iSeries server. SSL algorithms are used to encrypt
data.</p>
<ol><li>The data flows between the proxy client and proxy server can be encrypted.</li>
<li>The data flows between the proxy server and target iSeries server can be encrypted.</li>
<li>Both one and two. The data flow between proxy client and proxy server,
and the flow between the proxy server and the target iSeries can be encrypted.</li>
</ol>
<p>See <a href="sslinfo.htm#sslinfo">Secure Sockets Layer</a> for
more information.</p>
</div>
<div class="section"><h4 class="sectiontitle">Examples: Using proxy servers</h4><p>The following are
three specific examples for using a proxy server with the steps listed above.</p>
<ul><li><a href="proxex1.htm#proxex1">Running a Java application using proxy support</a></li>
<li><a href="proxex2.htm#proxex2">Running a Java applet using proxy support</a></li>
<li><a href="proxex3.htm#proxex3">Running a Java application using tunneling proxy support.</a></li>
</ul>
</div>
<div class="section"><h4 class="sectiontitle">Classes enabled to work with proxy server</h4><p>Some IBM Toolbox
for Java classes
are enabled to work with the proxy server application. These include the following:</p>
<ul><li><a href="jdbc.htm#jdbc">JDBC</a></li>
<li><a href="rla.htm#rla">Record-level access</a></li>
<li><a href="ifs.htm#ifs">Integrated file system</a></li>
<li><a href="print.htm#print">Print</a></li>
<li><a href="dtaq.htm#dtaq">Data Queues</a></li>
<li><a href="cmdc.htm#cmdc">Command Call</a></li>
<li><a href="pgmc.htm#pgmc">Program Call</a></li>
<li><a href="spgcall.htm#spgcall">Service Program Call</a></li>
<li><a href="uspace.htm#uspace">User space</a></li>
<li><a href="dataarea.htm#dataarea">Data area</a></li>
<li><a href="as400obj.htm#as400obj">AS400 class</a></li>
<li><a href="ssl.htm#ssl">SecureAS400 class</a></li>
</ul>
<p>Other classes are not supported at this time by jt400Proxy. Also,
integrated file system permissions are not functional using only the proxy
jar file. However, you can use the <a href="jar.htm#jar">JarMaker</a> class
to include these classes from the jt400.jar file.</p>
<p><strong></strong></p>
</div>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="rzahh505.htm">Long description of Figure 1: How a standard client and a proxy client connect to a server (rzahh505.gif)</a></strong><br />
</li>
<li class="ulchildlink"><strong><a href="rzahh502.htm">Long description of Figure 1: Size comparison of proxy jar files and standard jar files (rzahh502.gif)</a></strong><br />
</li>
<li class="ulchildlink"><strong><a href="proxex1.htm">Example: Running a Java application using Proxy Support</a></strong><br />
The following example shows you the steps to run a Java application
using proxy support. </li>
<li class="ulchildlink"><strong><a href="proxex2.htm">Example: Running a Java applet using proxy support</a></strong><br />
The following example shows you the steps to run a Java applet
using proxy support.</li>
<li class="ulchildlink"><strong><a href="proxex3.htm">Example: Running a Java application using Tunneling Proxy Support</a></strong><br />
The following example shows you the steps to run a Java application
using tunneling proxy support.</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="page1.htm" title="IBM Toolbox for Java is a set of Java classes that allow you to use Java programs to access data on your iSeries servers. You can use these classes to write client/server applications, applets, and servlets that work with data on your iSeries. You can also run Java applications that use the IBM Toolbox for Java classes on the iSeries Java virtual machine (JVM).">IBM Toolbox for Java</a></div>
</div>
</div>
</body>
</html>