Las integraciones de sistemas son una parte esencial de . Si no se sigue la debida diligencia, la lógica del negocio puede filtrarse fácilmente en la capa de integración. Esto puede resultar en una arquitectura de sistema deficiente, lo que hace más difÃcil su mantenimiento e implementación de futuras necesidades.
Ìý
Existen varias maneras de abordar este problema, pero un método particularmente interesante es el uso de la IA generativa. Esto puede sonar sorprendente, dada la novedad de la tecnologÃa, sin mencionar los desafÃos bien documentados sobre la precisión y las alucinaciones, pero con el enfoque adecuado y la supervisión humana apropiada, puede ser muy efectivo.
Ìý
EspecÃficamente, se recomienda un enfoque en dos pasos:
- En el primer paso, analizamos el código heredado para entender y extraer la lógica de negocio del sistema.
- En el segundo paso, utilizamos ese análisis para generar el código en la tecnologÃa deseada usando la herramienta de IA generativa.
Ìý
El código generado se revisa y refactoriza manualmente para dejarlo listo para producción.


Marco para la modernización del código heredado
Poniéndolo en práctica
Ìý
Para demostrar cómo funciona, aplicamos este enfoque a una integración de aplicaciones basada en para modernizar un sistema heredado construido con BW (Business Works). Tibco BW es una de las varias soluciones utilizadas para integrar flujos de trabajo empresariales que abarcan varios subsistemas de la plataforma empresarial.
Ìý
Existen múltiples razones para alejarse de este sistema heredado, entre ellas:
- Mucha redundancia de código dentro de la aplicación sin reutilización.
- Una arquitectura de sistema compleja que es difÃcil de mantener y adaptar a las necesidades cambiantes del negocio.
- Costos de licenciamiento involucrados en las renovaciones periódicas (~$400-$1500 mensuales por la suscripción a Tibco Cloud Integration).
Ìý
Al usar IA generativa en el proceso de dos pasos descrito anteriormente, pudimos modernizar los flujos de trabajo de Tibco BW, migrándolos a una arquitectura basada en microservicios. Cuando un sistema empresarial tÃpico contiene cientos o incluso miles de flujos de trabajo de integración, el valor de la IA generativa deberÃa ser evidente: puede manejar la modernización a una escala que serÃa increÃblemente difÃcil de hacer manualmente.


Diagrama de arquitectura
Paso uno: Analizando flujos de trabajo heredados
Ìý
Para analizar el flujo de trabajo, pasamos un archivo XML de Tibco BW a través de la herramienta basada en IA generativa. El equipo técnico comparó la salida de la herramienta con la implementación del flujo de trabajo y determinó que el análisis fue preciso.
Ìý
Paso dos: Generando nuevo código
Ìý
Luego, el análisis se pasó de nuevo por la herramienta, esta vez para generar el código y las pruebas necesarias en Spring Boot. Con una revisión rápida del código desde una perspectiva de diseño e implementación, y con una pequeña cantidad de refactorización por parte del equipo de desarrollo, pudimos analizar y modernizar rápidamente todo el flujo de trabajo. Según la experiencia del equipo utilizando un enfoque convencional para modernizar el flujo de trabajo y comparándolo con el enfoque basado en IA generativa, se concluyó que el enfoque basado en IA generativa nos ayudó a ahorrar aproximadamente un 60% en los esfuerzos de análisis y desarrollo. Esto implica que el enfoque de modernización de código basado en IA generativa resultarÃa en un ahorro significativo de esfuerzo, particularmente en el análisis y desarrollo de código.


Proceso de flujo
Es importante señalar que este proceso no fue completamente fluido. Hubo algunos desafÃos que debimos abordar al usar la IA generativa:
- La salida de la herramienta basada en IA generativa necesita ser refinada continuamente, ajustando el prompt dado para mejorar la precisión.
- La salida de la herramienta de IA generativa debe revisarse, mejorarse y refactorizarse adecuadamente antes de fusionarse con la rama principal.
- El modelo GPT-4 tiene un lÃmite de entre 8K o 32K tokens, incluyendo el prompt. Tuvimos que planificar que aproximadamente el 20% del trabajo se realizarÃa utilizando otro enfoque, como dividir el XML en partes más pequeñas o refactorizar el flujo de trabajo manualmente desde cero.
- Debido a problemas de cumplimiento y propiedad intelectual, el código existente no podÃa salir del entorno organizacional. Para abordar esto, alojamos un modelo GPT-4 dedicado en la infraestructura de la organización.
Ìý
Para grandes empresas, el volumen de flujos de integración y el esfuerzo de implementación requerido pueden convertirse en los mayores obstáculos. Es por eso que las herramientas basadas en IA generativa pueden ser de gran ayuda.
Ìý
Aquà están los puntos clave que creo que otros pueden aprender de nuestra experiencia:
Ìý
- Las herramientas basadas en IA generativa pueden ayudar a analizar rápidamente el código de aplicaciones heredadas escritas en lenguajes/herramientas antiguos con buena precisión.
- Utilizar IA generativa en una iniciativa de modernización de sistemas heredados puede acelerar el análisis y reducir el esfuerzo necesario para refactorizar o escribir nuevo código.
- También puedes usar la herramienta para construir una red de seguridad, compuesta por pruebas unitarias y de integración, en la base de código modernizada.
Ìý
Aunque usamos este marco para modernizar flujos de trabajo de Tibco BW, vale la pena señalar que también se puede utilizar para modernizar código escrito en otros lenguajes y marcos. Por ejemplo, este marco podrÃa utilizarse para:
Ìý
- Modernizar flujos de integración construidos con Mule ESB.
- Analizar y modernizar código implementado con tecnologÃas antiguas como COBOL en mainframes.
- Analizar código escrito en stacks antiguos como Fortran y JAX-WS.
- Y mucho más...
Ìý
Modernizar una aplicación construida en una pila heredada puede ser muy desafiante. Esto a veces desanima a las organizaciones de llevarlo a cabo, incluso cuando la modernización podrÃa ofrecer un valor sustancial. Afortunadamente, las herramientas basadas en IA generativa pueden ayudar a que estos desafÃos sean más manejables. Desde el análisis del sistema hasta el desarrollo, usar IA generativa en la modernización de sistemas heredados tiene el potencial de garantizar que las aplicaciones modernizadas se construyan con código de calidad y caracterÃsticas arquitectónicas robustas, sin consumir todo tu tiempo y recursos.
Aviso legal: Las declaraciones y opiniones expresadas en este artÃculo son las del autor/a o autores y no reflejan necesariamente las posiciones de ÷ÈÓ°Ö±²¥.