

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Transformez Easytrieve en langues modernes en utilisant AWS Transform personnalisé
<a name="transform-easytrieve-modern-languages"></a>

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

## Résumé
<a name="transform-easytrieve-modern-languages-summary"></a>

[Ce modèle fournit des conseils prescriptifs pour une transformation plus rapide et moins risquée des charges de travail EZT (Broadcom [Easytrieve Report Generator](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html)) du mainframe à l'aide d'une transformation linguistique personnalisée.AWS Transform](https://aws.amazon.com/transform/custom/) Il permet de relever les défis liés à la modernisation des charges de travail EZT des ordinateurs centraux de niche et propriétaires qui sont couramment utilisées pour le traitement des données par lots et la génération de rapports. Ce modèle remplace les approches de migration coûteuses, longues et sujettes aux erreurs qui s'appuient sur des outils propriétaires et une expertise rare en matière de mainframe par une solution automatisée d'intelligence artificielle agentique sur laquelle vous créez. AWS Transform

Ce modèle fournit une définition de transformation personnalisée prête à l'emploi pour la transformation EZT. La définition utilise plusieurs entrées de transformation :
+ Règles commerciales EZT extraites à l'aide AWS Transform de méthodes personnalisées
+ Documentation de référence sur la programmation EZT
+ Code source d'EZT
+ Ensembles de données d'entrée et de sortie du mainframe

AWS Transform custom utilise ces entrées pour générer des applications fonctionnellement équivalentes dans des langages cibles modernes, tels que Java ou Python.

Le processus de transformation utilise l'exécution intelligente des tests, le débogage automatique et les fonctionnalités de correction itérative pour valider l'équivalence fonctionnelle par rapport aux résultats attendus. Il prend également en charge l'apprentissage continu, permettant la définition personnalisée des transformations afin d'améliorer la précision et la cohérence entre les transformations successives. Grâce à ce modèle, les entreprises peuvent réduire les efforts et les risques liés à la migration, remédier à la dette technique des ordinateurs centraux spécialisés et moderniser les charges de travail EZT AWS afin d'améliorer l'agilité, la fiabilité, la sécurité et l'innovation.

## Conditions préalables et limitations
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Conditions préalables**
+ Un AWS compte actif 
+ Une charge de travail EZT pour ordinateur central avec des données d'entrée et de sortie 

**Limites**

*Limites de portée*
+ **Support linguistique :** seule EZT-to-Java la transformation est prise en charge pour ce modèle de transformation spécifique. Ce modèle APG est testé sur du code EZT en ligne dans. JCL/Proc
+ **Hors de portée -** Pour la transformation d'autres langages de programmation du mainframe, utilisez-le AWS Transform pour le mainframe. Pour en savoir plus, consultez la [section Types de fichiers pris en charge pour la transformation d'applications mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files) dans le guide de AWS Transform l'utilisateur.

*Limites du processus*
+ **Dépendance de validation** — Sans données de sortie de référence, la transformation ne peut pas être validée. 
+ **Logique propriétaire** — Les utilitaires hautement spécifiques développés sur mesure nécessitent une documentation utilisateur et des documents de référence supplémentaires pour être correctement interprétés par l'agent d'intelligence artificielle.

