Rich Internet Application

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir RIA.

Les Rich Internet Applications (RIA) sont des applications web qui partagent les caractéristiques des applications autonomes sur l'ordinateur. A long terme, les RIA favorisent la fusion des logiciels traditionnels et les logiciels client-serveur de type internet. La dimension interactive et la vitesse d'exécution sont particulièrement soignées dans ces applications web.

Une RIA peut être :

  • exécutée sur un navigateur internet, aucune installation n'est requise ;
  • exécutée localement dans un environnement sécurisé appelé sandbox (bac à sable) ;.

Le terme Rich Internet Application a été introduit dans une publication de Macromedia en mars 2002.

Sommaire

[modifier] Comparaison avec les applications web classiques

Les applications web traditionnelles s'articulent souvent sur une architecture utilisant des clients légers : les traitements sont réalisés sur le serveur, le client ne faisant qu'en réaliser une présentation (exemple : HTML). Le client envoie ses données au serveur, celui-ci répond, et une page de réponse est renvoyée au client. Le serveur est donc sollicité à chaque interaction, hormis quelques cas spécifiques comme la saisie dans un formulaire.

Les RIA s'efforcent de rapatrier en local une partie de cette boucle. Le langage Java en particulier a été conçu dans cette optique.

Il est utile de noter que les standards Internet ont évolué lentement et continuellement à travers le temps pour s'accommoder avec ces techniques, aussi il est difficile de définir clairement ce qui constitue une RIA et ce qui n'en constitue pas une. Généralement, ce qui peut être effectué au moyen d'une RIA est limité par les capacités du système client.

Parce que les RIA utilisent les ressources du processeur du client, elles offrent aux applications web des possibilités d'interfaces utilisateur en temps réels qui seraient impossibles avec des balises HTML standards.

On peut déporter sur le client des fonctionnalités plus nombreuses, comprenant du copier-déplacer, l'utilisation d'une barre d'outils pour modifier les données, des calculs effectués par le client (par ex. taux d'intérêt pour un prêt), données n'ayant pas nécessairement besoin d'être renvoyées au serveur.

[modifier] Justifications

Bien que le développement d'applications qui s'exécutent dans un navigateur web en limite la portée, bien que ce soit une tâche difficile à mettre en œuvre, et bien que l'on ajoute un degré de complexité supplémentaire pour développer des applications bureautiques classiques, ces efforts sont souvent récompensés parce que :

  • aucune installation n'est nécessaire -- la mise à jour et la distribution de l'application est un processus instantané ;
  • les utilisateurs peuvent utiliser l'application depuis n'importe quel ordinateur équipé d'une connexion Internet ;
  • étant donné que l'utilisation du web s'accroît, les utilisateurs d'ordinateur sont devenus plus frileux pour installer de nouveaux logiciels lorsqu'une alternative est disponible en se basant sur le navigateur.

Ce dernier point est généralement vrai même si cette alternative est lente ou qu'elle est dépouillée. Un bon exemple de ce phénomène est l'utilisation du webmail.

[modifier] Méthodes

[modifier] JavaScript

Icône de détail Article détaillé : Asynchronous JavaScript and XML.

Javascript fut le premier langage d'importance du côté client. Il était capable d'exécuter du code et il était installé sur la plupart des clients web. Bien que son usage soit relativement restreint de prime abord, combiné avec plusieurs couches et d'autres développement en DHTML il est devenu possible de le faire cohabiter avec un système RIA sans utiliser une solution client monolithique. AJAX est maintenant le terme utilisé pour se référer à cette combinaison de techniques et elle est récemment devenue la plus importante avec des projets Google tels que Gmail et les cartes google. Cependant créer de grande application avec cette plate-forme de développement est très difficile, étant donné que différentes technologies doivent interagir pour faire fonctionner l'ensemble, et que les travaux de compatibilité des navigateurs nécessitent beaucoup d'effort.

