Существенная вещь для распространения компонентов Redhawk и устройств на нескольких машинах убедитесь, что ваш CORBA связи корректно работает между машинами. Обычно это соответствует правильной настройке /etc/omniORB.cfg. Во-первых, на одной машине у вас должны быть запущены omniNames и omniEvents и настройте свой конфиг на section 2.6 of the documentation. Для справки:
InitRef = NameService=corbaname::127.0.0.1
InitRef = EventService=corbaloc::127.0.0.1:11169/omniEvents
На второй машине ваш InitRef должен указывать на первую машину. Если первая машина была 192.168.1.100, то конфигурация вашей второй машины может содержать:
InitRef = NameService=corbaname::192.168.1.100
InitRef = EventService=corbaloc::192.168.1.100:11169/omniEvents
Вы должны быть в состоянии проверить это работает правильно на второй машине с:
$ nameclt list
Следующий выпуск вам необходимо решить, что объекты CORBA прослушиваются на соответствующих сетевых интерфейсах и публикуют информацию в своих IOR, что позволяет им достичь. В каждом из ваших конфигурационных файлов я рекомендую вам добавить строку, чтобы сообщить omniORB, какие объекты конечной точки CORBA, созданные на этой машине, должны прослушиваться. Например, на вашей первой машине:
endPoint = giop:tcp:192.168.1.100:
endPoint = giop:unix:
Это говорит OmniORB, что объекты CORBA должен прослушивать TCP порт по своему выбору на 192.168.1.100. Он также добавляет Unix-канал для быстрого доступа объектами на одном компьютере. omniORB опубликует эту информацию в IOR для этого объекта. То, что вы выбираете здесь, важно: если вы используете IP-адрес, недоступный другим машинам, или используйте имя хоста, которое другие машины не могут решить, соединение CORBA завершится с ошибкой.
После того, как вы настроили параметр endPoint на обеих машинах, вам может быть полезно проверить информацию, содержащуюся в ваших IOR. Если вы можете получить доступ к службе именования, вы можете получить IOR для своих объектов. Например, если вы домен с именем работает 'REDHAWK_DEV', вы можете получить IOR менеджера домена через:
$ nameclt resolve REDHAWK_DEV/REDHAWK_DEV
Затем кормить IOR в catior:
$ catior IOR:...
catior будет декодировать ИОЗ для вас и покажите вам, к какому адресу и порту подключается клиент.
Bingo! Это делает трюк. Однако я не могу найти командную команду. – jerhill
Катиор содержится в пакете omniORB-utils. Для серии REDHAWK 1.8, где omniORB распространяется вместе с REDHAWK, исполняемый файл называется catior.omni. –