Noyau du serveur

Noyau du serveur

Afin de permettre un développement modulaire, JBoss est composé de services qui s’ajoutent à un noyau, comme des  plugins. Cette modularité est basée sur la spécification JMX (Java Management eXtension). Après une présentation de la  spécification  JMX,  nous  verrons  comment  celle­ci  est  implémentée  sous  JBoss,  et  comment  nous  pouvons  gérer  les  services JBoss et ajouter nos propres services. 

Présentation de la spécification JMX

La spécification JMX fournit un standard pour gérer et superviser des ressources matérielles et logicielles, y compris la  machine virtuelle. Cette spécification fait partie de la plate­forme standard (JSE) depuis la version 5. L’instrumentation des ressources s’effectue au moyen de composants spécifiques appelés MBean (Managed Bean). L’architecture JMX comporte 3 niveaux : ● un niveau « Instrumentation » avec les MBeans, où le MBean peut être perçu comme une « sonde » permettant de  gérer une ressource. Le MBean instrumentalise la ressource à superviser ; ● un niveau « Agent » avec le conteneur de MBeans (ou serveur de MBeans) qui gère les MBeans et peut exécuter  des opérations sur ces MBeans ; ● un niveau « Distribution » constitué des mécanismes de communication entre les applications de supervision et  le niveau « Agent ». La plate­forme Java inclut une console de supervision des MBeans : jconsole qui se trouve  dans le sous­répertoire bin du répertoire d’installation du JDK. Le MBean doit suivre un modèle de conception qui consiste à avoir : ● des attributs en lecture et ou écriture ; ● des opérations ; ● une description. La spécification définit 5 types de MBeans : standard, dynamique, ouvert, modèle et MXBean. Nous ne présenterons ici  que le MBean standard, l’objectif étant de comprendre la prise en compte et la gestion des services par JBoss.  Un MBean standard est composé : ● d’une interface nommée QuelqueChoseMBean : ● les attributs sont exposés par des getters/setters. ● les opérations sont des méthodes publiques. ● d’une classe nommée QuelqueChose qui implémente l’interface QuelqueChoseMBean. Les exemples suivants sont extraits du package fr.editions.eni.jboss.mbeans du projet « Chap 3 ­ MBean » de l’archive  téléchargée. Cet exemple est trivial mais utile pour illustrer les mécanismes de base de JMX. a. La couche instrumentation : l’interface HelloMBean Elle possède : ● deux attributs : Name en lecture seule, et Couleur en lecture et écriture. ● deux opérations sayHello() et additionner(…). enidentnumber package fr.editions.eni.jboss.mbeans; public interface HelloMBean { // attributs public String getName(); public void setCouleur(String couleur); public String getCouleur(); // opérations public void sayHello(); public double additionner(double a, double b); } b. La couche instrumentation : implémentation du MBean Cette implémentation est triviale et n’appelle pas de commentaires. package fr.editions.eni.jboss.mbeans; public class Hello implements HelloMBean { private String couleur = « vert »; private String name = « ENI »; public double additionner(double a, double b) { return a+b; } public String getCouleur() { return couleur; } public String getName() { return name; } public void sayHello() { System.out.println(« Bonjour tout le monde »);} public void setCouleur(String couleur) { this.couleur = couleur; } } 

La couche Agent

JSE fournit un conteneur de MBean que nous pouvons utiliser pour y enregistrer notre MBean. public class AgentHelloMBean { public static void main(String[] args) throws Exception { // Récupération d’un MBean Serveur MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); // Tout MBean doit être associé à un ObjectName ObjectName on = new ObjectName(« fr.editions.eni.jboss.mbeans:type=Hello »); // Instansiation de Hello, puis enregistrement dans le serveur Hello hello = new Hello(); mbs.registerMBean(hello, on); // Attente System.out.println(« Serveur démarré… »); Thread.sleep(Long.MAX_VALUE); } 

La couche distribuée : jconsole

■ Pour tester cet exemple, exécutez la classe AgentHelloMBean. Puis, démarrez jconsole, qui est un exécutable qui  se trouve dans le répertoire bin de votre JDK (avec java, javac…). Nous utilisons ici le JSE 6. Si l’agent est bien démarré, vous devez le voir apparaître dans la fenêtre de connexion. ■ Sélectionnez fr.editions.eni.jboss.mbeans.AgentHelloMBean et cliquez sur le bouton  Connect. Puis sélectionnez  l’onglet MBeans. Vous retrouvez les deux attributs Couleur et Name, notez que ces attributs commencent par une majuscule. Vous  pouvez changer la valeur de Couleur, mais pas celle de Name. En  sélectionnant l’opération additionner, vous pouvez entrer les paramètres p1 et p2, puis  cliquer  sur le bouton  additionner. Le résultat apparaît dans une fenêtre popup. Pour l’opération sayHello, le résultat apparaît dans la fenêtre d’exécution de la classe AgentHelloMBean.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *