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 est
débarrassée de la lenteur des applications Internet et elle
a accès aux fichiers sur l'ordinateur local, contrairement aux scripts
Web.
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
L'éditeur dispose d'un moyen de promotion pour son application gratuit
et considérable: le moteur de recherche. Il obtient d'emblée
un large public sans frais et sans distribuer quoi que ce soit.
Il est délivré de toutes les tâches de distribution, il
lui suffit de mettre la dernière version de l'application en ligne.
Eventuellement il peut compléter ses revenus en ajoutant des publicités
dans l'interface, qui seront mises en jour en temps réel.
Avantages pour l'utilisateur
Aucune installation n'est nécessaire, sauf le framework, qui sera
commun à toutes les applications. L'application ne dépend pas
du système d'exploitation et fonctionne sous Linux comme sous Windows
ou Mac. L'utilisateur dispose toujours de la dernière version. Il utilise
le logiciel sur n'importe quel poste (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 déconnecté
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 SQLite.
- 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.
Ces trois fonctions correspondent aux trois modules de Google Gear.
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 s'ajoute un framework coté client: la machine virtuelle Java, .NET, le flash player etc...
La guerre des environnements à démarré avec l'annonce
de Silverlight par Microsoft. Face à une offre hétaroclite,
d'origines différentes et incompatibles, Silverlight avec son langage
d'interface XML, son plug-in léger et portable semble vouloir écraser
la concurrence et remplacer Flash par un standard Microsoft.
Cependant le monde du Web a réagi, Adobe annonce un environnement de
développement Flash
open source et gratuit, le W3C prend en compte HTML 5 pour remplacer le
format actuel et Google propose un plug-in pour exécuter les RIA hors
connexion.
Ainsi le programmeur se trouve face à un panel de technologies étendues...
Le framework Silverlight de Microsoft dépent de la plateforme
.NET.
L'interface se décrit en XAML et se code en JavaScript, ou autres langages.
Silverlight utilise un contrôle ActiveX sous IE. Donnons
un exemple de création de contrôle avec Silverlight.
On définit l'emplacement de l'objet avec un div ou autre:
<div id="MonObjet"></div>
Puis on crée l'objet avec un constructeur du plug-in:
<script language="text/javascript>
Sys.Silverlight.createObject("code.xaml", parent, "MonObjet" ... autres options ...);
</script>
Maintenant principalement dévolu à Windows Phone 7, Silverlight est toujours utilisable pour les applications Web en général.
Le format binaire Flash s'affiche grâce à contrôle ActiveX sous IE, et un plug-in pour les autres navigateurs. Son avantage est qu'il est maintenant assez répandu et les développeurs peuvent l'utiliser sans craindre pour la compatibilité.
Le framework JavaFX utilise la syntaxe du format XML graphique SVG pour définir des interfaces et Java coté serveur. L'éditeur propose aussi une solution plus lourde, Java Webstart, entièrement en Java.
Le nouveau
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 fonction hors ligne mais on peut aussi utiliser pour cela Gears en attendant qu'il soit supporté par tous les navigateurs.
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
|
|
|
