Article écrit par Yassine Amraoui
Java Web Start, c’est quoi ?
Définition
Il s’agit d’une technologie Java permettant de déployer des applications via le web. Cette technologie a été intégrée au Java Standard Edition J2RE 1.4. Pour les versions précédentes, il est nécessaire de l’installer individuellement.
Outils et principe
A partir d’un serveur web, par exemple Apache, on installe l’application à laquelle on veut accéder. L’application doit être, sur le serveur, au format jar signé. D’un simple clic, on peut télécharger le fichier d’exécution de l’application depuis le web. Ce fichier d’exécution est un fichier JNLP.
Le protocole JNLP
JNLP signifie Java Network Launching Protocol. C’est le format de fichier de la technologie JWS. C’est ce type de fichier que l’on dépose sur le web et que l’on télécharge. Il y contient les informations sur l’application Java ainsi que sur ses dépendances. Ainsi, le système déploie automatiquement l’application.
Contraintes et avantages
Contraintes
La contrainte principale est que la technologie est, par définition, de type client lourd. Donc le bon fonctionnement du déploiement dépend d’une part des performances du poste client, et d’autre part de l’installation de Java Web Start (et Java a fortiori) sur ce poste.
Avantages de JWS
Le plus gros avantage de JWS est de pouvoir déployer des applications à distance. Mais pas que. En effet, le fichier JNLP téléchargé n’est qu’un exécutable d’une application Java, et celle-ci est automatiquement mise à jour donc le poste client n’a pas besoin de subir un redéploiement de l’application. Aussi, grâce au fichier JNLP, il n’y a pas de désinstallation à gérer côté client. Enfin, la technologie permet de mettre en cache, sur le poste du client, les applications pour un futur redémarrage plus rapide.
Configuration du fichier JNLP
Avant de configurer le fichier JNLP, il faut au préalable que ce type-ci soit reconnu dans le serveur hébergeur. Dans le cas d’un serveur Apache, il faut ajouter la ligne suivante dans le fichier \Apache2\conf\mime.types :application/x-java-jnlp_file jnlp
Pour les autres serveurs, on trouve facilement la manipulation à réaliser pour reconnaître les fichiers .jnlp dans leurs documentations officielles respectives.
Le fichier JNLP est au format XML. Il commence par une balise <jnlp>, comme dans l’exemple ci-dessous :<?xml version=”1.0″ encoding=”utf-8″?>
<jnlpspec=”1.0+” codebase=”http://localhost/
“href=”ApplicationTitle.jnlp “>
<information>
<title>Application_Title</title>
<vendor>VendorName</vendor>
<homepagehref=”http://localhost/”/>
<description>Description de l’application</description>
<descriptionkind=”short”>ShortExample</description>
<offline-allowed/>
</information>
<security>
</security>
<resources>
<j2seversion=”1.4″/>
<jarhref=”ExempleApplication.jar”/>
</resources>
<application-descmain-
class=”com.package_name.jnlp.ExampleApplication” />
</jnlp>
Dans la balise <jnlp>, le tag codebase contient le lien vers les fichiers d’exécution (le jar notamment).
La balise <information> contient les détails dont le poste du client a besoin pour lancer l’application, comme les éléments suivants :
- Le nom de l’application dans <title>
- La version de l’application dans le tag version de la balise <j2se>, elle-même dans la balise <resources>
- Le nom du fichier jar contenant la source Java de l’application dans la balise <jar>
- Le nom de la classe Java contenant la méthode main() dans le tag main-class de la balise <application-desc>
Configuration du fichier HTML, gestion de la console et logs
Il suffit d’indiquer le lien vers le fichier JNLP fraîchement configuré, comme ci-dessous :<html>
<head>
<title>HTML Example</title>
</head>
<body>
<H1>Application Example</H1>
<ahref=”http://localhost/ApplicationTitle.jnlp “>Lancer
l’application</a>
</body>
</html>
Au lancement de l’application, il est possible que JWS demande des droits administrateurs, ou du moins de faire confiance à l’application lancée.
Dans les préférences de JWS, il existe un paramètre avancé permettant d’afficher la console Java au démarrage de l’application. Celle-ci permet d’avoir des logs sur les événements, et ainsi de faciliter le suivi en cas d’erreurs sur l’application.
Conclusion
La technologie Java Web Start étant de type client lourd, elle est assez contraignante si les postes clients ne sont pas assez performants, d’autant plus si l’application est dense.
Néanmoins, la technologie a l’avantage d’éviter les mises à jours des applications côté client grâce au simple téléchargement du fichier JNLP, avantage à ne pas négliger lors du choix de l’outil de déploiement des applications Java.
Bibliographie
Page officielle Java Web Start
Java Web StartJava Web Start is an application-deployment technology that gives you the power to launch full-featured applications…