(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 (); }; };