Scroll Top

IBM announces their AI can recode legacy software so it can run in the cloud


The world runs on legacy code, and it’s hard for people to maintain, operate, secure, upgrade, and de-bug so using AI to modernise it could solve lots of problems.


Love the Exponential Future? Join our XPotential Community, future proof yourself with courses from XPotential Universityconnect, watch a keynote, or browse my blog.

Last year, IBM demonstrated how Artificial Intelligence (AI) can perform the tedious job of software maintenance through the updating of legacy code. Now they’ve introduced AI based methods for re-coding old applications so that they can operate on today’s modern cloud computing platforms – something that is a major headache and a hugely expensive problem for most older companies, such as banks, that run hundreds of billions of dollars worth of legacy software.


See also
“Terrifying” new AI lets you create your very own DeepFakes using just text


The latest IBM initiatives, dubbed Mono2Micro and Application Modernization Accelerator (AMA), give app architects new tools for updating legacy applications and extracting new value from them. These initiatives represent a step towards a day when AI could automatically translate a program written in COBOL into Java, according to Nick Fuller, director of hybrid cloud services at IBM Research.

Fuller cautions that these latest AI approaches are currently only capable “of breaking the legacy machine code of non-modular monolithic programs into standalone microservices.” There’s still another step involved in translating the programming language because, while the AMA toolkit is in fact designed to modernize COBOL, at this point it only provides an incremental step in the modernization process, according to Fuller.


See also
Stanford's humanoid robotic diver recovers treasures from King Louis XIV's flagship


“Language translation is a fundamental challenge for AI that we’re working on to enable some of that legacy code to run in a modern software language,” he added.

In the meantime, IBM’s latest AI tools offer some new capabilities. In the case of Mono2Micro, it first analyses the old code to reveal all the hidden connections within it that application architects would find extremely difficult and time consuming to uncover on their own, such as the multiple components in the underlying business logic that contain numerous calls and connections to each other.

Mono2Micro leverages AI clustering techniques to group similar code together, revealing more clearly how groups of code interact. Once Mono2Micro ingests the code, it analyses the source and object code both statically, in other words analysing the program before it runs, and dynamically, analysing the program while it’s running.


See also
Samsung AI tech turns your Facebook profile photos into 3D DeepFakes


The tool then refactors monolithic Java-based programs and their associated business logic and user interfaces into microservices. This refactoring of the monolith into standalone microservices with specific functions minimizes the connections that existed in the software when it was a monolithic program, changing the application’s structure without altering its external behaviour.

The objective of the AMA toolkit is to both analyse and refactor legacy applications written in even older languages (COBOL, PL/I). For the AMA toolkit, static analysis of the source code coupled with an understanding of the application structure is used to create a graph that represents the legacy application. When used in conjunction with deep learning methods, this graph-based approach facilitates data retention as AMA goes through deep-learning processes.


See also
Three people played Tetris telepathically together in world first


IBM’s AI strategy addresses the key challenges for machine learning when the data input is code and the function is analysis: volume and multiple meanings. Legacy mission critical applications are typically hundreds of thousands to millions of lines of code. In this context, applying machine learning (ML) techniques to such large volumes of data can be made more efficient through the concept of embeddings.

These embedding layers represent a way to translate the data into numerical values. The power of embeddings comes from them mapping a large volume of code with multiple possible meanings to numerical values. This is what is done, for example, in translating natural human language to numerical values using “word” embeddings. It is also done in a graph context as it relates to code analysis.


See also
Nvidia and MIT open source an AI that creates crazy good synthetic videos


“Embedding layers are tremendous because without them you would struggle to get anything approaching an efficiently performing machine-learning system,” said Fuller.

He added that in the case of code analysis, the ML system gets better in recommending microservices for the refactored legacy application by replicating the application functionality.

“Once you get to that point, you’re not quite home free, but you’re essentially 70 percent done in terms of what you’re looking to gain, namely a mission critical application that is refactored into a microservices architecture,” he said.

Related Posts

Leave a comment


Awesome! You're now subscribed.

Pin It on Pinterest

Share This