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
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.
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.