HTTP トンネリングにより、ファイアウォールの外側にあるクライアントは、クライアント・サイドの Object Request Broker (ORB) がサーバー・サイドの ORB に送信する必要があるすべての情報を通常の HTTP 要求にバンドルできます。この要求はその後、他の HTTP 要求と同じようにポート 80 のサーバーに送信することができます。
始める前に
クライアント・サイドの ORB が IBM® ORB であることを確認します。クライアントで IBM ORB 以外の ORB を使用している場合、トンネリングは機能しません。
また、トンネリングに Secure Sockets Layer (SSL) セキュリティーが必要な場合、必要な証明書と鍵ファイルが構成されることを確認します。
このタスクについて
ファイアウォールの外側にあるクライアントが、ファイアウォールの内側のサーバー上にある EJB モジュールなどのモジュールと通信することが必要な場合があります。
クライアント・サイドの ORB とサーバー・サイドの ORB は、クライアントとサーバーの間でこの対話を管理します。ただし、ファイアウォールは通常、クライアントがサーバー・サイドの ORB と通信を行う際に使用するポートをブロックします。そのため、ご使用のインストール済み環境でクライアントがサーバー・サイドの ORB との通信に使用するポートをブロックするファイアウォールが使用されている場合、HTTP トンネリングを設定する必要があります。
IIOPTunnelServlet (クラス・ファイル com.ibm.CORBA.services.IIOPTunnelServlet.class として製品に同梱されている) を使用すると、RMI-IIOP に組み込まれている HTTP クライアント (Java™ クライアントなど) が、ファイアウォールの内側にあるサーバーと通信できるようになります。
このクラス・ファイルは、次の 3 つのクラス・ファイルとともにファイル WAS_HOME/plugins/com.ibm.ws.runtime_9.0.jar 内にバンドルされます。これらの追加クラス・ファイルによりサーブレットの機能が向上します。
- com.ibm.CORBA.services.redirector.ConnectionStream.class com.ibm.CORBA.services.redirector.Redirector.class
com.ibm.CORBA.services.redirector.RedirectorController.class
トンネリングが使用可能になっている場合、サーバー上の IIOPTunnelServlet サーブレットは HTTP 要求を受け取り、ORB 情報をすべてアンパックします。次にサーブレットは、クライアントの代わりにサーバー・サイドの ORB を呼び出します。サーバー・サイドの ORB は、通常の ORB 要求を処理するように要求を処理し、サーブレットに応答します。
サーブレットは ORB 応答を HTTP 応答にパックし、その応答をファイアウォールを介してクライアント・サイドの ORB に送信し返します。
クライアント・サイドの ORB は HTTP 応答をアンパックし、応答を取り出します。
トンネリングは、HTTP 上だけでなく HTTPS 上でも実行できます。そのため、セキュリティー・プロシージャーでサーバーに対するすべての通信が Secure Sockets Layer (SSL) 保護されている必要がある場合、SSL セキュリティーを使用してトンネリング・クライアントを保護することができます。
- IIOPTunnelServlet サーブレットが含まれるインストール可能な IIOPTunnel.ear ファイルを作成します。
サーバーで IIOPTunnelServlet サーブレットを実行できるようにするには、このサーブレットをサーバーにインストールできるアプリケーションの一部にしておく必要があります。アプリケーション・アセンブリー・ツールを使用して、このサーブレットが含まれるインストール可能な IIOPTunnel.ear ファイルを作成することができます。例えば、製品に同梱されているアセンブリー・ツールを使用する場合は、次のようにします。
- ツールを開始します。
- WEB パースペクティブを開きます。
- 「プロジェクト・エクスプローラー」ビューで、空のペインを右クリックし、「新規」>「動的 Web プロジェクト」を選択します。
- 「動的 Web プロジェクトの作成 (Create Dynamic Web Project)」ウィザードで、プロジェクト名を IIOPTunnel、または意味のある他の名前に変更します。 デフォルトでは、「モジュールを EAR プロジェクトに追加」オプションが選択され、EAR プロジェクト名は IIOPTunnelEAR に設定され、コンテキスト・ルートは IIOPTunnel に設定されます。
- これらのデフォルト設定を保持し、「終了」をクリックします。
- com.ibm.ws.runtime_9.0.jar ファイルを Web プロジェクト・ビルド・パスに追加します。
Web デプロイメント記述子に新規サーブレットを登録する前に、WAS_HOME/lib/plugins/com.ibm.ws.runtime_9.0.jar ファイル内にある IIOPTunnelServlet サーブレットをビルド・パスに追加する必要があります。
- 「IIOPTunnel Web プロジェクト (IIOPTunnel Web Project)」を右クリックして、「プロパティー」>「Java ビルド・パス
(Java Build Path)」を選択します。
- 「ライブラリー」タブを選択して、「外部 JAR の追加」ボタンを押します。
- com.ibm.ws.runtime_9.0.jar ファイルを追加し、「OK」をクリックします。
- EAR ファイルをエクスポートします。
- IIOPTunnelEAR プロジェクトを右クリックします。
- 「エクスポート」>「EAR ファイル」をクリックし、選択した宛先ディレクトリーに
ブラウズし、EAR ファイル名を IIOPTunnel.ear、またはステップ 1d で指定したファイル名に
指定します。
- 「終了」をクリックします。
IIOPTunnel.ear ファイルを取得します。このファイルはデプロイの準備ができています。
- IIOPTunnel.ear ファイルをターゲット・アプリケーション・サーバーにインストールします。 インストール中は、すべてのデフォルト値を受け入れます。
サーバー上の IIOPTunnelServlet の実際のロケーションを反映させるために、クライアント内で tunnelAgentURL を調整することを覚えておいてください。
トンネル URL フォーマットの詳細説明: http(s)://host_name:port/context_root/Servlet_URLmapping
host_name:port は、IIOPTunnelServlet があるサーバーに割り当てられたホスト名とポートです。ポートは HTTP ポートまたは HTTPS ポートのいずれかで、セキュリティー要件によって決まります。
context_root の値と Servlet_URLmapping の値は、サーブレット web.xml ファイル内の context-root および servlet-URLmapping エレメントに対して定義される値と一致する必要があります。
例えば、サーブレットがデフォルトのサーバー、context-root=iioptunnel、および Servlet-URLmapping=tunnel にインストールされる場合、以下の URL をクライアント内の tunnelAgentURL に指定する必要があります。
http://localhost:9080/IIOPTunnel/IIOPTunnelServlet
サーブレットがデプロイされ、正常に稼働していることを確認するには、ブラウザーを開いて、http:// hostname:9080/iioptunnel/tunnel を指します。サーブレットが稼働していれば、ブラウザーはサーブレットを通常のファイルと同じようにダウンロードしようとします。
ダウンロードは取り消すことができます。
- サーブレットがデプロイされ、正常に稼働していることを確認します。
サーブレットがデプロイされ、正常に稼働していることを確認するには、ブラウザーを開いて http:// hostname:9080/IIOPTunnel/IIOPTunnelServlet を指します。
サーブレットが稼働していれば、ブラウザーはサーブレットを通常のファイルと同じようにダウンロードしようとします。
ダウンロードは単純にキャンセルします。
サーブレットのデプロイおよび実行に関して問題が発生した場合は、以下のパラメーターを指定します。
-Dcom.ibm.CORBA.TunnelAgentURL=https://localhost:9080/IIOPTunnel/IIOPTunnelServlet?debug=true
- トンネリングを使用可能にするようにクライアント・サイドの ORB の ORB サービスを構成します。
クライアントは、サーバー・サイド ORB との通信に標準の IIOP および HTTP トンネリングを使用する必要があるかどうかを判別します。そのため、クライアントで以下の ORB プロパティーを設定する必要があります。
com.ibm.CORBA.ForceTunnel=ALWAYS
com.ibm.CORBA.TunnelAgentURL=http://host_name:9080/IIOPTunnel/IIOPTunnelServlet com.ibm.CORBA.FragmentSize=0
クライアント ORB でトンネリングを使用可能にするには、com.ibm.CORBA.ForceTunnel プロパティーを
ALWAYS に設定する必要があります。この設定は、このクライアントで常にトンネリングが行われることを示します。com.ibm.CORBA.ForceTunnel プロパティーに指定できるその他の値は次のとおりです。
- NEVER。これは、HTTP トンネリングを使用不可にすることを示します。
TCP 接続が失敗した場合、CORBA システム例外 (COMM_FAILURE) が発生します。
- WHENREQUIRED は、TCP 接続が失敗した場合に HTTP トンネリングを使用することを示します。
2 番目のプロパティーは、トンネリング・サーブレットに到達する完全修飾 URL を指定します。ポート 9080 はサーバーの WC_defaulthost ポートです。
指定するポート番号は、IIOPTunnelServlet サーブレットがあるサーバーの構成ファイル serverindex.xml で指定されるポート番号に一致する必要があります。
3 番目のプロパティーは ORB フラグメント化をオフにします。通常、ORB は通信をフラグメントに分割してパフォーマンスを向上させますが、ORB がフラグメント化されている場合はトンネリングが機能しません。
これらのプロパティーは、以下に示すように、パラメーターとして JVM コマンド行に追加することによって設定することもできます。
-Dcom.ibm.CORBA.ForceTunnel=always
-Dcom.ibm.CORBA.TunnelAgentURL=http://host_name:9080/iioptunnel/tunnel
-Dcom.ibm.CORBA.FragmentSize=0
オプションで、クライアント・サイドのセキュリティー設定を指定する場合、以下のプロパティーを設定することもできます。
-Dcom.ibm.CORBA.ConfigURL=file:PROFILE_ROOT/properties/sas.client.props
- サーバー・サイド ORB でフラグメント化をオフにします。 サーバー・サイド ORB でトンネリングを使用可能にするために構成する必要があるプロパティーは com.ibm.CORBA.FragmentSize プロパティーだけです。フラグメント化をオフにするには、このプロパティーを 0 に設定する必要があります。
- 管理コンソールで、とクリックし、トンネリング・サーブレットをインストールするサーバーをクリックします。
- 「ORB サービス」をクリックしてから、をクリックします。
- 「」をクリックして、「名前」フィールドで com.ibm.CORBA.FragmentSize と指定し、
「値」フィールドで 0 と指定します。
- 「」をクリックして、変更を保存します。
- アプリケーション・サーバーを停止してから再始動します。
次のタスク
クライアントは、HTTP トンネリング用に構成されたサーバーに、ファイアウォールを介して要求の送信を開始することができます。