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