Разница между RMI и ActiveMQ
В настоящее время я пытаюсь освоиться с многоуровневыми приложениями (архитектура сервера / клиента). Для этого я создал Service Interfaces и связанные реализации Service.
Оба модуля - Клиент и Сервер - знают Интерфейсы (включены через путь сборки).
Назначение приложения заключается в том, что клиент может получать данные с сервера, а также отправлять данные на сервер, где они сохраняются в базе данных.
Кажется, мне нужно общение в обоих направлениях. Является ли "стандартный" Java RMI правильным подходом для этого или мне нужно использовать реализацию JMS, такую как ActiveMQ?
Я не вижу основной разницы между этими двумя подходами? Единственный, что RMI является синхронным и JMS асинхронным или это нечто большее?
Кроме того, вы можете порекомендовать учебник ActiveMQ или даже книгу?
1 ответ
Мы говорим здесь о двух разных технологиях, каждая из которых имеет разные сценарии использования. RMI - это интерфейс прикладного программирования Java (API), который обеспечивает удаленный вызов методов между программами Java, и его предназначение - для создания синхронных распределенных приложений. RMI является Java-эквивалентом удаленных вызовов процедур (RPC).
С другой стороны, ActiveMQ - это продукт, промежуточное программное обеспечение, ориентированное на сообщения (MOM), полезное для приема и обработки асинхронных сообщений (очередей или тем), и приложения Java обычно связываются с такой системой с использованием JMS API.
Вы будете использовать RMI, когда вам нужно общаться с другим Java-приложением распределенным, синхронным способом, тогда как вы будете использовать JMS для отправки сообщений, которые должны обрабатываться асинхронно, и в принципе обработка может включать системы, написанные с использованием любой другой технологии, а не только Java. (в отличие от RMI).
Асинхронный обмен сообщениями обычно используется для решения архитектурной проблемы интеграции разрозненных систем. Очень хорошая (не зависящая от технологии) книга по этому вопросу - " Шаблоны интеграции предприятий: проектирование, создание и развертывание решений для обмена сообщениями".
Наконец, ActiveMQ в действии - хорошая книга об ActiveMQ.