Les avantages et inconvénients du client riche

Tout savoir sur les avantages et inconvénients du client riche
Jérôme POUSSINEAUMis à jour le 1 Janv 2013
silverlight-vs-flex.jpg

1. Un peu dhistoire

1.1 Les mainframes

Dans les années 80, dans linformatique de gestion lensemble des applications était localisé sur un mainframe. Chaque utilisateur avait alors accès à des écrans de saisie calculés par le mainframe et affiché à lutilisateur à travers un terminal passif. Celui-ci ne couvre que linteraction minimale avec lutilisateur (affichage de lécran et récupération des instructions clavier et souris). De nombreuses applications dans le monde de la banque et de lassurance mais également dans dautres secteurs sont toujours maintenues sur ces mainframes (dans le monde on estime que 60% des applications bancaires sont développées en COBOL).

1.2 Le client lourd

A lépoque du client serveur, les plateformes de programmation implémentant le principe du client lourd ont été très rapidement adoptées par les entreprises. Ainsi le C++, le VB et plus tard le C# ou bien côté JavaLangage de développement très populaire ! le Swing ont permis de développer facilement grâce aux studios de développement intégrés (IDEEnvironnement de développement permettant de faciliter le développement d'applications. : Integrated Development Environment) et à leur éditeur graphique intégré des applications offrant de nombreux avantages :

  • Ergonomie : étant exécutée sur le poste client le développeur a accès à lensemble des fonctionnalités de lOS ainsi que toutes les ressources et évènements matériels.
  • Performance : pour le C++ par exemple, lapplication étant compilée pour génération dun code assembleur adapté à larchitecture processeur (x86 par exemple) les instructions sont optimisées. Ceci nest plus vrai sur les technologies client lourd actuelles comme le Java Swing ou le C# en client lourd où le principe de machine virtuelle a fait son apparition.
  • Répartition : en mode client serveur, le code daffichage côté IHM et de gestion de linteraction utilisateur est exécuté au niveau du poste client ce qui offre lavantage de solliciter les ressources serveurs uniquement pour la restitution des données et/ou traitements centralisés.
  • Interconnecté : ayant accès aux ressources matérielles les solutions de type client lourd permettent le pilotage et/ou la réception dinformations de périphériques matériels connectés au poste client. Ces périphériques peuvent être des produits grands publics comme une douchette à code barre ou bien un scanner mais également des périphériques conçu sur mesure comme une chaîne de production, un réseau ferroviaire ou bien un ensemble pyrotechnique. Ces besoins sont dailleurs toujours couverts par des solutions de type client lourd avec si besoin des systèmes dexploitation temps réel (on parle alors selon les cas dinformatique industrielle et non dinformatique de gestion).
  • Connectivité : même lorsquelle est implémentée en architecture client / serveur, une solution de type client lourd peut facilement disposer dun mécanisme de base temporaire permettant de fonctionné en mode déconnecter. A linverse, ce mode de fonctionnement est très difficile à mettre en œuvre sur une architecture client léger.

Malgré ces nombreux avantages les solutions client lourd ont perdues progressivement de leur intérêt au yeux des décideurs informatiques dès le début des années 2000 en raison de quelques inconvénients complexifiant la phase de maintenance :

  • Déploiement et montée de version : étant installée sur chacun des postes clients, le déploiement dune solution de type client lourd est un projet en soi qui peut devenir très complexe lorsque lon fait face à un parc informatique hétérogène. Par la suite, à chaque montée de version il est nécessaire de ré-déployer la nouvelle version sur chacun des postes.
  • Compatibilité : étant compilé pour une architecture processeur et faisant appel à des fonctionnalités au niveau OS, une solution de type client lourd offre une compatibilité restreinte à une configuration matérielle et un système dexploitation donné. Cette problématique a été résolu notamment avec Java et C# par la mise en place de la notion de machine virtuelle. Le code Java par exemple nest pas compilé en assembleur mais dans un code intermédiaire (bytecode) compréhensible par la machine virtuelle Java installée sur le poste et qui va alors faire la traduction en code assembleur : ce principe permet la compatibilité du code à tout système dexploitation et processeur permettant linstallation dune machine virtuelle Java. Cependant ce nouveau mode de fonctionne limite les performances des applications compilée en bytecode de part la mise en place dune couche intermédiaire, de plus il devient très difficile de dialoguer avec des périphériques extérieurs car la machine virtuelle Java na quun nombre très limité dinteractions possible avec lOS et ses périphériques.

1.3 Le client léger

Ainsi pour faciliter le déploiement et la maintenance des applications de gestion, la majorité des entreprises se sont tournée vers les architectures client léger. Un client léger est une application dont les écrans sont calculés côté serveur puis transmis au poste client à travers un navigateur Web. Ce mode de fonctionnement permet de résoudre les inconvénients vus précédement sur les clients lourds. En effet, le passage par un navigateur Web évite la phase de déploiement de lapplication sur lensemble des postes clients. Ainsi lors des montées de version seul lapplicatif côté serveur a besoin dêtre mise à jour. Quant à la compatibilité, une application en client léger est compatible avec tous les OS et processeurs permettant l’exécution dun navigateur Web supportant lapplication.

