Расширения управления Java - Java Management Extensions - Wikipedia
Расширения управления Java (JMX) это Ява технология, которая предоставляет инструменты для управления и мониторинга Приложения, системные объекты, устройства (например, принтеры ) и сервисно-ориентированные сети. Эти ресурсы представлены объектами, называемыми MBeans (для Управляемый компонент ). В API классы могут быть динамически загружены и созданы. Приложения для управления и мониторинга могут быть спроектированы и разработаны с использованием Комплект динамического управления Java.
JSR 003[1] из Процесс сообщества Java определены JMX 1.0, 1.1 и 1.2. JMX 2.0 разрабатывался под JSR 255, но впоследствии этот JSR был отозван.[2] JMX Remote API 1.0 для удаленного управления и мониторинга указан в JSR 160.[3] Расширение JMX Remote API для веб-служб разрабатывалось под JSR 262.[4]
Принято на раннем этапе J2EE сообщества, JMX был частью J2SE начиная с версии 5.0. "JMX" - торговая марка Корпорация Oracle.
Архитектура
JMX использует трехуровневую архитектуру:
- В Зонд уровень - также называемый Приборы уровень - содержит зонды (называемые MBeans ) инструменты ресурсы
- В Агент level, или MBeanServer - ядро JMX. Он действует как посредник между MBean и приложениями.
- В удаленное управление level позволяет удаленным приложениям получать доступ к MBeanServer через соединители и адаптеры. Коннектор обеспечивает полный удаленный доступ к API MBeanServer с использованием различных средств связи (RMI, IIOP, JMS, WS- * …), А адаптер адаптирует API к другому протоколу (SNMP,…) Или в веб-интерфейс (HTML /HTTP, WML /HTTP, …).
Приложения могут быть общими консолями (например, JConsole[5] и MC4J[6]) или предметно-ориентированные (мониторинг) приложения. Внешние приложения могут взаимодействовать с MBean-компонентами посредством использования соединителей JMX и адаптеров протокола. Коннекторы служат для соединения агента с удаленным управляющим приложением с поддержкой JMX. Эта форма связи включает коннектор в JMX-агенте и клиент коннектора в управляющем приложении.
Адаптеры протокола обеспечивают представление управления агентом JMX через заданный протокол. Управляющие приложения, которые подключаются к адаптеру протокола, обычно относятся к данному протоколу.
Управляемые бобы
А управляемый компонент - иногда просто называют MBean - это вид JavaBean, созданный с внедрение зависимости. Управляемые компоненты особенно используются в технологии Java Management Extensions, но с Java EE 6 спецификация обеспечивает более подробное значение управляемого компонента.
MBean представляет ресурс, работающий в Виртуальная машина Java, например, приложение или техническая служба Java EE (монитор транзакций, драйвер JDBC и т. д.). Их можно использовать для сбора статистики по таким проблемам, как производительность, использование ресурсов или проблемы (вытягивание); для получения и настройки конфигурации или свойств приложения (push / pull); и уведомление о событиях, таких как сбои или изменения состояния (push).
Java EE 6 предусматривает, что управляемый компонент - это компонент, который реализуется классом Java, который называется его классом компонента. Класс Java верхнего уровня является управляемым компонентом, если он определен как управляемый компонент в любой другой спецификации технологии Java EE (например, JavaServer Faces спецификация технологии), или если она соответствует всем следующим условиям:
- Это не нестатический внутренний класс.
- Это конкретный класс или аннотированный
@Decorator
. - Он не аннотирован аннотацией, определяющей компонент EJB, и не объявлен как класс EJB-компонента в
ejb-jar.xml
.
Никакого специального объявления, такого как аннотация, для определения управляемого bean-компонента не требуется.
MBean может уведомить MBeanServer о своих внутренних изменениях (для атрибутов), реализовав javax.management.NotificationEmitter
. Приложение, заинтересованное в изменениях MBean, регистрирует слушателя (javax.management.NotificationListener
) в MBeanServer. Обратите внимание, что JMX не гарантирует, что слушатели получат все уведомления.[7]
Типы
Есть два основных типа MBean:
- Стандартные MBeans реализовать бизнес-интерфейс, содержащий сеттеры и геттеры для атрибутов и операций (т. е. методов).
- Динамические MBeans реализовать
javax.management.DynamicMBean
интерфейс, который предоставляет способ перечислить атрибуты и операции, а также получить и установить значения атрибутов.
Дополнительные типы Открыть MBeans, Модель MBeans и Мониторинг MBeans. Открыть MBeans являются динамическими компонентами MBean, которые полагаются на основные типы данных. Они говорят сами за себя и более удобны для пользователя. Модель MBeans являются динамическими MBean-компонентами, которые можно настраивать во время выполнения. Также предоставляется общий класс MBean для динамической настройки ресурсов во время выполнения программы.
MXBean (Платформа MBean) - это особый тип MBean, который овеществляет Виртуальная машина Java подсистемы, такие как вывоз мусора, JIT-компиляция, пулы памяти, многопоточность, так далее.
MLet (Апплет управления) - служебный MBean-компонент для загрузки, создания и регистрации MBean-компонентов на MBeanServer из XML описание. Формат дескриптора XML:[8]
<MLET CODE = ''class'' | OBJECT = ''serfile'' ARCHIVE = ''archiveList'' [CODEBASE = ''codebaseURL''] [NAME = ''objectName''] [VERSION = ''version''] > [arglist] </MLET>
Поддерживать
JMX поддерживается на разных уровнях разными поставщиками:
- JMX поддерживается Java серверы приложений например, сервер приложений OpenCloud Rhino [1], JBoss, ЙОНАС, Сервер приложений WebSphere, WebLogic, Сервер приложений SAP NetWeaver, Сервер приложений Oracle 10g и Сервер приложений Sun Java System.
- JMX поддерживается сервером каталогов UnboundID, прокси-сервером каталогов и сервером синхронизации.[9]
- Системное управление инструменты, поддерживающие протокол, включают Эмпирикс OneSight, Наземный монитор, Гиперический, HP OpenView, Директор IBM, ITRS Geneos, Nimsoft NMS, OpenNMS,[10] Zabbix, Ядро Зеносса , и Зирион, Соларвиндс, Монитор безотказной инфраструктуры и LogicMonitor.[11]
- JMX также поддерживается контейнеры сервлетов Такие как Apache Tomcat.[12] & Jetty (веб-сервер)
- MX4J [2] - это JMX с открытым исходным кодом для корпоративных вычислений.
- jManage [3] - это консоль JMX корпоративного уровня с открытым исходным кодом с веб-интерфейсами и интерфейсами командной строки.
- MC4J [4] визуальная консоль с открытым исходным кодом для подключения к серверам, поддерживающим JMX.
- snmpAdaptor4j [5] - это открытый исходный код, обеспечивающий простой доступ к MBeans по протоколу SNMP.
- jvmtop это легкий инструмент мониторинга JMX с открытым исходным кодом для командной строки
Смотрите также
Рекомендации
- ^ JSR 003: Спецификация расширений управления JavaTM (JMXTM)
- ^ JSR 255: Спецификация расширений управления JavaTM (JMXTM), версия 2.0
- ^ JSR 160: Удаленный API расширений управления JavaTM (JMX)
- ^ JSR 262: соединитель веб-служб для агентов Java Management Extensions (JMX)
- ^ Использование JConsole для мониторинга приложений
- ^ «Проект MC4J создает программное обеспечение управления для серверов приложений J2EE и других приложений Java». Архивировано из оригинал на 2007-03-23. Получено 2006-08-27.
- ^ Расширения управления Java (JMX) - Лучшие практики
- ^ "MLet (Java 2 Platform SE 5.0)". Sun Microsystems. Получено 2008-06-22.
- ^ UnboundID Corp. В архиве 2012-03-06 в Wayback Machine
- ^ http://www.opennms.org/wiki/Category:JMX
- ^ «Сбор данных JMX». www.logicmonitor.com. Получено 2020-11-20.
- ^ Apache Tomcat 6.0: мониторинг и управление Tomcat (Руководство Tomcat)
дальнейшее чтение
Статьи
- "Включение компонентных архитектур с JMX "Марк Флери и Юха Линдфорс
- "Представляем новый API управления J2EE, не зависящий от поставщиков "Андреаса Шефера
- "Java в сфере управления" Макс Гофф 1999 г.
- JMX / JBoss - The микроядро дизайн
- "Управляйте своими приложениями с поддержкой JMX с помощью jManage 1.0 "Ракеш Калра, 16 января 2006 г.
- "Управление системами J2EE с помощью JMX и JUnit "Лукас МакГрегор
- Sun Java: обзор мониторинга и управления
- Учебное пособие по Java EE 6: об управляемых bean-компонентах
Книги
- Бенджамин Дж. Саллинз, Марк Б. Уиппл: JMX в действии: вы также получите свое первое приложение JMX в рабочем состоянии, Manning Publications Co., 2002 г., ISBN 1-930110-56-1
- Дж. Стивен Перри: Расширения управления Java, О'Рейли, ISBN 0-596-00245-9
- Джефф Хэнсон: Подключение клиентов и серверов JMX: понимание расширений управления Java, АПресс Л. П., ISBN 1-59059-101-1
- Марк Флери, Юха Линдфорс: JMX: управление J2EE с помощью расширений управления Java, Sams Publishing, ISBN 0-672-32288-9
внешняя ссылка
- JMX 1.4 (JMX 1.4, часть Java 6)
- JMX на JBoss.com
- JMX на www.oracle.com
- JSR 255 (JMX 2.0)
- JSR 3 (JMX 1.0, 1.1 и 1.2)