Codegenerierung für Z

Ein Flussdiagramm mit verschiedenen Formen und Symbolen
Codegenerierung für Z

IBM watsonx Code Assistant (WCA) für Z ist eine KI-gestützte Lösung zur Modernisierung von Mainframe-Anwendungen, die es Entwicklern erleichtert, COBOL-Geschäftsservices schrittweise zu modernisieren und zu refaktorisieren und selektiv in hochwertigen, für IBM Z optimierten Java-Code umzuwandeln. Mit watsonx Code Assistant for Z können Kunden generative KI und automatisierte Tools nutzen, um die Modernisierung ihrer Mainframe-Anwendungen zu beschleunigen – und gleichzeitig zentrale Herausforderungen in Bezug auf Entwicklerkompetenzen und Time-to-Value bewältigen.

 

Lösungsübersicht

Ein Flussdiagramm, das den Prozess der Überarbeitung von COBOL-Code von der Quellsprache zur Zielsprache veranschaulicht
Die wichtigsten Komponenten und ihre Verbindungen innerhalb der Lösungsarchitektur von Codegenerierung für Z.

Der IBM watsonx Code Assistant für Z besteht aus folgenden Hauptkomponenten (im obigen Diagramm dargestellt):

  1. IBM Application Discovery and Delivery Intelligence (ADDI) durchsucht den Quellcode einer Anwendung, um Beziehungen zwischen Programmen innerhalb eines Anwendungssystems zu erkennen und zu verstehen. ADDI bietet außerdem die Möglichkeit, Visualisierungen und Berichte über diese Abhängigkeiten zu erstellen sowie die Codebasis zu durchsuchen.

     

  2. Die Metadatendatenbank enthält die Ergebnisse des von ADDI durchgeführten COBOL-Verständnis- und -Überarbeitungsprozesses. Die Daten in der Metadatendatenbank werden von IBM watsonx Code Assistant verwendet, um das Überarbeiten großer Softwaresysteme mit mehreren COBOL-Programmen, Copybooks usw. zu ermöglichen.

     

  3. Das COBOL Source Control Management (SCM) Tool bietet Quellcodeverwaltung für den zu konvertierenden COBOL-Code. Das SCM-Repository ist außerdem mit einem ADDI-Projekt verbunden, sodass neue COBOL-Dienste gescannt und die Metadaten an die Metadatendatenbank gesendet werden können.

     

  4. Der Refactoring Assistant dient als „Brücke“ zwischen ADDI und dem IBM watsonX Code Assistant. Der Refactoring Assistant verbindet sich mit ADDI und extrahiert identifizierte COBOL-Geschäftsdienste zur Überarbeitung und Konvertierung in Java-Code.

     

  5. Der IBM watsonx Code Assistant Service (WCA for Z) ist eine IBM watsonx.ai-Anwendung, die Promptanfragen von Microsoft Visual Studio Code (VS Code) erhält und eine Abgleichslösung mit einem Code Large Language Model (LLM) durchführt. WCA for Z analysiert COBOL-Paragraphen und Java-Klassen und generiert Codevorschläge, die geltenden Praktiken folgen.

     

  6. Das Code Large Language Model (LLM) ist ein Foundation Model für generative KI zur Codegenerierung, das auf dem IBM Granite-Modell für Z basiert. Es kann auch darauf trainiert werden, zusätzlichen COBOL-Code einzubeziehen, der von Anbietern oder Unternehmensnutzern generiert wird.

     

  7. COBOL-Programme sind eigenständige Programme und/oder Komponenten eines größeren Softwaresystems, die in Java-Dienste umstrukturiert werden können.

     

  8. Java Code ist Code, der von WCA for Z generiert wird und das Verhalten des Eingabeprogramms COBOL repliziert.

Nutzung und Durchgang
IBM-Cloud-Diagramm, das den Prozess der Überarbeitung von COBOL-Anwendungen in Java-Code veranschaulicht
Ein Durchgang durch die Lösungsarchitektur, der die Interaktionen der Komponenten und den Informationsfluss zur Generierung von Java-Code aus COBOL-Quellen zeigt.

