使用实现 CardDemo 大型机应用程序的现代化 AWS Transform - AWS 规范指引

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

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

Santosh Kumar Singh 和 Cheryl du Preez,Amazon Web Services

Summary

AWS Transform 旨在加速大型机应用程序现代化。它借助生成式人工智能简化大型机现代化流程,可以自动执行复杂的任务,例如:遗留代码分析、大型机文档、业务规则提取、将单体应用程序分解到业务领域、代码重构。因为自动执行复杂的任务(例如应用程序分析和迁移顺序规划),现代化项目得以加快推进。在分解单体应用程序时,可以 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 代理互动。您可以用英语向人工智能代理发出有关特定任务的指令。有关更多信息,请参阅 AWS Transform 文档中的人为循环 (HITL)

  3. 人工智能代理解释用户的指令,创建作业计划,将作业划分为多个可执行的任务,然后自动采取相应行动。用户可以查看和批准转换。转换任务包括如下事项:

    • 代码分析 — 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 管理控制台 或使用创建案例AWS 支持。有关更多信息,请参阅创建支持案例。您的意见对于改进服务和未来的产品开发非常宝贵。

操作说明

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 Identity Center。

将您的潜在用户添加到 IAM Identity Center。按照 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. 展开 COBOLJCL,然后选择一个或多个文件。

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

    • 摘要 – 提供范围内每个文件的简要概述。并为每个文件提供一行摘要。

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

  4. 选择 “发送至” AWS Transform

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

    注意

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

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

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

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

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

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

提取业务逻辑。

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

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

  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 类列表以指定要 reforge 哪些服务类。

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