stringtranslate.com

Extensiones de gestión de Java

Java Management Extensions ( JMX ) es una tecnología Java que proporciona herramientas para gestionar y supervisar aplicaciones , objetos del sistema, dispositivos (como impresoras ) y redes orientadas a servicios. Estos recursos están representados por objetos llamados MBeans (por Managed Bean ). En la API, las clases se pueden cargar e instanciar dinámicamente. La gestión y supervisión de aplicaciones se puede diseñar y desarrollar utilizando el Java Dynamic Management Kit. [1]

JSR 003 [2] del Java Community Process definió JMX 1.0, 1.1 y 1.2. JMX 2.0 se estaba desarrollando bajo JSR 255, pero este JSR fue retirado posteriormente. [3] La API remota JMX 1.0 para administración y monitoreo remotos está especificada por JSR 160. [4] Una extensión de la API remota JMX para servicios web se estaba desarrollando bajo JSR 262. [5]

Adoptado tempranamente por la comunidad J2EE , JMX ha sido parte de J2SE desde la versión 5.0. "JMX" es una marca comercial de Oracle Corporation .

Arquitectura

Arquitectura JMX

JMX utiliza una arquitectura de tres niveles:

  1. El nivel de sonda , también llamado nivel de instrumentación , contiene las sondas (llamadas MBeans) que instrumentan los recursos.
  2. El nivel de agente , o MBeanServer, es el núcleo de JMX y actúa como intermediario entre el MBean y las aplicaciones.
  3. El nivel de administración remota permite que las aplicaciones remotas accedan a MBeanServer a través de conectores y adaptadores. Un conector proporciona acceso remoto completo a la API de MBeanServer mediante diversas comunicaciones ( RMI , IIOP , JMS , WS-*, etc.), mientras que un adaptador adapta la API a otro protocolo ( SNMP , etc.) o a una interfaz gráfica de usuario basada en Web ( HTML / HTTP , WML / HTTP , etc.).

Las aplicaciones pueden ser consolas genéricas (como JConsole [6] y MC4J [7] ) o aplicaciones específicas de dominio (monitoreo). Las aplicaciones externas pueden interactuar con los MBeans mediante el uso de conectores JMX y adaptadores de protocolo. Los conectores sirven para conectar un agente con una aplicación de administración remota habilitada para JMX. Esta forma de comunicación implica un conector en el agente JMX y un cliente de conector en la aplicación de administración.

La plataforma Java, edición estándar se entrega con un conector, el conector RMI , que utiliza el protocolo de método remoto de Java, que forma parte de la API de invocación de método remoto de Java . Este es el conector que utilizan la mayoría de las aplicaciones de administración.

Los adaptadores de protocolo proporcionan una vista de administración del agente JMX a través de un protocolo determinado. Las aplicaciones de administración que se conectan a un adaptador de protocolo suelen ser específicas del protocolo en cuestión.

Frijoles gestionados

Un bean administrado , a veces denominado simplemente MBean , es un tipo de JavaBean creado con inyección de dependencia . Los beans administrados se utilizan particularmente en la tecnología Java Management Extensions, pero con Java EE 6 la especificación proporciona un significado más detallado de un bean administrado.

El MBean representa un recurso que se ejecuta en la máquina virtual Java , como una aplicación o un servicio técnico Java EE (monitor transaccional, controlador JDBC, etc.). Se pueden utilizar para recopilar estadísticas sobre cuestiones como el rendimiento, el uso de recursos o los problemas (pull); para obtener y establecer configuraciones o propiedades de la aplicación (push/pull); y para notificar eventos como fallas o cambios de estado (push).

Java EE 6 establece que un bean administrado es un bean implementado por una clase Java, que se denomina su clase bean. Una clase Java de nivel superior es un bean administrado si está definida como tal por cualquier otra especificación tecnológica Java EE (por ejemplo, la especificación tecnológica JavaServer Faces ) o si cumple todas las siguientes condiciones:

  1. No es una clase interna no estática.
  2. Es una clase concreta, o está anotada @Decorator.
  3. No está anotado con una anotación que defina un componente EJB ni se declara como una clase de bean EJB en ejb-jar.xml.

No se requiere ninguna declaración especial, como una anotación, para definir un bean administrado.

Un MBean puede notificar al MBeanServer de sus cambios internos (para los atributos) mediante la implementación de javax.management.NotificationEmitter. La aplicación interesada en los cambios del MBean registra un receptor ( javax.management.NotificationListener) en el MBeanServer. Tenga en cuenta que JMX no garantiza que los receptores recibirán todas las notificaciones. [8]

Tipos

Hay dos tipos básicos de MBean:

Los tipos adicionales son Open MBeans , Model MBeans y Monitor MBeans . Los Open MBeans son MBeans dinámicos que se basan en los tipos de datos básicos. Se explican por sí solos y son más fáciles de usar. Los Model MBeans son MBeans dinámicos que se pueden configurar durante el tiempo de ejecución. También se proporciona una clase MBean genérica para configurar dinámicamente los recursos durante el tiempo de ejecución del programa.

Un MXBean ( Platform MBean ) es un tipo especial de MBean que reifica los subsistemas de la máquina virtual Java , como la recolección de basura , la compilación JIT , los grupos de memoria , el subprocesamiento múltiple , etc.

Un MLet ( Applet de administración ) es un MBean de utilidad para cargar, instanciar y registrar MBeans en un MBeanServer a partir de una descripción XML . El formato del descriptor XML es: [9]

<CÓDIGO MLET = ''clase'' | OBJETO = ''servidor'' ARCHIVO = ''listaarchivo'' [CÓDIGO BASE = ''URLcódigoBase''] [NOMBRE = ''nombreObjeto''] [VERSIÓN = ''versión''] > [lista de argentos] </MLET>

Apoyo

JMX cuenta con soporte en varios niveles por parte de diferentes proveedores:

Véase también

Referencias

  1. ^ "Descripción general del kit de administración dinámica de Java". docs.oracle.com . Consultado el 12 de enero de 2021 .
  2. ^ JSR 003: Especificación de extensiones de administración de JavaTM (JMXTM)
  3. ^ JSR 255: Especificación de extensiones de administración de JavaTM (JMXTM), versión 2.0
  4. ^ JSR 160: API remota de extensiones de administración de JavaTM (JMX)
  5. ^ JSR 262: Conector de servicios web para agentes de extensiones de administración de Java (JMX)
  6. ^ Uso de JConsole para monitorear aplicaciones
  7. ^ "El proyecto MC4J crea software de gestión para servidores de aplicaciones J2EE y otras aplicaciones Java". Archivado desde el original el 23 de marzo de 2007. Consultado el 27 de agosto de 2006 .
  8. ^ Extensiones de administración de Java (JMX): mejores prácticas
  9. ^ "MLet (plataforma Java 2 SE 5.0)". Microsistemas solares . Consultado el 22 de junio de 2008 .
  10. ^ UnboundID Corp. Archivado el 6 de marzo de 2012 en Wayback Machine.
  11. ^ "Inicio".
  12. ^ "Recopilación de datos JMX". www.logicmonitor.com . Consultado el 20 de noviembre de 2020 .
  13. ^ Apache Tomcat 6.0: Monitoreo y administración de Tomcat (manual de Tomcat)
  14. ^ "Exportador JMX". GitHub . 14 de febrero de 2022.

Lectura adicional

Artículos

Libros

Enlaces externos