© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Java Management eXtensions Franck Barbier Université de Pau et des Pays de l’Adour
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Objet de l’administration d’applications informatiques Surveillance d’applications de mission critique. Ex. : consommation de la mémoire d’un logiciel embarqué sur une sonde spatiale, nombre de threads en cours/actifs et leurs états respectifs… Gestion des infrastructures de calcul évanescent, du calcul autonomique (self-monitoring, self-management) Supervision d’applications hautement distribuées incluant parties filaires et non filaires Gestion de réseaux type LAN ou WAN et leurs inter- dépendances : trafic, encombrement…
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Administration de réseaux, approches GDMO : Guidelines for the Definition of Managed Objects (télécommunications) SNMP (Simple Network Management Protocol) et MIB (Management Information Base) : les ressources (gateway, router…) sont décrites et gérées via une interface de gestion CMIP (Common Management Internet Protocol) : protocole d’administration au dessus de TCP/IP
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Concepts clefs de GDMO et mise en œuvre context Manager inv X’: accessed objects = agent.managed objects context Fault location manager inv X’’: slte = geographical site.slte agent.slte
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Aspects généraux de JMX Finalité : standardisation de la problématique d’administration (management) dans le monde Java Package principal javax.management.* Technologie interne à J2SE depuis ver. 1.5 et à J2EE 1.4 Bibliographie : Java and JMX – Building Manageable Systems, Kreger, H., Harold, W. and Williamson, L., Addison- Wesley, 2003
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Concepts clefs de JMX Objet/ressource géré(e) : MBean JMX Agent : il regroupe un serveur de MBean et des services requis (ceux-ci sont eux-mêmes vus et accessibles comme des MBean) JMX Adaptor (vu aussi comme un MBean) : il joue le rôle d’interface standard pour communiquer entre le monde JMX et l’extérieur. Ex. : la classe com.sun.jdmk.comm.HtmlAdaptorServer de jmxtools.jar qui présente les MBean dans un browser Web
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Architecture de JMX
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPAMBean MBean statique X : nécessité d’une interface dont le nom est par convention XMBean où sont rendues accessibles les fonctions administrées de X MBean dynamique : il implémente l’interface javax.management.DynamicMBean (voir en particulier les fonctions void buildDynamicMBeanInfo() et MBeanInfo getMBeanInfo()). La liste des opérations administrées peut varier à l’exécution pour les MBean dynamiques
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Open MBean Pré-implémentation de DynamicMBean Package javax.management.openmbean Restriction des types manipulés dans le MBean (attributs, opérations et leurs signatures) aux types primitifs (classe SimpleType) pour sérialization et représentation directe en XML Ex. d’application, intérêt : management s’effectuant hors du monde Java
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Model MBean Pré-implémentation de DynamicMBean Package javax.management.modelmbean Pré-implémentation de bon nombre de fonctionnalités comme le système de notification de JMX (interface « outil » : javax.management.NotificationBroadcaster) Ex. d’application, intérêt : ce sont des MBean configurables où les tâches de programmation sont réduites
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Serveur de MBean, Nommage La classe javax.management.MBeanServerFactory permet de créer un serveur de MBean comme suit : MBeanServer _mbean_server = MBeanServerFactory.createMBeanServer("com.PauWare.Java"); Un serveur de MBean fait alors référence à des noms pour les MBean à l’enregistrement, au dés- enregistrement ainsi que via des requêtes La classe javax.management.ObjectName gouverne le nommage, ex. : _mbean_server.registerMBean(programmable_thermostat,new ObjectName(":name=" + programmable_thermostat.name()));
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Mécanisme de notification Il existe déjà au niveau du serveur de MBean pour l’enregistrement et le dés-enregistrement Interfaces et classes de base (nombreux sous-types spécialisés) : javax.management.NotificationListener javax.management.Notification javax.management.NotificationFilter javax.management.NotificationBroadcaster Abonnement direct et aisé pour les Model MBean par exemple (interface ModelMBeanNotificationBroadcaster)
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Agent Architecture (from spec.)
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA JMX et services Dynamic loading (package javax.management.loading): instanciation (chargement) et enregistrement de MBean non connus a priori (ex. distants) Monitoring (package javax.management.monitor): observations d’attributs (comptage, jauge…) et notifications de changements d’état basées « intervalle » Timer (package javax.management.timer) Relation (package javax.management.relation): gestion des associations et des cardinalités des MBean au niveau d’un agent
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA Ex. d’application
© - Last update: Sunday, 31 January Master « Technologies de l’Internet » - UPPA JMX et J2EE Packages dédiés : javax.management.j2ee et javax.management.j2ee.statistics Concept de MEJB L’administration est ici « dédiée serveur » avec l’entrée JNDI prédéfinie : ejb/mgmt JMX peut aussi s’utiliser pour gérer les Web Service (gestion de registre, gestion de l’environnement d’exécution…)