View a markdown version of this page

Transforma Easytrieve a idiomas modernos mediante el uso personalizado AWS Transform - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Transforma Easytrieve a idiomas modernos mediante el uso personalizado AWS Transform

Shubham Roy, Subramanyam Malisetty y Harshitha Shashidhar, de Amazon Web Services

Resumen

Este patrón proporciona una guía prescriptiva para una transformación más rápida y con menor riesgo de las cargas de trabajo del generador de informes Broadcom Easytrieve (EZT) de mainframe mediante una transformación personalizada.AWS Transform language-to-language Aborda los desafíos de modernizar las cargas de trabajo EZT exclusivas y exclusivas de mainframe que se utilizan habitualmente para el procesamiento de datos por lotes y la generación de informes. Este patrón reemplaza los enfoques de migración costosos, prolongados y propensos a errores, que se basan en herramientas patentadas y una experiencia poco común en mainframe, por una solución automatizada de inteligencia artificial basada en agentes que usted crea. AWS Transform

Este patrón proporciona una definición de transformación personalizada lista para usar para la transformación EZT. La definición utiliza varias entradas de transformación:

  • Reglas de negocio de EZT extraídas mediante un AWS Transform mainframe

  • Documentación de referencia sobre la programación de EZT

  • Código fuente de EZT

  • Conjuntos de datos de entrada y salida de mainframe

AWS Transform custom utiliza estas entradas para generar aplicaciones funcionalmente equivalentes en los lenguajes de destino modernos, como Java o Python.

El proceso de transformación utiliza funciones inteligentes de ejecución de pruebas, depuración automática y corrección iterativa para validar la equivalencia funcional con los resultados esperados. También es compatible con el aprendizaje continuo, lo que permite la definición de transformación personalizada para mejorar la precisión y la coherencia en las transformaciones sucesivas. Con este patrón, las organizaciones pueden reducir el esfuerzo y el riesgo de migración, hacer frente a la deuda técnica especializada en mainframes y modernizar las cargas de trabajo de EZT AWS para mejorar la agilidad, la fiabilidad, la seguridad y la innovación.

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta activa AWS  

  • Una carga de trabajo EZT para mainframe con datos de entrada y salida 

Limitaciones

Limitaciones de alcance

  • Compatibilidad con el lenguaje: solo se admite la transformación de EZT a Java para este patrón de transformación específico. 

  • Fuera de alcance: la transformación de otros lenguajes de programación de mainframe requiere una nueva definición de transformación personalizada en formato personalizado. AWS Transform

Limitaciones del proceso

  • Dependencia de la validación: sin los datos de salida de referencia, la transformación no se puede validar. 

  • Lógica patentada: las utilidades altamente específicas y desarrolladas a medida requieren documentación de usuario adicional y materiales de referencia para que el agente de IA las interprete correctamente.

Limitaciones técnicas

Versiones de producto

  • AWS Transform CLI — Última versión

  • Node.js: versión 20 o posterior

  • Git — Última versión

  • Entorno de destino

    • Java: versión 17 o posterior

    • Spring Boot: la versión 3.x es el objetivo principal de las aplicaciones refactorizadas

    • Maven: versión 3.6 o posterior

Arquitectura

Pila de tecnología de origen

  • Sistema operativo: IBM z/OS

  • Lenguaje de programación — Easytrieve, lenguaje de control de tareas (JCL)

  • Base de datos: IBM DB2 for z/OS, método de acceso al almacenamiento virtual (VSAM), archivos planos de mainframe

Pila de tecnología de destino

  • Sistema operativo — Amazon Linux

  • Computación: Amazon Elastic Compute Cloud (Amazon EC2)

  • Lenguaje de programación: Java

  • Base de datos Amazon Relational Database Service (Amazon RDS)

Arquitectura de destino

diagrama de arquitectura de destino para usar AWS Transform custom para transformar EZT en código moderno.

Flujo de trabajo

Esta solución utiliza un patrón de transformación de language-to-language migración AWS Transform personalizado para modernizar las aplicaciones Easytrieve (EZT) de mainframe a Java mediante un flujo de trabajo automatizado de cuatro pasos.

Paso 1: Proporcione su código heredado a Mainframe, que: AWS Transform

  • Analiza el código

  • Extrae la lógica empresarial de alto nivel

  • Extrae la lógica empresarial detallada.

