openJabNab à grande échelle
Le problème qui va se poser est le nombre de lapins à connecter, et comment simplifier toutes ces connexions. En effet, les utilisateurs n'auront pas envie de changer tout le temps leur configuration, au gré des serveurs qui ferment et qui ouvrent.
Solution 1
L'idée serait donc d'avoir un premier OJN en frontal, que tous les lapins vont utiliser dans leur configuration. On appelera ce serveur frontal.
Un annuaire répertorie tous les serveurs OJN, et va communiquer cette liste au frontal. (par exemple, on aura OJN1, OJN2 et OJN3)
En fonction de la charge de chaque OJN, et en fonction de leur statut (en route, ou éteint), le frontal va générer un locate.jsp qui enverra le lapin vers OJN1.
Si OJN1 plante, ou s'éteint, le lapin va rebooter, et suivre sa configuration, à savoir appeler frontal, qui va générer un nouveau locate.jsp, pour envoyer le lapin vers OJN2.
Résultat, l'interruption de service aura durée le temps du reboot.
Solution 2
Tous les lapins utilisent l'annuaire comme configuration (par exemple freenabaztag.com/vl) Sur le serveur de l'annuaire, on rajoute 2 pages en php, dans un répertoire /vl. : bc.jsp et locate.jsp
L'annuaire connaît déjà la liste des serveurs OJN. Pour connaître leur état, l'annuaire les interroge régulièrement (par exemple, toutes les 15 minutes). Chaque OJN va alors renvoyer un fichier xml avec le nombre de lapins connectés, et un nombre de lapins maximum que le serveur veut accepter (nouvelle configuration à mettre en place - avec une option : dépasser ce nombre, ou bloquer les connections). L'annuaire enregistre ces données. Lors d'un appel à bc.jsp, l'annuaire fait une liste des OJN par pourcentage d'occupation croissant, et va alors tester (toujours avec le retour en xml) que le premier serveur de la liste est en route. Si oui, on lui transfère la requête bc.jsp pour avoir le bytecode modifié. Si non, on essaye avec le serveur suivant. etc. On stocke alors en BDD que ce lapin va se connecter au serveur.
Ensuite, on créé le locate.jsp qui correspond au serveur retenu (à partir de la base de données).
Dans le cas d'un plantage du serveur OJN, on repart vers l'annuaire, comme dans la 1ère solution.
La configuration du lapin
Pour ce qui est de la configuration des plugins, l'annuaire sauvegardera régulièrement la configuration du lapin. Cette sauvegarde sera effectuée par le serveur OJN, qui enverra à la connexion du lapin, et à sa déconnexion tous les paramètres. Une action manuelle dans l'interface d'admin permettra aussi de forcer cette sauvegarde, et de charger la dernière sauvegarde.