サーバ側のマッピング |
7 |
この章の内容は、サーバ側の移植性のある RFP についての最終提案において記述されるサーバフレームワークアーキテクチャに従って改訂される予定です。
問題点 - この章は、移植性のある RFP についての提案の結果を待って改訂されます。
<interface_name>
のそれぞれについて、マッピングでは次のように Java クラスが定義されます。
// Java
public class _<interface_name>ImplBase implements <interface_name> {
}
各オブジェクトは、ほとんどの IDL インタフェースを派生した ORB オブジェクトを実装します。このインタフェースが <interface_name> である場合、サーバントクラスは _<interface_name>
ImplBase
を継承する必要があります。IDL インタフェースのマッピング仕様で定義されているように、サーバントクラスには、オブジェクトの実装がサポートする IDL インタフェースのオペレーションと属性に対応する public メソッドを定義する必要があります。_<interface_name>
ImplBase
によって定義されるすべての abstract メソッドの要件を満たすには、これらのメソッドを提供するだけで十分です。
connect()
メソッドを呼び出すことで、ORB に明示的に接続されます (「6.12 ORB」を参照)。
また、オブジェクトの実装は、それ自体はローカルな (Java) オブジェクトとして実装されていない (マッピングされた) IDL オペレーションに (マッピングされた IDL の) パラメータとして渡された場合も、自動的かつ暗黙的に ORB に接続されます。つまり、オブジェクトの実装は、整列化されて、プロセスのアドレス空間の外側に送られなければなりません。ベンダーは、「早い段階で」(たとえば、インスタンスの生成の時点で) そのようなオブジェクト実装を接続することは自由ですが、少なくとも上記のようにオブジェクトが渡される時点では、実装を ORB に接続する必要があります。
connect()
メソッドを呼び出しても、何も行われません。 7.2.5 一時 ORB オブジェクトの切断
ORB の disconnect()
メソッドを呼び出すことにより、サーバントを ORB から切断できます (「6.12 ORB」を参照)。このメソッドから返ったあとでは、着信する要求は、ORB が出す例外 CORBA::OBJECT_NOT_EXIST によって拒否されます。このメソッドを使用すると、リモートクライアントに対して、ORB オブジェクトが破壊されたように見せることができます。
オブジェクトが接続されていない状態で
disconnect()
メソッドを呼び出しても、何も行われません。 7.3 持続性オブジェクト
問題点 - 移植性の仕様に依存します。