Mainframe-Anwendung modernisieren

In diesem Leitfaden erfahren Sie, wie Sie die Cloud Code for VS Code-Erweiterung verwenden, um Ihre Legacy-Mainframe-Anwendung zu modernisieren.

Mit Mainframe Modernization Code Rewrite können Kunden und Partner Code iterativ neu schreiben. Es wird in der Regel verwendet, nachdem eine Bewertung mit dem Mainframe Assessment Tool (MAT) abgeschlossen wurde. Diese Erweiterung bietet Mainframe-Funktionen für generative KI für Codeanalyse, Spezifikation, Codegenerierung und Testerstellung und ermöglicht so eine interaktive Entwicklung.

Hinweise

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the Vertex AI API.

    Enable the API

  4. Installieren Sie die Cloud Code-Erweiterung, falls noch nicht geschehen.
  5. Installieren Sie die Google Cloud CLI, falls noch nicht geschehen.
  6. Mainframe Modernization Code Rewrite einrichten

    In den folgenden Abschnitten wird beschrieben, wie Sie die Funktion „Code Rewrite“ für die Mainframe-Modernisierung einrichten. Sie müssen zuerst Mainframe Modernization Code Rewrite in Ihrer IDE aktivieren und dann eine Verbindung zu Vertex AI herstellen.

    Code-Rewrite für die Mainframe-Modernisierung aktivieren

    So aktivieren Sie die Funktion „Mainframe Modernization Code Rewrite“:

    1. Öffnen Sie die Befehlspalette mit Strg/Cmd + Umschalt + P.

    2. Wählen Sie den Befehl Einstellungen: Benutzereinstellungen öffnen (JSON) aus.

      Fügen Sie die Einstellung "cloudcode.beta.enableMainframeModernization": true in die Datei settings.json ein, um die Funktion „Mainframe Modernization Code Rewrite“ zu aktivieren:

      {
          "cloudcode.updateChannel": "Insiders",
          "cloudcode.beta.enableMainframeModernization": true
      }
      
    3. Öffnen Sie die Befehlspalette noch einmal (drücken Sie Strg/Cmd + Umschalt + P) und wählen Sie den Befehl Entwickler: Fenster neu laden aus.

    Mainframe Modernization Code Rewrite mit Vertex AI verbinden

    So stellen Sie eine Verbindung zwischen Mainframe Modernization Code Rewrite und Vertex AI her:

    1. Führen Sie in einem Terminalfenster den folgenden Befehl aus:

      gcloud auth application-default login
      
    2. Folgen Sie der Anleitung auf dem Bildschirm im neu geöffneten Webbrowserfenster.

    3. Folgen Sie der Anleitung, um sich in Trusted Cloud by S3NSanzumelden.

    4. Wählen Sie das Projekt aus, das Sie verwenden möchten.

    5. Führen Sie den Befehl Entwickler: Fenster neu laden aus.

    Nach der Einrichtung können Sie jeden Arbeitsbereich oder Ordner mit Mainframe-Code öffnen und die Befehle Generate Specification Summary (Zusammenfassung der Spezifikation generieren) und Generate Modernized Code (Modernisierten Code generieren) für COBOL, JCL, Easytrieve und HLASM ausführen.

    Zusammenfassung der Spezifikation erstellen

    Mit dem Befehl Cloud Code: Generate Specification Summary for Active File (Cloud Code: Spezifikationszusammenfassung für aktive Datei generieren) können Sie eine sprachneutrale Spezifikation für Ihren Legacy-Mainframe-Code erstellen. COBOL, JCL, Easytrieve und HLASM werden unterstützt.

    Sie können auf eine Spezifikationszusammenfassung entweder über die Befehlspalette oder über die Explorer-Ansicht zugreifen:

    Befehlspalette

    1. Wählen Sie im Editor die Quelldatei aus, die Sie verwenden möchten, um sie zur aktiven Datei zu machen.

    2. Drücken Sie Strg/Cmd + Umschalt + P, um die Befehlspalette zu öffnen.

    3. Suchen Sie nach dem Befehl Cloud Code: Generate Specification Summary for Active File (Cloud Code: Spezifikationszusammenfassung für aktive Datei generieren) und wählen Sie ihn aus.

    Neben dem Code wird eine Zusammenfassung der Spezifikation angezeigt.

    Explorer

    1. Klicken Sie in der Aktivitätsleiste auf Explorer oder drücken Sie Strg/Cmd+Umschalt+E.

    2. Klicken Sie mit der rechten Maustaste auf die gewünschte Quelldatei und wählen Sie Generate Specification Summary (Zusammenfassung der Spezifikation erstellen) aus.

    Neben dem Code wird eine Zusammenfassung der Spezifikation angezeigt.

    Mainframe-Legacy-Code mit Anmerkungen versehen

    Sie können den Prozess der Zusammenfassungserstellung für die Spezifikation steuern, indem Sie Ihrem Legacy-Code Kommentare hinzufügen. Wenn Sie einen JCL-Job oder ein COBOL-Programm mit Anmerkungen versehen möchten, suchen Sie neben der Zeile mit der Job-/Programdefinition nach der Schaltfläche add Add:

    JCL-Job

    JCL-Job annotieren

    COBOL-Programm

    COBOL-Programm mit Anmerkungen versehen

    1. Wenn Sie eine Inline-CMS-Ansicht öffnen möchten, in der Sie Ihren Job/Ihr Programm mit Anmerkungen versehen können, klicken Sie auf add Hinzufügen. Klicken Sie nach dem Hinzufügen Ihres Kommentars auf Notiz erstellen, um ihn zu speichern.

    2. Wenn die Anmerkung gespeichert ist, verwenden Sie den Befehl Generate Specification Summary (Spezifikationszusammenfassung generieren), um eine Spezifikation für Ihren Job/Ihr Programm zu generieren, die auf Ihrem Kommentar basiert.

      Sie können dann Ihre Anmerkung bearbeiten, um die bereitgestellte Anleitung zu optimieren, oder sie löschen, wenn das Modell sie nicht mehr berücksichtigen soll.

    Modernisierten Code generieren

    Mit dem Befehl Cloud Code: Generate Modernized Code for Active File (Cloud Code: Modernisierten Code für aktive Datei generieren) können Sie modernen Code aus Ihrem Mainframe-Legacy-Code erstellen.

    Unterstützte Quellsprachen: COBOL, JCL, Easytrieve und HLASM.

    Unterstützte Zielsprachen: Java, C#, Python, SQL.

    Sie können auf diesen Befehl entweder über die Befehlspalette oder über die Explorer-Ansicht zugreifen:

    Befehlspalette

    1. Wählen Sie im Editor die Quelldatei aus, die Sie verwenden möchten, um sie zur aktiven Datei zu machen.

    2. Öffnen Sie die Befehlspalette, indem Sie Strg/Cmd+Umschalt+P drücken.

    3. Suchen Sie nach dem Befehl Cloud Code: Generate Modernized Code for Active File (Cloud Code: Modernisierten Code für aktive Datei generieren) und wählen Sie ihn aus.

    4. Wählen Sie die Zielsprache aus, in der der modernisierte Code generiert werden soll.

      Der generierte modernisierte Code wird im Editor als neue unbenannte Datei angezeigt.

    Explorer

    1. Klicken Sie in der Aktivitätsleiste auf Explorer oder drücken Sie Strg/Cmd+Umschalt+E.

    2. Klicken Sie mit der rechten Maustaste auf die Quelldatei, für die Sie modernisierten Code generieren möchten, und wählen Sie Generate Modernized Code (Modernisierten Code generieren) aus.

    3. Wählen Sie die Zielsprache aus, in der der modernisierte Code generiert werden soll.

      Der generierte modernisierte Code wird im Editor als neue unbenannte Datei angezeigt.

    Einstellungen ändern

    Für Mainframe Modernization Code Rewrite sind die folgenden Einstellungen verfügbar, die Sie entweder auf Arbeitsbereichsebene oder auf (globaler) Nutzerebene konfigurieren können.

    Wenn Sie Einstellungen auf Arbeitsbereichsebene ändern möchten, drücken Sie Strg/Cmd+Umschalt+P, um die Befehlspalette zu öffnen, und wählen Sie den Befehl Einstellungen: Arbeitsbereichseinstellungen öffnen (JSON) aus.

    Wenn Sie Einstellungen auf der Ebene der globalen Nutzereinstellungen ändern möchten, drücken Sie Strg/Befehlstaste+Umschalt+P, um die Befehlspalette zu öffnen, und wählen Sie den Befehl Einstellungen: Nutzereinstellungen öffnen (JSON) aus.

    Hier sehen Sie ein Beispiel für eine settings.json-Datei, die alle Konfigurationseigenschaften der Erweiterung enthält:

    {
        "cloudcode.beta.enableMainframeModernization": true,
        "cloudcode.beta.mainframeModernization.enableGoogleAnalytics": true,
        "cloudcode.beta.mainframeModernization.enableCloudLogging": false,
        "cloudcode.beta.mainframeModernization.model": "gemini-2.5-pro",
        "cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage": "csharp",
        "cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints": [
            "Do not print messages directly to the console; use a logging framework instead."
        ],
    }
    

    Google Analytics aktivieren und deaktivieren

    Mit diesem Konfigurationsattribut wird die Erhebung von Nutzungsanalysen für die Erweiterung aktiviert oder deaktiviert.

    • Name des Konfigurationsattributs: cloudcode.beta.mainframeModernization.enableGoogleAnalytics.

    • Beispiel für Konfigurationswert: false.

    • Standardwert: true (Analytics sind aktiviert).

    Cloud Logging aktivieren und deaktivieren

    Mit dieser Konfigurationseigenschaft wird gesteuert, ob die Protokollierung aktiviert ist.

    • Name des Konfigurationsattributs: cloudcode.beta.mainframeModernization.enableCloudLogging.

    • Beispiel für Konfigurationswert: true.

    • Standardwert: false (Cloud Logging ist deaktiviert).

    Modell

    Wenn diese Konfigurationseigenschaft festgelegt ist, verwendet Mainframe Modernization Code Rewrite das in der Konfiguration angegebene Gemini-Modell.

    • Name des Konfigurationsattributs: cloudcode.beta.mainframeModernization.model

    • Beispielkonfigurationswerte: "gemini-1.5-flash", "gemini-1.5-pro", "gemini-2.0-flash", "gemini-2.0-flash-lite" oder "gemini-2.5-pro".

    • Standardwert: "(default)" (Jedes Mal fragen).

    Zielsprache

    Wenn diese Konfigurationseigenschaft festgelegt ist, werden Sie beim Generieren von Code mit dem Befehl Modernisierten Code generieren nicht mehr aufgefordert, die Zielsprache auszuwählen. Stattdessen wird die in der Eigenschaft festgelegte Sprache verwendet.

    • Name des Konfigurationsattributs: cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

    • Beispielkonfigurationswerte: "java", "csharp", "python" oder "pgsql".

    • Standardwert: null (Jedes Mal fragen).

    Hinweise zum Tech-Stack für die Codegenerierung

    Wenn dieses Konfigurationsattribut festgelegt ist, übergibt der Befehl Generate Modernized Code (Modernisierten Code generieren) die angegebene Liste von Hinweisen zum Technologie-Stack als zusätzliche Anweisungen an das LLM, wenn Code generiert wird. Diese Konfiguration kann als Orientierungshilfe für die Anpassung der Zielarchitektur, der Frameworks und des Codestils verwendet werden.

    • Name des Konfigurationsattributs: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

    • Beispiel für Konfigurationswert:

      [
        "Do not print messages directly to the console; use a logging framework instead.",
        "when generating java code - use Spring Boot version 3 as the framework"
      ]
      
    • Standardwert: [] (eine leere Liste; keine Hinweise auf den Technologie-Stack).

    Daten zum Umschreiben von Mainframe-Code löschen

    So entfernen Sie alle lokal gespeicherten Daten von Mainframe Modernization Code Rewrite für den aktuellen Arbeitsbereich:

    1. Öffnen Sie das Terminal, indem Sie in der Menüleiste Ansicht > Terminal auswählen oder die Tastenkombination  drücken.

    2. Geben Sie die folgenden Befehle in das Terminal ein:

    Linux (Bash oder Zsh)

    workspace_id=$(printf %s "$PWD$(stat -c '%i' .)" | md5sum | head -c 32)
    workspace_storage_dir="$HOME/.config/Code/User/workspaceStorage/$workspace_id"
    rm -r "$workspace_storage_dir/googlecloudtools.cloudcode/mainframe/"
    

    Windows (PowerShell)

    $workspacePath = (Get-Location).ToString()
    
    $tempFile = (New-TemporaryFile).FullName
    ($workspacePath.Substring(0, 1).ToLower() + $workspacePath.Substring(1) +
        (([decimal](Get-Date (Get-ItemProperty . |
            Select-Object -ExpandProperty CreationTimeUtc) -UFormat %s) * 1000) -split '\.')[0]
    ) | Out-File -FilePath $tempFile -Encoding ascii -NoNewline
    $workspaceId = (Get-FileHash -Algorithm MD5 -Path $tempFile).Hash.ToLower()
    Remove-Item $tempFile
    
    $workspaceStorageDir = "$env:APPDATA\Code\User\workspaceStorage\$workspaceId"
    Remove-Item -Recurse "$workspaceStorageDir\googlecloudtools.cloudcode\mainframe"
    

    Fehlerbehebung

    In diesem Abschnitt werden die bekannten Probleme von Mainframe Modernization Code Rewrite beschrieben und Schritte zur Fehlerbehebung bereitgestellt:

    Vertex AI ist im Trusted Cloud -Projekt nicht verfügbar

    Wenn die Befehle Generate Specification Summary (Zusammenfassung der Spezifikation generieren) oder Generate Modernized Code (Modernisierten Code generieren) lange ausgeführt werden und dann fehlschlagen, ist die Vertex AI API möglicherweise nicht aktiviert oder das Kontingent im ausgewählten Projekt wurde überschritten. Klicken Sie auf die Schaltfläche Zur Ausgabe, um zu bestätigen, dass dies das Problem ist.

    Wenn die Schaltfläche Zur Ausgabe nicht verfügbar ist, folgen Sie der Anleitung unter Ausgabekanal prüfen. Suchen Sie im Ausgabekanal nach einer Fehlermeldung, die „Vertex.GenerateContent failed“ enthält. Hier ist ein Beispiel für eine Fehlermeldung, die dadurch verursacht wird, dass die Vertex AI API im ausgewählten Trusted Cloud Projekt nicht aktiviert ist:

    "generic::unknown: retry budget exhausted (30 attempts): Vertex.GenerateContent failed: 403 Forbidden (403)"

    So beheben Sie dieses Problem:

    • Prüfen Sie, ob die Vertex AI API für das Trusted Cloud-Projekt aktiviert ist.

    • Wechseln Sie zu einem anderen Trusted Cloud Projekt mit aktivierter Vertex AI API.

    Befehle zum Umformulieren von Mainframe-Modernisierungscode sind nicht verfügbar

    Wenn Befehle wie Generate Specification Summary (Zusammenfassung der Spezifikation generieren) oder Generate Modernized Code (Modernisierten Code generieren) in der Befehlspalette nicht verfügbar sind, ist das Mainframe Modernization CLI-Tool möglicherweise nicht installiert. Prüfen Sie, ob die folgende ausführbare Datei fehlt:

    • Auf Linux: ~/.cache/cloud-code/mainframe/bin/codegen
    • Auf Windows: %LOCALAPPDATA%\cloud-code\mainframe\bin\codegen.exe
    • Unter macOS: $HOME/Library/Application Support/cloud-code/mainframe/bin/codegen_macos

    Wenn das der Fall ist, versuchen Sie, das Problem mit den folgenden Schritten zu beheben:

    1. Öffnen Sie die Befehlspalette mit Strg/Cmd + Umschalt + P.
    2. Wählen Sie den Befehl Cloud Code: Install or Update Mainframe Modernization Tools (Cloud Code: Mainframe-Modernisierungstools installieren oder aktualisieren) aus.
    3. Prüfen Sie, ob die ausführbare Datei nicht mehr fehlt.
    4. Öffnen Sie die Befehlspalette noch einmal mit Strg/Cmd + Umschalt + P.
    5. Wählen Sie den Befehl Entwickler: Fenster neu laden aus.

    Ausgabekanal prüfen

    Wenn Sie andere Fehler beheben möchten, die an anderer Stelle in diesem Leitfaden nicht aufgeführt sind, können Sie versuchen, den Ausgabekanal der Erweiterung zu untersuchen. So öffnen Sie den Ausgabekanal:

    1. Öffnen Sie die Befehlspalette mit Strg/Cmd + Umschalt + P.
    2. Wählen Sie den Befehl Output: Show Output Channels (Ausgabe: Ausgabekanäle anzeigen) aus.
    3. Wählen Sie den Ausgabekanal Cloud Code Mainframe Modernization aus.