Accueil🇫🇷Chercher

Rich Internet application

Une rich Internet application (RIA), ou application Internet riche, est une application Web qui offre des caractéristiques similaires aux logiciels traditionnels installés sur un ordinateur. 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 Web. 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 .

Des pages HTML aux interfaces interactives riches

Les applications Web traditionnelles s'articulent souvent sur une architecture utilisant des clients légers : les traitements sont réalisés sur le serveur (distant), le client (local) ne faisant qu'en réaliser une présentation (exemple : HTML). Le client envoie ses données au serveur, celui-ci effectue le/les traitement(s) puis 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 chez le client (local) une partie des traitements normalement dévolus au serveur. Le langage Javascript, en particulier, a été conçu dans cette optique. Il permet par exemple d'indiquer au fur et à mesure de la frappe le nombre de caractères qu'il est encore possible de saisir, dans un champ de texte de taille limitée, plutôt que de tout accepter et de renvoyer ensuite seulement un message d'erreur du serveur avec perte d'une partie du contenu frappé.

Les standards Internet ont évolué lentement et continuellement à travers le temps pour s'accommoder de ces techniques. Aussi est-il 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 système client, elles offrent aux applications Web des possibilités d'interfaces utilisateur réactives, ce qui serait impossible avec des balises HTML standards.

