

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 AWS Transform personalizado
<a name="transform-easytrieve-modern-languages"></a>

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

## Resumo
<a name="transform-easytrieve-modern-languages-summary"></a>

[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](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) (EZT) usando a transformação personalizada de idioma para idioma.AWS Transform](https://aws.amazon.com/transform/custom/) 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:
+ Regras de negócios da EZT extraídas usando regras personalizadas AWS Transform 
+ 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

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
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**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 idioma -** Somente a EZT-to-Java transformação é suportada para esse padrão de transformação específico. Esse padrão APG é testado no código EZT em linha em. JCL/Proc
+ **Fora do escopo -** Para transformação de outras linguagens de programação de mainframe, use AWS Transform para mainframe. Saiba mais em [Tipos de arquivo compatíveis para transformação de aplicativos de mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files) no guia do AWS Transform usuário.

*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*
+ **Limites de serviço** — Para limites e cotas de serviço AWS Transform personalizados, consulte o [Guia AWS Transform do usuário - Cotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) e a [referência AWS geral - Transformar](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html) cotas.

**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
<a name="transform-easytrieve-modern-languages-architecture"></a>

**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.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/64cbe607-22d3-440c-b888-9a6a86074563.png)


**Fluxo de trabalho**

Essa solução usa definições de transformação AWS Transform personalizadas e predefinidas para modernizar os aplicativos Easytrieve (EZT) de mainframe para Java por meio de um fluxo de trabalho automatizado em três etapas. AWS Transform gerencia de forma personalizada todo o processo — extração de regras de negócios (BRE), transformação de código e validação de equivalência funcional — orientado pelas definições de transformação fornecidas como parte dessa solução. A validação humana é necessária para validar o BRE gerado e a validação do relatório de equivalência funcional. 

*Passo 1 — Preparar a pasta de entradas*

1. **código-fonte/— código-fonte** EZT (arquivos.ezt), fluxos de trabalho JCL (arquivos.jcl/.jcl), programas COBOL, cadernos e cartões de controle

1. **bre-doc/ -** Documento de extração de regras de negócios gerado

1. **input-data/ — Conjuntos de dados** de entrada de mainframe básicos para validação

1. **output-data/ — Conjuntos de dados** de saída de mainframe básicos para validação

