|
- Typologie des clients riches et principales solutions techniques : Ajax, Flash et AIR d’Adobe, Silverlight de Microsoft, GWT de Google, XUL de Mozilla, Eclipse RCP, JavaFX de Sun, etc.
- HTML 5 et les évolutions prévisibles des navigateurs Web, quelles conséquences pratiques ?
- Quels impacts sur l’organisation des développements et sur la productivité ?
- Comment traiter les problèmes de répartition des traitements entre le poste client et la partie serveur ?
- Comment résoudre les problèmes de performances et de sécurité ?
En deux journées denses et nombreux exemples à l’appui, ce séminaire dresse un panorama des technologies et des solutions permettant la mise en œuvre des applications de type client riche.
|
 |
Les fondements techniques |
|
- L’émergence du client riche
- Client lourd, client léger, client-serveur, client riche. La centralisation des applications. Les architectures distribuées, architectures 3-tiers et n-tiers.
- La demande des utilisateurs : ergonomie, réactivité des interfaces graphiques, lien avec la bureautique.
- La problématique du déploiement et de la gestion des mises à jour.
- Les limites du couple HTML/HTTP.
- Les différents types de clients riches
- Le client riche Internet, RIA (Rich Internet Applications). La souplesse de l’architecture Web sans les limites du html.
- Le client riche autonome, RDA (Rich Desktop Application). La sophistication des interfaces graphiques sans les problèmes de déploiement et de mise à jour.
- Le client riche de type terminal. Les solutions techniques : le protocole RDP de Microsoft, Citrix Presentation Server, les terminaux Unix. Virtualisation des postes clients, virtualisation des applications clientes. Les limites de l’approche terminal.
- Les clients riches et les appareils mobiles, RMA (Rich Mobile Application). Quels modèles d'applications pour les plates-formes iPhone, Android et Blackberry ?
- RIA (Rich Internet Applications)
- Les possibilités graphiques des navigateurs : DHTML, CSS, SVG. Le DOM (Document Object Model). Les évolutions des navigateurs. La révolution HTML 5.
- Comment les développeurs ont contourné les limites du HTML. L’émergence du Web 2.0 et d’Ajax. Les principes de base d’Ajax.
- JavaScript, forces et faiblesses. Bonnes pratiques de mise en œuvre de JavaScript.
- Exécuter des applications dans le navigateur : le plug-in Flash d’Adobe, Silverlight de Microsoft, JavaFX de Sun/Oracle. Les fonctionnalités multimédias offertes par ces approches. Quelles perspectives pour ces solutions avec l'arrivée de HTML 5 ?
- Lien avec les concepts de mashups et de widgets.
- RDA (Rich Desktop Applications)
- RDA, la renaissance du client lourd ? Quel intérêt par rapport aux RIA ? Dans quels contextes les utiliser ?
- RDA et organisation des développements. Une approche plus familière pour les développeurs ?
- Les solutions pour régler le problème du déploiement des applications sur les postes clients.
- Les utilisations mixtes RIA/RDA sont-elles possibles
|
 |
