Aujourd’hui nous donnons la dernière touche à notre application de surveillance et d’administration. J’ai casi terminé la partie packaging avec InstallAnywhere. Du coup cela m’a aussi donné l’envie de raconter ici en quoi consiste ce boulot qui m’a pris presque 2 mois avec un collègue (yo stéphane 😉 ).
Le problème à résoudre: notre logiciel est souvent installé sur un grand nombre de machine en salle de marché. Ainsi un de nos clients gére 80 000 portefeuilles boursiers. Autant dire que notre logiciel doit être en mesure de tenir la montée en charge. Jusqu’à aujourd’hui le souci est que lorsqu’une machine plante ou que le réseau est surchargé, l’équipe d’administration technique doit se connecter sur la machine pour relancer les processus. Nous avons donc développé une application de surveillance et d’administration distante. Elle est composée d’un petit agent qui tourne sur chaque machine et d’une ou plusieurs console d’administration centrale. L’interface utilisateur est une application Web classique avec Java Server Faces pour la partie GUI et une application java pour la partie serveur.
Pour la partie agent, un petit composant Java léger permet de:
- – démarrer un processus Unix ou Windows (directement via java.util.Process)
- – découvrir une instance qui fonctionne déjà (via TIBCO Rendezvous)
- – détecter les processus zombi (n’ayant plus d’activité mais étant présent en mémoire)
- – arrêter un processus (via TIBCO Rendezvous)
Pour la partie serveur, j’ai développé une application Web qui fonctionne avec Tomcat 5.0.28. La partie modèle est commune à ce que l’agent gére. Pour synchroniser la liste des agents, j’utilise l’api JGroups de JBoss. Celle-ci permet de découvrir sur le réseau mes agents, puis ensuite de recevoir la liste des applications avec pour chacune un status (démarré/arrêté/planté…). Ensuite pour la partie GUI, comme j’aime bien faire simple j’ai choisi JSF (Java Server Faces) plutôt que Struts. Pourquoi ? Et bien JSF permet contrairement à Struts de générer soit du HTML assez complexe pour un navigateur, soit du WML pour un PDA ou un BlackBerry. Et hop ! d’une pierre, deux coups. En plus de l’interface classique en DHTML, notre application est donc aussi accessible via un BlackBerry ou un SmartPhone. Cela permet donc à une personne de l’exploitation de suivre en temps réel si le logiciel fonctionne correctement, puis ensuite d’effectuer des actions pour éventuellement démarrer d’autres machines, relancer un processus suspect, etc.
De ce projet de 3 mois, j’en ai profité pour proposer JSF afin d’apprendre un peu quelque chose de neuf. Tout d’abord je dirai qu’une fois l’api maîtrisée, il est très facile de créer une page ou deux et de rajouter des fonctionalités. Pour la partie où je devais représenter l’état du réseau, j’ai utilisé l’api MyFaces d’Apache. Il s’agit en fait de l’implémentation open-source de JavaServer(tm) Faces dit « JSF ». Si vous regardez le composant Tree2 vous aurez une idée de ce que j’ai fait pour la partie visuelle… Tiens il faudrait que je mette des screenshots, en faisant juste attention au problème de Copyright.
0 no like
Commentaires récents