Les applications clients serveur ont connu un grand essor dans les années 90 et nombre de sites possèdent des patrimoines importants dans des technologies aujourd’hui obsolètes.
L’usage de ces AGL a été tiré par l’agilité et la richesse des IHM, à l’époque, extrêmement novatrices comparées aux écrans en mode caractère.
Les IDE, permettant de maquetter facilement les écrans, ont été souvent utilisés comme outils de spécification sur des applications périphériques réalisées à la demande des utilisateurs. Au fur et à mesure de l’évolution des besoins, ces applications ont grossi de manière incrémentale jusqu’à devenir critiques. La plupart du temps, cette évolution s’est opérée sans remise en cause du socle applicatif.
Les applications Client / Serveur s’appuient sur des langages évènementiels et souvent permissifs ce qui implique une explosion du nombre de cas de déclenchement d’un traitement. La programmation évènementielle n’ayant été que tardivement normée, on observe une duplication des traitements alors qu’il aurait fallu fonctionnaliser au maximum pour optimiser et sécuriser les évolutions et la maintenance.
L’accès aux données est également souvent géré de manière dispersée avec des requêtes saupoudrées dans tout le code, rendant délicate toute modification du modèle de données.
Aujourd’hui, les systèmes Client / Serveur préoccupent les DSI en raison des nombreuses contraintes techniques et limitations associées que l’on peut rappeler ici :
- Les L4G Client / Serveur ne sont plus ou ne seront plus maintenus prochainement
- Le support du 64 bits est mal géré par les compilateurs
- Les langages sont procéduraux ou au mieux orientés
- L’architecture native est orientée traitement alors que les contraintes d’urbanisation nécessitent une architecture orientée services
- Il n’y a pas d’ouverture Web native
- La communication avec les applications sur terminaux mobiles est difficile
- L’interopérabilité avec les nouvelles architectures n’est pas assurée, rendant l’ouverture du SI sur les Clients et Partenaires difficile
- Problématique de déploiement et d’accès distants aux applications
- La fiabilité et coûts de maintenance difficiles à maîtriser
- Les compétences se raréfient, notamment aspirées par les nouvelles architectures d’où découlent des pertes de compétences technique et fonctionnelle
- L’explosion de la volumétrie des données gérées génère parfois des problèmes de performances