Paso 2: Crea una carpeta con las entradas necesarias:

  • Reglas de negocio de EZT extraídas mediante un AWS Transform mainframe 

  • Documentación de referencia sobre la programación de EZT 

  • Código fuente de EZT

  • Conjuntos de datos de entrada y salida de mainframe

Paso 3: Crear y ejecutar una definición de transformación personalizada

  1. Utilice la AWS Transform CLI para describir los objetivos de transformación en lenguaje natural. AWS Transform custom analiza las guías de programación BRE, código fuente y EZT para generar una definición de transformación personalizada para que los desarrolladores la revisen y aprueben.

  2. A continuación, invoque la AWS Transform CLI con el código fuente del proyecto. AWS Transform custom crea planes de transformación, convierte EZT a Java tras su aprobación, genera archivos auxiliares, crea el JAR ejecutable y valida los criterios de salida.

  3. Utilice el agente de validación para probar la equivalencia funcional con la salida del mainframe. El agente de autodepuración corrige los problemas de forma autónoma. Los resultados finales incluyen informes de validación de código Java y HTML validados.

Automatización y escala

  • Arquitectura de ejecución multimodo de Agentic AI: AWS Transform custom aprovecha la IA de Agentic con 3 modos de ejecución (conversacional, interactivo y totalmente automatizado) para automatizar tareas de transformación complejas, como el análisis de código, la refactorización, la planificación de la transformación y las pruebas.

  • Sistema de comentarios sobre el aprendizaje adaptativo: la plataforma implementa mecanismos de aprendizaje continuo mediante el análisis de muestras de código, el análisis de la documentación y la integración de los comentarios de los desarrolladores con las definiciones de transformación versionadas.

  • Arquitectura de procesamiento simultáneo de aplicaciones: el sistema permite la ejecución paralela distribuida de múltiples operaciones de transformación de aplicaciones simultáneamente en una infraestructura escalable.

Tools (Herramientas)

Servicios de AWS  

  • AWS Transform custom es un servicio de IA de agencia que se utiliza para transformar las aplicaciones EZT heredadas en lenguajes de programación modernos. 

  • AWS Transformutiliza la IA agentic para ayudarlo a acelerar la modernización de las cargas de trabajo heredadas, como .NET, los mainframes y las cargas de trabajo. VMware

  • AWS Transform para mainframe se utiliza para analizar las aplicaciones EZT heredadas a fin de extraer la lógica empresarial integrada y generar una documentación exhaustiva sobre las reglas empresariales, que incluye resúmenes de lógica, definiciones de acrónimos y bases de conocimiento estructuradas. Sirven como datos de entrada para personalizarlos. AWS Transform  

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos. Amazon S3 sirve como el servicio de almacenamiento principal de AWS Transform Custom para almacenar definiciones de transformaciones, repositorios de código y resultados de procesamiento.

  • AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos. La IAM proporciona un marco de seguridad AWS Transform personalizado, gestionando los permisos y el control de acceso para las operaciones de transformación.

Otras herramientas

  • AWS Transform CLI es la interfaz de línea de comandos AWS Transform personalizada, que permite a los desarrolladores definir, ejecutar y administrar transformaciones de código personalizadas a través de conversaciones en lenguaje natural y modos de ejecución automatizados. AWS Transform custom admite sesiones interactivas (atx custom def exec) y transformaciones autónomas para una modernización escalable de las bases de código.

  • El sistema de control de versiones de Git se utiliza para la protección de sucursales, el seguimiento de cambios y las capacidades de reversión durante la aplicación de correcciones automatizadas. 

  • Java es el lenguaje de programación y el entorno de desarrollo utilizados en este patrón. 

Repositorio de código

El código de este patrón está disponible en Easytrieve to Modern Languages Transformation with AWS Transform Custom on. GitHub

Prácticas recomendadas

  • Establezca una estructura de proyecto estandarizada: cree una estructura de cuatro carpetas (código fuente, bre-doc, datos de entrada y datos de salida), valide la integridad y documente el contenido antes de la transformación.

  • Utilice archivos de referencia para la validación: utilice archivos de entrada de referencia de producción, realice una comparación con la salida de referencia y acepte la tolerancia cero ante las desviaciones. byte-by-byte

  • Utilice todos los documentos de referencia disponibles: para aumentar la precisión de la transformación, proporcione todos los documentos de referencia disponibles, como los requisitos empresariales y las listas de verificación de codificación.

  • Proporcione información para mejorar la calidad: AWS Transform Custom extrae automáticamente lo aprendido de las ejecuciones de transformación (comentarios de los desarrolladores, problemas de código) y crea elementos de conocimiento para ellos. Después de cada transformación exitosa, revise los elementos de conocimiento y apruebe el que le gustaría utilizar en futuras ejecuciones. Esto mejora la calidad de las futuras transformaciones.