Das obige Diagramm veranschaulicht, wie die Komponenten von WCA for Z zusammenarbeiten, um Entwicklern die Konvertierung von COBOL-Quellcode in Java zu ermöglichen.

  1. Architekten verwenden die Funktionen von ADDI, um den COBOL-Code zu verstehen. Dieses Produkt läuft in einer Windows-VM und scannt den Quellcode, um Architekten Anwendungserkenntnisse zu liefern. Die Analyse des Quellcodes wird in einem Projekt gespeichert, auf das Architekten über ein Eclipse-basiertes Tool zugreifen können. Mit diesem Tool können Architekten verschiedene Aufgaben ausführen, z. B. die Beziehungen zwischen verschiedenen Programmen visualisieren, Berichte ausführen und Code durchsuchen. Dieses Tool dient Architekten dazu, mit der Modernisierung einer monolithischen COBOL-Anwendung zu beginnen, indem potenzielle zu überarbeitende Geschäftsdienste identifiziert werden, mit der Option, sie mithilfe von generativer KI in Java zu konvertieren.

     

  2. ADDI sendet die Ergebnisse seiner Analyse an die Metadatenbank, die wiederum dem vom IBM watsonx Code Assistant Service verwendeten Datensatz hinzugefügt werden.

     

  3. Der COBOL-Entwickler verwendet den Refactoring Assistant, um mit der Extraktion des COBOL-Geschäftsdiensts zu beginnen, den der Architekt aus einer monolithischen Anwendung identifiziert hat. Der Refactoring Assistant ist ein containerbasiertes Produkt, das in einer Linux-VM läuft. Er verfügt über eine Web-Benutzeroberfläche für Entwickler zur Visualisierung und Auswahl von relevantem Code, um einen neuen COBOL-Dienst zu erstellen, der eine Geschäftsfunktion aus vielen verschiedenen bestehenden Programmen umfasst. Der Refactoring Assistant stellt eine sichere Verbindung zu ADDI her, um auf die Analyse der COBOL-Anwendung in der ADDI-Datenbank zuzugreifen.

     

  4. Nachdem der COBOL-Entwickler den gesamten Code ausgewählt hat, kann er das neue COBOL-Programm auf seine Workstation exportieren, um in einer integrierten Entwicklungsumgebung (IDE) fortzufahren.

     

  5. Die überarbeiteten COBOL-Paragraphen werden im Services Repo gespeichert und Java-Entwicklern zur Konvertierung zur Verfügung gestellt.

     

  6. Der Java-Entwickler verwendet Z Open Editor in VS Code, um eine Verbindung zum WCA for Z-Service in der IBM Cloud herzustellen. Dieser Service wird über ein IBM Cloud-Konto bereitgestellt und bietet Zugriff auf das Foundation Model. Mit Z Open Editor kann der Java-Entwickler den Code wie folgt konvertieren und generieren:

    1. Zunächst wählt der Java-Entwickler einen COBOL-Absatz in VS Code aus und sendet dessen Inhalt an den WCA for Z-Dienst zur Konvertierung in Java-Klassendefinitionen.

    2. Später wählt er einzelne Java-Klassen in VS Code aus, für die der WCA for Z-Dienst Java-Codezeilen generieren soll.

       

  7. In beiden oben genannten Fällen verwendet der WCA for Z-Dienst sein Code LLM zur Inhaltsgenerierung. Das Code LLM ist ein generatives KI-Basismodell, das in vielen Programmiersprachen trainiert und auf die Umwandlung von COBOL in Java abgestimmt ist.

     

  8. WCA for Z sendet KI-generierte Antworten zurück an VS Code, und der Java-Entwickler kann führende Praktiken zur Überprüfung und Kompilierung des Codes nutzen, um den Java-Dienst abzuschließen.

Voraussetzungen

  • Microsoft VS Code
  • IBM Semeru Java 17 LTS SDK
  • IBM Z Open Editor-Erweiterung für VS Code
  • Sprachunterstützung für Java durch die Red Hat-Erweiterung für VS Code
  • GitHub.com Konto
  • Verbindung zu IBM Watson Code Assistant
Nächste Schritte

Sprechen Sie mit unseren Experten über die Implementierung eines Hybrid Cloud-Bereitstellungsmodells.

Beitragende

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti 

Aktualisiert: 5. Dezember 2023