Mozilla Firefox est un concentré de nouvelles technologies, il intègre notamment la technologie des interfaces XUL (XML User Language). XUL est un langage de description de clients riches et il...

Mozilla Firefox est un concentré de nouvelles technologies, il intègre notamment la technologie des interfaces XUL (XML User Language). XUL est un langage de description de clients riches et il est utilisé pour tous les logiciels de la suite Mozilla : Firefox, Thunderbird, Sunbird...

Pour comprendre les concepts et l'origine de XUL et des clients riches il faut comprendre les deux modèles d'interfaces clients utilisées jusqu'à présent. Le client lourd (applications "Clients Serveurs") est une interface déployée sur le poste utilisateur. Elle permet le 'drag&drop', le multi fenêtrage, le WYSIWYG et surtout une grande ergonomie. Mais ces interfaces souvent très lourdes posent des problèmes de maintenance, de déploiement et de mise à jour.

Le modèle du client Web est né avec l'Internet en 1995. Grâce à un client (le navigateur) et un protocole (HTTP) universel, il a résolu une grande partie des problèmes des clients lourds. Néanmoins ce modèle a aussi ses limites : son ergonomie est pauvre (pas de drag&drop...), la logique du client est faite pour la navigation, il ne sait pas gérer le mode déconnecté, il ne sait pas piloter des périphériques...

Le client riche fusionne ces deux architectures en ne retenant que le meilleur des deux. Son déploiement s'effectue grâce à une simple URL, au travers de mécanismes comme Java WebStart par exemple. Puis l'exécution du client s'effectue sur une plateforme applicative comme le Java Runtime Environment ou Mozilla ... Ce socle contient tous les composants nécessaires au lancement de l'application (sécurité...), c'est donc une sorte de navigateur web très évolué. Les échanges entre le client et le serveur sont alors beaucoup plus légers qu'avec un client web car l'interface n'est pas transmise à chaque écran. (Gmail est un bon exemple de client riche fonctionnant avec beaucoup de javascript).

Les technologies concurrentes
Java : La technologie de client riche Java existe depuis la création du langage, les applications java peuvent s'exécuter sur toutes les plateformes et leur distribution est gérée par Java Web Start . Cependant de nombreuses réserves sont émises quand à la rapidité et l'ergonomie des interfaces Java.
Macromedia : Les interfaces Flash sont reconnues pour leur esthétisme et leur ergonomie, elles sont proches d'un client riche, néanmoins Macromédia a choisit une approche différente avec son serveur de présentation Flex, où la génération de l'interface a lieu sur le serveur. Exemple : http://www.macromedia.com/devnet/flex/example_apps.html?id=604#

Présentation : http://www.macromedia.com/fr/software/flex/productinfo/brz_overview/
Microsoft : Microsoft rattrape son retard avec .NET, mais sa technologie de déploiement client Click Once , ainsi que la nouvelle technologie d'interface en XML (XAML, livrée avec Longhorn ) n'ont pas encore été livrées.

La Technologie XUL
XUL est donc un langage basé sur XML pour décrire une interface graphique de client riche. Il possède ainsi toute une série de balises correspondant à des boutons, des listes, des menus... XUL peut reposer sur Gecko (le moteur d'affichage de Mozilla) ou sur XPFE (le framework de Mozilla, indépendant du navigateur). Pour créer des clients riches ces deux plateformes regroupent, en plus de XUL, des technologies comme XBL (création de composants spécifiques), CSS (norme de personnalisation des composants XUL), Javascript (programmation du comportement de l'interface), RDF (pour stocker les données), XPI (format d'installation), XPCOM (équivalent du standard COM de Microsoft).
Conclusion
Le lancement par Mozilla de la technologie XUL participe donc d'un mouvement plus large de migration des interfaces web vers des interfaces riches. Cette multiplication des initiatives fait apparaître le besoin d'un standard. XUL pourrait être le candidat retenu par le W3C , l'organisation naturelle pour mettre en place les standards Internet. Néanmoins Microsoft ne l'entendra pas de cette manière et compte bien sur le lancement de Longhorn pour imposer son langage XAML (eXtensible Application Markup Langage) qui sera utilisé non seulement pour décrire les applications mais aussi le système d'exploitation en lui-même.

Pour contrer cette offensive, Mozilla c'est allié avec Gnome (projet d'environnement de travail open source pour linux) pour mettre en place une plateforme (basée sur XUL) concurrente à Microsoft, qui permettra de créer non seulement des clients riches et de les distribuer, mais aussi de développer des applications de bureautique. Ce projet proposerait alors une plateforme unifiée pour les applications Web et les applications de bureau.

Ce projet est sans doute vital sur le long terme pour la survie de Mozilla. Firefox a permis à la fondation d'obtenir une avance (technologique) sur le marché des navigateurs et le code de Firefox, reconnu pour sa qualité par la communauté, sera utilisé pour sans doute au moins les 4-5 ans à venir. Mais ensuite si la fondation Mozilla veut résister à Microsoft, elle devra réussir à imposer un standard unifié et une plateforme standard pour l'écriture d'applications.

Pierre Poignant pour l'Atelier BNP Paribas

(Atelier groupe BNP Paribas - 28/01/2005)