Les solutions d’implémentation |
|
- Le client riche basé sur Ajax
- Fonctionnement d’Ajax. Les appels asynchrones avec XMLHttpRequest. Les possibilités offertes par JavaScript.
- L’échange des structures de données avec le serveur. L’utilisation de XML. Manipulation de l’arbre XML avec JavaScript et DOM. JSON (JavaScript Object Notation), une alternative à l’utilisation de XML. Comparaison des différentes solutions.
- Lien entre Ajax et la partie graphique. Les différentes familles de frameworks Ajax. Les principaux frameworks Ajax : jQuery, Prototype, DOJO, Scriptaculous, ExtJS, Yahoo! User Interface, etc.
- Les outils pour le développement d’applications Ajax.
- La portabilité des applications Ajax entre Internet Explorer et Firefox. Applications Ajax et bouton “back”.
- Le client riche vu par le monde Java
- Les premiers pas avec la notion d’Applets. La machine virtuelle Java (JVM). Les conséquences du rachat de Sun par Oracle.
- Java et les RIA : intégration d’Ajax dans les architectures utilisant Java côté serveur. Ajax et Java EE. Les frameworks Java et Ajax. Les bibliothèques de composants Ajax utilisables dans les JSF et les JSP. JavaFX, quel futur pour ce concurrent des offres d’Adobe (Flash/AIR) et de Microsoft (Silverlight) ?
- Java et les RDA. Les librairies de composants graphiques Swing et SWT. Les frameworks de développement d’applications riches : Eclipse RCP et NetBeans RCP. Quelles fonctionnalités sont couvertes ? Java WebStart une solution pour automatiser le déploiement et les mises à jour.
- Les solutions Java dédiées au développement d’applications Ajax. Le projet GWT (Google Web Toolkit) : une approche originale conçue par Google. Le projet Echo2. Le projet RAP de la fondation Eclipse.
- Le client riche vu par Adobe/Macromedia
- La technologie Flash. Principe de fonctionnement. Le plug-in Flash, une solution universelle ? Une technologie pour les développeurs ou pour les graphistes ? Quels types de sites Internet utilisent Flash ?
- Flex, une solution complète pour le développement d’applications riches. La description des interfaces graphiques avec MXML et ActionScript. L’intégration de Flex avec les technologies serveurs, Java, .Net, PHP, Ruby. Impact de la mise en Open Source de Flex 3.0.
- Adobe AIR : une solution pour faire le lien entre RIA et RDA. Exemples d’utilisation.
- Quelle pérennité pour les solutions d’Adobe ? Quel est l'impact de la guerre ouverte avec Apple ?
- Le client riche vu par Microsoft
- De quelle façon la notion de clients riches s’intègre dans l’architecture .Net ? Les librairies graphiques WindowsForms et WPF. Le langage XAML pour la description des interfaces graphiques en XML. L’approche “code-behind”.
- Utilisation d’Ajax dans le monde Microsoft. ASP.Net Ajax Extension.
- Silverlight, une alternative à Flash et AIR d’Adobe. Principes de fonctionnement. Quels langages utiliser pour exploiter les possibilités de Silverlight ?
- L’outillage proposé par VisualStudio. La gamme d’outils “Expression”.
- Le futur des navigateurs
- Quelles évolutions probables des navigateurs pour prendre en compte les besoins de sophistication des applications clientes ? Présentation des apports de HTML 5 et de CSS 3. Quelles évolutions pour JavaScript ?
- Le support du mode déconnecté dans les navigateurs. Le projet Google Gears et l’intégration de ses concepts dans HTML 5. Quel impact pour les développeurs ?
- XUL : le langage de description d’interfaces graphiques de Firefox. XULRunner pour utiliser XUL à l’extérieur de Firefox. Le projet Prism de Mozilla pour exécuter des applications Web en dehors du navigateur.
- Google Chrome : quels apports ? Quelle place dans la stratégie de Google ? L’évolution de Google vers les systèmes d’exploitation : Google Chrome OS.
- Le point sur l'adoption en cours de HTML 5 par les éditeurs de navigateurs. Internet Explorer 9 fera-t-il oublier les lacunes des versions précédentes ?
- Les possibilités des navigateurs pour mobiles, par exemple Fennec de la fondation Mozilla.
|
 |
La mise en œuvre |
|
- La conception des clients riches
- Quelle méthodologie utiliser ?
- Le modèle MVC (Modèle-Vue-Contrôleur). Limiter le couplage entre la partie cliente et la partie serveur.
- Les modèles de conception utiles pour la mise en œuvre des applications distribuées : service, factory, proxy, etc.
- Les problèmes de sécurité spécifiques aux RIA. Les attaques de types “cross site scripting” (XSS) et “cross site request forgery” (CRSF). La sécurisation du code téléchargé.
- Quelles architectures pour assurer les performances et la montée en charge ? Client riche et répartition de charge, les solutions disponibles. Client riche et Cloud Computing : les plates-formes Azure de Microsoft, App Engine de Google, EC2 d’Amazon.
- La répartition des traitements
- La partie cliente doit-elle se limiter aux traitements graphiques ? Faut-il “descendre” une partie des traitements métier sur le client ? Quels sont les compromis à faire ? Comment architecturer l’application pour garantir performances et évolutivité.
- Quels protocoles utiliser pour les communications ? Accéder à des services Web : REST, SOAP, XML-RPC.
- L’approche SOA est-elle la bonne solution pour la mise en œuvre de la partie serveur ? Quelle granularité pour les services ?
- Comment améliorer l’indépendance entre partie cliente et partie serveur ? Est-il possible d’utiliser les mêmes services pour les applications RIA et RDA ?
- L’organisation des développements
- Toutes les solutions de type client riche permettent-elles d’assurer la productivité ?
- Quels outils pour les développeurs ? Les constructeurs d’interfaces graphiques sont-ils nécessaires ? La génération de code est-elle une solution ? La description des interfaces graphiques en XML.
- Le débogage : des possibilités très différentes selon les types de clients riches. Les solutions pour automatiser les tests sur la partie cliente.
- La séparation des rôles entre concepteurs graphiques, développeurs de la partie cliente et développeurs de la partie serveur.
|