Mainframe-Anwendung modernisieren

In diesem Leitfaden erfahren Sie, wie Sie mit der Cloud Code-Erweiterung für VS Code Ihre alte Mainframe-Anwendung modernisieren.

Das Umschreiben von Code für die Mainframe-Modernisierung ermöglicht Kunden und Partnern einen iterativen Ansatz für das Umschreiben von Code. Sie wird in der Regel nach Abschluss einer Bewertung mit dem Mainframe Assessment Tool (MAT) verwendet. Diese Erweiterung integriert Mainframe GenAI-Funktionen für Codeanalyse, Spezifikation, Codegenerierung und Testgenerierung und bietet eine interaktive Entwicklungsumgebung.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. Installieren Sie die Cloud Code-Erweiterung, falls noch nicht geschehen.
  9. Installieren Sie die Google Cloud CLI, falls noch nicht geschehen.

Code-Umschreibung für die Mainframe-Modernisierung einrichten

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

Code-Neufassung für die Mainframe-Modernisierung aktivieren

So aktivieren Sie das Umschreiben von Code für die Mainframe-Modernisierung:

  1. Öffnen Sie die Befehlspalette mit Strg/Befehlstaste + Umschalttaste + P.

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

    Fügen Sie der Datei settings.json die Einstellung "cloudcode.beta.enableMainframeModernization": true hinzu, um das Umschreiben von Code für die Mainframe-Modernisierung zu aktivieren:

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

Code-Rewrite für die Mainframe-Modernisierung mit Vertex AI verbinden

So stellen Sie eine Verbindung zwischen dem Code-Rewrite für die Mainframe-Modernisierung 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 Browserfenster.

  3. Folgen Sie der Anleitung, um sich in Google Cloudanzumelden.

  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 (Spezifikationsübersicht erstellen) und Generate Modernized Code (Modernisierten Code generieren) für COBOL, JCL, Easytrieve und HLASM ausführen.

Zusammenfassung der Spezifikation generieren

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

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

Befehlspalette

  1. Wählen Sie im Editor die gewünschte Quelldatei aus, um sie zur aktiven Datei zu machen.

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

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

Neben dem Code wird eine Spezifikationsübersicht 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 Specification Summary generieren aus.

Neben dem Code wird eine Spezifikationsübersicht angezeigt.

Mainframe-Legacy-Code annotieren

Um den Prozess der Generierung der Spezifikationsübersicht zu steuern, können Sie Ihren Legacy-Code mit Kommentaren versehen. Wenn Sie einen JCL-Job oder ein COBOL-Programm annotieren möchten, suchen Sie neben der Job-/Programmdefinition nach der Schaltfläche Hinzufügen 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 Ihre Aufgabe/Ihr Programm annotieren können, klicken Sie auf Hinzufügen Hinzufügen. Klicken Sie nach dem Hinzufügen des Kommentars auf Notiz erstellen, um ihn zu speichern.

  2. Nachdem die Anmerkung gespeichert wurde, können Sie mit dem Befehl Generate Specification Summary (Spezifikationsübersicht generieren) eine Spezifikation für Ihren Job/Ihr Programm generieren. Dabei wird Ihr Kommentar berücksichtigt.

    Sie können die Anmerkung dann bearbeiten, um die bereitgestellten Hinweise zu verfeinern, oder sie löschen, wenn sie nicht mehr vom Modell berücksichtigt werden sollen.

Modernisierten Code generieren

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

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

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

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

Befehlspalette

  1. Wählen Sie im Editor die gewünschte Quelldatei aus, um sie zur aktiven Datei zu machen.

  2. Öffnen Sie die Befehlspalette mit der Tastenkombination Strg/Befehlstaste + Umschalttaste + P.

  3. Suchen Sie nach dem Befehl 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 modernen Code generieren möchten, und wählen Sie 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 die Codeumwandlung bei der Mainframe-Modernisierung sind die folgenden Einstellungen verfügbar, die Sie entweder auf Arbeitsbereichsebene oder auf Ebene der (globalen) Nutzereinstellungen konfigurieren können.

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

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