De nombreux éditeurs offrent des outils et frameworks permettant de simplifier l'écriture de ces applications. Le nombre de framework javascript est supérieur à 500. Les plus connus sont :

  • Yahoo! User Interface Library (YUI) (la plus documentée)
  • Ext (une bibliothèque dérivée de la précédente et devenue indépendante)
  • Dojo
  • Prototype
  • Rialto
  • Scriptaculous
  • Rico
  • Google propose un toolkit ayant pour nom GWT (Google Web Toolkit) qui permet d'écrire des RIA javascript/AJAX en utilisant java.
  • Morfik édite AppsBuilder qui permet de développer dans une syntaxe C/Java/Pascal/Basic et de générer du code javascript.

[modifier] Java applications / Java Web Start

Java Web Start est un outil informatique permettant le déploiement de logiciels fondés sur la technologie Java. Il agit comme un lien entre l'ordinateur et Internet permettant à l'utilisateur de lancer et de gérer des applications à partir du Web. Avec Java Web Start, il est possible d'activer des applications d'un simple clic de la souris. En outre, le logiciel charge toujours les versions les plus récentes des applications et permet ainsi d'éviter les procédures complexes d'installation ou de mise à niveau. Cette approche permet de construire des applications riches sans les limitations du HTML et sans les contraintes spécifiques des différents navigateurs. Cette technique permet aussi de faire des développements à moindre coût par rapport à un développement Web.

[modifier] Applets Java

Les applets Java sont des applications compilées en bytecode, téléchargées depuis un serveur, s'exécutant coté client sur une plateforme disposant d'une machine virtuelle Java (Java Runtime Engine). Les applets, diminutifs d'applications, s'exécutant au sein d'un navigateur sans possibilité d'accès aux périphériques du système d'exploitation (imprimante , gps) et avec des droits d'exécutions restreints. Ces limitations disparaissent par utilisation de la technologie Java Web Start qui permet d'installer depuis le web une application qui s'exécutera sur une machine virtuelle Java en dehors d'un navigateur. Le slogan write once et run everywhere associé à Java a reporté le problème de portabilité sur les machines virtuelles et posé le problème de l'interoperabilité des protocoles. Historiquement ces applets sont a l'origine du développement d'un véritable framework s'exécutant sur différent OS Java et périphériques mobiles J2ME avec pour les téléphones la plateforme MIDP utilisé par les blackberry. Les applets ont laissé place à la technologie Flash dont le moteur d'exécution est léger (2 Mo par rapport a 50 Mo), le temps de chargement plus rapide, et où les graphiques sont plus facilement animés grâce à une programmation plus temporelle qu'événementielle.

[modifier] Adobe Flash

Adobe Systems (qui a racheté Macromedia fin 2005) est un des fournisseurs dans ce domaine avec la technologie Adobe Flash qui intègre des serveurs de communication reposant sur Flash, Central, Breeze et Flex.

Laszlo est une plate-forme opensource pour les applications internet riches, initialement développé par Laszlo Systems qui produit également des fichiers SWF qui s'exécutent au moment de l'exécution dans le lecteur Adobe Flash.

Chacune de ces technologies est exécutée dans les navigateurs des visiteurs du site via le lecteur Adobe Flash qui est installé sur 98 % des navigateurs Internet.

