Java Web Start, vous connaissez ? C'est un système qui permet de déployer des application Java très simplement...

Sur le serveur: les archives Jar de l'application sont accessibles en HTTP, accompagnées d'un fichier JNPL (du XML) qui fait office de descripteur de déploiement (liste des Jar, nom de l'application, etc etc)

Sur le client: quand l'utilisateur télécharge le fichier JNPL en cliquant sur un lien, la JRE prend la main. Elle télécharge les archives Jar et les installe. C'est la JRE qui se préocupe des détails de bas niveau comme où mettre les archives, intégrer l'application au menu démarrer, vérifier les nouvelles versions, vérifier les certificats, etc etc.

Tout cela, c'est bien beau, mais ça ne simplifie pas le déploiement côté serveur. Je me suis penché sur le problème, et pour la prochaine version de la GED, j'ai une solution ... que je trouve sympa.

Toute la GED, clients et serveur, est contenue dans une webapp (archive WAR). Une fois déployée au sein d'un serveur de servlet (cinq minutes d'administration à tout casser), la GED est opérationnelle. La webapp sait alors immédiatement :
- Répondre à des requêtes XML-RPC (fonctionnalités métier)
- Distribuer via Web Start les clients XML-RPC correctements configurés (génération dynamique des JNPL)
- Distribuer la documentation en HTML.

J'ai monté un prototype pour vérifier le bon fonctionnement du tout. J'ai testé avec Jetty et Tomcat, ça marche du tonnerre. Pour ne pas m'enconbrer de la configuration d'une base de données, j'ai utilisé Derby, le SQLite du Java.

La nouveauté, c'est aussi l'utilisation d'XML-RPC, en utilisant plus particulièrement l'implémentation d'Apache, ws-xmlrpc. Cette implémentation est très inéressante, car :
- elle comporte des extentions propriétaires au protocole qui permettent de gagner en vitesse, tout en restant compatible avec les clients standards
- elle permet de crypter les communications (SSL) - elle me permet de générer automatiquement un SDK Java d'accès à la GED.

J'ai profité du prototypage pour (re)tester NetBeans, le RAD Java de Sun. Son constructeur d'interface graphique est excellent (que de progrès depuis trois ans) et il simplifie vraiment le développement par une grande automatisation de l'intégration. Par contre, le support de Subversion n'est pas livré en standard, car il n'est pas encore stable.