Faut-il à tout prix s’orienter vers le client riche ?

#client riche

La notion de client riche est actuellement mise à toutes les sauces par les éditeurs afin de proposer une solution alternative au client lourd (dont on connaît les problématiques de déploiement) et au client léger (qui est limité en terme d’ergonomie). Mais que se cache exactement derrière ce concept qui fait tant de bruit actuellement ?

Les objectifs du client riche

Pour donner une définition simpliste du client riche, il s’agit d’une interface cliente qui tend à disposer des avantages du client lourd et du client léger. L’idée globale du concept est de proposer une ergonomie semblable à ce qui est possible en client lourd tout en conservant une maîtrise simplifiée du déploiement et de la maintenance par la centralisation des applicatifs métiers.

Le principal objectif est de proposer aux utilisateurs des interfaces beaucoup plus élaborées et plus conviviales que ce qui est actuellement rendu possible par l’intermédiaire de pages web classiques. L’apport de certaines améliorations graphiques est en effet fondamental pour faire avancer l’ergonomie des pages web qui avouons-le reste assez basique.

En plus de proposer une amélioration au niveau de l’interface cliente, le principe de fonctionnement des clients riches se veut être plus performant en limitant au maximum le nombre d’échanges entre le client et le serveur. Par ailleurs, les principaux outils permettant le développement d’écrans de type client riche s’attachent à améliorer la productivité en terme de création des interfaces graphiques.

Les types de client riche

Une déclinaison des clients riches en deux types permet de clarifier le principe du concept qui existe sous différents modes de fonctionnement :

  • Le client riche léger (ou internet) : le navigateur sert toujours d’interface cliente pour dialoguer avec le serveur et l’installation de composants spécifiques sur le poste client n’est pas forcément nécessaire (ou du moins bien maîtrisés)
  • Le client riche lourd (ou autonome) : un client est installé sur le poste utilisateur passant par le téléchargement d’une application qui devient quasiment autonome. L’installation d’un moteur d’exécution est nécessaire mais le déploiement sur les postes utilisateurs est pris en charge par certains outils.

Le client riche lourd est plutôt adapté pour des applications de type Intranet pour lesquelles il est possible de gérer le déploiement de composants sur les postes clients alors que le client riche léger peut très bien être utilisé dans le cadre de sites Intranet et Internet.

Les technologies pour le client riche

En fonction du type de client riche, plusieurs technologies sont actuellement disponibles.

Dans la catégorie des clients riches légers, voici les différentes technologies :

  • Ajax (Asynchroneous JavaScript and XML) est une technologie basée sur du Javascript réalisant des échanges XML avec le serveur permettant de réaliser des traitements assez impressionnants du côté client. De nombreux framework font leur apparition pour encapsuler la complexité de développement et de maintenance du langage Javascript. Cette solution possède l’énorme avantage de ne nécessiter aucune installation spécifique sur le poste client (si ce n’est que le client doit accepter l’utilisation de Javascript) mais le volume des composants Javascript peut parfois atteindre des valeurs importantes. Il faut par ailleurs bien prêter attention au fait que le langage Javascript diffère légèrement selon les navigateurs.
  • XUL (XML-based User interface Language) est une technologie issue du projet Mozilla. Ce langage offre une bibliothèque d’objets permettant de concevoir une interface graphique au travers d’un langage descriptif XML. Le code évènementiel repose sur du développement Javascript manipulant les composants de la fenêtre sous forme d’arborescence DOM. Pour limiter les requêtes côté serveur, XUL utilise les fondamentaux d’AJAX. Les développeurs Web ne seront donc pas vraiment dépaysés. Une application XUL s’exécute soit en tant qu’extension du navigateur Firefox (déploiement très simple), soit de manière autonome grâce au moteur XulRunner qui nécessite une installation sur le poste client. Si l’ergonomie offerte est satisfaisante, XUL manque d’outils de développement limitant ainsi la productivité.
  • Flash et Flex : la solution technique Flash populaire pour la mise en place d’animations graphiques a évolué techniquement afin d’ouvrir plus largement son cadre d’utilisation pour répondre aux besoins d’entreprise. Son utilisation nécessite l’installation du plug-in de Macromédia qui est quasiment devenu un standard sur le poste client.
  • ActiveX : cette solution technique est assez ancienne et reste adaptée uniquement pour des clients de type Windows. Ces composants représentent une solution intéressante mais reste peu sécurisée et semble être dépassée.
  • Les applets Java : là encore, le concept n’est pas nouveau et semble dépassé. Malgré la force du langage Java à être multi plateforme, la gestion de versions de JVM sur le poste client reste un problème de taille.

Dans la catégorie des clients riches lourds, la bataille des grands éditeurs bat son plein et chacun propose sa solution technique. Voici les principaux logiciels :

  • Eclipse RCP (Rich Client Platform) : sur une initiative d’IBM, le socle de développement Eclipse dispose, en plus de sa capacité de développement, de mécanismes de déploiement et d’installation d’applications clients riches.
  • Workplace Client Technology Rich Edition d’IBM : la solution est basée sur la plateforme Eclipse RCP mais dispose de modules graphiques supplémentaires et s’intègre avec la gamme de produits IBM Workplace.
  • Windows Smart Client de Microsoft : la plateforme .Net repose sur l’outil de développement Visual Studio .Net permettant l’élaboration et le déploiement de clients riches. Les applications reposent sur le framework .Net et sont exécutables à partir de Windows Smart Client.
  • Swing, NetBeans et Java Web Start de Sun : la plateforme NetBeans 5.0 propose un éditeur de développement puissant pour l’élaboration de composants graphiques en intégrant le projet Matisse. Le déploiement des applications de type client riche passe par l’utilisation de Java Web Start.

Par ailleurs, de nombreuses autres solutions logicielles font leur apparition dans le domaine pour faciliter la mise en œuvre d’applications de type client riche (sur des technologies propriétaires ou présentées précédemment), nous pouvons citer pour exemple les solutions JxT WorkBench de NBIS ou encore xWidglets de Dpi Software qui disposent de solutions techniques intéressantes proposant des IDE alléchants au niveau productivité.

Conclusion

Le client riche actuel n’est au final pas une solution miracle permettant de réaliser des interfaces élaborées sans avoir à installer de composants sur le poste client. En effet, que ce soit par l’intermédiaire d’un client riche « lourd » ou « léger », il faut obligatoirement passer par une phase de téléchargement sur le poste client de composants plus ou moins lourds. Cependant, nous nous rapprochons doucement d’une solution acceptable liant les avantages du client léger et du client lourd.

Mais attention, le marché est actuellement en pleine mutation de part l’éclosion du concept de client riche et son succès n’est pour le moment que sur le papier, les solutions techniques proposées actuellement sont encore en phase de rodage et sont peu matures. Il est difficile aujourd’hui de s’orienter vers un choix technique facilement maintenable et pérenne.

Jean-Sébastien MERCY & Jean-François VALLET