GICOM
Application de commerce électronique
Etape 7: Administration et
supervision des serveurs
Projet de M2GI option SRR et RICM3 option SR
Année Universitaire 2005-2006
Université Joseph
Fourier
Contributeur(s)
étape : Didier Donsez
Encadrement M2GI/SRR : Didier Donsez, Sara Bouchenak
Encadrement
RICM3/SR : Pierre-Yves Gibello, Maxime Martinasso
Dernière mise à jour : 17/01/2006
PLAN
2 JMX (Java
Management eXtension)
3.2 Instrumentation
simple des serveurs CORBA
3.3 Réalisation
du déploiement dynamique des servants
3.4 Réalisation
d’un adaptateur pour IIOP
3.5 Sécurisation
de l’administration et du déploiement
L'étape 7 consiste à permettre l’administration et la supervision des serveurs (CORBA) de l’application GICOM. Pour cela, vous vous appuierez sur l’API JMX disponible dans le JDK 5.0.
JMX (Java Management eXtension) est un service de supervision et d’administration d’applications Java qui s’inspire de SNMP qui est le protocole d’administration de nœuds IP. JMX permet de superviser et d’administrer des ressources matérielles accessibles depuis une JVM comme des ressources logiciels s’exécutant sur une JVM. L’instrumentation des ressources se fait au moyen de composants appelés MBean (Manageable Bean). La spécification JMX définit l’ensemble des interfaces et classes nécessaires à cette instrumentation.
L’interaction avec les MBeans peut suivre le modèle Pull pour lire et changer la configuration des applications (par exemple, récupérer des statistiques, l’usage des ressources, …) ou bien suivre le modèle Push pour notifier des événements (par exemple, signaler des problèmes, des fautes, des changements d’état, …).
L’architecture JMX comporte 3 niveaux (voir figure 1) :
Les MBeans exposent une interface d’administration
comportant un ensemble d’attributs consultables et/ou modifiables et un
ensemble des opérations invocables. Il existe quatre types de MBean : standard MBeans,
dynamic MBeans,
open MBeans et model Mbeans. Un standard MBean
a une interface qui est définit statiquement. Le nom de l’interface
implémentée doit être préfixé pour le nom de la classe d’implémentation
et suffixé par « MBean ». Un dynamic MBean
permet d’exposer dynamiquement ses attributs et ses opérations. La classe
d’implémentation doit implémenter l’interface DynamicMBean.
Un MBean peut notifier des changements en implémentant l’interface NotificationBroadcaster.
Un MBean peut récupérer la référence du MBeanServer qui l’enregistre en implémentant
l’interface MBeanRegistration. Les
adaptateurs sont généralement des MBeans
enregistrés qui implémentent cette interface.
Les platform MBeans
(appelés MXBeans) qui ont été introduit dans
la plateforme Java 5.0, sont des MBeans
instrumentant
Initialement adopté par la communauté J2EE, la spécification
JMX fait partie désormais de
Figure 1 : Architecture à 3 niveaux de JMX.
Testez et comprenez les exemples JMX fournis dans le répertoire.
Utilisez la console JMX JConsole.exe (http://java.sun.com/j2se/1.5/docs/guide/management/jconsole.html) fournie dans le JDK 5.0 pour butiner les MBeans enregistrés sur les MBeanServers des exemples. Vous pourrez utiliser également la console concurrente MC4J http://mc4j.sf.net
Vous pourrez aussi vous connecter sur les connecteurs JMX de
vos serveurs JOnAS (service:jmx:rmi:///jndi/rmi://hostname:1099/jrmpconnector_jonas
)
pour explorer les managed objects
d’un serveur J2EE conformément au JSR 77.
Remarque : la console SNMP vu en TP Réseaux peut servir
à parcourir
Lisez premièrement le chapitre 21 « Using Java Management Extentions (JMX) » du guide de programmation de JacORB (%JACORB_HOME%\doc\ProgrammingGuide\ProgrammingGuide.pdf
Cette sous-étape consiste à ajouter un MBeanServer à votre GenericServer CORBA. Ce MBeanServer sera pourvu de connecteurs et d’adaptateurs qui seront activés au démarrage à partir d’un fichier d’initialisation.
Vous utiliserez ensuite le MBeanServer pour superviser quelques éléments notoires de vos serveurs (POA, POM, Intercepteur). Vous définirez pour chacun de ces éléments un MBean permettant des récupérer des statistiques diverses et variées (A vous de les imaginer !)
Vous pourrez écrire des MBeans utilisant les types
Cette sous-étape consiste à implémenter le déploiement dynamiques des servants. Les servants pourront être déployer dynamiquement à partir d’archives présentes sur Internet. Pour cela, vous utiliserez les MLet à la façon de JBoss.
Cette sous-étape consiste à réaliser un adaptateur IIOP. Pour cela, vous définirez l’interface IDL de cet adaptateur afin de pourvoir faire l’essentiel des opérations que permet de faire un connecteur. Ensuite, vous implémenterez cet adaptateur au moyen d’un dynamic MBean qui implémente l’interface MBeanRegistration pour pouvoir récupérer la référence du MBeanServer. Vous testerez cet adaptateur en écrivant un client simple (de type Shell ou GUI) permettant d’explorer les MBeans enregistrés sur le MBeanServer.
Activez la sécurité pour les connecteurs et n’autorisez que le déploiement d’archives signées.
Utilisez les tâches JMX de Catalina (Apache TomCat) pour automatiser les interactions avec les MBeanServers de vos passerelles et de vos serveurs (déploiement des bundles, …). Pour cela , vous pouvez tester l’exemple se trouvant dans le répertoire exemples\jmx\jmxant de la distribution du projet.
Pour terminer cette étape, vous pourrez regarder rapidement
l’exemple j2eemanagement
qui est dans le répertoire examples
de JOnAS. Cet exemple illustre
l’usage de MEJB pour explorer les managed objects d’un serveur J2EE. Un MEJB peut être
perçu comme un adaptateur JMX. Ils sont spécifiés par le JSR 77.
Pour comprendre JMX, vous pouvez vous reporter