RMI является синхронным и не поддерживает обратные вызовы, насколько я знаю.
JMS - это способ Java EE выполнять асинхронные вызовы. Если вы используете Spring, это будет POJO, управляемый сообщениями.
Еще одно место, которое вы можете посмотреть, поскольку вы уже используете Spring, - это Spring Batch или Spring Integration . Я бы попробовал любой из них, прежде чем сам это написать.
Но если это не сработает для вас, ваше подозрение верно - вам придется реализовать это самостоятельно.