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

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

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

• 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

• 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

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

• 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

Merci de votre attention.

Questions ?

R. M. Ingénieurs 2000 IR3