Download 2. JMX (Java Management eXtensions)

Document related concepts
no text concepts found
Transcript
Complementos de Telemática II
Grupo JMX_A
Olga Martínez Gómez
Noelia Martín Hernández
Daniel Ramos Fuentes
Contenidos
 Introducción
 JMX
 Aplicación práctica
 Conclusiones
Introducción y contexto
 La gestión integrada intenta salvaguardar la creciente heterogeneidad y
complejidad en las redes de telecomunicaciones .
 Necesidad de disponer de sistemas de gestión para la configuración,
supervisión, diagnóstico y mantenimiento de los dispositivos.
 JMX se encuentra entre las tecnologías destinadas a la gestión integrada,
proporcionando las herramientas necesarias para monitorizar y gestionar
aplicaciones.
 JMX es una solución para la gestión de aplicaciones y servicios Java, compatible
con las tecnologías de gestión existentes.
 JMX proporciona una gestión rápida y fácil de aprender.
Objetivos y motivación
• Aprender a utilizar JMX.
• Comprobar cómo JMX solventa los problemas de la
gestión de aplicaciones a través de la realización de un
ejemplo práctico .
• Mostrar cómo JMX nos parece una buena solución
para la gestión de aplicaciones Java, permitiendo
gestionarlas de una manera relativamente sencilla.
Metodología
• Familiarizarnos con JMX. Entender el uso de las MBeans Standard.
• Elegir y compilar el código fuente de la aplicación Java que queremos
instrumentar usando el entorno de desarrollo Eclipse.
• Buscar los parámetros de la aplicación que queremos gestionar.
• Introducir el código necesario para instrumentar la aplicación.
• Usar la herramienta JConsole para realizar pruebas.
• Gestionar la aplicación desde un navegador web. Adaptador HTML.
JMX: Introducción
• ¿Qué es JMX?
• ¿Para qué sirve JMX?
▫ Gestión de dispositivos
▫ Gestión de aplicaciones
• ¿Cómo lleva a cabo su cometido?
▫ Instrumentación de recursos: Concepto de MBean
JMX: Arquitectura (I)
• Fundamentada en un modelo de 3 capas:
▫ Nivel de gestión
▫ Nivel de agente
▫ Nivel de instrumentación
JMX: Arquitectura (II)
 Comprende 3 componentes:
 Recurso gestionable


Desarrollado en Java
Recurso intermediario escrito en Java
 Agente JMX
 Formado por: servidor, recursos gestionables y adaptadores
o conectores.
 Puede contener servicios de gestión.
 Gestor JMX
 Proporciona una interfaz de comunicación entre agentes y
aplicaciones.
JMX: Tipos de MBean
• Cada MBean:
•
•
Tiene un nombre
Debe registrarse en un servidor
• Tipos de MBean:

MBean estándar (Standard MBean)


MBean dinámico (Dynamic MBean)


Utilizado para acceder a recursos que no utilizan Java
MBean modelo (Model MBean)


Posee una interfaz estática
MBean dinámico. Instrumentar recursos en tiempo de ejecución
MBean abierto (Open MBean)

MBean dinámico. Utilizar objetos descubrimientos en t. de ejecución
• Sistema de notificaciones
JMX: Monitorización: JConsole
 Proporcionada por el JDK.
 Monitorizar recursos utilizados por la JVM.
 Destacar el apartado de los MBean.
 Dos tipos de monitorización:


Local
Remota
Aplicación práctica
 ¿En qué consiste?
 Un 3 En Raya.
 Muestra un menú con las opciones:




Iniciar un nuevo juego.
Colocar ficha.
Mostrar tablero
Obtener el estado de la partida.
 Premisas:


Empieza siempre a jugar el jugador 1 y se alterna con el 2.
Incumplimiento de normas  Excepciones.
Aplicación práctica
 Los parámetros a gestionar:
 Número de fichas que ha colocado el jugador 1.
 Número de fichas que ha colocado el jugador 2.
 Número de partidas totales desde el comienzo de la
aplicación.
 Número de posiciones vacías.
 Número de veces que se ha terminado en tablas.
 Número de veces que ha ganado el jugador 1.
 Número de veces que ha ganado el jugador 2.
Aplicación práctica
 Los notificaciones a gestionar:
 Cuando se inicia un nuevo juego.
 Cuando se arranca la aplicación.
 Cuando gana un jugador.
 Cambios oportunos para la gestión vía Web.
Cambios en la aplicación: código.
 Los cambios se van a efectuar en dos de nuestras clases
que son:
 GestorJuego  Clase que contiene la lógica del juego.
 ClienteJuego  Clase con la función principal, genera
el menu y según la opción que elija el usuario llama a la
funcion de GestorJuego que la realiza.
Cambios en la aplicación: código.
 Parámetros a gestionar:

Dentro de la clase GestorJuego:
 Para obtener el valor del parámetro:

Para cambiar el valor del parámetro:
Cambios en la aplicación: código.
 Parámetros a gestionar:
 Declaración del Mbean.
 Se añade el siguiente código a ClienteJuego:
Cambios en la aplicación: código.
 Notificaciones:
 Dentro de las funciones set de GestorJuego añadimos:
 Al final se añade:
Cambios en la aplicación: código.
 Gestión mediante el navegador Web.


Para hacer la gestión como en JConsole pero desde un
navegador es necesario emplear un adaptador HTML.
El código que se añade en ClienteJuego para ello es:
Pruebas: Ejemplos de funcionamiento.
 Gestión mediante JConsole de los parámetros:
Pruebas: Ejemplos de funcionamiento.
 Gestión mediante navegador Web:
Conclusiones
 Instrumentar una aplicación mediante JMX ha resultado relativamente
sencillo.
 El proceso de desarrollo ha sido medianamente fácil debido a que la
información referente a JMX está muy bien documentada.
 La introducción de los adaptadores HTML fue algo mas compleja,
debido a que la documentación no se encontraba tan bien organizada.
 JMX es una tecnología fuertemente vinculada a Java, perfilándose como
una buena solución de gestión de aplicaciones Java pese a no poder
comparar con otras soluciones.