Extensions de gestion Java
Java Management Extensions ( JMX ) est une spécification développée par le Java Community Process (JSR-3) pour gérer et surveiller les applications Java . Certaines parties de la spécification JMX sont déjà intégrées dans l' API standard Java 1.5 et ont été considérablement étendues avec Java 6 . JMX n'est pas seulement une technologie appropriée pour contrôler le comportement des systèmes, mais facilite également la communication de différents programmes Java. Dans l'API d'origine, JMX ne prenait en charge que la communication au sein d'une JVM ( Java Virtual Machine ), mais depuis la version 6 de Java, il prend également en charge la communication avec d'autres JVM. Ceci est possible grâce à la prise en charge d' adaptateurs et de connecteurs . Cela facilite la mise en œuvre d' un adaptateur HTTP et l'application peut être contrôlée via un navigateur Web . Si le système doit être intégré à un réseau géré existant, des adaptateurs pour SNMP ou CIM / WBEM peuvent être ajoutés à l'application.
Infrastructure
JMX est divisé en trois niveaux principaux.
| Nom de famille | la description |
|---|---|
| Niveau de services distribués | Ce niveau n'a pas encore été défini dans la spécification; sa tâche réelle est de fournir des interfaces pour la communication avec les composants du niveau agent. (Cela peut être, par exemple, un navigateur Internet ou un client spécialement écrit.) |
| Niveau d'agent | A ce niveau, on définit des agents responsables de la communication avec les ressources du niveau instrumentation. |
| Niveau d'instrumentation | Les ressources (composants à gérer) qui sont surveillées ou configurées à l'aide de MBeans sont situées à ce niveau . |
Les dits MBeans (voir Types de MBeans (Managed Beans) ) sont enregistrés au niveau d'instrumentation . Ces objets Java sont gérés par des soi-disant agents. Les MBeans sont accessibles directement via le niveau de service distribué. La visibilité est définie dans les MBeans. Des adaptateurs HTTP prêts à l'emploi pour JMX sont disponibles, ce qui permet de modifier les valeurs d'une application Java directement via un navigateur Web.
JConsole
JConsole est un programme GUI de Sun qui peut être utilisé pour gérer les MBeans. Il est inclus en standard depuis JDK 1.5.
Types de MBeans (Managed Beans)
Différents types de MBeans se sont établis ces dernières années pour faire face à une grande variété de tâches.
- MBean standard
- MBean dynamique
- Modèle MBean
- Ouvrir MBean
Les MBeans standard peuvent être formés en définissant des interfaces dont les noms se terminent par "MBean".
Les MBeans dynamiques sont générés pendant l'exécution et peuvent également être modifiés pendant l'exécution. Actuellement, les attributs et méthodes ne peuvent être décrits que pour les MBeans dynamiques. Cela ne sera possible qu'avec des MBeans standard à l'aide d'annotations.
Les MBeans modèles sont très similaires aux MBeans dynamiques, mais ont également une méthode "lecture" et "écriture" avec laquelle les valeurs sont enregistrées dans un fichier ou dans une base de données. Les fonctions OnTimer peuvent être utilisées ici, ou la journalisation peut être définie à l'aide du gestionnaire de notification. Un autre avantage des MBeans modèle est qu'ils peuvent être créés directement dans l'agent.
Les Open MBeans n'ont que les types Java standard disponibles, mais avec cette propriété, ils ont de meilleures possibilités de communiquer avec d'autres programmes en dehors du projet.
Services de JMX
JMX fournit également divers services intéressants pour la manipulation et la surveillance.
- Service M-Let
- Service de minuterie
- moniteur
Le service M-Let offre la possibilité de recharger les classes pendant l'exécution. Ce processus peut être automatisé via le contrôle de version, à l'aide du chargeur de classe bootstrap .
Des observations périodiques du système peuvent être effectuées avec le service de minuterie . Les notifications sont lancées à des intervalles de temps prédéfinis qui peuvent être interceptés et traités par un auditeur.
Avec la classe moniteur , les variables individuelles (observables) d'un MBean peuvent être observées sans que leur structure interne ne soit connue. Il existe trois types dérivés de ce moniteur.
- Moniteur de compteur
- Moniteur de jauge
- Moniteur de chaîne
Le moniteur de compteur convient principalement aux observations périodiques. Le moniteur de jauge peut surveiller le respect des limites prédéfinies et émet une notification lorsque l'événement se produit . Le moniteur de chaîne surveille les observables pour voir si elles restent les mêmes ou si elles changent.
Implémentations
Les applications Java suivantes (en particulier les serveurs d'applications et les conteneurs de servlets) proposent une implémentation de JMX qui va au-delà de l'implémentation livrée avec Java Runtime Environment depuis Java 5 :
- Apache Geronimo
- Apache Tomcat
- VerrePoisson
- Oracle Weblogic (anciennement BEA Weblogic)
- IBM Websphere
- Serveur d'applications JBoss
- Serveur d'applications Oracle
- mx4j (serveur JMX uniquement)
Littérature
- J. Steven Perry: Extensions de gestion Java . O'Reilly, ISBN 0-596-00245-9
- Marc Fleury, Juha Lindfors: JMX: Gestion de J2EE avec les extensions de gestion Java . Sams Publishing, ISBN 0-672-32288-9
- Jeff Hanson: Connexion des clients et des serveurs JMX: Comprendre les extensions de gestion Java . APress LP, ISBN 1-59059-101-1
- Benjamin G. Sullins: Mark B Whipple: JMX en action: vous obtiendrez également votre première application JMX opérationnelle . Publications Manning, 2002, ISBN 1-930110-56-1
- Lars Wunderlich: Gestion de Java . Developer Press, ISBN 978-3-939084-13-6
liens web
- Extensions de gestion Java (JMX) sur Oracle (Sun)
- Page Web Processus de la communauté Java
- JMX sur JBoss.com
- JSR 255 (JMX 2.0)
- API à distance JSR 160 JMX
- JSR 3 (JMX 1.0, 1.1 et 1.2)
- articles
- Marc Fleury, Juha Lindfors: Activation des architectures de composants avec JMX .
- Andreas Schaefer: Présentation d'une nouvelle API de gestion J2EE indépendante du fournisseur .
- Max Goff: Java dans le domaine de la gestion .
- Lucas McGregor: Gestion des systèmes J2EE avec JMX et JUnit .
- JMX / JBoss - La conception du micro-noyau