Si vous suivez ce blog régulièrement, alors les RIA (Rich Internet Application) n’ont plus de secrets pour vous. Par contre, connaissez-vous les RDA (Rich Desktop Application) ?
Les RDA sont les applications riches du poste de travail. Comprenez par là que ce sont des applications, au même titre que votre traitement de texte ou votre logiciel de messagerie, sauf que ces applications riches sont déployées à la volée et exécutées sur une machine virtuelle. Gloups ! Et oui, ça calme comme définition, non ? Pour vous aider à bien faire la différence, je vous propose de revenir sur ce que sont les RIA puis de vous donner des exemples concrets de RDA.
RIA = Writely (heu… Google Docs)
Une RIA est une application qui se lance depuis votre navigateur et qui est exécutée à l’intérieur de ce dernier. WritelyGoogle Docs est ainsi un traitement de texte en ligne qui n’est pas installé sur votre poste de travail mais que ressemble à une application traditionnelle.
Les technologies de références pour faire des RIA sont :
- AJAX ;
- Flash / Flex ;
- OpenLaszlo.
RDA = AjaxWrite
Prenons maintenant un autre exemple dans le même domaine : AjaxWrite est également une application en ligne mais qui s’exécute en dehors de votre navigateur. Oui je sais, vous allez me dire : mais… il s’exécute dans la fenêtre de votre navigateur
, mais je vous répondrais : pas tout à fait
.
C’est là où les choses se compliquent et où j’ai besoin de votre attention. En fait, AjaxWrite n’est pas exécuté par Firefox lui même mais par XulRunner, une sorte de machine virtuelle sur laquelle on peut faire tourner des applications en XUL. C’est un peu complexe à comprendre dans la mesure où Firefox utilise ce fameux XulRunner comme moteur d’affichage.
Donc pour faire simple : il est impossible d’exécuter Google Docs sans Firefox, par contre il est tout à fait possible de faire tourner AjaxWrite sans Firefox (du moment que vous avez installé XulRunner). Vous remarquerez que ce principe de machine virtuelle n’est pas neuf : le langage Java exploite déjà cette architecture depuis son lancement.
Le meilleur des deux mondes
Le principal intérêt des RDA est de pouvoir allier la praticité des RIA (légèreté, pas besoin d’installer l’application pour s’en servir) et la robustesse des applications traditionnelles (temps de réaction, stabilité…). Car il faut bien avouer que Google Docs est une belle prouesse technologique, mais qu’à utiliser au quotidien, c’est un peu pénible (lenteur, plantages).
Il est ainsi tout à fait possible de se connecter à un site, de lancer une application riche de type RDA (qui va se télécharger et s’exécuter à la volée en quelque secondes comme AjaxWrite) et de pouvoir l’utiliser par la suite en mode déconnecté avec une grande souplesse (l’application vérifiant s’il n’y a pas de nouvelle mise à jour à chaque nouvelle utilisation).
Pour rentrer dans des considérations plus techniques, il existe différentes technologies pour faire des RDA :
- en Java à l’aide de Java Web Start, Eclipse RCP ou encore NetBeans RCP ;
- en XUL (le langage de description d’interfaces de Mozilla) avec XulRunner ;
- en XAML (le langage de description d’interfaces de Microsoft) avec la machine virtuelle de Microsoft (SmartClient.Net) ;
- il faut également parler d’Apollo, le futur player universel d’Adobe (PDF, Flash, HTML) qui va également permettre de faire des choses très itnéressantes.
D’autres exemples ?
Il existe de nombreux exemples de RDA mais celui qui me plait le plus est le Mozilla Amazon Browser (dont j’avais déjà parlé dans un précédent billet il y a plus de deux ans) : une application riche pour parcourir le catalogue d’Amazon que l’on peut installer sur son ordinateur ou exécuter directement en ligne.
Et là vous me direz : et iTunes dans tout ça ?
, et je vous répondrais : Ha non, iTunes est une application connectée
. Nous sommes donc dans une configuration différente puisqu’il faut installer iTunes et le mettre à jour manuellement. De même pour Google Earth, c’est également une application traditionnelle mais qui se connecte à internet pour récupérer les données cartographiques.
Quelques réserves…
Je suis certain que mes explications feraient hurler des puristes comme Didier, Daniel ou Guillaume, mais voilà… il faut bien que je prenne des raccourcis pour vulgariser une notion complexe à expliquer.
Pourquoi est-ce que je cherche à vulgariser les RDA ? Tout simplement parce que leur potentiel est immense et qu’elles sont peut-être LA solution qui pourrait réconcilier deux mondes qui se font la guerre : les géants des services en ligne (Google, Yahoo!, SalesForce…) et les géants du logiciels (Microsoft, Oracle, MacromediaAdobe…).