Архитектура JMX имеет три уровня.
• Уровень инструментария.
Уровень инструментария определяет, каким образом ресурсы будут заключены в специальные Java-компоненты, называемые Management Beans (MBeans).
• Уровень агентов.
Уровень агентов состоит из сервера компонентов MBean и агентов, формирующих инфраструктуру управления. Реализованы следующие службы:
○ мониторинг;
○ уведомление о событиях;
○ таймеры.
• Уровень управления.
Уровень управления определяет, каким образом внешние управляющие приложения могут взаимодействовать с указанными ниже уровнями (протоколы, API и т. п.).
Как работает JMX?
Управление ресурсами осуществляется посредством компонентов JMX MBean. Они представляют собой не EJB, а простые Java beans, которые должны соответствовать шаблонам, описанным в спецификации JMX.
Поставщики, которые хотят управлять своей системой через JMX, должны предложить набор компонентов MBean. Каждый компонент MBean предназначен для того, чтобы служить оболочкой, т. е. представлять определенный ресурс во время работы с ним. Например, чтобы предоставить доступ к серверу приложений как к управляемому ресурсу, платформа WebSphere должна предоставить MBean сервера приложений.
Внешние приложения могут взаимодействовать с компонентами MBean при помощи JMX-коннекторов и адаптеров протоколов. Коннекторы используются для того, чтобы соединить агент с удаленным управляющим приложением, поддерживающим JMX. В таком взаимодействии участвует коннектор JMX-агента и коннектор-клиент в управляющем приложении.
Вот основные свойства JMX-коннекторов.
• Коннекторы ориентированы на механизм транспорта. Например, поставщик может предоставить RMI-коннектор, позволяющий Java-приложениям удаленно взаимодействовать с компонентами MBean.
• Коннектор преобразует вызовы Java-компонентов в поток протокола.
• Между вызовами методов клиента и операциями MBean существует соответствие 1:1.
• Коннекторы представляют собой низкоуровневый API для вызова компонентов MBean.
Адаптеры протоколов
Адаптеры протоколов обеспечивают представление функций управления JMX-агента с использованием заданного протокола. Управляющие приложения, которые связываются с адаптером протокола, обычно являются специфичными для данного протокола.
Вот основные свойства JMX-адаптеров протоколов.
• Адаптеры протоколов приспосабливают операции компонентов MBean и MBeanсервера к представлению в формате данного протокола и, возможно, к представлению в виде другой информационной модели, например, SNMP или HTTP.
• Между вызовами методов клиента и операциями MBean уже не существует соответствия 1:1.
• Адаптеры представляют собой высокоуровневый API для вызова компонентов MBean.
Сервер MBean
Каждая JVM™ с поддержкой JMX содержит сервер MBean, на котором регистрируются все компоненты MBean, имеющиеся в системе. Именно сервер MBean предоставляет доступ ко всем зарегистрированным компонентам MBean. Для каждой JVM существует только один сервер MBean.
И коннекторы, и адаптеры протоколов используют службы сервера MBean, чтобы применить полученную ими команду управления к компоненту MBean, а также для отправки уведомления в систему управления. Взаимодействия коннекторов и адаптеров протоколов схематично представлены на рис. 2.4.
Рис. 2.4. JMX-коннекторы и адаптеры