On peut déporter sur le client de nombreuses fonctionnalités, comprenant le glisser-déposer, l'utilisation de barres d'outils pour modifier les données, des calculs (par exemple : taux d'intérêt pour un prêt), données n'ayant pas nécessairement besoin d'être renvoyées au serveur.

Le développement d'HTML5 est parfois annoncé comme voué à remplacer ces RIA, en réalité il ne prendra vraisemblablement en charge que les usages et fonctionnalités les plus usitées et répandues des principaux RIA, auxquels l'aspect propriétaire confère une longueur d'avance à un consortium tel que le W3C.

Avantages et inconvénients

Bien que le développement d'applications s'exécutant 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 équivalentes aux applications bureautiques classiques, ces efforts sont souvent récompensés parce que :

  • Aucune installation n'est nĂ©cessaire — la distribution et la mise Ă  jour de l'application est un processus instantanĂ©, invisible et non maitrisable pour l'utilisateur ;
  • Les utilisateurs peuvent utiliser l'application depuis n'importe quel ordinateur Ă©quipĂ© d'une connexion Internet et d'un navigateur rĂ©cent ;
  • Étant donnĂ© que l'utilisation du Web s'accroĂ®t, les utilisateurs d'ordinateur sont de moins en moins enclins Ă  installer de nouveaux logiciels lorsqu'une alternative se basant sur le navigateur (qu'il ne faudra pas installer) est disponible.

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.

Technologies côté client

Le client est un navigateur qui est compatible Javascript, CSS, et capable d'utiliser les fonctionnalités du système d'exploitation par la gestion de plug in (moteur multimedia/3D Quicktime, Windows Media, Unity, RealPlayer, Shockwave). Cette compatibilité Javascript permet l'utilisation des « applets ».

JavaScript et Ajax

Javascript fut le premier langage d'importance du côté client. Il était capable de faire exécuter du code côté client, de plus il était mis en œuvre dans la plupart des clients Web.

Bien que son usage soit relativement restreint de prime abord, combiné à plusieurs couches d'autres langages (i.e. DHTML) il est devenu possible de le faire cohabiter avec un système RIA sans utiliser une solution du type « client monolithique ». AJAX est maintenant le terme utilisé pour se référer à cette combinaison de techniques, elle est récemment devenue la plus importante grâce notamment à des projets de Google tels que Gmail ou les cartes google. Cependant, créer des applications riches avec cette plate-forme de développement s'avère 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'efforts.

De nombreux éditeurs offrent des outils et frameworks permettant de simplifier l'écriture de telles applications. Le nombre de frameworks 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
  • jQuery
  • Prototype
  • Rialto
  • Scriptaculous
  • Rico
  • GWT (Google Web Toolkit), toolkit proposĂ© par Google qui permet d'Ă©crire des RIA javascript/AJAX en utilisant Java, notamment sous forme d'extension pour Eclipse.
  • Morfik Ă©dite AppsBuilder qui permet de dĂ©velopper dans une syntaxe C/Java/Pascal/Basic et de gĂ©nĂ©rer du code javascript.

A noter que si le javascript est longtemps restée une technologie côté client, de nouveaux frameworks l'ont maintenant portée côté serveur. L'exemple le plus connu est celui de NodeJS.

Applet machine virtuelle

Applets Java

Les applets Java sont des applications compilĂ©es en bytecode, tĂ©lĂ©chargĂ©es depuis un serveur, s'exĂ©cutant cĂ´tĂ© client sur une plate-forme 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'interopĂ©rabilitĂ© des protocoles. Historiquement ces applets sont Ă  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 plate-forme MIDP utilisĂ© par les Blackberry. Les applets ont laissĂ© place Ă  la technologie Flash dont le moteur d'exĂ©cution est lĂ©ger (Mio par rapport Ă  50 Mio), le temps de chargement plus rapide, et oĂą les graphiques sont plus facilement animĂ©s grâce Ă  une programmation plus temporelle qu'Ă©vĂ©nementielle.

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 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[1].

Flash est progressivement abandonnée au cours des années 2010, la fin définitive du support étant annoncée par Adobe pour 2020[2].

Silverlight

Créé par Microsoft et intégrant le framework .Net

Framework RIA

Environnements open source réutilisant une ou des technologies ci-dessous :

  • Description des interfaces en XML (XUL, XAML)
  • Échange des donnĂ©es avec les serveurs de donnĂ©es via les Webservices SOAP, REST, RCP
  • IntĂ©gration d'un langage de programmation orientĂ© objet (javascript, actionscript, C#, javaFX)
  • gestion du client de façon dynamique cĂ´tĂ© serveur (tomcat, IIS)
  • interface client orientĂ©e Ă©vènement pour plus d'interactivitĂ©

Le premier framework proposant ces fonctionnalités était le framework echo. on peut citer :

  • OpenLaszlo fonctionne sur un serveur java pour gĂ©nĂ©rer sur le client du flash. Il Ă©tait 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. OpenLaszlo utilise l'Ă©diteur de nom Laszlo 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.
  • Adobe Flex est une solution de dĂ©veloppement crĂ©Ă©e par Macromedia en 2004 puis reprise par Adobe en 2006, permettant de crĂ©er et de dĂ©ployer des applications Internet riches (RIA) multi plates-formes grâce Ă  la technologie Flash.
  • JavaFX de Oracle Corporation

Quelques rich Internet applications

Client basé sur XML (données, interface)

  • Les technologies fonctionnant sur une machine virtuelle (XULRunner) ou sur ajax Ă©voluent tous pour supporter des protocoles de communication basĂ©s sur XML (JSON) et des interfaces dĂ©crites avec XML. L'utilisation du format XML au niveau de l'interface ouvre la voie du graphique vectoriel (rendu vectoriel tel que SVG, WPF, du XAML, flash, XUL, Swing). L'adoption d'une technologie est fortement liĂ©e Ă  la productivitĂ© et donc Ă  l'environnement de dĂ©veloppement et graphique.

Application lancée depuis un navigateur (RDA)

Les applications sont téléchargées depuis un navigateur sur le système d'exploitation et s’exécutent en dehors du navigateur, contrairement à une applet Web qui s’exécute dans le navigateur. 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.

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 protocole half object protocol (HOP) qui permet, au travers d'un ensemble d'interfaces de programmation (API), 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 ou son smartphone.

Elle permet donc de tirer profit Ă  la fois des avantages de la plate-forme client de Java et des avantages de la plate-forme Serveur de java.

Référence

Voir aussi

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.