(2005.11.6更新)
CORBAを使う場合,どのインターフェイスがどのようなメソッド・プロパティを持っているか知るのは重要。
(2005.11.6 この節追加。)
CORBAのオブジェクトサーバを実装する際の、ORBごとの違いを吸収するためにPOAが導入された。
(図はCORBA 3.0 第11章より)
servant がCORBAオブジェクトの実装になる。
POAは、PortableServer::POAインターフェイス実装で、次の図のプロパティ、メソッドを持つ。
しごく簡単なオブジェクトサーバ実装の手順は、
CORBA 2.6.1: Minimum CORBA
module CORBA
{
typedef string ORBid;
interface ORB
{
typedef string ObjectId;
typedef sequence <ObjectId> ObjectIdList;
exception InvalidName {};
string object_to_string (in Object obj);
Object string_to_object (in string str);
// Service information operations
boolean get_service_information (
in ServiceType service_type,
out ServiceInformation service_information);
ObjectIdList list_initial_services ();
// Initial reference operation
Object resolve_initial_references (in ObjectId identifier)
raises (InvalidName);
void run();
};
};
module CORBA {
typedef sequence <string> arg_list;
ORB ORB_init (inout arg_list argv, in ORBid orb_identifier);
};
CORBA 2.6.1: Minimum CORBA
module CORBA {
interface Object
{
boolean is_nil ();
Object duplicate ();
void release ();
boolean is_equivalent (in Object other_object);
unsigned long hash(in unsigned long maximum);
Policy get_policy (in PolicyType policy_type);
DomainManagersList get_domain_managers ();
};
};