מודרניזציה של אפליקציית המחשב המרכזי

במדריך הזה נסביר איך להשתמש בתוסף Cloud Code ל-VS Code כדי לבצע מודרניזציה של אפליקציית מיינפריים מדור קודם.

התכונה 'כתיבה מחדש של קוד' ב-Mainframe Modernization מאפשרת ללקוחות ולשותפים להשתמש בגישה איטרטיבית לכתיבה מחדש של קוד. בדרך כלל משתמשים בו אחרי שמסיימים הערכה באמצעות Mainframe Assessment Tool (MAT). התוסף הזה משלב יכולות של AI גנרטיבי במחשבי מיינפריים לניתוח קוד, ליצירת מפרטים, ליצירת קוד וליצירת בדיקות, ומספק חוויית פיתוח אינטראקטיבית.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. אם עוד לא עשיתם זאת, מתקינים את התוסף Cloud Code.
  9. מתקינים את Google Cloud CLI אם עוד לא עשיתם זאת.

הגדרת כתיבה מחדש של קוד Mainframe Modernization

בקטעים הבאים מוסבר איך להגדיר את התכונה Mainframe Modernization Code Rewrite (שכתוב קוד למודרניזציה של מחשבי מיינפריים). קודם צריך להפעיל את Mainframe Modernization Code Rewrite (שכתוב קוד של מחשב מרכזי) בסביבת הפיתוח המשולבת (IDE), ואז לחבר אותה ל-Vertex AI.

הפעלת כתיבה מחדש של קוד מודרניזציה של מחשב מרכזי

כדי להפעיל את התכונה Mainframe Modernization Code Rewrite (שיכתוב קוד למודרניזציה של מחשבי מיינפריים):

  1. פותחים את לוח הפקודות באמצעות Ctrl/Cmd+Shift+P.

  2. בוחרים בפקודה העדפות: פתיחת הגדרות משתמש (JSON).

    כדי להפעיל את התכונה Mainframe Modernization Code Rewrite (שכתוב קוד למודרניזציה של מחשבי מיינפריים), מוסיפים את ההגדרה "cloudcode.beta.enableMainframeModernization": true לקובץ settings.json:

    {
        "cloudcode.updateChannel": "Insiders",
        "cloudcode.beta.enableMainframeModernization": true
    }
    
  3. פותחים שוב את לוח הפקודות (מקישים על Ctrl/Cmd+Shift+P) ובוחרים בפקודה Developer: Reload Window.

קישור של Mainframe Modernization Code Rewrite ל-Vertex AI

כדי לקשר את Mainframe Modernization Code Rewrite ל-Vertex AI, צריך לבצע את השלבים הבאים:

  1. בחלון המסוף, מריצים את הפקודה הבאה:

    gcloud auth application-default login
    
  2. פועלים לפי ההוראות במסך בחלון החדש של דפדפן האינטרנט שנפתח.

  3. פועלים לפי ההנחיות כדי להיכנס לחשבון Google Cloud.

  4. בוחרים את הפרויקט שבו רוצים להשתמש.

  5. מריצים את הפקודה Developer: Reload Window.

אחרי ההגדרה, אפשר לפתוח כל סביבת עבודה או תיקייה שכוללת קוד של מחשב מרכזי, ולהריץ את הפקודות Generate Specification Summary ו-Generate Modernized Code ב-COBOL,‏ JCL,‏ Easytrieve ו-HLASM.

יצירת סיכום של המפרט

הפקודה Cloud Code: Generate Specification Summary for Active File מאפשרת ליצור מפרט בשפה ניטרלית לקוד המיינפריים מדור קודם. יש תמיכה ב-COBOL,‏ JCL,‏ Easytrieve ו-HLASM.

אפשר לגשת לסיכום המפרט מלוח הפקודות או מתצוגת הסייר:

לוח הפקודות

  1. בכלי העריכה, בוחרים את קובץ המקור שרוצים להשתמש בו כדי להפוך אותו לקובץ הפעיל.

  2. כדי לפתוח את לוח הפקודות, מקישים על Ctrl/Cmd+Shift+P.

  3. מחפשים את הפקודה Cloud Code: Generate Specification Summary for Active File ובוחרים בה.

סיכום המפרט מופיע לצד הקוד.

ניווט

  1. בסרגל הפעילות, לוחצים על סייר או על Ctrl/Cmd+Shift+E.

  2. לוחצים לחיצה ימנית על קובץ המקור הרצוי ובוחרים באפשרות יצירת סיכום של המפרט.

סיכום המפרט מופיע לצד הקוד.

הוספת הערות לקוד מדור קודם של מחשב מרכזי

