Подтвердить что ты не робот

Разница между JMX и RMI

Для чего используется JMX? Я просматривал некоторые обучающие программы на JMX, все, что они делают, регистрирует некоторые Mbeans и вызывает эти Mbeans из jconsole. Если это та цель, для которой она используется, то в чем разница между JMX и RMI (удаленный вызов процедуры). Спасибо заранее.

4b9b3361

Ответ 1

"Удаленный вызов процедур" - это концепция распределенных вычислений, в которой процесс, выполняющийся на одном хосте, может вызывать процедуру на другом удаленном хосте. RMI в Java - одна из реализаций этой концепции.

MBeans - это классы bean, которые могут быть зарегистрированы на шине JMX для прослушивания событий, прибывающих на шину, или для отправки событий на шине или для сбора различных видов данных от других участвующих Mbeans и т.д. Это чаще всего используется для мониторинга работоспособности серверов приложений и т.д. Он может проверять количество активных соединений, количество свободной памяти и многие другие статистические данные для механизма анализа. И да, они могут быть вызваны удаленно с использованием механизма RPC. Это жизненно важно для его функционирования в качестве сборщиков данных, поскольку в кластере серверов приложений данные должны извлекаться из всех сборщиков и сопоставляться в одном месте для анализа.

Ответ 2

JMX architecture.

Да, в JMX мы регистрируем наши объекты на сервере mbean с помощью ObjectName и objectReference. Затем мы можем изменить атрибуты или вызвать методы удаленно.

Разъем позволяет использовать технологию MBean-серверов Java Management Extensions (JMX) для удаленных клиентов на основе технологии Java. Возможны многие различные варианты разъемов. В частности, существует множество возможностей для протокола, используемого для связи по соединению между клиентом и сервером. Некоторые соединители, определенные спецификацией удаленного API JMX,

  • " Разъем RMI": этот стандартный протокол удаленного вызова метода (RMI) должен поддерживаться каждой реализацией, которая соответствует стандарту JMX Remote API.
  • " Общий коннектор": стандарт JMX Remote API также определяет необязательный протокол, основанный непосредственно на сокетах TCP, называемых JMX Messaging Protocol (JMXMP). Реализация стандарта может опустить разъем JMXMP, но не должна опускать разъем RMI. Платформа Java SE не включает дополнительный соединитель JMXMP.
  • " Пользовательские протоколы": соединитель может также реализовать протокол, который не определен в технологии JMX.

Если вы посмотрите на вышеупомянутую архитектуру, соединитель обеспечивает полный удаленный доступ к API MBeanServer с использованием различных коммуникационных фреймворков (RMI, IIOP, JMS, WS-* …), тогда как адаптер адаптирует API к другому протоколу (SNMP, …) или к веб-интерфейсу GUI (HTML/HTTP, WML/HTTP, …).

Обычно мы используем JMX-коннекторы для подключения к серверу MBean, но мы также можем выбирать другие разъемы.

Подводя итог, JMX является технологией Java, а RMI - для удаленного вызова метода - специфичная реализация Java интерфейса удаленного вызова процедур, который может использоваться в JMX для удаленного доступа.

Ответ 3

JMX - это общий API для публикации интерфейса для мониторинга внутренних компонентов приложения Java (Java-версия SNMP).

RMI предназначен для удаленного вызова метода, специфичной для Java интерфейса удаленного вызова процедур, они не связаны вообще.