$30 off During Our Annual Pro Sale. View Details »

Clients riches : les technologies du marché

Clients riches : les technologies du marché

Ce support cours présente les différentes technologies du marché concernant les clients riches : définition et clarification du terme « client riche », XUL, Ajax (« à la mano » et via GWT), FLASH (Flex, AIR et Lazlo), Eclipse RCP, Eclipse RAP, .NET Framework (ClickOne.net, WPF, XAML, Silverlight), Java (Applet, Java Web Start).

Mickael BARON

January 11, 2009
Tweet

More Decks by Mickael BARON

Other Decks in Programming

Transcript

  1. Clients Riches : les
    technologies du marché
    Mickaël BARON - 2007 (Rév. Janvier 2009)
    mailto:[email protected] ou mailto:[email protected]
    mickael-baron.fr
    mickaelbaron
    Etat de l’art

    View Slide

  2. 2
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Creative Commons
    Contrat Paternité
    Partage des Conditions Initiales à l'Identique
    2.0 France
    http://creativecommons.org/licenses/by-sa/2.0/fr
    Licence

    View Slide

  3. Intro Java EE - M. Baron - Page
    mickael-baron.fr mickaelbaron
    3
    À propos de l’auteur …
    † Mickaël BARON
    † Ingénieur de Recherche au LIAS
    † https://www.lias-lab.fr
    † Equipe : Ingénierie des Données et des Modèles
    † Responsable des plateformes logicielles, « coach » technique
    † Ancien responsable Java de Developpez.com (2011-2021)
    † Communauté Francophone dédiée au développement informatique
    † https://java.developpez.com
    † 4 millions de visiteurs uniques et 12 millions de pages vues par mois
    † 750 00 membres, 2000 forums et jusqu'à 5000 messages par jour
    mickael-baron.fr
    mickaelbaron

    View Slide

  4. 4
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Clients Riches
    † L’objectif de cette présentation
    † « Essayer » de clarifier les informations concernant les clients riches
    † Aperçu global des technologies actuelles et à venir
    † Lister les solutions par plateforme de développement (Java, .NET, …)
    † Mise en place du cours
    † Différents articles et billets sur le web traitant du sujet
    † Ressources sur Developpez.com
    † Les clients riches, Valtech Training, Peyrusaubes Denis
    † Les technologies riches, Fabien Deshayes
    Tous les liens de la présentation
    sont disponibles directement sur
    mon blog keulkeul.blogspot.com

    View Slide

  5. 5
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Différents types de client
    † Définition de « client »
    † Logiciel médiateur entre l’utilisateur et le service proposé
    † Exemples : FTP, messages électroniques (mailer), navigateur internet,
    webmail, jeux vidéo, …
    † Différentes catégories de client
    † Lourd : le service est disponible sur le poste client avec possibilité de
    connexion à des serveurs
    † Exemples : Yahoo Messenger, Word, Money, Starcraft 2, …
    † Léger : tout le service est disponible sur des serveurs et l’utilisateur y
    accède par un conteneur spécialisé
    † Exemples : Google, Yahoo Mail, …

    View Slide

  6. 6
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Différents types d’application : client lourd
    † Technologies : Java/Swing, C#/.NET, Tcl/Tk, C++/QT
    † Avantages
    † Interfaces utilisateurs riches (WIMP, POST-WIMP)
    † Inconvénients
    † Déploiement (utilisation de CD, téléchargement/installation)
    † Gestion des versions (patch, problème de compatibilité)
    Interfaces riches (possibilité
    de dessiner dans un canvas,
    notion hiérarchique de
    composants, …)
    Interactions évoluées
    (Drag&Drop, popup menu, …)

    View Slide

  7. 7
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Différents types d’application : client léger
    † Application à architecture client / serveur
    † Les technologies pour la génération et le traitement de la
    présentation sont présentes à la fois sur le client mais aussi
    sur le serveur
    † Technologies côté client
    † HTML, DHTML, JavaScript, …
    † Technologies côté serveur
    † PHP, ASP, JSP, JSF, …
    † Avantages
    † Maintenance
    † Accessibilité
    † Inconvénients
    † Interfaces utilisateurs pauvres et proches du classique formulaires

    View Slide

  8. 8
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client léger : Internet et HTTP
    † Les clients légers désignent essentiellement toutes les
    applications associées aux sites Web
    † L’accès aux services se fait par l’intermédiaire d’un
    conteneur spécialisé qui est généralement un navigateur
    † FireFox, Internet Explorer
    † Les technologies pour le transport entre le serveur et le
    client sont
    † Internet
    † HTTP, HTTPS
    † Les sites Web actuels se caractérisent par le fameux mode
    page par page
    † A chaque requête de l’utilisateur (demande) le serveur génère une
    nouvelle présentation
    † L’affichage n’est pas continu

    View Slide

  9. 9
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client léger : Internet à l’origine
    † À l’origine Internet a vocation de diffuser de l’information
    statique
    † HTTP (déconnecté)
    † HTML (langage de description de document)
    † Déploiement
    † Universel (protocoles standards et
    réseau standard)
    † Un navigateur suffit
    † Pas prévu pour embarquer des
    applications
    † Afficher des données en temps réel
    Le premier navigateur pour
    Internet : Mosaic

    View Slide

  10. 10
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client léger : Internet et HTTP
    † Application Web et page par page
    On assiste actuellement à l’émergence
    de nouvelles technologies permettant
    d’éviter le mode page par page introduit
    par HTTP et Internet
    Mode page par page à chaque
    requête un réaffichage
    permanent de la présentation

    View Slide

  11. 11
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client riche : Internet pilier des nouveaux clients
    Richesse de l’IHM*
    Accessibilité de
    l

    IHM*
    +
    Client Lourd
    Client Léger
    Terminaux
    IHM* = Interfaces Homme-Machine

    View Slide

  12. 12
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client riche : Internet pilier des nouveaux clients
    † Depuis peu un nouveau modèle d’application fait son
    apparition
    † Clients « riches »
    † Les clients riches représentent une fusion des clients
    « lourds » et « légers »
    † Interfaces utilisateurs riches
    † Déploiement et maintenance
    † Ce sont des applications distantes avec les avantages des
    applications locales
    † Technologie permettant de développer la couche présentation
    d’une application
    † La conception d’une application en mode « page » disparaît.
    La reconstruction de la présentation après chaque requête
    n’existe plus

    View Slide

  13. 13
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client riche : Internet pilier des nouveaux clients
    † Pas de standardisation du terme client riche
    † Pour simplifier, on peut voir les choses de la façon suivante
    † Clients lourds riches ?
    † Un client lourd offrant des fonctionnalités de déploiement et de mise à
    jour facilité
    † Clients légers riches ?
    † Un client léger offrant des possibilités d’interactions évoluées comme
    celles proposées par le client lourd
    † C’est quoi alors le Web 2.0 ?
    † Généralement cela s’adresse à la bulle Internet donc pour le client
    léger riche
    † Un réseau social où les utilisateurs partagent des photos, du texte, de
    la vidéo

    View Slide

  14. 14
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client riche : Internet pilier des nouveaux clients
    † D’avantage de traitement sur le poste client (pas trop non
    plus)
    † Bien pourvu en composants graphiques de haut niveau
    † Facilement accessible (déploiement et mise à jour)
    † Nécessite un conteneur sur le poste client (c’est plus une
    conséquence qu’un impératif)
    † Navigateur
    † Java Machine virtuelle
    † Eclipse RCP
    † Les clients « riches » existent depuis environ 4~5 ans avec
    des technologies comme
    † Applet, Active X
    † Flash
    † HTML avec une bonne dose de JavaScript

    View Slide

  15. 15
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Client riche : Internet pilier des nouveaux clients
    JWS, Eclipse
    RCP,
    ClickOnce.net
    Clients Riches Lourds
    Flash, Applet,
    AJAX, XUL
    Clients Riches Légers
    Client WEB
    Client non WEB
    Couche étudiée dans ce
    cours
    Couche Applicative
    Couche Services
    Couche données
    Le serveur ne véhicule
    que des données via le
    protocole HTTP
    Persistance des
    objets de la
    présentation
    Technologies
    EJB
    Outils de
    gestion des
    informations
    Technologies
    FTP, MAIL
    Stockage des
    informations
    Technologies
    Oracle
    Le reste de l’application ne fait
    pas parti du sujet de ce cours
    Côté serveur
    Côté client

    View Slide

  16. 16
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Clients « riches »
    † Les clients « riches » sont en pleines évolutions et les
    standards ne se sont pas encore établis et imposés
    † Les technologies actuelles vont être remplacées ou
    complétées puisqu’elles ne répondent plus aux besoins
    d’interfaces évoluées
    † Applet, Flash, Active X et HTML
    † Actuellement plusieurs technologies émergent et commencent
    à se confronter
    † Mozilla avec XUL (XML User Language)
    † Ajax (« a la mano », GWT)
    † Flash (Flex, AIR)
    † Eclipse RCP, Eclipse RAP
    † .NET, ClickOnce.Net, WPF, XAML, Silverlight de Microsoft
    † Java (Applet et Java Web Start)
    L’évolution des clients
    amène à une intégration
    plus poussée du langage
    de description XML

    View Slide

  17. 17
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Clients « riches »
    † Quelle que soit la technologie choisie, une notion de
    conteneur sur le poste client apparaît …
    † Le conteneur peut être de nature diverse
    † Navigateur Web (Ajax, XUL, …)
    † Interpréteur Flash (Flex, Lazsio)
    † Eclipse RCP, RAP
    † FrameWork .NET
    † Machine virtuelle (Applet, JWS)
    † Pour chaque technologie nous essaierons de les illustrer par
    des démonstrations interactives
    Plusieurs conteneurs peuvent
    être utilisées. Exemple
    « Applet » une machine
    virtuelle et un navigateur

    View Slide

  18. 18
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    XUL : XML User Language
    † XUL (XML User Language) est proposé par Mozilla et a été le
    précurseur pour ces technologies
    † Catégorie de client : client léger riche
    † L’idée des développeurs a été de remplacer HTML et
    d’apporter une richesse graphique supérieure
    † Ce langage possède une série de balises correspondant à
    des composants graphiques (boutons, menus, listes, …)
    † Gecko est un moteur de rendu de XUL
    † Le conteneur (c’est-à-dire un navigateur de la famille de
    Mozilla) reçoit un fichier au format XUL et génère du HTML
    † Démonstration
    † www.akbkhome.com/wiki.php/Edit/phpmole_IDE
    † www.abrahamjoffe.com.au/ben/canvascape

    View Slide

  19. 19
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    XUL : XML User Language
    Applications dans le conteneur
    FireFox
    Composants
    graphiques
    évolués
    01 - WYSIWYG Editor

    View Slide

  20. 20
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    XUL : XML User Language
    Les améliorations de Gecko ont
    permis d’ajouter la notion de
    « Canvas » permettant ainsi de
    dessiner dans une zone du
    document
    Safari utilise déjà la notion
    de Canvas pour dessiner les
    composants de Dashboard
    Sous MAC avec
    Safari ça
    fonctionne
    également !!!
    Mais pas sous IE
    02 - Canvascape

    View Slide

  21. 21
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    XUL : XML User Language
    † XUL et ses dérivés
    † RDF : format de stockage de donnée de façon relationnelle.
    Normalisé par le W3C (sert de source de donnée par XUL)
    † XPCom : modèle de composants qui permet d’intégrer des
    fonctionnalités évoluées dans Mozilla (principe de plugin)
    † Adresses utiles
    † Projet : www.mozilla.org/projects/xul
    † Technologies : xulfr.org
    † Avis personnels
    † XUL pourrait devenir le futur standard choisi par W3C pour les clients
    riches
    † Couplée aux technologies Java cette technologie pourrait devenir
    prometteuse
    † Ne fonctionne que sous les navigateurs Mozilla

    View Slide

  22. 22
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : Asynchronous JavaScript And XML
    † AJAX signifie Asynchronous JavaScript And XML
    † Catégorie de client : client léger riche
    † Ce n’est pas une nouvelle technologie à part entière mais
    une technologie qui regroupe des technologies existantes.
    C’est une façon d’utiliser intelligemment certaines techno-
    logies WEB
    † HTML + CSS + JavaScript + DHTML + … = AJAX
    † Le principe d’AJAX est d’éviter de régénérer dans son
    intégralité la page à chaque requête du client mais
    uniquement par morceau (utilisation du DHTML)
    † Il s’agit d’une façon de développer une « application HTML »
    ancienne (2002) initiée par Microsoft … mais non portable à
    l’époque

    View Slide

  23. 23
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : Asynchronous JavaScript And XML
    Interface Utilisateur
    Navigateur
    Serveur Web et XML
    Serveur
    Services côté serveur
    (base de données, …)
    Architecture Web avec AJAX
    Requête
    HTTP
    Réponse
    HTTP
    Transport HTTP
    Interface Utilisateur
    Navigateur
    Serveur Web
    Serveur
    Services côté serveur
    (base de données, …)
    Architecture Web classique
    Requête
    HTTP
    Réponse
    HTTP
    Transport HTTP
    HTML + CSS
    AJAX Engine
    Appel JavaScript HTML + CSS
    HTML + CSS

    View Slide

  24. 24
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : Asynchronous JavaScript And XML
    † AJAX impose aucun modèle de programmation côté serveur
    † Le moteur AJAX est purement abstrait : il ne nécessite
    aucune librairie sur le client
    † Le mode « page » disparaît seule les données transitent par
    HTTP
    † L’interface graphique utilisateur n’est pas rafraîchie à chaque
    action de l’utilisateur
    † La requête HTTP émise est asynchrone. Pas bloquant, la
    réponse n’est pas attendue
    † Le modèle « événementiel » est obtenu grâce aux fonctions
    JavaScript au dessus de HTML
    † Démonstrations
    † Google Suggest : labs.google.com/suggest
    † Netvibes : www.netvibes.com

    View Slide

  25. 25
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : Asynchronous JavaScript And XML
    † Google Suggest propose une « complétion » automatique du
    champs de saisie avec les valeurs couramment recherchées
    par les utilisateurs de ce service
    † Comportement similaire aux mécanismes de « complétion »
    automatique des environnements de développement
    † L’ensemble des valeurs envisageables ne peut être disponible
    que sur le serveur Web et non pas en local
    † Une requête au serveur est émise à chaque fois que la liste
    des propositions doit être mise à jour (seul les données sont
    retournées au client)

    View Slide

  26. 26
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : Asynchronous JavaScript And XML
    Les informations sont
    retournées au client sans
    modification du reste de la
    page (pas de page par page)
    Google « classique », la
    complétion se fait uniquement
    sur les informations de
    l’utilisateur
    03 - Google Suggest

    View Slide

  27. 27
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : Asynchronous JavaScript And XML
    04 - Netvibes

    View Slide

  28. 28
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : Asynchronous JavaScript And XML
    † Adresses utiles
    † ASP.Net Ajax (Microsoft) : www.asp.net/ajax
    † Sajax : www.modernmethod.com/sajax
    † Framework JavaScript : prototype.conio.net
    † DOJO the Javascript toolkit : dojotoolkit.org
    † DWR : getahead.org/dwr
    † Script.aculo.us : script.aculo.us
    † Avis personnels
    † Rien de nouveau au niveau des technologies, elles existent déjà
    † Révolutionne la conception d’une application web classique : le
    classique mode par page est oublié
    † Rend la maintenance évolutive et corrective complexe
    † Complexité de DHTML
    † On traîne les problèmes liés à JavaScript (pas de typage fort,
    peu de débuggeur vraiment efficace)

    View Slide

  29. 29
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : GWT, l’Ajax pour les « nuls »
    † GWT (Google Web Toolkit) est un framework pour Java pour
    le développement d’applications AJAX et qui ne demande pas
    de connaissance en Javascript
    † Avantages
    † Le langage Java est utilisé pour le développement des IHMs
    † Indépendance du navigateur Web
    † Simplicité de l’API
    † Programmation à la « sauce » client lourd
    † Adresses utiles
    † Site Google Code : code.google.com/webtoolkit
    † Démonstration
    † GWT Window Manager : www.gwtwindowmanager.org
    † Google reader : www.google.com/reader

    View Slide

  30. 30
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : GWT, l’Ajax pour les « nuls »
    05 - GWT
    Window
    Manager

    View Slide

  31. 31
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    AJAX : GWT, l’Ajax pour les « nuls »
    06 - Google Reader

    View Slide

  32. 32
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash
    † Technologie créée par Macromédia (racheté par Adobe)
    † Exécuté par un plug-ins des navigateurs Web
    † « Portable » puisque le plug-in existe sur tous les OS
    † Catégorie de client : client lourd riche
    † Conçu à l’origine pour faire des animations portées par des
    pages Web
    † Des applications plus interactives commencent à voir le jour
    † Pas seulement des vitrines commerciales
    † Des sites applicatifs
    Une publicité
    animée en
    flash
    Le site
    clubmed une
    application
    entièrement en
    flash

    View Slide

  33. 33
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash
    † Une application Flash
    † Est un binaire issu d’une compilation
    † Extension SWF
    † Interprétée par le plug-in Flash installé dans le navigateur
    † 95% des navigateurs du marché sont aujourd’hui équipés du
    plug-in flash
    † Une pseudo machine virtuelle permet de rendre le fichier SWF
    indépendant de la plateforme d’exécution
    † Principe contraire au fameux « mode page » si cher à HTML
    † Pour les animations, les fichiers SWF peuvent être créés par
    l’outil WYSIWYG d’Adobe Flash (programmation visuelle)
    † Démonstration : maps.yahoo.com

    View Slide

  34. 34
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash
    Un formulaire
    entièrement en flash
    07 - maps.yahoo.com

    View Slide

  35. 35
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash
    † Pour les applications commerciales un ensemble de
    composants graphiques de haut niveau sont pré-intégrés au
    langage (onglets, menus, …)
    † Le binaire d’exécution contient
    † La description des interfaces graphiques
    † Les comportements liés aux événements
    † Modèle de développement très descriptif
    † Un langage de description d’interface graphique
    † Un langage script pour définir les événements et les actions associées
    † Aujourd’hui deux langages de programmation respectant ce
    mode de développement sont capables de générer un
    exécutable flash
    † Flex : Adobe (www.adobe.com)
    † Laszlo : LaszloSystem (www.laszlosystem.com)

    View Slide

  36. 36
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash : Flex
    † Flex se décompose de la façon suivante
    † Les fichiers MXML : descriptif XML de l’interface graphique
    † Les fichiers de type ActionScript : utilisation d’un langage script pour
    décrire les interactions entre tous les composants graphiques
    † Principe de fonctionnement côté serveur
    † Lors de la première invocation du client les fichiers MXML et
    ActionScript sont compilés : fichier SWF généré
    † Le fichier SWF est transmis au client sous un flux
    † Nécessite un serveur d’exécution côté serveur
    † Application J2EE pour le moment
    † Outils de développement
    † Adobe FLEX Builder
    † Un plug-in pour Eclipse est dans les cartons

    View Slide

  37. 37
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash : Laszlo
    † Fonctionne exactement comme le langage de Adobe FLEX
    † Un langage XML pour décrire les interfaces graphiques
    † Un langage script pour leurs interactions
    † Le compilateur est différent et ne permet pas de traiter le
    langage Flex
    † Le compilateur génère également un fichier Flash au format
    SWF
    † S’appuie sur le plug-in Flash
    † Open Source licence de type CPL
    † Démonstration : www.laszlosystems.com/demos

    View Slide

  38. 38
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash : Laszlo
    08 - Amazon.com

    View Slide

  39. 39
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Flash
    † Adresses utiles
    † Adobe : www.adobe.com/fr/products/flex
    † Laszlo : www.laszlosystem.com
    † Avis personnels
    † A utiliser pour des applications hautement graphiques
    † Excellent complément à Java
    † Autant de succès que Flash
    † Spécialiste du design manipule un langage à balises
    † Outillé (dans le cas de Flex)

    View Slide

  40. 40
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Air
    † Air d’Abobe est une sorte d’environnement d’exécution
    multi-plateforme qui peut être vu comme un lecteur de
    contenu flash, html et pdf
    † Les applications pourront être exécutées directement sur le
    système d’exploitation et pas uniquement dans un navigateur
    † accès aux ressources systèmes (fichier)
    † mode connecté ou pas
    † utilisation de fonctionnalités natives (tray icon)
    † Pour la partie flash, elle pourra être décrite directement par
    du flex
    † Adresses utiles : labs.adobe.en/technologies/air
    † Démonstrations : labs.adobe.en/technologies/air/samples
    † Avis personnel
    † le flash a fait ses preuves et si en plus le pdf et l’html s’y mêlent …

    View Slide

  41. 41
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RCP
    † Environnement de développement très utilisé
    † Catégorie de client : client lourd riche
    † Un noyau très extensible à base de plug-in qui permet
    d’étendre les fonctionnalités d’Eclipse
    † Accès aux données
    † Débuggeur
    † Gestion de documents XML, …
    † Les plug-ins ne sont pas forcément orientés développement
    † Lecteur de mail : GMailEclipse
    † Jeu : démineur
    A la différence des autres
    technologies le support
    n’est plus le navigateur
    mais Eclipse

    View Slide

  42. 42
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RCP
    † Une application = un ensemble de plug-in
    † C’est la philosophie d’Eclipse RCP (« Rich Client Platform »)
    † On désactive l’ensemble des fonctionnalités de l’environ-
    nement de développement
    † On implémente la couche de présentation d’une application
    comme un plug-in d’Eclipse
    † Les bénéfices sont
    † La richesse des composants et du framework Eclipse (SWT, JFace)
    † Des mécanismes de gestions de versions des plugins offerts par
    Eclipse
    † Exemples d’applications
    † www.eclipse.org/community/rcp.php

    View Slide

  43. 43
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RCP
    Utilisation des composants
    de la boîte à outils SWT
    Uniformisation du
    contenu graphique

    View Slide

  44. 44
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RCP
    Un simple éditeur de texte
    Un simple navigateur
    Nous sommes sous Eclipse et les outils
    liés à la plate-forme de développement
    (JDT) ne sont pas intégrés

    View Slide

  45. 45
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RCP
    † Adresses utiles
    † Eclipse RCP : www.eclipse.org/rcp
    † Eclipse plugin Central : www.eclipseplugincentral.com
    † Exemples d’application : www.eclipse.org/community/rcp.php
    † Avis personnels
    † Approche par composants
    † Interfaces graphiques à la hauteur de Swing (SWT)
    † Homogénéité des applications avec des spécificités déjà implémentées
    † Soutenu par IBM (Symphony et Lotus Notes) et la fondation Eclipse
    † Gratuit et Open Source
    † Peu de documentation et de tutoriaux (voir mbaron.developpez.com)

    View Slide

  46. 46
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RAP
    † Eclipse RAP (Rich Ajax Platform) permet le développement
    d’applications serveur comme une application Eclipse RCP
    † Catégorie de client : client léger riche
    † Une application Eclipse RAP fonctionne dans un conteneur
    de type navigateur
    † La plateforme RAP fournit des équivalents à SWT et JFace
    appelés
    † RWT (RAP Widget Toolkit)
    † Web-JFace
    † Le framework RAP est très proche de celui proposé par GWT
    dans le sens où le développeur à la manière d’un client lourd

    View Slide

  47. 47
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RAP
    † Avantages
    † Java est utilisé pour le développement des IHMs
    † Le développeur n’a pas besoin de connaître le javascript
    † Indépendance du navigateur Web
    † Programmation par « composants » via des plug-ins
    † Adresses utiles
    † Site Eclipse : www.eclipse.org/rap
    † RCP vers RAP : www.volanakis.de/nuggets/RCP_Mail_goes_RAP
    † Démonstrations
    † Eclipse RAP : www.eclipse.org/rap/demos.php

    View Slide

  48. 48
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RAP
    09 - RAP Startup Page

    View Slide

  49. 49
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Eclipse RAP
    10 - Eclipse Discovery

    View Slide

  50. 50
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    .NET Framework : Clickonce.net, WPF, XAML, Silverlight
    † Catégorie de client : client lourd riche ?
    † Les clients s’appellent SmartClient
    † La technologie de déploiement est appelée Clickonce.net
    † Déploiement d’application .NET (c#, …)
    † Gestion de versions de l’application concernée
    † Possibilité de revenir à une version antérieure
    † WPF (Windows Presentation Foundation) est le nom de la
    couche présentation à travers le framework .NET
    † WPF permet la séparation de la couche présentation grâce à
    l’utilisation du langage XML XAML (Extensible Application
    Markup Language)
    † Silverlight (ancien WPF/E) est une technologie permettant
    d’utiliser WPF sur le web (un plugin est ajouté au
    navigateur web)

    View Slide

  51. 51
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    .NET Framework : Clickonce.net, WPF, XAML, Silverlight
    † Adresses utiles
    † Clickonce.net : msdn.microsoft.com/smartclient
    † XAML : www.xaml.net
    † .NET : netfx3.com
    † silverlight : www.microsoft.com/silverlight
    † Avis personnels
    † C’est du Microsoft, outils robustes mais technologie verrouillée
    † Pérennité des technologies ?
    † Uniquement disponibles sur plateforme Windows?

    View Slide

  52. 52
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java
    † Catégorie de client : client lourd riche
    † Pour le déploiement des applications deux solutions sont
    proposées : Applet et Java Web Start
    † Pour la partie graphique différentes API sont disponibles
    † AWT : première boîte à outils livrée avec la première version de Java
    (composants heavyheight)
    † Swing : évolution de la boîte à outils AWT (composants lightheight)
    † JavaFX : bibliothèque graphique apparue récemment destinée à
    concurrencer les technologies flash
    † Mais aussi les API d’Eclipse SWT et JFace
    † Dans la suite, nous approfondirons les solutions de
    déploiement

    View Slide

  53. 53
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : Applet
    † Une Applet est un programme Java qui s’exécute dans un
    navigateur web ou dans l’appletviewer du JDK
    † Une Applet Java peut exploiter toutes les API fournies par
    la JDK de Sun (Swing, Réseau, …)
    † Une Applet est une application qui s'exécute du côté client
    et qui se trouve physiquement sur un serveur web
    † L’exécution de l’Applet est obtenue dans la page html via
    l’utilisation de balises spécifiques
    † Possibilité de combiner plusieurs Applets dans une même
    page web

    View Slide

  54. 54
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : Applet
    † Une Applet fonctionne par l’intermédiaire d’une machine
    virtuelle Java
    † Par défaut, les navigateurs disposent d’une machine virtuelle
    pour exécuter toutes Applet Java de version <= 1.1
    † Utilisation de l’API graphique AWT
    † Si l’Applet a été développée avec une JDK > 1.1 nécessité
    d’installer explicitement une machine virtuelle sur le poste
    client
    † Utilisation de l’API graphique SWING
    † Les Applets sont multi systèmes mais nécessitent
    généralement le téléchargement d’une machine virtuelle
    récente
    † Démonstration : www.java.com/fr

    View Slide

  55. 55
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : Applet
    † La technologie Applet de Sun est une technologie pour clients
    « riches » et exploite le langage Java
    † Avantages
    † API graphiques puissantes AWT et Swing
    † Portabilité sur toutes les plates-formes qui supportent Java
    † Sécurité via le bac à sable (voir section suivante)
    † Inconvénients
    † Connaissance nécessaire de Java pour faire des interfaces même si
    des générateurs de présentation existent
    † Installation de la dernière JDK pour exécuter des Applets qui utilisent
    Swing
    † Non homogénéité des interfaces entre les Applets et les pages
    HTML/JSP
    † Technologie trop récente à l’époque et victime de sa puissance
    † Utilisation non adaptée

    View Slide

  56. 56
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : Java Web Start
    † Java Web Start permet le déploiement d’applications en locale
    à travers le réseau (stand-alone)
    † Permet l’installation d’une application dite « client lourd »
    grâce à un simple lien hypertexte d’une page web
    † Il est inutile de modifier une application déjà développée pour
    qu’elle puisse être utilisée avec 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 dite
    client « lourd/riche »

    View Slide

  57. 57
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : 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 J2SE 1.4)
    † L’utilisation d’une application implique de
    † 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
    † Ressources sur JNLP et JWS
    † java.sun.com/j2se/1.5.0/docs/guide/deployment/index.html
    † today.java.net/pub/a/today/2005/09/01/webstart.html
    † webstartfaq.com

    View Slide

  58. 58
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : Java Web Start
    † LimeWire un outil de téléchargement
    † Site : www.limewire.com

    View Slide

  59. 59
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : Java Web Start
    † Maple un outil pour les mathématiques
    † Site : www.maplesoft.com

    View Slide

  60. 60
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : Java Web Start
    † Jake2 est la version Java de Quake 2
    † Site : www.bytonic.de/html/jake2_webstart.html
    12 - Jake 2

    View Slide

  61. 61
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    † Différentes boîtes à outils sont disponibles pour la plateforme
    Java : AWT, Swing, SWT et JFace
    † JavaFX sorti dernièrement se veut être un concurrent aux
    langages de types Flex et Silverlight
    † JavaFX est un langage de script basé sur le projet F3 (Form
    Follows Function) orienté IHM
    † Ce langage est destiné également à être diffusé sur différen-
    tes plateformes : Desktop, Web et mobile
    † Avis personnel : encore un langage, va-t-il pouvoir s’imposer?
    † Adresses utiles
    † Site officiel : openjfx.dev.java.net et javafx.com
    † Blog de Chris Oliver : blogs.sun.com/chrisoliver/entry/F3
    † Démonstrations
    † Site officiel : javafx.com/samples
    Solutions Java : JavaFX

    View Slide

  62. 62
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Solutions Java : JavaFX
    13 - WeatherFX
    14 - Motorola

    View Slide

  63. 63
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Clients « riches » : bilan
    † Un marché en pleine effervescence
    † Mozilla avec XUL (XML User Language)
    † Ajax (« a la mano », GWT)
    † Flash (Flex, OpenLaszlo, AIR)
    † Eclipse RCP, Eclipse RAP
    † .NET, ClickOnce.Net, WPF, XAML, Silverlight de Microsoft
    † Java (Applet, Java Web Start, AWT/Swing, JavaFX)
    † Des solutions techniquement très différentes et à des stades
    de maturité inégaux
    † Des enjeux qui dépendent finalement beaucoup du contexte
    † Les technologies « client riche » apportent des solutions à de
    nombreux besoins des applications de gestion développées en intranet
    † Plusieurs sites sur Internet commencent à utiliser Flash pour faire
    autre chose que des animations

    View Slide

  64. 64
    Clients Riches - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Clients « riches » : bilan
    † Plusieurs freins apparaissent toutefois
    † Pas toujours facile d’entendre dire que le langage HTML ne répond
    finalement plus au besoin !
    † Problème de formation : il faut trouver les développeurs Flex,
    Laszlo ou Eclipse RCP
    † Problème d’outillage : les outils ne sont pas forcément existant
    (XUL, Ajax, …)
    † Qu’en est-il de HTTP ?
    † Protocole déconnecté implique beaucoup de problèmes importants :
    transaction, sécurité, …
    † Les volumes d’information sont de plus en plus importants et le
    nombre de requêtes va en constante augmentation

    View Slide