Epics

TareaDescripciónHabilidades requeridas

Configure AWS Transform para un mainframe.

Configure el entorno y los permisos necesarios AWS Identity and Access Management (IAM) para respaldar los flujos de trabajo de modernización del mainframe. Para obtener más información, consulte la documentación sobre la transformación de las aplicaciones de mainframe. AWS

Desarrollador de aplicaciones

Genere documentación sobre Business Rule Extract (BRE).

Extraiga la lógica empresarial del código EZT o COBOL fuente para generar documentación funcional. Para obtener instrucciones sobre cómo iniciar el proceso de extracción y revisar el resultado, consulte Extraer la lógica empresarial en la AWS Transform documentación.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Aprovisione la infraestructura de AWS Transform forma personalizada.

Implemente la infraestructura lista para la producción necesaria para alojar un entorno de transformación seguro. Esto incluye una instancia privada de Amazon EC2 configurada con las herramientas, los permisos de IAM y la configuración de red necesarios para convertir el código de Easytrieve. Para aprovisionar el entorno mediante la infraestructura como código (IaC), siga las instrucciones de implementación del repositorio Personalizado y transformado a lenguajes modernos de Easytrieve. AWS Transform GitHub

Desarrollador de aplicaciones, administrador de AWS

Prepare los materiales de entrada para la transformación.

  1. Introduzca este comando para crear la estructura de carpetas:

    mkdir -p /root/transform-workspace/mainframe-source/{source-code,bre-doc,input-data,output-data}

    Esto crea las siguientes carpetas:

    • source-code— Almacenamiento para el código fuente de EZT

    • bre-doc— Almacenamiento para el documento BRE generado

    • input-data— Almacenamiento de los datos de entrada para la ejecución por lotes del mainframe (Sequential/Text/DB2 archivos en formato EBCDIC)

    • output-data— Almacenamiento de los datos de salida en el mainframe tras la ejecución por lotes (Sequential/Text/DB2 archivos en formato EBCDIC)

  2. Introduce estos comandos para inicializar el repositorio de Git:

    cd /root/transform-workspace/mainframe-source/source-code git init git add . git commit -m "Initial commit"
Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Cree una definición de transformación.

Siga estos pasos para crear la definición de transformación personalizada para la transformación de EZT a Java con validación funcional.

  1. Ve al repositorio de código de este patrón y copia el contenido de la documents carpeta. Esto debería incluir transformation_definition.md, summaries.md y la carpeta con la guía de codificación EZT. document_references

  2. Cargue ese contenido en la carga de la AWS Transform CLI en la ubicación que elija y anote la ubicación de la ruta que se utilizará en los siguientes pasos.

  3. Invoque AWS Transform desde la CLI con el atx comando.

  4. Proporcione este mensaje en la CLI: Crear una transformación personalizada con mi archivo de definición de transformación disponible en la ruta AWS Transform <path to content from step #2 > crea una nueva definición de transformación personalizada para la transformación de EZT a Java.

  5. Revise la definición de transformación y realice los cambios necesarios.

Desarrollador de aplicaciones

Publique la definición de transformación.

Tras revisar y validar la definición de transformación, puede publicarla en el registro AWS Transform personalizado con un mensaje en lenguaje natural y proporcionar un nombre de definición, por ejemplo, EasyTrieve-to-Java-Migration.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Revise el resumen de validación de la transformación.

Antes de ejecutar la transformación AWS Transform personalizada, compruebe que la input-data carpeta contiene los archivos de datos necesarios capturados antes de ejecutar el trabajo por lotes del mainframe. Tras ejecutar el trabajo por lotes en el ordenador central, asegúrese de que la output-data carpeta capture los archivos resultantes. Todos los archivos están en formato Sequential/Text/DB 2 y utilizan la codificación EBCDIC según los requisitos de ejecución.

  • Coloque los datos de entrada en la carpeta input-data/

  • Coloque la salida de referencia en output-data/ la carpeta

Desarrollador de aplicaciones

Ejecute el trabajo de transformación personalizado.

Ejecute el comando AWS Transform CLI y elija la opción interactiva o no interactiva:

