

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Trasforma Easytrieve in linguaggi moderni utilizzando soluzioni personalizzate AWS Transform
<a name="transform-easytrieve-modern-languages"></a>

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

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

[https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) language-to-language Risolve le sfide legate alla modernizzazione dei carichi di lavoro EZT mainframe proprietari e di nicchia, comunemente utilizzati per l'elaborazione di dati in batch e la generazione di report. Il modello sostituisce approcci di migrazione costosi, lunghi e soggetti a errori che si basano su strumenti proprietari e rare competenze nel mainframe con una soluzione automatizzata di intelligenza artificiale agentica su cui creare. AWS Transform

Questo modello fornisce una definizione di trasformazione personalizzata pronta all'uso per la trasformazione EZT. La definizione utilizza più input di trasformazione:
+ [regole aziendali EZT estratte utilizzando per mainframe AWS Transform](https://aws.amazon.com/transform/mainframe/)
+ Documentazione di riferimento sulla programmazione EZT
+ Codice sorgente EZT
+ Set di dati di input e output del mainframe

AWS Transform custom utilizza questi input per generare applicazioni funzionalmente equivalenti nei linguaggi di destinazione moderni, come Java o Python.

Il processo di trasformazione utilizza l'esecuzione intelligente dei test, il debug automatizzato e le funzionalità di correzione iterativa per convalidare l'equivalenza funzionale rispetto agli output previsti. Supporta inoltre l'apprendimento continuo, abilitando la definizione di trasformazione personalizzata per migliorare la precisione e la coerenza tra le trasformazioni successive. Utilizzando questo modello, le organizzazioni possono ridurre gli sforzi e i rischi legati alla migrazione, far fronte al debito tecnico di nicchia nel settore mainframe e modernizzare i carichi di lavoro EZT AWS per migliorare l'agilità, l'affidabilità, la sicurezza e l'innovazione.

## Prerequisiti e limitazioni
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Prerequisiti**
+ Un account attivo AWS  
+ Un carico di lavoro EZT mainframe con dati di input e output 

**Limitazioni**

*Limitazioni dell'ambito*
+ **Supporto linguistico: per** questo modello di trasformazione specifico è supportata solo la trasformazione da EZT a Java. 
+ **Fuori ambito**: la trasformazione di altri linguaggi di programmazione mainframe richiede una nuova definizione di trasformazione personalizzata in custom. AWS Transform 

*Limitazioni del processo*
+ **Dipendenza dalla convalida**: senza dati di output di base, la trasformazione non può essere convalidata. 
+ **Logica proprietaria**: utilità altamente specifiche e sviluppate su misura richiedono documentazione utente aggiuntiva e materiali di riferimento per essere interpretate correttamente dall'agente AI.

*Limitazioni tecniche*
+ **Limiti del servizio**: per i limiti e le quote di servizio AWS Transform personalizzati, consulta la [Guida per AWS Transform l'utente - Quotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) e il [riferimento AWS generale - Transform](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html) Quotas.

**Versioni del prodotto**
+ AWS Transform CLI — Versione più recente
+ Node.js — versione 20 o successiva
+ Git — Versione più recente
+ Ambiente di destinazione
  + Java: versione 17 o successiva
  + Spring Boot: la versione 3.x è l'obiettivo principale per le applicazioni refactorizzate
  + Maven — versione 3.6 o successiva

## Architecture
<a name="transform-easytrieve-modern-languages-architecture"></a>

**Stack tecnologico di origine**
+ **Sistema operativo**: IBM z/OS
+ **Linguaggio di programmazione** — Easytrieve, Job control language (JCL)
+ **Database**: IBM DB2 for z/OS, Virtual Storage Access Method (VSAM), file flat per mainframe

**Stack tecnologico Target**
+ **Sistema operativo**: Amazon Linux
+ **Elaborazione**: Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute
+ **Linguaggio di programmazione**: Java
+ **Database** Amazon Relational Database Service (Amazon RDS)

**Architettura di Target**

![\[diagramma dell'architettura di destinazione per utilizzare AWS Transform custom per trasformare EZT in codice moderno.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Flusso di lavoro**

Questa soluzione utilizza un modello di trasformazione di language-to-language migrazione AWS Transform personalizzato per modernizzare le applicazioni mainframe Easytrieve (EZT) verso Java attraverso un flusso di lavoro automatizzato in quattro fasi.

*Fase 1: Fornisci il codice legacy a For Mainframe, che: AWS Transform *
+ Analizza il codice
+ Estrae la logica aziendale di alto livello
+ Estrae la logica aziendale dettagliata.

*Passaggio 2: crea una cartella con gli input richiesti:*
+ Regole aziendali EZT estratte utilizzando per mainframe AWS Transform  
+ Documentazione di riferimento sulla programmazione EZT 
+ Codice sorgente EZT
+ Set di dati di input e output del mainframe

*Fase 3: Creare ed eseguire una definizione di trasformazione personalizzata*

1. Usa la AWS Transform CLI per descrivere gli obiettivi di trasformazione in linguaggio naturale. AWS Transform custom analizza le guide di programmazione BRE, codice sorgente ed EZT per generare una definizione di trasformazione personalizzata per la revisione e l'approvazione degli sviluppatori.

1. Quindi, richiama la AWS Transform CLI con il codice sorgente del progetto. AWS Transform custom crea piani di trasformazione, converte EZT in Java dopo l'approvazione, genera file di supporto, crea il JAR eseguibile e convalida i criteri di uscita.

1. Utilizzate l'agente di convalida per testare l'equivalenza funzionale rispetto all'output del mainframe. L'agente Self-Debugger risolve i problemi in modo autonomo. I risultati finali includono codice Java convalidato e report di convalida HTML.

**Automazione e scalabilità**
+ Architettura di esecuzione multimodale Agentic AI: AWS Transform personalizzata sfrutta l'intelligenza artificiale agentica con 3 modalità di esecuzione (conversazionale, interattiva e di automazione completa) per automatizzare attività di trasformazione complesse tra cui analisi del codice, refactoring, pianificazione e test della trasformazione.
+ Sistema di feedback adattivo per l'apprendimento: la piattaforma implementa meccanismi di apprendimento continuo attraverso l'analisi di esempi di codice, l'analisi della documentazione e l'integrazione del feedback degli sviluppatori con definizioni di trasformazione versionate.
+ Architettura di elaborazione simultanea delle applicazioni: il sistema consente l'esecuzione parallela distribuita di più operazioni di trasformazione delle applicazioni contemporaneamente su un'infrastruttura scalabile.

## Tools (Strumenti)
<a name="transform-easytrieve-modern-languages-tools"></a>

**Servizi AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) è un servizio di intelligenza artificiale agentica utilizzato per trasformare le applicazioni EZT legacy in linguaggi di programmazione moderni. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilizza l'intelligenza artificiale agentica per aiutarti ad accelerare la modernizzazione dei carichi di lavoro legacy, come .NET, mainframe e carichi di lavoro. VMware 
+ [AWS Transform for mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) viene utilizzato per analizzare le applicazioni EZT legacy per estrarre la logica di business incorporata e generare una documentazione completa sulle regole aziendali, inclusi riepiloghi logici, definizioni di acronimi e basi di conoscenza strutturate. Questi servono come dati di input personalizzati. AWS Transform  
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati. Amazon S3 funge da servizio di storage principale per l'archiviazione AWS Transform personalizzata di definizioni di trasformazione, repository di codice e risultati di elaborazione. 
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle. IAM fornisce il framework di sicurezza per la gestione AWS Transform personalizzata delle autorizzazioni e del controllo degli accessi per le operazioni di trasformazione.

**Altri strumenti**
+ [AWS Transform CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) è l'interfaccia a riga di comando AWS Transform personalizzata, che consente agli sviluppatori di definire, eseguire e gestire trasformazioni di codice personalizzate tramite conversazioni in linguaggio naturale e modalità di esecuzione automatizzate. AWS Transform custom supporta sia sessioni interattive (atx custom def exec) sia trasformazioni autonome per la modernizzazione scalabile delle codebase.
+ Sistema di controllo della versione [Git](https://git-scm.com/doc) utilizzato per la protezione delle filiali, il monitoraggio delle modifiche e le funzionalità di rollback durante le applicazioni di correzione automatizzate. 
+ [Java](https://www.java.com/en/) è il linguaggio di programmazione e l'ambiente di sviluppo utilizzati in questo modello. 

**Deposito di codice**

Il codice per questo modello è disponibile in [Easytrieve to Modern Languages Transformation con 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

## Best practice
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Stabilisci una struttura di progetto standardizzata: crea una struttura a quattro cartelle (codice sorgente, bre-doc, dati di input, dati di output), convalida la completezza e il contenuto del documento prima della trasformazione.
+ Utilizza i file di base per la convalida: utilizza i file di input di base di produzione, esegui il confronto con l'output di base, accetta la tolleranza zero per le deviazioni. byte-by-byte
+ Utilizza tutti i documenti di riferimento disponibili: per aumentare la precisione della trasformazione, fornisci tutti i documenti di riferimento disponibili, come i requisiti aziendali e le liste di controllo per la codifica.
+ Fornisci input per il miglioramento della qualità: la funzionalità AWS Transform personalizzata estrae automaticamente gli apprendimenti dalle esecuzioni di trasformazione (feedback degli sviluppatori, problemi relativi al codice) e crea elementi di conoscenza per essi. Dopo ogni trasformazione riuscita, rivedi gli elementi di conoscenza e approva quelli che desideri utilizzare nelle future esecuzioni. Ciò migliora la qualità delle trasformazioni future.

## Epiche
<a name="transform-easytrieve-modern-languages-epics"></a>

### Genera un estratto di regole aziendali (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurazione AWS Transform per mainframe. | Configura l'ambiente e le autorizzazioni richieste AWS Identity and Access Management (IAM) per supportare i flussi di lavoro di modernizzazione del mainframe. Per ulteriori informazioni, consulta la sezione [Trasformazione delle applicazioni mainframe nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html). AWS  | Sviluppatore di app | 
| Genera la documentazione Business Rule Extract (BRE). | Estrai la logica aziendale dal codice sorgente EZT o COBOL per generare documentazione funzionale. Per istruzioni su come avviare il processo di estrazione e rivedere l'output, consulta [Extract business logic nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic). AWS Transform  | Sviluppatore di app | 

### Configurazione personalizzata AWS Transform
<a name="set-up-trn-custom"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Fornisci l'infrastruttura per scopi AWS Transform personalizzati. | Implementa l'infrastruttura pronta per la produzione necessaria per ospitare un ambiente di trasformazione sicuro. Ciò include un'istanza Amazon EC2 privata configurata con gli strumenti necessari, le autorizzazioni IAM e le impostazioni di rete per la conversione del codice Easytrieve. Per effettuare il provisioning dell'ambiente utilizzando l'infrastruttura come codice (IaC), segui le istruzioni di distribuzione nell'archivio [Easytrieve](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) to Modern Languages Transformation with Custom. AWS Transform GitHub  | Sviluppatore di app, amministratore AWS | 
| Prepara i materiali di input per la trasformazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 

###  Crea una definizione di trasformazione personalizzata
<a name="create-a-custom-transformation-definition"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una definizione di trasformazione. | Segui questi passaggi per creare la definizione di trasformazione personalizzata per la trasformazione da EZT a Java con convalida funzionale.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Pubblica la definizione di trasformazione. | *Dopo la revisione e la convalida della definizione di trasformazione, è possibile pubblicarla nel registro AWS Transform personalizzato con un prompt in linguaggio naturale, fornendo un nome di definizione come EasyTrieve-to-Java-Migration.* | Sviluppatore di app | 

### Prepara i dati di base per la convalida.
<a name="prepare-baseline-data-for-validation"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Consulta il riepilogo della convalida della trasformazione. | Prima di eseguire la trasformazione AWS Transform personalizzata, verificate che la `input-data` cartella contenga i file di dati richiesti acquisiti prima dell'esecuzione del processo batch del mainframe. Dopo l'esecuzione del processo batch del mainframe, assicuratevi che la `output-data` cartella acquisisca i file risultanti. Tutti i file sono in formato Sequential/Text/DB 2 e utilizzano la codifica EBCDIC in base ai requisiti di esecuzione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Esegui il processo di trasformazione personalizzato. | Esegui il comando AWS Transform CLI, scegliendo l'opzione non interattiva o interattiva:<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>AWS Transform si convalida automaticamente tramite build/test comandi durante l'esecuzione della trasformazione. | Sviluppatore di app | 

### Convalida e distribuisci codice testato
<a name="validate-and-deliver-tested-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Consulta il riepilogo della convalida della trasformazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Accedi ai report di convalida. | Inserisci questi comandi per esaminare gli artefatti di convalida dettagliati:<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> | Sviluppatore di app | 
| Abilita gli elementi di conoscenza per l'apprendimento continuo. | Migliora la precisione delle trasformazioni future promuovendo gli elementi di conoscenza suggeriti nella tua configurazione persistente. Dopo una trasformazione, l'agente memorizza i modelli e le regole di mappatura identificati nella directory della sessione locale. Per rivedere e applicare questi elementi appresi, esegui questi comandi sulla tua istanza 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> | Sviluppatore di app | 

## Risoluzione dei problemi
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| *Configurazione del percorso di input e output*I file di input non vengono letti o i file di output non vengono scritti correttamente.  | Specificate il percorso completo della directory in cui sono archiviati i file di input e indicate chiaramente la posizione in cui scrivere l'output. Assicurati che siano configurate le autorizzazioni di accesso adeguate per queste directory. Le migliori pratiche includono l'utilizzo di percorsi assoluti anziché percorsi relativi per evitare ambiguità e la verifica che tutti i percorsi specificati esistano con le autorizzazioni appropriate. read/write   | 
| *Ripresa delle esecuzioni interrotte*L'esecuzione è stata interrotta o deve essere continuata dal punto in cui è stata interrotta | Puoi riprendere l'esecuzione dal punto in cui l'avevi interrotta fornendo l'ID della conversazione nel comando CLI.Trova l'ID della conversazione nei registri del tuo precedente tentativo di esecuzione.   | 
| *Risoluzione dei vincoli di memoria*Si verifica un errore di memoria esaurita durante l'esecuzione. | È possibile chiedere AWS Transform di condividere la dimensione corrente della JVM in memoria e quindi aumentare l'allocazione della memoria in base a queste informazioni. Questa regolazione consente di soddisfare requisiti di elaborazione più elevati.Prendi in considerazione la possibilità di suddividere i lavori di grandi dimensioni in batch più piccoli se i vincoli di memoria persistono dopo le regolazioni.  | 
| *Risolvere le discrepanze tra i file di output*I file di output non corrispondono alle aspettative e AWS Transform indicano che non sono possibili ulteriori modifiche. | Fornisci feedback specifici e motivi tecnici che spieghino perché l'uscita corrente non è corretta. Includi documentazione tecnica o commerciale aggiuntiva a supporto delle tue esigenze. Questo contesto dettagliato aiuta a AWS Transform correggere il codice per generare i file di output corretti. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Risorse correlate
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform documentazione personalizzata](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Generatore di report Easytrieve 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)

## Allegati
<a name="attachments-71f15422-42cb-4c7e-94fa-051a4f130445"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)