OpenDDS — DCPSInfoRepo убит, но издатель и подписчик обмениваются данными

Я тренируюсь с OpenDDS примерами DCPS с OpenDDS-3.11/examples/DCPS/IntroductionToOpenDDS по Ubuntu 16. Согласно AAA_README.txt, найденному в том же месте, я сначала начал DCPSInfoRepo OpenDDS-3.11/bin/DCPSInfoRepo -ORBEndpoint iiop://localhost:12345, а затем subscriber и publisher соответственно.

Я мог получить publisher публикацию и subscriber получение тем, на которые подписаны. Насколько я понимаю, DCPSInfoRepo создает repo.ior, который будет содержать запись участника.

Но если я убью DCPSInfoRepo, я увижу, что publisher и subscriber продолжают общаться, но, очевидно, не смогу добавить другого участника, так как DCPSInfoRepo не работает.

Я хотел бы знать, почему publisher и subscriber продолжают общаться в отсутствие DCPSInfoRepo. Разве нам не нужен DCPSInfoRepo сервер после добавления участников? просьба уточнить.


person Panch    schedule 18.08.2017    source источник


Ответы (1)


DCPSInfoRepo используется только для обнаружения, в тот момент, когда издатели/подписчики узнают друг о друге, они будут продолжать общаться даже без DCPSInfoRepo.

Я бы порекомендовал вам использовать обнаружение RTPS, которое исходит из стандарта DDS. Это полностью устраняет необходимость в DCPSInfoRepo (что является единственной точкой отказа).

person Johnny Willemsen    schedule 18.08.2017
comment
Благодарю за разъяснение. Теперь я понимаю роль DCPSInfoRepo. Спасибо за подсказку о RTPS, но будет ли он поддерживать конечные точки, подключенные через TCP или только UDP. Я довольно новичок в DDS. любые указатели будут очень признательны. - person Panch; 20.08.2017