View a markdown version of this page

Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform

Shubham Roy, Subramanyam Malisetty e Harshitha Shashidhar, da Amazon Web Services

Resumo

Esse padrão fornece orientação prescritiva para uma transformação mais rápida e de menor risco das cargas de trabalho do mainframe Broadcom Easytrieve Report Generator (EZT) usando transformação personalizada.AWS Transform language-to-language Ele aborda os desafios de modernizar cargas de trabalho EZT de mainframe proprietárias e de nicho que são comumente usadas para processamento de dados em lote e geração de relatórios. O padrão substitui abordagens de migração caras, demoradas e propensas a erros, que dependem de ferramentas proprietárias e da rara experiência em mainframe, por uma solução automatizada de IA agente na qual você cria. AWS Transform

Esse padrão fornece uma definição de transformação personalizada pronta para uso para a transformação EZT. A definição usa várias entradas de transformação:

AWS Transform custom usa essas entradas para gerar aplicativos funcionalmente equivalentes em linguagens de destino modernas, como Java ou Python.

O processo de transformação usa recursos inteligentes de execução de testes, depuração automatizada e correção iterativa para validar a equivalência funcional em relação às saídas esperadas. Ele também oferece suporte ao aprendizado contínuo, permitindo que a definição de transformação personalizada melhore a precisão e a consistência em transformações sucessivas. Usando esse padrão, as organizações podem reduzir o esforço e o risco de migração, lidar com a dívida técnica do mainframe de nicho e modernizar as cargas de trabalho do EZT AWS para melhorar a agilidade, a confiabilidade, a segurança e a inovação.

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta ativa 

  • Uma carga de trabalho EZT de mainframe com dados de entrada e saída 

Limitações

Limitações do escopo

  • Suporte de linguagem — Somente a transformação de EZT para Java é suportada para esse padrão de transformação específico. 

  • Fora do escopo — A transformação de outras linguagens de programação de mainframe requer uma nova definição de transformação AWS Transform personalizada em customizada.

Limitações do processo

  • Dependência de validação — Sem dados de saída de linha de base, a transformação não pode ser validada. 

  • Lógica proprietária — utilitários altamente específicos e desenvolvidos de forma personalizada exigem documentação adicional do usuário e materiais de referência para serem interpretados corretamente pelo agente de IA.

Limitações técnicas

Versões do produto

  • AWS Transform CLI — Versão mais recente

  • Node.js — versão 20 ou posterior

  • Git — Versão mais recente

  • Ambiente de destino

    • Java — versão 17 ou posterior

    • Spring Boot — a versão 3.x é o principal alvo para aplicativos refatorados

    • Maven — versão 3.6 ou posterior

Arquitetura

Pilha de tecnologia de origem

  • Sistema operacional — IBM z/OS

  • Linguagem de programação — Easytrieve, Job control language (JCL)

  • Banco de dados — IBM DB2 for z/OS, Virtual Storage Access Method (VSAM), arquivos simples de mainframe

Pilha de tecnologias de destino

  • Sistema operacional — Amazon Linux

  • Computação — Amazon Elastic Compute Cloud (Amazon EC2)

  • Linguagem de programação — Java

  • Banco de dados Amazon Relational Database Service (Amazon RDS)

Arquitetura de destino

diagrama de arquitetura de destino para usar o AWS Transform personalizado para transformar o EZT em código moderno.

Fluxo de trabalho

Essa solução usa um padrão de transformação de language-to-language migração AWS Transform personalizado para modernizar os aplicativos Easytrieve (EZT) de mainframe para Java por meio de um fluxo de trabalho automatizado de quatro etapas.

Etapa 1 — Forneça seu código legado AWS Transform para o Mainframe, que:

  • Analisa o código

  • Extrai a lógica de negócios de alto nível

  • Extrai a lógica comercial detalhada.

Passo 2 — Crie uma pasta com as entradas necessárias:

  • Regras de negócios do EZT extraídas usando AWS Transform para mainframe 

  • Documentação de referência de programação do EZT 

  • Código-fonte do EZT

  • Conjuntos de dados de entrada e saída do mainframe

Etapa 3 — Criar e executar uma definição de transformação personalizada

  1. Use a AWS Transform CLI para descrever os objetivos de transformação em linguagem natural. AWS Transform O custom analisa os guias de programação BRE, código-fonte e EZT para gerar uma definição de transformação personalizada para análise e aprovação do desenvolvedor.

  2. Em seguida, invoque a AWS Transform CLI com o código-fonte do projeto. AWS Transform custom cria planos de transformação, converte EZT em Java após aprovação, gera arquivos de suporte, cria o JAR executável e valida os critérios de saída.

  3. Use o agente de validação para testar a equivalência funcional em relação à saída do mainframe. O Self-Debugger Agent corrige problemas de forma autônoma. Os resultados finais incluem código Java validado e relatórios de validação de HTML.

