La modernisation COBOL fait référence au processus de mise à jour ou de transformation des applications COBOL, généralement considérées comme des systèmes hérités, mais vitales pour les opérations d’entreprise. Le processus de modernisation des applications inclut l’adoption des dernières pratiques de développement logiciel, le refactoring du code COBOL vers des langages de programmation plus modernes ou la migration vers de nouvelles plateformes.
La modernisation des systèmes COBOL peut préserver la logique et la fonctionnalité métier essentielles tout en améliorant la maintenabilité, en améliorant l’interopérabilité avec l’environnement hybride complexe actuel, en augmentant l’évolutivité et en réduisant les coûts opérationnels.
La modernisation de COBOL implique bien plus que la simple traduction du code COBOL en un langage de programmation plus récent. Le système mainframe ou la plateforme distribuée où ce code réside et s’exécute, ainsi que la pile avec laquelle il interagit, doivent être soigneusement examinés. Il s’agit d’un travail d’ingénierie au niveau du système qui intègre non seulement la traduction du code, mais aussi l’intégration d’applications, la refonte de l’architecture des données, le remplacement d’exécution, l’intégrité et la sécurité du traitement des transactions, entre autres facteurs.
Le COBOL (Common Business Oriented Language) est l’un des langages les plus utilisés pour la programmation des mainframes. Il est conçu spécifiquement pour répondre aux besoins métier de traitement des données.
La première version de COBOL a été lancée en 1960. Des décennies plus tard, il représente encore environ 250 milliards de lignes de code utilisées en production dans des secteurs aussi variés que les services financiers, les affaires gouvernementales, la logistique, la fabrication et la vente au détail.1 Et comme les systèmes mainframe continuent d’être des piliers pour les entreprises du monde entier, le COBOL demeure pertinent.
Les applications basées sur le COBOL sont réputées pour leurs capacités exceptionnelles de gestion des données et de traitement des fichiers, ainsi que pour leurs performances fiables et stables. Cependant, les entreprises peuvent envisager des applications modernisées pour aider à accroître l’interopérabilité entre systèmes et sources de données, maintenir des normes réglementaires ou exigences de conformité, et assurer le succès à long terme avec les ressources existantes. Géré avec une vision stratégique, le processus de modernisation peut offrir l’opportunité de revoir le code et les systèmes, de justifier le code existant, de valider les exigences et de déterminer des workflows efficaces pour l’avenir.
Conformité et sécurité
Interopérabilité
Maintenabilité
Le code hérité de COBOL pourrait ne pas respecter les règles et politiques de protection des données en vigueur, ou ne pas être régulièrement mis à jour au regard des correctifs de sécurité les plus récents. Cela constitue une vulnérabilité face aux cyberattaques et aux violations de données. En tant que systèmes plus anciens, ces systèmes peuvent ne pas être en mesure de s’adapter aux exigences sophistiquées liées à l’évolution constante des réglementations.
Intégrer des applications COBOL désuètes à une infrastructure moderne peut s’avérer complexe. Ce déficit d’interopérabilité peut ralentir l’innovation et la croissance des entreprises, ce qui peut les amener à prendre du retard par rapport à leurs concurrents.
Les bases de code COBOL peuvent être trop détaillées et difficiles à gérer, avec une documentation du code insuffisante ou obsolète. Ses composants étroitement liés compliquent le débogage, tandis que l’ajout de nouvelles fonctionnalités ou la mise à niveau des fonctionnalités existantes peuvent s’avérer difficiles. En tant que tels, ils entravent souvent l’efficacité et la productivité des équipes qui travaillent avec ces systèmes et en assurent la maintenance.
Restez au fait des tendances les plus étonnantes du secteur dans le domaine de l’IA, de l’automatisation, des données et bien d’autres avec la newsletter Think. Consultez la Déclaration de confidentialité d’IBM.
Lorsqu’elles se lancent dans un projet de modernisation de COBOL, les entreprises peuvent emprunter une ou plusieurs des voies suivantes :
Encapsulation
Application des pratiques DevOps
Refactorisation de code
Cette approche de modernisation transforme les programmes COBOL monolithiques en microservices modulaires. Les fonctions métier sont présentées sous forme de microservices puis exposées sous forme d’interfaces de programmation d’applications (API).
L’encapsulation permet une modernisation rapide puisqu’elle ne nécessite pas de modifier le système COBOL sous-jacent. Ainsi, elle réduit les perturbations tout en s’intégrant aux architectures cloud natives et aux workflows.
Les entreprises peuvent mettre en place un pipeline d’intégration continue/de diffusion continue (CI/CD) pour les programmes COBOL. Le pipeline CI/CD comprend des tests et des déploiements automatisés, ainsi que des référentiels centraux gérés par des systèmes de contrôle de version. Cela fonctionne également de concert avec l’encapsulation, en déployant des microservice dans des environnements conteneurisés.
Ce workflow DevOps simplifie le déploiement et la livraison des applications COBOL. Les entreprises peuvent raccourcir les cycles de production et accélérer la mise à disposition de nouvelles fonctionnalités aux clients.
La migration est une autre stratégie de modernisation des systèmes COBOL hérités. Il consiste généralement à transférer certaines charges de travail mainframe vers des plateformes de cloud computing telles qu’Amazon, AWS ou Microsoft Azure.
Ce processus de modernisation du mainframe nécessite généralement quelques modifications, telles que la modification de l’accès aux données, l’installation de middlewares ou la recompilation d’applications COBOL pour les exécuter dans leurs nouveaux environnements. Les opérateurs peuvent également proposer des services de modernisation pour soutenir le réhébergement ou le replatforming des charges de travail et fournir des outils pour la performance en temps réel et la surveillance de la sécurité.
Le refactoring du code restructure les programmes COBOL au niveau du code source. Il vise à réduire la dette technique qui accompagne souvent le code hérité, qui doit être « remboursé » au fil du temps via une maintenance continue. Les entreprises peuvent choisir d’optimiser le code COBOL existant ou de le transformer en un langage de codage plus récent comme C#, Java ou .NET.
L’optimisation commence par une analyse de code et un plan détaillé pour adresse les inefficacités, réduire les dépendances et éliminer les doublons. Le plan peut inclure l’uniformisation des structures de données définies dans les copybooks, le développement d’une conception plus modulaire et la simplification d’une logique métier complexe.
La transformation de bases de code COBOL très étendues vers un autre langage de programmation peut prendre du temps. Au lieu de procéder à une réécriture manuelle complète, les équipes de développement peuvent recourir à l’automatisation, notamment à des outils de conversion de code ou de traduction de code alimentés par l’IA, pour gagner du temps et minimiser les efforts de modernisation requis.
Les projets de modernisation sont généralement gigantesques et vertigineux. Voici quelques conseils pour mieux les appréhender :
Évaluer et planifier
Commencer petit
Évoluer progressivement
Tester et documenter
L’évaluation des bases de code COBOL est une première étape clé pour vérifier l’état du code et sa complexité, identifier les domaines où la modernisation peut avoir un impact significatif et déterminer la meilleure approche. Les équipes doivent ensuite élaborer un plan qui détaille le processus de modernisation, y compris la portée et les délais.
Commencer petit aide à gérer les risques liés aux efforts de modernisation. Par exemple, les entreprises peuvent dans un premier temps se lancer dans des tâches simples d’optimisation ou de refactoring, ou commencer à encapsuler ou à migrer des fonctions métier mineures. Cela permet de maintenir en fonctionnement les composant critiques tout en minimisant les temps d’arrêt et en limitant les conséquences des éventuels problèmes.
Les entreprises peuvent ensuite passer à d’autres modules stratégiques des systèmes COBOL, en appliquant les leçons apprises lors des itérations précédentes. Cela leur permet de moderniser les applications héritées à un rythme régulier et durable et de bénéficier de l’expérience nécessaire pour gérer des transformations plus complexes.
Des tests approfondis doivent être effectués pour valider les fonctionnalités et s’assurer que le système modernisé fonctionne toujours comme prévu. De plus, tout changement doit être documenté, qu’il s’agisse de nouveau code ou de configurations, de définitions d’API ou de workflows DevOps.
L’intelligence artificielle peut compléter le processus de modernisation de COBOL. Les outils d’IA générative en particulier sont pilotés par des grands modèles de langage (LLM) qui ont été entraînés ou affinés sur des langages de programmation tels que le COBOL, ce qui leur permet d’analyser le code mainframe.
Pour autant, l’IA ne supprime pas le recours aux systèmes mainframe, bien au contraire. Si l’IA accélère la modernisation du COBOL et comble les lacunes de compétences à mesure que les développeurs COBOL prennent leur retraite, les mainframes restent essentiels en tant que plateformes au titre de leur fiabilité, de leur évolutivité et de leur résilience transactionnelle, et ce en dépit des améliorations apportées par l’IA. Les choix stratégiques effectués lors de l’approche de la modernisation peuvent déterminer la fluidité du processus et la réussite des programmes.
Voici quelques tâches de modernisation que l’IA peut accomplir :
Compréhension et explication du code
Génération de code et refactoring
Conversion et optimisation du code
Génération de tests et documentation du code
La plateforme de compréhension des applications Swimm, par exemple, combine analyse statique avec des LLM pour extraire les règles métier et identifier les dépendances et flux variables pour chaque élément dans les écrans utilisateurs COBOL. Pendant ce temps, IBM® watsonx Code Assistant for Z fait appel à des agents IA pour comprendre et créer des explications en langage naturel du code mainframe et de la documentation.
Certaines applications basées sur l’IA disposent d’interfaces de chatbot pour générer du nouveau code basé sur des invites en langage naturel. D’autres se fondent dans les IDEs (environnements de développement intégrés) pour produire des suggestions de code intégrées en temps réel. IBM watsonx Code Assistant for Z va encore plus loin en restructurant automatiquement les applications COBOL en services métier modulaires.
Les systèmes multi-agents, comme celui qui a été développé par Persistent Systems, utilisent plusieurs agents IA pour transformer le code COBOL en un langage de programmation moderne comme Java. Un agent codeur effectue la traduction, tandis qu’un agent réviseur vérifie si le code converti contient des erreurs ou s’il y a des opportunités d’optimisation et d’amélioration.
Les outils alimentés par l’IA peuvent générer automatiquement des tests pour comparer l’équivalence sémantique du nouveau code avec le code COBOL original. Ils peuvent également générer des commentaires en ligne pour documenter ce que font certains fragments de code.
Comme pour toute application d’IA, les équipes doivent toujours faire preuve de prudence, vérifier l’exactitude des résultats et tester tout code généré ou les correctifs ou modifications suggérés.
IBM zSystems est une gamme de matériel z/Architecture moderne qui exécute les logiciels z/OS, Linux, z/VSE, z/TPF, z/VM et zSystems.
Conçues pour gérer des workloads critiques tout en assurant la sécurité, la fiabilité et le contrôle de l’ensemble de votre infrastructure informatique.
Accélérez la transformation numérique en modernisant vos applications mainframe avec IBM.
1. Special Report: COBOL Survey Results Prove Pervasiveness, Value and a Bright Future, TechChannel, 11 octobre 2021