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

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

17 голосов
/ 24 февраля 2011

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

Заранее спасибо!

Ответы [ 3 ]

20 голосов
/ 12 июля 2013

JMX architecture.

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

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

  • " RMI Connector ": Этот стандартный протокол удаленного вызова методов (RMI) должен поддерживаться каждой реализацией, соответствующей стандарту JMX Remote API.
  • " Generic Connector ": Стандарт 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 для удаленной связи.

10 голосов
/ 24 февраля 2011

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

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

7 голосов
/ 24 февраля 2011

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

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

...