La inteligencia artificial actualizará el software obsoleto por usted

Las herramientas de IA de IBM permiten a los ingenieros explorar formas de utilizar software empresarial heredado.



El año pasado, IBM demostró cómo la IA puede realizar el trabajo repetitivo de mantener el software actualizando el código heredado. La compañía ahora ha introducido técnicas basadas en inteligencia artificial para recodificar aplicaciones heredadas para que se ejecuten en plataformas informáticas modernas.







Proyectos recientes de IBM denominados Mono2Micro y Application Modernization Accelerator(AMA) proporciona a los arquitectos de aplicaciones las herramientas para actualizar y reutilizar aplicaciones heredadas. Según Nick Fuller , director de servicios de nube híbrida en IBM Research, estas iniciativas están ayudando a acercar la IA al punto en que la IA puede migrar automáticamente de COBOL a Java.



Pero Fuller señala que estos enfoques avanzados basados ​​en inteligencia artificial actualmente solo pueden dividir el código de máquina heredado de programas monolíticos en microservicios separados. Queda un paso más para completar una traducción completa de un lenguaje de programación a otro, porque el kit de herramientas de AMA, aunque está diseñado para modernizar COBOL, actualmente solo proporciona un paso más en este proceso. “Traducir de un idioma a otro es un desafío fundamental para la IA, en la que estamos trabajando para hacer que parte de este código heredado funcione en un lenguaje de programación moderno”, agregó.



Mientras tanto, las herramientas avanzadas impulsadas por IA de IBM ofrecen algunas capacidades nuevas. En cuanto a Mono2Micro, esta herramienta primero analiza el código antiguo para revelar cualquier conexión oculta dentro de él, por ejemplo, varios componentes en la lógica empresarial subyacente que contienen numerosas llamadas y conexiones entre sí. Sería muy difícil y llevaría mucho tiempo para un arquitecto de aplicaciones completar una tarea de este tipo por su cuenta.



Mono2Micro utiliza técnicas de agrupación basadas en inteligencia artificial para agrupar códigos similares en grupos, lo que muestra más claramente cómo interactúan los grupos de códigos. Mono2Micro primero acepta el código, luego analiza el código fuente y el código objeto tanto estáticamente (analizando el programa antes de que se ejecute) como dinámicamente (analizando el programa mientras se está ejecutando).



Luego, la herramienta convierte los programas monolíticos basados ​​en Java y su lógica comercial asociada y las interfaces de usuario en microservicios. Refactorizar el monolito en microservicios separados con funcionalidad específica minimiza las conexiones que existían en el software cuando era un programa monolítico al cambiar la estructura de la aplicación sin cambiar su comportamiento externo.



El propósito del kit de herramientas de AMA es analizar y refactorizar aplicaciones desarrolladas previamente escritas en lenguajes heredados (COBOL, PL / I). En cuanto al kit de herramientas de AMA, combina el análisis estático del código fuente con una comprensión de la estructura de la aplicación para crear un gráfico que representa la aplicación heredada. Cuando se usa junto con técnicas de aprendizaje profundo, este enfoque basado en gráficos facilita la persistencia de datos.





Imagen: IBM Research

Image de la interfaz Mono2Micro




La estrategia de IA de IBM aborda los desafíos clave en el aprendizaje automático donde las entradas son el código y los parámetros para el análisis son el volumen y los valores múltiples. Las aplicaciones heredadas críticas suelen contener entre cientos de miles y millones de líneas de código. En este contexto, la aplicación de técnicas de aprendizaje automático (ML) a cantidades tan grandes de datos se puede hacer más eficiente con el concepto de incrustación.



Estas capas de incrustación son una forma de convertir datos en valores numéricos. La ventaja del método de incrustación es que le permite asignar una expresión numérica a una gran cantidad de código con muchos valores posibles. Lo mismo sucede, por ejemplo, al traducir el lenguaje humano natural a valores numéricos utilizando incrustaciones de palabras vectoriales. Esto también se hace en el contexto de un gráfico, ya que tiene que ver con el análisis de código.



“Incrustar capas es increíble porque sin ellas sería difícil obtener algo que parezca un sistema de aprendizaje automático eficiente”, dijo Fuller.

Agregó que en el caso del análisis de código, el sistema de aprendizaje automático ofrece cada vez mejor microservicios para una aplicación heredada refactorizada al replicar el contenido funcional de la aplicación.



Fuller señala: "En este punto, todavía no puede exhalar, pero el 70% del trabajo está detrás de usted, lo que significa que está mucho más cerca de refactorizar una aplicación importante en una arquitectura de microservicio".



All Articles