Hier ein Beispiel für eine settings.json-Datei mit allen Konfigurationseigenschaften der Erweiterung:

{
    "cloudcode.beta.enableMainframeModernization": true,
    "cloudcode.beta.mainframeModernization.enableGoogleAnalytics": true,
    "cloudcode.beta.mainframeModernization.enableCloudLogging": false,
    "cloudcode.beta.mainframeModernization.model": "gemini-2.0-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 dieser Konfigurationseigenschaft wird die Erfassung von Nutzungsanalysen für die Erweiterung aktiviert oder deaktiviert.

  • Name der Konfigurationseigenschaft: cloudcode.beta.mainframeModernization.enableGoogleAnalytics.

  • Beispiel für einen Konfigurationswert: false.

  • Standardwert: true (Analytics ist aktiviert).

Cloud Logging aktivieren und deaktivieren

Mit dieser Konfigurationseigenschaft wird festgelegt, ob die Protokollierung aktiviert ist oder nicht.

  • Name der Konfigurationseigenschaft: cloudcode.beta.mainframeModernization.enableCloudLogging.

  • Beispiel für einen Konfigurationswert: true.

  • Standardwert: false (Cloud Logging ist deaktiviert).

Modell

Wenn diese Konfigurationseigenschaft festgelegt ist, verwendet der Code-Rewrite für die Mainframe-Modernisierung das in der Konfiguration angegebene Gemini-Modell.

  • Name der Konfigurationseigenschaft: 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.0-pro".

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

Zielsprache

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

  • Name der Konfigurationseigenschaft: 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 diese Konfigurationseigenschaft festgelegt ist, übergibt der Befehl Modernisierten Code generieren beim Generieren von Code die angegebene Liste von Hinweisen zum Tech-Stack als zusätzliche Anweisungen an die LLM. Diese Konfiguration kann als Orientierungshilfe für die Anpassung der Zielarchitektur, der Frameworks und des Code-Stils verwendet werden.

  • Name der Konfigurationseigenschaft: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

  • Beispiel für einen 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 zum Tech-Stack)

Daten zum Neuschreiben von Code für die Mainframe-Modernisierung löschen

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

  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 beim Code-Rewrite für die Mainframe-Modernisierung beschrieben und Schritte zur Fehlerbehebung aufgeführt:

Vertex AI ist im Projekt Google Cloud nicht verfügbar

Wenn die Befehle Generate Specification Summary (Spezifikationsübersicht 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 mit dem Text „Vertex.GenerateContent failed“. Hier ist beispielsweise eine Fehlermeldung, die auftritt, wenn die Vertex AI API im ausgewählten Projekt nicht aktiviert ist: Google Cloud

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

Sie haben zwei Möglichkeiten, dieses Problem zu beheben:

  • Prüfen Sie, ob die Vertex AI API für das Projekt Google Cloudaktiviert ist.

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

Befehle zum Umschreiben von Code für die Mainframe-Modernisierung sind nicht verfügbar

Wenn Befehle wie Generate Specification Summary (Spezifikationsübersicht generieren) oder Generate Modernized Code (Modernisierten Code generieren) in der Befehlspalette nicht verfügbar sind, wurde das CLI-Tool zur Mainframe-Modernisierung 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

Versuchen Sie in diesem Fall, das Problem mit den folgenden Schritten zu beheben:

  1. Öffnen Sie die Befehlspalette mit Strg/Befehlstaste + Umschalttaste + P.
  2. Wählen Sie den Befehl Cloud Code: Tools zur Modernisierung von Mainframes 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/Befehlstaste + Umschalttaste + P.
  5. Wählen Sie den Befehl Entwickler: Fenster neu laden aus.

Ausgabekanal prüfen

Wenn Sie andere Fehler beheben möchten, die in diesem Leitfaden nicht aufgeführt sind, prüfen Sie den Ausgabekanal der Erweiterung. So öffnen Sie den Ausgabekanal:

  1. Öffnen Sie die Befehlspalette mit Strg/Befehlstaste + Umschalttaste + 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.