RMI - это технология клиент-сервер, и канал RMI может использоваться для связи с удаленными объектами на сервере, но сервер не может перезвонить клиенту.
Ничто не мешает вам, тем не менее, иметь два канала RMI, чтобы обе стороны действовали как сервер и клиента, если вы понимаете, о чем я.
Мы сделали это, чтобы отправить уведомление настольному приложению, подключенному к центральному серверу, и оно работало нормально.Настольное приложение экспортирует (на языке RMI) заглушку обратного вызова, подключается к центральному серверу и регистрирует заглушку обратного вызова на сервере.Затем сервер может отправлять уведомления всем подключенным настольным приложениям.Конечно, вам необходимо настроить сетевую инфраструктуру (брандмауэр и т. Д.), Чтобы были возможны двунаправленные соединения.Так что да, я бы сказал, что это возможно, но требует немного больше усилий, чем один однонаправленный канал.
Я только очень быстро взглянул на эту статью , но, похоже,чтобы проиллюстрировать идею (если это не так, дайте мне знать, я уверен, что могу найти фрагмент кода для этого варианта использования).
Другие альтернативы включают опрос или JMS, как упомянуто в другом ответе.