还记得一年前,全球新冠肺炎疫情暴发,美国政府被迫争抢平均年龄已达60岁的COBOL的程序员为他们解决失业救济系统的各种系统故障吗?不仅仅是政府机构,当下全球财富五百强企业的系统当中有90%都运行在COBOL基础之上。这种古老的语言面临后继无人的命运,IBM正在设法利用人工智能技术让COBOL凤凰涅槃。
IBM基于人工智能的工具允许工程师们探索如何从遗留企业软件中获取价值。
IBM在去年展示了人工智能是如何通过更新遗留代码来完成软件维护的繁琐工作。如今蓝色巨人IBM推出了一种基于人工智能的方法,它将旧的应用重新编码,从而使它可以在今天的计算平台上运行。
最新的IBM计划,被称为Mono2Micro和应用程序现代化加速器(Application Modernization Accelerator,AMA),为应用架构师提供了更新遗留应用并从中提取新价值的新工具。IBM研究部混合云服务总监Nick Fuller表示,这是向人工智能可以自动将COBOL所写程序转换为Java的日子迈出的一步。
Fuller提醒说,这些最新的人工智能方法目前只能将遗留的非模块化单体应用机器代码分解为独立的微服务。Fuller表示,编程语言的翻译还需要更进一步,因为尽管AMA工具包实际上是为了实现COBOL的现代化而设计的,但是它目前只是提供了实现现代化的渐进步骤。他补充道:“语言翻译是人工智能面临的基本挑战,我们正致力于用现代软件语言实现一些遗留代码。”
与此同时,IBM最新的人工智能工具也提供了一些新的功能。就拿Mono2Micro来说,它从分析旧代码开始,以揭示其中所有隐藏的连接,而应用程序架构师发现自己发现这些连接很难,也很耗费时间,比如底层业务逻辑中的多个组件,它们包含大量的调用和彼此之间的连接。
Mono2Micro利用人工智能聚类技术,将相似的代码进行分组,更清晰地揭示代码组的交互方式。当Mono2Micro摄取代码后,它将对源代码和目标代码进行静态分析(在程序运行前分析程序)和动态分析(在程序运行时分析程序)。
该工具随后将基于Java的单体程序及其相关业务逻辑和用户界面重构为微服务。这样的做法是将单体重构为具有特定功能的独立微服务,使软件作为单体程序时存在的连接最小化,并在不改变其外部行为的情况下改变应用程序的结构。
AMA工具包旨在分析和重构遗留应用程序,这些应用程序是用更古老的语言(COBOL、PL/I)编写的。在AMA工具包中,对源代码进行静态分析,并结合对应用程序结构的了解,以创建代表遗留应用程序的图。这种基于图的方法与深度学习方法结合使用时,有助于在AMA进行深度学习时保留数据。
Mono2Micro界面的图像
IBM的人工智能战略解决了机器学习所面临的关键挑战:在数据输入为代码、功能为分析的情况下,数量和多义性。遗留的关键任务应用通常有数十万行或数百万行代码。基于这一背景,通过嵌入的概念,将机器学习技术应用到如此大量的数据中,会变得更加有效。
这些嵌入式层代表了一种将数据转换成数值的方法。嵌入的威力在于,它们能将大量具有多种可能含义的代码映射为数值。举例来说,在使用“单词”嵌入将自然人类语言转换为数值形式时就是这样做的。这也适用于图的背景,因为它与代码分析相关。
Fuller说:“嵌入层非常庞大,因为没有它们,你将很难得到能够有效执行的机器学习系统。”
对于代码分析,他补充道,机器学习系统可以通过复制应用程序的功能,在为重构后的遗留应用推荐微服务方面会得到更好的效果。
Fuller指出:“一旦达到这一步,你将不会感到完全无家可归,但是就你所希望得到的来说,你基本上已经完成了70%的工作,即关键任务应用程序,它将被重构成微服务架构。”