Хотя я привязываю свои серверы к реестру RMI, поэтому клиенты могут искать сервис из источника, который всем известен, мне нужно знать немного больше о механизме RMI, потому что я не хотят использовать реестр в будущем, когда мои клиенты должны иметь возможность создать UnicastRemoteObject
(или его подкласс) для конкретного сервера, с которым они хотят связаться.Создание RMI-заглушки на клиенте
Я чувствую, что этот вопрос может иметь очевидный ответ, но я действительно был бы благодарен, если бы кто-нибудь мог вести меня, хотя шаги. Что нужно знать клиенту для создания заглушки и использования удаленного сервиса?
Итак, у меня есть сервер на одном устройстве, и у меня есть клиент, который хочет использовать эту услугу. Объект сервера был экспортирован, но не был зарегистрирован в каталоге в местоположении, известном как серверу, так и клиенту. Может ли клиент сам создать заглушку, а не использовать тот, который был экспортирован сервером? Какая информация нужна серверу для создания заглушки? IP-адрес сервера? Порт? Что еще? Как мне собрать всю эту информацию для создания заглушки?
Я не хочу использовать реестр, потому что использование реестра слишком централизовано. На самом деле у меня есть кластер устройств, которые действуют как клиенты и серверы, где эти устройства предоставляют и используют одну и ту же услугу. Каждое устройство представляет собой собственный автономный нейрон, и вместе они функционируют как нервная система.
Кластер растет, когда устройство, не являющееся членом этого кластера, связано с членом кластера. Когда член, не являющийся членом, становится членом, член, с которым он занимается, позволяет другим членам узнать о заглушке нового участника, чтобы другие участники могли попытаться задействовать новый член. Использование реестра не приносит ничего полезного этому кластеру.
Без регистрации первый член для включения не-члена выполняется так «вручную». Я предполагаю, что этому ручному процессу будет помогать, когда запускается устройство, не являющееся членом, и устройство, не являющееся членом, позволяет оператору знать (через некоторый дисплей) параметры, которые должны использоваться для создания заглушки, которая позволяла бы первому членному устройству участвовать Это.
Спасибо за помощь. Я добавил дополнительную информацию к моему вопросу. Это может помочь вам лучше понять, что я пытаюсь сделать. Пожалуйста, снова просмотрите вопрос и попробуйте заполнить меня, если сможете. Благодарю. –
Я добавил несколько подробностей о том, почему использование реестра нежелательно. Надеюсь, вы можете наполнить меня дополнительной информацией. Если RMI не работает для того, что я хочу, знаете ли вы о технологии на базе Java? –
Хммм ... секретные классы функциональности, которые были бы хороши, если бы они были вообще доступны ... возможно, в следующей редакции спецификации RMI, некоторые из этих функций могут быть частью API. Тем временем, я полагаю, я могу запустить экземпляр реестра на устройстве, не являющемся членом, и остановить его, как только участник приобрел заглушку. Спасибо за совет. –