Dans les années 80, dans l’informatique de gestion l’ensemble des applications était localisé sur un mainframe. Chaque utilisateur avait alors accès à des écrans de saisie calculés par le mainframe et affiché à l’utilisateur à travers un terminal passif. Celui-ci ne couvre que l’interaction minimale avec l’utilisateur (affichage de l’écran et récupération des instructions clavier et souris). De nombreuses applications dans le monde de la banque et de l’assurance mais également dans d’autres secteurs sont toujours maintenues sur ces mainframes (dans le monde on estime que 60% des applications bancaires sont développées en COBOL).
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 :
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 :
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 l’application sur l’ensemble des postes clients. Ainsi lors des montées de version seul l’applicatif 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 d’un navigateur Web supportant l’application.
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 :
C’est ainsi qu’est né le besoin d’une solution alliant les avantages du client lourd avec ceux du client léger.
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, l’ensemble du code d’affichage est exécuté sur le poste client avec une expérience utilisateur proche du client lourd, ceci est rendu possible par l’utilisation d’une 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.). L’application peut ainsi être déployée à travers le Web à l’instar 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 l’ensemble du code HTML d’affichage de la page).
Ainsi nous pouvons résumer les avantages du client riche :
Après ce tableau idyllique, on se demande alors pourquoi un si faible taux d’adoption du client riche est constaté dans les entreprises.
Pour ma part, je l’explique par plusieurs raisons concomitantes :
Nous pouvons également rappeler les inconvénients principaux des solutions client riche :
Implémentation de Retrofit dans un projet Android avec Coroutine
Avec Jboss AS 7 il est difficile de trouver un plugin simple permettant à la fois de remonter les informations de monitoring et des graphiques de performances.
Mettre à jour sa stack applicative, c'est assurer la stabilité et la sécurité de ses applications. Il est donc important de faire le suivi des mises à jour pour ne pas se retrouver bloqué à cause de l'accumulation de la dette technique. Sur Symfony, les versions majeures (X.0.0) sont programmées tous les 2 ans, et les versions mineures (1.X.0) sont programmées tous les 6 mois, en mai et en novembre. Chaque version arrive avec son lot de nouveautés qu'il est important de prendre en compte. Les dates de mises à jour étant connues, l'intégration à des Roadmap est alors simplifiée. Mais à quoi faut-il penser lors de ces migrations ?