Возможно ли, чтобы клиент получил доступ к IMR для получения имени хоста серверов?Может ли клиент получить доступ к Corba IMR для получения информации о сервере?
ответ
Даже то, что предлагает туэргейст (адрес хоста), не обязательно там, где работает сервер. Прежде всего, сервер не может быть запущен, но все еще может быть зарегистрирован в IMR. Во-вторых, имя хоста может отображаться на многие IP-адреса; IP-адрес может быть разрешен для нескольких машин, используя какой-то дополнительный сетевой уровень отказоустойчивости. Наконец, если спецификация CORBA Fault Tolerant сочетается с IMR, то есть еще один уровень косвенности.
Вопрос, поднятый teurgeist, является наиболее подходящим, и совет не добавлять сервисы, зависящие от местоположения, - это мудрец.
В качестве сноски, полагаясь на любое поведение IMR, также плохо, потому что IMR является одним из самых неопределенных аспектов спецификации CORBA. По сути, в конце концов он говорит: «Поставщик может предоставить один, и вот что он может сделать». Вот и все. Таким образом, если вы полагаетесь на конкретные поведения или конкретные API, вы мгновенно привязались к конкретной реализации IMR конкретного поставщика.
Это возможно косвенно. Поскольку вы получите «местоположение вперед» из IMR (репозиторий реализации). Ваш ORB должен иметь возможность извлекать адрес хоста из перенаправления объекта.
Вопрос: Что вы хотите делать с этой информацией?
CORBA является (должно быть) местоположением прозрачным ... Таким образом, не добавляйте сервисы, зависящие от местоположения!
Укажите, пожалуйста, имя ORB или пример кода. Это облегчает мне пример, который соответствует вашим потребностям. – tuergeist