*Limites techniques*
+ **Limites de service** — Pour connaître les limites de service et les quotas AWS Transform personnalisés, consultez le [Guide de AWS Transform l'utilisateur - Quotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) et la [référence AWS générale - Transform Quotas](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html).

**Versions du produit**
+ AWS Transform CLI — Dernière version
+ Node.js — version 20 ou ultérieure
+ Git — Dernière version
+ Environnement cible
  + Java — version 17 ou ultérieure
  + Spring Boot : la version 3.x est la cible principale des applications refactorisées
  + Maven — version 3.6 ou ultérieure

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

**Pile technologique source**
+ **Système d'exploitation** — IBM z/OS
+ **Langage de programmation** — Easytrieve, langage de contrôle des tâches (JCL)
+ **Base de données** — IBM DB2 pour z/OS, méthode d'accès au stockage virtuel (VSAM), fichiers plats du mainframe

**Pile technologique cible**
+ **Système d'exploitation** — Amazon Linux
+ **Calcul** — Amazon Elastic Compute Cloud (Amazon EC2)
+ **Langage de programmation** — Java
+ **Base de données** Amazon Relational Database Service (Amazon RDS)

**Architecture cible**

![schéma d'architecture cible pour l'utilisation personnalisée d'AWS Transform pour transformer EZT en code moderne.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/64cbe607-22d3-440c-b888-9a6a86074563.png)


**Flux de travail**

Cette solution utilise des définitions de transformation AWS Transform personnalisées et prédéfinies pour moderniser les applications mainframe Easytrieve (EZT) vers Java grâce à un flux de travail automatisé en trois étapes. AWS Transform custom gère l'ensemble du processus (extraction des règles métier (BRE), transformation du code et validation de l'équivalence fonctionnelle, en s'appuyant sur les définitions de transformation fournies dans le cadre de cette solution. Une validation humaine est requise pour valider le BRE généré et la validation du rapport d'équivalence fonctionnelle. 

*Étape 1 — Préparer le dossier des entrées*

1. **source-code/** — code source EZT (fichiers .ezt), flux de tâches JCL (fichiers .JCL/.JCL), programmes COBOL, cahiers et cartes de contrôle

1. **bre-doc/ - Document** d'extrait de règles métier généré

1. **input-data/** — Ensembles de données d'entrée du mainframe de référence pour validation

1. **output-data/** — Ensembles de données de sortie du mainframe de référence pour validation

1. **document\_references/** — Définitions de transformation et documentation de référence fournies par :

    - `bre_transformation_definition.md` — Définit le processus d'extraction des règles métier en 5 phases

    - `transformation_definition.md` — Définit la façon dont Easytrieve construit une carte vers Java

    - `summaries.md` — Règles et modèles de transformation

    - `ca-easytrieve-report-generator-11-6.txt` — Manuel de référence Easytrieve

*Étape 2 — Extraire les règles métier à l'aide d'AWS Transform Custom*

1. Interagissez avec la AWS Transform CLI en langage naturel pour passer en revue les définitions de transformation (TD) disponibles et personnaliser le BRE TD en fonction de vos critères et règles spécifiques

2. Utilisez le TD finalisé pour générer le document BRE : analyse de manière AWS Transform personnalisée les artefacts sources du mainframe (Easytrieve, JCL, COBOL, cahiers, cartes de contrôle) et produit un BRE structuré avec un catalogue de règles métier, des mises en page de fichiers, un lignage des données et des mappages de types de données

3. Déplacez le document BRE généré vers le `bre-doc/` dossier à utiliser à l'étape 3

*Étape 3 — Génération d'un code modernisé équivalent fonctionnel*

1. Interagissez avec la AWS Transform CLI en langage naturel pour passer en revue [les définitions de transformation de base (TD)](https://github.com/aws-samples/sample-mainframe-easytrieve-transform/blob/main/documents/transformation_definition.md) disponibles et personnaliser le TD de base en fonction de vos critères et règles spécifiques.

1. Invoquez ensuite la AWS Transform CLI avec le code source du projet. AWS Transform custom crée des plans de transformation, convertit EZT en Java après approbation, génère des fichiers de support, crée le fichier JAR exécutable et valide les critères de sortie.

1. Utilisez l'agent de validation pour tester l'équivalence fonctionnelle par rapport à la sortie du mainframe. L' Self-Debugger agent résout les problèmes de manière autonome. Les livrables finaux incluent du code Java validé et des rapports de validation HTML.

**Automatisation et mise à l'échelle**
+ Architecture d'exécution multimode d'Agentic AI : AWS Transform custom exploite l'IA agentic avec 3 modes d'exécution (conversationnel, interactif et automatisation complète) pour automatiser les tâches de transformation complexes, notamment l'analyse du code, le refactoring, la planification de la transformation et les tests.
+ Système de feedback adaptatif sur l'apprentissage : la plateforme met en œuvre des mécanismes d'apprentissage continu par le biais de l'analyse d'échantillons de code, de l'analyse de la documentation et de l'intégration des commentaires des développeurs avec des définitions de transformation versionnées.
+ Architecture de traitement simultané des applications : le système permet l'exécution parallèle distribuée de plusieurs opérations de transformation d'applications simultanément sur une infrastructure évolutive.

## Outils
<a name="transform-easytrieve-modern-languages-tools"></a>

**Services AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) est un service d'IA agentique utilisé pour transformer les applications EZT existantes en langages de programmation modernes. 
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données. Amazon S3 est le principal service de stockage AWS Transform personnalisé pour le stockage des définitions de transformation, des référentiels de code et des résultats de traitement. 
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser. IAM fournit le cadre de sécurité pour la AWS Transform personnalisation, la gestion des autorisations et le contrôle d'accès pour les opérations de transformation.

**Autres outils**
+ AWS Transform La [CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) est l'interface de ligne de commande pour AWS Transform la personnalisation, permettant aux développeurs de définir, d'exécuter et de gérer des transformations de code personnalisées par le biais de conversations en langage naturel et de modes d'exécution automatisés. AWS Transform custom prend en charge à la fois les sessions interactives (atx custom def exec) et les transformations autonomes pour une modernisation évolutive des bases de code.
+ Système de contrôle de version [Git](https://git-scm.com/doc) utilisé pour la protection des branches, le suivi des modifications et les fonctionnalités de restauration lors d'une application de correction automatique. 
+ [Java](https://www.java.com/en/) est le langage de programmation et l'environnement de développement utilisés dans ce modèle. 

**Référentiel de code**

Le code de ce modèle est disponible dans [Easytrieve to Modern Languages Transformation with AWS Transform Custom](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) on. GitHub

## Bonnes pratiques
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Établissez une structure de projet standardisée : créez une structure à quatre dossiers (code source, bre-doc, données d'entrée, données de sortie), validez l'exhaustivité et le contenu du document avant la transformation.
+ Utiliser des fichiers de référence pour la validation : utilisez les fichiers d'entrée de référence de production, effectuez une comparaison octet par octet avec la sortie de référence, acceptez une tolérance zéro pour les écarts.
+ Utiliser tous les documents de référence disponibles — Pour augmenter la précision de la transformation, fournissez tous les documents de référence disponibles, tels que les exigences commerciales et les listes de contrôle de codage.
+ Fournissez des informations pour améliorer la qualité : la AWS Transform personnalisation extrait automatiquement les enseignements tirés des exécutions de transformation (commentaires des développeurs, problèmes de code) et crée des éléments de connaissances pour ces derniers. Après chaque transformation réussie, passez en revue les éléments de connaissances et approuvez celui que vous souhaitez utiliser lors de futures exécutions. Cela améliore la qualité des transformations futures.

## Épopées
<a name="transform-easytrieve-modern-languages-epics"></a>

### Configuration AWS Transform personnalisé
<a name="set-up-trn-custom"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Fournissez l'infrastructure AWS Transform sur mesure. | Déployez l'infrastructure prête pour la production requise pour héberger un environnement de transformation sécurisé. Cela inclut une instance Amazon EC2 privée configurée avec les outils nécessaires, les autorisations IAM et les paramètres réseau pour convertir le code Easytrieve. Pour configurer l'environnement à l'aide de l'infrastructure en tant que code (IaC), suivez les instructions de déploiement du référentiel [Easytrieve to Modern Languages Transformation with AWS Transform Custom](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) GitHub . | Développeur d'applications, administrateur AWS | 
| Préparez les matières premières pour la transformation. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Développeur d’applications | 

###  Création d'une définition de transformation personnalisée
<a name="create-a-custom-transformation-definition"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créer une définition de transformation BRE | Suivez ces étapes pour créer la définition de transformation personnalisée pour BRE (Business Rule Extraction) à partir du code source d'Easytrieve.<br />1. Accédez au dépôt de code correspondant à ce modèle et copiez bre\_transformation\_definition.md du dossier documents ainsi que du dossier document\_references contenant le guide de codage EZT.<br />2. Téléchargez ce contenu dans le téléchargement de la AWS Transform CLI vers un emplacement de votre choix et notez l'emplacement du chemin à utiliser dans les étapes suivantes.<br />3. Appelez AWS Transform depuis la CLI avec la commande atx.<br />4. Fournissez cette invite dans la CLI :<br /> **Créez une transformation personnalisée à l'aide de mon fichier de définition de transformation disponible sur path** <path to content from step \#2 ><br /> AWS Transform crée une nouvelle définition de transformation personnalisée pour la génération BRE.<br />5. Passez en revue la définition de la transformation et apportez des modifications si nécessaire. | Développeur d’applications | 
| Publier la définition de la transformation BRE | Après avoir examiné et validé la définition de transformation BRE, vous pouvez la publier dans le registre AWS Transform personnalisé avec une invite en langage naturel, en fournissant un nom de définition tel que Easytrieve-Business-Rule-Extract. | Développeur d’applications | 
| Créez une définition de transformation. | Suivez ces étapes pour créer la définition de transformation personnalisée pour la transformation EZT vers Java avec validation fonctionnelle.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Développeur d’applications | 
| Publiez la définition de la transformation. | Après avoir examiné et validé la définition de transformation, vous pouvez la publier dans le registre AWS Transform personnalisé à l'aide d'une invite en langage naturel, en fournissant un nom de définition tel que *Easytrieve-to-Java-Migration*. | Développeur d’applications | 

### Génération d'un extrait de règles métier (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez la tâche de génération BRE. | Exécutez la commande AWS Transform CLI en choisissant l'option non interactive ou interactive :<br />**Non-interactive exécution (totalement autonome) :**<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 />**Exécution interactive (avec supervision humaine) :**<pre>atx custom def exec -n "Easytrieve-Business-Rule-Extract" -p ~/root/transform-workspace/mainframe-source/source-code</pre><br />Reprendre l'exécution interrompue :<pre>atx --resume</pre><br />OU<pre>atx --conversation-id <conversation-id>  </pre><br />Déplacez le document BRE généré vers le dossier **bre-doc/** à utiliser comme entrée lors de l' Easytrieve-to-Java étape de transformation. | Développeur d’applications | 

### Préparez les données de référence pour la validation.
<a name="prepare-baseline-data-for-validation"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Consultez le résumé de validation de la transformation. | Avant d'exécuter la transformation AWS Transform personnalisée, vérifiez que le `input-data` dossier contient les fichiers de données requis capturés avant l'exécution du traitement par lots du mainframe. Après l'exécution de la tâche par lots sur le mainframe, assurez-vous que le `output-data` dossier capture les fichiers obtenus. Tous les fichiers sont au Sequential/Text/DB2 format utilisant le codage EBCDIC en fonction des exigences d'exécution.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Développeur d’applications | 
| Exécutez le travail de transformation personnalisé. | Exécutez la commande AWS Transform CLI en choisissant l'option non interactive ou interactive :<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 valide automatiquement par le biais de build/test commandes lors de l'exécution de la transformation. | Développeur d’applications | 

### Validez et distribuez le code testé
<a name="validate-and-deliver-tested-code"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Consultez le résumé de validation de la transformation. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Développeur d’applications | 
| Accédez aux rapports de validation. | Entrez les commandes suivantes pour passer en revue les artefacts de validation détaillés :<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> | Développeur d’applications | 
| Activez les éléments de connaissances pour un apprentissage continu. | Améliorez la précision des transformations futures en intégrant les éléments de connaissances suggérés à votre configuration permanente. Après une transformation, l'agent stocke les modèles identifiés et les règles de mappage dans votre répertoire de session local. Pour consulter et appliquer ces éléments appris, exécutez les commandes suivantes sur votre instance 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> | Développeur d’applications | 

## Résolution des problèmes
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| *Configuration des chemins d'entrée et de sortie*<br />Les fichiers d'entrée ne sont pas lus ou les fichiers de sortie ne sont pas écrits correctement.  | Spécifiez le chemin complet du répertoire dans lequel les fichiers d'entrée sont stockés et indiquez clairement l'emplacement où la sortie doit être écrite. Assurez-vous que les autorisations d'accès appropriées sont configurées pour ces répertoires. <br />Les meilleures pratiques incluent l'utilisation de chemins absolus plutôt que de chemins relatifs pour éviter toute ambiguïté et la vérification que tous les chemins spécifiés existent avec les read/write autorisations appropriées.  | 
| *Reprise des exécutions interrompues*<br />L'exécution a été interrompue ou doit être poursuivie là où elle s'est arrêtée | Vous pouvez reprendre l'exécution là où vous l'avez interrompue en fournissant l'ID de conversation dans la commande CLI.<br />Trouvez l'identifiant de conversation dans les journaux de votre précédente tentative d'exécution.   | 
| *Résolution des contraintes de mémoire*<br />Une erreur de mémoire insuffisante se produit lors de l'exécution. | Vous pouvez demander AWS Transform de partager la taille actuelle de la JVM en mémoire, puis d'augmenter l'allocation de mémoire en fonction de ces informations. Cet ajustement permet de répondre à des exigences de traitement plus importantes.<br />Envisagez de diviser les tâches volumineuses en lots plus petits si les contraintes de mémoire persistent après les ajustements.  | 
| *Corriger les divergences entre les fichiers de sortie*<br />Les fichiers de sortie ne correspondent pas aux attentes et AWS Transform indiquent qu'aucune autre modification n'est possible. | Fournissez des commentaires spécifiques et des raisons techniques expliquant pourquoi la sortie actuelle est incorrecte. Incluez de la documentation technique ou commerciale supplémentaire pour répondre à vos besoins. Ce contexte détaillé permet de AWS Transform corriger le code afin de générer les fichiers de sortie appropriés. [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Ressources connexes
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform documentation personnalisée](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Générateur de rapports Easytrieve 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)