Christophe Paris
Stage du 1er mars
au 29 octobre 2004
IDEALX
L'excellence open source
Idealx

 

 

Le Travail

 

IDX-Monitoring en action dans un navigateur web

Charge et rapport de disponiblité sur la machine Linux "Sniff"

 

Sommaire

 

1. Cahier des charges

2. Axes d’étude et de recherche choisis

3. IMC et IDX-Monitoring

4. Packaging de la solution IMC et d’IDX-Monitoring

5. Mise en ligne d’IMC

 

 

 

1.  Cahier des charges

 

Le travail à réaliser, dans le contexte de l'équipe du projet (2 développeurs au total) :

 

-                   améliorer le composant de visualisation du réseau sous forme de graphes hyperboliques (applet Java), y ajouter une iconographie système et topologie hiérarchique ;

-                   se former à la nouvelle plate-forme IMC (IDEALX Management Console), l'enrichir et la promouvoir au niveau de la communauté Open Source ;

-                   analyser les standards et fonctions de configuration, d'administration, de supervision des systèmes (SNMP, WBEM, MON, etc.) ;

-                   concevoir, prototyper et implémenter un ou plusieurs modules pour le projet IDX-Monitoring.

 

 

 

2.   Axes d’étude et de recherche choisis

 

1°. Le MVC

 

La plateforme IMC, IDEALX Mangement Console est basé sur le modèle MVC, Model-View-Controller. De même IDX-Monitoring et tous ses développements se doivent respecter ce modèle.

 

Le Model-View-Controller est un modèle de conception logicielle largement répandu; il a été créé dans les années 1980 par Xerox PARC pour Smalltalk-80. Plus récemment, il a été recommandé comme modèle pour la plate-forme Java de Sun et il gagne fortement en popularité auprès des développeurs. Le modèle MVC représente un complément utile aux outils du développeur, quel que soit le langage utilisé.

 

MVC est un modèle de conception qui impose la séparation entre les données, les traitements et la présentation. C'est pour cette raison que l'application est divisée en trois composants fondamentaux: le modèle, la vue et le contrôleur. Chacun de ces composants tient un rôle bien défini.

 

La vue correspond à l'interface avec laquelle l'utilisateur interagit. Dans le cas d’une application web comme IDX-Monitoring, il s'agit d'une interface en XML/XSL et HTML. Un avantage du MVC tient au fait qu'il gère l'utilisation de différentes vues pour votre application. Aucun traitement n'est effectué dans la vue; elle sert uniquement à afficher les données et permettre à l'utilisateur d'agir sur ces données.

 

Le modèle, représente les données et les règles métier. C'est là que s'effectuent les traitements. Les bases de données en font partie, de même que des objets tels que les règles pour superviser le réseau. Les données renvoyées par le modèle sont indépendantes de la présentation, c'est-à-dire que le modèle ne réalise aucune mise en forme. Cette capacité permet de factoriser le code, car le code du modèle n'est écrit qu'une seule fois puis réutilisé par toutes les vues

 

Le contrôleur interprète les requêtes de l'utilisateur et appelle du modèle et de la vue nécessaires pour répondre à la requête. Ainsi, lorsque l'utilisateur clique sur un lien ou soumet un formulaire HTML, le contrôleur ne produit rien et n'effectue aucun traitement. Il intercepte la requête et détermine quels modèles et quelles vues doivent êtres associés. Dans tous les modules d’IMC c’est le module Struts4perl qui joue ce rôle pour les autres modules.

 

Schématisation du Model MVC

 

http://krisbox.free.fr/stage_idealx/travail_clip_image001.gif

 

 

2°. Un système modulaire évolutif.

 

La plate forme IMC est avant tout un modèle pour un système entièrement modulaire. A l’instar du système de modules d’Eclipse développé par IBM pour son environnement de développement Eclipse, IMC possède tout un système pour définir des modules qui eux même peuvent utiliser des fonctions d’autre module ou même étendre ces fonctions.