[modifier] Techniques plus récentes

  • Dans la course aux clients riches, trois technologies apparaissent: le tout client avec javascript/ajax type googlemail, l'application qui s'exécute dans le navigateur (Flash/Flex d'Adobe, JavaFX de Sun ou Silverlight de Microsoft), et le client qui utilise le navigateur pour en sortir (Java Webstart chez Sun, ActiveX de Microsoft, Adobe AIR)et s'exécuter sur la même machine virtuelle (JRE pour Sun, CLR pour Microsoft et plateforme Flash pour Adobe). L'adoption d'une technologie est fortement liée à la productivité et donc à l'environnement de développement.
  • La technologie s'éxecutant dans un navigateur a partir d'un même serveur ; la bande passante doit être optimisée en multipliant les serveurs ( centre de traitement des données ), en optimisant des codec optimisés, en utilisant un rendu vectoriel tel que SVG, wpf, flash et un flux multicast.
  • Utiliser du XUL manipulable avec du Javascript permet de concevoir des interfaces RIA fonctionant à l'intérieur du navigateur en utilisant le moteur de rendu gecko, ou à l'extérieur par machine virtuelle XULRunner. XULRunner peut utiliser des bibliothèques externes grâce a xpcom pour avoir accès aux protocoles Web Services, XML-RPC, LDAP, SQL, IMAP et POP3. Beaucoup de projets autour de la réalisation d'un éditeur pour xul ne sont pas productifs et beaucoup d'entre eux ont disparu [1] .
  • Utiliser du XML et du XSLT avec du XHTML, CSS et du Javascript peut aussi permettre de concevoir des interfaces complètes pour l'utilisateur, avec des composants tels que des tableaux qui pourront être triés localement chez le client avant d'être renvoyés au serveur. Les navigateurs Mozilla et Internet Explorer permettent ce genre de choses. Bien que complexe, il existe des éditeurs javascript [2].
  • Utiliser du XAML (Extensible Application Markup Language, prononcé, 'ZAML'), manipulable avec du C#, permet de concevoir des interfaces WPF/E fonctionnant à l'intérieur du navigateur Silverlight ou à l'extérieur par machine virtuelle .net/mono fnac. Silverlight est une technologie cliente indépendant de la technologie coté serveur qui utilise exclusivement l'environnement de développement Visual Studio Orcas.

Environnements open source réutilisant les technologies pré-citées :

  • OpenLaszlo fonctionne sur un serveur java pour générer sur le client du flash. Il etait considéré comme un FLEX open source et gratuit depuis qu'Adobe a rendu libre et gratuit la technologie Flex pour populariser sa technologie Apollo. OpenLAslo utilise l'éditeur de nom Lazlo IDE d'IBM.
  • Wazaabi, un facilitant à RCP Eclipse qui permet de réaliser « facilement » des applications client riche en J2EE en se basant sur la technologie RCP et sur les fichiers XUL.

FLEX de Macromedia (co-réalisé avec IBM) est à la fois un serveur et un framework accessible par une interface flash ou apollo XUL puis FLEX plus mûr est la technologie qui pose les premières bases de ce concept. FLEX offre la capacité d'industrialisation de développement logiciel :

    • Description des interfaces en MXML (Macromedia XML),
    • Echange des données avec les serveurs de données via les Webservices SOAP, REST par exemple,
    • Intégration d'un langage de programmation orienté objet,
    • Dimension multimédia forte,
    • intégration d'objets FLASH,

[modifier] Approche Ultra Light Client

L'approche Ultra Light Client met à disposition du développeur une bibliothèque Java qui permet de développer des Rich Internet Applications entièrement basées sur Java.

L'architecture proposée, entièrement ouverte, est basée sur le le protocole Half Object Protocol (HOP) qui permet, au travers d'un set d'interfaces de programmation (APIs), de déplacer au niveau du serveur Web les données et de ne transférer sur le poste client que les données visuellement disponibles pour l'utilisateur.

Seul le moteur de présentation s'exécute du côté Client, ce qui allège d'autant la taille des modules devant être téléchargés depuis le serveur. Cela permet à l'utilisateur d'accéder aux données de son entreprise depuis différents terminaux comme son ordinateur de bureau, son ordinateur portable, son PDA ou son smartphone.

Elle permet donc de tirer profit à la fois des avantages de la plateforme Client de Java et des avantages de la plateforme Serveur de java.

[modifier] Quelques Rich Internet Applications

  • Zimbra Solution Open Source de bureau mobile  ;
  • Flickr de Ludicorp, la gestion de photo ;
  • Gmail par Google, e-mail ;
  • Google Maps par Google, des cartes interactives ;
  • Deezer, site d'écoute musicale gratuite
  • Fnac.com, Solution OpenLaszlo dans l'aide au choix et la navigation Informatique

[modifier] Voir aussi

[modifier] Articles connexes


[modifier] Liens externes