COBOL 现代化 是指更新或转换 COBOL 应用程序的过程,这些应用程序通常被视为旧版系统,但对企业的运营仍然至关重要。应用程序现代化流程包括采用最新的软件开发实践、将 COBOL 代码重构为更现代的编程语言或迁移到更新的平台。
实现 COBOL 系统现代化,有助于保留任务关键型逻辑和功能。同时还能增强可维护性、改善与当今复杂混合环境的互操作性、提高可扩展性,并降低运营成本。
COBOL 现代化不仅仅是将 COBOL 代码转换成一种更新的编程语言。还必须仔细考虑该代码驻留和运行的大型机系统或分布式平台,以及与之交互的技术栈。这是一项系统级工程工作,不仅包括代码转换,还涉及应用程序集成、数据架构重新设计、运行时替换、事务处理完整性和安全性等因素。
面向商业的通用语言 (COBOL) 是用于大型机编程的最广泛使用的语言之一。它专为业务数据处理需求而构建。
COBOL 的第一个版本于 1960 年推出。几十年后,据估计仍有 2500 亿行 COBOL 代码在生产中使用,遍及金融服务、政府、物流、制造和零售等多个行业。1并且随着大型机系统继续作为全球企业的主力,COBOL 依然具有相关性。
基于 COBOL 的应用程序以其卓越的数据处理和文件处理能力以及可靠、稳定的性能而闻名。然而,公司可能会考虑使用现代化应用程序,以帮助提高系统与数据源之间的互操作性, 维持符合监管或合规要求的标准,并确保利用现有资源取得长期成功 。如果以战略眼光加以管理,现代化流程可以 提供审查代码和系统的机会,为现有代码提供解释,验证 需求,并确定未来的高效工作流。
合规与安全
互操作性
可维护性
将过时的 COBOL 应用程序与当代基础设施集成可能是一项复杂的工作。互操作性不足会减缓创新和业务增长,导致公司落后于竞争对手。
COBOL 代码库可能冗长而庞杂,代码文档不充分或已过时。其紧耦合的组件使调试变得困难,而添加新功能或升级现有功能可能具有挑战性。因此,它们常常拖累使用和维护这些系统的团队的效率和生产力。
通过 Think 时事通讯,了解有关 AI、自动化、数据等方面最重要且最有趣的行业趋势。请参阅 IBM 隐私声明。
在踏上 COBOL 现代化之旅时,企业可以采取以下一种或多种途径:
封装
应用 DevOps 实践
代码重构
这种现代化方法将单体的 COBOL 程序转换为模块化的微服务。业务功能被封装为微服务,然后作为应用程序编程接口 (API) 公开。
现代化项目往往是庞大而艰巨的任务。以下是一些让前路更顺畅的技巧:
评估与规划
从小处着手
逐步扩展
测试和记录
评估 COBOL 代码库是关键的第一步,旨在检查代码状态及其复杂性,确定现代化能产生显著影响的领域,并决定最佳方法。然后,团队必须制定一份概述现代化流程的计划,包括范围和时间表。
从小处着手有助于管理现代化工作的风险。例如,公司可以首先处理简单的优化或重构任务,或开始封装或迁移次要业务功能。这样既能保持关键组件的运行,又能最大限度地减少停机时间,并限制出现的任何问题所造成的影响。
组织随后可以扩展到 COBOL 系统中更关键的模块,运用从先前迭代中汲取的经验教训。这使他们能够以稳定且可持续的步伐实现旧版应用程序的现代化,并为他们处理更复杂的转型积累必要的经验。
必须进行彻底的测试,以验证功能和特性,并确保现代化后的系统仍按预期工作。此外,任何变更都必须记录在案,无论是新代码或配置、API 定义还是 DevOps 工作流。
人工智能可以增强 COBOL 现代化过程。特别是生成式 AI 工具,由在 COBOL 等编程语言上经过训练或微调的大语言模型 (LLM) 驱动,使它们能够分析大型机代码。
然而,AI 并没有消除对大型机系统的需求——反而进一步增加了这种需求。AI 虽能加速 COBOL 现代化、弥合因 COBOL 开发人员退休造成的技能缺口,但大型机作为展现可靠性、可扩展性和事务弹性的平台,依然至关重要。在进行现代化时所做出的战略选择,可以决定流程的顺利程度以及项目的成功程度。
以下是 AI 可以帮助完成的一些现代化任务:
代码理解与解释
代码生成与重构
代码转换与优化
测试生成与代码文档
例如,Swimm 的应用程序理解平台将静态分析与大语言模型相结合,提取业务规则,并识别 COBOL 用户界面中每个元素的依赖关系和变量流。与此同时,IBM watsonx Code Assistant for Z 使用 AI 智能体来理解大型机代码和技术文档,并生成自然语言解释。
一些 AI 支持的应用程序具有聊天机器人界面,可根据自然语言提示生成新代码。其他则融入 IDE(集成开发环境)中,提供实时的内联代码建议。IBM watsonx Code Assistant for Z 更进一步,可自动将 COBOL 应用程序重构为模块化的业务服务。
多智能体系统,例如 Persistent Systems 开发的系统,使用多个 AI 智能体将 COBOL 代码转换为 Java 等现代编程语言。一个编码器智能体执行转换,而一个审查器智能体检查转换后的代码中是否有错误或优化与精炼的机会。
人工智能驱动的工具可以自动生成测试,以比较新代码与原始 COBOL 代码的语义等效性。它们还可以生成内联注释,记录某些代码片段的功能。
与任何 AI 应用程序一样,团队仍必须保持谨慎,验证输出的准确性,并对任何生成的代码或建议的修复与变更进行测试。
1. 特别报告:COBOL 调查结果证明了其普遍性、价值和光明前景,TechChannel,2021 年 10 月 11 日