2016-02-19 2 views
0

Как я понял до сих пор, обычным способом загрузки приложений CORBA является запуск внешней службы именования на какой-либо выделенной машине, и все экземпляры находят и подключают к ней настройка соединения/управление ссылками. Однако, что, если я планирую запустить небольшие «на лету» сети (возможно, не более 10 экземпляров) с более короткими сроками службы? Представьте себе аппараты с дистанционным управлением с одним хостом в каждой сети, которые управляют сбором и обработкой данных. В идеале каждая из этих сетей хоста/слуги должна иметь возможность загружаться, не завися от внешних сервисов (или, по крайней мере, сделать ее прозрачной для пользователя) и большого количества усилий по настройке, не мешать другим сетям в диапазоне и быть в состоянии отключиться без влияния другие.Как упростить настройку и управление связью CORBA в реальных приложениях

Я еще не понял, как хорошо решить эту проблему с помощью CORBA. Рамка, в которой я больше всего использую, - это ACE/TAO, если есть только зависящие от структуры решения. Особенно при развертывании приложения для клиентов я не хочу накладывать на них сложные процедуры настройки и настраивать их с минимальным ручным вмешательством, насколько это возможно. Есть ли способ сделать это, или другие технологии более применимы в этом случае?

ответ

1

Многие учебники CORBA используют службу именования, но в реальных системах я вижу, что многие люди ее не используют. Это единственная точка отказа, которая также вызывает упоминаемую внешнюю зависимость. В большинстве встроенных систем люди используют поддержку IORTable с фиксированным номером порта. На данный момент вы знаете IP-адрес хоста, на котором расположен сервер CORBA, вы можете построить corbaloc для вызова на сервер CORBA. Для примера см. ACE_wrappers/TAO/tests/Forwarding, которая является частью распространения TAO.

+0

Могу ли я использовать IORTable для разрешения службы COSEventService или FTEventService? Я включил код запуска в исполняемый файл приложения и изменил его так, чтобы он привязывал слугу к IORTable после его активации в корневой POA. Однако я получаю исключение TRANSIENT при попытке сузить ссылку до ее соответствующего типа. Я делаю это неправильно? – user1709708

+0

IORTable используется для слуг на сервере приложений, не уверен, что вы подразумеваете под COSEvent/FTEvent. Включите ведение журнала регистрации TAO, чтобы узнать, почему ORB выдает исключение. –

+0

Мой вопрос: если я запустил EventService на одном из моих сетевых узлов, могу ли я использовать тот же механизм, который вы описали для подключения потребителей/производителей с другого сетевого узла? Я думал, что EventChannel технически также является слугой экземпляров на разных сетевых узлах ?! – user1709708

Смежные вопросы