Automação e escala

  • Arquitetura de execução multimodo de IA agente — a AWS Transform personalização aproveita a IA agente com 3 modos de execução (conversacional, interativo e automação total) para automatizar tarefas complexas de transformação, incluindo análise de código, refatoração, planejamento e teste de transformação.

  • Sistema de feedback de aprendizado adaptável — A plataforma implementa mecanismos de aprendizado contínuo por meio de análise de amostras de código, análise de documentação e integração de feedback do desenvolvedor com definições de transformação versionadas.

  • Arquitetura simultânea de processamento de aplicativos — O sistema permite a execução paralela distribuída de várias operações de transformação de aplicativos simultaneamente em uma infraestrutura escalável.

Ferramentas

Serviços da AWS  

  • AWS Transform custom é um serviço de IA agente usado para transformar aplicativos EZT legados em linguagens de programação modernas. 

  • AWS Transformusa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware

  • AWS Transform for mainframe é usado para analisar aplicativos EZT legados para extrair lógica de negócios incorporada e gerar documentação abrangente de regras de negócios, incluindo resumos lógicos, definições de acrônimos e bases de conhecimento estruturadas. Eles servem como dados de entrada AWS Transform personalizados. 

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados. O Amazon S3 serve como o principal serviço de armazenamento AWS Transform personalizado para armazenar definições de transformação, repositórios de código e resultados de processamento.

  • AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los. O IAM fornece a estrutura de segurança para gerenciamento AWS Transform personalizado de permissões e controle de acesso para operações de transformação.

Outras ferramentas

  • AWS Transform A CLI é a interface de linha de comando AWS Transform personalizada, permitindo que os desenvolvedores definam, executem e gerenciem transformações de código personalizadas por meio de conversas em linguagem natural e modos de execução automatizados. AWS Transform custom suporta sessões interativas (atx custom def exec) e transformações autônomas para modernização escalável de bases de código.

  • Sistema de controle de versão Git usado para proteção de filiais, rastreamento de alterações e recursos de reversão durante a aplicação automática de correção. 

  • Java é a linguagem de programação e o ambiente de desenvolvimento usados nesse padrão. 

Repositório de código

O código desse padrão está disponível em Easytrieve to Modern Languages Transformation with AWS Transform Custom on. GitHub

Práticas recomendadas

  • Estabeleça uma estrutura de projeto padronizada — Crie uma estrutura de quatro pastas (código-fonte, bre-doc, dados de entrada, dados de saída), valide a integridade e documente o conteúdo antes da transformação.

  • Use arquivos de linha de base para validação — Use arquivos de entrada de linha de base de produção, faça byte-by-byte comparação com a saída de linha de base, aceite tolerância zero para desvios.

  • Use todos os documentos de referência disponíveis — Para aumentar a precisão da transformação, forneça todos os documentos de referência disponíveis, como requisitos de negócios e listas de verificação de codificação.

  • Forneça informações para a melhoria da qualidade — a AWS Transform personalização extrai automaticamente os aprendizados das execuções de transformação (feedback do desenvolvedor, problemas de código) e cria itens de conhecimento para eles. Após cada transformação bem-sucedida, revise os itens de conhecimento e aprove aquele que você gostaria que fosse usado em futuras execuções. Isso melhora a qualidade das transformações futuras.

Épicos

TarefaDescriptionHabilidades necessárias

Configure AWS Transform para mainframe.

Configure o ambiente e as permissões necessárias AWS Identity and Access Management (IAM) para dar suporte aos fluxos de trabalho de modernização do mainframe. Para obter mais informações, consulte Transformação de aplicativos de mainframe na AWS documentação.

Desenvolvedor de aplicativos

Gere documentação do Business Rule Extract (BRE).

Extraia a lógica de negócios do código EZT ou COBOL de origem para gerar documentação funcional. Para obter instruções sobre como iniciar o processo de extração e revisar a saída, consulte Extrair lógica de negócios na AWS Transform documentação.

Desenvolvedor de aplicativos
TarefaDescriptionHabilidades necessárias

Provisione a infraestrutura para AWS Transform fins personalizados.

Implante a infraestrutura pronta para produção necessária para hospedar um ambiente de transformação seguro. Isso inclui uma instância privada do Amazon EC2 configurada com as ferramentas necessárias, as permissões do IAM e as configurações de rede para converter o código do Easytrieve. Para provisionar o ambiente usando infraestrutura como código (IaC), siga as instruções de implantação no repositório Easytrieve to Modern Languages Transformation with Custom. AWS Transform GitHub

Desenvolvedor de aplicações e administrador da AWS

Prepare os materiais de entrada para transformação.

  1. Digite este comando para criar a estrutura de pastas:

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

    Isso cria as seguintes pastas:

    • source-code— Armazenamento para o código-fonte do EZT

    • bre-doc— Armazenamento para o documento BRE gerado

    • input-data— Armazenamento dos dados de entrada para a execução em lote do mainframe (Sequential/Text/DB2 arquivos no formato EBCDIC)

    • output-data— Armazenamento dos dados de saída no mainframe após a execução em lote (Sequential/Text/DB2 arquivos no formato EBCDIC)

  2. Insira estes comandos para inicializar o repositório Git:

    cd /root/transform-workspace/mainframe-source/source-code git init git add . git commit -m "Initial commit"
