IBM watsonx Code Assistant (WCA) for Z est une solution de modernisation des applications mainframe assistée par l’IA, conçue pour faciliter la modernisation incrémentale et la restructuration des services COBOL, ainsi que la transformation sélective vers un code Java de qualité, optimisé pour IBM Z. Grâce à watsonx Code Assistant for Z, les clients pourront tirer parti de l’IA générative et des outils automatisés pour accélérer la modernisation de leurs applications mainframe, tout en relevant les défis clés liés aux compétences des développeurs et à la création de valeur.
IBM Watsonx Code Assistant for Z comporte les composants majeurs suivants (illustrés dans le schéma ci-dessus) :
IBM Application Discovery and Delivery Intelligence (ADDI) analyse le code source des applications pour découvrir et comprendre les relations entre les programmes au sein d’un système d’application. ADDI permet également de visualiser ces dépendances et de créer des rapports à ce sujet, ainsi que de faire des recherches dans le code base.
La base de métadonnées contient les résultats du processus de compréhension et de remaniement COBOL effectué par ADDI. Les données de la base de métadonnées sont utilisées par IBM watsonx Code Assistant pour permettre la refactoring de grands systèmes logiciels composés de plusieurs programmes COBOL, de copybooks, etc.
Un outil de gestion du contrôle de version COBOL (SCM) fournit le contrôle de source pour le code COBOL à convertir. Le référentiel SCM est également associé à un projet ADDI afin que les nouveaux services COBOL puissent être analysés et que les métadonnées soient envoyées à la base de métadonnées.
Refactoring Assistant est un « pont » entre ADDI et le service IBM watsonx Code Assistant. Refactoring Assistant se connecte à ADDI et extrait les services métier COBOL identifiés pour le refactoring et la conversion en code Java.
Le service IBM watsonx Code Assistant (WCA for Z) est une application IBM watsonx.ai qui reçoit des requêtes de type prompt de Microsoft Visual Studio Code (VS Code) et effectue des correspondances avec un grand modèle de langage (LLM) destiné au codage. WCA for Z analyse les paragraphes COBOL et les classes Java, et génère des propositions de code qui suivent les bonnes pratiques.
Le grand modèles de langage (LLM) destiné au codage est un modèle de fondation d’IA générative pour la génération de code basé sur le modèle IBM Granite for Z. Il peut également être entraîné pour inclure du code COBOL supplémentaire, généré par des fournisseurs ou par des utilisateurs professionnels.
Les programmes COBOL sont des programmes autonomes et/ou des composants d’un système logiciel plus vaste, qui peuvent être restructurés en services Java.
Le code Java est un code généré par WCA for Z qui reproduit le comportement du programme COBOL d’entrée.
Le schéma ci-dessus illustre la manière dont les composants de WCA for Z fonctionnent ensemble pour permettre aux développeurs de convertir du code source COBOL en Java.
L’architecte utilise les fonctions ADDI pour comprendre le code COBOL. Ce produit s’exécute dans une VM Windows et analyse le code source pour fournir des informations applicatives aux architectes. L’analyse du code source est stockée dans un projet auquel l’architecte peut accéder à partir d’un outil basé sur Eclipse. Cet outil permet à l’architecte de réaliser différentes tâches, notamment de visualiser les relations entre les différents programmes, de générer des rapports et de rechercher du code. L’architecte peut utiliser cet outil pour commencer à moderniser une application COBOL monolithique en identifiant les services métier à remanier, avec la possibilité de la convertir en Java grâce à l’IA générative.
ADDI envoie les résultats de son analyse à la base de métadonnées pour être ensuite ajoutés au jeu de données utilisé par le service IBM watsonx Code Assistant.
Le développeur COBOL utilise Refactoring Assistant pour extraire le service métier COBOL que l’architecte a identifié à partir d’une application monolithique. Refactoring Assistant est un produit basé sur des conteneurs qui s’exécute dans une VM Linux. Il dispose d’une interface utilisateur Web permettant aux développeurs de visualiser et de sélectionner le code pertinent pour créer un nouveau service COBOL qui comprend une fonction métier provenant de nombreux programmes existants. Refactoring Assistant se connecte à ADDI en toute sécurité pour accéder à l’analyse de l’application COBOL dans la base de données ADDI.
Une fois que le développeur COBOL a sélectionné tout le code, il peut exporter le nouveau programme COBOL vers son poste de travail afin de poursuivre le développement dans un environnement de développement intégré (IDE).
Les paragraphes COBOL remaniés sont stockés dans le référentiel de services et mis à la disposition des développeurs Java pour conversion.
Le développeur Java utilise Z Open Editor dans VS Code pour se connecter au service WCA for Z dans IBM Cloud. Ce service est fourni en utilisant un compte IBM Cloud et donne accès au modèle de fondation d’IA. Z Open Editor permet au développeur Java de convertir et de générer du code comme suit :
Tout d’abord, le développeur Java sélectionne un paragraphe COBOL dans VS Code et envoie son contenu au service WCA for Z afin de le convertir en définitions de classes Java.
Plus tard, dans VS Code, le développeur Java sélectionne individuellement les classes Java pour lesquelles le service WCA for Z doit générer des lignes de code Java.
Dans les deux cas ci-dessus, le service WCA for Z utilise son LLM de codage pour générer du contenu. Le LLM de codage est un modèle de fondation d’IA générative qui a été entraîné sur de nombreux langages de programmation et finement réglé pour convertir COBOL en Java.
WCA for Z renvoie les réponses générées par l’IA à VS Code, et le développeur Java peut utiliser les bonnes pratiques pour vérifier et compiler le code afin de finaliser le service Java.