Diapositive 1 - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Diapositive 1

Description:

L'applette est charg e depuis un serveur puis ex cut e sur le poste client. ... Toutes les applettes de la page sont ex cut es. La balise applet ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 29
Provided by: ion58
Category:

less

Transcript and Presenter's Notes

Title: Diapositive 1


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
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)
  • Présentation
  • Déployer une application ok
  • La sécurité

3
Les Applettes, cest quoi ?
  • Programme Java qui sintè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
Processus de chargement
1- Demande page.html

2- Demande Applet.class

page.html Applet.class
3 Exécution de Applet.class
Lapplette est chargée depuis un serveur puis
exécutée sur le poste client.
5
Comment lire une Applette ?
  • Pour linsérer dans une page Web
  • ltOBJECTgt (valide W3C)
  • ltAPPLETgt (préconisée par SUN)
  • Pour lexécuter
  • Un navigateur
  • AppletViewer (JDK)
  • appletviewer http//.../MonApplet.html
  • Toutes les applettes de la page sont exécutées

6
La balise ltappletgt
ltapplet codebase " http//localhost8080/Projet/
" code"MonApplet.class"  archive"archive1.ja
r, archive2.jar"  name"A1" width"200"
height"200"gt ltparam name"arg1" value"value1" 
/gt ltparam name"arg2" value"value2" 
/gt lt/appletgt
7
Comment créer une applette ?
public class MyFirstApplet extends Applet
_at_Override public void init() _at_Override
public void start() _at_Override public void
stop() _at_Override public void destroy()
_at_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 dune même page
  • getAppletContext().getApplet("A1"). javaMethod()
  • De JavaScript à une applet
  • document.appletsA1'.javaMethod()
  • Des applets à JavaScript
  • Ajouter lattribut mayscript"true"
  • Importer plugin.jar (JRE)
  • new JSObject.call("javascriptMethod")

9
Différents dialogues possibles (2/2)
  • Avec le serveur qui héberge lapplette
  • URLConnection con new URL(getCodeBase(),
    ServletName ).openConnection()
  • OutputStream stream con.getOutputStream()

10
Sécurité des applettes
  • La SandBox
  • Protéger le client
  • Pas daccè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 lapplication.

11
Les politiques de sécurité Etendre les droits
  • Un fichier côté client
  • grant codeBase "http//localhost8080/AppletServle
    t/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

12
Signature numérique Lever les interdictions
  • Archiver lapplication
  • Créer un certificat
  • keytool -genkey -keystore myKeystore.ks -alias
    mykey
  • Signer larchive
  • jarsigner keystore myKeystore.ks myappli.jar
    mykey

13
Conclusion
  • Avantages
  • Technologie mature
  • Sintègre facilement
  • Saffranchir des limitations de HTML
  • Bibliothèques Java consistantes
  • Les applettes ne sont pas mortes
  • Java FX

14
Java Web Start Présentation
  • Déploiement dapplications ou dapplettes Java
  • Téléchargement des données.
  • Installation / Exécution / Désinstallation
  • Intégration
  • Mises à jour automatiques
  • A linitiative 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
Processus de déploiement
1 Demande Descriptor.jnlp

2 Client JWS demande Application.jar

Descriptor.jnlp Application.jar
3 Installation / MAJ
4 Exécution
Lapplication est téléchargée, installée puis
exécutée sur le poste client
17
Déployer une application
  • Aucune modification du code nest nécessaire.
  • Archiver lapplication
  • Créer fichier de lancement au format JNLP
  • Ajouter le type MIME  application/x-java-jnlp-fi
    le jnlp .
  • Au niveau du serveur Web (Apache fichier
     mime.types )
  • Placer les archives JNLP sur le serveur Web

18
Le fichier JNLP Structure
lt?xml version"1.0" encoding"utf-8"?gt lt!DOCTYPE
jnlp PUBLIC  -//Sun Microsystems, Inc//DTD
JNLP Descriptor 6.0//EN"  http//java.sun.com/d
td/JNLP-6.0.dtd"gt ltjnlp spec"6.0"
codebase"http//localhost8080/TestJWS"gt ltinfo
rmationgt(...) lt/informationgt ltsecuritygt (...)
lt/securitygt ltresourcesgt (...)
lt/resourcesgt ltapplication-descgt (...)
lt/application-descgt ltapplet-descgt (...)
lt/applet-descgt lt/jnlpgt
19
Le fichier JNLP Information
ltinformationgt lttitlegtNom de lapplicationlt/titlegt
ltshortcutgtltdesktop /gtlt/shortcutgt lthomepage
href"http//.../expose.html"/gt ltdescriptiongt
() lt/descriptiongt lticon kind"splash"
href"img/ig2k_logo.png" /gt ltoffline-allowed/gt
lt/informationgt
20
Le fichier JNLP Sécurité, Update et Resources
ltsecuritygt ltall-permissions /gt lt/securitygt ltupda
te checkalways" policy"prompt-update"/gt ltreso
urcesgt ltjava version"1.6" max-heap-size"64m"
/gt ltjar href"Mstsc_version_JWS.jar"
main"true" download"eager"/gt lt/resourcesgt
21
Le fichier JNLP Application
ltapplication-desc main-class"MaClassePrincipale"
gt ltargumentgtarg1lt/argumentgt ltargumentgtarg2lt/argu
mentgt lt/application-descgt Ou bien
ltapplet-desc main-class"MonApplet"
name"test"  width"320"
height"240"gt ltparam name"key1" value"value1"
/gt ltparam name"key2" value"value2"
/gt lt/applet-descgt
22
Lancer une application Java Web Start
  • Pré-requis Client JWS (inclus dans les JRE
    1.4)
  • Avant installation
  • Depuis un navigateur Web
  • lta href  AppliDescriptor.jnlpgtStart Applilt/agt
  • En ligne de commande
  • javaws HTTP//.../AppliDescriptor.jnlp
  • Après installation
  • À partir dun gestionnaire dapplications
  • À partir dun raccourci créé sur le bureau

23
Lancer une application Java Web Start Le
gestionnaire dapplications
  • 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 lAPI JNLP

25
Java Web Start Sécurité LAPI JNLP (1/2)
  • Etendre les droits sans signature numérique
  • Librairie nécessaire  javaws.jar  (JRE)
  • Fournit 11 services dont
  • PrintService accès à limprimante
  • FileOpenService/FileSaveService accès aux
    fichiers en lecture / écriture
  • Etc.

26
Java Web Start Sécurité LAPI JNLP (2/2)
FileOpenService fos (FileOpenService)
ServiceManager .lookup("javax.jnlp.FileOpenService
") FileContents fcs fos.openMultiFileDialog(n
ull, null) for (FileContents file fcs)
System.out.println(file.getName()) // lecture
possible
27
Conclusion
  • Facile à mettre en place
  • Technologies complémentaires
  • Migration dune applette en application desktop
  • Solutions gratuites !

28
Merci de votre attention. Questions ?
R. M.
Ingénieurs 2000
IR3
Write a Comment
User Comments (0)
About PowerShow.com