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
- Quelle interface pour une application moderne? Comparaison des langages et systèmes.
- Les frameworks HTML 5. Bibliothèques d'applications JavaScript.
- Rich Ajax Platform. Framework et outil de développement basé sur Eclipse, avec Java coté serveur.