Desenvolvedor de aplicativos
TarefaDescriptionHabilidades necessárias

Crie a definição de transformação.

Siga estas etapas para criar a definição de transformação personalizada para a transformação EZT em Java com validação funcional.

  1. Acesse o repositório de códigos desse padrão e copie o conteúdo da documents pasta. Isso deve incluir transformation_definition.md, summaries.md e a pasta com o guia de codificação do EZT. document_references

  2. Faça upload desse conteúdo no upload da AWS Transform CLI para um local de sua escolha e anote o local do caminho a ser usado nas próximas etapas.

  3. Invoque AWS Transform a partir da CLI com atx o comando.

  4. Forneça esta solicitação na CLI: Criar uma transformação personalizada usando meu arquivo de definição de transformação disponível em path AWS Transform <path to content from step #2 > cria uma nova definição de transformação personalizada para a transformação EZT em Java.

  5. Revise a definição da transformação e faça alterações, se necessário.

Desenvolvedor de aplicativos

Publique a definição de transformação.

Depois de analisar e validar a definição de transformação, você pode publicá-la no registro AWS Transform personalizado com um prompt de linguagem natural, fornecendo um nome de definição, como EasyTrieve-to-Java-Migration.

Desenvolvedor de aplicativos
TarefaDescriptionHabilidades necessárias

Revise o resumo da validação da transformação.

Antes de executar a transformação AWS Transform personalizada, verifique se a input-data pasta contém os arquivos de dados necessários capturados antes da execução do trabalho em lotes do mainframe. Após a execução do trabalho em lote do mainframe, certifique-se de que a output-data pasta capture os arquivos resultantes. Todos os arquivos estão no formato Sequential/Text/DB 2 usando a codificação EBCDIC com base nos requisitos de execução.

  • Coloque os dados de entrada na input-data/ pasta

  • Coloque a saída da linha de base na pasta output-data/

Desenvolvedor de aplicativos

Execute o trabalho de transformação personalizado.

Execute o comando AWS Transform CLI, escolhendo a opção não interativa ou interativa:

:# 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 valida automaticamente por meio de build/test comandos durante a execução da transformação.

Desenvolvedor de aplicativos
TarefaDescriptionHabilidades necessárias

Revise o resumo da validação da transformação.

  1. Aguarde AWS Transform a validação automática do código por meio dos comandos de criação e teste.

  2. Digite este comando para encontrar a sessão mais recente:

    LATEST_SESSION=$(ls -t ~/.aws/atx/custom/ | head -1
  3. Digite este comando para ver o resumo da validação:

    cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_summary.md
  4. Digite este comando para verificar o status geral:

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

Acesse relatórios de validação.

Insira estes comandos para revisar os artefatos de validação detalhados:

# 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
Desenvolvedor de aplicativos

Habilite itens de conhecimento para aprendizado contínuo.

Melhore a precisão da transformação futura promovendo itens de conhecimento sugeridos para sua configuração persistente. Depois de uma transformação, o agente armazena padrões identificados e regras de mapeamento em seu diretório de sessão local. Para revisar e aplicar esses itens aprendidos, execute estes comandos na sua instância do 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
Desenvolvedor de aplicativos

Solução de problemas

ProblemaSolução

Configuração do caminho de entrada e saída

Os arquivos de entrada não estão sendo lidos ou os arquivos de saída não estão sendo gravados corretamente. 

Especifique o caminho completo do diretório em que os arquivos de entrada são armazenados e indique claramente o local em que a saída deve ser gravada. Certifique-se de que as permissões de acesso adequadas estejam configuradas para esses diretórios. 

As melhores práticas incluem usar caminhos absolutos em vez de caminhos relativos para evitar ambigüidade e verificar se todos os caminhos especificados existem com as permissões apropriadas read/write . 

Retomando as execuções interrompidas

A execução foi interrompida ou precisa ser continuada de onde foi interrompida

Você pode retomar a execução de onde parou fornecendo o ID da conversa no comando da CLI.

Encontre o ID da conversa nos registros da sua tentativa de execução anterior.  

Resolvendo restrições de memória

Ocorre um erro de falta de memória durante a execução.

Você pode pedir AWS Transform para compartilhar o tamanho atual da JVM na memória e, em seguida, aumentar a alocação de memória com base nessas informações. Esse ajuste ajuda a acomodar maiores requisitos de processamento.

Considere dividir trabalhos grandes em lotes menores se as restrições de memória persistirem após os ajustes. 

Abordando discrepâncias no arquivo de saída

Os arquivos de saída não correspondem às expectativas e AWS Transform indicam que nenhuma alteração adicional é possível.

Forneça feedback específico e motivos técnicos explicando por que a saída atual está incorreta. Inclua documentação técnica ou comercial adicional para atender às suas necessidades. Esse contexto detalhado ajuda a AWS Transform corrigir o código para gerar os arquivos de saída adequados. 

  • Exemplos específicos comparando a produção esperada com a produção real 

  • Referências à documentação ou padrões relevantes

  • Explicação clara do impacto comercial da discrepância  

Recursos relacionados

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip