# Rich desktop application

Les rich desktop applications (RDA) sont des applications qui se lancent à partir d'un navigateur web mais qui s'exécutent sur une machine virtuelle extérieure au Web. Chaque RDA nécessite au préalable l'installation d'un moteur d'exécution au sein duquel sera exécutée l'application. Cela offre l'avantage notable de n'avoir à écrire qu'un unique code pour toutes les plates-formes supportées par la technologie RDA. Une application s'exécutant à l'intérieur d'un navigateur et qui essaie d'avoir le comportement d'une application est appelée « rich Internet application » ou RIA.
Plusieurs sociétés ont commercialisé des offres RDA basées sur leurs technologies : langage, framework, machine virtuelle, interface visuelle.

## Principes généraux

La distribution de logiciels par la voie du Web selon le mode classique exige la recherche d'un programme d'installation, son téléchargement, sa localisation sur le système et son exécution. Lorsque le programme d'installation est exécuté, il requiert des répertoires d'installation et invite à choisir entre plusieurs options, telles qu'une installation complète, typique ou minimale. Ce processus, long et complexe, doit être parfois repris pour chaque version du logiciel.
Les applications déployées par la voie du Web (un client HTML de messagerie électronique, un calendrier ou le logiciel d'accès à un site de vente aux enchères) sont, contrairement aux applications sus-citées, extrêmement faciles à installer et à utiliser. Le navigateur Web automatise tout le processus. L'utilisateur dispose toujours de la dernière version de l'application sans avoir à passer par des étapes complexes de téléchargement, d'installation ou de configuration.
Les RDA confère les mêmes avantages aux applications complètes qu'à celles fondées sur le langage HTML. Les RDA sont des solutions de déploiement d'applications à partir du Web. L'utilisation d'une application complète plutôt qu'un client HTML peut apporter de nombreux avantages :
* interface utilisateur hautement interactive, comparable à celle des applications traditionnelles, comme les logiciels de traitement de texte ou les tableurs.
* exigences réduites en matière de bande passante. Une application bien conçue ne communique pas systématiquement avec le serveur Web chaque fois que l'utilisateur clique sur un bouton : elle met en cache l'information téléchargée. Elle améliore donc l'interactivité avec une connexion à faible débit.
* possibilité d'utilisation hors ligne.
Le téléchargement initial de l'application demeure toutefois un passage obligé. Une application HTML a donc un coût initial d'activation. Généralement, une page Web s'affiche en quelques secondes. Le téléchargement d'une application fondée sur la technologie RDA n'exige généralement que quelques minutes avec une connexion modem classique. Les Technologies mettent en cache tous les fichiers téléchargés sur l'ordinateur local. Ainsi, bien que le coût d'activation initial des applications soit supérieur à celui des pages HTML, cette différence disparaît par la suite. En effet, les ressources requises étant alors disponibles localement, les lancements suivants sont presque instantanés.
À chaque lancement, Le client RDA détermine si une nouvelle version de l'application est disponible sur le serveur Web, et le cas échéant, la télécharge automatiquement pour l'exécuter. Les applications sont ainsi automatiquement mises à jour.

## Principe de fonctionnement d'un RDA

Il est possible de lancer une application de trois manières différentes :
* À partir d'un navigateur Web, en cliquant sur un lien.
* À partir du gestionnaire d'applications intégré (Java Web Start de Sun) , qui assure le suivi des applications récemment utilisées et permet d'accéder rapidement à celles-ci.
* À partir d'icônes placées sur le bureau ou du menu Démarrer.
Quel que soit le mode de lancement utilisé, le gestionnaire d'application RDA se connecte toujours au serveur Web pour déterminer si une nouvelle version de l'application est disponible.

### Lancement à partir d'un navigateur Web

Le gestionnaire est lancé à l'aide d'un simple clic de souris dans un navigateur Web. Le gestionnaire télécharge, met en cache et exécute l'application choisie. Un deuxième lancement d'une application est beaucoup plus rapide que le premier. Dans ce cas, l'application est en effet disponible localement et ne doit plus être téléchargée.
La plupart des applications RDA se téléchargent et s'exécutent sans intervention de l'utilisateur. Ces applications tournent dans un environnement réservé, d'où elles ne peuvent accéder ni au disque local, ni au réseau.
Certaines applications RDA exigent des privilèges supplémentaires, pour l'accès à des périphériques matériel (webcam, disque dur, etc.) Une boîte de dialogue de sécurité indiquera l'origine de chacune de ces applications, telle que déterminée par sa signature numérique. L'application ne s'exécute que si on décide de faire confiance à son fournisseur.
Les liens qui lancent les applications sont en fait des liens HTML standard. Cependant, plutôt que de pointer vers une autre page Web, ils donnent accès à un fichier spécial de configuration propre à chaque technologie RDA. Le navigateur Web identifie l'extension ou le type MIME du fichier, et détermine à quel gestionnaire de RDA il est associé. Il lance alors le gestionnaire qui télécharge, met en cache puis exécute l'application selon les instructions du fichier.

### Lancement à partir du gestionnaire d'applications intégré

Le gestionnaire d'applications permet de maintenir et lancer rapidement et facilement des applications préalablement installées. Ces gestionnaires sont l'équivalent web du système de gestion des logiciels propre à chaque système d'exploitation. Le gestionnaire d'applications permet ainsi de gérer les applications RDA installées et les paramètres propres aux RDA (machine virtuelle, proxy, sécurité, état)
Pour lancer une application à partir du gestionnaire d'applications, on double-clique sur l'icône correspondante ou on clique sur le bouton de lancement.
Le gestionnaire d'applications est lancé lorsqu'on clique sur l'icône sur le bureau, à partir d'un menu ou à partir d'une fenêtre en mode ligne de commande, ou encore à partir d'une page web.

## Technologie RDA

Sun a été la première société à mettre en place la technologie RDA, google proposant un système de gestion/sérialisation de ses applications basées sur GWT différent de celui installé par java .
* Adobe propose la technologie Adobe Integrated Runtime basé sur Adobe Flash
* Microsoft propose la technologie ClickOnce basé sur Microsoft Silverlight
* Sun propose la technologie Java Web Start basé sur Applet Java