1. **document\_references/** — Definições de transformação e documentação de referência fornecidas por:

    - `bre_transformation_definition.md` — Define o processo de extração de regras de negócios em 5 fases

    - `transformation_definition.md` — Define como o Easytrieve constrói o mapa para Java

    - `summaries.md` — Regras e padrões de transformação

    - `ca-easytrieve-report-generator-11-6.txt` — Manual de referência do Easytrieve

*Etapa 2 — Extraia regras de negócios usando o AWS Transform Custom*

1. Interaja com a AWS Transform CLI usando linguagem natural para revisar as definições de transformação (TDs) disponíveis e personalizar o BRE TD de acordo com seus critérios e regras específicos

2. Use o TD finalizado para gerar o documento BRE — analisa de forma AWS Transform personalizada os artefatos de origem do mainframe (Easytrieve, JCL, COBOL, cadernos, cartões de controle) e produz um BRE estruturado com catálogo de regras de negócios, layouts de arquivos, linhagem de dados e mapeamentos de tipos de dados

3. Mova o documento BRE gerado para a `bre-doc/` pasta para uso na Etapa 3

*Etapa 3 — Gere código modernizado equivalente funcional*

1. Interaja com a AWS Transform CLI usando linguagem natural para revisar [as definições de transformação básica (TDs)](https://github.com/aws-samples/sample-mainframe-easytrieve-transform/blob/main/documents/transformation_definition.md) disponíveis e personalizar o TD básico de acordo com seus critérios e regras específicos.

1. 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.

1. Use o agente de validação para testar a equivalência funcional em relação à saída do mainframe. O Self-Debugger agente 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
<a name="transform-easytrieve-modern-languages-tools"></a>

**Serviços da AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) é um serviço de IA agente usado para transformar aplicativos EZT legados em linguagens de programação modernas. 
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 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](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) é 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](https://git-scm.com/doc) 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](https://www.java.com/en/) é 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](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) Custom on. GitHub

## Práticas recomendadas
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ 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 uma comparação byte por byte com a saída da 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
<a name="transform-easytrieve-modern-languages-epics"></a>

### Configurar AWS Transform personalizado
<a name="set-up-trn-custom"></a>


| Tarefa | Description | Habilidades 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](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) with Custom. AWS Transform GitHub  | Desenvolvedor de aplicações e administrador da AWS | 
| Prepare os materiais de entrada para transformação. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 

###  Crie uma definição de transformação personalizada
<a name="create-a-custom-transformation-definition"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a definição de transformação BRE | Siga estas etapas para criar a definição de transformação personalizada para BRE (Business Rule Extraction) a partir do código-fonte do Easytrieve.<br />1. Acesse o repositório de códigos desse padrão e copie bre\_transformation\_definition.md da pasta documents junto com a pasta document\_references com o guia de codificação do EZT.<br />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.<br />3. Invoque AWS Transform a partir da CLI com o comando atx.<br />4. Forneça esse prompt na CLI:<br /> **Crie uma transformação personalizada usando meu arquivo de definição de transformação disponível em path** <path to content from step \#2 ><br /> AWS Transform cria uma nova definição de transformação personalizada para a geração de BRE.<br />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 BRE | Depois de analisar e validar a definição de transformação BRE, você pode publicá-la no registro AWS Transform personalizado com um prompt de linguagem natural, fornecendo um nome de definição como Easytrieve-Business-Rule-Extract. | Desenvolvedor de aplicativos | 
| 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.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 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 | 

### Gere um extrato de regras de negócios (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute o trabalho de geração BRE. | Execute o comando AWS Transform CLI, escolhendo a opção não interativa ou interativa:<br />**Non-interactive execução (totalmente autônoma):**<pre>atx custom def exec --transformation-name "Easytrieve-Business-Rule-Extract" --code-repository-path ~/root/transform-workspace/mainframe-source/source-code --non-interactive --trust-all-tools</pre><br />**Execução interativa (com supervisão humana):**<pre>atx custom def exec -n "Easytrieve-Business-Rule-Extract" -p ~/root/transform-workspace/mainframe-source/source-code</pre><br />Retomar a execução interrompida:<pre>atx --resume</pre><br />OU<pre>atx --conversation-id <conversation-id>  </pre><br />Mova o documento BRE gerado para a pasta **bre-doc/** para ser usado como entrada durante a Easytrieve-to-Java etapa de transformação. | Desenvolvedor de aplicativos | 

### Prepare os dados básicos para validação.
<a name="prepare-baseline-data-for-validation"></a>


| Tarefa | Description | Habilidades 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 em Sequential/Text/DB2 formato usando a codificação EBCDIC com base nos requisitos de execução.[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 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:<pre>:# Non-interactive execution (fully autonomous):<br />atx custom def exec \<br />  --transformation-name "Easytrieve-to-Java-Migration" \<br />  --code-repository-path ~/root/transform-workspace/mainframe-source/source-code \<br />  --build-command "mvn clean install" \<br />  --non-interactive \<br />  --trust-all-tools \<br /><br /># Interactive execution (with human oversight):<br />atx custom def exec \<br />  -n "Easytrieve-to-Java-Migration" \<br />  -p ~/root/transform-workspace/mainframe-source/source-code \<br />  -c "mvn clean install"<br /><br /># Resume interrupted execution:<br />atx -resume<br /># OR<br />atx --conversation-id <conversation-id><br /></pre><br />AWS Transform valida automaticamente por meio de build/test comandos durante a execução da transformação. | Desenvolvedor de aplicativos | 

### Valide e entregue o código testado
<a name="validate-and-deliver-tested-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise o resumo da validação da transformação. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 
| Acesse relatórios de validação. | Insira estes comandos para revisar os artefatos de validação detalhados:<pre># Full validation report<br />cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_report.html<br /><br /># Generated code location<br />ls ~/.aws/atx/custom/$LATEST_SESSION/generated/<br /><br /># Execution logs<br />cat ~/.aws/atx/custom/$LATEST_SESSION/logs/execution.log</pre> | 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:<pre># List all knowledge items for a specific transformation definition<br />atx custom def list-ki -n <transformation-name><br /><br /># Retrieve the details of a specific knowledge item<br />atx custom def get-ki -n <transformation-name> --id <id><br /><br /># Update the status of a knowledge item (ENABLED or DISABLED)<br />atx custom def update-ki-status -n <transformation-name> --id <id> --status ENABLED<br /><br /># Update the knowledge item configuration to enable auto-approval<br />atx custom def update-ki-config -n <transformation-name> --auto-enabled TRUE</pre> | Desenvolvedor de aplicativos | 

## Solução de problemas
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| *Configuração do caminho de entrada e saída*<br />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. <br />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*<br />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.<br />Encontre o ID da conversa nos registros da sua tentativa de execução anterior.   | 
| *Resolvendo restrições de memória*<br />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.<br />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*<br />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. [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Recursos relacionados
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform documentação personalizada](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Gerador de relatórios Easytrieve 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)