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 進行深度學習過程時保留資料。
AI 戰略解解決機器學習關鍵挑戰,適用於大量資料IBM 的人工智慧戰略解決了機器學習的關鍵挑戰,當資料輸入是程式碼,功能是分析: 數量和多重意義。遺留的、任務關鍵型的應用程式通常有數十萬到數百萬行程式碼。在這種背景下,透過嵌入的概念,將機器學習(ML)技術應用於如此大量的資料可以變得更加有效。
這些嵌入層表示一種將資料轉換為數值的方法。嵌入的強大之處在於它們將大量具有多種可能含義的程式碼對映到數值上。例如,透過使用“word”嵌入將自然人類語言翻譯成數值時,就是這樣做的。它也是在圖形上下文中完成的,因為它涉及到程式碼分析。
Nick Fuller 說,“嵌入層是巨大的,因為沒有它們,您將很難使任何東西都接近有效執行的機器學習系統。”
他還補充到,在程式碼分析方面,機器學習系統透過複製應用程式的功能,更好地向重構的舊應用程式推薦微服務。Nick Fuller 指出,“一旦達到這一點,你就不是完全自由了,但是基本上已經完成了 70% 你想要得到的東西,也就是一個關鍵任務的應用程式,它被重構成一個微服務架構。”