Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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).

3c4219fa12e875f02a81d5957876de8e?s=128

Mickael BARON

January 11, 2009
Tweet

Transcript

  1. Clients Riches : les technologies du marché Mickaël BARON -

    2007 (Rév. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr Etat de l’art
  2. 2 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    Creative Commons Contrat Paternité Partage des Conditions Initiales à l'Identique 2.0 France http://creativecommons.org/licenses/by-sa/2.0/fr Licence
  3. 3 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  4. 4 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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, …
  5. 5 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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, …)
  6. 6 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  7. 7 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  8. 8 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  9. 9 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  10. 10 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  11. 11 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  12. 12 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  13. 13 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  14. 14 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  15. 15 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  16. 16 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  17. 17 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  18. 18 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    XUL : XML User Language Applications dans le conteneur FireFox Composants graphiques évolués 01 - WYSIWYG Editor
  19. 19 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  20. 20 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  21. 21 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  22. 22 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  23. 23 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  24. 24 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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)
  25. 25 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  26. 26 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    AJAX : Asynchronous JavaScript And XML 04 - Netvibes
  27. 27 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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)
  28. 28 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  29. 29 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    AJAX : GWT, l’Ajax pour les « nuls » 05 - GWT Window Manager
  30. 30 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    AJAX : GWT, l’Ajax pour les « nuls » 06 - Google Reader
  31. 31 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  32. 32 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  33. 33 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    Flash Un formulaire entièrement en flash 07 - maps.yahoo.com
  34. 34 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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)
  35. 35 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  36. 36 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  37. 37 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    Flash : Laszlo 08 - Amazon.com
  38. 38 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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)
  39. 39 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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 …
  40. 40 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  41. 41 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  42. 42 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    Eclipse RCP Utilisation des composants de la boîte à outils SWT Uniformisation du contenu graphique
  43. 43 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  44. 44 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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)
  45. 45 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  46. 46 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  47. 47 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    Eclipse RAP 09 - RAP Startup Page
  48. 48 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    Eclipse RAP 10 - Eclipse Discovery
  49. 49 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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)
  50. 50 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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?
  51. 51 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  52. 52 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  53. 53 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  54. 54 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  55. 55 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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 »
  56. 56 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  57. 57 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

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

    Solutions Java : Java Web Start † Maple un outil pour les mathématiques † Site : www.maplesoft.com
  59. 59 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  60. 60 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  61. 61 Clients Riches - M. Baron - Page keulkeul.blogspot.com @mickaelbaron

    Solutions Java : JavaFX 13 - WeatherFX 14 - Motorola
  62. 62 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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
  63. 63 Clients Riches - M. Baron - Page keulkeul.blogspot.com @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