Comment réaliser une RIA?

La plupart des innovations dans le domaine du développement convergent dans une seule direction: l'amélioration des applications Web riches pour faciliter leur programmation et leur utilisation, pour accroître les performances et les possibilités. Comme si les RIA voulaient supplanter les logiciels de bureau traditionnels. Cependant, si de nouveaux outils facilitent la programmation, les nouvelles techniques la rendent par ailleurs plus complexe et des choix doivent être faits avant de débuter la conception d'un RIA.

Description et perspectives

Définissons une RIA comme une application Web, un programme hébergé sur un serveur et fonctionnant sur le navigateur, et qui a toutes les fonctionnalités d'une application locale tel le logiciel de traitement de texte. La RIA dispose d'une interface utilisateur graphique comme une application locale.
Cependant, pour une raison de sécurité (on pourrait être connecté à un logiciel malveillant) la RIA s'exécute dans un environnement propre que l'on appelle sandbox.
Pour pouvoir procurer ces avantages sur les applications Web simples, un runtime doit être téléchargé sur le poste client.

Grâce aux nouvelles technologies que nous allons détailler et aux possibilités nouvelles dont elles sont dotées, les RIA disposent de tant d'avantages sur les applications locales qu'elles ne peuvent que les remplacer à court terme, tendance qui se constate sur tous les plans: nouveaux outils de développement, investissements et rachats d'entreprises, offre d'emplois (administration de serveurs, webmasters).

Avantages pour l'éditeur

Il n'a plus à s'occuper du port sur Windows, Linux ou Mac: l'application est indépendante du système de l'utilisateur.
Il est délivré de toutes les tâches de distribution, pour mettre à jour le logiciel avec une nouvelle version, il lui suffit de la mettre en ligne.
Eventuellement il peut compléter ses revenus en ajoutant des publicités dans l'interface.

Avantages pour l'utilisateur

Aucune installation n'est nécessaire, sauf éventuellement le framework.
L'application fonctionne toujours sur son système d'exploitation même si c'est Linux ou Mac.
Il dispose toujours de la dernière version. Il utilise le logiciel sur n'importe quel poste, bureau ou mobile (sauf si ses données sont sauvées localement).
Il ne craint pas les virus ou pannes matérielles.

Techniques des RIA

Mode asynchrone

Le mode asynchrone consiste à lancer des opérations et rendre la main à l'utilisateur sans attendre la réponse du serveur. Les frameworks de RIA incorporent Ajax pour permettre ce mode de fonctionnement.
A cela on peut adjoindre une fonction de prefetching, qui consiste à anticiper les besoins et lancer les requêtes pour obtenir les réponses sans attente. Par exemple si on affiche une carte, Google Maps télécharge les régions adjacentes qui s'affichent alors immédiatement quand on se déplace sur la carte.

Sandbox

Littéralement 'bac à sable", car on l'utilise pour effectuer des tests. C'est un environnement d'exécution doté d'un espace mémoire et de ressources. Les programmes, essentiellement des bibliothèques de fonctions et objets n'ont pas accès aux fichiers de l'ordinateur hors de l'espace alloué. La machine virtuelle Java qui fait fonctionner les applets des pages Web en est un exemple. Mais cela se généralise aux autres environnements tels que XAML, XUL, etc.
Au contraire les ActiveX ne fonctionnent pas dans une sandbox et nécessitent des mesures de sécurité complexes.

Mode hors ligne

Une RIA continue de fonctionner après que l'on ait fermé la connexion à Internet, lors d'un déplacement par exemple. Pour ce faire plusieurs techniques sont mises en oeuvre.
- Les bases de données sont transférées sur une base locale IndexedDB.
- Les ressources telles que pages Web et images sont triées et stockées sur le disque dur local.
- La troisième fonction consiste à transposer sur le poste local le fonctionnement sur le Web. Ainsi Ajax doit fonctionner en local, ce qui n'est pas permis par l'objet XMLHttpRequest en mode normal.

Pages dynamiques

La RIA s'appuie sur les composantes des pages Web dynamiques, donc Ajax qui comprend JavaScript, DOM, CSS, l'objet XMLHttpRequest. Les RIA doivent s'appuyer sur les standards du Web pour fonctionner sur tous les navigateurs.

Services Web

L'application peut utiliser des services Web, sur le site de l'application ou provenant de sites tiers et qui accomplissent des traitements ou fournissent des informations spécifiques.

Frameworks

A cet environnement Web peut ajouter un framework coté client: la machine virtuelle Java, .NET, etc... Ou on peut utiliser HTML 5.

Le standard HTML 5, est conçu pour les applications Web. Il dispose d'une balise Canvas permettant de dessiner des composants graphiques et d'éléments de formulaires plus complets.
Il dispose de fonctions hors ligne maintenant supportées par tous les navigateurs.

Le framework JavaFX utilise la syntaxe du format JSON pour définir des interfaces et requiert le runtime Java.

Conclusion

Le futur des applications Web ne sera pas forcément limité à un seul environnement... Ce n'est pas vraiment dans les possibilités des technologies offertes qu'il faudra faire le choix pour créer une RIA, car elles tendent à être équivalentes, mais plutôt dans une culture qui voudrait se placer dans le sillage de Microsoft ou ailleurs...

Voir aussi