La guerre des RIA / RDA *
* Rich Internet Application / Rich Desktop Application
Si les clients riches ne sont pas nouveaux (apparus dès 2002), l’offre s’est fortement étoffée ces dernières années et on dispose maintenant de produits matures : petit tour d’horizon des principaux acteurs du marché!
Historique du client-serveur
Le modèle client-serveur s’est développé en même temps que les internet et intranets. Les années 90 sonnent l’heure de gloire des clients lourds (vb, delphi, swing, …) mais leurs déploiement sont toujours complexes car nécessitant l’installation d’un logicielle sur le poste client. Début 2000, avec la démocratisation de la bande passante et l’arrivée des premiers « hauts débits », le modèle évolue vers les clients légers (jsp, asp, …), application cliente fonctionnant intégralement dans un navigateur web. Ce modèle facilite grandement le déploiement mais est très consommateur de bande passante car chaque action entraine un aller-retour avec le serveur d’application et sont incapablent de travailler en mode « déconnecté ».
Depuis 2002, on voit arriver un 3ème mode de fonctionnement : les clients riches (AJAX, Eclipse RCP). Cumulent les avantages des deux autres. En général, l’installation d’un plugin est nécessaire, cependant l’application est accessible via URL : plus aucune installation n’est nécessaire pour les déploiement. Enfin, il est possible de travailler en mode déconnecté du serveur d’application si l’application est prévue pour et une grande partie des traitements peuvent être effectués par le client (gain de charge sur le serveur d’application, gain de charge réseau).
En 2009, de nombreux framework performants facilitent aussi les développements Ajax (prototype, jQuery, …) et nous avons une offre mature dont les principaux acteurs se nomment Adobe (FLEX), Microsoft (Silverlight), Sun/Oracle (Java Fx) ou Google (GWT).
Le référencement
Ces technologies sont souvent décriées par les SEO. Avant tout, il me semble important d’avoir en tête qu’elle s’adressent principalement au développement d’applications et non de sites web. Avec le développement d’application clients légers, la limite peut être ténue à percevoir, simplement pensez que dès que vous cherchez à offrir une expérience utilisateur ou un service qui n’est pas uniquement informatif, vous êtes plus proche de l’application. Dès lors ces technologies peuvent apporter des gains d’ergonomies ou de design.
Je pense que le référencement ne doit pas être un frein au développement d’applications RIA publiques et des solutions sont toujours possibles pour optimiser les sites.
Par contre si vous pensez à ouvrir un site d’information ou un blog : passez votre chemin, ce n’est pas l’objet des ces technologies.
AJAX
Basée sur DOM, XHTLM, CSS, Javascript cette technologies est surement la plus facile a appréhender pour les webmasters, de plus l’offre mure de frameworks disponibles rend les développement AJAX assez simples et rapides. Personnellement j’ai une préférence pour JQuery mais prototype ou scriptaculous sont surement les plus répendus et il existe encore bien d’autres frameworks tels que Yahoo UI par exemple.
Cette technologies est intimement liée aux technologies « client léger », on trouve donc souvent du PHP/AJAX, JSP/AJAX, ASP/AJAX, … Et le gros avantage est aussi qu’aucun plugin n’est nécessaires pour faire fonctionner un front ajax!
Mais c’est aussi la raison pour laquelle AJAX ne tient pas toutes les promesses du RIA : l’ergonomie de l’application concerve les même contraintes que n’importe quelle application web. La performance de l’application dépend fortement du moteur javascript du navigateur web. Enfin Ajax est principalement une technologie RIA, pour obtenir une application RDA est possible mais assez complexe.
GWT
GWT est framework AJAX. Alors pourquoi le distinguer du chapitre précédent me direz-vous? Et bien parce que GWT c’est aussi un peu plus que ça et dispose de vrais outils de développement (plugin eclipse) et possibilité de créer facilement des application RDA. Enfin le détail qui tue : GWT gère nativement les fonctionnalité suivant/précédent du navigateur 🙂
FLEX
Avec flash, on a tenter de faire coder les graphistes (oui le code as caché dans le calque 11 😉 ), avec flex Adobe (ex macromedia) donne aux codeurs l’accès aux développement flash. Le produit en est maintenant à sa 3ème version avec tous les outils qui vont bien gratuits (flex builder) et surtout OPEN SOURCE (oui on parle bien d’Adobe). La technologie permet aussi de développer du RDA via AIR (une balise à changer par rapport au code flex).
Pour fontionner, une application flex nécessite uniquement le plugin flash : intéressant quand on sait qu’il est installé sur plus de 90% des navigateurs.
L’offre est complétée par lifecycle (payant) qui permet d’intégrer toutes les fonctions PDF et surtout de faire du push de données compressées et sécurisées : idéal pour les appli en temps réel type application boursière.
Adobe propose aussi sur un produit permetant de gérer un mapping direct entre le travail du graphiste sous photoshop ou illustrator (adobe oblige) et le codeur flex : Flash Catalyst.
Exemple d’application d’achat de maison en Flex
Un exemple de tableau de bord
Présentation de Catalyst au WEB2.0 2009
Silverlight
Grosso modo Silverlight offre les même possibilités et le même niveau d’outillage que Flex mais n’est pas Open Source. Le produit étant 2 ans plus jeune, on ressent tout de même un niveau de maturité inférieur de la solution. Mais Microsoft a les moyen de combler rapidement ce retard. Ne serait-ce que s’ils poussaient le plugin sliverlight en windows update… Enfin Silverlight est pas mal critiqué car le plugin n’est pas proposé pour linux (uniquement MAC et PC).
Un exemple d’application Silverlight
(avec une technologie zoom in/out d’image Microsoft qui est assez impressionante)
Un second exemple pour des tableaux de bord
Flash FX
Encore un produit assez similaire mais poussé cette fois par Sun (Orcale devrait-on dire maintenant!). Les applications ont besoin du plugin Java pour fonctionner. Je connais peu le produit mais visiblement ce serait celui fonctionnant le mieux sur MAC et donc souvent poussé pour les projets sur ces machines.
Exemple d’application JavaFX
Un exemple de lecteur twitter pour les fan
RIA et vous
Je sais que la présentation est assez succincte, mais difficile de décrire tous ça dans un seul billet. Et vous dites nous quelles technologies RIA vous utilisez et ce que vous en pensez 🙂
1 réponse
La guerre des RIA / RDA – I Love Miage…
Si les clients riches ne sont pas nouveaux (apparus dès 2002), l’offre s’est fortement étoffée ces dernières années et on dispose maintenant de produits matures : petit tour d’horizon des principaux acteurs du marché !…