La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Applettes et Java Web Start

Présentations similaires


Présentation au sujet: "Applettes et Java Web Start"— Transcription de la présentation:

1 Applettes et Java Web Start
Exposé technique du 2 déc. 2008 Applettes et Java Web Start Délégation et déploiement R. M. Ingénieurs 2000 IR3

2 Sommaire 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) Déployer une application ok La sécurité

3 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

4 3 – Exécution de Applet.class
Processus de chargement 1- Demande page.html 2- Demande Applet.class page.html + Applet.class 3 – Exécution de Applet.class L’applette est chargée depuis un serveur puis exécutée sur le poste client.

5 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 Toutes les applettes de la page sont exécutées

6 La balise <applet>
<applet codebase= " 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>

7 Comment créer une applette ?
public class MyFirstApplet extends Applet 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()

8 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")

9 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()

10 Sé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.

11 Les politiques de sécurité Etendre les droits
Un fichier côté client grant 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 » La placer dans {USER.HOME}/.java.policy

12 Lever les interdictions
Signature numérique Lever 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

13 Conclusion 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

14 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

15 Avantages 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é)

16 1 Demande Descriptor.jnlp 2 Client JWS demande Application.jar
Processus de déploiement 1 Demande Descriptor.jnlp 2 Client JWS demande Application.jar Descriptor.jnlp + Application.jar 3 Installation / MAJ 4 Exécution L’application est téléchargée, installée puis exécutée sur le poste client

17 Déployer une application
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

18 Le fichier JNLP Structure <jnlp spec="6.0+"
<?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>

19 Le fichier JNLP Information <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>

20 Sécurité, Update et Resources
Le fichier JNLP Sé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>

21 Le fichier JNLP Application
<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>

22 Lancer 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 Après installation À partir d’un gestionnaire d’applications À partir d’un raccourci créé sur le bureau

23 Lancer une application Java Web Start Le gestionnaire d’applications
javaws -viewer

24 Java Web Start : Sécurité
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

25 Java Web Start : Sécurité L’API JNLP (1/2)
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.

26 Java Web Start : Sécurité L’API JNLP (2/2)
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

27 Conclusion Facile à mettre en place Technologies complémentaires
Migration d’une applette en application desktop Solutions gratuites !

28 Merci de votre attention.
Questions ? R. M. Ingénieurs 2000 IR3


Télécharger ppt "Applettes et Java Web Start"

Présentations similaires


Annonces Google