stify"> Деякі пояснення. Створення серверного об'єкту за допомогою методу _this () застосовується досить рідко. Одержуваний таким чином об'єкт має сукупність характеристик, вкрай ускладнюють його використання. У розділі, присвяченому об'єктним адаптерам, буде розказано, як створювати В«нормальніВ» CORBA-об'єкти. p align="justify"> Результатом виклику методу _this () є об'єктна посилання. Тип MyInterface визначає proxy-об'єкт, MyInterface_ptr (або MyInterface_var) - покажчик на нього. Це перший вид об'єктної посилання - на рівні додатку. p align="justify"> Друга об'єктна посилання - посилання рівня ORB - з'являється в результаті її перетворення до рядка з подальшим записом цього рядка у файл. Ви можете ознайомитися з вмістом цього файлу відразу після запуску серверного додатку. p align="justify"> Об'єктна посилання записується у файл, звідки її може вважати додаток-клієнт. Зрозуміло, цей спосіб швидше демонструє принцип організації зв'язку між клієнтом і сервером, ніж представляє яку-небудь практичну цінність. p align="justify"> Зверніть увагу на те, що одне і теж додаток може бути як клієнтом, так і сервером - CORBA в цьому плані не накладає ніяких обмежень.
Управління об'єктами
Створений у попередньому прикладі об'єкт (НЕ сервант, а сам CORBA-об'єкт) є об'єктом тимчасовим. Це означає, що він не може існувати довше, ніж існує компонент CORBA, який його створив. У розглянутому прикладі цей компонент явно не був присутній у програмі, і такий спосіб створення CORBA-об'єкта часто називають В«неявнимВ». У реальних програмах більшість CORBA-об'єктів створюється іншим шляхом. Даний розділ і присвячений розгляду пов'язаних з цією темою питань. p align="justify"> Об'єктні адаптери
Компонент CORBA, який відповідає за створення CORBA-об'єктів, їх сервантів, підтримує зв'язок між ними і бере участь в доставці виклику клієнта потрібного серванта, називається об'єктним адаптером.
Стандарт CORBA дозволяє мати і використовувати кілька різних об'єктних адаптерів. В даний час існують два стандартних об'єктних адаптера - BOA (Basic Object Adapter) і POA (Portable Object Adapter). Використання BOA визнано застарілим, оскільки це не дозволяє забезпечити переносимість серверних CORBA-додатків, і ми про нього говорити не будемо. p align="justify"> У реальних CORBA-додатках використовується деревоподібна ієрархія об'єктних адаптерів. У корені її знаходиться так званий Root POA - об'єктний адаптер за замовчуванням. Програміст отримує доступ до Root POA c допомогою стандартного коду, використовуваного в багатьох випадках:
CORBA :: ORB_var orb = CORBA :: ORB_init (argc, argv); :: Object_var rpObj => resolve_initial_references ("RootPOA");
PortableServer :: POA_var rootPoa = PortableServer :: POA :: _narrow (r...