Voici quelques captures d’écran de l’application d’administration sur laquelle je travaille depuis un petit bout de temps. Le principe de cette application est de permettre à un opérateur système de visualiser dans un navigateur l’état de processus distant de notre application. L’administrateur peut aussi démarrer/arrêter une instance ou executer un scénario pour lancer plusieurs applications en même temps. La partie GUI a été codée avec Java Server Faces (JSF) et AJAX. La partie serveur communique avec des agents via JGroups, l’api réseau qu’utilise JBoss et JCache entre autre.
La première version utilise le composant tree2 de MyFaces pour lister les agents trouvés sur le réseau. J’avais découpé l’interface pour que les commandes se trouvent uniquement dans l’arbre à gauche. La vue centrale devait servir à visualiser les détails des élements sélectionnés. Le souci fut qu’il était alors difficile de montrer en temps réel si une application fonctionnait ou non. Il aurait fallu recharger toute la page et changer par exemple les couleurs du texte de vert à rouge…
Cliquez sur l’image pour l’afficher en grand.
Il y a 2 semaines, j’ai commencé à refondre l’interface. Le bandeau supérieur permet de naviguer dans l’outil. La partie de gauche liste dynamiquement les machines découvertes sur le réseau. Le bandeau orange est une partie faite avec AJAX sur laquelle je reviendrai plus tard. La partie centrale mélange maintenant de l’information et des commandes.
Voici 2 captures d’écran avec la première version remaniée de l’outil:
La version actuelle permet maintenant de voir en détail l’état d’une application.
Dans une partie réservée à l’administrateur système, un opérateur peut démarrer et arrêter des instances, ainsi qu’éxécuter des scénarios. La mise en place des panels tabs a été très aisée avec JSF. Par contre j’avoue que pour mélanger AJAX et JSF, j’ai un peu triché: dans mes pages JSF je force les id de mes composants, ce qui me permet ensuite lorsque je code la partie AJAX (en Javascrip) de retrouver mes lignes de tableau dans la page.
Que permet AJAX ? Grâce à une librairie JavaScript (Prototype 1.2) je récupere le contenu d’une servlet qui me donne l’état de mon réseau au format XML. Si une instance est passée du status ALIVE à UNKNOW, le bandeau orange de status va alors se rafraichir et montrer un message d’alerte pour l’administrateur. D’autre part, il est possible de retrouver un composant dans une page HTML pour en changer la valeur. Cela me permet de mettre à jour le tableau de status lorsque l’utilisateur a sélectionné l’instance en question. AJAX est très pratique pour mettre à jour une page dans le navigateur sans recharger celle-ci du serveur.