Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ќтображение IDL на €зыки программировани€




«адачей отображени€ IDL на конкретный €зык программировани€ €вл€етс€ генераци€ типов данных, классов, констант, методов Ц всего того, что позвол€ет прикладным част€м серверных и клиентских приложений взаимодействовать с инфраструктурой CORBA и с ее помощью друг с другом.

‘рагменты, реализующие некоторые задачи инфраструктуры CORBA, отображаютс€ на €зыки программировани€ несколько иначе, чем стандартные IDL Ц объ€влени€.

—келет содержит сгенерированный класс (часто этот класс тоже называют скелетом). ¬ этом классе есть все необходимое дл€ взаимодействи€ серверного приложени€ с CORBA. Ќет в нем реализации тех методов, которые программист объ€вил в IDL Ц декларации. ƒанный класс нужен только дл€ того, чтобы на основе его создать производный класс (им€ этого производного класса программист задает сам), который содержит все реализации.

“аким образом, задача создани€ серверной логики дл€ данного типа CORBA Ц объектов разбиваетс€ на две части: системно-коммуникационна€ часть обеспечиваетс€ сгенерированным кодом в базовом классе, а прикладна€ часть записываетс€ €вно программистом в классе, производном от сгенерированного.

Ќетрудно сообразить, что серванты €вл€ютс€ экземпл€рами этого производного класса.

—о стабами дело обстоит несколько иначе. —генерированный код на стороне клиента используетс€ полностью, как есть. ѕрограммисту нужны только элементарные знани€ об его использовании.

ќпишем подробнее, что происходит на стороне клиента.

Ќа базе IDL Ц объ€влени€ генерируетс€ класс, который содержит реализацию всех методов, объ€вленных дл€ данного интерфейса. Ќо реализаци€ этих методов не имеет никакого отношени€ к бизнес Ц логике приложени€. «адача этих методов Ц упаковка информации о вызове (им€ метода, число, типы, значени€ его аргументов, тип возвращаемого результата, перечень возможных исключений и т.п.) и преобразование этой информации в вид, пригодный дл€ передачи на сторону сервера по сети в соответствии с требовани€ми протокола GIOP (General Inter-ORB Protocol) Ц протокола обмена информацией CORBA.

ƒл€ выполнени€ реального вызова в процессе работы программы нужно создать экземпл€р этого класса. Ёто делает не программист, а сама CORBA. “ака€ переменна€ (ее называют proxy-объект) создаетс€ автоматически в тот момент, когда в клиентское приложение попадает объектна€ ссылка CORBA. ѕри создании proxy-объекта создаетс€ "указатель" на него, который и используетс€ программистом дл€ выполнени€ удаленных вызовов, которые физически €вл€ютс€ локальными вызовами методов proxy-объекта. “ип этого указател€ также генерируетс€ автоматически на основе IDL Ц объ€влений. Ётот указатель имеет также название "объектна€ ссылка CORBA". Ќе следует ее путать с "объектной ссылкой CORBA", котора€ €вл€етс€ результатом создани€ CORBA Ц объекта на стороне сервера.

ќбъектные адаптеры.

ќсновные задачи объектных адаптеров Ц OA:

—оздание CORBA Ц объектов, и, следовательно, объектных ссылок уровн€ ORB IOR (Interoperable Object Reference). —оздание объекта не об€зательно св€зано с созданием серванта (это может быть выполнено и позднее). — каждым создаваемым объектом сопоставл€ютс€ Object ID Ц уникальный ключ внутри фабрики объектов и Object Key - Object ID и идентификатор фабрики объектов.

—оздание сервантов по указанию программиста, например в момент поступлени€ запроса от клиентского приложени€.

”правление созданными сервантами и направление к ним запросов клиентов.

”ничтожение сервантов. Ёто нетривиальна€ задача, так как следует убедитьс€ в том, что сервант никому больше не нужен. ¬ услови€х многопоточных приложений это непросто. ќбычно OA ведет счетчик объектных ссылок на каждый сервант.

”мение работать с OA нужно только Ђчистомуї CORBA Ц программисту. “ем не менее, попытаемс€ кратко разобратьс€ с некоторыми характеристиками работы объектных адаптеров.

ѕолитика нитей. ќпредел€етс€, каким образом обрабатываютс€ запросы. ¬арианты ответов: один за другим, запросы клиентов к серванту могут поступать в конкурентном режиме из различных потоков.

ѕолитика продолжительности жизни. —оздаваемые серванты могут быть временными (прекращать существование по окончании работы серверного приложени€, создавшего его) или долгоживущими.

ѕолитика уникальности объектного идентификатора. ћожно разрешить (или запретить) режим работы, при котором на один сервант может ссылатьс€ несколько объектных ссылок. Ёто удобно примен€ть в том случае, если есть много долгоживущих объектов, состо€ние которых хранитс€ в Ѕƒ (дл€ каждого объекта в отдельной записи), тогда удобно примен€ть в качестве ключа значение Object ID дл€ серванта, который не имеет состо€ни€, но в случае необходимости извлекает всю необходимую информацию из Ѕƒ.

ѕолитика назначени€ идентификатора определ€ет, кто назначает ID создаваемому объекту, сама фабрика объектов или программист.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2016-11-18; ћы поможем в написании ваших работ!; просмотров: 409 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

¬елико ли, мало ли дело, его надо делать. © Ќеизвестно
==> читать все изречени€...

750 - | 555 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.007 с.