Déploiement d’une application Java avec Java Web Start.

19 06 2009

Voici un extrait du rapport d’un projet auquel j’ai participé qui pourrait être utile, alors pourquoi ne pas le partager ?

logo java web start (JWS)


Introduction au déploiement d’application Java Swing

Le déploiement d’une application sur les postes de tous ses utilisateurs peut-être une tâche très longue et récurrente. En effet, même avec une distribution de l’application par internet, ses utilisateurs doivent la télécharger puis l’installer. Cette dernière tâche qui peut paraître banale pour certains peut rapidement se transformer en dur labeur pour d’autres. De plus, si l’application est mise à jour, tout le travail est à refaire. C’est pour ces différentes raisons que nous voulons centraliser nos applications, c’est-à-dire, les garder sur un serveur qui est accessible par les utilisateurs quand ils le souhaiteront. Dès qu’une mise à jour sera faite, nous pourrons la mettre immédiatement à disposition.

Pour que les utilisateurs puissent utiliser nos applications de manière transparente, nous avons identifié deux solutions différentes. L’une étant de transformer notre application Java en applet. Celle-ci peut ensuite être ouverte dans un navigateur grâce à la machine virtuelle Java. Une autre solution consiste à mettre l’application telle quelle sur le serveur et à créer un fichier JNLP (Java Network Launching Protocol ) qui permettra à l’environnement d’exécution Java d’exécuter l’application. C’est cette solution que nous allons adopter.

Nous présenterons ci-après les deux solutions et discuterons leurs avantages et inconvénients.

Applet Java

Une applet Java est l’interface graphique d’un programme Java. Cette applet peut ensuite être visualisée dans un navigateur Web grâce à la machine virtuel Java.

Avantage : L’exécution est totalement transparente.

Inconvénient : L’application doit être modifiée. Ces modifications peuvent prendre un certain temps et pourraient sur certaines applications s’avérer complexes.

L’utilisateur doit avoir installée la machine virtuelle Java.

Java Web Start (JWS)

Java Web Start est un outil informatique de déploiement d’applications Java. Il est inclut dans le JRE. Le lancement d’une application utilisant ce système se fait tout simplement en cliquant sur un lien dans une page HTML. Cependant, plutôt que de pointer vers une autre page Web, ils donnent accès à un fichier JNLP. Le fichier JNLP décrit l’application à lancer. Le navigateur identifie l’extension (.jnlp) et lance Java Web Start en lui fournissant le fichier JNLP. Java Web Start télécharge, met en cache puis exécute l’application selon les instructions du fichier JNLP. Nous verrons plus en détail avec notre fichier JNLP quelles sont les différentes possibilités offertes par ce fichier de configuration.

Nous allons maintenant lister les différents avantages et défauts de cette solution par rapport à l’utilisation d’applet :

Avantage : L’application peut être utilisée de manière déconnectée si elle a été utilisée auparavant. L’utilisateur peut simplement avoir à exécuter un icône sur son bureau.

Inconvénient : L’utilisateur doit avoir installé l’environnement d’exécution Java.
Au vu de ce comparatif rapide, nous avons décidé de déployer l’application Java existante en utilisant l’outil JWS car ce dernier permet un déploiement rapide et simple.

Déploiement d’une application via JWS

Le déploiement d’une application via JWS peut se décomposer en trois étapes. La première consiste à créer un ficher jar correspondant à l’application. Il faut ensuite créer le fichier JNLP. Ces deux premières étapes peuvent être automatisées avec certains environnements de développement (Netbeans ou encore Eclipse avec un plugin). La dernière étape consiste à mettre en place le serveur qui hébergera notre application.

La création du fichier jar n’est pas une tâche compliquée. Il existe cependant certains points sur lesquels il faut faire attention. Tout d’abord, il faut inclure dans le jar toutes les ressources extérieures utilisées.

Il ne faut donc plus faire :
new ImageIcon(’org/projet/logo.gif’)
mais plutôt prendre l’habitude de faire :
new ImageIcon(getClass().getRessource(’org/projet/logo.gif’)

Les fichiers jar générés doivent être signés si l’application doit pouvoir accéder à des données de l’utilisateur. Mais ce n’est pas le cas de nos applications.

Le fichier JNLP est un fichier XML contenant la description de l’application et ses dépendances. C’est ce fichier qui fait le lien entre le navigateur et la JRE. Une fois ce fichier déposé sur le serveur, il ne reste plus qu’à créer un lien dans une page HTML vers ce fichier :
<a href=”launch.jnlp”>Lancer l’application</a>

Ce fichier xml doit respecter la dtd de sun4.

Voici notre fichier JNLP

Il ne nous reste plus qu’à configurer le serveur et y déposer le fichier HTML contenant le lien vers le fichier JNLP, le fichier JNLP ainsi que les fichiers jar nécessaires.

Afin que le navigateur des utilisateurs reconnaisse le fichier JNLP et exécute java, il faut, sur un serveur apache, ajouter la ligne suivante dans le fichier mime.types du répertoire conf.
application/x-java-jnlp_file jnlp

Conclusion sur le déploiement d’application Java Swing

Le système mis en place nous permet donc de proposer à tout internaute la dernière version de notre application sans qu’il ait d’installation à faire et ce quelque soit son système d’exploitation.


Actions

Informations