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.

Image
Niveaux JMX
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.

Image
JConsole en un coup d'œil

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 :

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

articles