使用 現代化 CardDemo 大型主機應用程式 AWS Transform - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 現代化 CardDemo 大型主機應用程式 AWS Transform

由 Santosh Kumar Singh (AWS) 和 Cheryl du Preez (AWS) 建立

Summary

AWS Transform 旨在加速大型主機應用程式的現代化。它使用生成式 AI 來簡化大型主機現代化程序。它可自動化複雜的任務,例如:舊版程式碼分析、大型主機文件、商業規則擷取、單體應用程式分解為商業網域,以及程式碼重構。它透過自動化複雜的任務來加速現代化專案,例如應用程式分析和遷移序列規劃。分解單體應用程式時, AWS Transform 智慧排序大型主機應用程式轉換,這可協助您平行轉換業務功能。 AWS Transform 可以加速決策並提高操作敏捷性和遷移效率。

此模式提供step-by-step說明,協助您 AWS Transform 使用 CardDemo 來測試 的大型主機現代化功能,這是範例開放原始碼大型主機應用程式。

先決條件和限制

先決條件

  • 作用中 AWS 帳戶

  • AWS IAM Identity Center,已啟用

  • 允許管理員啟用 的許可 AWS Transform

  • 允許管理員接受 AWS Transform Web 應用程式的 Amazon Simple Storage Service (Amazon S3) 連線請求的許可

限制

  • AWS Transform 僅適用於部分 AWS 區域。如需支援區域的完整清單,請參閱支援的 區域 AWS Transform

  • AWS Transform 支援從常見商業導向語言 (COBOL) 到 Java 的程式碼分析、文件產生、商業規則擷取、分解和重構。如需詳細資訊,請參閱功能和主要功能,以及大型主機應用程式轉換支援的檔案類型

  • 中有大型主機轉換功能的服務配額 AWS Transform。如需詳細資訊,請參閱 的配額 AWS Transform

  • 為了在共用工作區上協作,所有使用者都必須是與 AWS Transform Web 應用程式執行個體 AWS IAM Identity Center 相關聯的相同 執行個體的註冊使用者。

  • Amazon S3 儲存貯體和 AWS Transform 必須位於相同的 AWS 帳戶 和 區域。

架構

下圖顯示您在此模式中設定的架構。

使用 AWS 轉換來現代化存放在 Amazon S3 儲存貯體中的大型主機應用程式。

該圖顯示以下工作流程:

  1. AWS Transform 使用連接器來存取存放在 Amazon S3 儲存貯體中的 CardDemo 大型主機應用程式。

  2. AWS Transform 使用 AWS IAM Identity Center 來管理使用者存取和身分驗證。系統會實作多層安全控制以進行身分驗證、授權、加密和存取管理,以協助在處理期間保護程式碼和成品。使用者透過聊天界面與 AWS Transform 客服人員互動。您可以為 AI 代理器提供英文特定任務的說明。如需詳細資訊,請參閱 AWS Transform 文件中的循環中的人工 (HITL)

  3. AI 代理程式會解譯使用者的指示、建立任務計畫、將任務分割為可執行任務,以及自動執行動作。使用者可以檢閱和核准轉換。轉換任務包括下列項目:

    • 程式碼分析 – AWS Transform 分析每個檔案中的程式碼,以取得檔案名稱、檔案類型、程式碼行及其路徑等詳細資訊。代理程式會分析原始程式碼、執行分類、建立相依性映射,以及識別任何遺失的成品。它也會識別重複的元件。

    • 文件產生 – AWS Transform 產生大型主機應用程式的文件。透過分析程式碼,它可以自動建立應用程式的詳細文件,包括傳統系統中存在的業務邏輯、流程、整合和相依性的說明。

    • 業務邏輯擷取 - AWS Transform 分析 COBOL 計劃以記錄其核心業務邏輯,協助您了解基本業務邏輯。

    • 程式碼分解 – 將程式碼 AWS Transform 分解為考量程式與元件之間相依性的網域。將相同網域中的相關檔案和程式分組可改善組織,並在將其分解為較小的元件時協助保留應用程式的邏輯結構。

    • 遷移波動規劃 – 根據您在分解階段建立的網域, 會以建議的現代化順序 AWS Transform 產生遷移波動計劃。

    • 程式碼重構 – 將所有或所選網域檔案中的程式碼 AWS Transform 重構為 Java 程式碼。此步驟的目標是保留應用程式的關鍵商業邏輯,同時將其重構為現代化、雲端最佳化的 Java 應用程式。

  4. AWS Transform 會將重構程式碼、產生的文件、相關聯的成品和執行時間程式庫存放在 Amazon S3 儲存貯體中。您可以執行下列作業:

    • 存取 Amazon S3 儲存貯體中的執行時間資料夾。

    • 遵循 AWS Transform 文件中的建置和部署您的現代化應用程式,以建置和部署應用程式。

    • 透過聊天界面,請求和下載範例 AWS CloudFormation AWS Cloud Development Kit (AWS CDK),或 Hashicorp Terraform 範本。這些範本可協助您部署支援重構應用程式所需的 AWS 資源。

    • 使用 Reforge 透過使用大型語言模型 (LLMs) 來改善重構程式碼的品質。重構引擎會保留 COBOL 的功能等效性,同時將其轉換為 Java 程式碼。Reforge 是轉換後可用的選用步驟。此步驟使用 LLMs 來重組程式碼,使其與原生 Java 非常相似,這可以改善可讀性和可維護性。Reforge 還新增了人類可讀的評論,以協助您了解程式碼,並實作現代編碼模式和最佳實務。

工具

AWS 服務

  • AWS Transform 使用代理式 AI 來協助您加速傳統工作負載的現代化,例如 .NET、大型主機和 VMware 工作負載。

  • AWS IAM Identity Center 可協助您集中管理對 AWS 帳戶 和雲端應用程式的單一登入 (SSO) 存取。

  • Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。

程式碼儲存庫

您可以使用開放原始碼 AWS CardDemo 大型主機應用程式做為範例應用程式,以開始使用大型主機現代化。

最佳實務

  • 從小型開始 – 從較不複雜的小型程式碼 (15,000–20,000 行程式碼) 開始,以了解 如何 AWS Transform 分析和轉換大型主機應用程式。

  • 結合人類專業知識 – AWS Transform 用作加速器,同時套用人類專業知識以獲得最佳結果。

  • 徹底檢閱和測試 – 務必仔細檢閱轉換後的程式碼,並在轉換後執行全面的測試,以驗證功能等效性。

  • 提供意見回饋 – 若要提供意見回饋和改進建議,請使用 中的傳送意見回饋按鈕, AWS Management Console 或使用 建立案例AWS 支援。如需詳細資訊,請參閱建立支援案例。您的輸入對於服務增強和未來的開發很有價值。

史詩

任務描述所需的技能

建立儲存貯體。

在啟用 的相同 AWS 帳戶 和區域中建立 Amazon S3 AWS Transform 儲存貯體。您可以使用此儲存貯體來存放大型主機應用程式程式碼,並 AWS Transform 使用此儲存貯體來存放產生的文件、重構程式碼,以及與轉換相關聯的其他檔案。如需說明,請參閱 Amazon S3 文件中的建立儲存貯體。

一般 AWS

準備範例大型主機應用程式。

  1. 輸入下列命令,將 CardDemo 儲存庫複製到您的本機工作站:

    git clone https://github.com/aws-samples/aws-mainframe-modernization-carddemo.git

  2. 建立名為 的新資料夾carddemo

  3. 將包含大型主機原始碼的app資料夾從複製的儲存庫複製到 carddemo 資料夾。

  4. cardemo資料夾壓縮為 ZIP 檔案。

  5. 將 ZIP 檔案上傳至您建立的 Amazon S3 儲存貯體。如需說明,請參閱 Amazon S3 文件中的上傳物件。 Amazon S3

應用程式開發人員、DevOps 工程師
任務描述所需的技能

將使用者新增至 IAM Identity Center。

將您的潛在使用者新增至 IAM Identity Center。遵循 AWS Transform 文件中在 IAM Identity Center 中新增使用者的指示。

AWS 管理員

啟用 AWS Transform 並新增使用者。

  1. 啟用 AWS Transform。請遵循啟用 AWS Transform中的指示。

  2. 將使用者新增至 AWS Transform。遵循將使用者新增至 AWS Transform 中的指示。

AWS 管理員

設定使用者存取 AWS Transform Web 應用程式。

每個使用者都必須接受存取 AWS Transform Web 應用程式的邀請。遵循 AWS Transform 文件中接受邀請的指示。

應用程式開發人員、應用程式擁有者

登入 AWS Transform Web 應用程式。

遵循登入 AWS Transform中的指示。

應用程式開發人員、應用程式擁有者

設定工作區。

設定工作區,讓使用者可以在 AWS Transform Web 應用程式中協作。遵循 AWS Transform 文件中設定工作區的指示。

AWS 管理員
任務描述所需的技能

建立轉換任務。

建立轉換任務以現代化 CardDemo 大型主機應用程式。如需說明,請參閱 AWS Transform 文件中的建立和啟動任務。當您被要求在 AWS Transform 聊天界面中設定目標時,請選擇執行大型主機現代化 (IBM z/OS 至 AWS),然後選擇分析程式碼、產生技術文件、商業邏輯、分解程式碼、計劃遷移序列和將程式碼轉換為 Java

應用程式開發人員、應用程式擁有者

設定連接器。

建立 Amazon S3 儲存貯體的連接器,其中包含 CardDemo 大型主機應用程式。此連接器允許 AWS Transform 存取儲存貯體中的資源,並執行連續的轉換函數。如需說明,請參閱 AWS Transform 文件中的設定連接器

AWS 管理員

執行程式碼分析。

  1. 指定資產位置頁面上,輸入您上傳之 carddemo ZIP 檔案的 Amazon S3 儲存貯體路徑。

  2. 選擇核准並傳送至 AWS Transform 。它開始分析程式碼。

  3. Worklog 索引標籤上監控狀態。

  4. 分析完成後,在左側導覽窗格中的分析程式碼下,選擇檢視程式碼分析結果

  5. (選用) 選擇下載以下載完整的資產清單、缺少原始程式碼和相依性檔案。

如需詳細資訊,請參閱 AWS Transform 文件中的程式碼分析

應用程式開發人員、應用程式擁有者

產生技術文件。

  1. 在左側導覽窗格的產生技術文件下,選擇選取檔案並設定設定

  2. 展開 COBOLJCL,然後選取一或多個檔案。

  3. 選擇文件詳細資訊層級:

    • 摘要 – 提供範圍內每個檔案的高階概觀。此外, 會提供每個檔案的單行摘要。

    • 詳細功能規格 – 提供大型主機應用程式轉換範圍內每個檔案的完整詳細資訊。有些詳細資訊包括邏輯和流程、已識別的業務規則、資料流程、相依性、輸入和輸出處理,以及各種交易詳細資訊。

  4. 選擇傳送至 AWS Transform

  5. Worklog 索引標籤中監控進度。

    注意

    文件產生時間從分鐘到小時不等,取決於檔案數量和程式碼行。

  6. 完成後,請選擇檢閱文件結果

  7. 透過 Web 應用程式存取產生的文件或下載。產生的文件也會存放在 Amazon S3 儲存貯體中。

  8. 在聊天界面中詢問特定問題,以探索產生的文件。例如,您可以說「告訴我 CBACT01C 的功能」。

如需詳細資訊,請參閱 文件中的產生技術 AWS Transform 文件。

應用程式開發人員、應用程式擁有者

