IBM watsonx Code Assistant (WCA) for Z 是一款 AI 辅助的大型机应用现代化解决方案,可支持开发人员更轻松地逐步对 COBOL 业务服务进行现代化改造和重构,并有选择地转换为针对 IBM Z 优化的高质量 Java 代码。 借助 watsonx Code Assistant for Z,客户将能够利用生成式 AI 和自动化工具来加速大型机应用程序的现代化进程,同时针对开发者的技能和实现价值的时间,解决面临的关键挑战。
IBM watsonx Code Assistant for Z 由以下主要组件组成(如上图所示):
IBM Application Discovery and Delivery Intelligence (ADDI) 扫描应用程序源代码,发现和了解应用程序系统中程序之间的关系。ADDI 还可对这些依赖关系进行可视化展示与报表生成,并支持代码库检索功能。
元数据库包含由 ADDI 完成的 COBOL 代码解析与重构过程的结果数据。IBM watsonx Code Assistant 使用元数据数据库中的数据来重构由多个 COBOL 程序、副本等组成的大型软件系统。
COBOL 源代码控制管理 (SCM) 为待转换的 COBOL 代码提供源代码控制。SCM 资源库还与 ADDI 项目相关联,以便对新增的 COBOL 服务进行扫描,并将元数据同步至元数据库。
重构助手 (Refactoring Assistant) 是 ADDI 与 IBM watsonx Code Assistant 服务之间的桥梁。Refactoring Assistant 连接至 ADDI,并提取已识别的 COBOL 业务服务,用于重构并转换为 Java 代码。
IBM watsonx Code Assistant Service (WCA for Z) 是一款基于 IBM watsonx.ai 的应用,它接收来自微软 Visual Studio Code (VS Code) 的提示请求,并与代码大语言模型 (LLM) 进行匹配运算。WCA for Z 可分析 COBOL 段落和 Java 类,并生成遵循领先实践的代码建议。
Code 大语言模型 (LLM) 是一款面向代码生成的生成式 AI 基础模型,基于面相 Z 平台的 IBM Granite 模型构建。该模型还可通过训练,纳入由厂商或企业用户生成的额外 COBOL 代码。
COBOL 程序是独立程序和/或大型软件系统的组件,可被重构为 Java 服务。
Java Code 是由面向 Z 平台的 WCA 生成的代码,可复刻输入的 COBOL 程序的运行逻辑。
上图展示了 WCA for Z 的各组件如何协同工作,帮助开发者将 COBOL 源代码转换为 Java 代码。
架构师利用 ADDI 的各项功能对 COBOL 代码进行解析与理解。本产品运行于 Windows 虚拟机,通过扫描源代码,为架构师提供应用程序洞察分析。本产品运行于 Windows 虚拟机,通过扫描源代码,为架构师提供应用程序洞察分析。该工具使架构师能够执行不同任务,包括可视化不同程序之间的关系、运行报告和搜索代码。架构师可以使用此工具,通过识别需要重构的潜在业务服务来开始单体 COBOL 应用程序的现代化改造,还可选择使用生成式 AI 将其转换为 Java。
ADDI 将分析结果发送到元数据库,这些结果反过来又会添加到 IBM watsonx Code Assistant Service 使用的数据集中。
COBOL 开发人员使用 Refactoring Assistant,从单体应用中提取架构师已识别出的 COBOL 业务服务。Refactoring Assistant 是一款基于容器的产品,在 Linux 虚拟机中运行。它提供 Web 界面,供开发人员可视化查看并选择相关代码,从而从多个现有程序中提取业务功能,创建出新的 COBOL 服务。Refactoring Assistant 安全连接到 ADDI,访问 ADDI 数据库中 COBOL 应用程序的分析结果。
COBOL 开发人员选择所有代码后,他们可以将新的 COBOL 程序导出到自己的工作站,继续在集成开发环境 (IDE) 中进行开发。
重构后的 COBOL 段落会存储在 Services Repo 中,供 Java 开发人员进行转换。
Java 开发人员使用 VS Code 中的 Z Open Editor,连接到 IBM Cloud 中的 WCA for Z 服务。该服务通过 IBM Cloud 账号开通,并提供对 AI 基础模型的访问权限。Z Open Editor 使 Java 开发人员能够按如下方式转换和生成代码:
首先,Java 开发人员在 VS Code 中选择一个 COBOL 段落,并将其内容发送到 WCA for Z 服务,转换为 Java 类定义。
随后,Java 开发人员在 VS Code 中选择单个 Java 类,WCA for Z 服务应为其生成 Java 代码行。
在上述两种情况下,WCA for Z 服务都使用其代码 LLM 生成内容。Code LLM 是一种生成式 AI 基础模型,它基于多种编程语言训练,并针对 COBOL 转 Java 场景进行了专项微调。
WCA for Z 将 AI 生成的响应发送回 VS Code,而 Java 开发人员可以使用领先的实践来评论和编译代码,以完成 Java 服务。