Java pour le développement de        clients lourds   Déploiement d’applications Java avec            Java Web Start      ...
Licence                                   Creative Commons                                       Contrat Paternité        ...
Déroulement du cours Déploiement avec JWS                        Pédagogie du cours                          Présentation ...
Déploiement : introduction                        Le déploiement permet la distribution du logiciel sur le poste          ...
Déploiement : JAR                        La solution du support par JAR est souhaitable puisqu’elle                       ...
Déploiement : JAR                          Utilisation pour la création (suite)                              Utilisation d...
Déploiement : JAR                         La manipulation des ressources (tout ce qui ne représente pas                   ...
Déploiement : JAR                        Localiser les ressources à partir du package principale et                       ...
Déploiement : JAR                         Exemple : manipulation des ressources à partir d’un JAR                         ...
Déploiement : sécurité                        Une application Java distante ou de type « riche » s’exécute                ...
Déploiement : sécurité                        Signer une application correspond à signer de façon digitale                ...
Déploiement : sécurité                        L’outil « keytool » demande sous la forme d’un                        questi...
Déploiement : sécurité                        Certificat de sécurité proposé avant l’exécution de l’application           ...
Déploiement : Java Web Start                        Java Web Start (JWS) permet le déploiement d’applications             ...
Déploiement : Java Web Start                        Les avantages de cette technologie sont                           mise...
Déploiement : Java Web Start                        Java Web Start utilise et implémente une API et un protocole          ...
Déploiement : Java Web Start                        Page Java Web Start officielle                          http://java.su...
Déploiement : Java Web Start                           Implémentation de la spécification JNLP par Sun : l’outil          ...
Java Web Start : fichier JNLP                        Le fichier JNLP est un document XML qui débute et se termine         ...
Java Web Start : fichier JNLP                         Exemple (1) : fichier JNLP d’une application déployée par           ...
Java Web Start : fichier JNLP                        La balise <information> permet de donner des informations            ...
Java Web Start : fichier JNLP                        La balise <information> permet de donner des informations            ...
Java Web Start : fichier JNLP                        Exemple (2) : fichier JNLP d’une application déployée par JWS        ...
Java Web Start : fichier JNLP                        La balise <security> permet de donner des informations               ...
Java Web Start : fichier JNLP                        Exemple (3) : fichier JNLP d’une application déployer par JWS        ...
Java Web Start : fichier JNLP                        Exemple : déploiement d’une application qui affiche une image        ...
Prochain SlideShare
Chargement dans…5
×

Introduction à Java Web Start : déploiement d'applications Java

6 544 vues

Publié le

Dans un premier temps une présentation est faite sur la manière de fabriquer une archive JAR et de la signer, puis, présentation de la technologie Java Web Start en détaillant le format JNLP.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
6 544
Sur SlideShare
0
Issues des intégrations
0
Intégrations
980
Actions
Partages
0
Téléchargements
213
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction à Java Web Start : déploiement d'applications Java

  1. 1. Java pour le développement de clients lourds Déploiement d’applications Java avec Java Web Start Mickaël BARON - 2007 (Rév. Juin 2011) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
  2. 2. Licence Creative Commons Contrat Paternité Partage des Conditions Initiales à lIdentique 2.0 Francekeulkeul.blogspot.com http://creativecommons.org/licenses/by-sa/2.0/fr Déploiement JWS - M. Baron - Page 2
  3. 3. Déroulement du cours Déploiement avec JWS Pédagogie du cours Présentation des concepts liés au déploiement Illustration avec de nombreux exemples Des bulles d’aide tout au long du cours Ceci est une alerte Ceci est une astuce Pré-requis Connaissance de Java Structuration du cours Archive JAR et sécurité Fichier JNLPkeulkeul.blogspot.com Informations complémentaires sur JWS http://java.sun.com/products/javawebstart/ http://lfe.developpez.com/Java/SWT/WebStart/ http://jsorel.developpez.com/tutoriels/java/jws1/ JWS - M. Baron - Page Déploiement 3
  4. 4. Déploiement : introduction Le déploiement permet la distribution du logiciel sur le poste client Deux aspects caractérisent le déploiement d’un logiciel le support permettant de stocker le code binaire et les ressources la technique utilisée pour le transport et la mise à jour L’API de Java fournit un ensemble de technologies adapté aux besoins du déploiement Le support se fait directement dans les fichiers « class » ou dans des fichiers « jar » contenant des fichiers « class » La technique de transport se fait par la technologie Javakeulkeul.blogspot.com Web Start Le déploiement doit pouvoir également assurer un niveau de sûreté lors de l’exécution sur le poste client (autoriser ou pas laccès aux fichiers du client …) Déploiement JWS - M. Baron - Page 4
  5. 5. Déploiement : JAR La solution du support par JAR est souhaitable puisqu’elle permet Un transport plus rapide (un fichier contre plusieurs) Le document HTML est plus simple à modifier (pour les Applets) Contient toutes les ressources dont le logiciel à besoin Les IDE actuels permettent la Pour créer une archive JAR création des JAR par Utilisation de l’outil jar des interfaces utilisateurskeulkeul.blogspot.com Pour créer un fichier .jar contenant tous les fichiers du répertoire courant jar cvf hello.jar . Le . indique le répertoire courant Création Mode Nom archive Verbose Déploiement JWS - M. Baron - Page 5
  6. 6. Déploiement : JAR Utilisation pour la création (suite) Utilisation d’un fichier (MANIFEST.MF) qui précise un ensemble d’attributs pour exécuter dans de bonnes conditions l’application L’attribut Main-class permet de connaître la classe principale à exécuter Manifest-Version: 1.0 Created-By: 1.4.1_01 (Sun Microsystems Inc.) Main-class: HelloWorld MANIFEST.MF Création du jar avec un fichier manifeste : jar cvfm hello.jar MANIFEST.MF .keulkeul.blogspot.com Utilisation pour l’exécution java –jar hello.jar La classe HelloWorld est chargée par l’intermédiaire Cette option permet d’exécuter à du fichier MANIFESTE.MF partir d’une archive du code java Déploiement JWS - M. Baron - Page 6
  7. 7. Déploiement : JAR La manipulation des ressources (tout ce qui ne représente pas du code Java) à partir d’une archive JAR est différente que la solution sans JAR L’utilisation des packages les fichiers de localisation, pour tout projet est les images et les sons, recommandée les fichiers de configuration Récupère la classe qui a Créer une URL à partir du code suivant été chargée (contient la méthode main) (1) URL ma_res = this.getClass().getClassLoader().getResource(String path)keulkeul.blogspot.com A partir du chemin de la ressource création d’une URL URL ma_ressource = this.getClass().getResource(String path) Autre manière plus rapide (2) Déploiement JWS - M. Baron - Page 7
  8. 8. Déploiement : JAR Localiser les ressources à partir du package principale et descendre jusqu’au répertoire contenant les ressources (path) Exemples de chemin (contenu de path) rootpackage/resources/images (1) /autrerootpackage/secondpackage/informations/localisation (2) /rootpackage/resources/images (2) A partir de l’objet URL construit possibilité de créer toute sorte d’objet fonction du type de ressourcekeulkeul.blogspot.com Image, ImageIcon, … Avec la solution (2) ne pas oublier le caractère « / » Cette solution fonctionne même en début de la chaîne du si votre application n’est pas chemin de la ressource distribuée sous forme de JAR Déploiement JWS - M. Baron - Page 8
  9. 9. Déploiement : JAR Exemple : manipulation des ressources à partir d’un JAR package monpackage; public AfficheImage extends JFrame { getContentPane().setLayout(new BorderLayout()); Code qui ne fonctionne getContentPane().add(BorderLayout.CENTER, new Jlabel( pas si l’application est new ImageIcon("monpackage/usercogn.gif"))); JButton mon_coco = new JButton( déployée dans un JAR new ImageIcon("monpackage/go.gif")); NullPointerException mon_coco.addActionListener(this); getContentPane().add(BorderLayout.SOUTH, mon_coco); pack(); setVisible(true); } package monpackage; public AfficheImage extends JFrame { ... getContentPane().add(BorderLayout.CENTER, new Jlabel(new ImageIcon(keulkeul.blogspot.com getClass().getResource("/monpackage/usercogn.gif"))); JButton mon_coco = new JButton(new ImageIcon( getClass().getResource("/monpackage/go.gif"))); mon_coco.addActionListener(this); ... } Préférez largement cette seconde solution pour gérer les ressources Déploiement JWS - M. Baron - Page 9
  10. 10. Déploiement : sécurité Une application Java distante ou de type « riche » s’exécute dans un bac à sable Tant que l’application est dans le bac à sable elle ne peut pas accéder aux éléments « à risque » de la machine du client Fichiers systèmes Données personnelles Périphériques à risques Pour sortir du bac à sable c’est-à-dire si votre application a besoin d’un accès sur votre machine vous devez utiliser unekeulkeul.blogspot.com application signée. Exemples : Accès au répertoire « mes images » du client pour un logiciel de développement photos Accès aux ressources d’un périphérique Déploiement JWS - M. Baron - Page 10
  11. 11. Déploiement : sécurité Signer une application correspond à signer de façon digitale l’archive JAR contenant l’application Un fichier signé a besoin d’un « keystore » (clé du magasin) qui est un fichier issu du développeur et qui prouve que le fichier JAR vient de la bonne personne Des clés professionnelles existent comme VeriSign ou Thawte mais peuvent être générées gratuitement par l’outil « keytool » keytool -genkey -keystore mykeystore -alias mykeykeulkeul.blogspot.com Contient la clé « mykey » Génère une clé du magasin appelée « mykeystore » C’est la clé Fonctionnement identique pour les applications déployer par JWS Déploiement JWS - M. Baron - Page 11
  12. 12. Déploiement : sécurité L’outil « keytool » demande sous la forme d’un questionnaire différents éléments comme : mot de passe, nom, organisation, … Une fois la clé définie vous pouvez signer vos archives JAR en utilisant l’outil « jarsigner » jarsigner -keystroke mykeystroke file.jar mykeykeulkeul.blogspot.com Signe le fichier « file.jar » avec la clé « mykey » contenu dans « mykeystroke » Si le fichier JAR est signé un certificat de sécurité doit être validé par l’utilisateur Déploiement JWS - M. Baron - Page 12
  13. 13. Déploiement : sécurité Certificat de sécurité proposé avant l’exécution de l’application Le propriétaire de l’application Les informations relatives au propriétaire dekeulkeul.blogspot.com l’application Déploiement JWS - M. Baron - Page 13
  14. 14. Déploiement : Java Web Start Java Web Start (JWS) permet le déploiement d’applications en locale à travers le réseau (stand-alone) JWS permet l’installation d’une application dite « client lourd » grâce à un simple lien hypertexte d’une page web Java Web Start est le fruit des travaux réalisés sur la JSR-56 Page officielle du projet : http://java.sun.com/products/javawebstartkeulkeul.blogspot.com Il est inutile de modifier une application déjà développée pour qu’elle puisse être utilisée avec Java Web Start Déploiement JWS - M. Baron - Page 14
  15. 15. Déploiement : Java Web Start Les avantages de cette technologie sont mise à jour automatique de l’application si une nouvelle version est disponible assure une mise en cache locale des applications pour accélérer leur réutilisation ou si la machine client n’est pas connectée sécurité des applications assurée par l’utilisation du bac à sable (voir section précédente) Toute application déployer avec JWS est une application ditekeulkeul.blogspot.com client « lourd/riche » Déploiement JWS - M. Baron - Page 15
  16. 16. Déploiement : Java Web Start Java Web Start utilise et implémente une API et un protocole appelés Java Network Lauching Protocol (JNLP) Pour utiliser cette technologie il faut définir un fichier de description XML décrivant l’application à exécuter (JNLP) Cette technologie est disponible sur toutes les plateformes qui supportent Java (apparu depuis la version JSEE 1.4) L’utilisation de JWS implique la réalisation de trois étapeskeulkeul.blogspot.com packager l’application dans un fichier JAR (section précédente) créer le fichier de lancement au format « jnlp » copier les deux fichiers sur le serveur web Déploiement JWS - M. Baron - Page 16
  17. 17. Déploiement : Java Web Start Page Java Web Start officielle http://java.sun.com/products/javawebstart http://java.sun.com/javase/6/docs/technotes/guides/deployment Démos : http://java.sun.com/products/javawebstart/demos.html Ressources sur JNLP et JWS Java One 2006 (http://developpers.sun.com/learning/javaoneonline TS-3212, TS-3133, TS-7904 http://today.java.net/pub/a/today/2005/09/01/webstart.htmlkeulkeul.blogspot.com http://webstartfaq.com Déploiement JWS - M. Baron - Page 17
  18. 18. Déploiement : Java Web Start Implémentation de la spécification JNLP par Sun : l’outil s’appelle Java Web Start Détails de l’application sélectionnée Liste des applications disponibleskeulkeul.blogspot.com Exécuter en mode hors-ligne ou pas Déploiement JWS - M. Baron - Page 18
  19. 19. Java Web Start : fichier JNLP Le fichier JNLP est un document XML qui débute et se termine par la balise <jnlp> … </jnlp> Cette balise contient trois attributs (obligatoires) String spec : version de la spécification de JNLP. La valeur défaut est « 1.0+ ». Le « + » oblige à utiliser une version égale ou supérieure String codeBase : URL qui pointe sur le fichier décrit par href String href : nom du fichier JNLP La balise <jnlp> contient également un ensemble de sous baliseskeulkeul.blogspot.com <information> : utilisée une ou plusieurs fois <security> : n’est pas obligatoire <resources> : utilisée zéro ou plusieurs fois <application-desc> ou <applet-desc> : l’un ou l’autre Déploiement JWS - M. Baron - Page 19
  20. 20. Java Web Start : fichier JNLP Exemple (1) : fichier JNLP d’une application déployée par JWS C’est un fichier XML <?xml version="1.0" encoding="utf-8"?> <!-- Fichier JNLP de notre première application --> <jnlp On utilise ici une version 1.5 supérieure de la spec="1.5+" spécification JNLP codebase="http://my_company.com/jaws/apps" href="application.jnlp"> <information> ... <security> ... URL de l’application JWS <resources> ...keulkeul.blogspot.com <application-desc> ... </jnlp> Nom du fichier JNLP Les autres sous balises Déploiement JWS - M. Baron - Page 20
  21. 21. Java Web Start : fichier JNLP La balise <information> permet de donner des informations concernant différents aspects La balise <information> peut-être répétée plusieurs fois en fonction de la valeur de l’attribut os de <information> <title> : le titre de l’application (obligatoire) <vendor> : le nom du concepteur (obligatoire) <homepage> : contient dans l’attribut href le chemin (relatif) des différentes ressources pour l’aide (optionnel) <description> : donne une description de l’application (optionnel). Elle contient un attribut kind qui définit comment est présentée la descriptionkeulkeul.blogspot.com one-line : dans une table short : dans un paragraphe tooltip : dans une bulle d’aide Si kind n’est pas spécifié utilisation de la valeur par défaut définie par le corps de la balise <description> Déploiement JWS - M. Baron - Page 21
  22. 22. Java Web Start : fichier JNLP La balise <information> permet de donner des informations concernant différents aspects (suite) <icon> : décrit les URL pour les différentes images qui sont utilisées (optionnel) pendant le chargement de l’application par l’outil Java Application Cache Viewer par les raccourcis Elle nécessite un attribut href (obligatoire) qui permet de donner le chemin de l’image (relatif) L’attribut kind="splash" peut-être utilisé pour afficher un écrankeulkeul.blogspot.com « splash » (optionnel) <offline-allowed> : indique si l’application peut-être lancée hors-ligne. Si elle est précisée l’application est exécutable hors-ligne sinon elle ne l’est pas (optionnel) Déploiement JWS - M. Baron - Page 22
  23. 23. Java Web Start : fichier JNLP Exemple (2) : fichier JNLP d’une application déployée par JWS <information> <title>Simple Application JWS</title> <vendor>Mickaël BARON</vendor> <homepage href="docs/help.html"/> <description>Ma Simple Application JWS</description> <description kind="short">Une petite application montrant la capacité à déployer des JWS. </description> <icon href="images/myimage.jpg"/> <icon kind="splash" href="images/splashimage.gif"/> <offline-allowed/> <association mime-type="application-x/appliJWS-file" extensions="MyApplication">keulkeul.blogspot.com </information> <information os="linux"> <title>Simple Application JWS on Linux </title> <homepage href="docs/linuxhelp.html"> </information> Déploiement JWS - M. Baron - Page 23
  24. 24. Java Web Start : fichier JNLP La balise <security> permet de donner des informations concernant la sécurité (optionnel) <all-permissions> : l’application aura les accès à la machine client et au réseau local en fonction des sécurité de l’application (optionnel) La balise <resources> est utilisée pour spécifier toutes les ressources telles que les classes Java, les librairies natives et les propriétés <jar> : spécifie dans l’attribut href les fichiers JAR utilisés dans l’application <j2se> : spécifie dans l’attribut version la version minimum de la machine virtuellekeulkeul.blogspot.com La balise <application-desc> est utilisée pour paramétrer l’exécution d’une application (optionnel) l’attribut main-class spécifie la classe principale (obligatoire) <argument> donne des valeurs aux arguments Déploiement JWS - M. Baron - Page 24
  25. 25. Java Web Start : fichier JNLP Exemple (3) : fichier JNLP d’une application déployer par JWS Balise pour la sécurité donne l’autorisation après acception du certificat (voir sécurité) <security> <all-permissions/> </security> Balise pour les ressources <resources> <jar href="lib/autrelib.jar"/> </resources> <application-desc main-class="monpackage.maclasse"/> Description de la classe principalekeulkeul.blogspot.com contenu dans le fichier « autrelib.jar » Possibilité de déployer des applications (clients lourds), applets (clients riches) et des bibliothèques Déploiement JWS - M. Baron - Page 25
  26. 26. Java Web Start : fichier JNLP Exemple : déploiement d’une application qui affiche une image <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="http://.../~keulkeul/" href="helloworldjws.jnlp"> <information> <title>Ma Première Application Java Web Start</title> <vendor>Mickael BARON</vendor> <homepage href="http://localhost/~keulkeul" /> <description> Mon Application qui affiche uniquement une image </description> <offline-allowed/> <icon href="images/macosxlogo.gif" /> </information> <security></security> <resources>keulkeul.blogspot.com <j2se version="1.4"/> <jar href="MonJar.jar"/> </resources> <application-desc main-class="monpackage.HelloWorldImage" /> </jnlp> Déploiement JWS - M. Baron - Page 26

×