:# Non-interactive execution (fully autonomous): atx custom def exec \ --transformation-name "Easytrieve-to-Java-Migration" \ --code-repository-path ~/root/transform-workspace/mainframe-source/source-code \ --build-command "mvn clean install" \ --non-interactive \ --trust-all-tools \ # Interactive execution (with human oversight): atx custom def exec \ -n "Easytrieve-to-Java-Migration" \ -p ~/root/transform-workspace/mainframe-source/source-code \ -c "mvn clean install" # Resume interrupted execution: atx -resume # OR atx --conversation-id <conversation-id>

AWS Transform se valida automáticamente mediante build/test comandos durante la ejecución de la transformación.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Revise el resumen de validación de la transformación.

  1. Espere AWS Transform a que el código se valide automáticamente mediante los comandos de compilación y prueba.

  2. Ingresa este comando para buscar la última sesión:

    LATEST_SESSION=$(ls -t ~/.aws/atx/custom/ | head -1
  3. Introduzca este comando para ver el resumen de la validación:

    cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_summary.md
  4. Introduzca este comando para comprobar el estado general:

    grep "OVERALL STATUS" ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_summary.md
Desarrollador de aplicaciones

Acceda a los informes de validación.

Introduzca estos comandos para revisar los artefactos de validación detallados:

# Full validation report cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_report.html # Generated code location ls ~/.aws/atx/custom/$LATEST_SESSION/generated/ # Execution logs cat ~/.aws/atx/custom/$LATEST_SESSION/logs/execution.log
Desarrollador de aplicaciones

Habilite los elementos de conocimiento para un aprendizaje continuo.

Mejore la precisión de la transformación futura al incluir los elementos de conocimiento sugeridos en su configuración persistente. Tras una transformación, el agente almacena los patrones identificados y las reglas de mapeo en el directorio de sesión local. Para revisar y aplicar estos elementos aprendidos, ejecute estos comandos en su instancia de Amazon EC2:

# List all knowledge items for a specific transformation definition atx custom def list-ki -n <transformation-name> # Retrieve the details of a specific knowledge item atx custom def get-ki -n <transformation-name> --id <id> # Update the status of a knowledge item (ENABLED or DISABLED) atx custom def update-ki-status -n <transformation-name> --id <id> --status ENABLED # Update the knowledge item configuration to enable auto-approval atx custom def update-ki-config -n <transformation-name> --auto-enabled TRUE
Desarrollador de aplicaciones

Resolución de problemas

ProblemaSolución

Configuración de las rutas de entrada y salida

Los archivos de entrada no se leen o los archivos de salida no se escriben correctamente. 

Especifique la ruta completa del directorio donde se almacenan los archivos de entrada e indique claramente la ubicación en la que debe escribirse la salida. Asegúrese de que los permisos de acceso adecuados estén configurados para estos directorios. 

Las mejores prácticas incluyen el uso de rutas absolutas en lugar de rutas relativas para evitar la ambigüedad y la verificación de que todas las rutas especificadas existan con los permisos adecuados read/write . 

Reanudar las ejecuciones interrumpidas

La ejecución se interrumpió o debe continuar desde donde se detuvo

Puede reanudar la ejecución desde donde la dejó proporcionando el ID de conversación en el comando CLI.

Busque el ID de la conversación en los registros del intento de ejecución anterior.  

Resolver las restricciones de memoria

Se produce un error de memoria insuficiente durante la ejecución.

Puede solicitar AWS Transform compartir el tamaño actual de la JVM en memoria y, a continuación, aumentar la asignación de memoria en función de esta información. Este ajuste ayuda a adaptarse a mayores requisitos de procesamiento.

Considere la posibilidad de dividir los trabajos grandes en lotes más pequeños si persisten las limitaciones de memoria después de los ajustes. 

Abordar las discrepancias en los archivos de salida

Los archivos de salida no coinciden con las expectativas e AWS Transform indican que no es posible realizar más cambios.

Proporcione comentarios específicos y razones técnicas que expliquen por qué la salida actual es incorrecta. Incluya documentación técnica o empresarial adicional para respaldar sus requisitos. Este contexto detallado ayuda a AWS Transform corregir el código para generar los archivos de salida adecuados. 

  • Ejemplos específicos que comparan el resultado esperado con el real 

  • Referencias a la documentación o las normas pertinentes

  • Explicación clara del impacto de la discrepancia en el negocio  

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip