使用实现 CardDemo 大型机应用程序的现代化 AWS Transform - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用实现 CardDemo 大型机应用程序的现代化 AWS Transform

Santosh Kumar Singh 和 Cheryl du Preez,Amazon Web Services

摘要

AWS Transform旨在加速大型机应用程序的现代化。它使用生成式 AI 来简化大型机现代化流程。它可以自动执行复杂的任务,例如:遗留代码分析、大型机文档、业务规则提取、将整体应用程序分解到业务领域以及代码重构。它通过自动执行复杂任务(例如应用程序分析和迁移顺序规划)来加速现代化项目。在分解单体应用程序时,可以 AWS Transform 智能地排列大型机应用程序转换的顺序,这可以帮助您并行转换业务功能。 AWS Transform 可以加快决策制定,提高运营灵活性和迁移效率。

此模式提供了 step-by-step一些说明,可帮助您 AWS Transform 通过使用来测试大型机现代化功能 CardDemo,这是开源大型机应用程序的示例。

先决条件和限制

先决条件

  • 活跃的 AWS 账户

  • AWS IAM Identity Center,已启用

  • 允许管理员启用的@@ 权限 AWS Transform

  • 允许管理员接受 Web 应用程序的亚马逊简单存储服务 (Amazon S3) Semple Service 连接请求的@@ AWS Transform 权限

限制

  • AWS Transform 仅在某些版本中可用 AWS 区域。有关支持的区域的完整列表,请参阅支持的区域 AWS Transform

  • AWS Transform 支持代码分析、文档生成、业务规则提取、分解以及从面向业务的通用语言 (COBOL) 重构到 Java。有关更多信息,请参阅功能和主要特性以及支持的大型机应用程序转换文件类型

  • 中有一个大型机转换功能的服务配额。 AWS Transform有关更多信息,请参阅 AWS Transform配额

  • 要在共享工作区上进行协作,所有用户都必须是与您 AWS IAM Identity Center 的 AWS Transform Web 应用程序实例关联的相同实例的注册用户。

  • Amazon S3 存储桶和 AWS Transform 必须位于相同的 AWS 账户 区域中。

架构

下图显示了您在此模式中设置的架构。

使用 AWS Transform 对存储在 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 代码时,重构引擎保留了 COBOL 的功能等效性。Reforge 是一个可选步骤,可在转换后使用。此步骤用于重构代码 LLMs ,使其与原生 Java 非常相似,这样可以提高可读性和可维护性。Reforge 还添加了人类可读的注释来帮助您理解代码,它还实现了现代编码模式和最佳实践。

工具

AWS 服务

  • AWS Transform使用 agentic 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 支持。有关更多信息,请参阅创建支持案例。您的意见对于服务增强和 future 发展非常有价值。

操作说明

Task描述所需技能

创建存储桶。

在启用该功能的相同 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 文档中的上传对象

应用程序开发者、 DevOps 工程师
Task描述所需技能

将用户添加到 IAM 身份中心。

将您的潜在用户添加到 IAM 身份中心。按照 AWS Transform 文档中在 IAM 身份中心添加用户中的说明进行操作。

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 管理员
Task描述所需技能

创建转换作业。

创建转型任务以实现 CardDemo 大型机应用程序的现代化。有关说明,请参阅 AWS Transform 文档中的创建和启动作业。当要求你在 AWS Transform 聊天界面中设置目标时,选择执行大型机现代化(IBM z/OS 到 AWS),然后选择分析代码、生成技术文档、业务逻辑、分解代码、规划迁移顺序和将代码转换为 Java。

应用程序开发人员、应用程序所有者

设置连接器。

建立指向包含 CardDemo 大型机应用程序的 Amazon S3 存储桶的连接器。此连接器 AWS Transform 允许访问存储桶中的资源并执行连续的转换功能。有关说明,请参阅 AWS Transform 文档中的设置连接器

AWS 管理员

执行代码分析。

  1. 指定资产位置页面上,输入您上传的 carddemo ZIP 文件的 Amazon S3 存储桶路径。

  2. 选择批准并发送至 AWS Transform。它开始分析代码。

  3. 在 “工作日志” 选项卡上监控状态。

  4. 分析完成后,在左侧导航窗格的分析代码下,选择查看代码分析结果

  5. (可选)选择 “下载” 以下载完整的资产列表、缺失的源代码和依赖文件。

有关更多信息,请参阅 AWS Transform 文档中的代码分析

应用程序开发人员、应用程序所有者

生成技术文档。

  1. 在左侧导航窗格的 “生成技术文档” 下,选择 “选择文件并配置设置”

  2. 展开 COBO L 或 JCL,然后选择一个或多个文件。

  3. 选择文档详细信息级别:

    • 摘要-提供范围内每个文件的高级概述。此外,还会给出每个文件的单行摘要。

    • 详细的功能规格 — 提供大型机应用程序转换范围内每个文件的全面详细信息。一些细节包括逻辑和流程、确定的业务规则、数据流、依赖关系、输入和输出处理以及各种交易详细信息。

  4. 选择 “发送至” AWS Transform

  5. 在 “工作日志” 选项卡中监控进度。

    注意

    文档生成时间从几分钟到几小时不等,具体取决于文件数量和代码行数。

  6. 完成后,选择 “查看文档结果”。

  7. 通过 Web 应用程序访问生成的文档或将其下载。生成的文档也存储在 Amazon S3 存储桶中。

  8. 在聊天界面中提问具体问题,浏览生成的文档。例如,你可以说 “告诉我 CBACT01C 的功能”。

有关更多信息,请参阅文档中的生成技术 AWS Transform 文档。

应用程序开发人员、应用程序所有者

提取业务逻辑。

  1. 在左侧导航窗格中,展开 “提取业务逻辑”,然后选择 “选择要提取业务逻辑的文件”

  2. 展开 COBO L 或 JCL,然后选择一个或多个文件。

  3. 选择 “发送至” AWS Transform

  4. 在 “工作日志” 选项卡中监控进度。

    注意

    业务逻辑提取时间从几分钟到几小时不等,具体取决于文件数量和代码行数。

  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 文档中的 Reforge

应用程序开发人员、应用程序所有者

简化部署。

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 大型机开发人员转换