Java EEは、異なるマシンに配置されているオブジェクト間で、IIOP(Internet Inter-ORB Protocol)を介してリクエストの呼出しを行うORB(Object Request Broker)機能を提供します。
ORB
ORBは、リモートサーバ上のアプリケーションを呼び出すため、以下の処理を実行します。このため、アプリケーションは、ネットワーク通信に関する処理を実装する必要がありません。
呼出し側で指定した名前のオブジェクトをネットワーク上から検索
通信コネクションの管理
リクエストデータを通信可能なデータ型に変換(この変換処理をマーシャリングと呼ぶ)して、オブジェクトへ送信
サーバで運用するオブジェクトのメソッドを呼び出して結果をクライアントに返信
ORBの定義変更は、Interstage Java EE管理コンソールまたはasadminコマンドで編集できます。
RMI-IIOP
RMI-IIOPを使用するアプリケーションは、RMI(Remote Method Invocation)形式でアプリケーションを作成することで、IIOP通信してリモートサーバで運用されたEnterprise JavaBeanを呼び出すことができます。JNDIを使用してリモートサーバのネーミングサービスにアクセスする場合もIIOP通信で行います。
同一Java VM上のアプリケーションを呼び出す場合には、ORBが自動的にIIOP通信を介さずにアプリケーションを呼び出し、不要なネットワーク通信が抑止されるため、性能が最適化されます。
IIOPリスナー
IIOPリスナーは、Enterprise JavaBeanのクライアントよりネットワーク接続を受信するリスナーソケットです。ドメインには、3つのリスナーが用意されています。各リスナーには、リスナーポート番号、ネットワークアドレス、SSL情報を指定してください。
IIOPリスナーの定義変更は、Interstage Java EE管理コンソールまたはasadminコマンドで編集できます。
ファイアウォールの連携
ファイアウォールを跨り安全にシステム構築を行う場合、HTTP(S)に準拠したファイアウォール/プロキシサーバを経由してWebアプリケーションでリクエストを受信し、ファイアウォール内でIIOP通信するようにシステムを構築してください。
注意
ファイアウォールを跨りIIOP通信でリモートサーバ上のアプリケーションを呼び出す場合、IIOPリスナーのリスナーポートへのアクセスが許可されるようにファイアウォールの設定を行う必要があります。しかし、この設定はセキュリティ上でリスクが高いため、お勧めしません。(HTTP-IIOPゲートウェイを利用したHTTPトンネリング機能は、Java EE実行環境では使用できません。)
通信データの安全性
IIOP通信で送信されるデータは、SSLにより暗号化を行うことで、盗聴/改ざん/なりすましなどの危険を回避し、情報のプライバシーを守ることができます。また、IIOPの認証機能を提供しています。詳細は、「第6章 Java EE機能のセキュリティ」を参照してください。
スタブ
RMI-IIOPでリモートサーバのアプリケーションを呼び出す場合、リモートインタフェースを実装するスタブを経由します。スタブは、配備時に生成されます。スタブを経由することで、クライアントはリモートサーバで運用されているアプリケーションを、あたかも同一マシン上で運用するアプリケーションのように呼び出すことができます。
Java EE実行環境では、スタブは運用時にメモリ上で動的に生成されます。これを、動的スタブと呼びます。動的スタブを使用する場合、リモートインタフェースが呼出し側のクラスパスに設定されている必要があります。
オブジェクト管理
アプリケーションのオブジェクトと名前の管理は、ネーミングサービスで行われます。ネーミングサービスには、JNDI APIを使用してアクセスします。詳細は、「3.11.1 ネーミングサービス」を参照してください。
例外情報
IIOP通信でエラーが発生した場合に出力される例外情報については、「13.59.6 IIOP通信時の例外情報」を参照してください。