Pour ce faire il suffit de décrire les fonctions de son module qui seront les points d’extensions des modules dans un fichier XML qui eux même peuvent prétendre être l’extension d’autres points d’extensions venant d’autres modules. 

            A son démarrage la plateforme IMC n’a plus qu’à charger ses modules et les relier entre comme le décrit les fichiers XML.

C’est ainsi que dans IMC il y a un module central qui contient le serveur http, un autre module qui est le contrôleur et enfin plusieurs modules utilisant les possibilités de ces premier modules.

L’intérêt d’une telle architecture est la possibilité d’extension immense et la réutilisation de tout le code. Cela permet de développer plus vite, d’avoir une maintenance optimale, et, pour l’utilisateur, d’avoir un outil répondant le plus à ses besoins basé sur le même standard.

 

 

Exemple de chargement de divers modules

 

 

 


3.  IMC et IDX-Monitoring

 

IMC est programme en langage Perl qui permet de charger et de relier et d’exécuter des modules en Perl également. Grâce à un système de description de modules en XML il est possible de liés les fonctions des différents modules entre eux. Les modules de base d’IMC sont : un serveur http, Apache ; un système de widgets pour html, WebFaces ; un modules de contrôleur web utilisant< le modèle MVC, Struts4perl ; et un module d’administration web Webmin. Ces différents modules donnent un ensemble qui permet d’obtenir une interface web unique pour tous futurs modules.

 

imc

 

IDX-Monitoring est un module de supervision réseau permettant de voir l’état d’un réseau entier en temps réel mais aussi de configurer la façon de superviser le réseau et les différents appareils qui le composent. IDX-Monitoring se base sur le logiciel Open Source Nagios qui permet de superviser un réseau en testant les appareils du réseau sur différentes fonctionnalités (ping, services…). Ce programme fournis de base une interface utilisateur web limitée et un système de configuration quasi inexistant. De plus il ne permet pas de journaliser les changements de statuts du réseau.

 

Le logiciel Open Source Nagios stocke ses données dans une base de donnée SQL (PostgreSQL ou MySQL) ces donnés sont alors récupérées par IDX-Monitoring grâce à son composant MXE (Monitoring XML Engine). MXE va transformer les données à la demande de l’utilisateur via le Contrôleur en format XML. Le format XML est alors utilisé pour généré la vue (puis en HTML avec XSL).

 

Schéma du fonctionnement d’IDX-Monitoring

 



4.  Packaging de la solution IMC et d’IDX-Monitoring

 

La solution IMC et IDX-Monitoring devait être packagé : il s’agit de mettre le logiciel sous forme de fichier RPM compilé (binaire) qui lui permet de s’installer automatiquement sur une distribution linux tel que RedHat ou SuSE. Faisant gagner du temps à tous, ce système est utilisé pour tous les logiciels sous linux et BSD.

 

Pour réaliser un paquetage il faut créer un fichier de type Spec à la racine du projet et y mettre toutes les directives pour préparer à la compilation, compiler et installer correctement le logiciel. Ce genre d’opération prend peu de temps à mettre en place mais peut durer ensuite plus longtemps car IMC et IDX-Monitoring sont lent à compiler leurs librairies Perl.

 

La Commande « rpm » sous linux sert à créer et à installer des paquetages.

 

Schéma de la réalisation de paquetage

 

 

 

5.  Mise en ligne d’IMC

 

Le projet IMC pouvait alors être mis en ligne pour des clients et la communauté Open Source. Il fallait mettre en ligne :

-          les sources brutes (dossier compressé) ;

-          les paquetages RPM ;

-          une archive GNU/Arch avec tout IMC et ses modules ;

-          un système de visualisation l’archive GNU/Arch : « archzoom ».

 

La mise en place de ces éléments c’est fait avec l’administrateur système d’IDEALX pour des raisons de sécurité.

La machine qui sert de serveur était un Open BSD, il a fallut recompiler GNU/Arch pour que le système d’archivage et de visualisation fonctionne dessus.

 

IDX-Monitoring avec navigateur pour HyperGraph modifié (applet JAVA) pour la découverte du réseau.