擷取商業邏輯。

  1. 在左側導覽窗格中,展開擷取商業邏輯,然後選擇選取檔案進行商業邏輯擷取

  2. 展開 COBOLJCL,然後選取一或多個檔案。

  3. 選擇傳送到 AWS Transform

  4. Worklog 索引標籤中監控進度。

    注意

    商業邏輯擷取時間從分鐘到小時不等,取決於檔案數量和程式碼行數。

  5. 擷取完成時,選擇檢閱業務邏輯擷取結果

  6. 選取 COBOL 或 JCL 檔案,然後選擇檢視

  7. 變更流程圖和功能規則中的範圍,以檢閱不同層級的流程圖,包括支援程式碼。

  8. (選用) 檢閱產生的商業邏輯,該邏輯會以 JSON 格式存放在 Amazon S3 儲存貯體中。

如需詳細資訊,請參閱 AWS Transform 文件中的擷取商業邏輯

應用程式開發人員、應用程式擁有者

分解程式碼。

  1. 在左側導覽窗格中,展開分解程式碼,然後選擇分解為網域

  2. 動作清單中,選擇建立網域

  3. 輸入新網域的名稱,例如 Bill payment

  4. (選用) 提供描述。

  5. 尋找檔案搜尋列中,搜尋 CB00,然後選取檔案。

  6. 選擇標記為種子

  7. 確認種子旗標從變更為

  8. 選擇建立

  9. 選擇儲存

  10. 選擇分解

  11. 選擇網域名稱來檢閱分解輸出。

  12. 當分解完成時,選擇傳送至 AWS Transform

如需分解和種子的詳細資訊,請參閱 AWS Transform 文件中的分解

應用程式開發人員、應用程式擁有者

規劃遷移波紋。

規劃 CardDemo 應用程式的遷移波紋。遵循 AWS Transform 文件中的遷移波動規劃中的指示,以檢閱和編輯波動計畫。

應用程式開發人員、應用程式擁有者

重構程式碼。

  1. 將 CardDemo 大型主機應用程式重構為所有或所選網域檔案中的 Java 程式碼。遵循 AWS Transform 文件中的重構程式碼中的指示。

  2. 重構程序完成後,建置和部署現代化 Java 應用程式。請遵循 AWS Transform 文件中的建置和部署現代化應用程式重構後的指示。

應用程式開發人員、應用程式擁有者

(選用) 使用 Reforge 改善 Java 程式碼。

  1. 建立新的任務,然後輸入 的目標Reforge the code

  2. 輸入已透過 進行現代化之專案的 AWS Transform。此專案應該在您的 Amazon S3 儲存貯體中。

  3. 輸入 Java 類別清單,指定要複寫的服務類別。

  4. 檢閱 Amazon S3 儲存貯體中產生的輸出。

如需詳細資訊,請參閱 AWS Transform 文件中的重新建構

應用程式開發人員、應用程式擁有者

簡化部署。

AWS Transform 可以為 CloudFormation AWS CDK或 Terraform 提供基礎設施作為程式碼 (IaC) 範本。這些範本可協助您部署核心元件,包括運算、資料庫、儲存和安全資源。

  1. 在 AWS Transform 聊天介面中,輸入 來請求範本Share the mainframe refactor <service> templates,其中 <service>是其中一個支援的 IaC 服務。

  2. 使用您偏好的服務部署範本。例如,請參閱下列資源:

如需詳細資訊,請參閱 AWS Transform 文件中的部署功能

應用程式開發人員、應用程式擁有者

故障診斷

問題解決方案

您無法在 AWS Transform Web 應用程式中檢視原始程式碼或產生的文件。

將政策新增至 Amazon S3 儲存貯體的 CORS 許可,以允許 AWS Transform 做為原始伺服器。如需詳細資訊,請參閱 AWS Transform 文件中的 S3 儲存貯體 CORS 許可

相關資源

AWS 文件

其他 AWS 資源

影片和教學課程

注意

AWS Transform 先前稱為大型主機的 Amazon Q Developer 轉換