このドキュメントは、J2SETM の今回のリリースでは更新されていません。
更新されている場合、ここには以下のトピックが含まれています。
クライアントが CORBA オブジェクトの操作を呼び出すには、クライアントとサーバ (オブジェクトの実装) の両方が ORB (Object Request Broker) という CORBA ソフトウェアコンポーネントを使用する必要があります。ORB は、クライアントとサーバとで異なる位置、プラットフォーム、およびプログラム言語の違いを埋める役目を果たす共通の基準です。ORB は、ネットワーク経由で互いにコンタクトをとることが可能で、オブジェクトの参照 (CORBA オブジェクトハンドル) を作成および解釈することができます。また、パラメータを IIOP が使用する形式に整列化したり、IIOP が使用する形式から他の形式に整列化することもできます。ここでは説明を省略しますが、ORB は、クライアント/サーバ通信以外のサービスも提供します。
CORBA オブジェクトの操作を呼び出すには、次の 2 通りの方法があります。
CORBA オブジェクトで静的な呼び出しを行う場合、Java クライアントには、操作を実行するサーバントへのオブジェクト参照が必要になります。オブジェクト参照には、次の 2 つの重要な機能があります。
OMG IDL は、CORBA オブジェクトのインタフェースを定義する言語です。idlj コンパイラは、OMG IDL モジュールごとに Java パッケージを生成します。OMG IDL モジュールで定義された各インタフェース Foo
に対して生成されたパッケージには、クライアントプログラマにとって有用な以下の項目が含まれています。
Foo
。org.omg.portable.IDLEntity、org.omg.CORBA.Object、および操作インタフェースを拡張したものです。シグニチャーインタフェースは、指定した型のインタフェースを他のインタフェースで使用する場合にメソッド宣言のシグニチャー型として使用します。クライアントの観点から述べると、CORBA Foo
オブジェクトのオブジェクト参照は、このインタフェースを実装します。
注: スタブは Foo
インタフェースを実装します。ここで各メソッドのコードを生成して引数を整列化してメソッドを呼び出し、引数の整列化を解除します。
FooOperations
。サーバ側のマッピングで使用され、同じ場所にあるクライアントとサーバに最適化された呼び出しを提供する機構として使用されます。サーバの開発者は、操作インタフェースで指示されたメソッドに対して実装を提供します。
注: サーバの開発者は、通常、FooPOA
を拡張し、操作インタフェースで提供されたメソッドに対して実装を提供します。
FooHelper
クラス。このクラスは、補助メソッド、特に Java のキャストに対応する CORBA の narrow()
を定義します。
CORBA の動的呼び出しは「request」と呼ばれるオブジェクトを使用して、呼び出しに関するすべてを保持します。その中には、オブジェクト参照、操作名、そのパラメータ、および結果の領域が含まれます。クライアントは、操作を記述する request オブジェクトを構築し、その invoke
メソッドを呼び出します。このメソッドはスタブと同様の方法で要求をディスパッチします。invoke メソッドが返されると、その結果は request オブジェクトで利用できるようになります。
動的な呼び出しの鍵となるのは、自己記述型データを保持する要求機能です。この機能により、request オブジェクトは、パラメータに関係なく、任意の操作の任意の呼び出しを代理実行できます。自己記述型データの各要素は、OMG IDL では Any
という特別な型を持っています。Any
は、タイプコード (その値は OMG IDL により定義されている) と値で構成され、タイプコードには値の型を指定します。
クライアント | サーバ | 例外 | 初期化 | ネームサービス
ホーム |
概念 |
プログラミング |
リファレンス |
チュートリアル |