כדי להנחות את תהליך יצירת סיכום המפרט, אפשר להוסיף הערות לקוד מדור קודם. כדי להוסיף הערה למשימת JCL או לתוכנית COBOL, מחפשים את הלחצן add Add ליד שורת ההגדרה של המשימה או התוכנית:

JCL Job

הוספת הערות למשימת JCL

תוכנית COBOL

הוספת הערות לתוכנית COBOL

  1. כדי לפתוח תצוגה מוטבעת של מערכת ה-CMS שמאפשרת להוסיף הערות למשרה או לתוכנית, לוחצים על הוספה הוספה. אחרי שמוסיפים את ההערה, לוחצים על יצירת הערה כדי לשמור אותה.

  2. אחרי ששומרים את ההערה, משתמשים בפקודה Generate Specification Summary כדי ליצור מפרט למשימה או לתוכנית, בהתאם להערה.

    אחר כך תוכלו לערוך את ההערה כדי לשפר את ההנחיות שסיפקתם או למחוק אותה אם אתם לא רוצים שהמודל יתחשב בה יותר.

יצירת קוד מודרני

הפקודה Cloud Code: Generate Modernized Code for Active File מאפשרת ליצור קוד מודרני מקוד מדור קודם במחשב המרכזי.

שפות מקור נתמכות: COBOL,‏ JCL,‏ Easytrieve ו-HLASM.

שפות יעד נתמכות: Java, ‏ C#, ‏ Python, ‏ SQL.

אפשר לגשת לפקודה הזו מלוח הפקודות או מתצוגת הסייר:

לוח הפקודות

  1. בכלי העריכה, בוחרים את קובץ המקור שרוצים להשתמש בו כדי להפוך אותו לקובץ הפעיל.

  2. פותחים את לוח הפקודות בלחיצה על Ctrl/Cmd+Shift+P.

  3. מחפשים את הפקודה Cloud Code: Generate Modernized Code for Active File ובוחרים בה.

  4. בוחרים את שפת היעד שבה רוצים ליצור את הקוד המודרני.

    הקוד המודרני שנוצר מופיע בעורך כקובץ חדש ללא שם.

ניווט

  1. בסרגל הפעילות, לוחצים על סייר או על Ctrl/Cmd+Shift+E.

  2. לוחצים לחיצה ימנית על קובץ המקור שרוצים ליצור עבורו קוד מודרני ובוחרים באפשרות יצירת קוד מודרני.

  3. בוחרים את שפת היעד שבה רוצים ליצור את הקוד המודרני.

    הקוד המודרני שנוצר מופיע בעורך כקובץ חדש ללא שם.

שינוי ההגדרות

לשכתוב קוד של מודרניזציה של מחשבי מיינפריים יש את ההגדרות הבאות שאפשר לקבוע ברמת סביבת העבודה או ברמת הגדרות המשתמש (הגלובליות).

כדי לשנות הגדרות ברמת סביבת העבודה, לוחצים על Ctrl/Cmd+Shift+P כדי לפתוח את חלונית הפקודות ובוחרים בפקודה Preferences: Open Workspace Settings (JSON).

כדי לשנות הגדרות ברמת הגדרות המשתמש הגלובליות, מקישים על Ctrl/Cmd+Shift+P כדי לפתוח את לוח הפקודות ובוחרים בפקודה Preferences: Open User Settings (JSON).

דוגמה לקובץ settings.json שכולל את כל מאפייני ההגדרה של התוסף:

{
    "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

מאפיין ההגדרה הזה מפעיל או משבית את איסוף נתוחי השימוש בתוסף.

  • שם מאפיין ההגדרה: cloudcode.beta.mainframeModernization.enableGoogleAnalytics.

  • ערך לדוגמה של הגדרה: false.

  • ערך ברירת המחדל: true (Analytics מופעל).

הפעלה והשבתה של Cloud Logging

מאפיין ההגדרה הזה קובע אם הרישום ביומן מופעל או לא.

  • שם מאפיין ההגדרה: cloudcode.beta.mainframeModernization.enableCloudLogging.

  • ערך לדוגמה של הגדרה: true.

  • ערך ברירת המחדל: false (Cloud Logging מושבת).

דגם

כשמגדירים את מאפיין ההגדרה הזה, הכלי Mainframe Modernization Code Rewrite משתמש במודל Gemini שצוין בהגדרה.

  • שם מאפיין ההגדרה: cloudcode.beta.mainframeModernization.model

  • ערכי תצורה לדוגמה: "gemini-1.5-flash",‏ "gemini-1.5-pro",‏ "gemini-2.0-flash",‏ "gemini-2.0-flash-lite" או "gemini-2.5-pro".

  • ערך ברירת המחדל: "(default)" (יש לשאול בכל פעם).

שפת היעד

כשהמאפיין הזה מוגדר, הפקודה Generate Modernized Code (יצירת קוד מודרני) לא מבקשת יותר לבחור את שפת היעד כשיוצרים קוד, אלא משתמשת בשפה שהוגדרה במאפיין.

  • שם מאפיין ההגדרה: cloudcode.beta.mainframeModernization.codeGenerationSettings.targetLanguage

  • ערכי תצורה לדוגמה: "java",‏ "csharp",‏ "python" או "pgsql".

  • ערך ברירת המחדל: null (יש לשאול בכל פעם).

רמזים לגבי סטאק התוכנות של יצירת קוד

כשמגדירים את מאפיין ההגדרה הזה, הפקודה Generate Modernized Code מעבירה את רשימת הרמזים שצוינה לגבי סטאק תוכנות כהוראות נוספות ל-LLM בזמן יצירת הקוד. אפשר להשתמש בהגדרה הזו כהנחיה להתאמת ארכיטקטורת היעד, המסגרות וסגנון הקוד.

  • שם מאפיין ההגדרה: cloudcode.beta.mainframeModernization.codeGenerationSettings.techStackHints

  • ערך הגדרה לדוגמה:

    [
      "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"
    ]
    
  • ערך ברירת מחדל: [] (רשימה ריקה, ללא רמזים לגבי סטאק תוכנות).

מחיקת נתונים של שכתוב קוד ב-Mainframe Modernization

כדי להסיר את כל הנתונים שמאוחסנים באופן מקומי על ידי Mainframe Modernization Code Rewrite בסביבת העבודה הנוכחית, פועלים לפי השלבים הבאים:

  1. פותחים את הטרמינל על ידי בחירה באפשרות תצוגה > טרמינל בסרגל התפריטים, או על ידי הקשה על מקש הקיצור .

  2. מזינים את הפקודות הבאות בטרמינל:

‫Linux‏ (Bash או 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"

פתרון בעיות

בקטע הזה מפורטות הבעיות המוכרות בכתיבה מחדש של קוד ב-Mainframe Modernization, ומוצגים שלבים לפתרון בעיות:

‫Vertex AI לא זמין בפרויקט Google Cloud

אם הפקודות Generate Specification Summary או Generate Modernized Code פועלות במשך זמן רב ואז נכשלות, יכול להיות ש-Vertex AI API לא מופעל או שהחריגה מהמכסה בפרויקט שנבחר. כדי לוודא שזאת הבעיה, לוחצים על הלחצן Go to output (מעבר לפלט).

אם הלחצן מעבר לפלט לא זמין, פועלים לפי השלבים במאמר בדיקת ערוץ הפלט. בערוץ הפלט, מחפשים הודעת שגיאה שמכילה את המחרוזת Vertex.GenerateContent failed. לדוגמה, הנה הודעת שגיאה שמופיעה כי Vertex AI API לא מופעל בפרויקט שנבחר: Google Cloud

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

כדי לפתור את הבעיה, אפשר:

  • מוודאים ש-Vertex AI API מופעל בפרויקט. Google Cloud

  • עוברים לפרויקט אחר שבו Vertex AI API מופעל. Google Cloud

פקודות לשכתוב קוד של Mainframe Modernization לא זמינות

אם פקודות כמו Generate Specification Summary או Generate Modernized Code לא זמינות בלוח הפקודות, יכול להיות שכלי ה-CLI של Mainframe Modernization לא הותקן. כדי לוודא שזה המצב, בודקים אם קובץ ההפעלה הבא חסר:

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

אם זה המצב, נסו לפתור את הבעיה באמצעות הפעולות הבאות:

  1. פותחים את לוח הפקודות באמצעות Ctrl/Cmd+Shift+P.
  2. בוחרים בפקודה Cloud Code: Install or Update Mainframe Modernization Tools (Cloud Code: התקנה או עדכון של כלי מודרניזציה של מחשבי מיינפריים).
  3. מוודאים שהקובץ הניתן להפעלה לא חסר יותר.
  4. פותחים שוב את לוח הפקודות באמצעות Ctrl/Cmd+Shift+P.
  5. בוחרים בפקודה Developer: Reload Window (מפתח: טעינה מחדש של החלון).

בדיקת ערוץ הפלט

כדי לפתור בעיות אחרות שלא מפורטות במקומות אחרים במדריך הזה, נסו לבדוק את ערוץ הפלט של התוסף. כדי לפתוח את ערוץ הפלט, מבצעים את המשימות הבאות:

  1. פותחים את לוח הפקודות באמצעות Ctrl/Cmd+Shift+P.
  2. בוחרים בפקודה פלט: הצגת ערוצי פלט.
  3. בוחרים את ערוץ הפלט Cloud Code Mainframe Modernization.