Ces nouvelles architectures applicatives (PHPLangage de programmation s’exécutant côté serveur et permettant la création dynamique de pages web ou d'APIs., Java J2E et Microsoft ASP et ASP .NET) ont également des inconvénients majeurs :

  • Adhérence au navigateur Web : bien quétant basé sur des standards comme lHTML, le CSS ou bien le JavaScript le code envoyé au navigateur Web peut entrainer des différences de fonctionnement selon le navigateur (IE, Chrome, Mozilla). Il est alors nécessaire pour les développeurs de sassurer de la compatibilité de leur application avec les versions majeures des navigateurs disponibles sur le marché.
  • Limites ergonomiques : pour des raisons de sécurité, les technologies Web nont quun accès très limité aux ressources système du poste de travail.
  • Performances : le serveur se chargeant de calculer lensemble des pages pour tous les utilisateurs, les performances de lapplication peuvent être très dégradé lorsquun nombre important dutilisateurs sont connectés. Nous recommandons pour ces architectures des tests de performances systématiques.

Cest ainsi quest né le besoin dune solution alliant les avantages du client lourd avec ceux du client léger.

2. Les solutions de type client riche

2.1 Les avantages des solutions de type client riche

Les Frameworks de développement implémentant le principe du client riche ou RIA (Rich Internet ApplicationC'est un programme conçu pour effectuer une ou plusieurs tâches. Réaliser des applications, c'est notre cœur de métier chez AXOPEN !) offrent les avantages ergonomiques des solutions client lourd avec les avantages de déploiement des solutions client léger. Nous pouvons citer principalement Adobe Flex et Microsoft Silverlight. En effet, lensemble du code daffichage est exécuté sur le poste client avec une expérience utilisateur proche du client lourd, ceci est rendu possible par lutilisation dune machine virtuelle embarqué dans le navigateur Web. Ces technologies ne font donc pas appel aux technologies classiques du Web (HTMLHTML (HyperText Markup Language) est un langage permettant de décrire le découpage d'une page web., JavaScriptLangage de scripting orienté objet et CSSFeuilles de style qui permettent de mettre en forme des pages web.). Lapplication peut ainsi être déployée à travers le Web à linstar des clients léger. De plus le fait d’exécuter la couche « Présentation » du modèle 3 tiers sur les postes client permet une grande distribution de l’application et ainsi limiter la consommation de ressources au niveau du serveur d’applications mais aussi la limitation des flux réseaux aux données métiers (pour beaucoup de technologies client léger les échanges avec le serveur contiennent lensemble du code HTML daffichage de la page).

Ainsi nous pouvons résumer les avantages du client riche :

  • Ergonomie : plus grande expérience utilisateur permise par lutilisation dune machine virtuelle et de composants graphique (VS HTML).
  • Performance : distributivité et limitation du flux réseau.
  • Déploiement : déploiement à travers le navigateur Web.
  • Compatibilité : lapplication nest plus adhérente à une plateforme ou à une version de navigateur mais plutôt à une version de la machine virtuelle (Flash par exemple pour Flex).

2.2 Les limites de ces technologies

Après ce tableau idyllique, on se demande alors pourquoi un si faible taux dadoption du client riche est constaté dans les entreprises.

Pour ma part, je lexplique par plusieurs raisons concomitantes :

  • Les Frameworks Web ont fait de grands progrès dans leur offre de composants. Par exemple, avec le Framework Java J2E JSF, de nombreuses librairies de composants sont disponibles. Ces librairies offrent une expérience utilisateur de plus en plus proche du client lourd.
  • Les technologies client riche disponibles sur le marché rompent avec les canons de développement des technologies client lourd ou client léger. Ceci est dû principalement au caractère graphique de ces technologies. Ainsi il nest pas évident pour un développeur Web ou client lourd de développer en client riche.
  • Enfin ces solutions étant propriétaires, elles sont plus facilement délaissée par les entreprises au profil des solutions Open Source foisonnantes dans le monde du client léger.

Nous pouvons également rappeler les inconvénients principaux des solutions client riche :

  • Indépendance : ces solutions étant propriétaires la maintenance et les évolutions des machines virtuelles correspondantes dépendent des Road Map des éditeurs concernées. Il est possible par exemple, quun jour Microsoft décide dabandonner la plateforme Silverlight.
  • Licences : ces solutions étant propriétaires il est nécessaire dacquérir des licences à minima pour le studio de développement.
  • Langages de développement : ces solutions ayant été pensée sur la base de solution graphique (le Flash pour Flex) les langages de développement varient beaucoup des langages pour client lourd ou léger.