Мы говорим о двух разных технологиях, каждая из которых имеет разные сценарии использования.RMI - это интерфейс прикладного программирования Java (API), который позволяет удаленно вызывать методы между Java-программами, и он предназначен для создания синхронных распределенных приложений.RMI является Java-эквивалентом удаленных вызовов процедур (RPC).
С другой стороны, ActiveMQ - это продукт, промежуточное программное обеспечение, ориентированное на сообщения (MOM), полезное для приема и обработки асинхронных сообщений (очередей или тем),и приложения Java, как правило, взаимодействуют с такой системой с помощью API-интерфейса JMS.
Вы будете использовать RMI, когда вам нужно будет общаться с другим приложением Java в распределенном, синхронном режиме, тогда как вы будете использовать JMS для отправки сообщений.обрабатываться асинхронно, и в принципе обработка может включать системы, написанные с использованием любой другой технологии, а не только Java (в отличие от RMI).
Асинхронный обмен сообщениями обычно используется для решения архитектурной проблемы интеграции разнородных систем, что оченьХорошая (не зависящая от технологии) книга на эту тему: Шаблоны корпоративной интеграции: проектирование, создание и развертывание решений для обмена сообщениями .
Наконец, ActiveMQ в действии - это приятнокнига по ActiveMQ.