SegmentFault思否 · 2021年03月01日

旧代码获新生!AI 重写的应用程序可用于最新计算平台

image.png

IBM 工程师正在基于 AI 工具探索从旧版企业软件中提取价值的方法。

去年,IBM 演示了 AI 如何通过更新旧代码来执行冗长的软件维护工作。现在,该公司又引入了基于 AI 的方法来重新编码旧的应用程序,这样它们就可以在当今的计算平台上运行。

AI 重新编写旧应用代码,让旧程序获得新应用

IBM 最新的计划被称为 Mono2Micro 和 Application Modernization Accelerator(AMA),为应用程序架构师提供了更新旧应用程序并从中获取新价值的新工具。

IBM 研究中心的混合云服务主管 Nick Fuller 说,这些举措代表着人工智能朝着能够自动将用 COBOL 编写的程序自动转换为 Java 的方向迈进了一步。

Nick Fuller 警告说,这些最新的 AI 方法目前只能将非模块化单片程序的旧机器代码分解为独立的微服务。他表示,尽管 AMA 工具包实际上是为现代化 COBOL 设计的,但在翻译编程语言时还需要再迈出一步,因为在这点上,它仅提供了现代化过程中的增量步骤。Fuller 补充说:“语言翻译对于人工智能来说是一个根本性的挑战,我们正在努力使一些旧代码能够在现代软件语言中运行。”

与此同时,IBM 最新的人工智能工具提供了一些新的功能。在 Mono2Micro 的例子中,它首先分析旧代码,以揭示应用程序架构师自己发现极其困难和耗时的所有隐藏的连接,比如底层业务逻辑中包含大量调用和相互连接的多个组件。

Mono2Micro 利用 AI 集群技术将相似的代码组合在一起,更清楚地揭示了代码组是如何交互的。一旦 Mono2Micro 接受了代码,它就会静态地(在程序运行之前对其进行分析)和动态地(在程序运行时对其进行分析)分析源代码和目标代码。

然后,该工具将基于 Java 的单一程序及其相关业务逻辑和用户界面重构为微服务。这种将整体软件重构为具有特定功能的独立微服务的做法,最大限度地减少了软件中存在的连接,在不改变外部行为的情况下改变了应用程序的结构。

AMA 工具箱的目的是分析和重构以更旧的语言(COBOL,PL / I)编写的旧应用程序。对于 AMA 工具包,使用对源代码的静态分析以及对应用程序结构的理解,来创建代表旧应用程序的图形。当与深度学习方法结合使用时,这种基于图的方法有助于在 AMA 进行深度学习过程时保留数据。

image.png

AI 战略解解决机器学习关键挑战,适用于大量数据

IBM 的人工智能战略解决了机器学习的关键挑战,当数据输入是代码,功能是分析: 数量和多重意义。遗留的、任务关键型的应用程序通常有数十万到数百万行代码。在这种背景下,通过嵌入的概念,将机器学习(ML)技术应用于如此大量的数据可以变得更加有效。

这些嵌入层表示一种将数据转换为数值的方法。嵌入的强大之处在于它们将大量具有多种可能含义的代码映射到数值上。例如,通过使用“word”嵌入将自然人类语言翻译成数值时,就是这样做的。它也是在图形上下文中完成的,因为它涉及到代码分析。

Nick Fuller 说,“嵌入层是巨大的,因为没有它们,您将很难使任何东西都接近有效执行的机器学习系统。”

他还补充到,在代码分析方面,机器学习系统通过复制应用程序的功能,更好地向重构的旧应用程序推荐微服务。Nick Fuller 指出,“一旦达到这一点,你就不是完全自由了,但是基本上已经完成了 70% 你想要得到的东西,也就是一个关键任务的应用程序,它被重构成一个微服务架构。”

扩展阅读:
万物互联的背后,有一座“数据围城”

segmentfault 思否

推荐阅读
关注数
4194
内容数
887
SegmentFault 思否旗下人工智能领域产业媒体,专注技术与产业,一起探索人工智能。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息