exposé technique du 2 déc. 2008 applettes et java web start délégation et déploiement r....
TRANSCRIPT
![Page 1: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/1.jpg)
Exposé technique du 2 déc. 2008Exposé technique du 2 déc. 2008
ApplettesApplettes et et Java Web StartJava Web StartDélégationDélégation etet déploiement déploiement
R. M. Ingénieurs 2000 IR3
![Page 2: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/2.jpg)
SommaireSommaire
• Les applettes Présentation Créer et exécuter une applette La sécurité des applettes• Les droits et les interdictions.• Lever ces interdictions.
• Java Web Start (JWS) Présentation Déployer une application ok La sécurité
![Page 3: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/3.jpg)
Les Applettes, c’est quoi ?Les Applettes, c’est quoi ?
• Programme Java qui s’intègre dans une page Web.
• Interactivité. Graphique animé, lecteur vidéo, etc.
• Exécution du code côté client. Répartition de charge
• Multiplateforme et « multinavigateur ».
• Principale concurrent : Flash
![Page 4: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/4.jpg)
L’applette est chargée depuis un serveur puis exécutée sur le poste client.
Processus de chargementProcessus de chargement
page.html +Applet.class
![Page 5: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/5.jpg)
Comment lire une Applette ?Comment lire une Applette ?
• Pour l’insérer dans une page Web <OBJECT> (valide W3C) <APPLET> (préconisée par SUN)
• Pour l’exécuter Un navigateur AppletViewer (JDK)• appletviewer http://.../MonApplet.html
Toutes les applettes de la page sont exécutées
![Page 6: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/6.jpg)
La balise <applet>La balise <applet>
<applet codebase= " http://localhost:8080/Projet/"code="MonApplet.class" archive="archive1.jar, archive2.jar" name="A1"width="200" height="200">
<param name="arg1" value="value1" /> <param name="arg2" value="value2" /></applet>
![Page 7: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/7.jpg)
Comment créer une applette ?Comment créer une applette ?
public class MyFirstApplet extends Applet {@Override public void init() {…}@Override public void start() {…}@Override public void stop() {…}@Override public void destroy() {…}@Override public void paint() {…}
}Cycle de vie
• AppletViewer : init() start() stop() destroy()• Navigateurs récents: init()+start() stop()+destroy()
![Page 8: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/8.jpg)
Différents dialogues possibles (1/2)Différents dialogues possibles (1/2)
• Entre applets d’une même page getAppletContext().getApplet("A1"). javaMethod()
• De JavaScript à une applet document.applets[‘A1'].javaMethod()
• Des applets à JavaScript Ajouter l’attribut mayscript="true" Importer plugin.jar (JRE) new JSObject.call("javascriptMethod")
![Page 9: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/9.jpg)
Différents dialogues possibles (2/2)Différents dialogues possibles (2/2)
• Avec le serveur qui héberge l’applette
URLConnection con = new URL(getCodeBase(), «ServletName »).openConnection()OutputStream stream = con.getOutputStream()
![Page 10: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/10.jpg)
Sécurité des applettesSécurité des applettes
• La SandBox Protéger le client Pas d’accès aux fichiers, périphériques et au réseau du client. Lève SecurityException
• Accès non restreint ? Modifier les politiques de sécurité du client Signer numériquement l’application.
![Page 11: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/11.jpg)
Les politiques de sécuritéLes politiques de sécuritéEtendre les droits
• Un fichier côté clientgrant codeBase "http://localhost:8080/AppletServlet/MstscNS.jar" { permission java.io.FilePermission "c:\\windows\\system32\\mstsc.exe", "execute"; };• A éditer à la main ou avec policytool (JRE).• Prendre en compte la nouvelle politique
appletviewer –H-Djava.security.policy=« mypolicy » http://.../file.html La placer dans {USER.HOME}/.java.policy
![Page 12: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/12.jpg)
Signature numériqueSignature numériqueLever les interdictions
• Archiver l’application
• Créer un certificat keytool -genkey -keystore myKeystore.ks -alias mykey
• Signer l’archive jarsigner –keystore myKeystore.ks myappli.jar mykey
![Page 13: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/13.jpg)
ConclusionConclusion
• Avantages Technologie mature S’intègre facilement S’affranchir des limitations de HTML• Bibliothèques Java consistantes
• Les applettes ne sont pas mortes Java FX
![Page 14: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/14.jpg)
Java Web Start : Présentation Java Web Start : Présentation
• Déploiement d’applications ou d’applettes Java
Téléchargement des données. Installation / Exécution / Désinstallation Intégration Mises à jour automatiques
• A l’initiative du client. Différent de System Management Server
• Equivalent à ClickOnce
![Page 15: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/15.jpg)
Avantages Java Web StartAvantages Java Web Start
• La portabilité
• La maintenance
• La sécurité
• Les optimisations
Mises à jour des fichiers anciens seulement
(jardiff)
Seules les ressources utilisées sont téléchargées
Mises en cache (exécution hors ligne, lancement
accéléré)
![Page 16: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/16.jpg)
L’application est téléchargée, installée puis exécutée sur le poste client
Processus de déploiementProcessus de déploiement
Descriptor.jnlp +Application.jar
2 Client JWS 2 Client JWS demande demande
Application.jarApplication.jar
![Page 17: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/17.jpg)
• Aucune modification du code n’est nécessaire.• Archiver l’application• Créer fichier de lancement au format JNLP• Ajouter le type MIME « application/x-java-jnlp-file jnlp ».
Au niveau du serveur Web (Apache : fichier « mime.types »)
• Placer les archives + JNLP sur le serveur Web
Déployer une applicationDéployer une application
![Page 18: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/18.jpg)
Le fichier JNLPLe fichier JNLPStructure
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE jnlp PUBLIC « -//Sun Microsystems, Inc//DTD
JNLP Descriptor 6.0//EN" « http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec="6.0+" codebase="http://localhost:8080/TestJWS"><information>(...) </information><security> (...) </security><resources> (...) </resources><application-desc> (...) </application-desc><applet-desc> (...) </applet-desc>
</jnlp>
![Page 19: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/19.jpg)
Le fichier JNLPLe fichier JNLPInformation
<information><title>Nom de l’application</title><shortcut><desktop /></shortcut><homepage href="http://.../expose.html"/><description> (…) </description><icon kind="splash" href="img/ig2k_logo.png" /><offline-allowed/>
</information>
![Page 20: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/20.jpg)
Le fichier JNLPLe fichier JNLPSécurité, Update et Resources
<security><all-permissions />
</security>
<update check=“always" policy="prompt-update"/>
<resources><java version="1.6+" max-heap-size="64m"/><jar href="Mstsc_version_JWS.jar"
main="true" download="eager"/></resources>
![Page 21: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/21.jpg)
Le fichier JNLPLe fichier JNLPApplication
<application-desc main-class="MaClassePrincipale"><argument>arg1</argument><argument>arg2</argument>
</application-desc>Ou bien …
<applet-desc main-class="MonApplet" name="test" width="320" height="240">
<param name="key1" value="value1" /><param name="key2" value="value2" />
</applet-desc>
![Page 22: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/22.jpg)
Lancer une application Java Web StartLancer une application Java Web Start
• Pré-requis : Client JWS (inclus dans les JRE 1.4+)
•Avant installation
Depuis un navigateur Web
• <a href=« AppliDescriptor.jnlp»>Start Appli</a>
En ligne de commande
• javaws HTTP://.../AppliDescriptor.jnlp
• Après installation
À partir d’un gestionnaire d’applications
À partir d’un raccourci créé sur le bureau
![Page 23: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/23.jpg)
Lancer une application Java Web StartLancer une application Java Web StartLe gestionnaire d’applications
• javaws -viewer
![Page 24: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/24.jpg)
• Identique aux applettes Exécution dans la SandBox
• Etendre les droits Mêmes solutions :• Modifier les politiques de sécurité• Signer numériquement les archives
Nouvelle solution : l’API JNLP
Java Web Start : Sécurité Java Web Start : Sécurité
![Page 25: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/25.jpg)
• Etendre les droits sans signature numérique • Librairie nécessaire « javaws.jar » (JRE)
• Fournit 11 services dont : PrintService : accès à l’imprimante FileOpenService/FileSaveService : accès aux fichiers en lecture / écriture Etc.
Java Web Start : SécuritéJava Web Start : SécuritéL’API JNLP (1/2)
![Page 26: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/26.jpg)
FileOpenService fos = (FileOpenService) ServiceManager.lookup("javax.jnlp.FileOpenService");FileContents[] fcs = fos.openMultiFileDialog(null, null);for (FileContents file : fcs)
System.out.println(file.getName()); // lecture possible
Java Web Start : SécuritéJava Web Start : SécuritéL’API JNLP (2/2)
![Page 27: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/27.jpg)
• Facile à mettre en place • Technologies complémentaires
Migration d’une applette en application desktop
• Solutions gratuites !
ConclusionConclusion
![Page 28: Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M.Ingénieurs 2000 IR3](https://reader035.vdocuments.fr/reader035/viewer/2022070308/551d9d7f497959293b8b801a/html5/thumbnails/28.jpg)
Merci de votre attention.
Questions ?
R. M. Ingénieurs 2000 IR3