

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.

# ordinateurs centraux
<a name="mainframe-pattern-list"></a>

**Topics**
+ [Accès Services AWS depuis IBM z/OS en installant le AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Sauvegardez et archivez les données du mainframe sur Amazon S3 à l'aide de BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Créez des programmes COBOL DB2 en utilisant et AWS Mainframe Modernization AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Créez un PAC de serveur Micro Focus Enterprise avec Amazon EC2 Auto Scaling et Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Créez un visualiseur de fichiers mainframe avancé dans le cloud AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Conteneurisez les charges de travail du mainframe qui ont été modernisées par Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Convertissez et décompressez les données EBCDIC en ASCII sur AWS à l'aide de Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Convertissez des fichiers mainframe du format EBCDIC au format ASCII délimité par des caractères dans Amazon S3 en utilisant AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Convertissez des fichiers de données du mainframe avec des mises en page d'enregistrement complexes à l'aide de Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Déployez un environnement pour les applications Blu Age conteneurisées à l'aide de Terraform](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Générez des informations sur z/OS les données DB2 en utilisant AWS Mainframe Modernization Amazon Q dans Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Générez des informations sur les données AWS Mainframe Modernization en utilisant Amazon Q dans Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Mettre en œuvre l'authentification basée sur l'identifiant Microsoft Entra dans une application centrale modernisée de AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Intégrez le contrôleur universel Stonebranch à la modernisation du mainframe AWS](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Migrez et répliquez des fichiers VSAM vers Amazon RDS ou Amazon MSK à l'aide de Connect from Precisely](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernisez l'application CardDemo mainframe en utilisant AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernisez et déployez des applications mainframe à l'aide de AWS Transform Terraform](modernize-mainframe-app-transform-terraform.md)
+ [Modernisez la gestion des sorties du mainframe AWS en utilisant Rocket Enterprise Server et PageCenter LRS X](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernisez les charges de travail d'impression par lots du mainframe à l'aide de AWS Rocket Enterprise Server et de LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisation du mainframe : DevOps activée AWS avec Rocket Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernisez les charges de travail d'impression en ligne du mainframe sur AWS à l'aide de Micro Focus Enterprise Server et de LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Déplacez les fichiers du mainframe directement vers Amazon S3 à l'aide de Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Optimisez les performances de votre application AWS Blu Age modernisée](optimize-performance-aws-blu-age-modernized-application.md)
+ [Sécurisez et rationalisez l'accès des utilisateurs dans une base de données de fédération DB2 sur AWS en utilisant des contextes fiables](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Transférez des z/OS données Db2 à grande échelle vers Amazon S3 dans des fichiers CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Transformez Easytrieve en langues modernes en utilisant des outils personnalisés AWS Transform](transform-easytrieve-modern-languages.md)
+ [Plus de modèles](mainframe-more-patterns-pattern-list.md)

# Accès Services AWS depuis IBM z/OS en installant le AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh, Paulo Vitor Pereira et Phil de Valence, Amazon Web Services*

## Résumé
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-summary"></a>

The [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) est un outil open source permettant de gérer plusieurs AWS services à l'aide de commandes dans un shell de ligne de commande. Avec une configuration minimale, vous pouvez exécuter des commandes à partir de sessions de ligne de commande telles que l'invite de commande, le terminal et le shell bash pour implémenter des fonctionnalités équivalentes à celles fournies par le navigateur AWS Management Console.

Toutes les fonctions d'administration, de gestion et d'accès de l' AWS infrastructure en tant que service (IaaS) AWS Management Console sont disponibles dans l' AWS API et. AWS CLI Vous pouvez l'installer AWS CLI sur un z/OS mainframe IBM pour y accéder, le gérer et interagir directement Services AWS depuis z/OS. AWS CLI Permet aux utilisateurs et aux applications d'effectuer diverses tâches, telles que :
+ Transfert de fichiers ou d'ensembles de données entre z/OS le stockage d'objets Amazon Simple Storage Service (Amazon S3) et affichage du contenu des buckets
+ Démarrage et arrêt de différentes AWS ressources ; par exemple, démarrage d'une tâche par lots dans un AWS Mainframe Modernization environnement
+ Appel d'une AWS Lambda fonction pour implémenter une logique métier commune
+ Intégration à l'intelligence artificielle, à l'apprentissage automatique (IA/ML) et aux services d'analyse

Ce modèle décrit comment installer, configurer et utiliser le AWS CLI sur z/OS. You can install it globally, so it's available to all z/OS les utilisateurs ou au niveau des utilisateurs. Le modèle explique également comment l'utiliser AWS CLI dans une session de ligne de commande interactive à partir d' z/OS Unix System Services (USS) ou en tant que travail par lots.

## Conditions préalables et limitations
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Conditions préalables**
+ **Communication réseau de z/OS à AWS**

  Par défaut, les demandes sont AWS CLI envoyées à l'aide Services AWS du protocole HTTPS sur le port TCP 443. Pour l'utiliser AWS CLI correctement, vous devez être en mesure d'établir des connexions sortantes sur le port TCP 443. Vous pouvez utiliser l'une des commandes z/OS USS suivantes (certaines d'entre elles ne sont peut-être pas installées dans votre environnement) pour tester la connectivité réseau de z/OS à AWS :

  ```
  ping amazonaws.com
  dig amazonaws.com
  traceroute amazonaws.com
  curl -k https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
  ```
+ **AWS credentials**

  Pour communiquer avec les AWS Cloud services depuis z/OS, vous devez configurer certaines informations d'identification avec des privilèges pour accéder à la cible Compte AWS. AWS CLI Pour les commandes programmatiques AWS, vous pouvez utiliser des clés d'accès, qui se composent d'un identifiant de clé d'accès et d'une clé d'accès secrète. Si vous ne disposez pas des clé d'accès, vous pouvez les créer à partir de l' AWS Management Console. Il est recommandé de n'utiliser les clés d'accès de l'utilisateur Compte AWS root pour aucune tâche, sauf si l'utilisateur root est requis. [Créez plutôt un nouvel utilisateur administrateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) et [préparez-vous à obtenir des autorisations de moindre privilège****](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege) afin de configurer l'utilisateur avec des clés d'accès. Après avoir créé l'utilisateur, vous pouvez [créer un identifiant de clé d'accès et une clé d'accès secrète](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) pour cet utilisateur.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python pour z/OS**

   AWS CLI Nécessite Python 3.8 ou version ultérieure. IBM a permis à Python de continuer à fonctionner z/OS avec [IBM Open Enterprise Python for z/OS](https://www.ibm.com/products/open-enterprise-python-zos). [IBM Open Enterprise Python est disponible gratuitement via Shopz SMP/E, ou vous pouvez télécharger le fichier PAX depuis le site Web d'IBM.](https://www.ibm.com/account/reg/signup?formid=urx-49465) Pour obtenir des instructions, consultez la [documentation d'installation et de configuration](https://www.ibm.com/docs/en/python-zos) d'IBM Open Enterprise Python for z/OS.

**Limites**
+ Les instructions d'installation fournies dans ce modèle s'appliquent **uniquement àAWS CLI la version 1**. La dernière version AWS CLI est la version 2. Toutefois, ce modèle utilise l'ancienne version car les méthodes d'installation sont différentes pour la version 2 et les exécutables binaires disponibles pour la version 2 ne sont pas compatibles avec le z/OS système.

**Versions du produit**
+ AWS CLI version 1
+ Python 3.8 ou version ultérieure

## Architecture
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-architecture"></a>

**Pile technologique**
+ Mainframe exécutant z/OS
+ Services du système z/OS UNIX pour mainframe (USS)
+ Mainframe Open MVS (OMVS) — interface de commande de l'environnement z/OS shell UNIX
+ Disque central, tel qu'un périphérique de stockage à accès direct (DASD)
+ AWS CLI

**Architecture cible**

Le schéma suivant montre un AWS CLI déploiement sur IBM z/OS. Vous pouvez l'invoquer AWS CLI à partir d'une session utilisateur interactive, telle que des sessions SSH et Telnet. Vous pouvez également l'invoquer depuis un traitement par lots en utilisant le langage de contrôle des tâches (JCL) ou depuis n'importe quel programme capable d'appeler une commande shell z/OS Unix.

![\[CLI AWS sur un z/OS mainframe IBM accédant aux services AWS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


Il AWS CLI communique avec les Service AWS points de terminaison via un TCP/IP réseau. Cette connexion réseau peut se faire via Internet ou via une AWS Direct Connect connexion privée entre le centre de données du client et les centres de AWS Cloud données. La communication est authentifiée avec des AWS informations d'identification et cryptée. 

**Automatisation et mise à l'échelle**

Vous pouvez explorer les fonctionnalités d'un Service AWS avec AWS CLI et développer des scripts shell USS pour gérer vos AWS ressources depuis z/OS. Vous pouvez également exécuter des AWS CLI commandes et des scripts shell à partir de l'environnement z/OS batch, et vous pouvez automatiser les tâches par lots pour qu'elles s'exécutent selon un calendrier spécifique en les intégrant aux planificateurs mainframe. AWS CLI les commandes ou les scripts peuvent être codés dans les paramètres (PARMs) et les procédures (PROCs), et peuvent être mis à l'échelle en suivant l'approche standard qui consiste à appeler le PARM ou le PROC à partir de différents traitements par lots avec différents paramètres.

## Outils
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir Services AWS via des commandes dans votre interface de ligne de commande.

## Bonnes pratiques
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Pour des raisons de sécurité, limitez les autorisations d'accès au répertoire USS où les détails de la clé AWS d'accès sont stockés. N'autorisez l'accès qu'aux utilisateurs ou aux programmes qui utilisent le AWS CLI.
+ N'utilisez les clés d'accès de l'utilisateur Compte AWS root pour aucune tâche. [Créez plutôt un nouvel utilisateur administrateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) pour vous-même et configurez-le avec des clés d'accès.


| 
| 
| Les utilisateurs IAM disposent d'informations d'identification à long terme qui présentent un risque de sécurité. Pour atténuer ce risque, nous vous recommandons de ne fournir à ces utilisateurs que les autorisations dont ils ont besoin pour effectuer la tâche et de supprimer ces autorisations lorsqu’elles ne sont plus nécessaires. | 
| --- |

## Épopées
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-epics"></a>

### Installez AWS CLI la version 1 sur z/OS USS
<a name="install-cli-version-1-on-z-os-uss"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez Python 3.8 ou version ultérieure. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrateur mainframe z/OS  | 
| Définissez les variables d'environnement USS. | Ajoutez des variables d'environnement au profil. Vous pouvez les ajouter soit au `/u/cliuser/.profile` fichier d'un utilisateur individuel (`cliuser`), soit au `/etc/profile` fichier de tous les utilisateurs.Ce modèle suppose que Python a été installé dans le `/u/awscli/python` répertoire. Si votre répertoire d'installation est différent, mettez à jour le code en conséquence.<pre># Python configuration<br />export BPXKAUTOCVT='ON'<br />export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)'<br />export TAGREDIR_ERR=txt<br />export TAGREDIR_IN=txt<br />export TAGREDIR_OUT=txt<br /><br /># AWS CLI configuration<br />export PATH=/u/cliuser/python/bin:$PATH<br />export PYTHONPATH=/u/cliuser/python:$PYTHONPATH</pre> | Administrateur mainframe z/OS  | 
| Testez l'installation de Python. | Exécutez la commande **python** :<pre>python --version</pre>Le résultat devrait confirmer que Python 3.8 ou version ultérieure est correctement installé. | Administrateur mainframe z/OS  | 
| Vérifiez ou installez **pip.** | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrateur mainframe z/OS  | 
| Installez AWS CLI la version 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrateur mainframe z/OS  | 

### Configuration de AWS CLI l'accès depuis z/OS
<a name="configure-cli-access-from-z-os"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez les clés AWS d'accès, la région par défaut et la sortie. | La [AWS CLI documentation](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) décrit les différentes options de configuration de AWS l'accès. Vous pouvez choisir une configuration en fonction des normes de votre organisation. Cet exemple utilise la configuration des informations d'identification à court terme.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrateur AWS, administrateur mainframe, z/OS développeur mainframe z/OS  | 
| Testez le AWS CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS Administrateur mainframe, développeur mainframe z/OS  | 

### Option 1 ‒ Transférer des données d'USS vers Amazon S3 de manière interactive à partir d'une session USS
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez et transférez l'exemple de fichier CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Développeur d'applications, développeur de mainframe z/OS  | 
| Créez un compartiment S3 et chargez le fichier CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Développeur d'applications, développeur de mainframe z/OS  | 
| Affichez le compartiment S3 et le fichier chargé. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Pour plus d'informations sur le téléchargement d'objets, consultez [Getting started with Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) dans la documentation Amazon S3. | AWS général | 
| Exécutez une requête SQL sur une table Amazon Athena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)La sortie de la requête SQL affichera le contenu de votre fichier CSV. | AWS général, développeur d'applications | 

### Option 2 ‒ Transférer des données d'USS vers Amazon S3 à l'aide du JCL par lots
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez le fichier d'exemple. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Développeur de mainframe z/OS  | 
| Créez un JCL par lots. | Codez le JCL du lot comme suit pour créer le compartiment S3 de destination, télécharger l'ensemble de données et répertorier le contenu du compartiment. Assurez-vous de remplacer le nom du répertoire, les noms de fichiers et le nom du compartiment par vos propres valeurs.<pre>//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), <br />// NOTIFY=&SYSUID,TIME=1440 <br />//*---------------------------------------------------------<br />//* Sample job for AWS CLI <br />//*--------------------------------------------------------- <br />//USSCMD EXEC PGM=BPXBATCH<br />//STDERR  DD SYSOUT=*<br />//STDOUT  DD SYSOUT=*<br />//STDENV  DD *<br /> export PATH=/u/cliuser/python/bin:$PATH<br />//STDPARM DD *<br />SH<br /> export _BPXK_AUTOCVT=ON;<br /> aws s3 mb s3://DOC-EXAMPLE-BUCKET2;<br /> cp "//'USER.DATA.FIXED'" /tmp/tmpfile;<br /> aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; <br /> rm /tmp/tmpfile;<br /> aws s3 ls s3://DOC-EXAMPLE-BUCKET2;<br />/*</pre> | Développeur de mainframe z/OS  | 
| Soumettez la tâche JCL par lots. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Développeur de mainframe z/OS  | 
| Affichez le jeu de données chargé dans le compartiment S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS général | 

## Ressources connexes
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI documentation de la version 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization Référence des commandes d'interface de ligne de commande](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## Informations supplémentaires
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED dans l'option ISPF 3.4 (utilitaire de liste de jeux de données)**

![\[Affichage du contenu du jeu de données dans z/OS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT du traitement par lots soumis**

![\[Sortie standard du journal des tâches.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## Pièces jointes
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Sauvegardez et archivez les données du mainframe sur Amazon S3 à l'aide de BMC AMI Cloud Data
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data"></a>

*Santosh Kumar Singh, Gilberto Biondo et Maggie Li, Amazon Web Services*

*Mikhael Liberman, logiciel mainframe Model9*

## Résumé
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-summary"></a>

Ce modèle montre comment sauvegarder et archiver les données du mainframe directement dans Amazon Simple Storage Service (Amazon S3), puis rappeler et restaurer ces données sur le mainframe à l'aide de BMC AMI Cloud Data (anciennement connu sous le nom de Model9 Manager). Si vous recherchez un moyen de moderniser votre solution de sauvegarde et d'archivage dans le cadre d'un projet de modernisation du mainframe ou pour répondre aux exigences de conformité, ce modèle peut vous aider à atteindre ces objectifs.

Généralement, les entreprises qui exécutent des applications métier de base sur des ordinateurs centraux utilisent une librairie de bandes virtuelles (VTL) pour sauvegarder les données stockées, telles que les fichiers et les journaux. Cette méthode peut être coûteuse car elle consomme du MIPS facturable et les données stockées sur des bandes en dehors du mainframe sont inaccessibles. Pour éviter ces problèmes, vous pouvez utiliser BMC AMI Cloud Data pour transférer rapidement et à moindre coût les données opérationnelles et historiques du mainframe directement vers Amazon S3. Vous pouvez utiliser BMC AMI Cloud Data pour sauvegarder et archiver des données AWS tout en tirant parti des moteurs IBM z Integrated Information Processor (ZiIP) pour réduire les coûts, le parallélisme et les temps de transfert. TCP/IP 

## Conditions préalables et limitations
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ BMC AMI Cloud Data avec une clé de licence valide
+ Connectivité TCP/IP entre le mainframe et AWS
+ Un rôle Gestion des identités et des accès AWS (IAM) pour read/write accéder à un compartiment S3
+ Accès aux produits de sécurité du mainframe (RACF) en place pour exécuter les processus BMC AMI Cloud
+ Un z/OS agent BMC AMI Cloud (Java version 8 64 bits SR5 FP16 ou ultérieure) disposant de ports réseau disponibles, de règles de pare-feu autorisant l'accès aux compartiments S3 et d'un système de fichiers dédié z/FS 
+ [Exigences](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) satisfaites pour le serveur de gestion BMC AMI Cloud

**Limites**
+ BMC AMI Cloud Data stocke ses données opérationnelles dans une base de données PostgreSQL qui s'exécute en tant que conteneur Docker sur la même instance Amazon Elastic Compute Cloud ( EC2Amazon) que le serveur de gestion. Amazon Relational Database Service (Amazon RDS) n'est actuellement pas pris en charge en tant que backend pour BMC AMI Cloud Data. Pour plus d'informations sur les dernières mises à jour du produit, consultez la section [Quoi de neuf ?](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) dans la documentation BMC.
+ Ce modèle sauvegarde et archive uniquement les données z/OS du mainframe. BMC AMI Cloud Data sauvegarde et archive uniquement les fichiers du mainframe.
+ Ce modèle ne convertit pas les données dans des formats ouverts standard tels que JSON ou CSV. Utilisez un service de transformation supplémentaire tel que [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (anciennement connu sous le nom de Model9 Gravity) pour convertir les données en formats ouverts standard. Les applications natives du cloud et les outils d'analyse de données peuvent accéder aux données une fois qu'elles ont été écrites dans le cloud.

**Versions du produit**
+ BMC AMI Cloud Data version 2.x

## Architecture
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-architecture"></a>

**Pile technologique source**
+ Mainframe exécutant z/OS
+ Fichiers mainframe tels que les ensembles de données et les fichiers z/OS UNIX System Services (USS)
+ Disque central, tel qu'un périphérique de stockage à accès direct (DASD)
+ Bande mainframe (librairie de bandes virtuelle ou physique)

**Pile technologique cible**
+ Amazon S3
+  EC2 Instance Amazon dans un cloud privé virtuel (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Architecture cible**

Le schéma suivant montre une architecture de référence dans laquelle les agents logiciels BMC AMI Cloud Data installés sur un mainframe pilotent les anciens processus de sauvegarde et d'archivage des données qui stockent les données dans Amazon S3.

![\[Agents logiciels BMC AMI Cloud Data sur un mainframe pilotant les anciens processus de sauvegarde et d'archivage des données\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


Le schéma suivant illustre le flux de travail suivant :

1. Les agents logiciels BMC AMI Cloud Data s'exécutent sur des partitions logiques du mainframe ()LPARs. Les agents logiciels lisent et écrivent les données du mainframe à partir d'un DASD ou d'une bande directement sur Amazon S3 via TCP/IP.

1. AWS Direct Connect établit une connexion physique isolée entre le réseau local et AWS. Pour une sécurité renforcée, utilisez un site-to-site VPN en plus Direct Connect pour chiffrer les données en transit.

1. Le compartiment S3 stocke les fichiers du mainframe sous forme de données de stockage d'objets, et les agents BMC AMI Cloud Data communiquent directement avec les compartiments S3. Les certificats sont utilisés pour le chiffrement HTTPS de toutes les communications entre l'agent et Amazon S3. Le chiffrement des données Amazon S3 est utilisé pour chiffrer et protéger les données au repos.

1. Les serveurs de gestion BMC AMI Cloud Data s'exécutent comme des conteneurs Docker sur EC2 les instances. Les instances communiquent avec les agents qui s'exécutent sur le mainframe LPARs et les buckets S3.

1. Amazon EFS est monté sur des EC2 instances actives et passives afin de partager le stockage NFS (Network File System). Cela permet de s'assurer que les métadonnées associées à une politique créée sur le serveur de gestion ne sont pas perdues en cas de basculement. En cas de basculement du serveur actif, le serveur passif est accessible sans perte de données. En cas de défaillance du serveur passif, il est possible d'accéder au serveur actif sans perte de données.

## Outils
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-tools"></a>

**Services AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) vous aide à créer et à configurer des systèmes de fichiers partagés dans le AWS Cloud.
+ [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 pratiquement n'importe quel volume de données.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)relie votre réseau interne à un AWS Direct Connect emplacement via un câble à fibre optique Ethernet standard. Grâce à cette connexion, vous pouvez créer des interfaces virtuelles directement vers les AWS services publics tout en contournant les fournisseurs de services Internet sur votre chemin réseau.
+ [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.

**Outils BMC**
+ Le [serveur de gestion BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) est une application graphique qui s'exécute en tant que conteneur Docker sur une Amazon Machine Image (AMI) Amazon Linux pour Amazon. EC2 Le serveur de gestion fournit les fonctionnalités nécessaires pour gérer les activités de BMC AMI Cloud, telles que le reporting, la création et la gestion de politiques, l'exécution d'archives et l'exécution de sauvegardes, de rappels et de restaurations.
+ [L'agent BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) s'exécute sur un LPAR mainframe sur site qui lit et écrit des fichiers directement dans le stockage d'objets à l'aide du protocole TCP/IP. Une tâche démarrée s'exécute sur un LPAR du mainframe et est chargée de lire et d'écrire les données de sauvegarde et d'archivage vers et depuis Amazon S3.
+ [L'interface de ligne de commande BMC AMI Cloud Mainframe (M9CLI)](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) vous fournit un ensemble de commandes permettant d'exécuter des actions BMC AMI Cloud directement depuis TSO/E ou par lots, sans dépendre du serveur de gestion.

## Épopées
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-epics"></a>

### Création d'un compartiment S3 et d'une politique IAM
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un compartiment S3. | [Créez un compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) pour stocker les fichiers et les volumes que vous souhaitez sauvegarder et archiver depuis votre environnement mainframe. | AWS général | 
| Créez une politique IAM. | Tous les serveurs et agents de gestion BMC AMI Cloud doivent accéder au compartiment S3 que vous avez créé à l'étape précédente.Pour accorder l'accès requis, créez la politique IAM suivante :<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Listfolder",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation",<br />                "s3:ListBucketVersions"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>"<br />            ]<br />        },<br />        {<br />            "Sid": "Objectaccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>/*"<br />            ]<br />        }<br />    ]<br />}</pre> | AWS général | 

### Obtenez la licence du logiciel BMC AMI Cloud et téléchargez le logiciel
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Obtenez une licence logicielle BMC AMI Cloud. | Pour obtenir une clé de licence logicielle, contactez l'[équipe BMC AMI Cloud](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). La sortie de la z/OS `D M=CPU` commande est requise pour générer une licence. | Gagnez du plomb | 
| Téléchargez le logiciel BMC AMI Cloud et la clé de licence. | Procurez-vous les fichiers d'installation et la clé de licence en suivant les instructions de la [documentation BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html). | Administrateur de l'infrastructure mainframe | 

### Installez l'agent logiciel BMC AMI Cloud sur le mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez l'agent logiciel BMC AMI Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrateur de l'infrastructure mainframe | 

### Configuration d'un serveur de gestion BMC AMI Cloud sur une instance EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez des instances Amazon EC2 Linux 2. | Lancez deux instances Amazon EC2 Linux 2 dans différentes zones de disponibilité en suivant les instructions de l'[étape 1 : Lancer une instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) dans la EC2 documentation Amazon.L'instance doit répondre aux exigences matérielles et logicielles recommandées suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Pour plus d'informations, consultez la [documentation BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Architecte cloud, administrateur cloud | 
| Créez un système de fichiers Amazon EFS. | Créez un système de fichiers Amazon EFS en suivant les instructions de l'[étape 1 : Création de votre système de fichiers Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) dans la documentation Amazon EFS.Lors de la création du système de fichiers, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrateur cloud, architecte cloud | 
| Installez Docker et configurez le serveur de gestion. | **Connectez-vous à vos EC2 instances :**Connectez-vous à vos EC2 instances en suivant les instructions de [Connect to your Linux instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) dans la EC2 documentation Amazon.**Configurez vos EC2 instances :**Pour chaque EC2 instance, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Architecte cloud, administrateur cloud | 
| Installez le logiciel du serveur de gestion. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Pour résoudre les problèmes, accédez aux journaux enregistrés dans le `/data/model9/logs/`**** dossier. Pour plus d'informations, consultez la [documentation BMC](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html). | Architecte cloud, administrateur cloud | 

### Ajoutez un agent et définissez une politique de sauvegarde ou d'archivage sur le serveur de gestion BMC AMI Cloud
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Ajoutez un nouvel agent. | Avant d'ajouter un nouvel agent, vérifiez les points suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Vous devez créer un agent sur le serveur de gestion avant de définir des politiques de sauvegarde et d'archivage. Pour créer l'agent, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Une fois l'agent créé, vous verrez l'état de **connexion** par rapport à l'agent de stockage d'objets et à l'agent mainframe dans une nouvelle fenêtre qui apparaît dans le tableau. | Administrateur ou développeur de stockage mainframe | 
| Créez une politique de sauvegarde ou d'archivage. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrateur ou développeur de stockage mainframe | 

### Exécutez la politique de sauvegarde ou d'archivage depuis le serveur de gestion
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez la politique de sauvegarde ou d'archivage. | Exécutez la politique de sauvegarde ou d'archivage des données que vous avez créée précédemment à partir du serveur de gestion, manuellement ou automatiquement (selon un calendrier). Pour exécuter la politique manuellement :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrateur ou développeur de stockage mainframe | 
| Restaurez la politique de sauvegarde ou d'archivage. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrateur ou développeur de stockage mainframe | 

### Exécuter la politique de sauvegarde ou d'archivage depuis le mainframe
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez la politique de sauvegarde ou d'archivage à l'aide de M9CLI. | Utilisez la M9CLI pour effectuer des processus de sauvegarde et de restauration à partir de TSO/E, REXX ou via TSO/E, JCLs sans définir de règles sur le serveur de gestion BMC AMI Cloud.**En utilisant TSO/E :**Si vous utilisez TSO/E, assurez-vous qu'il `M9CLI REXX` est concaténé à. `TSO` Pour sauvegarder un ensemble de données via TSO/E, utilisez la commande. `TSO M9CLI BACKDSN <DSNAME>`Pour plus d'informations sur les commandes M9CLI, consultez la [référence de la CLI](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) dans la documentation BMC.**En utilisant JCLs :**Pour exécuter la politique de sauvegarde et d'archivage à l'aide de JCLs, exécutez la `M9CLI` commande.**À l'aide d'opérations par lots :**L'exemple suivant montre comment archiver un ensemble de données en exécutant la `M9CLI` commande par lots :<pre>//JOBNAME JOB …<br />//M9CLI EXEC PGM=IKJEFT01<br />//STEPLIB DD DISP=SHR,DSN=<MODEL9 LOADLIB><br />//SYSEXEC DD DISP=SHR,DSN=<MODEL9 EXEC LIB><br />//SYSTSPRT DD SYSOUT=*<br />//SYSPRINT DD SYSOUT=*<br />//SYSTSIN DD TSO M9CLI ARCHIVE <br /> M9CLI ARCHIVE <DSNNAME OR DSN PATTERN>   <br />/</pre> | Administrateur ou développeur de stockage mainframe | 
| Exécutez la politique de sauvegarde ou d'archivage dans le batch JCL. | **BMC AMI Cloud fournit un exemple de routine JCL appelé M9SAPIJ.** Vous pouvez personnaliser **M9SAPIJ** pour exécuter une politique spécifique créée sur le serveur de gestion à l'aide d'une JCL. Cette tâche peut également faire partie d'un planificateur de lots permettant d'exécuter automatiquement des processus de sauvegarde et de restauration.Le traitement par lots attend les valeurs obligatoires suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Vous pouvez également modifier d'autres valeurs en suivant les instructions de l'exemple de tâche. | Administrateur ou développeur de stockage mainframe | 

## Ressources connexes
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Modernisation du mainframe avec AWS](https://aws.amazon.com/mainframe/) (documentation AWS)
+ [Comment la sauvegarde dans le cloud pour les mainframes réduit les coûts avec Model9 et AWS (](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/)blog du réseau de partenaires AWS)
+ [Comment activer l'analyse des données du mainframe sur AWS à l'aide de Model9 (blog du réseau de partenaires AWS)](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/)
+ [Recommandations relatives à la résilience d'AWS Direct Connect](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) (documentation AWS)
+ [Documentation de BMC AMI Cloud (site](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) Web de BMC)

# Créez des programmes COBOL DB2 en utilisant et AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

*Luis Gustavo Dantas et Eduardo Zimelewicz, Amazon Web Services*

## Résumé
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-summary"></a>

**Note**  
AWS Mainframe Modernization Le service (Managed Runtime Environment Experience) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires à AWS Mainframe Modernization Service (expérience d'environnement d'exécution géré), explorez AWS Mainframe Modernization Service (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS Mainframe Modernization la section Modification de la disponibilité](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Ce modèle explique comment créer un AWS CodeBuild projet simple pour précompiler et lier des programmes COBOL Db2 à l'aide des outils de replateforme. AWS Mainframe Modernization Cela permet le déploiement et l'exécution de ces programmes dans l'environnement d'exécution AWS Mainframe Modernization Replatform.

COBOL, langage de programmation orienté métier, alimente de nombreuses applications critiques en raison de sa fiabilité et de sa lisibilité. IBM Db2, un système de gestion de base de données relationnelle, gère efficacement de grands volumes de données et s'intègre aux programmes COBOL via SQL. Ensemble, COBOL et Db2 constituent l'épine dorsale des opérations critiques dans des secteurs tels que la finance et le gouvernement, malgré l'émergence de nouvelles technologies.

La migration des composants COBOL et DB2 de l'environnement mainframe vers d'autres plateformes pose des défis tels que la compatibilité des plateformes, la complexité de l'intégration, la migration des données et l'optimisation des performances. Le déplacement de ces composants critiques nécessite une planification minutieuse, une expertise technique et des ressources pour garantir une migration fluide tout en préservant la fiabilité et les fonctionnalités.

Le AWS Mainframe Modernization service fournit des outils et des ressources pour reconfigurer les applications et les bases de données du mainframe afin qu'elles s'exécutent sur une AWS infrastructure, telle que les instances Amazon Elastic Compute Cloud EC2 (Amazon). Cela implique de déplacer les charges de travail du mainframe vers le cloud sans modifications majeures du code.

Le processus de précompilation et de liaison Db2 est essentiel pour optimiser les performances et la fiabilité des applications de base de données. La précompilation transforme les instructions SQL intégrées en code exécutable, ce qui réduit la charge d'exécution et améliore l'efficacité. Le processus de liaison lie le code précompilé aux structures de base de données, facilitant ainsi les chemins d'accès et l'optimisation des requêtes. Ce processus garantit l'intégrité des données, améliore la réactivité des applications et protège contre les failles de sécurité. Les applications correctement précompilées et liées minimisent la consommation de ressources, améliorent l'évolutivité et atténuent les risques d'attaques par injection SQL.

## Conditions préalables et limitations
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Prérequis**
+ Un accès Compte AWS à la console au niveau administratif.
+ Un système de base de données IBM Db2, tel qu'IBM Db2 pour z/OS ou Db2 pour Linux, Unix et Windows (LUW).
+ Le logiciel client IBM Data Server, disponible en téléchargement sur le [site Web d'IBM](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers). Pour plus d'informations, consultez les [types de client et de pilote de serveur de données IBM](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) Data Server.
+ Un programme COBOL DB2 à compiler et à lier. Ce modèle fournit également un exemple de programme de base que vous pouvez utiliser.
+ Un cloud privé virtuel (VPC) associé à un AWS réseau privé. Pour plus d'informations sur la création d'un VPC, consultez la documentation [Amazon Virtual Private Cloud (Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)).
+ Un référentiel de contrôle de source tel que GitHub ou GitLab.

**Limites**
+ Pour les AWS CodeBuild quotas, voir [Quotas pour AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html).
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, voir [Services AWS par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez la page [Points de terminaison et quotas du service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien vers le service.

## Architecture
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-architecture"></a>

**Pile technologique source**

La pile source inclut :
+ Programmes COBOL qui utilisent une base de données DB2 pour stocker des données
+ Compilateur IBM COBOL et DB2 pour le précompilateur z/OS 
+ Autres éléments de la configuration du mainframe, tels que le système de fichiers, le gestionnaire de transactions et le spool

**Pile technologique cible**

L'approche de ce modèle fonctionne pour deux options : déplacer les données de Db2 pour z/OS vers Db2 pour LUW, ou rester sur Db2 pour z/OS. L'architecture cible inclut :
+ Programmes COBOL qui utilisent une base de données DB2 pour stocker des données
+ AWS Mainframe Modernization Outils de compilation de replateformes
+ AWS CodeBuild comme infrastructure pour créer l'application
+ Autres AWS Cloud ressources telles qu'Amazon Linux

**Architecture cible**

![\[Architecture pour créer des programmes COBOL Db2 sur AWS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


Le diagramme illustre les éléments suivants :

1. L'utilisateur télécharge son code dans un référentiel de contrôle de source tel que GitHub ou GitLab.

1. AWS CodePipeline remarque le changement et récupère le code depuis le dépôt.

1. CodePipeline démarre AWS CodeBuild et envoie le code.

1. CodeBuild suit les instructions du `buildspec.yml` modèle (fournies dans la section [Informations supplémentaires](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) pour :

   1. Obtenez le client IBM Data Server à partir d'un bucket Amazon Simple Storage Service (Amazon S3).

   1. Installez et configurez le client IBM Data Server.

   1. Récupérez les informations d'identification Db2 à partir de. AWS Secrets Manager

   1. Connectez-vous au serveur Db2.

   1. Précompilez, compilez et liez le programme COBOL.

   1. Enregistrez les produits finis dans un compartiment S3 AWS CodeDeploy pour les utiliser.

1. CodePipeline démarre CodeDeploy.

1. CodeDeploy coordonne ses agents, qui sont déjà installés dans les environnements d'exécution. Les agents récupèrent l'application depuis Amazon S3 et l'installent conformément aux instructions fournies dans`appspec.yml`.

Pour simplifier les choses et se concentrer sur le build, les instructions de ce modèle couvrent les étapes 1 à 4 mais n'incluent pas le déploiement du programme COBOL Db2.

**Automatisation et mise à l'échelle**

Pour des raisons de simplicité, ce modèle décrit comment provisionner les ressources manuellement. Cependant, de nombreuses options d'automatisation sont disponibles, telles que CloudFormation, AWS Cloud Development Kit (AWS CDK), et HashiCorp Terraform, qui automatisent ces tâches. Pour plus d'informations, consultez la [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html)documentation [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)et.

## Outils
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-tools"></a>

**Services AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)est un service de génération entièrement géré qui vous aide à compiler le code source, à exécuter des tests unitaires et à produire des artefacts prêts à être déployés.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatise les déploiements sur Amazon EC2 ou sur des instances, des AWS Lambda fonctions ou des services Amazon Elastic Container Service (Amazon ECS) sur site.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)vous permet de modéliser et de configurer rapidement les différentes étapes d'une version logicielle et d'automatiser les étapes nécessaires à la publication continue des modifications logicielles.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fournit des outils et des ressources pour vous aider à planifier et à mettre en œuvre la migration et la modernisation des mainframes vers des environnements d'exécution AWS gérés.

**Autres outils**
+ **Image Amazon ECR pour les outils de AWS Mainframe Modernization replateforme.** Pour compiler une application COBOL, vous devez commencer CodeBuild par utiliser une image Amazon Elastic Container Registry (Amazon ECR) contenant les outils de replateforme : AWS Mainframe Modernization 

  `673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`

  Pour plus d'informations sur l'image ECR disponible, consultez le [didacticiel](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html) dans le *guide de l'AWS Mainframe Modernization utilisateur*.
+ [Le logiciel client IBM Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) est essentiel pour précompiler et lier les programmes COBOL Db2 dans. CodeBuild Il agit comme un pont entre le compilateur COBOL et Db2.

## Bonnes pratiques
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Tous les programmes COBOL ne s'appuient pas sur Db2 comme couche de persistance des données. Assurez-vous que les directives de compilation pour accéder à Db2 sont appliquées uniquement aux programmes COBOL spécifiquement conçus pour interagir avec Db2. Implémentez une logique pour faire la distinction entre les programmes COBOL DB2 et les programmes COBOL qui n'utilisent pas Db2.
+ Nous vous recommandons d'éviter de compiler des programmes qui n'ont pas été modifiés. Implémentez un processus pour identifier les programmes qui nécessitent une compilation.

## Épopées
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-epics"></a>

### Création de l'infrastructure cloud
<a name="create-the-cloud-infrastructure"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un compartiment S3 pour héberger le client IBM Data Server et les artefacts du pipeline. | Vous devez configurer un compartiment S3 pour (a) télécharger le client IBM Data Server, (b) stocker votre code depuis le référentiel et (c) stocker les résultats du processus de génération.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Pour savoir comment créer un compartiment S3, consultez la [documentation Amazon S3.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) | AWS général | 
| Téléchargez le client IBM Data Server dans le compartiment S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS général | 
| Créez un AWS Secrets Manager secret pour vos informations d'identification DB2. | Pour créer un secret afin de stocker vos DB2 informations d'identification en toute sécurité :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Pour plus d'informations sur la création de secrets, consultez la [documentation de Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | AWS général | 
| Vérifiez que Db2 est accessible depuis le sous-réseau VPC. | AWS CodeBuild nécessite une connexion au serveur DB2 afin que le client du serveur de données puisse effectuer des opérations de précompilation et de liaison. Assurez-vous qu'il CodeBuild peut atteindre le serveur DB2 via une connexion sécurisée.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Administrateur réseau, AWS général | 

### Création des artefacts de l'application
<a name="create-the-application-artifacts"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'actif COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Développeur d’applications | 
| Créez le fichier `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Connectez votre référentiel à CodePipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Vous aurez besoin de l'Amazon Resource Name (ARN) pour la connexion lorsque vous créerez la politique Gestion des identités et des accès AWS (IAM) pour CodePipeline une étape ultérieure. | AWS DevOps | 

### Configurer les autorisations
<a name="configure-permissions"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une politique IAM pour CodeBuild. | Le CodeBuild projet nécessite l'accès à certaines ressources, notamment Secrets Manager et Amazon S3.Pour configurer les autorisations nécessaires :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Pour plus d'informations sur la création de politiques IAM, consultez la documentation [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | AWS général | 
| Créez un rôle IAM pour CodeBuild. | Pour que les politiques de sécurité soient disponibles pour CodeBuild, vous devez configurer un rôle IAM.Pour créer ce rôle, procédez comme suit :1. Sur la [console IAM](https://console.aws.amazon.com/iam), dans le volet de navigation, choisissez **Roles**, **Create Role**.3. Pour le **type d'entité fiable**, conservez le **Service AWS**paramètre par défaut.4. Dans le **champ Cas d'utilisation**, sélectionnez le CodeBuild service, puis cliquez sur **Suivant**.4. Dans la liste des stratégies IAM disponibles, recherchez la stratégie pour laquelle vous avez créé CodeBuild, puis choisissez **Next** pour l'associer au rôle.5. Spécifiez un nom pour le rôle, puis choisissez **Create role** pour l'enregistrer pour référence future dans CodeBuild.Pour plus d'informations sur la création d'un rôle IAM pour un Service AWS, consultez la documentation [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | AWS général | 
| Créez une politique IAM pour CodePipeline. | Le AWS CodePipeline pipeline nécessite l'accès à certaines ressources, notamment votre référentiel de code et Amazon S3.Répétez les étapes indiquées précédemment pour CodeBuild créer une politique IAM pour CodePipeline (à l'étape 2, choisissez **CodePipeline**au lieu de **CodeBuild**). | AWS DevOps | 
| Créez un rôle IAM pour CodePipeline. | Pour que les politiques de sécurité soient disponibles pour CodePipeline, vous devez configurer un rôle IAM.Pour créer ce rôle, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compilez et liez le programme COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un CodePipeline pipeline et un CodeBuild projet. | Pour créer un CodePipeline pipeline et le CodeBuild projet qui compile et lie le programme COBOL Db2 :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Vérifiez la sortie. | Vérifiez le succès de la compilation en consultant les journaux de CodePipeline compilation. | AWS DevOps | 
| Vérifiez les résultats dans DB2. | Vérifiez la version du package dans le tableau SYSPLAN.<pre>select CAST(NAME AS VARCHAR(10)) as name, VALIDATE, LAST_BIND_TIME, LASTUSED, CAST(PKGVERSION AS VARCHAR(10)) as PKGVERSION from SYSIBM.SYSPLAN where NAME = 'CDB2SMP' order by LAST_BIND_TIME desc<br /></pre>La version doit correspondre à l'ID de CodeBuild build, qui se trouve `CDB2SMP` dans notre exemple :<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Résolution des problèmes
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Parfois, la AWS console change de région lorsque vous passez d'un service à l'autre. | Assurez-vous de vérifier la valeur sélectionnée Région AWS chaque fois que vous passez d'un service à l'autre.Le Région AWS sélecteur se trouve dans le coin supérieur droit de la fenêtre de console. | 
| Il peut être difficile d'identifier les problèmes de connectivité Db2 à partir de CodeBuild. | Pour résoudre les problèmes de connectivité, ajoutez la commande de DB2 connexion suivante au `buildspec.yml` fichier. Cet ajout vous permet de déboguer et de résoudre les problèmes de connectivité.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| Parfois, le volet des rôles de la console IAM n'affiche pas immédiatement la politique IAM que vous avez créée. | En cas de retard, actualisez l'écran pour afficher les dernières informations. | 

## Ressources connexes
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-resources"></a>

**Documentation IBM**
+ [Types de clients et de pilotes IBM Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Télécharger les types de clients et de pilotes IBM Data Server](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentation**
+ [Guide de l'utilisateur d'Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guide de l'utilisateur](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Guide de l'utilisateur](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Guide de l'utilisateur](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guide de l'utilisateur](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guide de l'utilisateur** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Informations supplémentaires
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild stratégie**

Remplacez les espaces réservés `<RegionID>``<AccountID>`,, `<SubnetARN>``<BucketARN>`, et `<DB2CredSecretARN>` par vos valeurs.

```
{"Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*" },
        {"Action": ["ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", 
                    "ecr:BatchCheckLayerAvailability"],
         "Effect": "Allow", 
         "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools"},
        {"Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::aws-m2-repo-*/*"},
        {"Action": ["logs:PutLogEvents", "logs:CreateLogStream", "logs:CreateLogGroup"],
         "Effect": "Allow", "Resource": "arn:aws:logs:<RegionId>:<AccountId>:*"},
        {"Action": ["ec2:DescribeVpcs", "ec2:DescribeSubnets", 
                    "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", 
                    "ec2:DescribeDhcpOptions", "ec2:DeleteNetworkInterface", 
                    "ec2:CreateNetworkInterface"],
         "Effect": "Allow", "Resource": "*"},
        {"Action": "ec2:CreateNetworkInterfacePermission", 
         "Effect": "Allow", "Resource": ["<SubnetARN>"]},
        {"Action": "s3:*", "Effect": "Allow", "Resource": ["<BucketARN>/*","<BucketARN>"]},
        {"Action": "secretsmanager:GetSecretValue", 
         "Effect": "Allow", "Resource": "<DB2CredSecretARN>"}
    ]
}
```

**CodePipeline stratégie**

Remplacez les espaces réservés `<BucketARN>` `<ConnectionARN>` par vos valeurs.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": ["s3:List*", "s3:GetObjectVersion", "s3:GetObject", "s3:GetBucketVersioning" ], 
        "Effect": "Allow",
        "Resource": ["<BucketARN>/*", "<BucketARN>"]},
        {"Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds"], 
         "Effect": "Allow", "Resource": "*"},
        {"Action": ["codestar-connections:UseConnection"],
         "Effect": "Allow", "Resource": "<ConnectionARN>"}
        ]
}
```

**`buildspec.yml`**

Remplacez l'`<your-bucket-name>`espace réservé par le nom réel de votre compartiment S3.

```
version: 0.2
phases:
  pre_build:
    commands:
      - /var/microfocuslicensing/bin/mfcesd -no > /var/microfocuslicensing/logs/mfcesd_startup.log 2>&1 &
      - |
        mkdir $CODEBUILD_SRC_DIR/db2client
        aws s3 cp s3://<your-bucket-name>/v11.5.8_linuxx64_client.tar.gz $CODEBUILD_SRC_DIR/db2client/ >> /dev/null 2>&1
        tar -xf $CODEBUILD_SRC_DIR/db2client/v11.5.8_linuxx64_client.tar.gz -C $CODEBUILD_SRC_DIR/db2client/
        cd $CODEBUILD_SRC_DIR/db2client/
        ./client/db2_install -f sysreq -y -b /opt/ibm/db2/V11.5 >> /dev/null 2>&1        
        useradd db2cli
        /opt/ibm/db2/V11.5/instance/db2icrt -s client -u db2cli db2cli
        DB2CRED=$(aws secretsmanager get-secret-value --secret-id dev-db2-cred | jq -r '.SecretString | fromjson')
        read -r DB2USER DB2PASS DB_NODE DB_HOST DB_PORT DB_NAME DB_QUAL <<<$(echo $DB2CRED | jq -r '.username, .password, .db2node, .db2host, .db2port, .db2name, .qualifier')
        . /home/db2cli/sqllib/db2profile
        db2 catalog tcpip node $DB_NODE remote $DB_HOST server $DB_PORT
        db2 catalog db $DB_NAME as $DB_NAME at node $DB_NODE authentication server
  build:
    commands:
      - |
        revision=$CODEBUILD_SRC_DIR/loadlib
        mkdir -p $revision; cd $revision
        . /opt/microfocus/EnterpriseDeveloper/bin/cobsetenv
        cob -zU $CODEBUILD_SRC_DIR/CDB2SMP.cbl -C "DB2(DB==${DB_NAME} PASS==${DB2USER}.${DB2PASS} VERSION==${CODEBUILD_BUILD_NUMBER} COLLECTION==DB2AWSDB"
artifacts:
  files:
    - "**/*"
  base-directory: $revision
```

# Créez un PAC de serveur Micro Focus Enterprise avec Amazon EC2 Auto Scaling et Systems Manager
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager"></a>

*Kevin Yung et Krithika Palani Selvam, Amazon Web Services*

*Peter Woods, aucun*

*Abraham Rondon, Micro Focus*

## Résumé
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-summary"></a>

Ce modèle introduit une architecture évolutive pour les applications mainframe utilisant [Micro Focus Enterprise Server dans Scale-Out Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html) et un groupe Amazon Elastic Compute Cloud (Amazon) EC2 Auto Scaling sur Amazon Web Services ().AWS La solution est entièrement automatisée grâce aux hooks AWS Systems Manager de cycle de vie Amazon EC2 Auto Scaling. En utilisant ce modèle, vous pouvez configurer les applications en ligne et par lots de votre mainframe afin d'obtenir une résilience élevée grâce à une mise à l'échelle interne et externe automatique en fonction de vos demandes de capacité. 

**Note**  
Ce modèle a été testé avec Micro Focus Enterprise Server version 6.0. Pour la version 8, consultez [Configurer Micro Focus Runtime (sur Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Conditions préalables et limitations
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Logiciel et licence Micro Focus Enterprise Server. Pour plus de détails, contactez le [service commercial de Micro Focus](https://www.microfocus.com/en-us/contact/contactme).
+ Compréhension du concept de reconstruction et de fourniture d'une application mainframe à exécuter dans Micro Focus Enterprise Server. Pour une présentation détaillée, consultez la [fiche technique du serveur Micro Focus Enterprise](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Compréhension des concepts du cluster de performance et de disponibilité évolutif de Micro Focus Enterprise Server. Pour plus d'informations, consultez la [documentation de Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Compréhension du concept global d'application mainframe DevOps avec intégration continue (CI). Pour un modèle de guidage AWS prescriptif développé par Micro Focus AWS et Micro Focus, voir [Modernisation du mainframe : DevOps on AWS with](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) Micro Focus.

**Note**  
Ce modèle a été testé avec Micro Focus Enterprise Server version 6. Pour la version 8, consultez [Configurer Micro Focus Runtime (sur Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Limites**
+ Pour obtenir la liste des plateformes prises en charge par Micro Focus Enterprise Server, consultez la [fiche technique du serveur Micro Focus Enterprise](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Les scripts et les tests utilisés dans ce modèle sont basés sur Amazon EC2 Windows Server 2019 ; les autres versions de Windows Server et systèmes d'exploitation n'ont pas été testés pour ce modèle.
+ Le modèle est basé sur Micro Focus Enterprise Server 6.0 pour Windows ; les versions antérieures ou ultérieures n'ont pas été testées lors du développement de ce modèle.

**Versions du produit**
+ Serveur Micro Focus Enterprise 6.0
+ Windows Server 2019

## Architecture
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-architecture"></a>

Dans un environnement mainframe classique, vous devez fournir du matériel pour héberger vos applications et vos données d'entreprise. Pour répondre aux pics de demandes saisonnières, mensuelles, trimestrielles, voire inédits ou inattendus, les utilisateurs de mainframe doivent *évoluer* en achetant des capacités de stockage et de calcul supplémentaires. L'augmentation du nombre de ressources de stockage et de capacité de calcul améliore les performances globales, mais la mise à l'échelle n'est pas linéaire.

Ce n'est pas le cas lorsque vous commencez à adopter un modèle de consommation à la demande sur AWS en utilisant les serveurs Amazon EC2 Auto Scaling et Micro Focus Enterprise. Les sections suivantes expliquent en détail comment créer une architecture d'application mainframe entièrement automatisée et évolutive à l'aide du cluster PAC (Micro Focus Enterprise Server Scale-Out Performance and Availability Cluster) avec un groupe Amazon EC2 Auto Scaling. 

**Architecture de mise à l'échelle automatique de Micro Focus Enterprise Server**

Tout d'abord, il est important de comprendre les concepts de base de Micro Focus Enterprise Server. Cet environnement fournit un environnement de déploiement x86 compatible avec le mainframe pour les applications qui s'exécutaient traditionnellement sur le mainframe IBM. Il propose des exécutions en ligne et par lots ainsi qu'un environnement de transaction prenant en charge les éléments suivants :
+ IBM COBOL
+ IBM PL/I
+ Tâches par lots IBM JCL
+ Transactions IBM CICS et IMS TM
+ Services Web
+ Utilitaires de traitement par lots courants, notamment SORT

Micro Focus Enterprise Server permet aux applications mainframe de s'exécuter avec un minimum de modifications. Les charges de travail du mainframe existantes peuvent être déplacées vers des plateformes x86 et modernisées afin de tirer parti des extensions natives du cloud AWS pour une expansion rapide vers de nouveaux marchés ou de nouvelles zones géographiques. 

Le modèle AWS Prescriptive Guidance [Modernisation du mainframe : on DevOps AWS with Micro Focus](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) a introduit l'architecture permettant d'accélérer le développement et le test d'applications mainframe sur AWS à l'aide de Micro Focus Enterprise Developer et Enterprise Test Server avec AWS et AWS. CodePipeline CodeBuild Ce modèle met l'accent sur le déploiement d'applications mainframe dans l'environnement de production AWS afin de garantir une disponibilité et une résilience élevées.

Dans un environnement de production mainframe, vous avez peut-être configuré IBM Parallel Sysplex dans le mainframe pour obtenir des performances et une disponibilité élevées. Pour créer une architecture évolutive similaire à Sysplex, Micro Focus a introduit le cluster de performance et de disponibilité (PAC) dans Enterprise Server. PACs prendre en charge le déploiement d'applications mainframe sur plusieurs régions de serveurs d'entreprise gérées sous forme d'image unique et redimensionnées dans des instances Amazon EC2 . PACs prennent également en charge les performances prévisibles des applications et le débit du système à la demande. 

Dans un PAC, plusieurs instances d'Enterprise Server fonctionnent ensemble en tant qu'entité logique unique. La défaillance d'une instance de serveur d'entreprise n'interrompt donc pas la continuité des activités, car la capacité est partagée avec d'autres régions, tandis que les nouvelles instances sont automatiquement démarrées à l'aide de fonctionnalités standard telles qu'un groupe Amazon EC2 Auto Scaling. Cela élimine les points de défaillance uniques, améliorant ainsi la résilience face aux problèmes matériels, réseau et applicatifs. Les instances de serveur d'entreprise évolutives peuvent être exploitées et gérées à l'aide de l'administration Web commune d'Enterprise Server (ESCWA) APIs, ce qui simplifie la maintenance opérationnelle et la facilité de maintenance des serveurs d'entreprise. 

**Note**  
Micro Focus recommande que le [cluster de performance et de disponibilité (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) soit composé d'au moins trois régions de serveurs d'entreprise afin que la disponibilité ne soit pas compromise en cas de défaillance ou de maintenance d'une région de serveurs d'entreprise.

La configuration PAC nécessite un service de gestion de base de données relationnelle (RDBMS) pris en charge pour gérer la base de données régionale, une base de données interrégionale et des bases de données facultatives. Une base de données de stockage de données doit être utilisée pour gérer les fichiers VSAM (Virtual Storage Access Method) à l'aide du support du gestionnaire de fichiers de base de données Micro Focus afin d'améliorer la disponibilité et l'évolutivité. Les produits suivants RDBMSs sont pris en charge :
+ Microsoft SQL Server 2009 R2 et versions ultérieures
+ PostgreSQL 10.x, y compris l'édition compatible avec Amazon Aurora PostgreSQL
+ DB2 10.4 et versions ultérieures

Pour plus de détails sur les exigences RDBMS et PAC prises en charge, voir [Micro Focus Enterprise Server - Conditions préalables](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) et [Micro Focus Enterprise Server - Configuration PAC recommandée](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html).

Le schéma suivant montre une configuration d'architecture AWS typique pour un Micro Focus PAC. 

![\[Une architecture à trois zones de disponibilité comportant cinq étapes décrites dans un tableau après le schéma.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **Composant** | **Description** | 
| --- |--- |--- |
| 1 | Groupe de mise à l'échelle automatique des instances d'Enterprise Server | Configurez un groupe de dimensionnement automatique déployé avec des instances de serveur d'entreprise dans un PAC. Le nombre d'instances peut être augmenté ou introduit par des CloudWatch alarmes Amazon à l'aide de CloudWatch métriques. | 
| 2 | Groupe de mise à l'échelle automatique des instances de la CESAO d'Enterprise Server  | Configurez un groupe de dimensionnement automatique déployé avec Enterprise Server Common Web Administration (ESCWA). La CESAO assure la gestion des clusters. APIs   Les serveurs de la CESAO agissent comme un plan de contrôle pour ajouter ou supprimer des serveurs d'entreprise et pour démarrer ou arrêter des régions de serveurs d'entreprise dans le PAC lors des événements de dimensionnement automatique de l'instance de serveur d'entreprise.   Comme l'instance de la CESAO n'est utilisée que pour la gestion du PAC, son schéma de trafic est prévisible et sa mise à l'échelle automatique requise en termes de capacité peut être définie sur 1.  | 
| 3 | Instance Amazon Aurora dans une configuration multi-AZ | Configurez un système de gestion de base de données relationnelle (RDBMS) pour héberger les fichiers de données utilisateur et système à partager entre les instances d'Enterprise Server. | 
| 4 | Instance et réplique Amazon ElastiCache (Redis OSS) | Configurez une instance principale ElastiCache (Redis OSS) et au moins une réplique pour héberger les données utilisateur et faire office de référentiel évolutif (SOR) pour les instances d'Enterprise Server. Vous pouvez configurer un ou plusieurs [référentiels évolutifs](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) pour stocker des types spécifiques de données utilisateur.   Enterprise Server utilise une base de données Redis NoSQL comme SOR[, une exigence pour maintenir](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html) l'intégrité du PAC. | 
| 5 | Network Load Balancer | Configurez un équilibreur de charge, en fournissant un nom d'hôte pour que les applications se connectent aux services fournis par les instances d'Enterprise Server (par exemple, accès à l'application via un émulateur 3270). | 

Ces composants constituent la configuration minimale requise pour un cluster PAC Micro Focus Enterprise Server. La section suivante traite de l'automatisation de la gestion des clusters.

**Utilisation d'AWS Systems Manager Automation pour le dimensionnement**

Une fois le cluster PAC déployé sur AWS, le PAC est géré via l'Enterprise Server Common Web Administration (ESCWA). APIs 

Pour automatiser les tâches de gestion du cluster lors d'événements de dimensionnement automatique, vous pouvez utiliser les runbooks Systems Manager Automation et Amazon EC2 Auto Scaling with Amazon EventBridge. L'architecture de ces automatisations est illustrée dans le schéma suivant.

![\[AWS architecture diagram showing EventBridge, Systems Manager, and EC2 Auto Scaling integration.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/6f9e4035-fafd-4aee-a6cc-d5e95d6514c2.png)


 


| 
| 
|  | **Composant** | **Description** | 
| --- |--- |--- |
| 1 | Crochet de cycle de vie évolutif automatique | Configurez des hooks de cycle de vie de dimensionnement automatique et envoyez des notifications à Amazon EventBridge lorsque de nouvelles instances sont lancées et que des instances existantes sont résiliées dans le groupe de dimensionnement automatique. | 
| 2 | Amazon EventBridge | Configurez une EventBridge règle Amazon pour acheminer les événements de dimensionnement automatique vers les cibles du runbook de Systems Manager Automation. | 
| 3 | Runbooks d'automatisation | Configurez les runbooks Systems Manager Automation pour exécuter PowerShell des scripts Windows et appelez la CESAO APIs pour gérer le PAC. Pour des exemples, consultez la section *Informations supplémentaires*. | 
| 4 | Instance ESCWA d'Enterprise Server dans un groupe de dimensionnement automatique | Configurez une instance Enterprise Server ESCWA dans un groupe de dimensionnement automatique. L'instance de la CESAO permet APIs de gérer le PAC.  | 

## Outils
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-tools"></a>
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) — Micro Focus Enterprise Server fournit l'environnement d'exécution pour les applications créées avec n'importe quelle variante de l'environnement de développement intégré (IDE) d'Enterprise Developer.
+ [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) — Amazon EC2 Auto Scaling vous aide à vous assurer que vous disposez du nombre correct d' EC2 instances Amazon disponibles pour gérer la charge de votre application. Vous créez des ensembles d' EC2 instances, appelés groupes Auto Scaling, et vous spécifiez le nombre minimum et maximum d'instances.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html) — Amazon ElastiCache est un service Web permettant de configurer, de gérer et de dimensionner un stockage de données en mémoire distribué ou un environnement de cache dans le cloud. Il fournit une solution de cache performante, évolutive et économique.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) — Amazon Relational Database Service (Amazon RDS) est un service Web qui facilite la configuration, l'exploitation et le dimensionnement d'une base de données relationnelle dans le cloud AWS. Il fournit une capacité redimensionnable et rentable pour une base de données relationnelle et gère les tâches d'administration de base de données courantes. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) — AWS Systems Manager est un service AWS que vous pouvez utiliser pour visualiser et contrôler votre infrastructure sur AWS. À l'aide de la console Systems Manager, vous pouvez consulter les données opérationnelles de plusieurs services AWS et automatiser les tâches opérationnelles sur l'ensemble de vos ressources AWS. Systems Manager vous aide à maintenir la sécurité et la conformité en analysant vos Instances gérées et en signalant toute infraction à la politique (ou en prenant des mesures correctives pour y remédier).

## Épopées
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-epics"></a>

### Création d'une instance Amazon Aurora
<a name="create-an-amazon-aurora-instance"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un CloudFormation modèle AWS pour une instance Amazon Aurora. | Utilisez l'[extrait de code d'exemple AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html) pour créer un CloudFormation modèle qui créera une instance Amazon Aurora PostgreSQL Edition compatible. | Architecte du cloud | 
| Déployez une CloudFormation pile pour créer l'instance Amazon Aurora. | Utilisez le CloudFormation modèle pour créer une instance compatible Aurora PostgreSQL sur laquelle la réplication multi-AZ est activée pour les charges de travail de production. | Architecte du cloud | 
| Configurez les paramètres de connexion à la base de données pour Enterprise Server. | Suivez les instructions de la [documentation Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html) pour préparer les chaînes de connexion et la configuration de la base de données pour Micro Focus Enterprise Server. | Ingénieur de données, DevOps ingénieur | 

### Création d'un ElastiCache cluster Amazon pour l'instance Redis
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un CloudFormation modèle pour le ElastiCache cluster Amazon pour l'instance Redis. | Utilisez l'[extrait de code d'exemple AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html) pour créer un CloudFormation modèle qui créera un ElastiCache cluster Amazon pour l'instance Redis. | Architecte du cloud | 
| Déployez la CloudFormation pile pour créer un ElastiCache cluster Amazon pour l'instance Redis. | Créez le ElastiCache cluster Amazon pour l'instance Redis sur laquelle la réplication multi-AZ est activée pour les charges de travail de production. | Architecte du cloud | 
| Configurez les paramètres de connexion PSOR d'Enterprise Server. | Suivez les instructions de la [documentation Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) pour préparer la configuration de connexion au référentiel PAC Scale-Out (PSOR) pour le PAC Micro Focus Enterprise Server. | DevOps ingénieur | 

### Création d'un groupe de dimensionnement automatique Micro Focus Enterprise Server (CESAO)
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une AMI Micro Focus Enterprise Server. | Créez une instance Amazon EC2 Windows Server et installez le binaire Micro Focus Enterprise Server dans l' EC2 instance. Créez une Amazon Machine Image (AMI) de l' EC2 instance. Pour plus d'informations, consultez la [documentation d'installation d'Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Architecte du cloud | 
| Créez un CloudFormation modèle pour Enterprise Server ESCWA.  | Utilisez l'[exemple d'extrait de code AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) pour créer un modèle permettant de créer une pile personnalisée d'Enterprise Server ESCWA dans un groupe de dimensionnement automatique. | Architecte du cloud | 
| Déployez la CloudFormation pile pour créer un groupe de EC2 dimensionnement Amazon pour Enterprise Server ESCWA. | Utilisez le CloudFormation modèle pour déployer le groupe de dimensionnement automatique avec l'AMI Micro Focus Enterprise Server ESCWA créée dans l'article précédent. | Architecte du cloud | 

### Création d'un manuel d'automatisation d'AWS Systems Manager
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un CloudFormation modèle pour un runbook de Systems Manager Automation. | Utilisez les exemples d'extraits de code présentés dans la section *Informations supplémentaires* pour créer un CloudFormation modèle qui créera un runbook Systems Manager Automation afin d'automatiser la création de PAC, le scalage d'Enterprise Server et le scaling out d'Enterprise Server. | Architecte du cloud | 
| Déployez la CloudFormation pile qui contient le runbook Systems Manager Automation. | Utilisez le CloudFormation modèle pour déployer une pile contenant le runbook d'automatisation pour la création de PAC, le scalage intégré du serveur Enterprise et le dimensionnement externe du serveur Enterprise. | Architecte du cloud | 

### Création d'un groupe de dimensionnement automatique pour Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un CloudFormation modèle pour configurer un groupe de dimensionnement automatique pour Micro Focus Enterprise Server. | Utilisez l'[extrait de code d'exemple AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) pour créer un CloudFormation modèle qui créera un groupe de dimensionnement automatique. Ce modèle réutilisera la même AMI que celle créée pour l'instance ESCWA de Micro Focus Enterprise Server. Utilisez ensuite un [exemple d'extrait de code AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) pour créer l'événement de cycle de vie de dimensionnement automatique et configurez Amazon EventBridge pour filtrer les événements de scale-out et de scale-in dans le même modèle. CloudFormation  | Architecte du cloud | 
| Déployez la CloudFormation pile pour le groupe de dimensionnement automatique pour les serveurs Micro Focus Enterprise. | Déployez la CloudFormation pile contenant le groupe de dimensionnement automatique pour les serveurs Micro Focus Enterprise. | Architecte du cloud | 

## Ressources connexes
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Cluster de performance et de disponibilité des serveurs Micro Focus Enterprise (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Crochets relatifs au cycle de vie d'Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Exécution d'automatisations avec des déclencheurs à l'aide de EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

## Informations supplémentaires
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-additional"></a>

Les scénarios suivants doivent être automatisés pour étendre ou dédimensionner les clusters PAC.

**Automatisation pour démarrer ou recréer un PAC**

Au démarrage d'un cluster PAC, Enterprise Server nécessite l'appel de la CESAO pour APIs créer une configuration PAC. Cela démarre et ajoute des régions Enterprise Server dans le PAC. Pour créer ou recréer un PAC, procédez comme suit : 

1. Configurez un [référentiel PAC Scale-Out (PSOR)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) dans la CESAO avec un nom donné.

   ```
   POST /server/v1/config/groups/sors
   ```

1. Créez un PAC avec un nom donné et joignez-y le PSOR.

   ```
   POST /server/v1/config/groups/pacs
   ```

1. Configurez la base de données régionale et la base de données interrégionale si c'est la première fois que vous configurez un PAC.
**Note**  
Cette étape utilise des requêtes SQL et l'outil de ligne de commande **dbhfhadmin** de Micro Focus Enterprise Suite pour créer la base de données et importer les données initiales.

1. Installez la définition PAC dans les régions Enterprise Server.

   ```
   POST /server/v1/config/mfds 
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Démarrez les régions Enterprise Server dans le PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

Les étapes précédentes peuvent être mises en œuvre à l'aide d'un PowerShell script Windows. 

Les étapes suivantes expliquent comment créer une automatisation pour créer un PAC en réutilisant le PowerShell script Windows.

1. Créez un modèle de EC2 lancement Amazon qui télécharge ou crée le PowerShell script Windows dans le cadre du processus de démarrage. Par exemple, vous pouvez utiliser les données EC2 utilisateur pour télécharger le script depuis un bucket Amazon Simple Storage Service (Amazon S3).

1. Créez un runbook AWS Systems Manager Automation pour appeler le PowerShell script Windows.

1. Associez le runbook à l'instance de la CESAO à l'aide de la balise d'instance.

1. Créez un groupe de dimensionnement automatique de la CESAO à l'aide du modèle de lancement. 

Vous pouvez utiliser l'exemple d' CloudFormation extrait AWS suivant pour créer le runbook Automation.

*Exemple d' CloudFormation extrait pour un runbook Systems Manager Automation utilisé pour la création de PAC*

```
  PACInitDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to create Enterprise Server PAC
         mainSteps:
         - action: aws:runPowerShellScript
           name: CreatePAC
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - | 
               C:\Scripts\PAC-Init.ps1
  PacInitAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         description: Prepare Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunPACInitDocument
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref PACInitDocument
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
   PacInitDocumentAssociation:
     Type: AWS::SSM::Association
     Properties:
       DocumentVersion: "$LATEST"
       Name: !Ref PACInitDocument
       Targets:
         - Key: tag:Enterprise Server - ESCWA
           Values:
             - "true"
```

Pour plus d'informations, voir [Micro Focus Enterprise Server - Configuration d'un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

**Automatisation pour une mise à l'échelle avec une nouvelle instance de serveur d'entreprise**

Lorsqu'une instance de serveur d'entreprise est étendue, sa région de serveur d'entreprise doit être ajoutée au PAC. Les étapes suivantes expliquent comment invoquer la CESAO APIs et ajouter la région Enterprise Server dans le PAC. 

1. Installez la définition PAC dans les régions Enterprise Server.

   ```
   POST '/server/v1/config/mfds'
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Démarrez à chaud la région dans le PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

1. Ajoutez l'instance Enterprise Server à l'équilibreur de charge en associant le groupe de dimensionnement automatique à l'équilibreur de charge.

Les étapes précédentes peuvent être mises en œuvre à l'aide d'un PowerShell script Windows. Pour plus d'informations, voir [Micro Focus Enterprise Server - Configuration d'un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

Les étapes suivantes peuvent être utilisées pour créer une automatisation pilotée par les événements afin d'ajouter une instance Enterprise Server récemment lancée dans un PAC en réutilisant le PowerShell script Windows. 

1. Créez un modèle de EC2 lancement Amazon pour une instance de serveur d'entreprise qui provisionne une région de serveur d'entreprise lors de son démarrage. Par exemple, vous pouvez utiliser la commande mfds de Micro Focus Enterprise Server pour importer une configuration de région. Pour plus de détails et pour connaître les options disponibles pour cette commande, consultez le manuel [Enterprise Server Reference](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html).

1. Créez un groupe de dimensionnement automatique Enterprise Server qui utilise le modèle de lancement créé à l'étape précédente.

1. Créez un runbook Systems Manager Automation pour appeler le PowerShell script Windows. 

1. Associez le runbook à l'instance de la CESAO à l'aide de la balise d'instance.

1. Créez une EventBridge règle Amazon pour filtrer l'événement EC2 Instance Launch Successful pour le groupe de dimensionnement automatique Enterprise Server, et créez la cible pour utiliser le runbook Automation.

Vous pouvez utiliser l'exemple d' CloudFormation extrait suivant pour créer le runbook Automation et la règle. EventBridge 

*Exemple d' CloudFormation extrait de code pour Systems Manager utilisé pour étendre les instances d'Enterprise Server*

```
  ScaleOutDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Adding MFDS Server into an existing PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Add_MFDS
           inputs:
             onFailure: Abort
             timeoutSeconds: "300"
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-Out.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleOutAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         description: Scale Out 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleOutCommand
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleOutDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 InstanceId: "{{InstanceId}}"
                 MfdsPort: "{{MfdsPort}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
```

**Automatisation pour le dimensionnement dans une instance de serveur d'entreprise**

Comme dans le cas du scaling out, lorsqu'une instance de serveur d'entreprise est mise *à l'échelle*, l'action de EC2 fin du cycle de vie de l'instance d'événement est lancée et les appels de processus et d'API suivants sont nécessaires pour supprimer une instance de Micro Focus Enterprise Server du PAC. 

1. Arrêtez la région dans l'instance d'Enterprise Server en cours de terminaison.

   ```
   POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
   ```

1. Supprimez l'instance de serveur d'entreprise du PAC.

   ```
   DELETE "/server/v1/config/mfds/${uid}"
   ```

1. Envoyez un signal pour continuer à mettre fin à l'instance de serveur d'entreprise.

Les étapes précédentes peuvent être implémentées dans un PowerShell script Windows. Pour plus de détails sur ce processus, consultez le [document Micro Focus Enterprise Server - Administration d'un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

Les étapes suivantes expliquent comment créer une automatisation pilotée par les événements pour mettre fin à une instance de serveur d'entreprise à partir d'un PAC en réutilisant le script Windows. PowerShell  

1. Créez un runbook Systems Manager Automation pour appeler le PowerShell script Windows.

1. Associez le runbook à l'instance de la CESAO à l'aide de la balise d'instance.

1. Créez un hook automatique pour le cycle de vie d'un groupe de dimensionnement pour la résiliation de l' EC2 instance.

1. Créez une EventBridge règle Amazon pour filtrer l'événement EC2 Instance-Terminate Lifecycle Action pour le groupe de dimensionnement automatique Enterprise Server, et créez la cible pour utiliser le runbook Automation. 

Vous pouvez utiliser l'exemple de CloudFormation modèle suivant pour créer un runbook, un hook de cycle de vie et une EventBridge règle de Systems Manager Automation.

*Exemple d' CloudFormation extrait de code d'exécution de Systems Manager Automation utilisé pour le dimensionnement dans une instance de serveur d'entreprise*

```
  ScaleInDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Remove MFDS Server from PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Remove_MFDS
           inputs:
             onFailure: Abort
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-In.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleInAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"            
           InstanceId:
             type: String
             default: "Not-Available"                
         description: Scale In 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleInCommand
             action: aws:runCommand
             timeoutSeconds: "600"
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleInDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 MfdsPort: "{{MfdsPort}}"
                 InstanceId: "{{InstanceId}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
           - name: TerminateTheInstance
             action: aws:executeAwsApi
             inputs:
               Service: autoscaling
               Api: CompleteLifecycleAction
               AutoScalingGroupName: !Ref AutoScalingGroup
               InstanceId: "{{ InstanceId }}"
               LifecycleActionResult: CONTINUE
               LifecycleHookName: !Ref ScaleInLifeCycleHook
```

**Automatisation pour un déclencheur de dimensionnement EC2 automatique Amazon**

Le processus de configuration d'une politique de dimensionnement pour les instances d'Enterprise Server nécessite de comprendre le comportement de l'application. Dans la plupart des cas, vous pouvez définir des politiques de dimensionnement pour le suivi des cibles. Par exemple, vous pouvez utiliser l'utilisation moyenne du processeur comme CloudWatch métrique Amazon pour définir la politique de dimensionnement automatique. Pour plus d'informations, consultez les [politiques de dimensionnement du suivi de Target pour Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Pour les applications présentant des modèles de trafic réguliers, envisagez d'utiliser une politique de dimensionnement prédictive. Pour plus d'informations, consultez [Predictive Scaling pour Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html). 

# Créez un visualiseur de fichiers mainframe avancé dans le cloud AWS
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

*Boopathy GOPALSAMY et Jeremiah O'Connor, Amazon Web Services*

## Résumé
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-summary"></a>

Ce modèle fournit des exemples de code et des étapes pour vous aider à créer un outil avancé pour parcourir et examiner les fichiers au format fixe de votre mainframe à l'aide des services sans serveur AWS. Le modèle fournit un exemple de la façon de convertir un fichier d'entrée du mainframe en un document Amazon OpenSearch Service à des fins de navigation et de recherche. L'outil de visualisation de fichiers peut vous aider à réaliser les objectifs suivants :
+ Conservez la même structure et la même mise en page des fichiers du mainframe pour garantir la cohérence dans votre environnement de migration cible AWS (par exemple, vous pouvez conserver la même mise en page pour les fichiers dans une application par lots qui transmet des fichiers à des tiers externes)
+ Accélérez le développement et les tests lors de la migration de votre mainframe
+ Support des activités de maintenance après la migration

## Conditions préalables et limitations
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Un cloud privé virtuel (VPC) doté d'un sous-réseau accessible par votre ancienne plateforme
+ 
**Note**  
Un fichier d'entrée et le cahier COBOL (Common Business Oriented Language) correspondant (: pour des exemples de fichier d'entrée et de cahier COBOL, voir le référentiel. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub Pour plus d'informations sur les copybooks COBOL, consultez le guide de programmation [Enterprise COBOL for z/OS 6.3](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf) sur le site Web d'IBM.)

**Limites**
+ L'analyse des cahiers est limitée à un maximum de deux niveaux imbriqués (SURVENUS)

## Architecture
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-architecture"></a>

**Pile technologique source**
+ Fichiers d'entrée au format [FB (Fixed Blocked)](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats)
+ Mise en page du cahier COBOL

**Pile technologique cible**
+ Amazon Athena
+ Amazon OpenSearch Service
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Lambda
+ AWS Step Functions

**Architecture cible**

Le schéma suivant montre le processus d'analyse et de conversion d'un fichier d'entrée du mainframe en document de OpenSearch service à des fins de navigation et de recherche.

![\[Processus d'analyse et de conversion du fichier d'entrée du mainframe en OpenSearch service.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


Le schéma suivant illustre le flux de travail suivant :

1. Un utilisateur ou une application administrateur envoie les fichiers d'entrée vers un compartiment S3 et les copybooks COBOL vers un autre compartiment S3.

1. 
**Note**  
Le compartiment S3 contenant les fichiers d'entrée invoque une fonction Lambda qui lance un flux de travail Step Functions sans serveur. : L'utilisation d'un déclencheur d'événement S3 et d'une fonction Lambda pour piloter le flux de travail Step Functions dans ce modèle est facultative. Les exemples de GitHub code de ce modèle n'incluent pas l'utilisation de ces services, mais vous pouvez utiliser ces services en fonction de vos besoins.

1. Le flux de travail Step Functions coordonne tous les processus par lots à partir des fonctions Lambda suivantes :
   + La `s3copybookparser.py` fonction analyse la mise en page du cahier et extrait les attributs des champs, les types de données et les décalages (nécessaires au traitement des données d'entrée).
   + La `s3toathena.py` fonction crée une mise en page de table Athena. Athena analyse les données d'entrée traitées par la `s3toathena.py` fonction et les convertit en fichier CSV.
   + La `s3toelasticsearch.py` fonction ingère le fichier de résultats depuis le compartiment S3 et le transmet au OpenSearch service.

1. Les utilisateurs accèdent à OpenSearch Dashboards with OpenSearch Service pour récupérer les données sous différents formats de tables et de colonnes, puis exécuter des requêtes sur les données indexées.

## Outils
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-tools"></a>

**Services AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) est un service de requêtes interactif qui vous permet d'analyser les données directement dans Amazon Simple Storage Service (Amazon S3) à l'aide du langage SQL standard.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous permet d'exécuter du code sans avoir à provisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez. Dans ce modèle, vous utilisez Lambda pour implémenter la logique de base, telle que l'analyse de fichiers, la conversion de données et le chargement de données dans OpenSearch Service pour un accès interactif aux fichiers.
+ [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) est un service géré qui vous aide à déployer, exploiter et dimensionner des clusters de OpenSearch services dans le cloud AWS. Dans ce modèle, vous utilisez le OpenSearch service pour indexer les fichiers convertis et fournir des fonctionnalités de recherche interactives aux utilisateurs.
+ [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.
+ [L'interface de ligne de commande AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) est un service d'orchestration sans serveur qui vous permet de combiner les fonctions Lambda et d'autres services AWS pour créer des applications critiques pour l'entreprise. Dans ce modèle, vous utilisez Step Functions pour orchestrer les fonctions Lambda.

**Autres outils**
+ [GitHub](https://github.com/)est un service d'hébergement de code qui fournit des outils de collaboration et de contrôle de version.
+ [Python](https://www.python.org/) est un langage de programmation de haut niveau.

**Code**

Le code de ce modèle est disponible dans le GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)référentiel.

## Épopées
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-epics"></a>

### Préparer l'environnement cible
<a name="prepare-the-target-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le compartiment S3. | [Créez un compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) pour stocker les copybooks, les fichiers d'entrée et les fichiers de sortie. Nous recommandons la structure de dossiers suivante pour votre compartiment S3 :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 
| Créez la fonction s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 
| Créez la fonction s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 
| Créez la fonction s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 
| Créez le cluster OpenSearch de services. | **Création du cluster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Accorder l'accès au rôle IAM**Pour fournir un accès détaillé au rôle IAM (`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`) de la fonction Lambda, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 
| Créez des Step Functions pour l'orchestration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 

### Déployer et exécuter
<a name="deploy-and-run"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez les fichiers d'entrée et les cahiers dans le compartiment S3. | Téléchargez des exemples de fichiers depuis le dossier d'échantillons du [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)référentiel et chargez-les dans le compartiment S3 que vous avez créé précédemment.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 
| Invoquez les Step Functions. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)<pre>{<br />  "s3_copybook_bucket_name": "<BUCKET NAME>",<br />  "s3_copybook_bucket_key": "<COPYBOOK PATH>",<br />  "s3_source_bucket_name": "<BUCKET NAME",<br />  "s3_source_bucket_key": "INPUT FILE PATH"<br />}</pre>Par exemple :<pre>{<br />  "s3_copybook_bucket_name": "fileaidtest",<br />  "s3_copybook_bucket_key": "copybook/acctix.cpy",<br />  "s3_source_bucket_name": "fileaidtest",<br />  "s3_source_bucket_key": "input/acctindex"<br />}</pre> | AWS général | 
| Validez l'exécution du flux de travail dans Step Functions. | Dans la [console Step Functions](https://console.aws.amazon.com/states/home), passez en revue l'exécution du flux de travail dans l'**inspecteur Graph**. Les états d'exécution sont codés par couleur pour représenter l'état d'exécution. Par exemple, le bleu indique **En cours**, le vert indique la **réussite** et le rouge indique l'**échec**. Vous pouvez également consulter le tableau dans la section **Historique des événements d'exécution** pour obtenir des informations plus détaillées sur les événements d'exécution.Pour un exemple d'exécution d'un flux de travail graphique, voir le *graphe Step Functions* dans la section *Informations supplémentaires* de ce modèle. | AWS général | 
| Validez les journaux de livraison sur Amazon CloudWatch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Pour un exemple de journaux de livraison réussis, consultez *les journaux de CloudWatch livraison* dans la section *Informations supplémentaires* de ce modèle. | AWS général | 
| Validez le fichier formaté dans les OpenSearch tableaux de bord et effectuez des opérations sur les fichiers. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS général | 

## Ressources connexes
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-resources"></a>

**Références**
+ [Exemple de cahier COBOL (documentation](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) IBM)
+ [Aide aux fichiers BMC Compuware (documentation BMC](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html))

**Didacticiels**
+ [Tutoriel : Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda (documentation](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) AWS Lambda)
+ [Comment créer un flux de travail sans serveur avec AWS Step Functions et AWS Lambda (documentation AWS](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/))
+ [Utilisation OpenSearch de tableaux de bord avec Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (documentation AWS)

## Informations supplémentaires
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Graphe Step Functions**

L'exemple suivant montre un graphe Step Functions. Le graphique montre l'état d'exécution des fonctions Lambda utilisées dans ce modèle.

![\[Le graphe Step Functions montre l'état d'exécution des fonctions Lambda utilisées dans ce modèle.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch journaux de livraison**

L'exemple suivant montre les journaux de livraison réussis pour l'exécution de l'`s3toelasticsearch`exécution.


| 
| 
| 2008-10T 15:53:33 .033-05:00 | Nombre de documents de traitement : 100 |  | 
| --- |--- |--- |
|  | 2008-10T 15:53:33 .171-05:00 | [INFO] 02:08-10T 20:53:33 .171 Z a1b2c3d4-5678-90ab-cdef- Post:443/\$1BULK [statut : 200 requête:0,100 s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 2008-10T 15:53:33 .172-05:00 | Rédaction en masse réussie : 100 documents | 

# Conteneurisez les charges de travail du mainframe qui ont été modernisées par Blu Age
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

## Résumé
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-summary"></a>

Ce modèle fournit un exemple d'environnement de conteneur pour exécuter des charges de travail mainframe qui ont été modernisées à l'aide de l'outil [Blu](https://www.bluage.com/) Age. Blu Age convertit les charges de travail des ordinateurs centraux existants en code Java moderne. Ce modèle enveloppe l'application Java afin que vous puissiez l'exécuter à l'aide de services d'orchestration de conteneurs tels qu'Amazon [Elastic Container Service (Amazon ECS) ou Amazon [Elastic Kubernetes Service (Amazon](https://aws.amazon.com/eks/) EKS)](https://aws.amazon.com/ecs/).

Pour plus d'informations sur la modernisation de vos charges de travail à l'aide de Blu Age et des services AWS, consultez les publications AWS Prescriptive Guidance suivantes :
+ [Exécution de charges de travail de mainframe Blu Age modernisées sur une infrastructure AWS sans serveur](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Déployez un environnement pour les applications Blu Age conteneurisées à l'aide de Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

Pour obtenir de l'aide sur l'utilisation de Blu Age afin de moderniser les charges de travail de votre mainframe, contactez l'équipe Blu Age en sélectionnant **Contacter nos experts** sur le site Web de [Blu Age](https://www.bluage.com/). Pour obtenir de l'aide concernant la migration de vos charges de travail modernisées vers AWS, leur intégration aux services AWS et leur mise en production, contactez votre responsable de compte AWS ou remplissez le formulaire [AWS Professional](https://pages.awscloud.com/AWS-Professional-Services.html) Services.

## Conditions préalables et limitations
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Conditions préalables**
+ Une application Java modernisée créée par Blu Age. À des fins de test, ce modèle fournit un exemple d'application Java que vous pouvez utiliser comme preuve de concept.
+ Un environnement [Docker](https://aws.amazon.com/docker/) que vous pouvez utiliser pour créer le conteneur.

**Limites**

Selon la plate-forme d'orchestration de conteneurs que vous utilisez, les ressources pouvant être mises à la disposition du conteneur (telles que le processeur, la RAM et le stockage) peuvent être limitées. Par exemple, si vous utilisez Amazon ECS avec AWS Fargate, consultez la documentation [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) pour connaître les limites et les considérations.

## Architecture
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-architecture"></a>

**Pile technologique source**
+ Âge bleu
+ Java

**Pile technologique cible**
+ Docker

**Architecture cible**

Le schéma suivant montre l'architecture de l'application Blu Age dans un conteneur Docker.

![\[Application Blu Age dans un conteneur Docker\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. Le point d'entrée du conteneur est le script wrapper. Ce script bash est chargé de préparer l'environnement d'exécution de l'application Blu Age et de traiter les sorties.

1. Les variables d'environnement du conteneur sont utilisées pour configurer les variables du script wrapper, telles que les noms de bucket Amazon Simple Storage Service (Amazon S3) et les informations d'identification de base de données. Les variables d'environnement sont fournies soit par AWS Secrets Manager, soit par Parameter Store, une fonctionnalité d'AWS Systems Manager. Si vous utilisez Amazon ECS comme service d'orchestration de conteneurs, vous pouvez également coder en dur les variables d'environnement dans la définition de tâche Amazon ECS.

1. Le script wrapper est chargé d'extraire tous les fichiers d'entrée du compartiment S3 vers le conteneur avant d'exécuter l'application Blu Age. L'interface de ligne de commande AWS (AWS CLI) est installée dans le conteneur. Cela fournit un mécanisme permettant d'accéder aux objets stockés dans Amazon S3 via le point de terminaison VPC (Virtual Private Cloud) de la passerelle.

1. Le fichier Java Archive (JAR) de l'application Blu Age peut avoir besoin de communiquer avec d'autres sources de données, telles qu'Amazon Aurora.

1. Une fois terminé, le script wrapper fournit les fichiers de sortie obtenus dans un compartiment S3 pour un traitement ultérieur (par exemple, par Amazon CloudWatch Logging Services). Le modèle prend également en charge l'envoi de fichiers journaux compressés à Amazon S3, si vous utilisez une alternative à la CloudWatch journalisation standard.

## Outils
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-tools"></a>

**Services AWS**
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) est un service de gestion de conteneurs évolutif et rapide, qui facilite l'exécution, l'arrêt et la gestion de conteneurs Docker sur un cluster.

**Outils**
+ [Docker](https://aws.amazon.com/docker/) est une plate-forme logicielle permettant de créer, de tester et de déployer des applications. Docker regroupe les logiciels dans des unités standardisées appelées [conteneurs](https://aws.amazon.com/containers/), qui contiennent tout ce dont le logiciel a besoin pour fonctionner, notamment les bibliothèques, les outils système, le code et le runtime. Vous pouvez utiliser Docker pour déployer et faire évoluer des applications dans n'importe quel environnement.
+ [Bash](https://www.gnu.org/software/bash/manual/) est une interface en langage de commande (shell) pour le système d'exploitation GNU.
+ [Java](https://www.java.com/) est le langage de programmation et l'environnement de développement utilisés dans ce modèle.
+ [Blu Age](https://www.bluage.com/) est un outil de modernisation du mainframe AWS qui convertit les charges de travail du mainframe existant, y compris le code d'application, les dépendances et l'infrastructure, en charges de travail modernes pour le cloud.

**Référentiel de code**

Le code de ce modèle est disponible dans le [référentiel de conteneurs d'échantillons GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Bonnes pratiques
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Externalisez les variables pour modifier le comportement de votre application en utilisant des variables d'environnement. Ces variables permettent à la solution d'orchestration de conteneurs de modifier l'environnement d'exécution sans reconstruire le conteneur. Ce modèle inclut des exemples de variables d'environnement qui peuvent être utiles pour les applications Blu Age.
+ Validez toutes les dépendances des applications avant d'exécuter votre application Blu Age. Par exemple, vérifiez que la base de données est disponible et que les informations d'identification sont valides. Écrivez des tests dans le script wrapper pour vérifier les dépendances, et échouez prématurément si elles ne sont pas satisfaites.
+ Utilisez la journalisation détaillée dans le script wrapper. L'interaction directe avec un conteneur en cours d'exécution peut s'avérer difficile, en fonction de la plate-forme d'orchestration et de la durée du travail. Assurez-vous que le résultat utile est écrit pour aider `STDOUT` à diagnostiquer les problèmes éventuels. Par exemple, la sortie peut inclure le contenu du répertoire de travail de l'application avant et après l'exécution de l'application.

## Épopées
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-epics"></a>

### Obtenir un fichier JAR de l'application Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Option 1 - Travaillez avec Blu Age pour obtenir le fichier JAR de votre application. | Le contenant de ce modèle nécessite une application Blu Age. Vous pouvez également utiliser l'exemple d'application Java fourni avec ce modèle pour un prototype.Travaillez avec l'équipe Blu Age pour obtenir un fichier JAR pour votre application qui pourra être intégré au conteneur. Si le fichier JAR n'est pas disponible, reportez-vous à la tâche suivante pour utiliser l'exemple d'application à la place. | Architecte du cloud | 
| Option 2 : créez ou utilisez le fichier JAR d'application d'exemple fourni. | Ce modèle fournit un exemple de fichier JAR prédéfini. Ce fichier affiche les variables d'environnement de l'application `STDOUT` avant de dormir pendant 30 secondes et de quitter l'application.Ce fichier est nommé `bluAgeSample.jar` et se trouve dans le [dossier docker](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker) du GitHub dépôt.Si vous souhaitez modifier le code et créer votre propre version du fichier JAR, utilisez le code source situé à l'adresse[. /java\$1 sample/src/sample \$1java\$1app.java dans le dépôt](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src). GitHub Vous pouvez utiliser le script de compilation à l'adresse[. ](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample)/java\$1sample/build.sh pour compiler le code source Java et créer un nouveau fichier JAR. | Développeur d’applications | 

### Construisez le conteneur Blu Age
<a name="build-the-blu-age-container"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le GitHub dépôt. | Clonez le référentiel d'exemples de code à l'aide de la commande :<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Utilisez Docker pour créer le conteneur. | Utilisez Docker pour créer le conteneur avant de le transférer vers un registre Docker tel qu'Amazon ECR :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Testez le conteneur Blu Age. | (Facultatif) Si nécessaire, testez le conteneur localement à l'aide de la commande :<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Authentifiez-vous auprès de votre référentiel Docker. | Si vous prévoyez d'utiliser Amazon ECR, suivez les instructions de la [documentation Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) pour installer et configurer l'AWS CLI et authentifier la CLI Docker dans votre registre par défaut.Nous vous recommandons d'utiliser la [get-login-password commande](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html) pour l'authentification.  La [console Amazon ECR](https://console.aws.amazon.com/ecr/) fournit une version préremplie de cette commande si vous utilisez le bouton **Afficher les commandes push**. Pour plus d'informations, consultez la [documentation Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-console.html)<pre>aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com</pre>Si vous ne prévoyez pas d'utiliser Amazon ECR, suivez les instructions fournies pour votre système de registre de conteneurs. | AWS DevOps | 
| Créez un référentiel de conteneurs. | Créez un référentiel dans Amazon ECR. Pour obtenir des instructions, consultez le modèle [Déployer un environnement pour les applications Blu Age conteneurisées à l'aide de Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html).Si vous utilisez un autre système de registre de conteneurs, suivez les instructions fournies pour ce système. | AWS DevOps | 
| Marquez et transférez votre conteneur vers le référentiel cible. | Si vous utilisez Amazon ECR :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Pour plus d'informations, consultez la section [Envoyer une image Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) dans le guide de l'*utilisateur Amazon ECR.* | AWS DevOps | 

## Ressources connexes
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-resources"></a>

**Ressources AWS**
+ [Référentiel d'exemples de conteneurs AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Exécution de charges de travail de mainframe Blu Age modernisées sur une infrastructure AWS sans serveur](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Déployez un environnement pour les applications Blu Age conteneurisées à l'aide de Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Utilisation d'Amazon ECR avec l'AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) (*Amazon ECR User Guide*)
+ [Authentification du registre privé](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Guide de l'utilisateur Amazon ECR*)
+ [Documentation Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Documentation Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Ressources supplémentaires**
+ [Site web de Blu Age](https://www.bluage.com/)
+ [Site web Docker](https://docker.com/)

# Convertissez et décompressez les données EBCDIC en ASCII sur AWS à l'aide de Python
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Résumé
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-summary"></a>

Les mainframes hébergeant généralement des données commerciales critiques, la modernisation des données est l'une des tâches les plus importantes lors de la migration des données vers le cloud Amazon Web Services (AWS) ou un autre environnement ASCII (American Standard Code for Information Interchange). Sur les ordinateurs centraux, les données sont généralement codées au format EBCDIC (Extended Binary Coded Decimal Interchange Code). L'exportation d'une base de données, d'une méthode d'accès au stockage virtuel (VSAM) ou de fichiers plats produit généralement des fichiers EBCDIC binaires compressés, dont la migration est plus complexe. La solution de migration de base de données la plus couramment utilisée est la capture des données modifiées (CDC), qui, dans la plupart des cas, convertit automatiquement le codage des données. Cependant, les mécanismes CDC peuvent ne pas être disponibles pour ces bases de données, VSAM ou fichiers plats. Pour ces fichiers, une autre approche est nécessaire pour moderniser les données.

Ce modèle décrit comment moderniser les données EBCDIC en les convertissant au format ASCII. Après la conversion, vous pouvez charger les données dans des bases de données distribuées ou demander aux applications du cloud de les traiter directement. Le modèle utilise le script de conversion et les fichiers d'exemple du [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub référentiel.

## Conditions préalables et limitations
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Un fichier d'entrée EBCDIC et le cahier COBOL (Common Business Oriented Language) correspondant. Un exemple de fichier EBCDIC et de cahier COBOL sont inclus dans le référentiel. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Pour plus d'informations sur les copybooks COBOL, consultez le [guide de programmation Enterprise COBOL for z/OS 6.4](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) sur le site Web d'IBM.

**Limites**
+ Les mises en page de fichiers définies dans les programmes COBOL ne sont pas prises en charge. Ils doivent être disponibles séparément.

**Versions du produit**
+ Python version 3.8 ou ultérieure

## Architecture
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-architecture"></a>

**Pile technologique source**
+ Données EBCDIC sur un ordinateur central
+ Cahier COBOL

**Pile technologique cible**
+ Instance Amazon Elastic Compute Cloud (Amazon EC2) dans un cloud privé virtuel (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python et ses packages requis, JavaScript Object Notation (JSON), sys et datetime
+ Fichier plat ASCII prêt à être lu par une application moderne ou chargé dans une table de base de données relationnelle

**Architecture cible**

![\[Données EBCDIC converties en ASCII sur une instance à l'aide EC2 de scripts Python et d'un cahier COBOL\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


Le schéma d'architecture montre le processus de conversion d'un fichier EBCDIC en fichier ASCII sur une instance : EC2 

1. À l'aide du script **parse\$1copybook\$1to\$1json.py**, vous convertissez le cahier COBOL en fichier JSON.

1. À l'aide du fichier JSON et du script **extract\$1ebcdic\$1to\$1ascii.py**, vous convertissez les données EBCDIC en fichier ASCII.

**Automatisation et évolutivité**

Une fois que les ressources nécessaires pour les premières conversions de fichiers manuelles sont en place, vous pouvez automatiser la conversion de fichiers. Ce modèle n'inclut pas d'instructions pour l'automatisation. Il existe plusieurs méthodes pour automatiser la conversion. Voici un aperçu de l'une des approches possibles :

1. Encapsulez l'interface de ligne de commande AWS (AWS CLI) et les commandes de script Python dans un script shell.

1. Créez une fonction AWS Lambda qui soumet de manière asynchrone le job de script shell à une instance. EC2 Pour plus d'informations, consultez la section [Planification de tâches SSH à l'aide d'AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Créez un déclencheur Amazon Simple Storage Service (Amazon S3) qui invoque la fonction Lambda chaque fois qu'un ancien fichier est chargé. Pour plus d'informations, consultez [Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

## Outils
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-tools"></a>

**Services AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les faire rapidement évoluer vers le haut ou vers le bas.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fournit des volumes de stockage au niveau des blocs à utiliser avec les instances Amazon Elastic Compute Cloud (Amazon). EC2
+ [L'interface de ligne de commande AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.

**Autres outils**
+ [GitHub](https://github.com/)est un service d'hébergement de code qui fournit des outils de collaboration et de contrôle de version.
+ [Python](https://www.python.org/) est un langage de programmation de haut niveau.

**Référentiel de code**

Le code de ce modèle est disponible dans le [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub référentiel.

## Épopées
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-epics"></a>

### Préparer l' EC2 instance
<a name="prepare-the-ec2-instance"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancez une EC2 instance. | L' EC2 instance doit disposer d'un accès Internet sortant. Cela permet à l'instance d'accéder au code source Python disponible sur GitHub. Pour créer l'instance :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS général | 
| Installez Git. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS, Linux en général | 
| Installez Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS, Linux en général | 
| Clonez le GitHub dépôt. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS général, GitHub | 

### Créez le fichier ASCII à partir des données EBCDIC
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Analysez le cahier COBOL dans le fichier de mise en page JSON. | Dans le `mainframe-data-utilities` dossier, exécutez le script **parse\$1copybook\$1to\$1json.py**. Ce module d'automatisation lit la mise en page du fichier à partir d'un cahier COBOL et crée un fichier JSON. Le fichier JSON contient les informations nécessaires pour interpréter et extraire les données du fichier source. Cela crée les métadonnées JSON à partir du cahier COBOL. La commande suivante convertit le cahier COBOL en fichier JSON.<pre>python3 parse_copybook_to_json.py \<br />-copybook LegacyReference/COBPACK2.cpy \<br />-output sample-data/cobpack2-list.json \<br />-dict sample-data/cobpack2-dict.json \<br />-ebcdic sample-data/COBPACK.OUTFILE.txt \<br />-ascii sample-data/COBPACK.ASCII.txt \<br />-print 10000</pre>Le script affiche les arguments reçus.<pre>-----------------------------------------------------------------------<br />Copybook file...............| LegacyReference/COBPACK2.cpy<br />Parsed copybook (JSON List).| sample-data/cobpack2-list.json<br />JSON Dict (documentation)...| sample-data/cobpack2-dict.json<br />ASCII file..................| sample-data/COBPACK.ASCII.txt<br />EBCDIC file.................| sample-data/COBPACK.OUTFILE.txt<br />Print each..................| 10000<br />-----------------------------------------------------------------------</pre>Pour plus d'informations sur les arguments, consultez le [fichier README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) du GitHub référentiel. | AWS, Linux en général | 
| Inspectez le fichier de mise en page JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)<pre> "input": "extract-ebcdic-to-ascii/COBPACK.OUTFILE.txt",<br /> "output": "extract-ebcdic-to-ascii/COBPACK.ASCII.txt",<br /> "max": 0,<br /> "skip": 0,<br /> "print": 10000,<br /> "lrecl": 150,<br /> "rem-low-values": true,<br /> "separator": "|",<br /> "transf": [<br /> {<br /> "type": "ch",<br /> "bytes": 19,<br /> "name": "OUTFILE-TEXT"<br /> } </pre>Les attributs les plus importants du fichier de mise en page JSON sont les suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Pour plus d'informations sur le fichier de mise en page JSON, consultez le [fichier README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) dans le GitHub référentiel. | AWS, JSON en général | 
| Créez le fichier ASCII.  | Exécutez le script **extract\$1ebcdic\$1to\$1ascii.py**, qui est inclus dans le GitHub référentiel cloné. Ce script lit le fichier EBCDIC et écrit un fichier ASCII converti et lisible.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>Lorsque le script traite les données EBCDIC, il imprime un message pour chaque lot de 10 000 enregistrements. Consultez l'exemple suivant.<pre>------------------------------------------------------------------<br />2023-05-15 21:21:46.322253 | Local Json file   | -local-json | sample-data/cobpack2-list.json<br />2023-05-15 21:21:47.034556 | Records processed | 10000<br />2023-05-15 21:21:47.736434 | Records processed | 20000<br />2023-05-15 21:21:48.441696 | Records processed | 30000<br />2023-05-15 21:21:49.173781 | Records processed | 40000<br />2023-05-15 21:21:49.874779 | Records processed | 50000<br />2023-05-15 21:21:50.705873 | Records processed | 60000<br />2023-05-15 21:21:51.609335 | Records processed | 70000<br />2023-05-15 21:21:52.292989 | Records processed | 80000<br />2023-05-15 21:21:52.938366 | Records processed | 89280<br />2023-05-15 21:21:52.938448 Seconds 6.616232</pre>Pour plus d'informations sur la modification de la fréquence d'impression, consultez le [fichier README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) du GitHub référentiel. | AWS général | 
| Examinez le fichier ASCII. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Si vous avez utilisé l'exemple de fichier EBCDIC fourni, voici le premier enregistrement du fichier ASCII.<pre>00000000: 2d30 3030 3030 3030 3030 3130 3030 3030  -000000000100000<br />00000010: 3030 307c 3030 3030 3030 3030 3031 3030  000|000000000100<br />00000020: 3030 3030 3030 7c2d 3030 3030 3030 3030  000000|-00000000<br />00000030: 3031 3030 3030 3030 3030 7c30 7c30 7c31  0100000000|0|0|1<br />00000040: 3030 3030 3030 3030 7c2d 3130 3030 3030  00000000|-100000<br />00000050: 3030 307c 3130 3030 3030 3030 307c 2d31  000|100000000|-1<br />00000060: 3030 3030 3030 3030 7c30 3030 3030 7c30  00000000|00000|0<br />00000070: 3030 3030 7c31 3030 3030 3030 3030 7c2d  0000|100000000|-<br />00000080: 3130 3030 3030 3030 307c 3030 3030 3030  100000000|000000<br />00000090: 3030 3030 3130 3030 3030 3030 307c 2d30  0000100000000|-0<br />000000a0: 3030 3030 3030 3030 3031 3030 3030 3030  0000000001000000<br />000000b0: 3030 7c41 7c41 7c0a                      00|A|A|.</pre> | AWS, Linux en général | 
| Évaluez le fichier EBCDIC. | Dans la EC2 console Amazon, entrez la commande suivante. Cela ouvre le premier enregistrement du fichier EBCDIC.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Si vous avez utilisé l'exemple de fichier EBCDIC, voici le résultat.<pre> 00000000: 60f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 f0f0 `...............<br /> 00000010: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 ................<br /> 00000020: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 ................<br /> 00000030: f0f0 f0f0 f0f0 d000 0000 0005 f5e1 00fa ................<br /> 00000040: 0a1f 0000 0000 0005 f5e1 00ff ffff fffa ................<br /> 00000050: 0a1f 0000 000f 0000 0c10 0000 000f 1000 ................<br /> 00000060: 0000 0d00 0000 0000 1000 0000 0f00 0000 ................<br /> 00000070: 0000 1000 0000 0dc1 c100 0000 0000 0000 ................<br /> 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................<br /> 00000090: 0000 0000 0000 ......</pre>Pour évaluer l'équivalence entre les fichiers source et cible, une connaissance approfondie de l'EBCDIC est requise. Par exemple, le premier caractère de l'exemple de fichier EBCDIC est un tiret (). `-` Dans la notation hexadécimale du fichier EBCDIC, ce caractère est représenté par`60`, et dans la notation hexadécimale du fichier ASCII, ce caractère est représenté par. `2D` Pour un tableau EBCDIC-to-ASCII de conversion, voir [EBCDIC en ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) sur le site Web d'IBM. | AWS, Linux, EBCDIC en général | 

## Ressources connexes
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-resources"></a>

**Références**
+ [Le jeu de caractères EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentation IBM)
+ [EBCDIC vers ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) (documentation IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (documentation IBM)
+ [Concepts de base du JCL](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts) (documentation IBM)
+ [Connectez-vous à votre instance Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) ( EC2 documentation Amazon)

**Didacticiels**
+ [Planification de tâches SSH à l'aide d'AWS](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) Lambda (article de blog AWS)
+ [Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentation AWS Lambda)

# Convertissez des fichiers mainframe du format EBCDIC au format ASCII délimité par des caractères dans Amazon S3 en utilisant AWS Lambda
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Résumé
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-summary"></a>

Ce modèle explique comment lancer une AWS Lambda fonction qui convertit automatiquement les fichiers EBCDIC (Extended Binary Coded Decimal Interchange Code) du mainframe en fichiers ASCII (American Standard Code for Information Interchange) séparés par des caractères. La fonction Lambda s'exécute une fois les fichiers ASCII chargés dans un bucket Amazon Simple Storage Service (Amazon S3). Après la conversion des fichiers, vous pouvez lire les fichiers ASCII sur des charges de travail basées sur x86 ou charger les fichiers dans des bases de données modernes.

L'approche de conversion de fichiers illustrée dans ce modèle peut vous aider à surmonter les défis liés à l'utilisation de fichiers EBCDIC dans des environnements modernes. Les fichiers codés en EBCDIC contiennent souvent des données représentées dans un format binaire ou décimal compressé, et les champs sont de longueur fixe. Ces caractéristiques créent des obstacles car les charges de travail modernes basées sur le x86 ou les environnements distribués fonctionnent généralement avec des données codées en ASCII et ne peuvent pas traiter les fichiers EBCDIC.

## Conditions préalables et limitations
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ Un compartiment Amazon S3
+ Un utilisateur Gestion des identités et des accès AWS (IAM) doté d'autorisations administratives
+ AWS CloudShell
+ [Python 3.8.0 ou version ultérieure](https://www.python.org/downloads/release/python-380/)
+ Un fichier plat codé en EBCDIC et sa structure de données correspondante dans un cahier COBOL (Common Business Oriented Language)

**Note**  
[Ce modèle utilise un exemple de fichier EBCDIC ([Client.EBCDIC.txt) et le cahier COBOL correspondant (Cobks05.cpy](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)).](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy) Les deux fichiers sont disponibles dans le GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)référentiel.

**Limites**
+ Les cahiers COBOL contiennent généralement plusieurs définitions de mise en page. Le [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)projet peut analyser ce type de cahier mais ne peut pas déduire quelle mise en page prendre en compte lors de la conversion des données. Cela est dû au fait que les cahiers ne tiennent pas compte de cette logique (qui reste dans les programmes COBOL à la place). Par conséquent, vous devez configurer manuellement les règles de sélection des mises en page après avoir analysé le cahier.
+ Ce modèle est soumis à des quotas [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

## Architecture
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-architecture"></a>

**Pile technologique source**
+ IBM z/OS, IBM i et autres systèmes EBCDIC
+ Fichiers séquentiels avec données codées en EBCDIC (tels que les déchargements IBM Db2)
+ Cahier COBOL

**Pile technologique cible**
+ Amazon S3
+ Notification d'événement Amazon S3
+ IAM
+ Fonction Lambda
+ Python 3.8 ou version ultérieure
+ Utilitaires de données du mainframe
+ métadonnées JSON
+ Fichiers ASCII délimités par des caractères

**Architecture cible**

Le schéma suivant montre une architecture permettant de convertir les fichiers EBCDIC du mainframe en fichiers ASCII.

![\[Architecture pour convertir les fichiers EBCDIC du mainframe en fichiers ASCII\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/97ab4129-2639-4733-86cb-962d91526df4/images/3ca7ca44-373a-434f-8c40-09e7c2abf5ec.png)


Le schéma suivant illustre le flux de travail suivant :

1. L'utilisateur exécute le script d'analyse du cahier, qui convertit le cahier COBOL en fichier JSON.

1. L'utilisateur télécharge les métadonnées JSON dans un compartiment Amazon S3. Cela rend les métadonnées lisibles par la fonction Lambda de conversion de données.

1. L'utilisateur ou un processus automatisé télécharge le fichier EBCDIC dans le compartiment Amazon S3.

1. L'événement de notification Amazon S3 déclenche la fonction Lambda de conversion de données.

1. AWS vérifie les autorisations de lecture/écriture du compartiment Amazon S3 pour la fonction Lambda.

1. Lambda lit le fichier depuis le compartiment Amazon S3 et le convertit localement de l'EBCDIC en ASCII.

1. Lambda enregistre l'état du processus sur Amazon. CloudWatch

1. Lambda réécrit le fichier ASCII sur Amazon S3.

**Note**  
Le script d'analyse du copybook s'exécute une seule fois pour effectuer la conversion des métadonnées au format JSON, qui sont ensuite stockées dans un compartiment Amazon S3. Après la conversion initiale, tous les fichiers EBCDIC suivants qui font référence au même fichier JSON dans le compartiment Amazon S3 utiliseront la configuration de métadonnées existante.

## Outils
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-tools"></a>

**Services AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.
+ [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.
+ [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)est un shell basé sur un navigateur que vous pouvez utiliser pour gérer à l'aide Services AWS de the AWS Command Line Interface (AWS CLI) et d'une gamme d'outils de développement préinstallés.
+ [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.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Lambda exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.

**Autres outils**
+ [GitHub](https://github.com/)est un service d'hébergement de code qui fournit des outils de collaboration et de contrôle de version.
+ [Python](https://www.python.org/) est un langage de programmation de haut niveau.

**Code**

Le code de ce modèle est disponible dans le GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)référentiel.

## Bonnes pratiques
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-best-practices"></a>

Tenez compte des bonnes pratiques suivantes :
+ Définissez les autorisations requises au niveau Amazon Resource Name (ARN).
+ Accordez toujours des autorisations de moindre privilège pour les politiques IAM. Pour plus d'informations, consultez [la section Bonnes pratiques en matière de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans la documentation IAM.

## Épopées
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-epics"></a>

### Création de variables d'environnement et d'un dossier de travail
<a name="create-environment-variables-and-a-working-folder"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez les variables d'environnement. | Copiez les variables d'environnement suivantes dans un éditeur de texte, puis remplacez les `<placeholder>` valeurs de l'exemple suivant par les valeurs de vos ressources :<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Vous allez créer des références à votre compartiment Amazon S3 Compte AWS, et à des Région AWS versions ultérieures.Pour définir des variables d'environnement, ouvrez la [CloudShell console](https://console.aws.amazon.com/cloudshell/), puis copiez-collez vos variables d'environnement mises à jour sur la ligne de commande.Vous devez répéter cette étape chaque fois que la CloudShell session redémarre. | AWS général | 
| Créez un dossier de travail. | Pour simplifier ultérieurement le processus de nettoyage des ressources, créez un dossier de travail en CloudShell exécutant la commande suivante :<pre>mkdir workdir; cd workdir</pre>Vous devez remplacer le répertoire par le répertoire de travail (`workdir`) chaque fois que vous perdez une connexion à votre CloudShell session. | AWS général | 

### Définition d'un rôle et d'une politique IAM
<a name="define-an-iam-role-and-policy"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une politique de confiance pour la fonction Lambda. | Le convertisseur EBCDIC fonctionne selon une fonction Lambda. La fonction doit avoir un rôle IAM. Avant de créer le rôle IAM, vous devez définir un document de politique de confiance qui permet aux ressources d'assumer cette politique.À partir du dossier de CloudShell travail, créez un document de politique en exécutant la commande suivante :<pre>E2ATrustPol=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "Service": "lambda.amazonaws.com"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2ATrustPol" > E2ATrustPol.json</pre> | AWS général | 
| Créez le rôle IAM pour la conversion Lambda. | Pour créer un rôle IAM, exécutez la AWS CLI commande suivante depuis le dossier de CloudShell travail :<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | AWS général | 
| Créez le document de politique IAM pour la fonction Lambda. | La fonction Lambda doit disposer d'un accès en lecture-écriture au compartiment Amazon S3 et d'autorisations d'écriture pour Amazon Logs. CloudWatch Pour créer une politique IAM, exécutez la commande suivante depuis le dossier de CloudShell travail :<pre>E2APolicy=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Logs",<br />            "Effect": "Allow",<br />            "Action": [<br />                "logs:PutLogEvents",<br />                "logs:CreateLogStream",<br />                "logs:CreateLogGroup"<br />            ],<br />            "Resource": [<br />                "arn:aws:logs:*:*:log-group:*",<br />                "arn:aws:logs:*:*:log-group:*:log-stream:*"<br />            ]<br />        },<br />        {<br />            "Sid": "S3",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:PutObject",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::%s/*",<br />                "arn:aws:s3:::%s"<br />            ]<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2APolicy" "$bucket" "$bucket" > E2AConvLambdaPolicy.json</pre> | AWS général | 
| Joignez le document de politique IAM au rôle IAM. | Pour associer la politique IAM au rôle IAM, entrez la commande suivante depuis votre dossier de CloudShell travail :<pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | AWS général | 

### Créez la fonction Lambda pour la conversion EBCDIC
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez le code source de conversion EBCDIC. | Dans le dossier de CloudShell travail, exécutez la commande suivante pour télécharger le code mainframe-data-utilities source depuis GitHub :<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | AWS général | 
| Créez le package ZIP. | Dans le dossier de CloudShell travail, entrez la commande suivante pour créer le package ZIP qui crée la fonction Lambda pour la conversion EBCDIC :<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | AWS général | 
| Créez la fonction Lambda. | Dans le dossier de CloudShell travail, entrez la commande suivante pour créer la fonction Lambda pour la conversion EBCDIC :<pre>aws lambda create-function \<br />--function-name E2A \<br />--runtime python3.9 \<br />--zip-file fileb://mdu.zip \<br />--handler extract_ebcdic_to_ascii.lambda_handler \<br />--role arn:aws:iam::$account:role/E2AConvLambdaRole \<br />--timeout 10 \<br />--environment "Variables={layout=$bucket/layout/}"</pre> La disposition des variables d'environnement indique à la fonction Lambda où se trouvent les métadonnées JSON. | AWS général | 
| Créez la politique basée sur les ressources pour la fonction Lambda. | Dans le dossier de CloudShell travail, entrez la commande suivante pour permettre à votre notification d'événement Amazon S3 de déclencher la fonction Lambda pour la conversion EBCDIC :<pre>aws lambda add-permission \<br />--function-name E2A \<br />--action lambda:InvokeFunction \<br />--principal s3.amazonaws.com \<br />--source-arn arn:aws:s3:::$bucket \<br />--source-account $account \<br />--statement-id 1</pre> | AWS général | 

### Création de la notification d'événement Amazon S3
<a name="create-the-s3-event-notification"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le document de configuration pour la notification d'événement Amazon S3. | La notification d'événement Amazon S3 lance la fonction Lambda de conversion EBCDIC lorsque des fichiers sont placés dans le dossier d'entrée.À partir du dossier de CloudShell travail, exécutez la commande suivante pour créer le document JSON pour la notification d'événement Amazon S3 :<pre>S3E2AEvent=$(cat <<EOF<br />{<br />"LambdaFunctionConfigurations": [<br />    {<br />      "Id": "E2A",<br />      "LambdaFunctionArn": "arn:aws:lambda:%s:%s:function:E2A",<br />      "Events": [ "s3:ObjectCreated:Put" ],<br />      "Filter": {<br />        "Key": {<br />          "FilterRules": [<br />            {<br />              "Name": "prefix",<br />              "Value": "input/"<br />            }<br />          ]<br />        }<br />      }<br />    }<br />  ]<br />}<br />EOF<br />)<br />printf "$S3E2AEvent" "$region" "$account" > S3E2AEvent.json</pre> | AWS général | 
| Créez la notification d'événement Amazon S3. | Dans le dossier de CloudShell travail, entrez la commande suivante pour créer la notification d'événement Amazon S3 :<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | AWS général | 

### Création et téléchargement des métadonnées JSON
<a name="create-and-upload-the-json-metadata"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Analysez le cahier COBOL. | Dans le dossier de CloudShell travail, entrez la commande suivante pour analyser un exemple de cahier COBOL dans un fichier JSON (qui définit comment lire et découper correctement le fichier de données) :<pre>python3       mdu/parse_copybook_to_json.py \<br />-copybook     mdu/LegacyReference/COBKS05.cpy \<br />-output       CLIENT.json \<br />-output-s3key CLIENT.ASCII.txt \<br />-output-s3bkt $bucket \<br />-output-type  s3 \<br />-print        25</pre> | AWS général | 
| Ajoutez la règle de transformation. | L'exemple de fichier de données et le cahier COBOL correspondant sont des fichiers à mises en page multiples. Cela signifie que la conversion doit découper les données en fonction de certaines règles. Dans ce cas, les octets situés aux positions 3 et 4 de chaque ligne définissent la mise en page.Dans le dossier de CloudShell travail, modifiez le `CLIENT.json` fichier et modifiez le contenu comme suit : `"transf-rule": [],`<pre>"transf-rule": [<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0002",<br />"transf": "transf1"<br />},<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0000",<br />"transf": "transf2"<br />}<br />],</pre> | AWS général, IBM Mainframe, Cobol | 
| Téléchargez les métadonnées JSON dans le compartiment Amazon S3. | Dans le dossier de CloudShell travail, entrez la AWS CLI commande suivante pour télécharger les métadonnées JSON dans votre compartiment Amazon S3 :<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | AWS général | 

### Convertissez le fichier EBCDIC
<a name="convert-the-ebcdic-file"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Envoyez le fichier EBCDIC dans le compartiment Amazon S3. | Dans le dossier de CloudShell travail, entrez la commande suivante pour envoyer le fichier EBCDIC vers le compartiment Amazon S3 :<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Nous vous recommandons de définir des dossiers différents pour les fichiers d'entrée (EBCDIC) et de sortie (ASCII) afin d'éviter d'appeler à nouveau la fonction de conversion Lambda lorsque le fichier ASCII est chargé dans le compartiment Amazon S3. | AWS général | 
| Vérifiez la sortie. | Dans le dossier de CloudShell travail, entrez la commande suivante pour vérifier si le fichier ASCII est généré dans votre compartiment Amazon S3 :<pre>aws s3 ls s3://$bucket/</pre> La conversion des données peut prendre plusieurs secondes. Nous vous recommandons de vérifier la présence du fichier ASCII à quelques reprises.Une fois le fichier ASCII disponible, entrez la commande suivante pour afficher le contenu du fichier converti dans le compartiment Amazon S3. Si nécessaire, vous pouvez le télécharger ou l'utiliser directement depuis le compartiment Amazon S3 :<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Vérifiez le contenu du fichier ASCII :<pre>0|0|220|<br />1|1|HERBERT MOHAMED|1958-08-31|BACHELOR|0010000.00|<br />1|2|36|THE ROE AVENUE|<br />2|1|JAYLEN GEORGE|1969-05-29|ELEMENTARY|0020000.00|<br />2|2|365|HEATHFIELD ESPLANADE|<br />3|1|MIKAEEL WEBER|1982-02-17|MASTER|0030000.00|<br />3|2|4555|MORRISON STRAND|<br />4|1|APRIL BARRERA|1967-01-12|DOCTOR|0030000.00|<br />4|2|1311|MARMION PARK|<br />5|1|ALEEZA PLANT|1985-03-01|BACHELOR|0008000.00|</pre> | AWS général | 

### Nettoyez l'environnement
<a name="clean-the-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| (Facultatif) Préparez les variables et le dossier. | Si vous perdez la connexion avec CloudShell, reconnectez-vous, puis entrez la commande suivante pour transformer le répertoire en dossier de travail :<pre>cd workdir</pre>Assurez-vous que les variables d'environnement sont définies :<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | AWS général | 
| Supprimez la configuration de notification pour le compartiment. | Depuis le dossier de CloudShell travail, exécutez la commande suivante pour supprimer la configuration des notifications d'événements Amazon S3 :<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | AWS général | 
| Supprimez la fonction Lambda. | Dans le dossier de CloudShell travail, entrez la commande suivante pour supprimer la fonction Lambda du convertisseur EBCDIC :<pre>aws lambda delete-function \<br />--function-name E2A</pre> | AWS général | 
| Supprimez le rôle et la politique IAM. | Dans le dossier de CloudShell travail, entrez la commande suivante pour supprimer le rôle et la politique du convertisseur EBCDIC :<pre>aws iam delete-role-policy \<br />--role-name E2AConvLambdaRole \<br />--policy-name E2AConvLambdaPolicy<br /><br />aws iam delete-role \<br />--role-name E2AConvLambdaRole</pre> | AWS général | 
| Supprimez les fichiers générés dans le compartiment Amazon S3. | Dans le dossier de CloudShell travail, entrez la commande suivante pour supprimer les fichiers générés dans le compartiment Amazon S3 :<pre>aws s3 rm s3://$bucket/layout --recursive<br />aws s3 rm s3://$bucket/input --recursive<br />aws s3 rm s3://$bucket/CLIENT.ASCII.txt</pre> | AWS général | 
| Supprimez le dossier de travail. | Dans le dossier de CloudShell travail, entrez la commande suivante pour supprimer `workdir` ainsi que son contenu :<pre>cd ..; rm -Rf workdir</pre> | AWS général | 

## Ressources connexes
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [Utilitaires de données pour ordinateurs centraux README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) () GitHub
+ [Le jeu de caractères EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentation IBM)
+ [EBCDIC vers ASCII](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii) (documentation IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (documentation IBM)
+ [Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda (documentation](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))AWS Lambda 

# Convertissez des fichiers de données du mainframe avec des mises en page d'enregistrement complexes à l'aide de Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

## Résumé
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-summary"></a>

Remarque : le AWS Mainframe Modernization service (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires à AWS Mainframe Modernization Service (expérience d'environnement d'exécution géré), explorez AWS Mainframe Modernization Service (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS Mainframe Modernization la section Modification de la disponibilité](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Ce modèle explique comment convertir des fichiers de données d'ordinateur central contenant des données non textuelles et des mises en page d'enregistrement complexes du codage de caractères EBCDIC (Extended Binary Coded Decimal Interchange Code) vers le codage de caractères ASCII (American Standard Code for Information Interchange) à l'aide d'un fichier de structure Micro Focus. Pour terminer la conversion du fichier, vous devez effectuer les opérations suivantes :

1. Préparez un fichier source unique qui décrit tous les éléments de données et les mises en page des enregistrements de votre environnement mainframe.

1. Créez un fichier de structure contenant la mise en page des données à l'aide de l'éditeur de fichiers de données Micro Focus dans le cadre des outils de fichiers de données Micro Focus Classic ou des outils de fichiers de données. Le fichier de structure identifie les données non textuelles afin que vous puissiez convertir correctement les fichiers EBCDIC en ASCII de votre ordinateur central.

1. Testez le fichier de structure à l'aide des outils de fichiers de données classiques ou des outils de fichiers de données.

## Conditions préalables et limitations
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Micro Focus Enterprise Developer pour Windows, disponible via [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

**Versions du produit**
+ Micro Focus Enterprise Server 7.0 et versions ultérieures

## Outils
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-tools"></a>
+ [Micro Focus Enterprise Developer](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html) fournit l'environnement d'exécution pour les applications créées avec n'importe quelle variante de l'environnement de développement intégré (IDE) d'Enterprise Developer.
+ Les [outils de fichiers de données Micro Focus Classic](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) vous aident à convertir, parcourir, modifier et créer des fichiers de données. Les outils de fichiers de données classiques incluent le [convertisseur de fichiers de données](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFCV.html), l'[éditeur de mise en page d'enregistrement](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHRLMF.html) et l'[éditeur de fichiers de données](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html).
+ Les [outils de fichiers de données](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) Micro Focus vous aident à créer, modifier et déplacer des fichiers de données. Les outils de fichiers de [données incluent l'éditeur de fichiers](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html) de données, les [utilitaires de conversion de fichiers](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHCONV.html) et l'[utilitaire de ligne de commande de structure de fichiers de données](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

## Épopées
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-epics"></a>

### Préparez le fichier source
<a name="prepare-the-source-file"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Identifiez les composants source. | Identifiez toutes les mises en page d'enregistrement possibles pour le fichier, y compris les redéfinitions contenant des données non textuelles.Si vos mises en page contiennent des redéfinitions, vous devez les réduire à des mises en page uniques décrivant chaque permutation possible de la structure de données. Généralement, les mises en page des enregistrements d'un fichier de données peuvent être décrites par les archétypes suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Pour plus d'informations sur la création de mises en page d'enregistrement aplaties pour les fichiers contenant des mises en page d'enregistrement complexes, voir [Réhébergement d'applications EBCDIC dans des environnements ASCII](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html) pour les migrations de mainframe. | Développeur d’applications | 
| Identifiez les conditions de mise en page des enregistrements. | Pour les fichiers comportant plusieurs mises en page d'enregistrement ou les fichiers contenant des mises en page complexes avec une clause REDEFINES, identifiez les données et les conditions d'un enregistrement que vous pouvez utiliser pour définir la mise en page à utiliser lors de la conversion. Nous vous recommandons de discuter de cette tâche avec un expert en la matière (PME) qui comprend les programmes qui traitent ces fichiers.Par exemple, un fichier peut contenir deux types d'enregistrement contenant des données autres que du texte. Vous pouvez inspecter la source et éventuellement trouver un code similaire au suivant :<pre>MOVE "M" TO PART-TYPE<br /> MOVE "MAIN ASSEMBLY" TO PART-NAME<br />MOVE "S" TO PART-TYPE<br /> MOVE "SUB ASSEMBLY 1" TO PART-NAME</pre>Le code vous aide à identifier les éléments suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Vous pouvez documenter les valeurs utilisées par ce champ pour associer les mises en page d'enregistrement aux enregistrements de données corrects du fichier. | Développeur d’applications | 
| Créez le fichier source. | Si le fichier est décrit sur plusieurs fichiers sources ou si la mise en page d'enregistrement contient des données non textuelles subordonnées à une clause REDEFINES, créez un nouveau fichier source contenant les mises en page d'enregistrement. Le nouveau programme n'a pas besoin de décrire le fichier à l'aide des instructions SELECT et FD. Le programme peut simplement contenir les descriptions des enregistrements sous forme de niveaux 01 dans WorkingStorage.Vous pouvez créer un fichier source pour chaque fichier de données ou créer un fichier source principal qui décrit tous les fichiers de données. | Développeur d’applications | 
| Compilez le fichier source. | Compilez le fichier source pour créer le dictionnaire de données. Nous vous recommandons de compiler le fichier source en utilisant le jeu de caractères EBCDIC. Si la directive IBMCOMP ou les directives ODOSLIDE sont utilisées, vous devez également utiliser ces directives dans le fichier source.IBMCOMP affecte le stockage en octets des champs COMP et ODOSLIDE affecte le remplissage des structures OCCURRENTS VARIING. Si ces directives ne sont pas définies correctement, l'outil de conversion ne lira pas correctement l'enregistrement de données. Cela entraîne des données incorrectes dans le fichier converti. | Développeur d’applications | 

### (Option A) Créez le fichier de structure à l'aide des outils de fichiers de données classiques
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Démarrez l'outil et chargez le dictionnaire. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Développeur d’applications | 
| Créez la mise en page d'enregistrement par défaut. | Utilisez le format d'enregistrement par défaut pour tous les enregistrements qui ne correspondent à aucun modèle conditionnel.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)La mise en page par défaut apparaît dans le volet **Dispositions** et peut être identifiée par l'icône de dossier rouge. | Développeur d’applications | 
| Créez une mise en page d'enregistrement conditionnelle. | Utilisez le format d'enregistrement conditionnel lorsqu'il existe plusieurs modèles d'enregistrement dans un fichier.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Développeur d’applications | 

### (Option B) Créez le fichier de structure à l'aide des outils de fichiers de données
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Démarrez l'outil et chargez le dictionnaire. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Développeur d’applications | 
| Créez la mise en page d'enregistrement par défaut. | Utilisez le format d'enregistrement par défaut pour tous les enregistrements qui ne correspondent à aucun modèle conditionnel.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)La mise en page par défaut apparaît dans le volet **Dispositions** et peut être identifiée par l'icône bleue « D ». | Développeur d’applications | 
| Créez une mise en page d'enregistrement conditionnelle. | Utilisez le format d'enregistrement conditionnel lorsqu'il existe plusieurs modèles d'enregistrement dans un fichier.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Développeur d’applications | 

### (Option A) Tester le fichier de structure à l'aide des outils de fichiers de données classiques
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez un fichier de données EBCDIC. | Vérifiez que vous pouvez utiliser votre fichier de structure pour afficher correctement un fichier de données de test EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Développeur d’applications | 

### (Option B) Tester le fichier de structure à l'aide des outils de fichiers de données
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez un fichier de données EBCDIC. | Vérifiez que vous pouvez utiliser votre fichier de structure pour afficher correctement un fichier de données de test EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Développeur d’applications | 

### Conversion de fichiers de données de test
<a name="test-data-file-conversion"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez la conversion d'un fichier EBCDIC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Développeur d’applications | 

## Ressources connexes
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-resources"></a>
+ [Micro Focus](https://www.microfocus.com/en-us/products/enterprise-suite/overview) (documentation Micro Focus)
+ [Mainframe et code existant](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (articles de blog AWS)
+ Directives [AWS Prescriptive Guidance (documentation AWS)](https://docs.aws.amazon.com/prescriptive-guidance/)
+ [Documentation AWS](https://docs.aws.amazon.com/index.html) (documentation AWS)
+ [Référence générale AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (documentation AWS)
+ [Glossaire AWS](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) (documentation AWS)

# Déployez un environnement pour les applications Blu Age conteneurisées à l'aide de Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

## Résumé
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-summary"></a>

La migration des charges de travail d'un mainframe existant vers des architectures cloud modernes peut éliminer les coûts de maintenance d'un mainframe, coûts qui ne font qu'augmenter à mesure que l'environnement vieillit. Cependant, la migration de tâches depuis un ordinateur central peut poser des défis uniques. Les ressources internes ne sont peut-être pas familiarisées avec la logique du travail, et les hautes performances des ordinateurs centraux pour ces tâches spécialisées peuvent être difficiles à reproduire par rapport à une solution standard généralisée. CPUs La réécriture de ces tâches peut être une entreprise de grande envergure et nécessiter des efforts considérables.

Blu Age convertit les charges de travail du mainframe existant en code Java moderne, que vous pouvez ensuite exécuter en tant que conteneur.

Ce modèle fournit un exemple d'architecture sans serveur pour exécuter une application conteneurisée qui a été modernisée avec l'outil Blu Age. Les fichiers HashiCorp Terraform inclus créeront une architecture sécurisée pour l'orchestration des conteneurs Blu Age, prenant en charge à la fois les tâches par lots et les services en temps réel.

Pour plus d'informations sur la modernisation de vos charges de travail à l'aide de Blu Age et des services AWS, consultez les publications AWS Prescriptive Guidance suivantes :
+ [Exécution de charges de travail mainframe modernisées avec Blu Age sur une infrastructure sans serveur AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Conteneurisez les charges de travail du mainframe qui ont été modernisées par Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

Pour obtenir de l'aide sur l'utilisation de Blu Age afin de moderniser les charges de travail de votre mainframe, contactez l'équipe Blu Age en sélectionnant **Contacter nos experts** sur le site Web de [Blu Age](https://www.bluage.com/). Pour obtenir de l'aide concernant la migration de vos charges de travail modernisées vers AWS, leur intégration aux services AWS et leur mise en production, contactez votre responsable de compte AWS ou remplissez le formulaire [AWS Professional](https://pages.awscloud.com/AWS-Professional-Services.html) Services.

## Conditions préalables et limitations
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Conditions préalables**
+ L'exemple d'application Blu Age conteneurisée fourni par le [mainframe Containerize charge de travail qui a été](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) modernisé selon le modèle Blu Age. L'exemple d'application fournit la logique permettant de gérer le traitement des entrées et des sorties pour l'application modernisée, et il peut s'intégrer à cette architecture.
+ Terraform est requis pour déployer ces ressources.

**Limites**
+ Amazon Elastic Container Service (Amazon ECS) impose des limites aux ressources de tâches qui peuvent être mises à la disposition du conteneur. Ces ressources incluent le processeur, la RAM et le stockage. Par exemple, lorsque vous utilisez Amazon ECS avec AWS Fargate, les limites des ressources [des tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) s'appliquent.

**Versions du produit**

Cette solution a été testée avec les versions suivantes :
+ Terraform 1.3.6
+ Fournisseur Terraform AWS 4.46.0

## Architecture
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-architecture"></a>

**Pile technologique source**
+ Âge bleu
+ Terraform

**Pile technologique cible**
+ Amazon Aurora PostgreSQL-Compatible Edition
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ Serveur de gestion des clés AWS (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notiﬁcation Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Architecture cible**

Le schéma suivant montre l'architecture de la solution.

![\[La description suit le schéma.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. La solution déploie les rôles IAM suivants :
   + Rôle de tâche Batch
   + Rôle d'exécution de tâches Batch
   + Rôle de tâche de service
   + Rôle d'exécution des tâches de service
   + Rôle Step Functions
   + Rôle AWS Backup
   + Rôle de surveillance améliorée RDS.

   Les rôles sont conformes aux principes d'accès les moins privilégiés.

1. Amazon ECR est utilisé pour stocker l'image du conteneur orchestrée par ce modèle.

1. AWS Systems Manager Parameter Store fournit des données de configuration relatives à chaque environnement à la définition de tâche Amazon ECS lors de l'exécution.

1. AWS Secrets Manager fournit des données de configuration sensibles concernant l'environnement à la définition des tâches Amazon ECS lors de l'exécution. Les données ont été chiffrées par AWS KMS.

1. Les modules Terraform créent des définitions de tâches Amazon ECS pour toutes les tâches en temps réel et par lots.

1. Amazon ECS exécute une tâche par lots en utilisant AWS Fargate comme moteur de calcul. Il s'agit d'une tâche de courte durée, initiée conformément aux exigences d'AWS Step Functions.

1. Amazon Aurora PostgreSQL compatible fournit une base de données pour prendre en charge l'application modernisée. Cela remplace les bases de données mainframe telles qu'IBM Db2 ou IBM IMS DB.

1. Amazon ECS gère un service de longue durée pour fournir une charge de travail en temps réel modernisée. Ces applications apatrides s'exécutent en permanence avec des conteneurs répartis dans les zones de disponibilité.

1. Un Network Load Balancer est utilisé pour autoriser l'accès à la charge de travail en temps réel. Le Network Load Balancer prend en charge les protocoles antérieurs, tels qu'IBM CICS. Vous pouvez également utiliser un Application Load Balancer avec des charges de travail basées sur le protocole HTTP.

1. Amazon S3 fournit un stockage d'objets pour les entrées et sorties des tâches. Le conteneur doit gérer les opérations de pull et de push dans Amazon S3 afin de préparer le répertoire de travail de l'application Blu Age.

1. Le service AWS Step Functions est utilisé pour orchestrer l'exécution des tâches Amazon ECS afin de traiter des charges de travail par lots.

1. Les rubriques SNS pour chaque charge de travail par lots sont utilisées pour intégrer l'application modernisée à d'autres systèmes, tels que le courrier électronique, ou pour lancer des actions supplémentaires, telles que la livraison d'objets de sortie depuis Amazon S3 vers FTP.

**Note**  
Par défaut, la solution n'a pas accès à Internet. Ce modèle suppose que le cloud privé virtuel (VPC) sera connecté à d'autres réseaux à l'aide d'un service tel qu'[AWS Transit Gateway](https://aws.amazon.com/transit-gateway/). Ainsi, plusieurs points de terminaison VPC d'interface sont déployés pour accorder l'accès aux services AWS utilisés par la solution. Pour activer l'accès direct à Internet, vous pouvez utiliser le bouton du module Terraform pour remplacer les points de terminaison VPC par une passerelle Internet et les ressources associées.

**Automatisation et mise à l'échelle**

L'utilisation de ressources sans serveur tout au long de ce modèle permet de garantir que, grâce à une mise à l'échelle progressive, l'échelle de cette conception est limitée. Cela réduit les *problèmes liés au bruit des voisins*, tels que la concurrence pour les ressources informatiques qui pourrait être rencontrée sur le mainframe d'origine. Les tâches Batch peuvent être planifiées pour s'exécuter simultanément selon les besoins.

Les conteneurs individuels sont limités par les tailles maximales prises en charge par Fargate. Pour plus d'informations, consultez la section relative au [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size) dans la documentation Amazon ECS.

Pour [dimensionner horizontalement les charges de travail en temps réel](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), vous pouvez ajouter des conteneurs.

## Outils
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-tools"></a>

**Services AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) est un moteur de base de données relationnelle entièrement géré et compatible ACID qui vous aide à configurer, exploiter et dimensionner les déploiements PostgreSQL.
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) est un service entièrement géré qui vous aide à centraliser et à automatiser la protection des données sur site Services AWS, dans le cloud et sur site.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) est un service de gestion de conteneurs évolutif et rapide, qui facilite l'exécution, l'arrêt et la gestion de conteneurs Docker sur un cluster.
+ [AWS Identity and Access Management (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.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) vous aide à remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API à Secrets Manager pour récupérer le secret par programmation.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.
+ [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.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) est un service d'orchestration sans serveur qui vous permet de combiner des AWS Lambda fonctions et d'autres fonctions Services AWS pour créer des applications critiques pour l'entreprise.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) fournit un stockage hiérarchique sécurisé pour la gestion des données de configuration et la gestion des secrets.

**Autres services**
+ [HashiCorp Terraform](https://www.terraform.io/docs) est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud. Ce modèle utilise Terraform pour créer l'exemple d'architecture.

**Référentiel de code**

Le code source de ce modèle est disponible dans le référentiel GitHub [Blu Age Sample ECS Infrastructure (Terraform).](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform#aws-blu-age-sample-ecs-infrastructure-terraform)

## Bonnes pratiques
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Pour les environnements de test, utilisez des fonctionnalités telles que la `forceDate` possibilité de configurer l'application modernisée afin de générer des résultats de test cohérents en s'exécutant toujours pendant une période connue.
+ Ajustez chaque tâche individuellement pour consommer le maximum de ressources. Vous pouvez utiliser [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) pour obtenir des conseils sur les goulets d'étranglement potentiels.

## Épopées
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-epics"></a>

### Préparer l'environnement pour le déploiement
<a name="prepare-the-environment-for-deployment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le code source de la solution. | Clonez le code de solution à partir du [GitHub projet](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform). | DevOps ingénieur | 
| Démarrez l'environnement en déployant des ressources pour stocker l'état Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingénieur | 

### Déployer l'infrastructure de la solution
<a name="deploy-the-solution-infrastructure"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Vérifiez et mettez à jour la configuration de Terraform. | Dans le répertoire racine, ouvrez le fichier, `main.tf,` examinez son contenu et pensez à effectuer les mises à jour suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingénieur | 
| Déployez le fichier Terraform. | Depuis votre terminal, exécutez la `terraform apply` commande pour déployer toutes les ressources. Passez en revue les modifications générées par Terraform et entrez **oui** pour lancer la construction.Notez que le déploiement de cette infrastructure peut prendre plus de 15 minutes. | DevOps ingénieur | 

### (Facultatif) Déployez une application conteneurisée Blu Age valide
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Transférez l'image du conteneur Blu Age vers Amazon ECR. | Insérez le conteneur dans le référentiel Amazon ECR que vous avez créé dans l'épopée précédente. Pour obtenir des instructions, consultez la [documentation Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)Notez l'URI de l'image du conteneur. | DevOps ingénieur | 
| Mettez à jour le Terraform pour faire référence à l'image du conteneur Blu Age. | Mettez à jour le fichier `main.tf`**** pour faire référence à l'image du conteneur que vous avez chargée. | DevOps ingénieur | 
| Redéployez le fichier Terraform. | Depuis votre terminal, exécutez `terraform apply` pour déployer toutes les ressources. Passez en revue les mises à jour suggérées par Terraform, puis entrez **oui** pour poursuivre le déploiement. | DevOps ingénieur | 

## Ressources connexes
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Âge bleu](https://www.bluage.com/)
+ [Exécution de charges de travail mainframe modernisées avec Blu Age sur une infrastructure sans serveur AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Conteneurisez les charges de travail du mainframe qui ont été modernisées par Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

# Générez des informations sur z/OS les données DB2 en utilisant AWS Mainframe Modernization Amazon Q dans Quick Sight
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack et Santosh Kumar Singh, Amazon Web Services*

## Résumé
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-summary"></a>

Remarque : le AWS Mainframe Modernization service (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires à AWS Mainframe Modernization Service (expérience d'environnement d'exécution géré), explorez AWS Mainframe Modernization Service (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS Mainframe Modernization la section Modification de la disponibilité](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Si votre entreprise héberge des données critiques dans un environnement mainframe IBM Db2, il est essentiel d'obtenir des informations à partir de ces données pour stimuler la croissance et l'innovation. En débloquant les données du mainframe, vous pouvez créer des informations commerciales plus rapides, sécurisées et évolutives afin d'accélérer la prise de décision, la croissance et l'innovation basées sur les données dans le cloud Amazon Web Services ()AWS.

Ce modèle présente une solution pour générer des informations commerciales et créer des récits partageables à partir de données du mainframe dans IBM Db2 for tables. z/OS Les modifications des données du mainframe sont transmises à la [AWS Mainframe Modernization rubrique [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK) à l'aide](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html) de la réplication de données avec Precisely. Grâce à l'[ingestion en streaming d'Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html), les données thématiques Amazon MSK sont stockées dans des tables d'entrepôt de données [Amazon Redshift Serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) à des fins d'analyse dans Amazon Quick Sight.

Une fois les données disponibles dans Quick Sight, vous pouvez utiliser des instructions en langage naturel avec [Amazon Q dans Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) pour créer des résumés des données, poser des questions et générer des récits de données. Vous n'avez pas besoin d'écrire de requêtes SQL ou de vous familiariser avec un outil de business intelligence (BI).

**Contexte commercial**

Ce modèle présente une solution pour les cas d'utilisation de l'analyse des données sur le mainframe et de l'analyse des données. À l'aide de ce modèle, vous créez un tableau de bord visuel pour les données de votre entreprise. Pour démontrer la solution, ce modèle fait appel à une entreprise de soins de santé qui fournit des plans médicaux, dentaires et ophtalmologiques à ses membres aux États-Unis. Dans cet exemple, les données démographiques des membres et les informations relatives au plan sont stockées dans les tables de z/OS données IBM Db2 for. Le tableau de bord visuel présente les éléments suivants :
+ Répartition des membres par région
+ Répartition des membres par sexe
+ Répartition des membres par âge
+ Répartition des membres par type de plan
+ Membres qui n'ont pas terminé leur vaccination préventive

Pour des exemples de répartition des membres par région et de membres n'ayant pas terminé la vaccination préventive, consultez la section Informations supplémentaires.

Après avoir créé le tableau de bord, vous générez un récit de données qui explique les informations issues de l'analyse précédente. L'histoire des données fournit des recommandations pour augmenter le nombre de membres ayant effectué des vaccinations préventives.

## Conditions préalables et limitations
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS. Cette solution a été développée et testée sur Amazon Linux 2 sur Amazon Elastic Compute Cloud (Amazon EC2).
+ Un cloud privé virtuel (VPC) doté d'un sous-réseau accessible par votre système mainframe.
+ Une base de données mainframe contenant des données commerciales. Pour les exemples de données utilisés pour créer et tester cette solution, consultez la section *Pièces jointes*.
+ La capture des données de modification (CDC) est activée sur les z/OS tables Db2. Pour activer le CDC sur Db2 z/OS, consultez la documentation [IBM](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes).
+ Precisely Connect CDC est z/OS installé sur le z/OS système hébergeant les bases de données sources. L' z/OS image Precisely Connect CDC for est fournie sous forme de fichier zip dans le fichier [AWS Mainframe Modernization - Data Replication for IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) Amazon Machine Image (AMI). Pour installer Precisely Connect CDC for z/OS sur le mainframe, consultez la [documentation d'installation de Precisely](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS).

**Limites**
+ Les données Db2 de votre mainframe doivent être dans un type de données pris en charge par Precisely Connect CDC. Pour obtenir la liste des types de données pris en charge, consultez la [documentation Precisely Connect CDC](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Data-replication-overview/Supported-source-data-types).
+ Vos données chez Amazon MSK doivent être dans un type de données pris en charge par Amazon Redshift. Pour obtenir la liste des types de données pris en charge, consultez la [documentation Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ Amazon Redshift a des comportements et des limites de taille différents selon les types de données. Pour plus d'informations, consultez la [documentation Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ Les données en temps quasi réel dans Quick Sight dépendent de l'intervalle d'actualisation défini pour la base de données Amazon Redshift.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, voir [Services AWS par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Amazon Q in Quick Sight n'est actuellement pas disponible dans toutes les régions compatibles avec Quick Sight. Pour des points de terminaison spécifiques, consultez la page [Points de terminaison et quotas du service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien vers le service.

**Versions du produit**
+ AWS Mainframe Modernization Réplication des données avec Precisely version 4.1.44
+ Python version 3.6 ou ultérieure
+ Apache Kafka version 3.5.1****

## Architecture
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-architecture"></a>

**Architecture cible**

Le schéma suivant montre une architecture permettant de générer des informations commerciales à partir des données du mainframe en utilisant la [réplication AWS Mainframe Modernization des données avec Precisely](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) et Amazon Q dans Quick Sight.

![\[Processus en sept étapes, du z/OS mainframe à Amazon. QuickSight\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


Le schéma suivant illustre le flux de travail suivant :

1. L'agent Precisely Log Reader lit les données des journaux DB2 et les écrit dans un stockage transitoire sur un système de fichiers OMVS sur le mainframe.

1. L'agent Publisher lit les journaux Db2 bruts depuis le stockage transitoire.

1. Le démon du contrôleur local authentifie, autorise, surveille et gère les opérations.

1. L'agent Apply est déployé sur Amazon à EC2 l'aide de l'AMI préconfigurée. Il se connecte à l'agent Publisher via le démon du contrôleur à l'aide du protocole TCP/IP. L'agent Apply envoie les données vers Amazon MSK en faisant appel à plusieurs opérateurs pour un débit élevé.

1. Les travailleurs écrivent les données dans la rubrique Amazon MSK au format JSON. En tant que cible intermédiaire pour les messages répliqués, Amazon MSK fournit des fonctionnalités de basculement automatisées et hautement disponibles.

1. L'ingestion de streaming Amazon Redshift permet une ingestion de données à faible latence et à haut débit depuis Amazon MSK vers une base de données Amazon Redshift Serverless. Une procédure stockée dans Amazon Redshift effectue la réconciliation des données de modification du mainframe (insert/update/deletes) dans les tables Amazon Redshift. Ces tables Amazon Redshift constituent la source d'analyse des données pour Quick Sight.

1. Les utilisateurs accèdent aux données dans Quick Sight pour obtenir des analyses et des informations. Vous pouvez utiliser Amazon Q dans Quick Sight pour interagir avec les données à l'aide d'instructions en langage naturel.

## Outils
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-tools"></a>

**Services AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les étendre ou les intégrer rapidement.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.
+ [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) est un service entièrement géré qui vous permet de créer et d'exécuter des applications utilisant Apache Kafka pour traiter les données de streaming.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) est un service de business intelligence (BI) à l'échelle du cloud qui vous permet de visualiser, d'analyser et de rapporter vos données dans un tableau de bord unique. Ce modèle utilise les fonctionnalités de BI générative d'Amazon Q dans Quick Sight.
+ [Amazon Redshift Serverless](https://aws.amazon.com/redshift/redshift-serverless/) est une option sans serveur d'Amazon Redshift qui permet d'exécuter et de faire évoluer les analyses de manière plus efficace en quelques secondes, sans qu'il soit nécessaire de configurer et de gérer une infrastructure d'entrepôt de données.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) vous aide à remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API à Secrets Manager pour récupérer le secret par programmation.

**Autres outils**
+ [Precisely Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) collecte et intègre les données des systèmes existants dans le cloud et les plateformes de données.

**Référentiel de code**

Le code de ce modèle est disponible dans le référentiel GitHub [Mainframe\$1 DataInsights \$1change\$1data\$1reconciliation](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition). Le code est une procédure stockée dans Amazon Redshift. Cette procédure stockée concilie les modifications des données du mainframe (insertions, mises à jour et suppressions) depuis Amazon MSK avec les tables Amazon Redshift. Ces tables Amazon Redshift servent de source d'analyse de données pour Quick Sight.

## Bonnes pratiques
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Suivez les [meilleures pratiques](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html) lors de la configuration de votre cluster Amazon MSK.
+ Suivez les [meilleures pratiques d'analyse des données](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations) Amazon Redshift pour améliorer les performances.
+ Lorsque vous créez les rôles Gestion des identités et des accès AWS (IAM) pour la configuration de Precisely, suivez le principe du moindre privilège et accordez les autorisations minimales requises pour effectuer une tâche. Pour plus d'informations, consultez les sections [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) et [Bonnes pratiques en matière de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans la documentation IAM.

## Épopées
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-epics"></a>

### Configurez la réplication AWS Mainframe Modernization des données avec Precisely sur Amazon EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez un groupe de sécurité. | Pour vous connecter au démon du contrôleur et au cluster Amazon MSK, [créez un groupe de sécurité](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) pour l' EC2 instance. Ajoutez les règles d'entrée et de sortie suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Notez le nom du groupe de sécurité. Vous devrez faire référence au nom lorsque vous lancerez l' EC2 instance et que vous configurerez le cluster Amazon MSK. | DevOps ingénieur, AWS DevOps | 
| Créez une politique IAM et un rôle IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps ingénieur, administrateur système AWS | 
| Provisionnez une EC2 instance. | Pour configurer une EC2 instance afin d'exécuter Precisely CDC et de vous connecter à Amazon MSK, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur AWS, DevOps ingénieur | 

### Configurer Amazon MSK
<a name="set-up-msk"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le cluster Amazon MSK. | Pour créer un cluster Amazon MSK, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)La création d'un cluster provisionné typique prend jusqu'à 15 minutes. Une fois le cluster créé, son statut passe de **Création** à **Actif**. | AWS DevOps, administrateur du cloud | 
| Configurez SASL/SCRAM l'authentification. | Pour configurer SASL/SCRAM l'authentification pour un cluster Amazon MSK, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architecte du cloud | 
| Créez la rubrique Amazon MSK. | Pour créer la rubrique Amazon MSK, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur du cloud | 

### Configurer le moteur Precisely Apply sur Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez les scripts Precisely pour répliquer les modifications apportées aux données. | Pour configurer les scripts Precisely Connect CDC afin de répliquer les données modifiées depuis le mainframe vers la rubrique Amazon MSK, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Par exemple, les fichiers .ddl, consultez la section [Informations supplémentaires](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional). | Développeur d'applications, architecte cloud | 
| Générez la clé ACL du réseau. | Pour générer la clé de liste de contrôle d'accès réseau (ACL réseau), procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architecte du cloud, AWS DevOps | 

### Préparation de l'environnement source du mainframe
<a name="prepare-the-mainframe-source-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez les valeurs par défaut dans l'écran ISPF. | Pour configurer les paramètres par défaut dans l'Interactive System Productivity Facility (ISPF), suivez les instructions de la [documentation Precisely](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS/Start-ISPF-Panel-Interface). | Administrateur système mainframe | 
| Configurez le démon du contrôleur. | Pour configurer le démon du contrôleur, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur système mainframe | 
| Configuration du diffuseur de publication. | Pour configurer l'éditeur, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur système mainframe | 
| Mettez à jour le fichier de configuration du démon. | Pour mettre à jour les informations relatives à l'éditeur dans le fichier de configuration du démon du contrôleur, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur système mainframe | 
| Créez la tâche pour démarrer le démon du contrôleur. | Pour créer la tâche, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur système mainframe | 
| Générez le fichier JCL de l'éditeur de capture. | Pour générer le fichier JCL de l'éditeur de capture, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur système mainframe | 
| Vérifiez et mettez à jour le CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrateur système mainframe | 
| Soumettez les fichiers JCL. | Soumettez les fichiers JCL suivants que vous avez configurés lors des étapes précédentes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Après avoir soumis les fichiers JCL, vous pouvez démarrer le moteur d'application dans Precisely sur l' EC2 instance. | Administrateur système mainframe | 

### Exécutez et validez le CDC
<a name="run-and-validate-cdc"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Démarrez le moteur d'application et validez le CDC. | Pour démarrer le moteur d'application sur l' EC2 instance et valider le CDC, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architecte cloud, développeur d'applications | 
| Validez les enregistrements relatifs à la rubrique Amazon MSK. | Pour lire le message du sujet Kafka, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Développeur d'applications, architecte cloud | 

### Stockez les données de modification du mainframe dans un entrepôt de données Amazon Redshift Serverless
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Amazon Redshift Serverless. | [Pour créer un entrepôt de données Amazon Redshift Serverless, suivez les instructions de la documentation.AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)Sur le tableau de bord Amazon Redshift Serverless, vérifiez que l'espace de noms et le groupe de travail ont été créés et sont disponibles. Pour cet exemple de modèle, le processus peut prendre de 2 à 5 minutes. | Ingénieur de données | 
| Configurez le rôle IAM et la politique de confiance requis pour l'ingestion du streaming. | Pour configurer l'ingestion du streaming sans serveur Amazon Redshift depuis Amazon MSK, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingénieur de données | 
| Connectez Amazon Redshift Serverless à Amazon MSK. | Pour vous connecter à la rubrique Amazon MSK, créez un schéma externe dans Amazon Redshift Serverless. Dans l'éditeur de requêtes Amazon Redshift v2, exécutez la commande SQL suivante, en la `'iam_role_arn'` remplaçant par le rôle que vous avez créé précédemment et en remplaçant `'MSK_cluster_arn` « par l'ARN de votre cluster ».<pre>CREATE EXTERNAL SCHEMA member_schema<br />FROM MSK<br />IAM_ROLE 'iam_role_arn'<br />AUTHENTICATION iam<br />URI 'MSK_cluster_arn';</pre> | Ingénieur en migration | 
| Créez une vue matérialisée. | Pour utiliser les données de la rubrique Amazon MSK dans Amazon Redshift Serverless, créez une vue matérialisée. Dans l'éditeur de requêtes Amazon Redshift v2, exécutez les commandes SQL suivantes, en les `<MSK_Topic_name>` remplaçant par le nom de votre rubrique Amazon MSK.<pre>CREATE MATERIALIZED VIEW member_view<br />AUTO REFRESH YES<br />AS SELECT<br />kafka_partition, <br />kafka_offset, <br />refresh_time, <br />json_parse(kafka_value) AS Data<br />FROM member_schema.<MSK_Topic_name><br />WHERE CAN_JSON_PARSE(kafka_value); <br /></pre> | Ingénieur en migration | 
| Créez des tables cibles dans Amazon Redshift. | Les tables Amazon Redshift fournissent les données d'entrée pour Quick Sight. Ce modèle utilise les tables `member_dtls` et`member_plans`, qui correspondent aux tables Db2 source sur le mainframe.Pour créer les deux tables dans Amazon Redshift, exécutez les commandes SQL suivantes dans l'éditeur de requêtes Amazon Redshift v2 :<pre>-- Table 1: members_dtls<br />CREATE TABLE members_dtls (<br /> memberid INT ENCODE AZ64,<br /> member_name VARCHAR(100) ENCODE ZSTD,<br /> member_type VARCHAR(50) ENCODE ZSTD,<br /> age INT ENCODE AZ64,<br /> gender CHAR(1) ENCODE BYTEDICT,<br /> email VARCHAR(100) ENCODE ZSTD,<br /> region VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;<br /><br />-- Table 2: member_plans<br />CREATE TABLE member_plans (<br /> memberid INT ENCODE AZ64,<br /> medical_plan CHAR(1) ENCODE BYTEDICT,<br /> dental_plan CHAR(1) ENCODE BYTEDICT,<br /> vision_plan CHAR(1) ENCODE BYTEDICT,<br /> preventive_immunization VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;</pre> | Ingénieur en migration | 
| Créez une procédure stockée dans Amazon Redshift. | Ce modèle utilise une procédure stockée pour synchroniser les données de modification (`INSERT`,`UPDATE`,`DELETE`) du mainframe source avec la table d'entrepôt de données Amazon Redshift cible à des fins d'analyse dans Quick Sight.Pour créer la procédure stockée dans Amazon Redshift, utilisez l'éditeur de requêtes v2 pour exécuter le code de procédure stockée qui se trouve dans le GitHub référentiel. | Ingénieur en migration | 
| Lisez à partir de la vue matérialisée en streaming et chargez vers les tables cibles. | La procédure stockée lit les modifications de données depuis la vue matérialisée en continu et charge les modifications de données dans les tables cibles. Pour exécuter la procédure stockée, utilisez la commande suivante :<pre>call SP_Members_Load();</pre>Vous pouvez utiliser [Amazon EventBridge](https://aws.amazon.com/eventbridge/) pour planifier les tâches dans votre entrepôt de données Amazon Redshift afin d'appeler cette procédure stockée en fonction de vos exigences en matière de latence des données. EventBridge exécute des tâches à intervalles réguliers. Pour vérifier si l'appel précédent à la procédure est terminé, vous devrez peut-être utiliser un mécanisme tel qu'une machine à [AWS Step Functions](https://aws.amazon.com/step-functions/)états. Pour plus d’informations, consultez les ressources suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Une autre option consiste à utiliser l'éditeur de requêtes Amazon Redshift v2 pour planifier l'actualisation. Pour plus d'informations, consultez la section [Planification d'une requête avec l'éditeur de requêtes v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Ingénieur en migration | 

### Connectez Quick Sight aux données dans Amazon Redshift
<a name="connect-quick-sight-to-data-in-rs"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Quick Sight. | Pour configurer Quick Sight, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Ingénieur en migration | 
| Configurez une connexion sécurisée entre Quick Sight et Amazon Redshift. | Pour configurer une connexion sécurisée entre Quick Sight et Amazon Redshift, procédez comme suit[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingénieur en migration | 
| Créez un jeu de données pour Quick Sight. | Pour créer un ensemble de données pour Quick Sight à partir d'Amazon Redshift, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingénieur en migration | 
| Joignez-vous à l'ensemble de données. | Pour créer des analyses dans Quick Sight, joignez les deux tables en suivant les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join).Dans le volet **Configuration de la jointure**, choisissez **Left** pour le **type de jointure**. Sous **Clauses d'adhésion**, utilisez`memberid from member_plans = memberid from members_details`. | Ingénieur en migration | 

### Obtenez des informations commerciales à partir des données du mainframe en utilisant Amazon Q dans Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Amazon Q dans Quick Sight. | Pour configurer Amazon Q dans la fonctionnalité de BI générative de Quick Sight, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html). | Ingénieur en migration | 
| Analysez les données du mainframe et créez un tableau de bord visuel. | Pour analyser et visualiser vos données dans Quick Sight, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Lorsque vous avez terminé, vous pouvez publier votre tableau de bord afin de le partager avec les autres membres de votre organisation. Pour des exemples, consultez le tableau de *bord visuel du mainframe* dans la section [Informations supplémentaires](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Ingénieur en migration | 

### Créez une histoire de données avec Amazon Q dans Quick Sight à partir de données du mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une histoire de données. | Créez une histoire de données pour expliquer les conclusions de l'analyse précédente et générer une recommandation visant à accroître la vaccination préventive des membres :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingénieur en migration | 
| Consultez l'histoire des données générées. | Pour afficher le récit de données généré, choisissez-le sur la page **Récits de données**. | Ingénieur en migration | 
| Modifiez un récit de données généré. | Pour modifier le formatage, la mise en page ou les éléments visuels d'un data story, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Ingénieur en migration | 
| Partagez une histoire de données. | Pour partager une histoire de données, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingénieur en migration | 

## Résolution des problèmes
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Pour Quick Sight to Amazon Redshift, la création du jeu de données `Validate Connection` a échoué. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| La tentative de démarrage du moteur Apply sur l' EC2 instance renvoie l'erreur suivante :`-bash: sqdeng: command not found` | Exportez le chemin `sqdata` d'installation en exécutant la commande suivante :<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| La tentative de démarrage du moteur d'application renvoie l'une des erreurs de connexion suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Vérifiez le spool du mainframe pour vous assurer que les tâches du démon du contrôleur sont en cours d'exécution. | 

## Ressources connexes
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Générez des informations en utilisant Amazon Q AWS Mainframe Modernization et Amazon Q dans Quick Sight](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html?did=pg_card&trk=pg_card) (modèle)
+ [Générez des informations sur les données AWS Mainframe Modernization en utilisant Amazon Q dans Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (démo)
+ [AWS Mainframe Modernization - Réplication des données pour IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Amazon Redshift diffuse l'ingestion vers une vue matérialisée](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## Informations supplémentaires
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**Exemples de fichiers .ddl**

*members\$1details.ddl*

```
CREATE TABLE MEMBER_DTLS (
memberid INTEGER NOT NULL,
member_name VARCHAR(50),
member_type VARCHAR(20),
age INTEGER,
gender CHAR(1),
email VARCHAR(100),
region VARCHAR(20)
);
```

*member\$1plans.dll*

```
CREATE TABLE MEMBER_PLANS (
memberid INTEGER NOT NULL,
medical_plan CHAR(1),
dental_plan CHAR(1),
vision_plan CHAR(1),
preventive_immunization VARCHAR(20)
);
```

**Exemple de fichier .sqd**

**`<kafka topic name>`**Remplacez-le par le nom de votre rubrique Amazon MSK.

*script.sqd*

```
-- Name: DB2ZTOMSK: DB2z To MSK JOBNAME DB2ZTOMSK;REPORT EVERY 1;OPTIONS CDCOP('I','U','D');-- Source Descriptions
JOBNAME DB2ZTOMSK;
REPORT EVERY 1;
OPTIONS CDCOP('I','U','D');

-- Source Descriptions 
BEGIN GROUP DB2_SOURCE; 
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_details.ddl AS MEMBER_DTLS;
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_plans.ddl AS MEMBER_PLANS; 
END GROUP;
-- Source Datastore 
DATASTORE cdc://<zos_host_name>/DB2ZTOMSK/DB2ZTOMSK
OF UTSCDC 
AS CDCIN 
DESCRIBED BY GROUP DB2_SOURCE ;
-- Target Datastore(s)
DATASTORE 'kafka:///<kafka topic name>/key'
OF JSON
AS TARGET
DESCRIBED BY GROUP DB2_SOURCE;
PROCESS INTO TARGET
SELECT
{
REPLICATE(TARGET)
}
FROM CDCIN;
```

**Tableau de bord visuel du mainframe**

Le visuel de données suivant a été créé par Amazon Q dans Quick Sight pour la question d'analyse `show member distribution by region`*.*

![\[Le nord-est et le sud-ouest ont 8 membres, le sud-ouest en a 5, le Midwest en a 4.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


Le visuel de données suivant a été créé par Amazon Q dans Quick Sight pour cette question`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Le sud-est en indique 6, le sud-ouest en indique 5 et le Midwest en indique 4.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Sortie d'une histoire de données**

Les captures d'écran suivantes montrent des sections de l'histoire de données créée par Amazon Q dans Quick Sight pour l'invite`Build a data story about Region with most numbers of members. Also show the member distribution by age, member distribution by gender. Recommend how to motivate members to complete immunization. Include 4 points of supporting data for this pattern`.

Dans l'introduction, l'histoire des données recommande de choisir la région comptant le plus grand nombre de membres afin de tirer le meilleur parti des efforts de vaccination.

![\[Écran d'introduction pour une analyse basée sur la géographie, la démographie et l'âge de la base de membres.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


L'histoire des données fournit une analyse du nombre de membres pour les quatre régions. Les régions du nord-est, du sud-ouest et du sud-est comptent le plus grand nombre de membres.

![\[Les régions du nord-est et du sud-ouest comptent 8 membres, le sud-est 6 membres et le Midwest 4 membres.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


L'histoire des données présente une analyse des membres par âge.

![\[Graphique montrant que la base de membres est biaisée en faveur des adultes plus jeunes et d'âge moyen.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


L'histoire des données met l'accent sur les efforts de vaccination dans le Midwest.

![\[Recommandation pour une campagne de sensibilisation personnelle et des défis régionaux.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Poursuite de l'analyse des données, avec les résultats escomptés et les conclusions.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


## Pièces jointes
<a name="attachments-18e72bcb-1b9a-406a-8220-83aca7743ad2"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Générez des informations sur les données AWS Mainframe Modernization en utilisant Amazon Q dans Quick Sight
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack et Santosh Kumar Singh, Amazon Web Services*

## Résumé
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-summary"></a>

Remarque : le AWS Mainframe Modernization service (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires à AWS Mainframe Modernization Service (expérience d'environnement d'exécution géré), explorez AWS Mainframe Modernization Service (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS Mainframe Modernization la section Modification de la disponibilité](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Si votre entreprise héberge des données critiques dans un environnement mainframe, il est essentiel de tirer parti de ces données pour stimuler la croissance et l'innovation. En débloquant les données du mainframe, vous pouvez créer des informations commerciales plus rapides, sécurisées et évolutives afin d'accélérer la prise de décision, la croissance et l'innovation basées sur les données dans le cloud Amazon Web Services ()AWS.

Ce modèle présente une solution pour générer des informations commerciales et créer des récits partageables à partir de données du mainframe en utilisant le [transfert de AWS Mainframe Modernization fichiers](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) avec BMC et [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) dans Quick Sight. Les ensembles de données du mainframe sont transférés vers [Amazon Simple Storage Service (Amazon S3) à l'](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)aide AWS Mainframe Modernization du transfert de fichiers avec BMC. Une AWS Lambda fonction formate et prépare le fichier de données du mainframe en vue de son chargement dans Quick Sight.

Une fois les données disponibles dans Quick Sight, vous pouvez utiliser des instructions en langage naturel avec [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) dans Quick Sight pour créer des résumés des données, poser des questions et générer des récits de données. Vous n'avez pas besoin d'écrire de requêtes SQL ou de vous familiariser avec un outil de business intelligence (BI).

**Contexte commercial**

Ce modèle présente une solution pour les cas d'utilisation de l'analyse des données sur le mainframe et de l'analyse des données. À l'aide de ce modèle, vous créez un tableau de bord visuel pour les données de votre entreprise. Pour démontrer la solution, ce modèle fait appel à une entreprise de soins de santé qui fournit des plans médicaux, dentaires et ophtalmologiques à ses membres aux États-Unis. Dans cet exemple, les données démographiques des membres et les informations relatives au plan sont stockées dans les ensembles de données du mainframe. Le tableau de bord visuel présente les éléments suivants :
+ Répartition des membres par région
+ Répartition des membres par sexe
+ Répartition des membres par âge
+ Répartition des membres par type de plan
+ Membres qui n'ont pas terminé leur vaccination préventive

Après avoir créé le tableau de bord, vous générez un récit de données qui explique les informations issues de l'analyse précédente. L'histoire des données fournit des recommandations pour augmenter le nombre de membres ayant effectué des vaccinations préventives.

## Conditions préalables et limitations
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ Ensembles de données mainframe contenant des données commerciales
+ Accès pour installer un agent de transfert de fichiers sur le mainframe

**Limites**
+ Le fichier de données de votre ordinateur central doit être dans l'un des formats de fichier pris en charge par Quick Sight. Pour obtenir la liste des formats de fichiers pris en charge, consultez la section [Sources de données prises en charge](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Ce modèle utilise une fonction Lambda pour convertir le fichier mainframe dans un format pris en charge par Quick Sight.

## Architecture
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-architecture"></a>

Le schéma suivant montre une architecture permettant de générer des informations commerciales à partir des données du mainframe en utilisant AWS Mainframe Modernization le transfert de fichiers avec BMC et Amazon Q dans Quick Sight.

![\[La description du schéma d'architecture suit le schéma.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


Le schéma suivant illustre le flux de travail suivant :

1. Un ensemble de données mainframe contenant des données commerciales est transféré vers Amazon S3 à l'aide AWS Mainframe Modernization du transfert de fichiers avec BMC.

1. La fonction Lambda convertit le fichier qui se trouve dans le compartiment S3 de destination du transfert de fichiers au format CSV (valeurs séparées par des virgules).

1. La fonction Lambda envoie le fichier converti au compartiment S3 du jeu de données source.

1. Les données du fichier sont ingérées par Quick Sight.

1. Les utilisateurs accèdent aux données dans Quick Sight. Vous pouvez utiliser Amazon Q dans Quick Sight pour interagir avec les données à l'aide d'instructions en langage naturel.

## Outils
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-tools"></a>

**Services AWS**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
+ [AWS Mainframe Modernization le transfert de fichiers avec BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) convertit et transfère des ensembles de données du mainframe vers Amazon S3 pour des cas d'utilisation liés à la modernisation, à la migration et à l'augmentation du mainframe.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) est un service de BI à l'échelle du cloud qui vous permet de visualiser, d'analyser et de rapporter vos données dans un tableau de bord unique. Ce modèle utilise les fonctionnalités de BI générative d'[Amazon Q dans Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-quicksight-q.html).
+ [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.

## Bonnes pratiques
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ [Lorsque vous créez les rôles Gestion des identités et des accès AWS (IAM) pour le transfert de AWS Mainframe Modernization fichiers avec BMC et la fonction Lambda, suivez le principe du moindre privilège.](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)
+ Assurez-vous que votre jeu de données source est [compatible avec les types de données](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) pour Quick Sight. Si votre jeu de données source contient des types de données non pris en charge, convertissez-les en types de données pris en charge. Pour plus d'informations sur les types de données mainframe non pris en charge et sur la manière de les convertir en types de données pris en charge par Amazon Q dans Quick Sight, consultez la section [Ressources associées](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

## Épopées
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-epics"></a>

### Configurer le transfert AWS Mainframe Modernization de fichiers avec BMC
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez l'agent de transfert de fichiers. | Pour installer l'agent de transfert de AWS Mainframe Modernization fichiers, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html). | Administrateur système mainframe | 
| Créez un compartiment S3 pour le transfert de fichiers sur le mainframe. | [Créez un compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) pour stocker le fichier de sortie issu du transfert de AWS Mainframe Modernization fichiers avec BMC. Dans le schéma d'architecture, il s'agit du compartiment de destination du transfert de fichiers. | Ingénieur en migration | 
| Créez le point de terminaison du transfert de données. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Spécialiste de la modernisation des mainframes AWS | 

### Convertissez l'extension de nom de fichier mainframe pour l'intégration de Quick Sight
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un compartiment S3. | [Créez un compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) pour que la fonction Lambda copie le fichier mainframe converti de la source vers le compartiment de destination final. | Ingénieur en migration | 
| créer une fonction Lambda ; | Pour créer une fonction Lambda qui modifie l'extension du fichier et copie le fichier mainframe dans le compartiment de destination, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingénieur en migration | 
| Créez un déclencheur Amazon S3 pour appeler la fonction Lambda. | Pour configurer un déclencheur qui invoque la fonction Lambda, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Pour en savoir plus, consultez [Didacticiel : Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Responsable de la migration | 
| Fournissez des autorisations IAM pour la fonction Lambda. | Des autorisations IAM sont requises pour que la fonction Lambda puisse accéder aux compartiments S3 du jeu de données source et de destination du transfert de fichiers. Mettez à jour la politique associée au rôle d'exécution de la fonction Lambda en autorisant `s3:GetObject` et en autorisant le `s3:DeleteObject`**** compartiment S3**** de destination du transfert de fichiers et l'`s3:PutObject`accès au compartiment S3 du jeu de données source.Pour plus d'informations, consultez la**** section [Créer une politique d'autorisations](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy) dans *Tutoriel : Utilisation d'un déclencheur Amazon S3 pour appeler une fonction Lambda*. | Responsable de la migration | 

### Définition d'une tâche de transfert de données sur un mainframe
<a name="define-a-mainframe-data-transfer-task"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une tâche de transfert pour copier le fichier du mainframe dans le compartiment S3. | Pour créer une tâche de transfert de fichiers sur mainframe, suivez les instructions de la [AWS Mainframe Modernization documentation](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html).Spécifiez le codage de **page de code source** comme **IBM1047** et le codage de **page de code cible** comme **UTF-8**. | Ingénieur en migration | 
| Vérifiez la tâche de transfert. | Pour vérifier que le transfert de données est réussi, suivez les instructions de la [AWS Mainframe Modernization documentation](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console). Vérifiez que le fichier mainframe se trouve dans le compartiment S3 de destination pour le transfert de fichiers. | Responsable de la migration | 
| Vérifiez la fonction de copie Lambda. | Vérifiez que la fonction Lambda est lancée et que le fichier est copié avec une extension .csv dans le compartiment S3 du jeu de données source.Le fichier .csv créé par la fonction Lambda est le fichier de données d'entrée de Quick Sight. Pour des exemples de données, consultez le `Sample-data-member-healthcare-APG` fichier dans la section [Pièces jointes](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68). | Responsable de la migration | 

### Connect Quick Sight aux données du mainframe
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Quick Sight. | Pour configurer Quick Sight, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Responsable de la migration | 
| Créez un jeu de données pour Quick Sight. | Pour créer un jeu de données pour Quick Sight, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html). Le fichier de données d'entrée est le fichier d'ordinateur central converti créé lorsque vous avez défini la tâche de transfert de données de l'ordinateur central. | Responsable de la migration | 

### Obtenez des informations commerciales à partir des données du mainframe en utilisant Amazon Q dans Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Amazon Q dans Quick Sight. | Cette fonctionnalité nécessite l'édition Enterprise. Pour configurer Amazon Q dans Quick Sight, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Responsable de la migration | 
| Analysez les données du mainframe et créez un tableau de bord visuel. | Pour analyser et visualiser vos données dans Quick Sight, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Lorsque vous avez terminé, vous pouvez publier votre tableau de bord afin de le partager avec les autres membres de votre organisation. Pour des exemples, consultez le tableau de *bord visuel du mainframe* dans la section [Informations supplémentaires](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Ingénieur en migration | 

### Créez une histoire de données avec Amazon Q dans Quick Sight à partir des données du mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une histoire de données. | Créez une histoire de données pour expliquer les conclusions de l'analyse précédente et générer une recommandation visant à accroître la vaccination préventive des membres :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingénieur en migration | 
| Consultez l'histoire des données générées. | Pour consulter l'histoire des données générées, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html). | Responsable de la migration | 
| Modifiez un récit de données généré. | Pour modifier le formatage, la mise en page ou les éléments visuels d'un data story, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Responsable de la migration | 
| Partagez une histoire de données. | Pour partager une histoire de données, suivez les instructions de la [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingénieur en migration | 

## Résolution des problèmes
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Impossible de découvrir les fichiers ou ensembles de données du mainframe saisis dans les **critères de recherche des ensembles de données** pour **Créer une tâche de transfert** lors du transfert de AWS Mainframe Modernization fichiers avec BMC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

## Ressources connexes
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources"></a>

Pour convertir des types de données mainframe tels que [PACKED-DECIMAL (COMP-3) ou [BINARY (COMP ou COMP-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-binary-comp-comp-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) en un [type de données](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) pris en charge par Quick Sight, consultez les modèles suivants :
+ [Convertissez et décompressez les données EBCDIC en ASCII à l'aide de Python AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)
+ [Convertissez des fichiers mainframe du format EBCDIC au format ASCII délimité par des caractères dans Amazon S3 à l'aide de AWS Lambda](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.html)

## Informations supplémentaires
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional"></a>

**S3 CopyLambda .py**

Le code Python suivant a été généré à l'aide d'une invite avec Amazon Q dans un IDE :

```
#Create a lambda function triggered by S3. display the S3 bucket name and key
import boto3
s3 = boto3.client('s3')
def lambda_handler(event, context):
print(event)
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print(bucket, key)
#If key starts with object_created, skip copy, print "copy skipped". Return lambda with key value.
if key.startswith('object_created'):
print("copy skipped")
return {
'statusCode': 200,
'body': key
}
# Copy the file from the source bucket to the destination bucket. Destination_bucket_name = 'm2-filetransfer-final-opt-bkt'. Destination_file_key = 'healthdata.csv'
copy_source = {'Bucket': bucket, 'Key': key}
s3.copy_object(Bucket='m2-filetransfer-final-opt-bkt', Key='healthdata.csv', CopySource=copy_source)
print("file copied")
#Delete the file from the source bucket.
s3.delete_object(Bucket=bucket, Key=key)
return {
'statusCode': 200,
'body': 'Copy Successful'
}
```

**Tableau de bord visuel du mainframe**

Le visuel de données suivant a été créé par Amazon Q dans Quick Sight pour la question d'analyse `show member distribution by region`*.*

![\[Graphique montrant le nombre de membres pour le sud-ouest, le Midwest, le nord-est et le sud-est.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


Le visuel de données suivant a été créé par Amazon Q dans Quick Sight pour cette question`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Pie chart showing preventive immunization incompletion by region: Southeast 40%, Southwest 33%, Midwest 27%.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Sortie d'une histoire de données**

Les captures d'écran suivantes montrent des sections de l'histoire de données créée par Amazon Q dans Quick Sight pour l'invite `Build a data story about Region with most numbers of members. Also show the member distribution by medical plan, vision plan, dental plan. Recommend how to motivate members to complete immunization. Include 4 points of supporting data.`

Dans l'introduction, l'histoire des données recommande de choisir la région comptant le plus grand nombre de membres afin de tirer le meilleur parti des efforts de vaccination.

![\[Page d'introduction pour un reportage sur les taux d'achèvement de la vaccination.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


L'histoire des données fournit une analyse du nombre de membres pour les trois principales régions et désigne le Sud-Ouest comme la principale région axée sur les efforts de vaccination.

![\[Pie chart showing member distribution by region, with Southwest and Northeast leading at 31% each.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/30d3b56b-3b92-4748-9cef-a73ff9339fee.png)


**Note**  
Les régions du sud-ouest et du nord-est comptent chacune huit membres. Cependant, le Sud-Ouest compte un plus grand nombre de membres qui ne sont pas complètement vaccinés. Il est donc plus susceptible de bénéficier des initiatives visant à augmenter les taux de vaccination.

## Pièces jointes
<a name="attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Mettre en œuvre l'authentification basée sur l'identifiant Microsoft Entra dans une application centrale modernisée de AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani et Rimpy Tewani, Amazon Web Services*

## Résumé
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-summary"></a>

**Note**  
AWS Mainframe Modernization Le service (Managed Runtime Environment Experience) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires à AWS Mainframe Modernization Service (expérience d'environnement d'exécution géré), explorez AWS Mainframe Modernization Service (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS Mainframe Modernization la section Modification de la disponibilité](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Les applications mainframe modernisées à l'aide de modèles de refactorisation, tels que ceux de [AWS Mainframe Modernization Refactor with AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), nécessitent une intégration minutieuse des mécanismes d'authentification dans la nouvelle architecture applicative. Cette intégration est généralement considérée comme une activité de post-modernisation. La tâche peut être complexe et implique souvent la migration ou l'externalisation de systèmes d'authentification existants afin de les aligner sur les normes de sécurité modernes et les pratiques natives du cloud. Les développeurs doivent réfléchir à la manière d'implémenter efficacement l'authentification tout en respectant les contraintes de l'environnement d'exécution et des bibliothèques de l'application modernisée. Après la modernisation, vous AWS propose des moyens de faciliter l'intégration de votre code moderne AWS Blu Age aux systèmes de gestion des identités et des accès tels qu'[Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) et [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) (anciennement connu sous le nom d'Azure AD).

Ce modèle explique comment implémenter un mécanisme d'authentification dans votre application modernisée lorsque le fournisseur d'authentification est Microsoft Entra ID, sans perdre de temps à effectuer des recherches et à effectuer des essais. Le patron fournit :
+ Bibliothèques angulaires pertinentes et testées sur le terrain provenant de la Microsoft Authentication Library (MSAL) et d'autres documents Microsoft Entra ID essentiels à la mise en œuvre de l'authentification. 
+ Configurations requises sur le AWS Blu Age Runtime pour activer Spring Security à l'aide de la OAuth version 2.0.
+ Une bibliothèque qui capture les identités des utilisateurs authentifiés et les transmet au AWS Blu Age Runtime.
+ Mesures de sécurité que nous recommandons de mettre en œuvre.
+ Conseils de dépannage pour les problèmes courants liés à la configuration de l'identifiant Microsoft Entra.

**Note**  
Ce modèle utilise la bibliothèque d' OAuth extensions AWS Blu Age, qui est fournie aux clients dans le cadre de leur engagement en matière de [services AWS professionnels](https://aws.amazon.com/professional-services/). Cette bibliothèque ne fait pas partie du AWS Blu Age Runtime.

## Conditions préalables et limitations
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Conditions préalables**
+ Une application modernisée produite par les outils de refactorisation de modernisation des ordinateurs centraux de AWS Blu Age. Ce modèle est utilisé [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)comme exemple d'application mainframe open source.
+ La bibliothèque d' OAuth extensions AWS Blu Age, fournie par l'équipe AWS Blu Age lors de votre engagement avec les [services AWS professionnels](https://aws.amazon.com/professional-services/).
+ Un actif Compte AWS pour déployer et tester l'application modernisée.
+ Connaissance des fichiers de configuration AWS Blu Age et des principes fondamentaux de Microsoft Entra ID.

**Limites**
+ Ce modèle couvre l'authentification OAuth 2.0 et les flux d'autorisation de base basés sur des jetons. Les scénarios d'autorisation avancés et les mécanismes de contrôle d'accès précis ne sont pas concernés.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, voir [Services AWS par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

**Versions du produit**

Ce modèle a été développé en utilisant :
+ AWS Blu Age Runtime version 4.1.0 (le modèle fonctionne également avec les versions ultérieures rétrocompatibles)
+ bibliothèque MSAL version 3.0.23
+ Kit de développement Java (JDK) version 17
+ Version angulaire 16.1

## Architecture
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-architecture"></a>

**Pile technologique source**

Dans les environnements mainframe classiques, l'authentification est mise en œuvre par le biais de profils utilisateur. Ces profils identifient les utilisateurs du système, définissent qui peut se connecter et spécifient les fonctions que les utilisateurs peuvent exécuter sur les ressources du système. Les profils utilisateur sont gérés par des responsables de la sécurité ou des administrateurs de sécurité.

**Pile technologique cible**
+ Identifiant Microsoft Entra
+ Backend Java Spring Boot modernisé
+ AWS Blue Age Runtime
+ Spring Security avec OAuth 2.0
+ Application angulaire à page unique (SPA)

**Architecture cible**

AWS Le moteur d'exécution Blu Age prend en charge l'authentification OAuth basée sur la version 2.0 par défaut. Le modèle utilise donc cette norme pour protéger le backend. APIs

Le schéma suivant illustre le déroulement du processus.

**Note**  
Le schéma inclut Amazon Aurora comme exemple de modernisation de base de données, bien qu'Aurora ne soit pas inclus dans les étapes de ce modèle.

![\[Flux de processus pour l'authentification basée sur l'identifiant Entra pour une application AWS Blu Age.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


où :

1. Un utilisateur essaie de s'authentifier avec l'identifiant Microsoft Entra.

1. Microsoft Entra ID renvoie les jetons d'actualisation, d'accès et d'identification que l'application utilise lors des appels suivants.

1. L'intercepteur MSAL inclut le jeton d'accès dans l'`Authorization`en-tête d'une requête HTTPS pour appeler le AWS Blu Age Runtime.

1. La `extension-oauth` bibliothèque AWS Blu Age extrait les informations utilisateur de l'en-tête à l'aide d'un fichier de configuration AWS Blu Age Runtime (`application-main.yml`) et place ces informations dans un `SharedContext` objet afin que la logique métier puisse les utiliser.
**Note**  
`SharedContext`est un composant d'exécution fourni par AWS Blu Age qui gère le contexte de l'application et les informations d'état dans l'ensemble de l'application modernisée. Pour plus d'informations sur les composants et les mises à jour de AWS Blu Age Runtime, consultez les [notes de mise à jour de AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) dans la AWS Mainframe Modernization documentation. Pour plus d'informations sur le `application-main.yml` fichier, consultez la section [Configuration de la configuration pour AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) dans la AWS Mainframe Modernization documentation.

1. Le AWS Blu Age Runtime vérifie si le jeton est présent. 

   1. Si le jeton est présent, il vérifie sa validité en communiquant avec l'identifiant Microsoft Entra. 

   1. Si le jeton n'est pas présent, le AWS Blu Age Runtime renvoie une erreur avec le code d'état HTTP 403.

1. Si le jeton est valide, le AWS Blue Age Runtime permet à la logique métier de se poursuivre. Si le jeton n'est pas valide, le AWS Blu Age Runtime renvoie une erreur avec le code d'état HTTP 403.

**OAuth flux de travail 2.0**

Pour un schéma détaillé du flux de travail OAuth 2.0, consultez la [documentation Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

## Outils
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools"></a>

**Services AWS**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fournit des outils et des ressources pour vous aider à planifier et à mettre en œuvre la migration et la modernisation des mainframes vers des environnements d'exécution AWS gérés. Vous pouvez utiliser les fonctionnalités de refactoring de ce service, fournies par AWS Blu Age, pour convertir et moderniser vos anciennes applications mainframe.

**Note**  
AWS Mainframe Modernization Le service (Managed Runtime Environment Experience) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires à AWS Mainframe Modernization Service (expérience d'environnement d'exécution géré), explorez AWS Mainframe Modernization Service (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS Mainframe Modernization la section Modification de la disponibilité](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Référentiel de code**

L' CardDemo application a été mise à jour pour démontrer l'intégration avec Microsoft Entra ID. Vous pouvez accéder au code depuis le [GitHub référentiel de ce modèle](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app).

**Configuration du backend**

Ce modèle nécessite des modifications du fichier `application-main.yml`**** de configuration pour activer Spring Security en utilisant la OAuth version 2.0 sur l'application principale.  Le `.yml` fichier ressemble à ceci :

```
gapwalk-application.security: enabled
gapwalk-application:
  security: 
    identity: oauth
    issuerUri: ${issuerUrl}
    claim:
      claims:
        -
          claimName: upn
          claimMapValue: username
spring:
  autoconfigure:
    exclude:
     - org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration
     - org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration
  security:
    oauth2:
      client:
        registration: 
          azure:
            client-id: {clientId}
            client-secret: ${clientSecret}
            provider: azure
            authorization-grant-type: authorization_code
            redirect-uri: ${redirectUri}
            scope: openid
           
        provider:
          azure:
            authorization-uri: ${gapwalk-application.security.issuerUri}/oauth2/v2.0/authorize
            token-uri:  ${gapwalk-application.security.issuerUri}/oauth2/v2.0/token
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
```

**AWS Bibliothèque de filtres d' OAuth extension Blu Age**

La bibliothèque d' OAuth extensions AWS Blu Age est fournie par l'équipe AWS Blu Age lors de votre engagement auprès [des services AWS professionnels](https://aws.amazon.com/professional-services/).

Cette bibliothèque lit la `claim.claims` configuration dans le `application-main.yml` fichier affiché dans le bloc de code précédent. Cette configuration est une liste. Chaque élément de la liste fournit deux valeurs : `claimName` et`claimMapValue`. `claimName`représente le nom d'une clé dans un jeton Web JSON (JWT) envoyé par le frontend et `claimMapValue` est le nom de la clé entrée. `SharedContext` Par exemple, si vous souhaitez capturer l'ID utilisateur sur le backend, définissez le nom `claimName` de la clé dans le JWT qui contient l'`userId`ID Microsoft Entra, et définissez le nom de la clé `claimMapValue` pour récupérer l'ID utilisateur dans le code du backend.

Par exemple, si vous le configurez `UserId``claimMapValue`, vous pouvez utiliser le code suivant pour extraire l'ID utilisateur :

```
SharedContext.get().getValue("userId", [UserId]);
```

## Bonnes pratiques
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Lors de la mise en œuvre de ce modèle, tenez compte des considérations de sécurité importantes suivantes.

**Important**  
Ce modèle constitue la base de l'intégration de l'authentification. Nous vous recommandons de mettre en œuvre des mesures de sécurité en plus de celles décrites dans cette section en fonction des besoins de votre entreprise avant de le déployer en production.
+ **AWS sécurité de configuration.**Déplacez les valeurs de configuration sensibles de `application-main.yml` à AWS Secrets Manager. Par exemple, configurez les propriétés suivantes à l'aide de Secrets Manager :

  ```
  security:
      oauth2:
        client:
          registration: 
            azure:
              client-id: {clientId}
              client-secret: ${clientSecret}
  ```

  Pour plus d'informations sur la façon dont vous pouvez utiliser Secrets Manager pour configurer les paramètres de AWS Blu Age, consultez les [secrets de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html) dans la AWS Mainframe Modernization documentation.
+ **Protection de l'environnement d'exécution.** Configurez l'environnement applicatif modernisé avec des contrôles AWS de sécurité appropriés :

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Journalisation sur Amazon.** Pensez à ajouter le fichier `logback-spring.xml to src/main/resources` :

  ```
  <configuration> 
   <appender name="CLOUDWATCH" class="com.amazonaws.services.logs.logback.CloudWatchAppender">  
     <logGroup>/aws/bluage/application</logGroup> 
     <logStream>${AWS_REGION}-${ENVIRONMENT}</logStream> 
     <layout> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </layout> 
   </appender> 
  
   <root level="INFO"> 
   <appender-ref ref="CLOUDWATCH"/> 
   </root> 
  </configuration>
  ```

  Pour plus d'informations sur l'activation du suivi avec CloudWatch, consultez la section [Activer le traçage pour enregistrer la corrélation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html) dans la CloudWatch documentation.
+ **Configuration et gestion des jetons.** Configurez la durée de vie des jetons dans Microsoft Entra ID pour répondre à vos exigences de sécurité. Définissez les jetons d'accès pour qu'ils expirent dans un délai d'une heure et actualisez les jetons pour qu'ils expirent dans les 24 heures. Dans la configuration de AWS Blu Age Runtime (`application-main.yml`), assurez-vous que la validation JWT est correctement configurée avec l'URI exact de l'émetteur et les valeurs d'audience indiquées lors de l'enregistrement de votre application Entra ID.

  Lorsqu'un jeton expire et est actualisé :

  1. L'intercepteur d'erreurs de l'application Angular gère la réponse 401 en obtenant un nouveau jeton via MSAL.

  1. Le nouveau jeton est envoyé avec la demande suivante.

  1. Le OAuth filtre du AWS Blu Age Runtime valide le nouveau jeton et se met automatiquement à jour `SharedContext` avec les informations utilisateur actuelles. Cela garantit que Business Logic continue d'avoir accès à un contexte utilisateur valide par le biais d'`SharedContext.get().getValue()`appels.

  Pour plus d'informations sur les composants de AWS Blu Age Runtime et leurs mises à jour, consultez les [notes de mise à jour de AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Sécurité de l'environnement d'exécution AWS Blu Age.** La `oauth2-ext` bibliothèque fournie par AWS Blu Age doit être placée dans le répertoire partagé approprié (`{app-server-home}/shared/`) avec les autorisations de fichier appropriées. Vérifiez que la bibliothèque extrait correctement les informations utilisateur JWTs en vérifiant la population `SharedContext` d'objets dans vos journaux.
+ **Configuration des réclamations spécifiques.** Dans`application-main.yml`, définissez explicitement les demandes dont vous avez besoin à partir de Microsoft Entra ID. Par exemple, pour capturer l'e-mail et les rôles de l'utilisateur, spécifiez :

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Gestion des erreurs.** Ajoutez la gestion des erreurs pour résoudre les échecs d'authentification dans votre application Angular ; par exemple :

  ```
  @Injectable()
  export class AuthErrorInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
      return next.handle(request).pipe(
        catchError((error: HttpErrorResponse) => {
          if (error.status === 401) {
            // Handle token expiration
            this.authService.login();
          }
          if (error.status === 403) {
            // Handle unauthorized access
            this.router.navigate(['/unauthorized']);
          }
          return throwError(() => error);
        })
      );
    }
  }
  ```
+ **Configuration du délai d'expiration de session.** Configurez les paramètres de temporisation de session dans le AWS Blu Age Runtime et dans le Microsoft Entra ID. Par exemple, ajoutez le code suivant à votre `application-main.yml` fichier :

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Vous devez implémenter MsalGuard cette fonctionnalité pour tous les itinéraires protégés afin d'empêcher tout accès non autorisé. Par exemple :

  ```
  const routes: Routes = [
      { path: '', redirectTo: '/transaction-runner', pathMatch: 'full' },
      { path: 'transaction-runner', component: TransactionRunnerComponent, canActivate:guards },
      { path: 'user-info', component: UserInfoComponent, canActivate:guards },
      { path: 'term/:transid/:commarea', component: TermComponent, canActivate:guards },
  	{ path: 'code', component: TransactionRunnerComponent  }
  ];
  ```

  Les itinéraires non MsalGuard protégés seront accessibles sans authentification, ce qui peut exposer des fonctionnalités sensibles. Assurez-vous que toutes les routes qui nécessitent une authentification incluent les gardes dans leur configuration.

## Épopées
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-epics"></a>

### Configurer un identifiant Microsoft Entra
<a name="set-up-a-microsoft-entra-id"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez un compte Microsoft Azure pour créer un identifiant Entra. | Pour les options et les instructions, consultez le [site Web de Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Développeur d’applications | 
| Configurez un identifiant Microsoft Entra dans votre application. | Pour savoir comment ajouter l'authentification Microsoft Entra ID B2C (Azure AD B2C) à votre Angular SPA, consultez la documentation [Microsoft](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components). En particulier :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Développeur d’applications | 

### Clonez le référentiel et déployez votre code AWS Blu Age
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le GitHub référentiel pour obtenir le code angulaire requis pour l'authentification. | Exécutez la commande suivante pour cloner le [GitHub référentiel](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) fourni avec ce modèle dans votre répertoire de travail local actuel :<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Développeur d’applications | 
| Déployez le code modernisé AWS Blu Age sur un serveur Tomcat pour implémenter l'authentification. | Pour configurer l'environnement local qui inclut Tomcat et le serveur de développement Angular, suivez les étapes d'installation fournies par l'équipe AWS Blu Age dans le cadre de votre engagement client auprès des services AWS professionnels. | Développeur d’applications | 

### Créez la solution d'authentification
<a name="build-the-authentication-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Activez la sécurité d'AWS Blu Age Runtime pour protéger les points de terminaison de l'API REST AWS Blu Age. | Configurez le `application-main.yml` fichier utilisé par le AWS Blu Age Runtime comme suit. Pour un exemple de ce fichier, consultez la section [Référentiel de code](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) plus haut dans ce modèle.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Développeur d’applications | 
| Intégrez l'exemple de code de votre environnement local dans votre base de code Angular modernisée de Blu Age. | Pour plus d'informations sur la façon d'intégrer l'exemple dans votre base de code Angular modernisée de AWS Blu Age, consultez la section [Référentiel de code](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) plus haut dans ce modèle. | Développeur d’applications | 
| Placez la `oauth2-ext` bibliothèque dans le répertoire partagé. | **Placez la `oauth2-ext` bibliothèque dans le répertoire**** partagé du serveur d'applications afin que votre application **AWS **Blu Age modernisée puisse l'utiliser.**Exécutez les commandes suivantes :<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Développeur d’applications | 

### Déployer la solution d'authentification
<a name="deploy-the-authentication-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez l'application frontale. | Exécutez les commandes suivantes pour démarrer l'application frontale localement :<pre>npm install <br />ng serve --ssl<br />npm start</pre>L'ajout de l'`--ssl`indicateur à la `ng serve` commande garantit que le serveur de développement utilise le protocole HTTPS, qui est plus sécurisé que les autres protocoles et fournit une meilleure simulation d'un environnement de production. | Développeur d’applications | 
| Démarrez l'application principale. | Démarrez le serveur Tomcat dans Eclipse. | Développeur d’applications | 

### Tester l'application
<a name="test-the-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez la fonctionnalité de connexion. | Accédez à l'application déployée localement `http://localhost:4200` à l'adresse pour vérifier que les utilisateurs sont invités à confirmer leur identité.Le protocole HTTP est utilisé ici à des fins de démonstration. Dans un environnement de production ou tout autre environnement accessible au public, vous devez utiliser le protocole HTTPS pour des raisons de sécurité. Même pour le développement local, nous vous recommandons de configurer le protocole HTTPS lorsque cela est possible.L'invite de connexion Microsoft devrait apparaître et les utilisateurs configurés avec l'identifiant Microsoft Entra devraient être autorisés à accéder à l'application. | Développeur d’applications | 
| Testez l'en-tête d'autorisation dans la demande. | Les étapes suivantes utilisent l'[CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)application comme exemple. Les étapes de test pour les autres applications modernes peuvent varier.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Développeur d’applications | 
| Testez la fonctionnalité de déconnexion. | Choisissez **Quitter** pour vous déconnecter, puis réessayez d'accéder à l'application. Il devrait présenter une nouvelle invite de connexion. | Développeur d’applications | 

## Résolution des problèmes
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Le jeton émis par Microsoft Entra ID n'est pas compatible avec la sécurité Spring Boot OAuth 2.0. | Pour trouver une solution à ce problème, consultez [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) sur le OAuth blog. | 
| Questions générales relatives aux jetons. | Pour décoder et afficher le contenu d'un jeton JWT, utilisez le [site Web https://jwt.io/](https://jwt.io/). | 

## Ressources connexes
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Pour plus d'informations sur la refactorisation de votre application à l'aide de AWS Blu Age, consultez la AWS Mainframe Modernization documentation.](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Pour comprendre le fonctionnement de la OAuth version 2.0, consultez le [site Web de la OAuth version 2.0](https://oauth.net/2/).
+ Pour une présentation de la Microsoft Authentication Library (MSAL), consultez la [documentation Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Pour plus d'informations sur les profils utilisateur sur un système AS/400, consultez le [didacticiel IBM i (AS400)](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ Pour le flux d'authentification OAuth 2.0 et OpenID Connect (OIDC) dans la plateforme d'identité Microsoft, consultez la documentation [Microsoft](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols) Entra.

# Intégrez le contrôleur universel Stonebranch à la modernisation du mainframe AWS
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization"></a>

*Vaidy Sankaran et Pablo Alonso Prieto, Amazon Web Services*

*Robert Lemieux et Huseyin Gomleksizoglu, Stonebranch*

## Résumé
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-summary"></a>

Remarque : le AWS Mainframe Modernization service (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires à AWS Mainframe Modernization Service (expérience d'environnement d'exécution géré), explorez AWS Mainframe Modernization Service (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS Mainframe Modernization la section Modification de la disponibilité](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Ce modèle explique comment intégrer l'[orchestration de la charge de travail du Stonebranch Universal Automation Center (UAC)](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) au service de modernisation du [mainframe Amazon Web Services (AWS)](https://aws.amazon.com/mainframe-modernization/). Le service de modernisation du mainframe AWS migre et modernise les applications du mainframe vers le cloud AWS. Il propose deux modèles : la [replateforme de modernisation du mainframe AWS](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) avec la technologie Micro Focus Enterprise et le [refactor automatisé de modernisation du mainframe AWS avec AWS Blu](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) Age.  

Stonebranch UAC est une plateforme d'automatisation et d'orchestration informatiques en temps réel. L'UAC est conçu pour automatiser et orchestrer les tâches, les activités et les flux de travail sur les systèmes informatiques hybrides, qu'ils soient sur site ou sur AWS. Les entreprises clientes utilisant des systèmes mainframe sont en train de passer à des infrastructures et des applications modernisées centrées sur le cloud. Les outils et services professionnels de Stonebranch facilitent la migration des planificateurs existants et des fonctionnalités d'automatisation vers le cloud AWS.

Lorsque vous migrez ou modernisez vos programmes mainframe vers le cloud AWS à l'aide du service AWS Mainframe Modernization, vous pouvez utiliser cette intégration pour automatiser la planification par lots, accroître l'agilité, améliorer la maintenance et réduire les coûts.

Ce modèle fournit des instructions pour intégrer le [planificateur Stonebranch](https://www.stonebranch.com/) aux applications mainframe migrées vers le service de modernisation du mainframe AWS Micro Focus Enterprise Runtime. Ce modèle est destiné aux architectes de solutions, aux développeurs, aux consultants, aux spécialistes de la migration et aux autres personnes travaillant dans les domaines des migrations, des modernisations, des opérations ou. DevOps

**Résultat ciblé**

Ce modèle vise à fournir les résultats cibles suivants :
+ Possibilité de planifier, d'automatiser et d'exécuter des tâches par lots sur mainframe exécutées dans le service AWS Mainframe Modernization (environnement d'exécution Microfocus) de Stonebranch Universal Controller.
+ Surveillez les processus par lots de l'application à partir du contrôleur universel Stonebranch.
+ Start/Restart/Rerun/Stoples traitements par lots sont effectués automatiquement ou manuellement à partir du contrôleur universel Stonebranch.
+ Récupérez les résultats des processus par lots de modernisation du mainframe AWS.
+ Capturez les CloudWatch journaux [AWS](https://aws.amazon.com/cloudwatch/) des tâches par lots dans Stonebranch Universal Controller.

## Conditions préalables et limitations
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Une application Micro Focus [Bankdemo](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) avec des fichiers JCL (langage de contrôle des tâches) et un processus par lots déployé dans un environnement de service AWS Mainframe Modernization (exécution Micro Focus)
+ Connaissances de base sur la création et le déploiement d'une application mainframe exécutée sur Micro Focus [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Connaissances de base du contrôleur universel Stonebranch
+ Licence d'essai Stonebranch (contactez [Stonebranch](https://www.stonebranch.com/))
+ Instances Amazon Elastic Compute Cloud (Amazon EC2) Windows ou Linux (par exemple, xlarge) avec un minimum de quatre cœurs, 8 Go de mémoire et 2 Go d'espace disque
+ Apache Tomcat version 8.5.x ou 9.0.x
+ Oracle Java Runtime Environment (JRE) ou OpenJDK version 8 ou 11
+ [Édition compatible avec Amazon Aurora MySQL](https://aws.amazon.com/rds/aurora/)
+ [Compartiment Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) pour le référentiel d'exportation
+ [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) pour les connexions à l'agent Stonebranch Universal Message Service (OMS) pour une haute disponibilité (HA)
+ Fichiers d'installation de Stonebranch Universal Controller 7.2 Universal Agent 7.2
+ [Modèle de planification des tâches](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) de modernisation du mainframe AWS (dernière version publiée du fichier .zip)

**Limites**
+ Le produit et la solution ont été testés et leur compatibilité validée uniquement avec OpenJDK 8 et 11.
+ Le modèle de planification des tâches [aws-mainframe-modernization-stonebranch-integration](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) fonctionnera uniquement avec le service AWS Mainframe Modernization.
+ Ce modèle de planification des tâches ne fonctionnera que sur une édition Unix, Linux ou Windows des agents Stonebranch.
+ Certains services AWS ne sont pas disponibles dans toutes les régions AWS. Pour connaître la disponibilité par région, consultez la section [Services AWS par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez la page [Points de terminaison et quotas du service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien vers le service.

## Architecture
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-architecture"></a>

**Architecture de l'état cible**

Le schéma suivant montre l'exemple d'environnement AWS requis pour ce projet pilote.

![\[Stonebranch UAC interagissant avec l'environnement de modernisation du mainframe AWS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. Le Stonebranch Universal Automation Center (UAC) comprend deux composants principaux : le contrôleur universel et les agents universels. Stonebranch OMS est utilisé comme bus de messages entre le contrôleur et les agents individuels.

1. La base de données Stonebranch UAC est utilisée par Universal Controller. La base de données peut être compatible avec MySQL, Microsoft SQL Server, Oracle ou Aurora MySQL.

1. Service de modernisation du mainframe AWS : environnement d'exécution Micro Focus avec l'[BankDemo application déployée](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/). Les fichiers de BankDemo candidature seront stockés dans un compartiment S3. Ce compartiment contient également les fichiers JCL du mainframe.

1. Stonebranch UAC peut exécuter les fonctions suivantes pour l'exécution par lots :

   1. Démarrez un traitement par lots en utilisant le nom de fichier JCL qui existe dans le compartiment S3 lié au service de modernisation du mainframe AWS.

   1. Obtenez le statut de l'exécution du traitement par lots.

   1. Attendez que l'exécution du traitement par lots soit terminée.

   1. Récupère les journaux de l'exécution du traitement par lots.

   1. Réexécutez les tâches par lots qui ont échoué.

   1. Annulez le traitement par lots pendant qu'il est en cours d'exécution.

1. Stonebranch UAC peut exécuter les fonctions suivantes pour l'application :

   1. Démarrer l'application

   1. Obtenir le statut de la demande

   1. Attendez que l'application soit démarrée ou arrêtée

   1. Arrêter l'application

   1. Récupère les journaux du fonctionnement de l'application

**Conversion d'emplois à Stonebranch**

Le schéma suivant représente le processus de conversion des emplois de Stonebranch au cours du processus de modernisation. Il décrit comment les plannings de travail et les définitions de tâches sont convertis dans un format compatible capable d'exécuter les tâches par lots d'AWS Mainframe Modernization.

![\[Processus du mainframe à la conversion en planificateur de tâches sur Amazon EC2 avec des fichiers JCL dans Amazon S3.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Pour le processus de conversion, les définitions de tâches sont exportées depuis le système mainframe existant.

1. Les fichiers JCL peuvent être chargés dans le compartiment S3 pour l'application Mainframe Modernization afin que ces fichiers JCL puissent être déployés par le service AWS Mainframe Modernization.

1. L'outil de conversion convertit les définitions de tâches exportées en tâches UAC.

1. Une fois que toutes les définitions de tâches et tous les plannings de tâches ont été créés, ces objets seront importés dans le contrôleur universel. Les tâches converties exécutent ensuite les processus dans le service AWS Mainframe Modernization au lieu de les exécuter sur le mainframe.

**Architecture UAC de Stonebranch**

Le schéma d'architecture suivant représente un active-active-passive modèle de contrôleur universel haute disponibilité (HA). Stonebranch UAC est déployé dans plusieurs zones de disponibilité pour fournir une haute disponibilité et prendre en charge la reprise après sinistre (DR).

![\[Environnement multi-AZ avec DR et contrôleurs, Amazon EFS, Aurora et un compartiment S3 pour les sauvegardes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Contrôleur universel*

Deux serveurs Linux sont fournis en tant que contrôleurs universels. Les deux se connectent au même point de terminaison de base de données. Chaque serveur héberge une application Universal Controller et un OMS. La version la plus récente d'Universal Controller est utilisée au moment de son approvisionnement.

Les contrôleurs universels sont déployés dans l'application Web Tomcat en tant que document ROOT et sont servis sur le port 80. Ce déploiement facilite la configuration de l'équilibreur de charge frontal.

Le protocole HTTP via TLS ou HTTPS est activé à l'aide du certificat générique Stonebranch (par exemple,). `https://customer.stonebranch.cloud` Cela permet de sécuriser la communication entre le navigateur et l'application.

*OMS*

Un agent universel et un OMS (Opswise Message Service) résident sur chaque serveur Universal Controller. Tous les agents universels déployés par le client sont configurés pour se connecter aux deux services OMS. OMS agit comme un service de messagerie commun entre les agents universels et le contrôleur universel.

Amazon EFS monte un répertoire spool sur chaque serveur. OMS utilise ce répertoire de spouls partagé pour conserver les informations de connexion et de tâche communiquées aux contrôleurs et aux agents. OMS fonctionne en mode haute disponibilité. Si l'OMS actif tombe en panne, l'OMS passif a accès à toutes les données et reprend automatiquement les opérations actives. Les agents universels détectent cette modification et se connectent automatiquement au nouvel OMS actif.

*Base de données*

Amazon Relational Database Service (Amazon RDS) héberge la base de données UAC, avec Amazon Aurora MySQL comme moteur compatible. Amazon RDS aide à gérer et à proposer des sauvegardes planifiées à intervalles réguliers. Les deux instances d'Universal Controller se connectent au même point de terminaison de base de données.

*Équilibreur de charge*

Un Application Load Balancer est configuré pour chaque instance. L'équilibreur de charge dirige le trafic vers le contrôleur actif à tout moment. Les noms de domaine de vos instances pointent vers les points de terminaison respectifs de l'équilibreur de charge.

*URLs*

Chacune de vos instances possède une URL, comme illustré dans l'exemple suivant.


| 
| 
| Environnement | Instance | 
| --- |--- |
| **Production** | `customer.stonebranch.cloud` | 
| **Développement (hors production)** | `customerdev.stonebranch.cloud` | 
| **Tests (hors production)** | `customertest.stonebranch.cloud` | 

**Note**  
  Les noms des instances hors production peuvent être définis en fonction de vos besoins.

*Haute disponibilité*

La haute disponibilité (HA) est la capacité d'un système à fonctionner en continu sans défaillance pendant une période donnée. Ces défaillances incluent, sans toutefois s'y limiter, le stockage, les retards de réponse aux communications du serveur causés par des problèmes de processeur ou de mémoire, et la connectivité réseau.

Pour répondre aux exigences de haute disponibilité :
+ Toutes les instances, bases de données et autres configurations EC2 sont mises en miroir dans deux zones de disponibilité distinctes au sein de la même région AWS.
+ Le contrôleur est approvisionné via une Amazon Machine Image (AMI) sur deux serveurs Linux situés dans les deux zones de disponibilité. Par exemple, si vous êtes approvisionné dans la région Europe eu-west-1, vous disposez d'un contrôleur universel dans la zone de disponibilité eu-west-1a et dans la zone de disponibilité eu-west-1c.
+ Aucune tâche n'est autorisée à s'exécuter directement sur les serveurs d'applications et aucune donnée n'est autorisée à être stockée sur ces serveurs.
+ L'Application Load Balancer effectue des contrôles de santé sur chaque contrôleur universel afin d'identifier le contrôleur actif et de diriger le trafic vers celui-ci. En cas de problème avec un serveur, l'équilibreur de charge met automatiquement le contrôleur universel passif en état actif. L'équilibreur de charge identifie ensuite la nouvelle instance de contrôleur universel active à partir des bilans de santé et commence à diriger le trafic. Le basculement se produit en quatre minutes sans perte de travail, et l'URL du frontend reste la même.
+ Le service de base de données compatible Aurora MySQL stocke les données du contrôleur universel. Pour les environnements de production, un cluster de base de données est créé avec deux instances de base de données situées dans deux zones de disponibilité différentes au sein d'une même région AWS. Les deux contrôleurs universels utilisent une interface Java Database Connectivity (JDBC) qui pointe vers un seul point de terminaison de cluster de bases de données. En cas de problème avec une instance de base de données, le point de terminaison du cluster de bases de données pointe dynamiquement vers l'instance saine. Aucune intervention manuelle n’est requise.

*Backup et purge*

Le contrôleur universel Stonebranch est configuré pour sauvegarder et purger les anciennes données selon le calendrier indiqué dans le tableau.


| 
| 
| Type | Planning | 
| --- |--- |
| **Activité** | 7 jours | 
| **Audit** | 90 jours | 
| **Historique** | 60 jours | 

Les données de sauvegarde antérieures aux dates indiquées sont exportées au format .xml et stockées dans le système de fichiers. Une fois le processus de sauvegarde terminé, les anciennes données sont purgées de la base de données et archivées dans un compartiment S3 pendant un an maximum pour les instances de production.

Vous pouvez ajuster ce calendrier dans l'interface de votre contrôleur universel. Cependant, l'augmentation de ces délais peut entraîner un temps d'arrêt plus long pendant la maintenance.

## Outils
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-tools"></a>

**Services AWS**
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) est une plateforme native du cloud AWS qui vous aide à moderniser vos applications mainframe pour les adapter aux environnements d'exécution gérés par AWS. Il fournit des outils et des ressources pour vous aider à planifier et à implémenter la migration et la modernisation.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) fournit des volumes de stockage niveau bloc à utiliser avec les instances Amazon EC2.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) vous aide à créer et à configurer des systèmes de fichiers partagés dans le cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le cloud AWS. Ce modèle utilise Amazon Aurora MySQL Compatible Edition.
+ [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.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) répartit le trafic applicatif ou réseau entrant sur plusieurs cibles. Par exemple, vous pouvez répartir le trafic entre les instances, les conteneurs et les adresses IP Amazon EC2 dans une ou plusieurs zones de disponibilité. Ce modèle utilise un Application Load Balancer.

**Branche en pierre**
+ [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) est un système de produits d'automatisation de la charge de travail d'entreprise. Ce modèle utilise les composants UAC suivants :
  + [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), une application Web Java exécutée dans un conteneur Web Tomcat, est la solution de planification de tâches d'entreprise et de courtier d'automatisation de la charge de travail d'Universal Automation Center. Le Controller présente une interface utilisateur permettant de créer, de surveiller et de configurer les informations du Controller ; gère la logique de planification ; traite tous les messages à destination et en provenance d'Universal Agents ; et synchronise une grande partie des opérations de haute disponibilité d'Universal Automation Center.
  + [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) est un agent de planification indépendant du fournisseur qui collabore avec le planificateur de tâches existant sur toutes les principales plateformes informatiques, qu'elles soient existantes ou distribuées. Tous les planificateurs qui s'exécutent z/Series, i/Series sous Unix, Linux ou Windows sont pris en charge.
+ [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) est un agent de planification indépendant du fournisseur qui collabore avec le planificateur de tâches existant sur toutes les principales plateformes informatiques, qu'elles soient existantes ou distribuées. Tous les planificateurs qui s'exécutent z/Series, i/Series sous Unix, Linux ou Windows sont pris en charge.
+ [Stonebranch aws-mainframe-modernization-stonebranch -integration AWS Mainframe Modernization Universal Extension](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) est le modèle d'intégration permettant d'exécuter, de surveiller et de réexécuter des tâches par lots dans la plateforme AWS Mainframe Modernization.

**Code**

Le code de ce modèle est disponible dans le GitHub référentiel [aws-mainframe-modernization-stonebranch-integration](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/).

## Épopées
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-epics"></a>

### Installez Universal Controller et Universal Agent sur Amazon EC2
<a name="install-universal-controller-and-universal-agent-on-amazon-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez les fichiers d'installation. | Téléchargez l'installation depuis les serveurs Stonebranch. Pour obtenir les fichiers d'installation, contactez Stonebranch. | Architecte du cloud | 
| Lancez l'instance EC2. | Vous aurez besoin d'environ 3 Go d'espace supplémentaire pour les installations d'Universal Controller et d'Universal Agent. Prévoyez donc au moins 30 Go d'espace disque pour l'instance.Ajoutez le port 8080 au groupe de sécurité afin qu'il soit accessible. | Architecte du cloud | 
| Vérifiez les prérequis. | Avant l'installation, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur cloud, administrateur Linux | 
| Installez le contrôleur universel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Architecte cloud, administrateur Linux | 
| Installez Universal Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur cloud, administrateur Linux | 
| Ajoutez OMS à Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 

### Importez l'extension universelle AWS Mainframe Modernization et créez une tâche
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Importer un modèle d'intégration. | Pour cette étape, vous avez besoin de l'[extension universelle AWS Mainframe Modernization](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases). Assurez-vous que la dernière version publiée du fichier .zip est téléchargée.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)Une fois le modèle d'intégration importé, vous verrez les **tâches de modernisation du mainframe AWS** sous **Services disponibles**. | Administrateur d'Universal Controller | 
| Activez les informations d'identification résolubles. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 
| Lancez la tâche. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 

### Tester le démarrage d'une tâche par lots
<a name="test-starting-a-batch-job"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une tâche pour le traitement par lots. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 
| Lancez la tâche. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 

### Création d'un flux de travail pour plusieurs tâches
<a name="create-a-workflow-for-multiple-tasks"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Copiez les tâches. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 
| Tâches de mise à jour | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 
| Créez un flux de travail. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 
| Vérifiez l'état du flux de travail. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur du contrôleur universel | 

### Résoudre les problèmes liés à l'échec des tâches par lots et les réexécuter
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Corrigez la tâche qui a échoué et réexécutez-la. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 

### Création de tâches liées à l'application, démarrage et arrêt de l'application
<a name="create-start-application-and-stop-application-tasks"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'action Démarrer l'application. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrateur d'Universal Controller | 

### Création d'une tâche d'annulation de l'exécution par lots
<a name="create-a-cancel-batch-execution-task"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'action Annuler le lot. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Ressources connexes
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Contrôleur universel](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Agent universel](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [Paramètres LDAP](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [Authentification unique SAML](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Outil de conversion Xpress](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Informations supplémentaires
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Icônes dans l'éditeur de flux de travail**

![\[La tâche RUNHELLO en haut, FOOBAR au milieu et les tâches restantes au troisième niveau.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Toutes les tâches connectées**

![\[RUNHELLO se connecte à FOOBAR, qui se connecte aux trois tâches restantes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**État du flux de travail**

![\[La tâche FOOBAR échoue et les trois tâches restantes sont en attente.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Migrez et répliquez des fichiers VSAM vers Amazon RDS ou Amazon MSK à l'aide de Connect from Precisely
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna et Boopathy GOPALSAMY, Amazon Web Services*

## Résumé
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-summary"></a>

Ce modèle explique comment migrer et répliquer des fichiers VSAM (Virtual Storage Access Method) d'un mainframe vers un environnement cible dans le cloud AWS à l'aide de [Connect](https://www.precisely.com/product/precisely-connect/connect) from Precisely. Les environnements cibles couverts par ce modèle incluent Amazon Relational Database Service (Amazon RDS) et Amazon Managed Streaming for Apache Kafka Kafka (Amazon MSK). Connect utilise la [capture des données de modification (CDC)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect) pour surveiller en permanence les mises à jour de vos fichiers VSAM sources, puis transférer ces mises à jour vers un ou plusieurs de vos environnements cibles AWS. Vous pouvez utiliser ce modèle pour atteindre vos objectifs de modernisation des applications ou d'analyse de données. Par exemple, vous pouvez utiliser Connect pour migrer vos fichiers d'application VSAM vers le cloud AWS avec une faible latence, ou migrer vos données VSAM vers un entrepôt de données ou un lac de données AWS pour des analyses capables de tolérer des latences de synchronisation supérieures à celles requises pour la modernisation des applications.

## Conditions préalables et limitations
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Conditions préalables**
+ [IBM z/OS V2R1](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument) ou version ultérieure
+ [Serveur de transactions CICS pour z/OS (CICS TS) V5.1 ou version](https://www.ibm.com/support/pages/cics-transaction-server-zos-51-detailed-system-requirements) ultérieure (capture de données CICS/VSAM)
+ [IBM MQ 8.0 ou version ultérieure](https://www.ibm.com/support/pages/downloading-ibm-mq-80)
+ Conformité aux [exigences de sécurité z/OS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS) (par exemple, autorisation APF pour les bibliothèques de SQData charge)
+ Les journaux de restauration VSAM sont activés
+ (Facultatif) [Version de restauration CICS VSAM (CICS VR)](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr) pour capturer automatiquement les journaux CDC
+ Un compte AWS actif
+ Un [Amazon Virtual Private Cloud (VPC) doté d'](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)un sous-réseau accessible par votre ancienne plateforme
+ Une licence VSAM Connect de Precisely

**Limites**
+ Connect ne prend pas en charge la création automatique de tables cibles sur la base de schémas ou de cahiers VSAM source. Vous devez définir la structure de table cible pour la première fois.
+ Pour les cibles autres que le streaming telles qu'Amazon RDS, vous devez spécifier le mappage source de conversion en cible dans le script de configuration Apply Engine.
+ Les fonctions de journalisation, de surveillance et d'alerte sont mises en œuvre par le biais de composants externes (tels qu'Amazon CloudWatch) APIs et nécessitent des composants externes pour être pleinement opérationnelles.

**Versions du produit**
+ SQData 40134 pour z/OS
+ SQData 4.0.43 pour Amazon Linux Amazon Machine Image (AMI) sur Amazon Elastic Compute Cloud (Amazon) EC2

## Architecture
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-architecture"></a>

**Pile technologique source**
+ Langage de contrôle des tâches (JCL)
+ Shell z/OS Unix et outil de productivité du système interactif (ISPF)
+ Utilitaires VSAM (IDCAMS)

**Pile technologique cible**
+ Amazon EC2
+ Amazon MSK
+ Amazon RDS
+ Amazon VPC

**Architecture cible**

*Migration de fichiers VSAM vers Amazon RDS*

Le schéma suivant montre comment migrer des fichiers VSAM vers une base de données relationnelle, telle qu'Amazon RDS, en temps réel ou presque en temps réel en utilisant le CDC agent/publisher dans l'environnement source (mainframe sur site) et le [moteur Apply](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) dans l'environnement cible (AWS Cloud).

![\[Diagram showing VSAM file migration from on-premises mainframe to AWS Cloud using CDC and Apply Engine.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/47cefbde-e0c8-4c36-ba48-cccc2c443074.png)


Le diagramme montre le flux de travail par lots suivant :

1. Connect capture les modifications apportées à un fichier en comparant les fichiers VSAM des fichiers de sauvegarde afin d'identifier les modifications, puis envoie les modifications au flux de journal.

1. L'éditeur consomme les données du flux de journal du système.

1. L'éditeur communique les modifications des données capturées à un moteur cible via TCP/IP. Le Controller Daemon authentifie les communications entre les environnements source et cible.

1. Le moteur d'application de l'environnement cible reçoit les modifications de l'agent Publisher et les applique à une base de données relationnelle ou non relationnelle.

Le diagramme montre le flux de travail en ligne suivant :

1. Connect capture les modifications apportées au fichier en ligne à l'aide d'une réplication de journal, puis diffuse les modifications capturées dans un flux de journal.

1. L'éditeur consomme les données du flux de journal du système.

1. L'éditeur communique les modifications des données capturées au moteur cible via TCP/IP. Le Controller Daemon authentifie les communications entre les environnements source et cible.

1. Le moteur d'application de l'environnement cible reçoit les modifications de l'agent Publisher, puis les applique à une base de données relationnelle ou non relationnelle.

*Migration de fichiers VSAM vers Amazon MSK*

Le schéma suivant montre comment diffuser des structures de données VSAM d'un mainframe vers Amazon MSK en mode haute performance et comment générer automatiquement des conversions de schéma JSON ou AVRO qui s'intègrent à Amazon MSK.

![\[Diagram showing data flow from on-premises mainframe to AWS Cloud services via Amazon VPC.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/13eb27ad-c0d2-489b-91e1-5b2a729fb8dd.png)


Le diagramme montre le flux de travail par lots suivant :

1. Connect capture les modifications apportées à un fichier à l'aide de CICS VR ou en comparant les fichiers VSAM des fichiers de sauvegarde pour identifier les modifications. Les modifications capturées sont envoyées au flux de données.

1. L'éditeur consomme les données du flux de journal du système.

1. L'éditeur communique les modifications des données capturées au moteur cible via TCP/IP. Le Controller Daemon authentifie les communications entre les environnements source et cible.

1. Le Replicator Engine qui fonctionne en mode de traitement parallèle divise les données dans une unité de cache de travail.

1. Les threads de travail capturent les données du cache.

1. Les données sont publiées sur les rubriques Amazon MSK à partir des threads de travail.

1. [Les utilisateurs appliquent les modifications depuis Amazon MSK à des cibles telles qu'Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) OpenSearch ou Amazon Service à l'aide de connecteurs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

Le diagramme montre le flux de travail en ligne suivant :

1. Les modifications apportées au fichier en ligne sont enregistrées à l'aide d'une copie du journal. Les modifications capturées sont diffusées dans le flux journal.

1. L'éditeur consomme les données du flux de journal du système.

1. L'éditeur communique les modifications des données capturées au moteur cible via TCP/IP. Le Controller Daemon authentifie les communications entre les environnements source et cible.

1. Le Replicator Engine qui fonctionne en mode de traitement parallèle divise les données dans une unité de cache de travail.

1. Les threads de travail capturent les données du cache.

1. Les données sont publiées sur les rubriques Amazon MSK à partir des threads de travail.

1. [Les utilisateurs appliquent les modifications depuis Amazon MSK à des cibles telles que DynamoDB, Amazon S3 ou Service à l'aide de OpenSearch connecteurs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Outils
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) est un service entièrement géré qui vous permet de créer et d'exécuter des applications utilisant Apache Kafka pour traiter les données de streaming.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le cloud AWS.

## Épopées
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-epics"></a>

### Préparation de l'environnement source (mainframe)
<a name="prepare-the-source-environment-mainframe"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Développeur/administrateur du mainframe IBM | 
| Configurez le répertoire zFS. | Pour configurer un répertoire ZFS, suivez les instructions des [répertoires de variables ZfS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS/zFS-variable-directories) dans la documentation Precisely.Les configurations du démon du contrôleur et de l' Capture/Publisher agent sont stockées dans le système de fichiers z/OS UNIX Systems Services (appelé ZFS). Les agents Controller Daemon, Capture, Storage et Publisher nécessitent une structure de répertoire ZFS prédéfinie pour stocker un petit nombre de fichiers. | Développeur/administrateur du mainframe IBM | 
| Configurez TCP/IP les ports. | Pour configurer TCP/IP les ports, suivez les instructions des ports [TCP/IP de la documentation Precisely](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX/Prerequisites-for-UNIX/Security-authorization-requirements-for-UNIX/TCP/IP-ports).Le Controller Daemon nécessite des TCP/IP ports sur les systèmes sources. Les ports sont référencés par les moteurs des systèmes cibles (où les données de modification capturées sont traitées). | Développeur/administrateur du mainframe IBM | 
| Créez un z/OS flux de log. | Pour créer un flux de [journal z/OS, suivez les instructions de la section Créer des flux](https://www.ibm.com/docs/en/was/8.5.5?topic=SSEQTP_8.5.5/com.ibm.websphere.installation.zseries.doc/ae/cins_logstrm.html) [de journaux z/OS système dans la documentation de Precisely](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA).Connect utilise le flux de données pour capturer et diffuser des données entre votre environnement source et votre environnement cible pendant la migration.Pour un exemple de JCL qui crée un z/OS LogStream, voir [Create z/OS system LogStreams](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) dans la documentation Precisely. | Développeur de mainframe IBM | 
| Identifiez et autorisez IDs les utilisateurs de ZFS et les tâches démarrées. | Utilisez RACF pour accorder l'accès au système de fichiers OMVS ZfS. Pour un exemple de JCL, voir [Identifier et autoriser un utilisateur ZFS et une tâche démarrée IDs](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-log-reader-capture/Prepare-environment/Identify-and-authorize-zFS-user-and-started-task-IDs?tocId=MrBXpFu~N0iAy~8VTrH0tQ) dans la documentation Precisely. | Développeur/administrateur du mainframe IBM | 
| Générez les clés z/OS publiques/privées et le fichier clé autorisé. | Exécutez le JCL pour générer la paire de clés. Pour un exemple, voir *Exemple de paire de clés* dans la section *Informations supplémentaires* de ce modèle.Pour obtenir des instructions, consultez la section [Générer des clés z/OS publiques et privées et un fichier de clé autorisé](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Db2-z/OS/Prepare-the-environment/Generate-z/OS-public-and-private-keys-and-authorized-key-file?tocId=fceE77dWT8smZsSaE~FeMQ) dans la documentation de Precisely. | Développeur/administrateur du mainframe IBM | 
| Activez le CICS VSAM Log Replicate et attachez-le au flux de journal. | Exécutez le script JCL suivant :<pre> //STEP1 EXEC PGM=IDCAMS<br /> //SYSPRINT DD SYSOUT=*<br /> //SYSIN DD *<br />   ALTER SQDATA.CICS.FILEA -<br />   LOGSTREAMID(SQDATA.VSAMCDC.LOG1) -<br />   LOGREPLICATE</pre> | Développeur/administrateur du mainframe IBM | 
| Activez le journal de restauration de fichiers VSAM via un FCT. | Modifiez la table de contrôle des fichiers (FCT) pour refléter les modifications de paramètres suivantes :<pre> Configure FCT Parms<br />   CEDA ALT FILE(name) GROUP(groupname)<br />   DSNAME(data set name)<br />   RECOVERY(NONE|BACKOUTONLY|ALL)<br />   FWDRECOVLOG(NO|1–99)<br />   BACKUPTYPE(STATIC|DYNAMIC)<br />   RECOVERY PARAMETERS<br />   RECOVery : None | Backoutonly | All<br />   Fwdrecovlog : No | 1-99<br />   BAckuptype : Static | Dynamic</pre> | Développeur/administrateur du mainframe IBM | 
| Configurez le CDCz journal pour l'agent Publisher. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Développeur/administrateur du mainframe IBM | 
| Activez le démon Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Développeur/administrateur du mainframe IBM | 
| Activez l'éditeur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Développeur/administrateur du mainframe IBM | 
| Activez le flux de log. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Développeur/administrateur du mainframe IBM | 

### Préparation de l'environnement cible (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez Precisely sur une EC2 instance. | Pour installer Connect from Precisely sur l'AMI Amazon Linux pour Amazon EC2, suivez les instructions de la section [Installer Connect CDC (SQData) sous UNIX](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX) dans la documentation de Precisely. | AWS général | 
|  TCP/IP Ports ouverts. | Pour modifier le groupe de sécurité afin d'inclure les ports Controller Daemon pour l'accès entrant et sortant, suivez les instructions [TCP/IP](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Change-data-capture/Transient-storage-and-publishing/TCP/IP) de la documentation Precisely. | AWS général | 
| Créez des répertoires de fichiers. | Pour créer des répertoires de fichiers, suivez les instructions de la section [Préparer l'environnement d'application cible](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-targets/Kafka/Prepare-target-apply-environment) dans la documentation Precisely. | AWS général | 
| Créez le fichier de configuration Apply Engine. | Créez le fichier de configuration d'Apply Engine dans le répertoire de travail d'Apply Engine. L'exemple de fichier de configuration suivant montre Apache Kafka comme cible :<pre>builtin.features=SASL_SCRAM<br />  security.protocol=SASL_SSL<br />  sasl.mechanism=SCRAM-SHA-512<br />  sasl.username=<br />  sasl.password=<br />  metadata.broker.list=</pre>Pour plus d'informations, consultez [la section Sécurité](https://kafka.apache.org/documentation/#security) dans la documentation d'Apache Kafka. | AWS général | 
| Créez des scripts pour le traitement d'Apply Engine. | Créez les scripts permettant au moteur Apply de traiter les données sources et de les répliquer vers la cible. Pour plus d'informations, consultez la section [Création d'un script d'application du moteur](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Create-an-apply-engine-script) dans la documentation Precisely. | AWS général | 
| Exécutez les scripts. | Utilisez les `SQDENG` commandes `SQDPARSE` et pour exécuter le script. Pour plus d'informations, consultez la section [Analyse d'un script pour zOS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Parse-a-script/Parse-a-script-for-zOS) dans la documentation Precisely. | AWS général | 

### Valider l'environnement
<a name="validate-the-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Validez la liste des fichiers VSAM et des tables cibles pour le traitement par le CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS général, Mainframe | 
| Vérifiez que le SQData produit Connect CDC est lié. | Exécutez une tâche de test et vérifiez que le code de retour de cette tâche est 0 (Réussite).Les messages d'état du moteur Connect CDC SQData Apply doivent afficher des messages de connexion active. | AWS général, Mainframe | 

### Exécuter et valider des scénarios de test (Batch)
<a name="run-and-validate-test-cases-batch"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez le traitement par lots sur le mainframe. | Exécutez la tâche d'application par lots à l'aide d'une JCL modifiée. Incluez dans la JCL modifiée les étapes suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS général, Mainframe | 
| Vérifiez le flux de données. | Consultez le flux journal pour vérifier que vous pouvez voir les données de modification relatives à la tâche par lots terminée sur le mainframe. | AWS général, Mainframe | 
| Validez les dénombrements pour les modifications du delta source et pour la table cible. | Pour confirmer que les enregistrements sont comptabilisés, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS général, Mainframe | 

### Exécuter et valider des scénarios de test (en ligne)
<a name="run-and-validate-test-cases-online"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez la transaction en ligne dans une région CICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Développeur de mainframe IBM | 
| Vérifiez le flux de données. | Vérifiez que le flux journal contient des modifications spécifiques des niveaux d'enregistrement. | Développeur de mainframe AWS | 
| Validez le nombre dans la base de données cible. | Surveillez le moteur d'application pour connaître le nombre record de niveaux. | Précisément, Linux | 
| Validez le nombre d'enregistrements et les enregistrements de données dans la base de données cible. | Interrogez la base de données cible pour valider le nombre d'enregistrements et les enregistrements de données. | AWS général | 

## Ressources connexes
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS (documentation](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/VSAM-z/OS) précise)
+ [Appliquer le moteur](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) (documentation précise)
+ [Moteur Replicator](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (documentation précise)
+ [Le flux de log](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (documentation IBM)

## Informations supplémentaires
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-additional"></a>

**Exemple de fichier de configuration**

Voici un exemple de fichier de configuration pour un flux de journal dont l'environnement source est un mainframe et l'environnement cible est Amazon MSK :

```
 
  -- JOBNAME -- PASS THE SUBSCRIBER NAME
  -- REPORT  progress report will be produced after "n" (number) of Source records processed.
  
  JOBNAME VSMTOKFK;
  --REPORT EVERY 100;
  -- Change Op has been ‘I’ for insert, ‘D’ for delete , and ‘R’ for Replace. For RDS it is 'U' for update
  -- Character Encoding on z/OS is Code Page 1047, on Linux and UNIX it is Code Page 819 and on Windows, Code Page 1252
  OPTIONS
  CDCOP('I', 'U', 'D'),
  PSEUDO NULL = NO,
  USE AVRO COMPATIBLE NAMES,
  APPLICATION ENCODING SCHEME = 1208;
  
  --       SOURCE DESCRIPTIONS
  
  BEGIN GROUP VSAM_SRC;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       TARGET DESCRIPTIONS
  
  BEGIN GROUP VSAM_TGT;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       SOURCE DATASTORE (IP & Publisher name)
  
  DATASTORE cdc://10.81.148.4:2626/vsmcdct/VSMTOKFK
  OF VSAMCDC
  AS CDCIN
  DESCRIBED BY GROUP VSAM_SRC ACCEPT ALL;
  
  --       TARGET DATASTORE(s) - Kafka and topic name
  
  DATASTORE 'kafka:///MSKTutorialTopic/key'
  OF JSON
  AS CDCOUT
  DESCRIBED BY GROUP VSAM_TGT FOR INSERT;
  
  --       MAIN SECTION
  
  PROCESS INTO
  CDCOUT
  SELECT
  {
  SETURL(CDCOUT, 'kafka:///MSKTutorialTopic/key')
  REMAP(CDCIN, account_file, GET_RAW_RECORD(CDCIN, AFTER), GET_RAW_RECORD(CDCIN, BEFORE))
  REPLICATE(CDCOUT, account_file)
  }
  FROM CDCIN;
```

**Exemple de paire de clés**

Voici un exemple de la façon d'exécuter la JCL pour générer la paire de clés :

```
//SQDUTIL EXEC PGM=SQDUTIL //SQDPUBL DD DSN=&USER..NACL.PUBLIC, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPKEY DD DSN=&USER..NACL.PRIVATE, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPARMS DD  keygen //SYSPRINT DD SYSOUT= //SYSOUT DD SYSOUT=* //SQDLOG DD SYSOUT=* //*SQDLOG8 DD DUMMY
```

# Modernisez l'application CardDemo mainframe en utilisant AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

*Santosh Kumar Singh et Cheryl du Preez, Amazon Web Services*

## Résumé
<a name="modernize-carddemo-mainframe-app-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)est conçu pour accélérer la modernisation des applications mainframe. Il utilise l'IA générative pour rationaliser le processus de modernisation du mainframe. Il automatise les tâches complexes, telles que l'analyse du code existant, la documentation du mainframe, l'extraction des règles métier, la décomposition des applications monolithiques dans le domaine métier et le refactoring du code. Il accélère les projets de modernisation en automatisant des tâches complexes, telles que l'analyse des applications et la planification des séquences de migration. Lorsque vous décomposez des applications monolithiques, AWS Transform séquencez intelligemment la transformation des applications mainframe, ce qui vous permet de transformer les fonctions métiers en parallèle. AWS Transform peut accélérer la prise de décision et améliorer l'agilité opérationnelle et l'efficacité de la migration.

Ce modèle fournit des step-by-step instructions pour vous aider à tester les capacités de modernisation du mainframe AWS Transform by using [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), qui est un exemple d'application mainframe open source.

## Conditions préalables et limitations
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ AWS IAM Identity Center, [activé](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Autorisations](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform) permettant aux administrateurs d'activer AWS Transform
+ [Autorisations](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector) permettant aux administrateurs d'accepter les demandes de connexion Amazon Simple Storage Service (Amazon S3) pour AWS Transform l'application Web

**Limites**
+ AWS Transform n'est disponible que dans certains cas Régions AWS. Pour obtenir la liste complète des régions prises en charge, consultez la section [Régions prises en charge pour AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform prend en charge l'analyse du code, la génération de documents, l'extraction des règles métier, la décomposition et le refactoring du langage COBOL (Common Business-Oriented Language) vers Java. Pour plus d'informations, consultez les sections [Fonctionnalités et fonctionnalités clés](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) et [Types de fichiers pris en charge pour la transformation des applications mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files).
+ Il existe un quota de service pour les capacités de transformation du mainframe dans AWS Transform. Pour plus d'informations, consultez la section [Quotas pour AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Pour collaborer sur un espace de travail partagé, tous les utilisateurs doivent être des utilisateurs enregistrés de la même instance AWS IAM Identity Center que celle associée à votre instance de l'application AWS Transform Web.
+ Le compartiment Amazon S3 AWS Transform doit se trouver dans la même Compte AWS région.

## Architecture
<a name="modernize-carddemo-mainframe-app-architecture"></a>

Le schéma suivant montre l'architecture que vous avez configurée dans ce modèle.

![\[Utilisation d'AWS Transform pour moderniser une application mainframe stockée dans un compartiment Amazon S3.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


Le schéma suivant illustre le flux de travail suivant :

1. AWS Transform utilise un connecteur pour accéder à l'application CardDemo mainframe, qui est stockée dans un compartiment Amazon S3.

1. AWS Transform permet AWS IAM Identity Center de gérer l'accès et l'authentification des utilisateurs. Le système met en œuvre plusieurs niveaux de contrôles de sécurité pour l'authentification, l'autorisation, le chiffrement et la gestion des accès afin de protéger le code et les artefacts pendant le traitement. Les utilisateurs interagissent avec l' AWS Transform agent via une interface de chat. Vous pouvez fournir des instructions à l'agent AI pour des tâches spécifiques en anglais. Pour plus d'informations, consultez [Human in the loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl) dans la AWS Transform documentation.

1. L'agent AI interprète les instructions de l'utilisateur, crée un plan de travail, divise le travail en tâches exécutables et l'exécute de manière autonome. Les utilisateurs peuvent examiner et approuver la transformation. Les tâches de transformation sont les suivantes :
   + **Analyse du code** : AWS Transform analyse le code de chaque fichier pour obtenir des détails tels que le nom du fichier, le type de fichier, les lignes de code et leurs chemins. L'agent analyse le code source, exécute des classifications, crée des mappages de dépendances et identifie les artefacts manquants. Il identifie également les composants dupliqués.
   + **Génération de documents** : AWS Transform génère de la documentation pour l'application mainframe. En analysant le code, il peut créer automatiquement une documentation détaillée des programmes d'application, y compris des descriptions de la logique métier, des flux, des intégrations et des dépendances présents dans vos anciens systèmes.
   + **Extraction de la logique métier** : AWS Transform analyse les programmes COBOL pour documenter leur logique métier de base, afin de vous aider à comprendre la logique métier fondamentale.
   + **Décomposition du code** : AWS Transform décompose le code en domaines qui tiennent compte des dépendances entre les programmes et les composants. Le regroupement de fichiers et de programmes connexes au sein d'un même domaine améliore l'organisation et permet de préserver la structure logique de l'application lors de sa décomposition en composants plus petits.
   + **Planification de la vague de migration** — Sur la base des domaines que vous avez créés pendant la phase de décomposition, AWS Transform génère un plan de vague de migration avec un ordre de modernisation recommandé.
   + **Refactorisation du code : AWS Transform refactorise** le code de tous les fichiers de domaine ou de certains fichiers de domaine en code Java. L'objectif de cette étape est de préserver la logique métier critique de l'application tout en la refactorisant pour en faire une application Java modernisée et optimisée pour le cloud.

1. AWS Transform stocke le code refactorisé, les documents générés, les artefacts associés et les bibliothèques d'exécution dans votre compartiment Amazon S3. Vous pouvez effectuer les opérations suivantes :
   + Accédez au dossier d'exécution de votre compartiment Amazon S3.
   + Créez et déployez l'application en suivant la section [Création et déploiement de votre application modernisée après le refactoring](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) figurant dans la documentation. AWS Transform 
   + Par le biais de l'interface de chat, demandez et téléchargez un échantillon AWS CloudFormation ou un modèle Hashicorp Terraform. AWS Cloud Development Kit (AWS CDK) Ces modèles peuvent vous aider à déployer les AWS ressources nécessaires pour prendre en charge l'application refactorisée.
   + Utilisez [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) pour améliorer la qualité du code refactorisé en utilisant de grands modèles de langage (). LLMs Le moteur de refactorisation préserve l'équivalence fonctionnelle du COBOL tout en le transformant en code Java. La reforge est une étape facultative disponible après la transformation. Cette étape permet LLMs de restructurer le code pour qu'il ressemble étroitement à Java natif, ce qui peut améliorer la lisibilité et la maintenabilité. Reforge ajoute également des commentaires lisibles par l'homme pour vous aider à comprendre le code, et met en œuvre des modèles de codage modernes et les meilleures pratiques.

## Outils
<a name="modernize-carddemo-mainframe-app-tools"></a>

**Services AWS**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilise l'IA agentic pour vous aider à accélérer la modernisation des charges de travail existantes, telles que .NET, le mainframe et les charges de travail. VMware 
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à vos applications Comptes AWS et à celles du cloud.
+ [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.

**Référentiel de code**

Vous pouvez utiliser l'application open source pour AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)ordinateur central comme exemple d'application pour démarrer la modernisation du mainframe.

## Bonnes pratiques
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Commencez modestement** : commencez par un code petit et moins complexe (15 000 à 20 000 lignes de code) pour comprendre comment AWS Transform analyse et transforme les applications mainframe.
+ **Combinez avec l'expertise humaine** — Utilisez-le AWS Transform comme accélérateur tout en appliquant l'expertise humaine pour des résultats optimaux.
+ **Révision et test approfondis** — Passez toujours en revue le code transformé avec soin et effectuez des tests complets pour valider l'équivalence fonctionnelle après la transformation.
+ **Fournir des commentaires** — Pour fournir des commentaires et des suggestions d'amélioration, utilisez le bouton **Envoyer des commentaires** dans le AWS Management Console ou créez un dossier auprès de [AWS Support](https://support.console.aws.amazon.com/). Pour plus d’informations, consultez [Création d’un dossier de support](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Vos commentaires sont précieux pour l'amélioration des services et le développement futur.

## Épopées
<a name="modernize-carddemo-mainframe-app-epics"></a>

### Préparation de l'application mainframe
<a name="prepare-the-mainframe-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un compartiment. | Créez un compartiment Amazon S3 dans le même compartiment Compte AWS et dans la région où AWS Transform il est activé. Vous utilisez ce compartiment pour stocker le code de l'application mainframe, et vous AWS Transform l'utilisez pour stocker les documents générés, le code refactorisé et les autres fichiers associés à la transformation. Pour obtenir des instructions, consultez [la section Création d'un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans la documentation Amazon S3. | AWS général | 
| Préparez l'exemple d'application pour ordinateur central. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Développeur d'applications, DevOps ingénieur | 

### Configurer IAM Identity Center et AWS Transform
<a name="configure-sso-and-trn"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Ajoutez des utilisateurs à IAM Identity Center. | Ajoutez vos utilisateurs potentiels à IAM Identity Center. Suivez les instructions de la section [Ajout d'utilisateurs dans IAM Identity Center](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users) dans la AWS Transform documentation. | Administrateur AWS | 
| Activez AWS Transform et ajoutez des utilisateurs. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Administrateur AWS | 
| Configurez l'accès des utilisateurs à l'application AWS Transform Web. | Chaque utilisateur doit accepter l'invitation pour accéder à l'application AWS Transform Web. Suivez les instructions de la section [Acceptation de l'invitation](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation) dans la AWS Transform documentation. | Développeur d'applications, propriétaire de l'application | 
| Connectez-vous à l'application AWS Transform Web. | Suivez les instructions de la [section Se connecter à AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | Développeur d'applications, propriétaire de l'application | 
| Configurez un espace de travail. | Configurez un espace de travail dans lequel les utilisateurs peuvent collaborer dans l'application AWS Transform Web. Suivez les instructions de la [section Démarrez votre projet](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow) dans la AWS Transform documentation. | Administrateur AWS | 

### Transformez l'application mainframe
<a name="transform-the-mainframe-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une tâche de transformation. | Créez une tâche de transformation pour moderniser l'application CardDemo mainframe. Pour obtenir des instructions, consultez la section [Créer et démarrer une tâche](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job) dans la AWS Transform documentation. Lorsque vous êtes invité à définir les objectifs dans l'interface de AWS Transform chat, choisissez **Perform mainframe modernization (IBM z/OS to AWS)**, puis sélectionnez **Analyser le code, Générer la documentation technique, Logique métier, Décomposer le code, Planifier la séquence de migration et Transformer le code en Java**. | Développeur d'applications, propriétaire de l'application | 
| Configurez le connecteur. | Établissez un connecteur vers le compartiment Amazon S3 qui contient l'application CardDemo mainframe. Ce connecteur permet d'accéder AWS Transform aux ressources du bucket et d'exécuter des fonctions de transformation consécutives. Pour obtenir des instructions, consultez la section [Configuration d'un connecteur](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) dans la AWS Transform documentation. | Administrateur AWS | 
| Effectuez une analyse de code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Pour plus d'informations, consultez la section [Analyse du code](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) dans la AWS Transform documentation. | Développeur d'applications, propriétaire de l'application | 
| Générez de la documentation technique. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Pour plus d'informations, voir [Génération de documentation technique](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) dans la AWS Transform documentation. | Développeur d'applications, propriétaire de l'application | 
| Extrayez la logique métier. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Pour plus d'informations, consultez la section [Extraire la logique métier](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) dans la AWS Transform documentation. | Développeur d'applications, propriétaire de l'application | 
| Décomposez le code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Pour plus d'informations sur la décomposition et les germes, consultez la section [Décomposition](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition) dans la AWS Transform documentation. | Développeur d'applications, propriétaire de l'application | 
| Planifiez les vagues de migration. | Planifiez les vagues de migration de l' CardDemo application. Suivez les instructions de la section [Planification des vagues de migration](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) dans la AWS Transform documentation pour revoir et modifier le plan des vagues. | Développeur d'applications, propriétaire de l'application | 
| Refactorisez le code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Développeur d'applications, propriétaire de l'application | 
| (Facultatif) Utilisez Reforge pour améliorer le code Java. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Pour plus d'informations, consultez [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) dans la AWS Transform documentation. | Développeur d'applications, propriétaire de l'application | 
| Simplifiez le déploiement. | AWS Transform peut fournir des modèles d'infrastructure sous forme de code (IaC) pour CloudFormation AWS CDK, ou Terraform. Ces modèles vous aident à déployer des composants de base, notamment des ressources de calcul, de base de données, de stockage et de sécurité.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Pour plus d'informations, consultez la section [Capacités de déploiement](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment) dans la AWS Transform documentation. | Développeur d'applications, propriétaire de l'application | 

## Résolution des problèmes
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Vous ne pouvez pas afficher le code source ou le document généré dans l'application AWS Transform Web. | Ajoutez une politique à l'autorisation CORS pour le compartiment Amazon S3 afin de l'autoriser AWS Transform comme origine. Pour plus d'informations, consultez la section [Autorisations CORS du compartiment S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) dans la AWS Transform documentation. | 

## Ressources connexes
<a name="modernize-carddemo-mainframe-app-resources"></a>

**AWS documentation**
+ [Transformation des applications mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform documentation)

**Autres AWS ressources**
+ [Accélérez votre processus de modernisation des mainframes à l'aide d'agents d'intelligence artificielle avec AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/) (article de AWS blog)
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [AWS IAM Identity Center FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Vidéos et didacticiels**
+ [Présentation d'Amazon Q Developer : Transform](https://explore.skillbuilder.aws/learn/courses/21893/aws-flash-introduction-to-amazon-q-developer-transform) (AWS Skill Builder)
+ [AWS re:Invent 2024 - Modernisez plus rapidement les applications mainframe à l'aide d'Amazon Q](https://www.youtube.com/watch?v=pSi0XtYfY4o) Developer () YouTube
+ [AWS re:Invent 2024 - Automatiser la migration et la modernisation pour accélérer](https://www.youtube.com/watch?v=9FjxnEoH5wg) la transformation () YouTube
+ [AWS re:Invent 2024 - Toyota stimule l'innovation et améliore l'efficacité opérationnelle grâce à la génération AI](https://www.youtube.com/watch?v=_NXc1MJenw4) () YouTube

**Note**  
AWS Transform était auparavant connu sous le nom *d'Amazon Q Developer transform for mainframe.*

# Modernisez et déployez des applications mainframe à l'aide de AWS Transform Terraform
<a name="modernize-mainframe-app-transform-terraform"></a>

*Mason Cahill, Polaris Jhandi, Prachi Khanna, Sivasubramanian Ramani et Santosh Kumar Singh, Amazon Web Services*

## Résumé
<a name="modernize-mainframe-app-transform-terraform-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)peut accélérer la modernisation à grande échelle du .NET, du mainframe et des charges VMware de travail. Il déploie des agents d'IA spécialisés qui automatisent des tâches complexes telles que les évaluations, l'analyse de code, le refactoring, la décomposition, le mappage des dépendances, la validation et la planification des transformations. Ce modèle montre comment moderniser une application mainframe, puis la déployer dans l' AWS infrastructure à l'aide de [Hashicorp](https://developer.hashicorp.com/terraform/intro) Terraform. AWS Transform Ces step-by-step instructions vous aident à transformer [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), qui est un exemple d'application mainframe open source, de COBOL en une application Java moderne.

## Conditions préalables et limitations
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ Autorisations administratives pour créer des AWS ressources et déployer des applications
+ [Terraform version 1.5.7 ou supérieure, configurée](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Fournisseur pour Terraform, configuré](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center, [activé](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [activé](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Un utilisateur intégré à un [AWS Transform espace de travail](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) doté d'un rôle de contributeur capable d'exécuter des tâches de transformation

**Limites**
+ AWS Transform n'est disponible que dans certains cas Régions AWS. Pour obtenir la liste complète des régions prises en charge, consultez la section [Régions prises en charge pour AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Il existe un quota de service pour les capacités de transformation du mainframe dans AWS Transform. Pour plus d'informations, consultez la section [Quotas pour AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Pour collaborer sur un espace de travail partagé, tous les utilisateurs doivent être des utilisateurs enregistrés de la même instance AWS IAM Identity Center que celle associée à votre instance de l'application AWS Transform Web.
+ Le compartiment Amazon Simple Storage Service (Amazon S3) doit se trouver dans le même compartiment AWS Transform et dans la Compte AWS même région.

## Architecture
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

Le schéma suivant montre la end-to-end modernisation de l'ancienne application et le déploiement vers le AWS Cloud. Les informations d'identification de l'application et de la base de données y sont stockées AWS Secrets Manager, et Amazon CloudWatch fournit des fonctionnalités de surveillance et de journalisation.

![\[AWS Transform modernise une application mainframe et la déploie via Terraform.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


Le schéma suivant illustre le flux de travail suivant :

1. Grâce à AWS IAM Identity Center cela, l'utilisateur s'authentifie et accède AWS Transform au. Compte AWS

1. L'utilisateur télécharge le code du mainframe COBOL dans le compartiment Amazon S3 et lance la transformation dans. AWS Transform

1. AWS Transform modernise le code COBOL en code Java natif pour le cloud et stocke le code modernisé dans le compartiment Amazon S3.

1. Terraform crée l' AWS infrastructure nécessaire au déploiement de l'application modernisée, notamment un Application Load Balancer, une instance Amazon Elastic Compute Cloud (Amazon EC2) et une base de données Amazon Relational Database Service (Amazon RDS). Terraform déploie le code modernisé sur l'instance Amazon EC2.

1. Les fichiers VSAM sont chargés sur Amazon EC2 et sont migrés d'Amazon EC2 vers la base de données Amazon RDS.

## Outils
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Services AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) offre une capacité de calcul évolutive dans l' AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement. Dans ce modèle, les instances de cluster de basculement SQL Server sont installées sur les instances Amazon EC2.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à vos applications Comptes AWS et à celles du cloud.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le. AWS Cloud
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) vous aide à remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API à Secrets Manager pour récupérer le secret par programmation.
+ [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.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilise l'IA agentic pour vous aider à accélérer la modernisation des charges de travail existantes, telles que .NET, le mainframe et les charges de travail. VMware 

**Autres outils**
+ [Apache Maven](https://maven.apache.org/) est un outil open source de gestion de projets et d'automatisation des builds pour les projets Java.
+ [Apache Tomcat](https://tomcat.apache.org/) est un conteneur de servlet open source et un serveur Web pour le code Java.
+ [HashiCorp Terraform](https://www.terraform.io/docs) est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud.
+ [Spring Boot](https://spring.io/projects/spring-boot) est un framework open source construit sur le Spring Framework en Java.

**Référentiel de code**

Le code de ce modèle est disponible dans le GitHub [référentiel Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Ce modèle utilise l'application AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source comme exemple d'application.

## Bonnes pratiques
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Attribuez la pleine propriété du code et des ressources destinés à la migration.
+ Développez et testez une preuve de concept avant de passer à une migration complète.
+ Engagement garanti de toutes les parties prenantes.
+ Établissez des canaux de communication clairs.
+ Définissez et documentez les exigences relatives au produit minimum viable (MVP).
+ Définissez des critères de réussite clairs.

## Épopées
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Préparation et téléchargement du code d'application du mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un compartiment. | Créez un compartiment Amazon S3 dans le même compartiment Compte AWS et dans la région où AWS Transform il est activé. Vous utilisez ce compartiment pour stocker le code de l'application mainframe, les données et les scripts supplémentaires nécessaires à la création et à l'exécution de l'application. AWS Transform utilise ce compartiment pour stocker le code refactorisé et les autres fichiers associés à la transformation. Pour obtenir des instructions, consultez [la section Création d'un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans la documentation Amazon S3. | AWS général, administrateur AWS | 
| Définissez les autorisations CORS pour le bucket. | Lorsque vous configurez l' AWS Transform accès à votre compartiment, vous devez configurer le partage de ressources entre origines (CORS) pour le compartiment. Si cela n'est pas configuré correctement, vous ne pourrez peut-être pas utiliser les fonctionnalités de visualisation en ligne ou de comparaison de fichiers de AWS Transform. Pour obtenir des instructions sur la configuration du CORS pour un compartiment, consultez [Utilisation du partage de ressources entre origines](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) dans le compartiment Amazon S3. Pour connaître la politique, consultez les [autorisations CORS du compartiment S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) dans la AWS Transform documentation. | AWS général, administrateur AWS | 
| Préparez l'exemple de code d'application pour ordinateur central. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS général, développeur d'applications | 

### Transformez l'application mainframe
<a name="transform-the-mainframe-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez la AWS Transform tâche. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, propriétaire de l'application | 
| Configurez un connecteur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, propriétaire de l'application | 
| Transformez le code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, propriétaire de l'application | 

### Déployez l'infrastructure via Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Mettez à jour les modèles. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)Pour les environnements de production ou similaires, configurez des composants de sécurité supplémentaires. Par exemple, activez [AWS WAF les protections pour votre Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS général, administrateur AWS | 
| Déployez l'infrastructure. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Installation et configuration d'Apache Tomcat sur l'instance Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez le logiciel requis. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 
| Vérifiez l'installation du logiciel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 

### Compiler et empaqueter le code d'application modernisé
<a name="compile-and-package-the-modernized-application-code"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez et extrayez le code généré. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 
| Créez l'application modernisée. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 

### Migrer la base de données
<a name="migrate-the-database"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez la base de données et les schémas JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 
| Validez la création de base de données | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 
| Migrez les données vers la base de données JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 

### Installation de l'application modernisée
<a name="install-the-modernized-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez l'application modernisée sur l'instance Amazon EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, architecte cloud | 
| Redémarrez le serveur Tomcat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, architecte cloud | 
| Migrez le jeu de données VSAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur en migration | 
| Mettez à jour les paramètres dans les scripts Groovy. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d’applications | 

### Tester l'application
<a name="test-the-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez l'application modernisée. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur de test | 
| Vérifiez les scripts batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Développeur d'applications, ingénieur de test | 

### Nettoyage
<a name="clean-up"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Préparez-vous à supprimer l'infrastructure. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS général | 
| Supprimez l'infrastructure. | Ces étapes supprimeront définitivement vos ressources. Assurez-vous d'avoir sauvegardé toutes les données importantes avant de continuer.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS général | 

## Résolution des problèmes
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Authentification Terraform | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Erreurs liées à Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Le nom de l'URL ne se charge pas | Assurez-vous que le groupe de sécurité Application Load Balancer a votre adresse IP comme source dans la règle entrante. | 
| Problème d'authentification dans le journal Tomcat | Vérifiez que le mot de passe secret de la base de données figurant dans AWS Secrets Manager le **fichier server.xml correspond à celui indiqué dans le fichier**. | 

## Ressources connexes
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Conseils prescriptifs**
+ [Modernisez l'application CardDemo mainframe à l'aide d'AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentation de service**
+ [AWS Console d'administration Blue Age Blusam](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Exigences de configuration de l'infrastructure pour AWS Blu Age Runtime (non géré)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Intégration à AWS Blue Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernisation des applications mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configurer la configuration pour AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS articles de blog**
+ [Accélérez le processus de modernisation de votre mainframe à l'aide d'agents d'intelligence artificielle avec AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernisez la gestion des sorties du mainframe AWS en utilisant Rocket Enterprise Server et PageCenter LRS X
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx"></a>

*Shubham Roy, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray et Shoup Inc*

## Résumé
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

En modernisant la gestion des sorties de votre mainframe, vous pouvez réaliser des économies, atténuer la dette technique liée à la maintenance des systèmes existants et améliorer la résilience et l'agilité grâce aux technologies natives du DevOps cloud d'Amazon Web Services (AWS). Ce modèle vous montre comment moderniser les charges de travail de gestion des sorties critiques de votre mainframe sur le cloud AWS. Le modèle utilise [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) comme environnement d'exécution pour une application mainframe modernisée, avec Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) comme serveur d'impression et LRS PageCenter X comme serveur d'archives. LRS PageCenter X fournit des solutions de gestion des sorties pour la visualisation, l'indexation, la recherche, l'archivage et la sécurisation de l'accès aux résultats commerciaux.

Le modèle est basé sur l'approche de modernisation du mainframe [replateforme](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Les applications mainframe sont migrées par [AWS Mainframe Modernization sur](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) Amazon Elastic Compute Cloud (Amazon). EC2 Les charges de travail de gestion des sorties du mainframe sont migrées vers Amazon EC2, et une base de données mainframe, telle qu'IBM Db2 (for), fonctionne avec AWS z/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS Directory Service pour Microsoft Active Directory pour l'authentification et l'autorisation des flux de travail de gestion des sorties.

## Conditions préalables et limitations
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Charge de travail de gestion des sorties du mainframe.
+ Connaissances de base sur la façon de reconstruire et de fournir une application mainframe qui s'exécute sur Rocket Enterprise Server. Pour plus d'informations, consultez la fiche technique [du serveur Rocket Enterprise](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) dans la documentation du logiciel Rocket.
+ Connaissances de base des solutions et concepts d'impression cloud LRS. Pour plus d'informations, consultez la section *Modernisation des sorties* dans la documentation LRS.
+ Logiciel et licence Rocket Enterprise Server. Pour plus d'informations, contactez [Rocket Software](https://www.rocketsoftware.com/products/enterprise-suite/request-contact).
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISLogiciels et licences LRS. Pour plus d'informations, [contactez LRS.](https://www.lrsoutputmanagement.com/about-us/contact-us/) Vous devez fournir les noms d'hôte des EC2 instances sur lesquelles les produits LRS seront installés.


| 
| 
| Remarque : Pour plus d'informations sur les considérations relatives à la configuration des charges de travail de gestion des sorties du mainframe, consultez la section *Considérations* de la section [Informations supplémentaires](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) de ce modèle. | 
| --- |

**Versions du produit**
+ [Serveur Rocket Enterprise 10.0](https://www.rocketsoftware.com/products/enterprise-suite/enterprise-test-server)
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/modernization-products/)
+ [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) V1R3 ou version ultérieure

## Architecture
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Pile technologique source**
+ Système d'exploitation — IBM z/OS
+ Langage de programmation — Langage commercial commun (COBOL), langage de contrôle des tâches (JCL) et système de contrôle des informations clients (CICS)
+ Base de données : IBM Db2 pour z/OS, base de données IBM Information Management System (IMS) et méthode d'accès au stockage virtuel (VSAM)
+ Sécurité : Resource Access Control Facility (RACF), CA Top Secret pour z/OS et Access Control Facility 2 () ACF2
+ Solutions d'impression et d'archivage : produits de z/OS sortie et d'impression sur mainframe IBM (IBM Infoprint Server pour z/OS, LRS et CA Deliver) et solutions d'archivage (CA Deliver, ASG Mobius ou CA Bundle)

**Architecture source**

Le schéma suivant montre une architecture d'état actuelle typique pour une charge de travail de gestion des sorties d'un mainframe.

![\[Processus de sortie du mainframe en sept étapes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


Le schéma suivant illustre le flux de travail suivant :

1. Les utilisateurs effectuent des transactions commerciales sur un système d'engagement (SoE) basé sur une application IBM CICS écrite en COBOL.

1. Le SoE invoque le service mainframe, qui enregistre les données des transactions commerciales dans une base de données system-of-records (SoR) telle qu'IBM Db2 for z/OS.

1. Le SoR conserve les données commerciales du SoE.

1. Le planificateur de tâches par lots lance une tâche par lots pour générer une sortie d'impression.

1. Le traitement par lots extrait les données de la base de données. Il met en forme les données en fonction des besoins de l'entreprise, puis il génère des résultats commerciaux tels que des relevés de facturation, des cartes d'identité ou des relevés de prêt. Enfin, le traitement par lots achemine la sortie vers la gestion des sorties pour le formatage, la publication et le stockage de la sortie en fonction des exigences de l'entreprise.

1. La gestion des sorties reçoit le résultat du traitement par lots. La gestion des sorties indexe, organise et publie la sortie vers une destination spécifiée dans le système de gestion des sorties, telle que les solutions LRS PageCenter X (comme illustré dans ce modèle) ou CA View.

1. Les utilisateurs peuvent afficher, rechercher et récupérer le résultat.

**Pile technologique cible**
+ Système d'exploitation — Windows Server exécuté sur Amazon EC2
+ Calcul — Amazon EC2
+ Stockage — Amazon Elastic Block Store (Amazon EBS) et FSx Amazon pour Windows File Server
+ Langage de programmation : COBOL, JCL et CICS
+ Base de données — Amazon RDS
+ Sécurité — Microsoft AD géré par AWS
+ Impression et archivage : solution d'impression LRS (VPSX) et d'archivage (PageCenterX) sur AWS
+ Environnement d'exécution mainframe — Rocket Enterprise Server

**Architecture cible**

Le schéma suivant montre l'architecture d'une charge de travail de gestion des sorties du mainframe déployée dans le cloud AWS.

![\[Architecture cible pour la gestion des applications par lots et des sorties en sept étapes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


Le schéma suivant illustre le flux de travail suivant :

1. Le planificateur de tâches par lots lance une tâche par lots pour créer des résultats, tels que des relevés de facturation, des cartes d'identité ou des relevés de prêt.

1. Le traitement par lots du mainframe ([replatformé sur Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilise le runtime Rocket Enterprise Server pour extraire les données de la base de données de l'application, appliquer une logique métier aux données et les formater. Il envoie ensuite les données vers une destination de sortie à l'aide du [module de sortie d'imprimante Rocket Software](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html) (documentation OpenText Micro Focus).

1. La base de données de l'application (un SoR qui s'exécute sur Amazon RDS) conserve les données pour l'impression.

1. La solution VPSX/MFI d'impression LRS est déployée sur Amazon EC2 et ses données opérationnelles sont stockées dans Amazon EBS. LRS VPSX/MFI utilise l'agent de TCP/IP-based LRS/Queue transmission pour collecter les données de sortie via l'API JES Print Exit de Rocket Software.

   LRS VPSX/MFI effectue le prétraitement des données, tel que la traduction EBCDIC vers ASCII. Il effectue également des tâches plus complexes, notamment la conversion de flux de données exclusifs aux ordinateurs centraux tels que IBM Advanced Function Presentation (AFP) et Xerox Line Conditioned Data Stream (LCDS) en flux de données de visualisation et d'impression plus courants tels que le langage de commande d'imprimante (PCL) et le PDF.

   Pendant la fenêtre de maintenance de LRS PageCenter X, LRS conserve la file d' VPSX/MFI attente de sortie et sert de sauvegarde pour la file d'attente de sortie. Le LRS VPSX/MFI se connecte et envoie une sortie au LRS PageCenter X à l'aide du LRS/Queue protocole. LRS/Queue effectue un échange sur l'état de préparation et l'achèvement des tâches afin de garantir le transfert des données.

   **Remarques** :

   Pour plus d'informations sur les données d'impression transmises par Rocket Software Print Exit vers LRS/Queue les mécanismes de traitement par lots sur ordinateur central VPSX/MFI pris en charge par LRS, consultez la section *Capture des données d'impression* dans la section [Informations supplémentaires](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

   Le LRS VPSX/MFI peut effectuer des bilans de santé au niveau du parc d'imprimantes. Pour plus d'informations, consultez la section *Contrôles de santé du parc* d'imprimantes dans la section [Informations supplémentaires](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) de ce modèle.

1. La solution de gestion des sorties LRS PageCenter X est déployée sur Amazon EC2 et ses données opérationnelles sont stockées sur Amazon FSx pour Windows File Server. LRS PageCenter X fournit un système central de gestion des rapports contenant tous les fichiers importés dans LRS PageCenter X et permettant à tous les utilisateurs d'accéder aux fichiers. Les utilisateurs peuvent consulter le contenu d'un fichier spécifique ou effectuer des recherches dans plusieurs fichiers pour trouver des critères correspondants.

   Le LRS/NetX composant est un serveur d'applications Web multithread qui fournit un environnement d'exécution commun pour l'application LRS PageCenter X et les autres applications LRS. Le composant LRS/Web Connect est installé sur votre serveur Web et fournit un connecteur entre le serveur Web et le serveur d'applications LRS/NetX Web.

1. LRS PageCenter X fournit un espace de stockage pour les objets du système de fichiers. Les données opérationnelles de LRS PageCenter X sont stockées dans le serveur de fichiers Amazon FSx pour Windows.

1. L'authentification et l'autorisation de gestion des sorties sont effectuées par AWS Managed Microsoft AD avec LRS/DIS.

**Note**  
La solution cible ne nécessite généralement pas de modifications de l'application pour s'adapter aux langages de formatage du mainframe, tels qu'IBM AFP ou Xerox LCDS.

**Architecture de l'infrastructure AWS**

Le schéma suivant montre une architecture d'infrastructure AWS hautement disponible et sécurisée pour une charge de travail de gestion des sorties sur mainframe.

![\[Infrastructure AWS multi-AZ avec un flux de travail en sept étapes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


Le schéma suivant illustre le flux de travail suivant :

1. Le planificateur de lots lance le processus de traitement par lots et est déployé sur Amazon EC2 dans plusieurs [zones de disponibilité](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) pour une haute disponibilité (HA).
**Note**  
Ce modèle ne couvre pas la mise en œuvre du planificateur de lots. Pour plus d'informations sur la mise en œuvre, consultez la documentation du fournisseur de logiciels pour votre planificateur.

1. Le traitement par lots du mainframe (écrit dans un langage de programmation tel que JCL ou COBOL) utilise la logique métier de base pour traiter et générer des documents imprimés, tels que des relevés de facturation, des cartes d'identité et des relevés de prêt. Le traitement par lots est déployé EC2 sur Amazon dans deux zones de disponibilité pour HA. Il utilise l'API Rocket Software Print Exit pour acheminer la sortie d'impression vers LRS VPSX/MFI pour le prétraitement des données.

1. Le serveur VPSX/MFI d'impression LRS est déployé EC2 sur Amazon dans deux zones de disponibilité pour HA (paire redondante active et veille). Il utilise [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) comme magasin de données opérationnel. Le Network Load Balancer effectue une vérification de l'état des instances VPSX/MFI EC2 LRS. Si une instance active est défectueuse, l'équilibreur de charge achemine le trafic vers les instances en veille active situées dans l'autre zone de disponibilité. Les demandes d'impression sont conservées dans la file d'attente des tâches LRS localement dans chacune des EC2 instances. En cas de panne, une instance défaillante doit être redémarrée avant que les services LRS puissent reprendre le traitement de la demande d'impression.
**Note**  
Le LRS VPSX/MFI peut également effectuer des bilans de santé au niveau du parc d'imprimantes. Pour plus d'informations, consultez la section *Contrôles de santé du parc* d'imprimantes dans la section [Informations supplémentaires](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) de ce modèle.

1. La gestion des sorties LRS PageCenter X est déployée sur Amazon EC2 dans deux zones de disponibilité pour HA (paire redondante active et veille). Il utilise le [serveur de fichiers Amazon FSx pour Windows](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) comme magasin de données opérationnel. Si une instance active est défectueuse, l'équilibreur de charge effectue une vérification de l'état des instances LRS PageCenter X et achemine le trafic vers les EC2 instances en veille dans l'autre zone de disponibilité.

1. Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fournit un nom DNS pour intégrer le VPSX/MFI serveur LRS à LRS X. PageCenter
**Note**  
Le LRS PageCenter X prend en charge un équilibreur de charge de couche 4.

1. LRS PageCenter X utilise le serveur de fichiers Amazon FSx pour Windows comme magasin de données opérationnel déployé sur deux zones de disponibilité pour HA. LRS PageCenter X ne comprend que les fichiers qui se trouvent dans le partage de fichiers, et non dans une base de données externe.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) est utilisé pour LRS/DIS effectuer l'authentification et l'autorisation du flux de travail de gestion des sorties. Pour plus d'informations, voir *Authentification et autorisation de sortie d'impression* dans la section [Informations supplémentaires](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

## Outils
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-tools"></a>

**Services AWS**
+ [AWS Directory Service pour Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) permet à vos charges de travail sensibles aux annuaires et à vos ressources AWS d'utiliser Microsoft Active Directory dans le cloud AWS.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fournit des volumes de stockage au niveau des blocs à utiliser avec les instances Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) répartit le trafic applicatif ou réseau entrant sur plusieurs cibles. Par exemple, vous pouvez répartir le trafic entre les EC2 instances Amazon, les conteneurs et les adresses IP dans une ou plusieurs zones de disponibilité. Ce modèle utilise un Network Load Balancer.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) fournit des systèmes de fichiers qui prennent en charge les protocoles de connectivité standard du secteur et offrent une disponibilité et une réplication élevées dans les régions AWS. Ce modèle utilise le serveur de fichiers Amazon FSx pour Windows.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le cloud AWS.

**Autres outils**
+ Le logiciel [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) fournit une solution évolutive de gestion du contenu des documents et des rapports qui aide les utilisateurs à tirer le meilleur parti des informations grâce à des fonctionnalités automatisées d'indexation, de chiffrement et de recherche avancée.
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), développé conjointement par LRS et Rocket Software, capture le résultat d'une bobine JES de Rocket Software et le transmet de manière fiable à une destination d'impression spécifiée.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queuepour collecter ou capturer des données d'impression via l'interface de programmation JES Print Exit de Rocket Software.
+ Le serveur d'intégration d'annuaire LRS (LRS/DIS) est utilisé pour l'authentification et l'autorisation pendant le flux de travail d'impression.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) est un environnement de déploiement d'applications pour les applications mainframe. Il fournit l'environnement d'exécution pour les applications mainframe migrées ou créées à l'aide de n'importe quelle version de Rocket Enterprise Developer.

## Épopées
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Configuration de l'environnement d'exécution Rocket et déploiement d'une application batch pour mainframe
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le runtime et déployez une application de démonstration. | Pour configurer Rocket Enterprise Server sur Amazon EC2 et déployer l'application de BankDemo démonstration du logiciel Rocket, suivez les instructions du guide de l'[utilisateur](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html) d'AWS Mainframe Modernization.L' BankDemo application est une application batch sur ordinateur central qui crée puis lance une sortie d'impression. | Architecte du cloud | 

### Configurer un serveur d'impression LRS sur Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une instance Amazon EC2 Windows. | Pour lancer une instance Amazon EC2 Windows, suivez les instructions de la section [Lancer une EC2 instance Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) dans la EC2 documentation Amazon. Utilisez le même nom d'hôte que celui que vous avez utilisé pour votre licence de produit LRS.Votre instance doit répondre aux exigences matérielles et logicielles suivantes pour LRS VPSX/MFI :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Les exigences matérielles et logicielles ci-dessus sont destinées à un petit parc d'imprimantes (environ 500 à 1 000). Pour connaître toutes les exigences, consultez vos contacts LRS et AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Installez LRS VPSX/MFI sur l' EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Installez LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Installez LRS/DIS. | Le LRS/DIS produit est souvent inclus dans l'installation de LRS VPSX. Toutefois, s'il LRS/DIS n'a pas été installé avec LRS VPSX, procédez comme suit pour l'installer :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créer un groupe cible. | Créez un groupe cible en suivant les instructions de la section [Créer un groupe cible pour votre Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Lorsque vous créez le groupe cible, enregistrez l' VPSX/MFI EC2 instance LRS en tant que cible :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créez un Network Load Balancer. | Pour créer le Network Load Balancer, suivez les instructions de la documentation d'[Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html). Votre Network Load Balancer achemine le trafic de Rocket Enterprise Server vers l'instance VPSX/MFI EC2 LRS.Lorsque vous créez le Network Load Balancer, choisissez les valeurs suivantes sur la page **Listeners and** Routing :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 

### Intégrez le serveur Rocket Enterprise à un LRS LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le serveur Rocket Enterprise pour LRS/Queue l'intégration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Configurez le serveur Rocket Enterprise pour l' VPSX/MFI intégration du LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 

### Configurer la file d'attente d'impression et les utilisateurs de l'impression
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Associez le module Rocket Software Print Exit au processus d'exécution du serveur d'impression par lots Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créez une file d'attente de sortie d'impression dans LRS VPSX/MFI et intégrez-la à PageCenter LRS X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créez un utilisateur d'impression dans LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 

### Configuration d'un serveur LRS PageCenter X sur Amazon EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une instance Amazon EC2 Windows. | Lancez une instance Amazon EC2 Windows en suivant les instructions de l'[étape 1 : Lancer une instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) dans la EC2 documentation Amazon. Utilisez le même nom d'hôte que celui que vous avez utilisé pour votre licence de produit LRS.Votre instance doit répondre aux exigences matérielles et logicielles suivantes pour LRS PageCenter X :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Les exigences matérielles et logicielles ci-dessus sont destinées à un petit parc d'imprimantes (environ 500 à 1 000). Pour connaître toutes les exigences, consultez vos contacts LRS et AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Installez LRS PageCenter X sur l' EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Installez LRS/DIS. | Le LRS/DIS produit est souvent inclus dans l'installation de LRS VPSX. Toutefois, s'il LRS/DIS n'a pas été installé avec LRS VPSX, procédez comme suit pour l'installer :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créer un groupe cible. | Créez un groupe cible en suivant les instructions de la section [Créer un groupe cible pour votre Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Lorsque vous créez le groupe cible, enregistrez l' EC2 instance LRS PageCenter X en tant que cible :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créez un Network Load Balancer. | Pour créer le Network Load Balancer, suivez les instructions de la documentation d'[Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html). Votre Network Load Balancer achemine le trafic du LRS VPSX/MFI vers l'instance PageCenter LRS X. EC2 Lorsque vous créez le Network Load Balancer, choisissez les valeurs suivantes sur la page **Listeners and** Routing :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 

### Configuration des fonctionnalités de gestion des sorties dans LRS X PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Activez la fonction d'importation dans LRS X. PageCenter | Vous pouvez utiliser la fonction LRS PageCenter X Import pour reconnaître les sorties arrivant sur LRS PageCenter X selon des critères tels que le nom du Job ou le Form ID. Vous pouvez ensuite acheminer les sorties vers des dossiers spécifiques dans LRS X. PageCenterPour activer la fonction d'importation, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Configurez la politique de conservation des documents. | LRS PageCenter X utilise une politique de conservation des documents pour décider de la durée de conservation d'un document dans PageCenter LRS X.Pour configurer la politique de conservation des documents, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créez une règle pour acheminer le document de sortie vers un dossier spécifique dans LRS X. PageCenter | Dans LRS PageCenter X, **Destination** détermine le chemin du dossier où la sortie sera envoyée lorsque cette destination est invoquée par **Report Definition**. Pour cet exemple, créez un dossier basé sur le dossier **Form ID** dans la définition du rapport et enregistrez la sortie dans ce dossier.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créez une définition de rapport. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 

### Configurer l'authentification et l'autorisation pour la gestion des sorties
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un domaine Microsoft AD géré par AWS avec des utilisateurs et des groupes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Joignez les EC2 instances à un domaine Microsoft AD géré par AWS. | Associez les EC2 instances LRS VPSX/MFI et LRS PageCenter X à [votre domaine Microsoft AD géré par AWS automatiquement](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentation du centre de connaissances AWS) ou [manuellement](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentation AWS Directory Service). | Architecte du cloud | 
| Configurez et intégrez LRS/DIS avec AWS Managed Microsoft AD pour l' EC2 instance LRS PageCenter X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Configurer un groupe d'importation pour importer la sortie de LRS VPSX vers LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Ajoutez une règle de sécurité au groupe d'importation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Créez un utilisateur dans LRS PageCenter X pour effectuer l'importation des sorties depuis LRS VPSX/MFI.  | Lorsque vous créez un utilisateur dans LRS PageCenter X pour effectuer une importation de sortie, le nom d'utilisateur doit être le même que l'**ID VPSX** de la file d'attente de sortie d'impression dans LRS VPSX/MFI. Dans cet exemple, l'identifiant VPSX est. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Ajoutez l'utilisateur LRS PageCenter X Import au groupe Import uniquement. | Pour fournir les autorisations nécessaires à l'importation de documents de LRS VPSX vers LRS PageCenter X, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 
| Configurez LRS/DIS avec AWS Managed Microsoft AD pour l' VPSX/MFI EC2 instance LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 

### Configurer le serveur de fichiers Amazon FSx pour Windows en tant que magasin de données opérationnelles pour LRS X PageCenter
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un système de fichiers pour LRS X. PageCenter | Pour utiliser le serveur de fichiers Amazon FSx pour Windows comme magasin de données opérationnel pour LRS PageCenter X dans un environnement multi-AZ, suivez les instructions de l'[étape 1 : Création de votre système de fichiers](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Architecte du cloud | 
| Mappez le partage de fichiers à l' EC2 instance LRS PageCenter X. | Pour mapper le partage de fichiers créé à l'étape précédente à l' EC2 instance LRS PageCenter X, suivez les instructions de l'[étape 2 : mapper votre partage de fichiers à une EC2 instance exécutant Windows Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Architecte du cloud | 
| Mappez le répertoire de contrôle LRS PageCenter X et le répertoire des dossiers principaux sur le lecteur de partage FSx réseau Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architecte du cloud | 

### Tester un flux de travail de gestion des sorties
<a name="test-an-output-management-workflow"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancez une demande d'impression par lots depuis l' BankDemo application Rocket Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Ingénieur de test | 
| Vérifiez la sortie d'impression dans LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Ingénieur de test | 

## Ressources connexes
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-resources"></a>
+ [LRS](https://www.lrsoutputmanagement.com/products/modernization-products)
+ [Flux de données de présentation des fonctions avancées](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentation IBM)
+ [Flux de données conditionné par ligne (LCDS)](https://www.compart.com/en/lcds) (documentation Compart)
+ [Optimisation des charges de travail du mainframe d'entreprise sur AWS avec Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (article de blog)
+ [Modernisez les charges de travail d'impression en ligne de votre mainframe sur AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Guidance)
+ [Modernisez les charges de travail d'impression par lots de votre mainframe sur AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Guidance)

## Informations supplémentaires
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Considérations**

Au cours de votre processus de modernisation, vous pouvez envisager une grande variété de configurations pour les processus par lots et en ligne du mainframe et les résultats qu'ils génèrent. La plate-forme centrale a été personnalisée par chaque client et fournisseur qui l'utilise avec des exigences particulières qui ont une incidence directe sur l'impression. Par exemple, votre plateforme actuelle peut intégrer le flux de données IBM AFP ou Xerox LCDS dans le flux de travail actuel. En outre, les [caractères de commande du chariot central](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) et les [mots de commande des canaux](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) peuvent affecter l'apparence de la page imprimée et nécessiter un traitement spécial. Dans le cadre du processus de planification de la modernisation, nous vous recommandons d'évaluer et de comprendre les configurations de votre environnement d'impression spécifique.  

**Capture de données d'impression**

Rocket Software Print Exit transmet les informations nécessaires au LRS VPSX/MFI pour traiter efficacement le fichier spool. Les informations se composent de champs transmis dans les blocs de contrôle appropriés, tels que les suivants :
+ NOM DU POSTE
+ PROPRIÉTAIRE (IDENTIFIANT UTILISATEUR)
+ DESTINATION
+ FORMULAIRE
+ NOM DE FICHIER
+ ÉCRIVAIN

LRS VPSX/MFI prend en charge les mécanismes de traitement par lots du mainframe suivants pour capturer des données depuis Rocket Enterprise Server :
+ Traitement COBOL BATCH à l'aide print/spool des instructions z/OS JCL DD/OUTPUT SYSOUT standard.
+  print/spool Traitement COBOL PAR LOTS à l'aide des instructions z/OS JCL CA-SPOOL SUBSYS DD standard.
+ IMS/COBOL print/spooltraitement à l'aide de l'interface CBLTDLI. Pour obtenir la liste complète des méthodes prises en charge et des exemples de programmation, consultez la documentation LRS incluse dans la licence de votre produit.

**Contrôles de santé du parc d'imprimantes**

Le LRS VPSX/MFI (LRS LoadX) peut effectuer des vérifications approfondies de l'état de santé, y compris la gestion des appareils et l'optimisation opérationnelle. La gestion des périphériques permet de détecter les défaillances d'une imprimante et d'acheminer la demande d'impression vers une imprimante saine. Pour plus d'informations sur les contrôles de santé approfondis des parcs d'imprimantes, consultez la documentation LRS incluse dans la licence de votre produit.

**Authentification et autorisation d'impression**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or a Lightweight Directory Access Protocol (LDAP) server. In addition to basic print authorization, LRS/DISpeut également appliquer des contrôles de sécurité d'impression de niveau granulaire dans les cas d'utilisation suivants :
+ Gérez les personnes autorisées à parcourir la tâche d'impression.
+ Gérez le niveau de navigation des jobs des autres utilisateurs.
+ Gérez les tâches opérationnelles, par exemple la sécurité au niveau de la commande, telle que le blocage ou le relâchement, la purge, la modification, la copie et le réacheminement. La sécurité peut être configurée par l'ID utilisateur ou par le groupe, comme dans le cas d'un groupe de sécurité Active Directory ou d'un groupe LDAP.

## Pièces jointes
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernisez les charges de travail d'impression par lots du mainframe à l'aide de AWS Rocket Enterprise Server et de LRS VPSX/MFI
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy et Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray et Shoup Inc*

## Résumé
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Ce modèle vous montre comment moderniser les charges de travail d'impression par lots critiques de votre mainframe sur le cloud Amazon Web Services (AWS) en utilisant Rocket Enterprise Server comme environnement d'exécution pour une application mainframe modernisée et LRS VPSX/MFI (Micro Focus Interface) comme serveur d'impression. Le modèle est basé sur l'approche de modernisation du mainframe [replateforme](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Dans cette approche, vous migrez les tâches par lots de votre mainframe vers Amazon Elastic Compute Cloud (Amazon EC2) et vous migrez votre base de données mainframe (telle qu'IBM DB2 pourz/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS) qui est intégrée à AWS Managed Microsoft AD. En modernisant vos charges de travail d'impression par lots, vous pouvez réduire les coûts d'infrastructure informatique, atténuer la dette technique liée à la maintenance des systèmes existants, supprimer les silos de données, accroître l'agilité et l'efficacité grâce à un DevOps modèle et tirer parti des ressources à la demande et de l'automatisation dans le cloud AWS.

## Conditions préalables et limitations
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Une charge de travail d'impression ou de gestion des sorties sur ordinateur central
+ Connaissances de base sur la façon de reconstruire et de fournir une application mainframe qui s'exécute sur Rocket Enterprise Server (pour plus d'informations, consultez la fiche technique [du serveur Rocket Enterprise](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) dans la documentation Rocket.)
+ Connaissances de base des solutions et [concepts d'impression cloud LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/)
+ Logiciel et licence Rocket Enterprise Server (Pour plus d'informations, contactez le [service commercial de Rocket](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact).)
+ VPSX/MFI, LRS/Queue, and LRS/DISLogiciels et licences LRS (Pour plus d'informations, contactez le [service commercial LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**Note**  
Pour plus d'informations sur les considérations relatives à la configuration des charges de travail d'impression par lots du mainframe, consultez la section *Considérations* de la section [Informations supplémentaires](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de ce modèle.

**Versions du produit**
+ [Rocket Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 6.0 (mise à jour du produit 7)
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) ou supérieur

## Architecture
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pile technologique source**
+ Système d'exploitation — IBM z/OS
+ Langage de programmation — Langage orienté métier commun (COBOL), langage de contrôle des tâches (JCL) et système de contrôle des informations clients (CICS)
+ Base de données — IBM DB2 pour z/OS et méthode d'accès au stockage virtuel (VSAM)
+ Sécurité : Resource Access Control Facility (RACF), CA Top Secret pour z/OS et Access Control Facility 2 () ACF2
+ Gestion de l'impression et de la sortie : produits z/OS d'impression mainframe IBM (IBM Tivoli Output Manager pour z/OS, LRS et CA View)

**Pile technologique cible**
+ Système d'exploitation — Microsoft Windows Server exécuté sur Amazon EC2
+ Calcul — Amazon EC2
+ Langage de programmation : COBOL, JCL et CICS
+ Base de données — Amazon RDS
+ Sécurité — Microsoft AD géré par AWS
+ Gestion de l'impression et de la sortie : solution d'impression LRS sur AWS
+ Environnement d'exécution mainframe — Rocket Enterprise Server

**Architecture source**

Le schéma suivant montre une architecture d'état actuelle typique pour une charge de travail d'impression par lots sur un mainframe :

![\[De l'utilisateur au service mainframe, Db2 pour z/OS, planificateur de tâches, traitement par lots et sortie en six étapes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


Le schéma suivant illustre le flux de travail suivant :

1. Les utilisateurs effectuent des transactions commerciales sur un système d'engagement (SoE) basé sur une application IBM CICS écrite en COBOL.

1. Le SoE invoque le service mainframe, qui enregistre les données des transactions commerciales dans une base de données system-of-records (SoR) telle qu'IBM DB2 for z/OS.

1. Le SoR conserve les données commerciales du SoE.

1. Le planificateur de tâches par lots lance une tâche par lots pour générer une sortie d'impression.

1. Le traitement par lots extrait les données de la base de données, les met en forme en fonction des besoins commerciaux, puis génère des résultats commerciaux tels que des relevés de facturation, des cartes d'identité ou des relevés de prêt. Enfin, le traitement par lots achemine la sortie vers la gestion des sorties d'impression pour le traitement et la livraison des sorties, en fonction des exigences commerciales. 

1. La gestion des sorties d'impression reçoit les résultats d'impression du traitement par lots, puis les transmet à une destination spécifiée, telle qu'un e-mail, un partage de fichiers utilisant un protocole FTP sécurisé, une imprimante physique utilisant des solutions d'impression LRS (comme illustré dans ce modèle) ou IBM Tivoli.

**Architecture cible**

Le schéma suivant montre l'architecture d'une charge de travail d'impression par lots sur mainframe déployée dans le cloud AWS :

![\[Application par lots sur AWS avec planificateur, serveur Rocket Enterprise et base de données en quatre étapes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


Le schéma suivant illustre le flux de travail suivant :

1. Le planificateur de tâches par lots lance une tâche par lots pour créer des sorties d'impression, telles que des relevés de facturation, des cartes d'identité ou des relevés de prêt.

1. Le traitement par lots du mainframe ([replatformé sur Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilise le runtime Rocket Enterprise Server pour extraire les données de la base de données de l'application, appliquer une logique métier aux données, les formater, puis les envoyer vers une destination d'impression à l'aide de [Rocket Software Print Exit (documentation](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) Micro Focus).

1. La base de données de l'application (un SoR qui s'exécute sur Amazon RDS) conserve les données pour l'impression.

1. La solution VPSX/MFI d'impression LRS est déployée sur Amazon EC2 et ses données opérationnelles sont stockées dans Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI utilise l'agent de TCP/IP-based LRS/Queue transmission pour collecter les données d'impression via l'API JES Print Exit de Rocket Software et les transmettre à une destination d'imprimante spécifiée.

**Note**  
La solution cible ne nécessite généralement pas de modifications de l'application pour s'adapter aux langages de formatage du mainframe, tels qu'IBM Advanced Function Presentation (AFP) ou Xerox Line Condition Data Stream (LCDS). Pour plus d'informations sur l'utilisation de Rocket Software pour la migration et la modernisation des applications mainframe sur AWS, consultez le billet de [blog Empowering Enterprise Mainframe Workloads on AWS with Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**Architecture de l'infrastructure AWS**

Le schéma suivant montre une architecture d'infrastructure AWS hautement disponible et sécurisée pour une charge de travail d'impression par lots sur mainframe :

![\[Déploiement multi-AZ sur AWS avec le logiciel Rocket et les composants LRS en sept étapes.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


Le schéma suivant illustre le flux de travail suivant :

1. Le planificateur de lots lance le processus de traitement par lots et est déployé sur Amazon EC2 dans plusieurs [zones de disponibilité](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) pour une haute disponibilité (HA). 
**Note**  
Ce modèle ne couvre pas la mise en œuvre du planificateur de lots. Pour plus d'informations sur la mise en œuvre, consultez la documentation du fournisseur de logiciels pour votre planificateur.

1. Le traitement par lots du mainframe (écrit dans un langage de programmation tel que JCL ou COBOL) utilise la logique métier de base pour traiter et générer des documents imprimés, tels que des relevés de facturation, des cartes d'identité et des relevés de prêt. La tâche est déployée sur Amazon EC2 dans deux zones de disponibilité pour HA et utilise Rocket Software Print Exit pour acheminer les résultats d'impression vers LRS VPSX/MFI pour l'impression par l'utilisateur final.

1. Le LRS VPSX/MFI utilise une TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Rocket Software JES Print Exit programming interface. Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the spool file and dynamically build LRS/Queue commande. Les commandes sont ensuite exécutées à l'aide d'une fonction intégrée standard de Rocket Software. 
**Note**  
Pour plus d'informations sur les données d'impression transmises par Rocket Software Print Exit vers LRS/Queue les mécanismes de traitement par lots sur ordinateur central VPSX/MFI pris en charge par LRS, consultez la section *Capture des données d'impression* dans la section [Informations supplémentaires](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de ce modèle.

1. 
**Note**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fournit un nom DNS pour intégrer Rocket Enterprise Server au LRS VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI et achemine le trafic vers les cibles enregistrées qui sont saines.

1. 
**Note**  
Le serveur VPSX/MFI d'impression LRS est déployé EC2 sur Amazon dans deux zones de disponibilité pour HA et utilise [Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) comme magasin de données opérationnelles. Le LRS VPSX/MFI prend en charge les modes de service actif-actif et actif-passif. Cette architecture utilise plusieurs éléments d'une paire actif-passif AZs en tant que veille active et en veille prolongée. Le Network Load Balancer effectue une vérification de l'état des VPSX/MFI EC2 instances LRS et achemine le trafic vers des instances en veille active dans l'autre AZ si une instance active est en mauvais état. Les demandes d'impression sont conservées dans la file d'attente des tâches LRS localement dans chacune des EC2 instances. En cas de restauration, une instance défaillante doit être redémarrée pour que les services LRS reprennent le traitement de la demande d'impression. : LRS VPSX/MFI peut également effectuer des contrôles de santé au niveau du parc d'imprimantes. Pour plus d'informations, consultez la section *Contrôles de santé du parc d'imprimantes* dans la section [Informations supplémentaires](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de ce modèle.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) s'intègre LRS/DIS pour effectuer l'authentification et l'autorisation du flux de travail d'impression. Pour plus d'informations, voir *Authentification et autorisation d'impression* dans la section [Informations supplémentaires](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de ce modèle.

1. LRS VPSX/MFI utilise Amazon EBS pour le stockage par blocs. Vous pouvez sauvegarder les données Amazon EBS des EC2 instances actives sur Amazon S3 sous forme de point-in-time snapshots et les restaurer sur des volumes EBS en veille. [Pour automatiser la création, la conservation et la suppression des instantanés de volume Amazon EBS, vous pouvez utiliser [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) pour définir la fréquence des instantanés automatisés et les restaurer en fonction de vos exigences RTO/RPO.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Outils
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Services AWS**
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html)) fournit des volumes de stockage au niveau des blocs à utiliser avec les instances. EC2 Les volumes EBS se comportent comme des périphériques de stockage en mode bloc bruts non formatés. Vous pouvez monter ces volumes en tant qu’appareils sur vos instances.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez utiliser Amazon EC2 pour lancer autant ou aussi peu de serveurs virtuels que vous le souhaitez, et vous pouvez les étendre ou les intégrer.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) est un service Web qui facilite la configuration, l'exploitation et le dimensionnement d'une base de données relationnelle dans le cloud AWS. Il fournit une capacité redimensionnable et rentable pour une base de données relationnelle et gère les tâches d'administration de base de données courantes.
+ [AWS Directory Service pour Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), également connu sous le nom d'AWS Managed Microsoft AD, permet à vos charges de travail sensibles aux annuaires et à vos ressources AWS d'utiliser Microsoft Active Directory dans le cloud AWS.

**Autres outils**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), co-développé par LRS et Rocket Software, capture le résultat d'une bobine JES de Rocket Enterprise Server et le transmet de manière fiable à une destination d'impression spécifiée.
+ Le serveur LRS Directory Information Server (LRS/DIS) est utilisé pour l'authentification et l'autorisation pendant le flux de travail d'impression.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIpour collecter ou capturer des données d'impression via l'interface de programmation JES Print Exit de Rocket Software.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) est un environnement de déploiement d'applications pour les applications mainframe. Il fournit l'environnement d'exécution pour les applications mainframe migrées ou créées à l'aide de n'importe quelle version de Rocket Software Enterprise Developer.

## Épopées
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configuration du serveur Rocket Enterprise sur Amazon EC2 et déploiement d'une application batch pour mainframe
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Rocket Enterprise Server et déployez une application de démonstration. | Configurez Rocket Enterprise Server sur Amazon EC2, puis déployez l'application de BankDemo démonstration Rocket Software sur Amazon EC2.L' BankDemo application est une application batch sur ordinateur central qui crée puis lance une sortie d'impression. | Architecte du cloud | 

### Configurer un serveur d'impression LRS sur Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Obtenez une licence de produit LRS pour l'impression. | Pour obtenir une licence de produit LRS pour LRSVPSX/MFI, LRS/Queue, and LRS/DIS, contactez l'équipe de gestion des [sorties LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Vous devez fournir les noms d'hôte des EC2 instances sur lesquelles les produits LRS seront installés. | Gagnez du plomb | 
| Créez une instance Amazon EC2 Windows pour installer LRS VPSX/MFI. | Lancez une instance Amazon EC2 Windows en suivant les instructions de la [section Lancer une EC2 instance Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) dans la EC2 documentation Amazon. Votre instance doit répondre aux exigences matérielles et logicielles suivantes pour LRS VPSX/MFI :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Les exigences matérielles et logicielles ci-dessus sont destinées à un petit parc d'imprimantes (environ 500 à 1 000). Pour connaître toutes les exigences, consultez vos contacts LRS et AWS.Lorsque vous créez votre instance Windows, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Installez LRS VPSX/MFI sur l' EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Installez LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Installez LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Créez un groupe cible et enregistrez LRS VPSX/MFI EC2 comme cible. | Créez un groupe cible en suivant les instructions de la section [Create a target group for your Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) dans la documentation d'Elastic Load Balancing.Lorsque vous créez le groupe cible, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Créez un Network Load Balancer. | Suivez les instructions de [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) dans la documentation d'Elastic Load Balancing. Votre Network Load Balancer achemine le trafic de Rocket Enterprise Server vers LRS. VPSX/MFI EC2Lorsque vous créez le Network Load Balancer, procédez comme suit sur la page **Listeners and** Routing :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Intégrez le serveur Rocket Enterprise à LRS VPSX/MFI et LRS/Queue
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le serveur Rocket Enterprise pour LRS/Queue l'intégration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)LRS prend actuellement en charge une limite maximale de 50 caractères pour les noms DNS, mais cette limite est susceptible de changer à l'avenir. Si votre nom DNS est supérieur à 50, vous pouvez utiliser l'adresse IP du Network Load Balancer comme alternative. | Architecte du cloud | 
| Configurez le serveur Rocket Enterprise pour l' VPSX/MFI intégration du LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Configuration des imprimantes et des utilisateurs d'impression dans Rocket Enterprise Server et LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Associez le module Rocket Software Print Exit au processus d'exécution du serveur d'impression par lots Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Pour plus d'informations sur la configuration, consultez la section [Utilisation de la sortie](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) dans la documentation de Micro Focus. | Architecte du cloud | 
| Ajoutez une imprimante dans LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Créez un utilisateur d'impression dans LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Configuration de l'authentification et de l'autorisation d'impression
<a name="set-up-print-authentication-and-authorization"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un domaine Microsoft AD géré par AWS avec des utilisateurs et des groupes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Associez LRS VPSX/MFI EC2 à un domaine Microsoft AD géré par AWS. | Associez LRS VPSX/MFI EC2 à votre domaine Microsoft AD géré par AWS [automatiquement](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (documentation du centre de connaissances AWS) ou [manuellement](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (documentation AWS Directory Service). | Architecte du cloud | 
| Configurez et intégrez LRS/DIS avec AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Tester un flux de travail d'impression
<a name="test-a-print-workflow"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancez une demande d'impression par lots depuis l' BankDemo application Rocket Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Ingénieur de test | 
| Vérifiez la sortie d'impression dans LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Vous pouvez maintenant voir la sortie imprimée d'un relevé de compte avec des colonnes pour le **numéro de compte.** , **Description**, **date**, **montant** et **solde**. Pour un exemple, consultez la pièce jointe **batch\$1print\$1output** pour ce modèle. | Ingénieur de test | 

## Ressources connexes
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernisation des sorties LRS](https://www.lrsoutputmanagement.com/) (documentation LRS)
+ [Commandes ANSI et du chariot de machines](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentation IBM)
+ [Mots de commande des canaux](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) (documentation IBM)
+ [Optimisation des charges de travail du mainframe d'entreprise sur AWS avec Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (blog du réseau de partenaires AWS)
+ [Créez un PAC de serveur Micro Focus Enterprise avec Amazon EC2 Auto Scaling et Systems Manager (documentation](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) AWS Prescriptive Guidance)
+ [Flux de données de présentation des fonctions avancées (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentation IBM)
+ [Flux de données conditionné par ligne (LCDS)](https://www.compart.com/en/lcds) (documentation Compart)

## Informations supplémentaires
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considérations**

Au cours de votre processus de modernisation, vous pouvez envisager une grande variété de configurations pour les processus par lots du mainframe et les résultats qu'ils génèrent. La plate-forme centrale a été personnalisée par chaque client et fournisseur qui l'utilise avec des exigences particulières qui ont une incidence directe sur l'impression. Par exemple, votre plateforme actuelle peut intégrer l'IBM Advanced Function Presentation (AFP) ou le Xerox Line Condition Data Stream (LCDS) dans le flux de travail actuel. En outre, les [caractères de commande du chariot central](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) et les [mots de commande des canaux](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) peuvent affecter l'apparence de la page imprimée et nécessiter un traitement spécial. Dans le cadre du processus de planification de la modernisation, nous vous recommandons d'évaluer et de comprendre les configurations de votre environnement d'impression spécifique.

**Capture de données d'impression**

Rocket Software Print Exit transmet les informations nécessaires pour permettre à LRS VPSX/MFI de traiter efficacement le fichier spool. Les informations se composent de champs transmis dans les blocs de contrôle appropriés, tels que :
+ NOM DU POSTE
+ PROPRIÉTAIRE (IDENTIFIANT UTILISATEUR)
+ DESTINATION
+ FORMULAIRE
+ NOM DE FICHIER
+ ÉCRIVAIN

LRS VPSX/MFI prend en charge les mécanismes de traitement par lots du mainframe suivants pour capturer des données depuis Rocket Enterprise Server.
+ Traitement COBOL PAR LOTS à l'aide print/spool des instructions z/OS JCL SYSOUT standard DD/OUTPUT 
+ Traitement COBOL PAR LOTS à l'aide print/spool des instructions z/OS JCL CA-SPOOL SUBSYS DD standard
+ IMS/COBOL print/spooltraitement à l'aide de l'interface CBLTDLI (pour une liste complète des méthodes prises en charge et des exemples de programmation, consultez la documentation LRS incluse dans la licence de votre produit.)

**Contrôles de santé du parc d'imprimantes**

Le LRS VPSX/MFI (LRS LoadX) peut effectuer des contrôles approfondis de l'état de santé, y compris la gestion des appareils et l'optimisation opérationnelle. La gestion des périphériques permet de détecter les défaillances d'une imprimante et d'acheminer la demande d'impression vers une imprimante saine. Pour plus d'informations sur les contrôles approfondis de l'état des flottes d'imprimantes, consultez la documentation LRS incluse dans la licence de votre produit.

**Authentification et autorisation d'impression**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DISpeut également appliquer des contrôles de sécurité d'impression de niveau granulaire dans les cas d'utilisation suivants :
+ Gérez les personnes autorisées à parcourir la tâche d'impression.
+ Gérez le niveau de navigation des jobs des autres utilisateurs.
+ Gérez les tâches opérationnelles. Par exemple, la sécurité au niveau de la commande, telle que la maintenance/libération, la purge, la modification, la copie et le reroutage. La sécurité peut être configurée par l'ID utilisateur ou par le groupe (similaire au groupe AD ou au groupe LDAP). ****

## Pièces jointes
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Modernisation du mainframe : DevOps activée AWS avec Rocket Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Résumé
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Défis pour les clients**

Organisations qui exécutent des applications de base sur du matériel mainframe rencontrent généralement quelques difficultés lorsque le matériel doit évoluer pour répondre aux exigences des innovations numériques. Ces défis incluent les contraintes suivantes. 
+ Les environnements de développement et de test du mainframe ne peuvent pas évoluer en raison de la rigidité des composants matériels du mainframe et du coût élevé des modifications.
+ Le développement d'ordinateurs centraux fait face à des pénuries de compétences, car les nouveaux développeurs ne sont pas habitués aux outils de développement de mainframe traditionnels et ne s'y intéressent pas. Les technologies modernes telles que les conteneurs, les pipelines integration/continuous de livraison continue (CI/CD) et les frameworks de test modernes ne sont pas disponibles pour le développement de mainframes.

**Résultats du modèle**

Pour relever ces défis, Amazon Web Services (AWS) et Rocket Software Micro Focus, un partenaire AWS Partner Network (APN), ont collaboré pour créer ce modèle. La solution est conçue pour vous aider à atteindre les résultats suivants.
+ Amélioration de la productivité des développeurs. Les développeurs peuvent recevoir de nouvelles instances de développement de mainframe en quelques minutes.
+ Utilisation du AWS Cloud pour créer de nouveaux environnements de test de mainframe avec une capacité pratiquement illimitée.
+ Provisionnement rapide de la nouvelle infrastructure mainframe. CI/CD Le provisionnement AWS peut être effectué en une heure à l'aide de AWS CloudFormation et AWS Systems Manager.
+ Utilisation native d' AWS DevOps outils pour le développement de mainframes, notamment, AWS CodeBuild, AWS CodeCommit AWS CodePipeline AWS CodeDeploy, et Amazon Elastic Container Registry (Amazon ECR).
+ Transformez le développement en cascade traditionnel en développement agile dans les projets mainframe.

**Résumé des technologies**

Dans ce modèle, la pile cible contient les composants suivants.


| 
| 
| Composants logiques | Solutions de mise en œuvre | Description | 
| --- |--- |--- |
| Référentiels de code source |  AccuRev Serveur logiciel Rocket CodeCommit, Amazon ECR  | Gestion du code source : la solution utilise deux types de code source : Code source du mainframe, par exemple COBOL et JCL. AWS modèles d'infrastructure et scripts d'automatisation Les deux types de code source nécessitent un contrôle de version, mais ils sont gérés différemment SCMs. Le code source déployé sur le mainframe ou les serveurs Rocket Software Enterprise est géré dans Rocket Software Micro Focus AccuRev Server. AWS les modèles et les scripts d'automatisation sont gérés dans CodeCommit. Amazon ECR est utilisé pour les référentiels d'images Docker.  | 
| Instances de développeurs d'entreprise | Amazon Elastic Compute Cloud (Amazon EC2), développeur Rocket Software Enterprise pour Eclipse | Les développeurs de mainframe peuvent développer du code sur Amazon en EC2 utilisant Rocket Software Enterprise Developer for Eclipse. Ainsi, il n'est plus nécessaire de recourir au matériel du mainframe pour écrire et tester le code.  | 
| Gestion des licences de Rocket Software Enterprise Suite | License Manager de Rocket Software Enterprise Suite | Pour une gestion et une gouvernance centralisées des licences Rocket Software Enterprise Suite, la solution utilise Rocket Software Enterprise Suite License Manager pour héberger la licence requise. | 
| Canalisations CI/CD | CodePipeline, CodeBuild, CodeDeploy, Rocket Software Enterprise Developer dans un conteneur, Rocket Software Enterprise Test Server dans un conteneur, Rocket Software Micro Focus Enterprise Server | Les équipes de développement de mainframe ont besoin de CI/CD pipelines pour effectuer la compilation du code, les tests d'intégration et les tests de régression. Dans AWS CodePipeline et CodeBuild peut fonctionner avec Rocket Software Enterprise Developer et Enterprise Test Server dans un conteneur de manière native. | 

## Conditions préalables et limitations
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Conditions préalables**


| 
| 
| Nom | Description | 
| --- |--- |
| py3270 | py3270 est une interface Python pour x3270, un émulateur de terminal IBM 3270. Il fournit une API à un sous-processus x3270 ou s3270. | 
| x3270 | x3270 est un émulateur de terminal IBM 3270 pour le système X Window et Windows.  Cela peut être utilisé par le développeur pour des tests unitaires en local. | 
| Bibliothèque Robot-Framework-Mainframe-3270 | Mainframe3270 est une bibliothèque pour Robot Framework basée sur le projet py3270. | 
| Logiciel Rocket Verastream | Rocket Software Verastream est une plateforme d'intégration qui permet de tester les actifs du mainframe de la même manière que les applications mobiles, les applications Web et les services Web SOA. | 
| Programme d'installation et licence de Rocket Software Unified Functional Testing (UFT) | Rocket Software Unified Functional Testing est un logiciel qui fournit une automatisation des tests fonctionnels et de régression pour les applications et les environnements logiciels. | 
| Programme d'installation et licence de Rocket Software Enterprise Server | Enterprise Server fournit l'environnement d'exécution pour les applications mainframe. | 
| Programme d'installation et licence du serveur de test Rocket Software Enterprise | Le serveur de test Rocket Software Enterprise est un environnement de test d'applications mainframe IBM. | 
| Programme d' AccuRev installation et licence de Rocket Software pour le serveur, et programme d' AccuRev installation et licence Rocket Software Micro Focus pour les systèmes d'exploitation Windows et Linux  | AccuRev fournit la gestion du code source (SCM). Le AccuRev système est conçu pour être utilisé par une équipe de personnes qui développent un ensemble de fichiers. | 
| Rocket Software Enterprise Developer pour le programme d'installation, le correctif et la licence d'Eclipse | Enterprise Developer fournit aux développeurs de mainframe une plate-forme leur permettant de développer et de gérer les principales applications en ligne et par lots du mainframe. | 

**Limites**
+ La création d'une image Windows Docker n'est pas prise en charge dans CodeBuild. Ce [problème signalé](https://github.com/docker-library/docker/issues/49) nécessite l'assistance des équipes Windows Kernel/HCS et Docker. La solution consiste à créer un runbook de génération d'images Docker à l'aide de Systems Manager. Ce modèle utilise la solution de contournement pour créer des images de conteneur Rocket Software Enterprise Developer for Eclipse et Rocket Software Micro Focus Enterprise Test Server Container. 
+ La connectivité au cloud privé virtuel (VPC) depuis n' CodeBuild est pas encore prise en charge sous Windows. Le modèle n'utilise donc pas Rocket Software License Manager pour gérer les licences dans les conteneurs OpenText Rocket Software Enterprise Developer et Rocket Software Enterprise Test Server.

**Versions du produit**
+ Rocket Software Enterprise Developer 5.5 ou version ultérieure
+ Rocket Software Enterprise Test Server 5.5 ou version ultérieure
+ Rocket Software Enterprise Server 5.5 ou version ultérieure
+ Rocket Software AccuRev 7.x ou version ultérieure
+ **Image de base Windows Docker pour Rocket Software Enterprise Developer et Enterprise Test Server : microsoft/dotnet-framework-4.7.2-runtime**
+ **Image de base de Linux Docker pour le AccuRev client : amazonlinux:2**

## Architecture
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Environnement mainframe**

Dans le cadre du développement d'un mainframe classique, les développeurs doivent utiliser le matériel du mainframe pour développer et tester des programmes. Ils sont confrontés à des limites de capacité, par exemple à un million d'instructions par seconde (MIPS) limité pour l' dev/test environnement, et ils doivent s'appuyer sur les outils disponibles sur les ordinateurs centraux.

Dans de nombreuses organisations, le développement des mainframes suit la méthodologie de développement en cascade, les équipes s'appuyant sur de longs cycles pour publier les modifications. Ces cycles de lancement sont généralement plus longs que ceux du développement de produits numériques.   

Le schéma suivant montre plusieurs projets de mainframe partageant du matériel mainframe pour leur développement. Dans le domaine du matériel mainframe, il est coûteux d'étendre un environnement de développement et de test à un plus grand nombre de projets.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*Architecture AWS*****

Ce modèle étend le développement du mainframe au AWS Cloud. Tout d'abord, il utilise AccuRev SCM pour héberger le code source du mainframe. AWS Il met ensuite le développeur d'entreprise et le serveur de test d'entreprise à disposition pour créer et tester le code du mainframe. AWS 

Les sections suivantes décrivent les trois principaux composants du modèle.

**1. SCM**

Dans AWS, le modèle est utilisé AccuRev pour créer un ensemble d'espaces de travail SCM et de contrôle de version pour le code source du mainframe. Son architecture basée sur les flux permet le développement parallèle de mainframes pour plusieurs équipes. Pour fusionner une modification, utilisez AccuRev le concept de promotion. Pour ajouter cette modification à d'autres espaces de travail, AccuRev utilise le concept de mise à jour.

Au niveau du projet, chaque équipe peut créer un ou plusieurs flux AccuRev pour suivre les changements au niveau du projet. C'est ce que l'on appelle les flux de projets. Ces flux de projet sont hérités du même flux parent. Le flux parent est utilisé pour fusionner les modifications des différents flux de projet.

Chaque flux de projet peut promouvoir le code vers AccuRev, et un déclencheur de publication de promotion est configuré pour lancer le pipeline AWS CI/CD. La génération réussie d'une modification de flux de projet peut être promue vers son flux parent pour d'autres tests de régression.  

En général, le flux parent est appelé flux d'intégration du système. Lorsqu'il y a une promotion d'un flux de projet vers un flux d'intégration du système, un déclencheur de post-promotion lance un autre CI/CD pipeline pour exécuter des tests de régression.

Outre le code mainframe, ce modèle inclut des AWS CloudFormation modèles, des documents Systems Manager Automation et des scripts. Conformément aux infrastructure-as-code meilleures pratiques, leur version est contrôlée dans. CodeCommit 

Si vous devez resynchroniser le code du mainframe avec un environnement mainframe à des fins de déploiement, Rocket Software fournit la solution Enterprise Sync, qui synchronise le code du AccuRev SCM vers le SCM du mainframe.

**2. Environnements de développement et de test**

Dans une grande entreprise, il est difficile de faire évoluer plus d'une centaine, voire plus d'un millier de développeurs mainframe. Pour répondre à cette contrainte, le modèle utilise des instances Amazon EC2 Windows pour le développement. Sur les instances, les outils Enterprise Developer for Eclipse sont installés. Le développeur peut effectuer tous les tests de code du mainframe et le débogage localement sur l'instance. 

AWS Systems Manager Les documents State Manager et Automation sont utilisés pour automatiser le provisionnement des instances de développement. Le délai moyen de création d'une instance de développeur est de 15 minutes. Les logiciels et configurations suivants sont préparés :
+ AccuRev Client Windows pour extraire et valider le code source dans AccuRev
+ Outil Enterprise Developers for Eclipse, pour écrire, tester et déboguer du code mainframe en local
+ Frameworks de test open source Le framework de test de développement piloté par le comportement (BDD) en Python Behave, py3270, et l'émulateur x3270 pour créer des scripts pour tester des applications
+ Un outil de développement Docker permettant de créer l'image Docker du serveur de test d'entreprise et de tester l'application dans le conteneur Docker du serveur de test d'entreprise 

Au cours du cycle de développement, les développeurs utilisent l' EC2 instance pour développer et tester le code du mainframe localement. Lorsque les modifications locales sont testées avec succès, les développeurs les promeuvent sur le AccuRev serveur.  

**3. CI/CD canalisations**

Dans le modèle, les CI/CD pipelines sont utilisés pour les tests d'intégration et les tests de régression avant le déploiement dans l'environnement de production. 

Comme expliqué dans la section SCM, AccuRev utilise deux types de flux : un flux de projet et un flux d'intégration. Chaque cours d'eau est relié à des CI/CD pipelines. Pour effectuer l'intégration entre le AccuRev serveur et AWS CodePipeline, le modèle utilise un script de AccuRev post-promotion pour créer un événement permettant de lancer le CI/CD.

Par exemple, lorsqu'un développeur promeut une modification d'un flux de projet dans AccuRev, il lance un script de post-promotion à exécuter dans AccuRev Server. Le script télécharge ensuite les métadonnées de la modification dans un compartiment Amazon Simple Storage Service (Amazon S3) afin de créer un événement Amazon S3. Cet événement lancera l'exécution d'un pipeline CodePipeline configuré. 

Le même mécanisme de déclenchement d'événements est utilisé pour le flux d'intégration et ses pipelines associés. 

Dans le CI/CD pipeline, CodePipeline utilise CodeBuild le conteneur client AccuRev Linux pour extraire le code le plus récent des AccuRev flux. Ensuite, le pipeline commence CodeBuild à utiliser le conteneur Windows Enterprise Developer pour compiler le code source et à utiliser le conteneur Windows Enterprise Test Server CodeBuild pour tester les applications mainframe.

Les CI/CD pipelines sont construits à l'aide de CloudFormation modèles, et le plan directeur sera utilisé pour de nouveaux projets. En utilisant les modèles, il faut moins d'une heure à un projet pour créer un nouveau CI/CD pipeline AWS.

Pour étendre les capacités de test de votre mainframe AWS, le modèle intègre la suite de DevOps tests Rocket Software, Verastream et le serveur UFT. En utilisant les DevOps outils modernes, vous pouvez exécuter autant de tests AWS que vous le souhaitez.

Un exemple d'environnement de développement mainframe avec Rocket Software activé AWS est illustré dans le schéma suivant.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Pile technologique cible*

Cette section examine de plus près l'architecture de chaque composant du modèle.

**1. Référentiel de code source — AccuRev SCM**

AccuRev SCM est configuré pour gérer les versions du code source du mainframe. Pour une haute disponibilité, AccuRev prend en charge les modes principal et réplica. Les opérateurs peuvent basculer vers la réplique lorsqu'ils effectuent des opérations de maintenance sur le nœud principal. 

Pour accélérer la réponse du CI/CD pipeline, le modèle utilise Amazon CloudWatch Events pour détecter les modifications du code source et lancer le lancement du pipeline.

1. Le pipeline est configuré pour utiliser une source Amazon S3.

1. Une règle d' CloudWatch événements est configurée pour capturer les événements S3 à partir d'un compartiment S3 source.

1. La règle CloudWatch Events définit une cible pour le pipeline.

1. AccuRev SCM est configuré pour exécuter un script de post-promotion localement une fois la promotion terminée.

1. AccuRev SCM génère un fichier XML qui contient les métadonnées de la promotion, et le script télécharge le fichier XML dans le compartiment S3 source.

1. Après le téléchargement, le compartiment S3 source envoie des événements conformes à la règle CloudWatch Events, et la règle CloudWatch Events lance l'exécution du pipeline. 

Lorsque le pipeline s'exécute, il lance un CodeBuild projet visant à utiliser un conteneur client AccuRev Linux pour extraire le dernier code du mainframe à partir d'un flux associé AccuRev .   

Le schéma suivant montre une configuration AccuRev de serveur.

![\[AWS Cloud diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Modèle de développeur d'entreprise** 

Le modèle utilise des EC2 modèles Amazon pour simplifier la création de l'instance de développeur. En utilisant State Manager, il peut appliquer les paramètres logiciels et de licence aux EC2 instances de manière cohérente.

Le EC2 modèle Amazon intègre ses paramètres de contexte VPC et ses paramètres d'instance par défaut, et il répond aux exigences de balisage de l'entreprise. À l'aide d'un modèle, une équipe peut créer ses propres nouvelles instances de développement. 

Lorsqu'une instance de développeur démarre, en l'associant à des balises, Systems Manager utilise State Manager pour appliquer l'automatisation. L'automatisation comprend les étapes générales suivantes.

1. Installez le logiciel Enterprise Developer et installez les correctifs.

1. Installez le AccuRev client pour Windows.

1. Installez le script préconfiguré permettant aux développeurs de rejoindre le AccuRev stream. Initialisez les espaces de travail Eclipse.

1. Installez des outils de développement, notamment x3270, py3270 et Docker.

1. Configurez les paramètres de licence pour qu'ils pointent vers un équilibreur de charge License Manager.

Le schéma suivant montre une instance de développeur d'entreprise créée par le EC2 modèle Amazon, avec le logiciel et la configuration appliqués à l'instance par State Manager. Les instances de développeurs d'entreprise se connectent AWS License Manager pour activer leur licence.

![\[AWS Cloud diagram showing Enterprise Developer Instance setup with License Manager and Systems Manager components.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  Canalisations CI/CD**

Comme expliqué dans la section sur l' AWS architecture, dans le modèle, il existe des CI/CD pipelines au niveau du projet et des pipelines d'intégration du système. Chaque équipe de projet mainframe crée un pipeline ou plusieurs CI/CD pipelines pour créer les programmes qu'elle développe dans le cadre d'un projet. Ces CI/CD pipelines de projets extraient le code source d'un AccuRev flux associé. 

Au sein d'une équipe de projet, les développeurs font la promotion de leur code dans le AccuRev flux associé. La promotion lance ensuite le pipeline du projet pour créer le code et exécuter des tests d'intégration. 

Chaque CI/CD pipeline de CodeBuild projets utilise des projets dotés de l'outil Enterprise Developer Amazon ECR image et de l'outil Enterprise Test Server Amazon ECR image. 

CodePipeline et CodeBuild sont utilisés pour créer les CI/CD pipelines. Parce que CodeBuild , sans frais ni engagements initiaux, vous ne payez que pour ce que vous utilisez. CodePipeline Par rapport au matériel mainframe, la AWS solution réduit considérablement les délais de mise en service du matériel et réduit le coût de votre environnement de test.

Dans le développement moderne, plusieurs méthodologies de test sont utilisées. Par exemple, le développement piloté par les tests (TDD), le BDD et le Robot Framework. Grâce à ce modèle, les développeurs peuvent utiliser ces outils modernes pour les tests de mainframe. Par exemple, en utilisant x3270, py3270 et l'outil de test Behave python, vous pouvez définir le comportement d'une application en ligne. Vous pouvez également utiliser le framework robot build mainframe 3270 dans ces CI/CD pipelines.

Le schéma suivant montre le CI/CD pipeline des flux d'équipe. 

![\[AWS Cloud CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


Le schéma suivant montre le rapport de CI/CD test du projet produit par CodePipeline Mainframe3270 Robot Framework.

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


Le schéma suivant montre le rapport de CI/CD test du projet produit par CodePipeline in Py3270 et Behave BDD.

![\[Test report summary showing 100% pass rate for 2 test cases in a pipeline.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Une fois les tests réussis au niveau du projet, le code testé est manuellement promu dans le flux d'intégration dans AccuRev SCM. Vous pouvez automatiser cette étape une fois que les équipes auront confiance dans la couverture des tests de leur pipeline de projets.

Lorsque le code est promu, le CI/CD pipeline d'intégration du système extrait le code fusionné et effectue des tests de régression. Le code fusionné est promu à partir de tous les flux de projets parallèles.

En fonction de la finesse requise pour l'environnement de test, les clients peuvent disposer d'un plus grand nombre de CI/CD pipelines d'intégration de systèmes dans un environnement différent, par exemple UAT ou pré-production. 

Dans le modèle, les outils utilisés dans le pipeline d'intégration du système sont Enterprise Test Server, UFT Server et Verastream. Tous ces outils peuvent être déployés dans le conteneur Docker et utilisés avec CodeBuild.

Après avoir testé avec succès les programmes du mainframe, l'artefact est stocké, avec contrôle de version, dans un compartiment S3. 

Le schéma suivant montre un CI/CD pipeline d'intégration du système.

![\[CI/CD pipeline showing Services AWS and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Une fois que l'artefact a été testé avec succès dans les CI/CD pipelines d'intégration du système, il peut être promu pour un déploiement en production. 

Si vous devez redéployer le code source sur le mainframe, Rocket Software propose la solution Enterprise Sync pour synchroniser le code source depuis Mainframe AccuRev Endeavour.

Le schéma suivant montre un CI/CD pipeline de production déployant l'artefact sur des serveurs d'entreprise. Dans cet exemple, CodeDeploy orchestre le déploiement de l'artefact mainframe testé dans Enterprise Server.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Outre la présentation détaillée de l'architecture du CI/CD pipeline, consultez le billet de AWS DevOps blog [Automatisez des milliers de tests de mainframe AWS avec la suite Micro Focus Enterprise](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) pour plus d'informations sur le test d'applications mainframe dans et. CodeBuild CodePipeline (Micro Focus s'appelle désormais Rocket Software.) Consultez le billet de blog pour connaître les meilleures pratiques et les détails relatifs à la réalisation de tests sur mainframe sur AWS.

## Outils
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS outils d'automatisation**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Événements Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)

**Outils Rocket Software**
+ [Développeur Rocket Enterprise pour Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Serveur de test Rocket Enterprise](https://www.microfocus.com/documentation/enterprise-developer/ed60/ETS-help/GUID-ECA56693-D9FE-4590-8798-133257BFEBE7.html)
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/es_60/) (déploiement en production)
+ [Logiciel Rocket AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [License Manager de Rocket Software Enterprise Suite](https://www.microfocus.com/documentation/slm/)
+ [Intégrateur hôte Verastream de Rocket Software](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Logiciel Rocket UFT One](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Autres outils**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Bibliothèque Robot-Framework-Mainframe-3270](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Épopées
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Création de l' AccuRev infrastructure SCM
<a name="create-the-accurev-scm-infrastructure"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez un serveur AccuRev SCM principal à l'aide CloudFormation de. |  | AWS CloudFormation | 
| Créez l'utilisateur AccuRev administrateur. | Connectez-vous au serveur AccuRev SCM et exécutez la commande CLI pour créer un utilisateur administrateur. | AccuRev Administrateur du serveur SCM | 
| Créez des AccuRev streams. | Créez des AccuRev flux qui héritent des flux supérieurs dans l'ordre : production, intégration du système, flux d'équipe. | AccuRev Administrateur SCM | 
| Créez les comptes de AccuRev connexion des développeurs. | Utilisez les commandes de la CLI AccuRev SCM pour créer des comptes de connexion AccuRev utilisateur pour les développeurs de mainframe. | AccuRev Administrateur SCM | 

### Créez le modèle de EC2 lancement Amazon pour les développeurs d'entreprise
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez le modèle de EC2 lancement Amazon en utilisant CloudFormation. |  CloudFormation À utiliser pour déployer un modèle de EC2 lancement Amazon pour les instances Enterprise Developer. Le modèle inclut un document Systems Manager Automation pour l'instance Rocket Enterprise Developer. | AWS CloudFormation | 
| Créez l'instance Enterprise Developer à partir du EC2 modèle Amazon. |  | Connexion à la console AWS et compétences de développeur de mainframe | 

### Création de l'image Docker de l'outil Enterprise Developer
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'image Docker de l'outil Enterprise Developer. | Utilisez la commande Docker et l'outil de développement d'entreprise Dockerfile pour créer l'image Docker. | Docker | 
| Créez le référentiel Docker dans Amazon ECR. | Sur la console Amazon ECR, créez le référentiel pour l'image Docker du développeur d'entreprise. | Amazon ECR | 
| Transférez l'image Docker de l'outil Enterprise Developer sur Amazon ECR. | Exécutez la commande Docker push pour envoyer l'image Docker de l'outil Enterprise Developer afin de l'enregistrer dans le référentiel Docker d'Amazon ECR. | Docker | 

### Création de l'image Docker du serveur de test d'entreprise
<a name="create-the-enterprise-test-server-docker-image"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'image Docker du serveur de test Enterprise. | Utilisez la commande Docker et le fichier Dockerfile du serveur de test d'entreprise pour créer l'image Docker. | Docker | 
| Créez le référentiel Docker dans Amazon ECR. | Sur la console Amazon ECR, créez le référentiel Amazon ECR pour l'image Docker du serveur de test d'entreprise. | Amazon ECR | 
| Transférez l'image Docker du serveur de test d'entreprise vers Amazon ECR. | Exécutez la commande Docker push pour envoyer et enregistrer l'image Docker du serveur de test d'entreprise dans Amazon ECR. | Docker | 

### Création du CI/CD pipeline de flux d'équipe
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le CodeCommit référentiel. | Sur la CodeCommit console, créez un référentiel Git pour l'infrastructure et le CloudFormation code. | AWS CodeCommit | 
| Téléchargez le CloudFormation modèle et le code d'automatisation dans le CodeCommit référentiel. | Exécutez la commande Git push pour télécharger le CloudFormation modèle et le code d'automatisation dans le référentiel. | Git | 
| Déployez le CI/CD pipeline de flux d'équipe en utilisant CloudFormation. | Utilisez le CloudFormation modèle préparé pour déployer un CI/CD pipeline de flux d'équipe. | AWS CloudFormation | 

### Création du CI/CD pipeline d'intégration du système
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'image UFT Docker. | Utilisez la commande Docker et le Dockerfile UFT pour créer l'image Docker. | Docker | 
| Créez le référentiel Docker dans Amazon ECR pour l'image UFT. | Sur la console Amazon ECR, créez le référentiel Docker pour l'image UFT. | Amazon ECR | 
| Transférez l'image UFT Docker vers Amazon ECR. | Exécutez la commande Docker push pour envoyer et enregistrer l'image Docker du serveur de test d'entreprise dans Amazon ECR. | Docker | 
| Créez l'image Docker de Verastream. | Utilisez la commande Docker et le Dockerfile Verastream pour créer l'image Docker. | Docker | 
| Créez le référentiel Docker dans Amazon ECR pour l'image Verastream. | Sur la console Amazon ECR, créez le référentiel Docker pour l'image Verastream. | Amazon ECR | 
| Déployez le CI/CD pipeline d'intégration du système à l'aide de CloudFormation. | Utilisez le CloudFormation modèle préparé pour déployer un CI/CD pipeline d'intégration du système. | AWS CloudFormation | 

### Création d'un CI/CD pipeline de déploiement de production
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez Enterprise Server à l'aide du AWS Quick Start. | Pour déployer un serveur d'entreprise à l'aide de CloudFormation, lancez le serveur d'entreprise sur AWS Quick Start. | AWS CloudFormation | 
| Déployez un CI/CD pipeline de déploiement de production. | Sur la CloudFormation console, utilisez le CloudFormation modèle pour déployer un CI/CD pipeline de déploiement de production. | AWS CloudFormation | 

## Ressources connexes
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Références**
+ [AWS DevOps Blog - Automatisez des milliers de tests de mainframe AWS avec la suite Micro Focus Enterprise](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) (Micro Focus s'appelle désormais Rocket Software).
+ [Dépôt py3270/py3270 GitHub ](https://github.com/py3270/py3270)
+ [Référentiel Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library GitHub ](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [Bienvenue chez Behave \$1](https://behave.readthedocs.io/en/latest/index.html)
+ [Blog des partenaires APN - Tag : Micro Focus](https://aws.amazon.com/blogs/apn/tag/micro-focus/) (Micro Focus s'appelle désormais Rocket Software.)
+ [Lancement d'une instance à partir d'un modèle de lancement](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**AWS Marketplace**
+ [Logiciel Rocket UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Quick Start**
+ [Serveur Rocket Enterprise activé AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernisez les charges de travail d'impression en ligne du mainframe sur AWS à l'aide de Micro Focus Enterprise Server et de LRS VPSX/MFI
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy et Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray et Shoup Inc*

## Résumé
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Ce modèle vous montre comment moderniser les charges de travail d'impression en ligne critiques de votre mainframe sur le cloud Amazon Web Services (AWS) en utilisant Micro Focus Enterprise Server comme environnement d'exécution pour une application mainframe modernisée et LRS VPSX/MFI (Micro Focus Interface) comme serveur d'impression. Le modèle est basé sur l'approche de modernisation du mainframe [replateforme](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Dans le cadre de cette approche, vous migrez l'application en ligne de votre mainframe vers Amazon Elastic Compute Cloud (Amazon EC2) et vous migrez votre base de données mainframe, telle qu'IBM ( DB2 pourz/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS) qui est intégrée à AWS Managed Microsoft AD pour l'authentification et l'autorisation du flux de travail d'impression. En modernisant vos charges de travail d'impression en ligne, vous pouvez réduire les coûts d'infrastructure informatique, atténuer la dette technique liée à la maintenance des systèmes existants, supprimer les silos de données, accroître l'agilité et l'efficacité grâce à un DevOps modèle et tirer parti des ressources à la demande et de l'automatisation dans le cloud AWS.

## Conditions préalables et limitations
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Charge de travail d'impression ou de gestion des sorties en ligne sur ordinateur central
+ Connaissances de base sur la façon de reconstruire et de fournir une application mainframe qui s'exécute sur Micro Focus Enterprise Server (pour plus d'informations, consultez la fiche technique [du serveur Enterprise](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) dans la documentation Micro Focus.)
+ Connaissances de base des solutions et des concepts d'impression cloud LRS (pour plus d'informations, voir [Modernisation des sorties](https://www.lrsoutputmanagement.com/products/modernization-products) dans la documentation LRS.)
+ Logiciel et licence Micro Focus Enterprise Server (pour plus d'informations, contactez le [service commercial Micro Focus](https://www.microfocus.com/en-us/contact/contactme).)
+ VPSX/MFI, LRS/Queue, and LRS/DISLogiciels et licences LRS (Pour plus d'informations, contactez le [service commercial LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**Note**  
Pour plus d'informations sur les considérations relatives à la configuration des charges de travail d'impression en ligne du mainframe, consultez la section *Considérations* de la section *Informations supplémentaires* de ce modèle.

**Versions du produit**
+ [Micro Focus Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 8.0 ou version ultérieure
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/modernization-products/) ou version ultérieure

## Architecture
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pile technologique source**
+ Système d'exploitation — IBM z/OS
+ Langage de programmation — Langage orienté métier commun (COBOL) et système de contrôle des informations clients (CICS) 
+ Base de données — IBM DB2 pour z/OS IBM Information Management System (IMS) et Virtual Storage Access Method (VSAM)
+ Sécurité : Resource Access Control Facility (RACF), CA Top Secret pour z/OS et Access Control Facility 2 () ACF2
+ Gestion de l'impression et de la sortie : produits z/OS d'impression mainframe IBM (IBM Infoprint Server pour z/OS, LRS et CA View)

**Pile technologique cible**
+ Système d'exploitation — Microsoft Windows Server exécuté sur Amazon EC2
+ Informatique — Amazon EC2
+ Langage de programmation — COBOL et CICS
+ Base de données — Amazon RDS
+ Sécurité — Microsoft AD géré par AWS
+ Gestion de l'impression et de la sortie : solution d'impression LRS sur AWS
+ Environnement d'exécution du mainframe — Micro Focus Enterprise Server

**Architecture source**

Le schéma suivant montre une architecture d'état actuelle typique pour une charge de travail d'impression en ligne sur un mainframe.

![\[Processus en six étapes pour produire une sortie visible.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


Le schéma suivant illustre le flux de travail suivant :

1. Les utilisateurs effectuent des transactions commerciales sur un système d'engagement (SoE) basé sur une application IBM CICS écrite en COBOL.

1. Le SoE invoque le service mainframe, qui enregistre les données des transactions commerciales dans une base de données system-of-records (SoR) telle qu'IBM DB2 for z/OS.

1. Le SoR conserve les données commerciales du SoE.

1. Un utilisateur lance une demande pour générer une sortie d'impression à partir du CICS SoE, qui lance une application de transaction d'impression pour traiter la demande d'impression. 

1. L'application de transaction d'impression (telle qu'un programme CICS et COBOL) extrait les données de la base de données, les met en forme en fonction des exigences commerciales et génère des résultats commerciaux (données d'impression) tels que des relevés de facturation, des cartes d'identité ou des relevés de prêt. L'application envoie ensuite une demande d'impression à l'aide de la méthode d'accès aux télécommunications virtuelles (VTAM). Un serveur z/OS d'impression (tel qu'IBM Infoprint Server) utilise un composant VTAM NetSpool ou un composant similaire pour intercepter les demandes d'impression, puis crée des ensembles de données de sortie d'impression sur le spool JES en utilisant les paramètres de sortie JES. Les paramètres de sortie JES spécifient les informations de routage que le serveur d'impression utilise pour transmettre la sortie à une imprimante réseau spécifique. Le terme *VTAM* fait référence au serveur de z/OS communication et à l'élément de services SNA (System Network Architecture) de z/OS.

1. Le composant de transmission de sortie d'impression transmet les ensembles de données d'impression de sortie de la bobine JES à des imprimantes ou à des serveurs d'impression distants, tels que LRS (comme illustré dans ce modèle), IBM Infoprint Server ou des destinations de courrier électronique.

**Architecture cible**

Le schéma suivant montre l'architecture d'une charge de travail d'impression en ligne sur mainframe déployée dans le cloud AWS :

![\[Processus en quatre étapes, du lancement de la demande d'impression au traitement sur AWS, en passant par l'impression LRS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


Le schéma suivant illustre le flux de travail suivant :

1. Un utilisateur lance une demande d'impression depuis une interface utilisateur en ligne (CICS) pour créer des documents imprimés, tels que des relevés de facturation, des cartes d'identité ou des relevés de prêt.

1. L'application en ligne du mainframe ([replatformée sur Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilise le moteur d'exécution Micro Focus Enterprise Server pour extraire les données de la base de données de l'application, appliquer une logique métier aux données, les formater, puis les envoyer vers une destination d'impression à l'aide de [Micro Focus CICS Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (DFHUPRNT). 

1. La base de données de l'application (un SoR qui s'exécute sur Amazon RDS) conserve les données pour l'impression.

1. La solution VPSX/MFI d'impression LRS est déployée sur Amazon EC2 et ses données opérationnelles sont stockées dans Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI utilise un nom de TCP/IP-based LRS/Queue transmission agent to collect print data through the Micro Focus CICS Print Exit API (DFHUPRNT) and deliver the data to a specified printer destination. The original TERMID (TERM) that’s used in the modernized CICS application is used as the VPSX/MFI file d'attente. 

**Note**  
La solution cible ne nécessite généralement pas de modifications de l'application pour s'adapter aux langages de formatage du mainframe, tels qu'IBM Advanced Function Presentation (AFP) ou Xerox Line Condition Data Stream (LCDS). Pour plus d'informations sur l'utilisation de Micro Focus pour la migration et la modernisation des applications mainframe sur AWS, consultez la section [Empowering Enterprise Mainframe Workloads on AWS with Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) dans la documentation AWS.

**Architecture de l'infrastructure AWS**

Le schéma suivant montre une architecture d'infrastructure AWS hautement disponible et sécurisée pour une charge de travail d'impression en ligne sur mainframe :

![\[Deux zones de disponibilité avec le serveur Micro Focus Enterprise activé EC2, Amazon RDS et l'impression LRS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


Le schéma suivant illustre le flux de travail suivant :

1. L'application en ligne pour ordinateur central (écrite dans un langage de programmation tel que CICS ou COBOL) utilise la logique métier de base pour traiter et générer des documents imprimés, tels que des relevés de facturation, des cartes d'identité et des relevés de prêt. L'application en ligne est déployée sur Amazon EC2 dans deux [zones de disponibilité](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (AZ) pour une haute disponibilité (HA) et utilise Micro Focus CICS Print Exit pour acheminer les résultats d'impression vers le LRS VPSX/MFI pour l'impression par l'utilisateur final.

1. Le LRS VPSX/MFI utilise une TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Micro Focus online Print Exit programming interface. Online Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the print file and dynamically build LRS/Queue commande. 
**Note**  
*Pour plus d'informations sur les différentes méthodes de programmation d'applications CICS pour l'impression et sur la manière dont elles sont prises en charge dans le serveur Micro Focus Enterprise et le LRS VPSX/MFI, voir *Capture des données d'impression* dans la section Informations supplémentaires de ce modèle.*

1. 
**Note**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fournit un nom DNS pour intégrer Micro Focus Enterprise Server au LRS VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI et achemine le trafic vers les cibles enregistrées qui sont saines.

1. Le serveur VPSX/MFI d'impression LRS est déployé EC2 sur Amazon dans deux zones de disponibilité pour HA et utilise [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) comme magasin de données opérationnelles. Le LRS VPSX/MFI prend en charge les modes de service actif-actif et actif-passif. Cette architecture utilise plusieurs zones de disponibilité dans une paire active-passive en tant que mode veille active et mode veille. Le Network Load Balancer vérifie l'état des instances LRS et achemine le trafic vers des VPSX/MFI EC2 instances en veille active situées dans une autre zone de disponibilité si une instance active n'est pas fonctionnelle. Les demandes d'impression sont conservées dans la file d'attente des tâches LRS localement dans chacune des EC2 instances. En cas de restauration, une instance défaillante doit être redémarrée pour que les services LRS reprennent le traitement de la demande d'impression. 
**Note**  
LRS VPSX/MFI peut également effectuer des contrôles de santé au niveau du parc d'imprimantes. Pour plus d'informations, consultez la section *Contrôles de santé du parc d'imprimantes* dans la section *Informations supplémentaires* de ce modèle.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) s'intègre LRS/DIS pour effectuer l'authentification et l'autorisation du flux de travail d'impression. Pour plus d'informations, voir *Authentification et autorisation d'impression* dans la section *Informations supplémentaires* de ce modèle.

1. LRS VPSX/MFI utilise Amazon EBS pour le stockage par blocs. Vous pouvez sauvegarder les données Amazon EBS des EC2 instances actives sur Amazon S3 sous forme de point-in-time snapshots et les restaurer sur des volumes EBS en veille. [Pour automatiser la création, la conservation et la suppression des instantanés de volumes Amazon EBS, vous pouvez utiliser [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) pour définir la fréquence des instantanés automatisés et les restaurer en fonction de vos exigences RTO/RPO.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Outils
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Services AWS**
+ [Amazon Elastic Block Store (Amazon EBS) fournit des volumes de stockage au niveau des blocs à utiliser avec les instances Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html). EC2 Les volumes EBS se comportent comme des périphériques de stockage en mode bloc bruts non formatés. Vous pouvez monter ces volumes en tant qu’appareils sur vos instances.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le cloud AWS.
+ [AWS Directory Service pour Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), également connu sous le nom d'AWS Managed Microsoft Active Directory, permet à vos charges de travail sensibles aux annuaires et à vos ressources AWS d'utiliser Active Directory géré dans AWS.

**Autres outils**
+ L'interface [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), développée conjointement par LRS et Micro Focus, capture le résultat d'une bobine JES du serveur Micro Focus Enterprise et le transmet de manière fiable à une destination d'impression spécifiée.
+ Le serveur LRS Directory Information Server (LRS/DIS) est utilisé pour l'authentification et l'autorisation pendant le flux de travail d'impression.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, pour collecter ou capturer des données d'impression via l'interface de programmation en ligne Print Exit de Micro Focus.
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) est un environnement de déploiement d'applications pour les applications mainframe. Il fournit l'environnement d'exécution pour les applications mainframe migrées ou créées à l'aide de n'importe quelle version de Micro Focus Enterprise Developer.

## Épopées
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configuration de Micro Focus Enterprise Server sur Amazon EC2 et déploiement d'une application en ligne pour mainframe
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Micro Focus Enterprise Server et déployez une application de démonstration en ligne. | Configurez Micro Focus Enterprise Server sur Amazon EC2, puis déployez l'application Micro Focus Account Demo (ACCT Demo) sur Amazon EC2 en suivant les instructions du [didacticiel : Support CICS](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) figurant dans la documentation Micro Focus.L'application ACCT Demo est une application en ligne pour ordinateur central (CICS) qui crée puis lance une sortie d'impression. | Architecte du cloud | 

### Configurer un serveur d'impression LRS sur Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Obtenez une licence de produit LRS pour l'impression. | Pour obtenir une licence de produit LRS pour LRSVPSX/MFI, LRS/Queue, and LRS/DIS, contactez l'équipe de gestion des [sorties LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Vous devez fournir les noms d'hôte des EC2 instances sur lesquelles les produits LRS seront installés. | Gagnez du plomb | 
| Créez une instance Amazon EC2 Windows pour installer LRS VPSX/MFI. | Lancez une instance Amazon EC2 Windows en suivant les instructions de l'[étape 1 : Lancer une instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) dans la EC2 documentation Amazon. Votre instance doit répondre aux exigences matérielles et logicielles suivantes pour LRS VPSX/MFI :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Les exigences matérielles et logicielles ci-dessus sont destinées à un petit parc d'imprimantes (environ 500 à 1 000). Pour connaître toutes les exigences, consultez vos contacts LRS et AWS.Lorsque vous créez votre instance Windows, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Installez LRS VPSX/MFI sur l' EC2 instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Installez LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Installez LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Créez un groupe cible et enregistrez LRS VPSX/MFI EC2 comme cible. | Créez un groupe cible en suivant les instructions de la section [Create a target group for your Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) dans la documentation d'Elastic Load Balancing.Lorsque vous créez le groupe cible, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Créez un Network Load Balancer. | Suivez les instructions de [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) dans la documentation d'Elastic Load Balancing. Votre Network Load Balancer achemine le trafic de Micro Focus Enterprise Server vers LRS. VPSX/MFI EC2Lorsque vous créez le Network Load Balancer, procédez comme suit sur la page **Listeners and** Routing :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Intégrez Micro Focus Enterprise Server à LRS VPSX/MFI et LRS/Queue
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez Micro Focus Enterprise Server pour LRS/Queue l'intégration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Rendez CICS Print Exit (DFHUPRNT) disponible pour l'initialisation de Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Vérifiez que Micro Focus Enterprise Server a détecté CICS Print Exit (DFHUPRNT)**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Définissez l'ID du terminal de l'imprimante CICS (TERMIDs) en tant que Micro Focus Enterprise Server. | **Activer l'impression 3270 dans Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Définissez le terminal de l'imprimante CICS dans Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Configuration des imprimantes et des utilisateurs d'impression dans Micro Focus Enterprise Server et LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une file d'impression dans le LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)La file d'impression doit être équivalente à l'impression TERMIDs créée dans Micro Focus Enterprise Server. | Architecte du cloud | 
| Créez un utilisateur d'impression dans LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Configuration de l'authentification et de l'autorisation d'impression
<a name="set-up-print-authentication-and-authorization"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un domaine Microsoft AD géré par AWS avec des utilisateurs et des groupes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 
| Associez LRS VPSX/MFI EC2 à un domaine Microsoft AD géré par AWS. | Associez LRS VPSX/MFI EC2 à votre domaine Microsoft AD géré par AWS [automatiquement](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentation du centre de connaissances AWS) ou [manuellement](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentation AWS Directory Service). | Architecte du cloud | 
| Configurez et intégrez LRS/DIS avec AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architecte du cloud | 

### Testez un flux d'impression en ligne
<a name="test-an-online-print-workflow"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancez une demande d'impression en ligne à partir de l'application Micro Focus ACCT Demo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Le message « Demande d'impression planifiée » apparaît en bas de l'écran. Cela confirme qu'une demande d'impression en ligne a été générée à partir de l'application ACCT Demo et envoyée au LRS VPS/MFI pour le traitement de l'impression.  | Architecte du cloud | 
| Vérifiez la sortie d'impression dans LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Vous pouvez maintenant voir la sortie imprimée d'un relevé de compte avec des colonnes pour le numéro de compte, le nom de famille, le prénom, l'adresse, le téléphone, le numéro de téléphone. Cartes émises, date d'émission, montant et solde.Pour un exemple, consultez la pièce jointe **online\$1print\$1output** pour ce modèle. | Ingénieur de test | 

## Ressources connexes
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernisation des sorties LRS](https://www.lrsoutputmanagement.com/products/modernization-products) (documentation LRS)
+ [Concepts de réseau VTAM](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts) (documentation IBM)
+ [Résumé des types d'unités logiques (LU)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (documentation IBM)
+ [Commandes ANSI et du chariot de machines](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentation IBM)
+ [Optimisation des charges de travail du mainframe d'entreprise sur AWS avec Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (blog du réseau de partenaires AWS)
+ [Créez un PAC de serveur Micro Focus Enterprise avec Amazon EC2 Auto Scaling et Systems Manager (documentation](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) AWS Prescriptive Guidance)
+ [Flux de données de présentation des fonctions avancées (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentation IBM)
+ [Flux de données conditionné par ligne (LCDS)](https://www.compart.com/en/lcds) (documentation Compart)

## Informations supplémentaires
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considérations**

Au cours de votre processus de modernisation, vous pouvez envisager une grande variété de configurations pour les processus en ligne du mainframe et les résultats qu'ils génèrent. La plate-forme centrale a été personnalisée par chaque client et fournisseur qui l'utilise avec des exigences particulières qui ont une incidence directe sur l'impression. Par exemple, votre plateforme actuelle peut intégrer l'IBM Advanced Function Presentation (AFP) ou le Xerox Line Condition Data Stream (LCDS) dans le flux de travail actuel. En outre, les [caractères de commande du chariot central](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) et les [mots de commande des canaux](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) peuvent affecter l'apparence de la page imprimée et nécessiter un traitement spécial. Dans le cadre du processus de planification de la modernisation, nous vous recommandons d'évaluer et de comprendre les configurations de votre environnement d'impression spécifique.

**Capture de données d'impression**

Cette section résume les méthodes de programmation d'applications CICS que vous pouvez utiliser dans un environnement mainframe IBM pour l'impression. Les VPSX/MFI composants LRS fournissent des techniques permettant aux mêmes programmes d'application de créer des données de la même manière. Le tableau suivant décrit comment chaque méthode de programmation d'application est prise en charge dans une application CICS modernisée exécutée dans AWS et Micro Focus Enterprise Server avec un serveur d'impression LRS VPSX/MFI .


| 
| 
| Method | Description | Support de la méthode dans un environnement modernisé | 
| --- |--- |--- |
| EXEC CICS ENVOIE DU TEXTE.. ou EXEC CICS SEND MAP.  | Ces méthodes CICS et VTAM sont chargées de créer et de fournir des flux de données d'impression 3270/SCS à LUTYPE0 et aux périphériques d'impression. LUTYPE1 LUTYPE3  | Une interface de programme d'application (API) Micro Focus Online Print Exit (DFHUPRNT) permet de traiter les données d'impression VPSX/MFI lorsque les flux de données d'impression 3270/SCS sont créés à l'aide de l'une de ces méthodes.  | 
| EXEC CICS ENVOIE DU TEXTE.. ou EXEC CICS SEND MAP. (avec un logiciel IBM mainframe tiers) | Les méthodes CICS et VTAM sont chargées de créer et de fournir des flux de données d'impression 3270/SCS à LUTYPE0 et aux périphériques d'impression. LUTYPE1 LUTYPE3 Les logiciels tiers interceptent les données d'impression, les convertissent en données au format d'impression standard avec un caractère de ASA/MCH contrôle et placent les données sur la bobine JES pour qu'elles soient traitées par des systèmes d'impression basés sur des ordinateurs centraux utilisant JES.  | Une API Micro Focus Online Print Exit (DFHUPRNT) permet de traiter les données d'impression VPSX/MFI lorsque les flux de données d'impression 3270/SCS sont créés à l'aide de l'une de ces méthodes.  | 
| EXEC CICS SPOOLOPEN  | Cette méthode est utilisée par les programmes d'application CICS pour écrire des données directement dans le spool JES. Les données sont ensuite disponibles pour être traitées par des systèmes d'impression basés sur des ordinateurs centraux qui utilisent JES.  | Micro Focus Enterprise Server envoie les données vers le spool Enterprise Server où elles peuvent être traitées par le VPSX/MFI Batch Print Exit (LRSPRTE6) qui envoie les données vers VPSX.  | 
| DRS/API | Une interface de programmation fournie par LRS est utilisée pour écrire les données d'impression dans JES.  | Le VPSX/MFI fournit une interface de remplacement qui transmet les données d'impression directement au VPSX.  | 

**Contrôles de santé du parc d'imprimantes**

Le LRS VPSX/MFI (LRS LoadX) peut effectuer des vérifications approfondies de l'état de santé, y compris la gestion des appareils et l'optimisation opérationnelle. La gestion des périphériques permet de détecter les défaillances d'une imprimante et d'acheminer la demande d'impression vers une imprimante saine. Pour plus d'informations sur les contrôles approfondis de l'état des flottes d'imprimantes, consultez la documentation LRS incluse dans la licence de votre produit.

**Authentification et autorisation d'impression**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DISpeut également appliquer des contrôles de sécurité d'impression de niveau granulaire dans les cas d'utilisation suivants :
+ Gérez les personnes autorisées à parcourir la tâche d'impression.
+ Gérez le niveau de navigation des jobs des autres utilisateurs.
+ Gérez les tâches opérationnelles. Par exemple, la sécurité au niveau de la commande, telle que la maintenance/libération, la purge, la modification, la copie et le reroutage. La sécurité peut être configurée par l'ID utilisateur ou par le groupe (similaire au groupe AD ou au groupe LDAP).

## Pièces jointes
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Déplacez les fichiers du mainframe directement vers Amazon S3 à l'aide de Transfer Family
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Résumé
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Dans le cadre du processus de modernisation, vous pouvez relever le défi du transfert de fichiers entre vos serveurs sur site et le cloud Amazon Web Services (AWS). Le transfert de données depuis des mainframes peut représenter un défi de taille, car les mainframes ne peuvent généralement pas accéder aux magasins de données modernes tels qu'Amazon Simple Storage Service (Amazon S3), Amazon Elastic Block Store (Amazon EBS) ou Amazon Elastic File System (Amazon EFS).

De nombreux clients utilisent des ressources intermédiaires, telles que des serveurs Linux, Unix ou Windows sur site, pour transférer des fichiers vers le cloud AWS. Vous pouvez éviter cette méthode indirecte en utilisant AWS Transfer Family avec le protocole SFTP (Secure Shell) pour charger les fichiers du mainframe directement sur Amazon S3.

## Conditions préalables et limitations
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Un cloud privé virtuel (VPC) doté d'un sous-réseau accessible par votre ancienne plateforme
+ Un point de terminaison Transfer Family pour votre VPC
+ Fichiers VSAM (Mainframe Virtual Storage Access Method) convertis en fichiers séquentiels de [longueur fixe](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) (documentation IBM)

**Limites**
+ Le SFTP transfère les fichiers en mode binaire par défaut, ce qui signifie que les fichiers sont chargés sur Amazon S3 avec le codage EBCDIC préservé. Si votre fichier ne contient pas de données binaires ou compressées, vous pouvez utiliser la [sous-commande **sftp** ascii](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) (documentation IBM) pour convertir vos fichiers en texte pendant le transfert.
+ Vous devez [déballer les fichiers du mainframe](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b) (AWS Prescriptive Guidance) contenant du contenu compressé et binaire pour pouvoir utiliser ces fichiers dans votre environnement cible.
+ La taille des objets Amazon S3 peut varier d'un minimum de 0 octet à un maximum de 5 To. Pour plus d'informations sur les fonctionnalités d'Amazon S3, consultez [Amazon S3 FAQs](https://aws.amazon.com/s3/faqs/?nc1=h_ls).

## Architecture
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Pile technologique source**
+ Langage de contrôle des tâches (JCL)
+ Shell z/OS Unix et ISPF
+ SFTP
+ VSAM et fichiers plats

**Pile technologique cible**
+ Transfer Family
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)

**Architecture cible**

Le schéma suivant montre une architecture de référence permettant d'utiliser Transfer Family with SFTP pour télécharger des fichiers du mainframe directement dans un compartiment S3.

![\[Utilisation de Transfer Family avec SFTP pour télécharger des fichiers du mainframe directement dans un compartiment S3\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


Le schéma suivant illustre le flux de travail suivant :

1. Vous utilisez une tâche JCL pour transférer les fichiers de votre mainframe de l'ancien mainframe vers le cloud AWS via Direct Connect.

1. Direct Connect permet à votre trafic réseau de rester sur le réseau mondial AWS et de contourner l'Internet public. Direct Connect améliore également la vitesse du réseau, en commençant à 50 Mbits/s et en augmentant jusqu'à 100 Gbit/s.

1. Le point de terminaison VPC permet d'établir des connexions entre les ressources de votre VPC et les services pris en charge sans utiliser l'Internet public. Access to Transfer Family et Amazon S3 assure une haute disponibilité grâce aux interfaces réseau élastiques situées dans deux sous-réseaux privés et des zones de disponibilité.

1. Transfer Family authentifie les utilisateurs et utilise le protocole SFTP pour recevoir vos fichiers depuis l'environnement existant et les déplacer vers un compartiment S3.

**Automatisation et mise à l'échelle**

Une fois le service Transfer Family en place, vous pouvez transférer un nombre illimité de fichiers du mainframe vers Amazon S3 en utilisant une tâche JCL comme client SFTP. Vous pouvez également automatiser le transfert de fichiers en utilisant un planificateur de tâches par lots du mainframe pour exécuter les tâches SFTP lorsque vous êtes prêt à transférer les fichiers du mainframe.

## Outils
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-tools"></a>
+ [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 Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages liés à l'utilisation de l'infrastructure évolutive d'AWS.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) vous permet de dimensionner en toute sécurité vos transferts de business-to-business fichiers récurrents vers Amazon S3 et Amazon EFS en utilisant les protocoles SFTP, FTPS et FTP.

## Épopées
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Création du compartiment S3 et de la politique d'accès
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le compartiment S3. | [Créez un compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) pour héberger les fichiers que vous transférez depuis votre environnement existant. | AWS général | 
| Créez le rôle et la politique IAM. | Transfer Family utilise votre rôle AWS Identity and Access Management (IAM) pour accorder l'accès au compartiment S3 que vous avez créé précédemment.[Créez un rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) qui inclut la politique [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) suivante :<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "UserFolderListing",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<your-bucket-name>"<br />            ]<br />        },<br />        {<br />            "Sid": "HomeDirObjectAccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": "arn:aws:s3:::<your-bucket-name>/*"<br />        }<br />    ]<br />}</pre>Vous devez choisir le cas d'utilisation du transfert lorsque vous créez le rôle IAM. | AWS général | 

### Définissez le service de transfert
<a name="define-the-transfer-service"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le serveur SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Pour plus d'informations sur la configuration d'un serveur SFTP, consultez [Create an SFTP enabled server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) (AWS Transfer Family User Guide). | AWS général | 
| Obtenez l'adresse du serveur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS général | 
| Créez la paire de clés du client SFTP. | Créez une paire de clés SSH pour [Microsoft Windows](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#windows-ssh) ou [macOS/Linux/UNIX](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#macOS-linux-unix-ssh). | AWS, SSH en général | 
| Créez l'utilisateur SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS général | 

### Transférez le fichier du mainframe
<a name="transfer-the-mainframe-file"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Envoyez la clé privée SSH au mainframe. | Utilisez SFTP ou SCP pour envoyer la clé privée SSH à l'environnement existant.Exemple SFTP :<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>Exemple de SCP :<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>Ensuite, stockez la clé SSH dans le système de fichiers z/OS Unix sous le nom d'utilisateur qui exécutera ultérieurement le traitement par lots de transfert de fichiers (par exemple,`/u/CONTROLM`). Pour plus d'informations sur le shell z/OS Unix, voir [Une introduction aux z/OS shells](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) (documentation IBM). | Ordinateur central, shell z/OS Unix, FTP, SCP | 
| Créez le client SFTP JCL. | Les mainframes n'ayant pas de client SFTP natif, vous devez utiliser l'utilitaire BPXBATCH pour exécuter le client SFTP depuis le shell Unix. z/OS Dans l'éditeur ISPF, créez le client SFTP JCL. Par exemple :<pre>//JOBNAM JOB ...<br />//**********************************************************************<br />//SFTP EXEC PGM=BPXBATCH,REGION=0M <br />//STDPARM DD * <br />SH cp "//'MAINFRAME.FILE.NAME'" filename.txt; <br />echo 'put filename.txt' > uplcmd; <br />sftp -b uplcmd -i ssh_private_key_file ssh_username@<transfer service ip or DNS>; <br />//SYSPRINT DD SYSOUT=* <br />//STDOUT DD SYSOUT=* <br />//STDENV DD * <br />//STDERR DD SYSOUT=*</pre>Pour plus d'informations sur l'exécution d'une commande dans le shell z/OS Unix, consultez [l'utilitaire BPXBATCH (documentation](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) IBM). Pour plus d'informations sur la création ou la modification de tâches JCL dans z/OS, consultez [Qu'est-ce que](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) l'ISPF ? et [l'éditeur ISPF](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor) (documentation IBM). | JCL, ordinateur central, shell Unix z/OS  | 
| Exécutez le client SFTP JCL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Pour plus d'informations sur la façon de vérifier l'activité des tâches par lots, consultez le [guide de l'utilisateur z/OS SDSF (documentation](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide) IBM). | Ordinateur central, JCL, ISPF | 
| Validez le transfert de fichiers. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS général | 
| Automatisez le client SFTP JCL. | Utilisez le planificateur de tâches pour déclencher automatiquement le client SFTP JCL.Vous pouvez utiliser des planificateurs de tâches mainframe, tels que [BMC Control-M](https://www.bmcsoftware.pt/it-solutions/control-m.html) ou [CA Workload Automation](https://www.broadcom.com/products/mainframe/workload-automation/ca7), pour automatiser les tâches par lots pour les transferts de fichiers en fonction du temps et d'autres dépendances entre les tâches par lots. | Planificateur de tâches | 

## Ressources connexes
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [Comment fonctionne AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html)

# Optimisez les performances de votre application AWS Blu Age modernisée
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy et Himanshu Sah, Amazon Web Services*

## Résumé
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Les applications mainframe modernisées avec AWS Blu Age nécessitent des tests d'équivalence fonctionnelle et de performance avant d'être déployées en production. Lors des tests de performance, les applications modernisées peuvent fonctionner plus lentement que les systèmes existants, en particulier dans le cadre de tâches par lots complexes. Cette disparité est due au fait que les applications mainframe sont monolithiques, alors que les applications modernes utilisent des architectures multiniveaux. Ce modèle présente des techniques d'optimisation permettant de combler ces écarts de performances pour les applications modernisées à l'aide du [refactoring automatique avec AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) Blu Age.

Le modèle utilise le framework de modernisation AWS Blu Age avec Java natif et des fonctionnalités de réglage des bases de données pour identifier et résoudre les problèmes de performance. Le modèle décrit comment vous pouvez utiliser le profilage et la surveillance pour identifier les problèmes de performances avec des indicateurs tels que les temps d'exécution SQL, l'utilisation de la mémoire et I/O les modèles. Il explique ensuite comment appliquer des optimisations ciblées, notamment la restructuration des requêtes de base de données, la mise en cache et le raffinement de la logique métier.

Les améliorations apportées aux temps de traitement par lots et à l'utilisation des ressources du système vous aident à égaler les niveaux de performance du mainframe dans vos systèmes modernisés. Cette approche permet de maintenir l'équivalence fonctionnelle lors de la transition vers des architectures cloud modernes.

Pour utiliser ce modèle, configurez votre système et identifiez les points critiques de performance en suivant les instructions de la section [Epics](#optimize-performance-aws-blu-age-modernized-application-epics), puis appliquez les techniques d'optimisation décrites en détail dans la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture).

## Conditions préalables et limitations
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Conditions préalables**
+ Une application AWS Blu Age modernisée
+ Une [JProfiler licence](https://www.ej-technologies.com/store/jprofiler)
+ Privilèges administratifs pour installer le client de base de données et les outils de profilage
+ AWS [Certification Blu Age niveau 3](https://bluinsights.aws/certification/)
+ Compréhension de niveau intermédiaire du framework AWS Blu Age, de la structure du code généré et de la programmation Java

**Limites**

Les capacités et fonctionnalités d'optimisation suivantes ne sont pas couvertes par ce modèle :
+ Optimisation de la latence du réseau entre les niveaux d'application
+ Optimisations au niveau de l'infrastructure via les types d'instances Amazon Elastic Compute Cloud ( EC2Amazon) et optimisation du stockage
+ Tests de charge utilisateur et tests de stress simultanés

**Versions du produit**
+ JProfiler version 13.0 ou ultérieure (nous recommandons la dernière version)
+ pgAdmin version 8.14 ou ultérieure

## Architecture
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Ce modèle définit un environnement de profilage pour une application AWS Blu Age à l'aide d'outils tels que JProfiler pgAdmin. Il prend en charge l'optimisation via le DAOManager SQLExecution générateur de APIs données fourni par AWS Blu Age.

Le reste de cette section fournit des informations détaillées et des exemples pour identifier les points critiques de performance et les stratégies d'optimisation pour vos applications modernisées. Les étapes décrites dans la section [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) se réfèrent à ces informations pour obtenir des conseils supplémentaires.

**Identification des points critiques de performance dans les applications mainframe modernisées**

Dans les applications mainframe modernisées, les points critiques de *performance sont des* zones spécifiques du code qui entraînent des ralentissements ou des inefficiences importants. Ces points chauds sont souvent dus aux différences architecturales entre le mainframe et les applications modernisées. Pour identifier ces obstacles aux performances et optimiser les performances de votre application modernisée, vous pouvez utiliser trois techniques : la journalisation SQL, un `EXPLAIN` plan de requête et l'analyse. JProfiler 

*Technique d'identification des hotspots : journalisation SQL*

Les applications Java modernes, y compris celles qui ont été modernisées à l'aide de AWS Blu Age, disposent de fonctionnalités intégrées pour enregistrer les requêtes SQL. Vous pouvez activer des enregistreurs spécifiques dans les projets AWS Blu Age pour suivre et analyser les instructions SQL exécutées par votre application. Cette technique est particulièrement utile pour identifier les modèles d'accès aux bases de données inefficaces, tels que les requêtes individuelles excessives ou les appels de base de données mal structurés, qui pourraient être optimisés par le traitement par lots ou l'affinement des requêtes.

Pour implémenter la journalisation SQL dans votre application AWS Blu Age modernisée, définissez le niveau de journalisation sur celui `DEBUG` des instructions SQL du `application.properties` fichier afin de capturer les détails de l'exécution des requêtes :

```
level.org.springframework.beans.factory.support.DefaultListableBeanFactory : WARN
level.com.netfective.bluage.gapwalk.runtime.sort.internal: WARN
level.org.springframework.jdbc.core.StatementCreatorUtils: DEBUG
level.com.netfective.bluage.gapwalk.rt.blu4iv.dao: DEBUG
level.com.fiserv.signature: DEBUG
level.com.netfective.bluage.gapwalk.database.support.central: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.configuration.DatabaseConfiguration: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.DatabaseInteractionLoggerUtils: DEBUG
level.com.netfective.bluage.gapwalk.database.support.AbstractDatabaseSupport: DEBUG
level.com.netfective.bluage.gapwalk.rt: DEBUG
```

Surveillez les requêtes à haute fréquence et à faible performance en utilisant les données enregistrées pour identifier les cibles d'optimisation. Concentrez-vous sur les requêtes dans le cadre des processus par lots, car ce sont généralement elles qui ont le plus grand impact sur les performances.

*Technique d'identification des hotspots : plan Query EXPLAIN*

Cette méthode utilise les fonctionnalités de planification des requêtes des systèmes de gestion de bases de données relationnelles. Vous pouvez utiliser des commandes telles que `EXPLAIN` PostgreSQL`EXPLAIN PLAN`, MySQL ou Oracle pour examiner comment votre base de données entend exécuter une requête donnée. Le résultat de ces commandes fournit des informations précieuses sur la stratégie d'exécution des requêtes, notamment sur la question de savoir si des index seront utilisés ou si des analyses complètes des tables seront effectuées. Ces informations sont essentielles pour optimiser les performances des requêtes, en particulier dans les cas où une indexation appropriée peut réduire considérablement le temps d'exécution.

Extrayez les requêtes SQL les plus répétitives des journaux de l'application et analysez le chemin d'exécution des requêtes peu performantes à l'aide de la `EXPLAIN` commande spécifique à votre base de données. Voici un exemple de base de données PostgreSQL.

Interrogation :

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

`EXPLAIN`commande :

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Sortie :

```
Bitmap Heap Scan on tenk1 (cost=5.06..224.98 rows=100 width=244) 
Recheck Cond: (unique1 < 100) 
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=100 width=0)
Index Cond: (unique1 < 100)
```

Vous pouvez interpréter le `EXPLAIN` résultat comme suit :
+ Lisez le `EXPLAIN` plan des opérations les plus internes aux opérations les plus externes (de bas en haut).
+ Recherchez les termes clés. Par exemple, `Seq Scan` indique une analyse complète de la table et `Index Scan` indique l'utilisation de l'index.
+ Vérifiez les valeurs des coûts : le premier chiffre est le coût de démarrage et le second le coût total.
+ Consultez la `rows` valeur du nombre estimé de lignes de sortie.

Dans cet exemple, le moteur de requête utilise un scan d'index pour trouver les lignes correspondantes, puis extrait uniquement ces lignes (`Bitmap Heap Scan`). Cela est plus efficace que la numérisation de l'ensemble du tableau, malgré le coût plus élevé de l'accès aux lignes individuelles.

Les opérations de numérisation des tables dans la sortie d'un `EXPLAIN` plan indiquent un index manquant. L'optimisation nécessite la création d'un index approprié.

*Technique d'identification des hotspots : analyse JProfiler *

JProfiler est un outil de profilage Java complet qui vous aide à résoudre les problèmes de performances en identifiant les appels de base de données lents et les appels gourmands en ressources CPU. Cet outil est particulièrement efficace pour identifier les requêtes SQL lentes et l'utilisation inefficace de la mémoire.

Exemple d'analyse pour une requête :

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

La vue JProfiler Hot Spots fournit les informations suivantes :
+ Colonne **horaire**
  + Affiche la durée totale d'exécution (par exemple 329 secondes)
  + Affiche le pourcentage de la durée totale de l'application (par exemple, 58,7 %)
  + Permet d'identifier les opérations les plus chronophages
+ Colonne **Temps moyen**
  + Indique la durée par exécution (par exemple, 2 692 microsecondes)
  + Indique les performances de fonctionnement individuelles
  + Permet de détecter les opérations individuelles lentes
+ Colonne **des événements**
  + Affiche le nombre d'exécutions (par exemple, 122 387 fois)
  + Indique la fréquence de fonctionnement
  + Permet d'identifier les méthodes fréquemment utilisées

Pour les exemples de résultats :
+ Fréquence élevée : 122 387 exécutions indiquent un potentiel d'optimisation
+ Problème de performance : 2 692 microsecondes en moyenne indiquent une inefficacité
+ Impact critique : 58,7 % du temps total indique un goulot d'étranglement majeur

JProfiler peut analyser le comportement d'exécution de votre application afin de révéler les points sensibles qui pourraient ne pas être apparents lors de l'analyse de code statique ou de la journalisation SQL. Ces indicateurs vous aident à identifier les opérations à optimiser et à déterminer la stratégie d'optimisation la plus efficace. Pour plus d'informations sur JProfiler les fonctionnalités, consultez la [JProfiler documentation](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Lorsque vous utilisez ces trois techniques (journalisation SQL, `EXPLAIN` plan de requête et JProfiler) en combinaison, vous pouvez obtenir une vue globale des caractéristiques de performance de votre application. En identifiant et en traitant les points critiques en matière de performances, vous pouvez combler l'écart de performance entre votre application mainframe d'origine et votre système cloud modernisé.

Après avoir identifié les points critiques de performance de votre application, vous pouvez appliquer des stratégies d'optimisation, qui sont expliquées dans la section suivante.

**Stratégies d'optimisation pour la modernisation des ordinateurs centraux**

Cette section décrit les principales stratégies d'optimisation des applications modernisées à partir de systèmes mainframe. Il se concentre sur trois stratégies : utiliser l'existant APIs, mettre en œuvre une mise en cache efficace et optimiser la logique métier.

*Stratégie d'optimisation : utilisation de l'existant APIs*

AWS Blu Age fournit plusieurs interfaces DAO puissantes APIs que vous pouvez utiliser pour optimiser les performances. Deux interfaces principales (DAOManager et SQLExecution Builder) offrent des fonctionnalités permettant d'améliorer les performances des applications.

**DAOManager**

DAOManager sert d'interface principale pour les opérations de base de données dans les applications modernisées. Il propose plusieurs méthodes pour améliorer les opérations de base de données et les performances des applications, en particulier pour les opérations simples de création, de lecture, de mise à jour et de suppression (CRUD) et le traitement par lots.
+ **Utilise SetMaxResults.** Dans l' DAOManager API, vous pouvez utiliser la **SetMaxResults**méthode pour spécifier le nombre maximum d'enregistrements à récupérer en une seule opération de base de données. Par défaut, ne DAOManager récupère que 10 enregistrements à la fois, ce qui peut entraîner plusieurs appels de base de données lors du traitement de grands ensembles de données. Utilisez cette optimisation lorsque votre application doit traiter un grand nombre d'enregistrements et qu'elle effectue actuellement plusieurs appels de base de données pour les récupérer. Cela est particulièrement utile dans les scénarios de traitement par lots dans lesquels vous effectuez une itération dans un ensemble de données volumineux. Dans l'exemple suivant, le code de gauche (avant optimisation) utilise la valeur de récupération de données par défaut de 10 enregistrements. Le code de droite (après optimisation) permet **setMaxResults**de récupérer 100 000 enregistrements à la fois.  
![\[Exemple d'utilisation SetMaxResults pour éviter plusieurs appels de base de données.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**Note**  
Choisissez avec soin des lots plus importants et vérifiez la taille de l'objet, car cette optimisation augmente l'encombrement mémoire.
+ **Remplacez SetOnGreatorOrEqual par SetOnEqual.** Cette optimisation implique de modifier la méthode que vous utilisez pour définir les conditions de récupération des enregistrements. La **SetOnGreatorOrEqual**méthode récupère les enregistrements supérieurs ou égaux à une valeur spécifiée, tandis que **SetOnEqual**seuls les enregistrements correspondant exactement à la valeur spécifiée.

  À utiliser **SetOnEqual**comme illustré dans l'exemple de code suivant, lorsque vous savez que vous avez besoin de correspondances exactes et que vous utilisez actuellement la **SetOnGreatorOrEqual**méthode suivie par **readNextEqual()**. Cette optimisation réduit les récupérations inutiles de données.  
![\[Exemple d'utilisation SetOnEqual pour récupérer des enregistrements en fonction d'une correspondance exacte.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Utilisez les opérations d'écriture et de mise à jour par lots.** Vous pouvez utiliser des opérations par lots pour regrouper plusieurs opérations d'écriture ou de mise à jour dans une seule transaction de base de données. Cela permet de réduire le nombre d'appels de base de données et d'améliorer considérablement les performances des opérations impliquant plusieurs enregistrements.

  Dans l'exemple suivant, le code de gauche exécute des opérations d'écriture en boucle, ce qui ralentit les performances de l'application. Vous pouvez optimiser ce code en utilisant une opération d'écriture par lots : à chaque itération de la `WHILE` boucle, vous ajoutez des enregistrements à un lot jusqu'à ce que la taille du lot atteigne une taille prédéterminée de 100. Vous pouvez ensuite vider le lot lorsqu'il atteint la taille de lot prédéterminée, puis vider les enregistrements restants de la base de données. Cela est particulièrement utile dans les scénarios où vous traitez de grands ensembles de données nécessitant des mises à jour.  
![\[Exemple de regroupement de plusieurs opérations en une seule transaction de base de données.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Ajoutez des index.** L'ajout d'index est une optimisation au niveau de la base de données qui peut améliorer considérablement les performances des requêtes. Un index permet à la base de données de localiser rapidement les lignes contenant une valeur de colonne spécifique sans avoir à parcourir la table dans son intégralité. Utilisez l'indexation sur les colonnes fréquemment utilisées dans les `WHERE` clauses, `JOIN` les conditions ou les `ORDER BY` instructions. Cela est particulièrement important pour les grandes tables ou lorsqu'il est crucial de récupérer rapidement des données.

**SQLExecutionConstructeur**

SQLExecutionBuilder est une API flexible que vous pouvez utiliser pour contrôler les requêtes SQL qui seront exécutées, récupérer certaines colonnes uniquement`SELECT`, en `INSERT` utilisant et utiliser des noms de tables dynamiques. Dans l'exemple suivant, SQLExecutor Builder utilise une requête personnalisée que vous définissez. 

![\[Exemple d'utilisation de SQLExecutor Builder avec une requête personnalisée.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Choisir entre DAOManager et SQLExecution Builder**

Le choix entre ces options APIs dépend de votre cas d'utilisation spécifique :
+  DAOManager À utiliser lorsque vous souhaitez que AWS Blu Age Runtime génère les requêtes SQL au lieu de les écrire vous-même.
+ Choisissez SQLExecution Builder lorsque vous devez écrire des requêtes SQL pour tirer parti des fonctionnalités spécifiques à la base de données ou pour écrire des requêtes SQL optimales.

*Stratégie d'optimisation : mise en cache*

Dans les applications modernisées, la mise en œuvre de stratégies de mise en cache efficaces peut réduire considérablement les appels de base de données et améliorer les temps de réponse. Cela permet de combler l'écart de performance entre les environnements mainframe et cloud.

Dans les applications AWS Blu Age, les implémentations de mise en cache simples utilisent des structures de données internes telles que des cartes de hachage ou des listes de tableaux. Vous n'avez donc pas à configurer une solution de mise en cache externe nécessitant une restructuration des coûts et du code. Cette approche est particulièrement efficace pour les données auxquelles on accède fréquemment mais qui changent rarement. Lorsque vous implémentez la mise en cache, tenez compte des contraintes de mémoire et des modèles de mise à jour pour garantir que les données mises en cache restent cohérentes et offrent des avantages réels en termes de performances.

La clé d'une mise en cache réussie consiste à identifier les bonnes données à mettre en cache. Dans l'exemple suivant, le code de gauche lit toujours les données de la table, tandis que le code de droite lit les données de la table lorsque la carte de hachage locale ne contient aucune valeur pour une clé donnée. `cacheMap`est un objet de carte de hachage créé dans le contexte du programme et effacé dans le cadre de la méthode de nettoyage du contexte du programme.

Mise en cache avec DAOManager :

![\[Exemple d'optimisation de la mise en cache avec. DAOManager\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Mise en cache avec SQLExecution Builder :

![\[Exemple d'optimisation de la mise en cache avec Builder. SQLExecution\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Stratégie d'optimisation : optimisation de la logique métier*

L'optimisation de la logique métier se concentre sur la restructuration du code généré automatiquement par AWS Blu Age afin de mieux l'aligner sur les capacités de l'architecture moderne. Cela devient nécessaire lorsque le code généré conserve la même structure logique que le code mainframe existant, ce qui peut ne pas être optimal pour les systèmes modernes. L'objectif est d'améliorer les performances tout en maintenant l'équivalence fonctionnelle avec l'application d'origine.

Cette approche d'optimisation va au-delà des simples ajustements d'API et des stratégies de mise en cache. Cela implique de modifier la façon dont l'application traite les données et interagit avec la base de données. Les optimisations courantes consistent à éviter les opérations de lecture inutiles pour les mises à jour simples, à supprimer les appels de base de données redondants et à restructurer les modèles d'accès aux données afin de mieux les aligner sur l'architecture des applications modernes. Voici quelques exemples:
+ **Mettre à jour les données directement dans la base de données.**Restructurez votre logique métier en utilisant des mises à jour SQL directes au lieu de plusieurs DAOManager opérations avec des boucles. Par exemple, le code suivant (côté gauche) effectue plusieurs appels de base de données et utilise trop de mémoire. Plus précisément, il utilise plusieurs opérations de lecture et d'écriture de base de données au sein de boucles, des mises à jour individuelles au lieu du traitement par lots et la création d'objets inutiles à chaque itération.

  Le code optimisé suivant (côté droit) utilise une seule opération de mise à jour Direct SQL. Plus précisément, il utilise un seul appel de base de données au lieu de plusieurs appels et ne nécessite pas de boucles car toutes les mises à jour sont traitées dans une seule instruction. Cette optimisation améliore les performances et l'utilisation des ressources, tout en réduisant la complexité. Il empêche l'injection de SQL, améliore la mise en cache du plan de requête et contribue à améliorer la sécurité.  
![\[Restructuration du code en utilisant des mises à jour SQL directes au lieu d' DAOManager opérations avec des boucles.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**Note**  
Utilisez toujours des requêtes paramétrées pour empêcher l'injection de code SQL et garantir une bonne gestion des transactions.
+ **Réduction des appels de base de données redondants.** Les appels de base de données redondants peuvent avoir un impact significatif sur les performances des applications, en particulier lorsqu'ils se produisent dans des boucles. Une technique d'optimisation simple mais efficace consiste à éviter de répéter plusieurs fois la même requête de base de données. La comparaison de code suivante montre comment le fait de déplacer l'appel `retrieve()` de base de données en dehors de la boucle empêche l'exécution redondante de requêtes identiques, ce qui améliore l'efficacité.  
![\[alt text not found\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Réduction des appels de base de données à l'aide de la `JOIN` clause SQL****.** Implémentez SQLExecution Builder pour minimiser les appels à la base de données. SQLExecutionBuilder permet de mieux contrôler la génération de code SQL et est particulièrement utile pour les requêtes complexes qui DAOManager ne peuvent pas être traitées efficacement. Par exemple, le code suivant utilise plusieurs DAOManager appels :

  ```
  List<Employee> employees = daoManager.readAll();
  for(Employee emp : employees) {
      Department dept = deptManager.readById(emp.getDeptId());  // Additional call for each employee
      Project proj = projManager.readById(emp.getProjId());     // Another call for each employee
      processEmployeeData(emp, dept, proj);
  }
  ```

  Le code optimisé utilise un seul appel de base de données dans SQLExecution Builder :

  ```
  SQLExecutionBuilder builder = new SQLExecutionBuilder();
  builder.append("SELECT e.*, d.name as dept_name, p.name as proj_name");
  builder.append("FROM employee e");
  builder.append("JOIN department d ON e.dept_id = d.id");
  builder.append("JOIN project p ON e.proj_id = p.id");
  builder.append("WHERE e.status = ?", "ACTIVE");
  
  List<Map<String, Object>> results = builder.execute();  // Single database call
  for(Map<String, Object> result : results) {
      processComplexData(result);
  }
  ```

*Utilisation conjointe de stratégies d'optimisation*

Ces trois stratégies fonctionnent en synergie : APIs fournir les outils nécessaires à un accès efficace aux données, la mise en cache réduit le besoin de récupération répétée des données et l'optimisation de la logique métier garantit que ces outils APIs sont utilisés de la manière la plus efficace possible. La surveillance et le réglage réguliers de ces optimisations garantissent l'amélioration continue des performances tout en préservant la fiabilité et les fonctionnalités de l'application modernisée. La clé du succès consiste à comprendre quand et comment appliquer chaque stratégie en fonction des caractéristiques et des objectifs de performance de votre application.

## Outils
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)est un outil de profilage Java conçu pour les développeurs et les ingénieurs de performance. Il analyse les applications Java et aide à identifier les problèmes de performance, les fuites de mémoire et les problèmes de thread. JProfiler propose le profilage du processeur, de la mémoire et des threads ainsi que la surveillance des bases de données et des machines virtuelles Java (JVM) afin de fournir des informations sur le comportement des applications.
**Note**  
Au lieu de cela JProfiler, vous pouvez utiliser [Java VisualVM](https://visualvm.github.io/). Il s'agit d'un outil open source gratuit de profilage et de surveillance des performances pour les applications Java qui permet de surveiller en temps réel l'utilisation du processeur, la consommation de mémoire, la gestion des threads et les statistiques de collecte des déchets. Java VisualVM étant un outil JDK intégré, il est plus rentable que JProfiler pour les besoins de profilage de base.
+ [pgAdmin](https://www.pgadmin.org/) est un outil d'administration et de développement open source pour PostgreSQL. Il fournit une interface graphique qui vous permet de créer, de gérer et d'utiliser des objets de base de données. Vous pouvez utiliser pgAdmin pour effectuer un large éventail de tâches, de l'écriture de requêtes SQL simples au développement de bases de données complexes. Ses fonctionnalités incluent un éditeur SQL mettant en évidence la syntaxe, un éditeur de code côté serveur, un agent de planification pour les tâches SQL, shell et batch, et la prise en charge de toutes les fonctionnalités de PostgreSQL pour les utilisateurs novices et expérimentés de PostgreSQL.

## Bonnes pratiques
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Identification des points critiques en matière de performances :
+ Documentez les indicateurs de performance de base avant de commencer les optimisations.
+ Définissez des objectifs clairs d'amélioration des performances en fonction des exigences de l'entreprise.
+ Lors de l'analyse comparative, désactivez la journalisation détaillée, car elle peut affecter les performances.
+ Configurez une suite de tests de performance et exécutez-la régulièrement.
+ Utilisez la dernière version de pgAdmin. (Les anciennes versions ne prennent pas en charge le plan de `EXPLAIN` requête.)
+ Pour l'analyse comparative, détachez-le une JProfiler fois vos optimisations terminées, car cela augmente le temps de latence.
+ Pour l'analyse comparative, veillez à exécuter le serveur en mode démarrage plutôt qu'en mode débogage, car le mode de débogage augmente la latence.

Stratégies d'optimisation :
+ Configurez **SetMaxResults**les valeurs dans le `application.yaml` fichier afin de spécifier des lots de taille appropriée en fonction des spécifications de votre système.
+ Configurez **SetMaxResults**les valeurs en fonction du volume de données et des contraintes de mémoire.
+ Passez **SetOnGreatorOrEqual**à **SetOnEqual**uniquement lorsque les appels suivants le sont`.readNextEqual()`.
+ Dans les opérations d'écriture ou de mise à jour par lots, traitez le dernier lot séparément, car il est peut-être inférieur à la taille de lot configurée et risque de ne pas être pris en compte lors de l'opération d'écriture ou de mise à jour.

Mise en cache :
+ Les champs introduits pour la mise en cache`processImpl`, qui mutent à chaque exécution, doivent toujours être définis dans ce contexte. `processImpl` Les champs doivent également être effacés à l'aide de la `cleanUp()` méthode `doReset()` or.
+ Lorsque vous implémentez la mise en cache en mémoire, dimensionnez correctement le cache. Les très grands caches stockés en mémoire peuvent occuper toutes les ressources, ce qui peut affecter les performances globales de votre application.

SQLExecutionConstructeur :
+ Pour les requêtes que vous prévoyez d'utiliser dans SQLExecution Builder, utilisez des noms de clé tels que`PROGRAMNAME_STATEMENTNUMBER`.
+ Lorsque vous utilisez SQLExecution Builder, vérifiez toujours le `Sqlcod` champ. Ce champ contient une valeur qui indique si la requête a été exécutée correctement ou si elle a rencontré des erreurs.
+ Utilisez des requêtes paramétrées pour empêcher l'injection de code SQL.

Optimisation de la logique métier :
+ Maintenez l'équivalence fonctionnelle lors de la restructuration du code et exécutez des tests de régression et une comparaison de bases de données pour le sous-ensemble de programmes concerné.
+ Conservez les instantanés de profilage à des fins de comparaison.

## Épopées
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Installation JProfiler et pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez et configurez JProfiler. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Développeur d’applications | 
| Installez et configurez pgAdmin. | Au cours de cette étape, vous installez et configurez un client de base de données pour interroger votre base de données. Ce modèle utilise une base de données PostgreSQL et pgAdmin comme client de base de données. Si vous utilisez un autre moteur de base de données, suivez la documentation du client de base de données correspondant.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Développeur d’applications | 

### Identifiez les points chauds
<a name="identify-hotspots"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Activez la journalisation des requêtes SQL dans votre application AWS Blu Age. | Activez les enregistreurs pour la journalisation des requêtes SQL dans le `application.properties` fichier de votre application AWS Blu Age, comme expliqué dans la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture). | Développeur d’applications | 
| Générez et analysez des `EXPLAIN` plans de requêtes pour identifier les points névralgiques des performances des bases de données. | Pour plus de détails, consultez la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture). | Développeur d’applications | 
| Créez un JProfiler instantané pour analyser un scénario de test peu performant. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Développeur d’applications | 
| Analysez l' JProfiler instantané pour identifier les goulots d'étranglement liés aux performances. | Procédez comme suit pour analyser l' JProfiler instantané.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Pour plus d'informations sur l'utilisation JProfiler, consultez la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture) et la [JProfiler documentation](https://www.ej-technologies.com/jprofiler/docs). | Développeur d’applications | 

### Établir une base de référence
<a name="establish-a-baseline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Établissez une référence de performance avant de mettre en œuvre des optimisations. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Développeur d’applications | 

### Appliquer des stratégies d'optimisation
<a name="apply-optimization-strategies"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Optimisez les appels de lecture. | Optimisez la récupération des données à l'aide de DAOManager **SetMaxResults**cette méthode. Pour plus d'informations sur cette approche, consultez la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture). | Développeur d'applications, DAOManager | 
| Refactorisez la logique métier pour éviter de multiples appels à la base de données. | Réduisez les appels de base de données à l'aide d'une `JOIN` clause SQL. Pour plus de détails et des exemples, voir *Optimisation de la logique métier* dans la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture). | Développeur d'applications, SQLExecution constructeur | 
| Refactorisez le code pour utiliser la mise en cache afin de réduire la latence des appels de lecture. | Pour plus d'informations sur cette technique, voir *Mise en cache* dans la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture). | Développeur d’applications | 
| Réécrivez du code inefficace qui utilise plusieurs DAOManager opérations pour des opérations de mise à jour simples. | Pour plus d'informations sur la mise à jour des données directement dans la base de données, voir *Optimisation de la logique métier* dans la section [Architecture](#optimize-performance-aws-blu-age-modernized-application-architecture). | Développeur d’applications | 

### Stratégies d'optimisation des tests
<a name="test-optimization-strategies"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Validez chaque modification d'optimisation de manière itérative tout en maintenant l'équivalence fonctionnelle. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)L'utilisation de mesures de référence comme référence garantit une mesure précise de l'impact de chaque optimisation tout en préservant la fiabilité du système. | Développeur d’applications | 

## Résolution des problèmes
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Lorsque vous exécutez l'application moderne, une exception contenant l'erreur s'affiche`Query_ID not found`. | Pour résoudre ce problème :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Vous avez ajouté des index, mais vous ne constatez aucune amélioration des performances. | Procédez comme suit pour vous assurer que le moteur de requête utilise l'index :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Vous rencontrez une out-of-memory exception. | Vérifiez que le code libère la mémoire contenue dans la structure de données. | 
| Les opérations d'écriture par lots entraînent des enregistrements manquants dans la table | Vérifiez le code pour vous assurer qu'une opération d'écriture supplémentaire est effectuée lorsque le nombre de lots n'est pas nul. | 
| La journalisation SQL n'apparaît pas dans les journaux des applications. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Ressources connexes
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Refactorisation automatique des applications avec AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) (Guide de *AWS Mainframe Modernization l'utilisateur*)
+ [Documentation de pgAdmin](https://www.pgadmin.org/docs/)
+ [JProfiler documentation](https://www.ej-technologies.com/jprofiler/docs)

# Sécurisez et rationalisez l'accès des utilisateurs dans une base de données de fédération DB2 sur AWS en utilisant des contextes fiables
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Résumé
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

De nombreuses entreprises migrent leurs anciennes charges de travail mainframe vers Amazon Web Services (AWS). Cette migration inclut le transfert d'IBM Db2 pour les z/OS bases de données vers Db2 pour Linux, Unix et Windows (LUW) sur Amazon Elastic Compute Cloud (Amazon). EC2 Lors d'une migration progressive d'un environnement sur site vers AWS, les utilisateurs peuvent avoir besoin d'accéder aux données dans IBM Db2 z/OS et dans Db2 LUW sur EC2 Amazon jusqu'à ce que toutes les applications et bases de données soient complètement migrées vers Db2 LUW. Dans de tels scénarios d'accès aux données à distance, l'authentification des utilisateurs peut s'avérer difficile car les différentes plateformes utilisent des mécanismes d'authentification différents.

Ce modèle explique comment configurer un serveur de fédération sur Db2 pour LUW avec Db2 pour une base de données z/OS distante. Le modèle utilise un contexte fiable pour propager l'identité d'un utilisateur de Db2 LUW à Db2 z/OS sans se réauthentifier sur la base de données distante. Pour plus d'informations sur les contextes sécurisés, consultez la section [Informations supplémentaires](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional).

## Conditions préalables et limitations
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Une instance Db2 exécutée sur une instance Amazon EC2 
+ Un Db2 distant pour une z/OS base de données exécutée sur site
+ Le réseau sur site connecté à AWS via le [ Site-to-SiteVPN AWS](https://aws.amazon.com/vpn/) ou [AWS Direct Connect](https://aws.amazon.com/directconnect/)

## Architecture
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Architecture cible**

![\[Le mainframe local se connecte via un serveur DB2 local et un VPN à la base de données DB2 sur. EC2\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Outils
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**Services AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [ Site-to-SiteLe VPN AWS](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) vous aide à faire passer le trafic entre les instances que vous lancez sur AWS et votre propre réseau distant.

**Autres outils**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) est la commande d'interface de ligne de commande (CLI) interactive de DB2.

## Épopées
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Activer la fédération sur la base de données DB2 LUW exécutée sur AWS
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Activez la fédération sur la base de données DB2 LUW. | Pour activer la fédération sur DB2 LUW, exécutez la commande suivante.<pre>update dbm cfg using federated YES</pre> | DBA | 
| Redémarrez la base de données. | Pour redémarrer la base de données, exécutez la commande suivante.<pre>db2stop force;<br />db2start;</pre> | DBA | 

### Cataloguer la base de données distante
<a name="catalog-the-remote-database"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Cataloguez le z/OS sous-système Db2 distant. | Pour cataloguer la z/OS base de données Db2 distante sur Db2 LUW exécutée sur AWS, utilisez l'exemple de commande suivant.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| Cataloguez la base de données distante. | Pour cataloguer la base de données distante, utilisez l'exemple de commande suivant.<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### Création de la définition du serveur distant
<a name="create-the-remote-server-definition"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Collectez les informations d'identification utilisateur pour la base de z/OS données Db2 distante. | Avant de passer aux étapes suivantes, collectez les informations suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| Créez le wrapper DRDA. | Pour créer le wrapper DRDA, exécutez la commande suivante.<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| Créez la définition du serveur. | Pour créer la définition du serveur, exécutez l'exemple de commande suivant.<pre>CREATE SERVER ndbserver<br />TYPE DB2/ZOS VERSION 12<br />WRAPPER DRDA<br />AUTHORIZATION "dbuser1" PASSWORD "dbpasswd" OPTIONS ( DBNAME 'ndbnam1',FED_PROXY_USER 'ZPROXY' );</pre>Dans cette définition, `FED_PROXY_USER` indique l'utilisateur proxy qui sera utilisé pour établir des connexions fiables à la z/OS base de données DB2. L'ID utilisateur et le mot de passe d'autorisation ne sont requis que pour créer l'objet serveur distant dans la base de données DB2 LUW. Ils ne seront pas utilisés ultérieurement pendant l'exécution. | DBA | 

### Création de mappages d'utilisateurs
<a name="create-user-mappings"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un mappage utilisateur pour l'utilisateur proxy. | Pour créer un mappage utilisateur pour un utilisateur proxy, exécutez la commande suivante.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| Créez des mappages d'utilisateurs pour chaque utilisateur sur DB2 LUW. | Créez des mappages d'utilisateurs pour tous les utilisateurs de la base de données DB2 LUW sur AWS qui ont besoin d'accéder aux données distantes via l'utilisateur proxy. Pour créer les mappages d'utilisateurs, exécutez la commande suivante.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>L'instruction indique qu'un utilisateur de DB2 LUW (`PERSON1`) peut établir une connexion sécurisée avec la z/OS base de données Db2 distante (). `USE_TRUSTED_CONTEXT 'Y'` Une fois la connexion établie via l'utilisateur proxy, celui-ci peut accéder aux données à l'aide de l'ID z/OS utilisateur Db2 (`REMOTE_AUTHID 'USERZID'`). | DBA | 

### Création de l'objet de contexte sécurisé
<a name="create-the-trusted-context-object"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'objet de contexte sécurisé. | Pour créer l'objet de contexte sécurisé sur la z/OS base de données Db2 distante, utilisez l'exemple de commande suivant.<pre>CREATE TRUSTED CONTEXT CTX_LUW_ZOS<br />BASED UPON CONNECTION USING SYSTEM AUTHID ZPROXY<br />ATTRIBUTES (<br />ADDRESS '10.10.10.10'<br />)<br />NO DEFAULT ROLE<br />ENABLE<br />WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;</pre>Dans cette définition, `CTX_LUW_ZOS` il s'agit d'un nom arbitraire pour l'objet de contexte sécurisé. L'objet contient l'ID utilisateur du proxy et l'adresse IP du serveur d'où doit provenir la connexion sécurisée. Dans cet exemple, le serveur est la base de données DB2 LUW sur AWS. Vous pouvez utiliser le nom de domaine au lieu de l'adresse IP. La clause `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` indique que le changement d'ID utilisateur sur une connexion sécurisée est autorisé pour chaque ID utilisateur. Il n'est pas nécessaire de fournir un mot de passe. | DBA | 

## Ressources connexes
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [Installation de contrôle d'accès aux ressources IBM (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [Fédération IBM DB2 LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Contextes fiables](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Informations supplémentaires
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Contextes fiables DB2**

Un contexte sécurisé est un objet de base de données DB2 qui définit une relation de confiance entre un serveur fédéré et un serveur de base de données distant. Pour définir une relation de confiance, le contexte de confiance spécifie les attributs de confiance. Il existe trois types d'attributs de confiance :
+ ID d'autorisation système à l'origine de la demande initiale de connexion à la base de données
+ L'adresse IP ou le nom de domaine à partir duquel la connexion est établie
+ Paramètre de chiffrement pour les communications de données entre le serveur de base de données et le client de base de données

Une connexion sécurisée est établie lorsque tous les attributs d'une demande de connexion correspondent aux attributs spécifiés dans un objet de contexte sécurisé défini sur le serveur. Il existe deux types de connexions fiables : les connexions implicites et les connexions explicites. Une fois qu'une connexion sécurisée implicite est établie, un utilisateur hérite d'un rôle auquel il n'a pas accès en dehors du cadre de cette définition de connexion sécurisée. Une fois qu'une connexion sécurisée explicite est établie, les utilisateurs peuvent être connectés à la même connexion physique, avec ou sans authentification. En outre, les utilisateurs de DB2 peuvent se voir attribuer des rôles qui spécifient des privilèges à utiliser uniquement dans le cadre de la connexion sécurisée. Ce modèle utilise une connexion sécurisée explicite.

*Contexte fiable dans ce modèle*

Une fois le modèle terminé, PERSON1 sur Db2, LUW accède aux données distantes depuis Db2 z/OS en utilisant un contexte sécurisé fédéré. La connexion pour PERSON1 est établie via un utilisateur proxy si la connexion provient de l'adresse IP ou du nom de domaine spécifié dans la définition du contexte sécurisé. Une fois la connexion établie, PERSON1 l'ID z/OS utilisateur Db2 correspondant est changé sans nouvelle authentification, et l'utilisateur peut accéder aux données ou aux objets en fonction des privilèges Db2 configurés pour cet utilisateur.

*Avantages des contextes fiables fédérés*
+ Cette approche maintient le principe du moindre privilège en éliminant l'utilisation d'un identifiant d'utilisateur ou d'un identifiant d'application commun qui nécessiterait un surensemble de tous les privilèges requis par tous les utilisateurs.
+ L'identité réelle de l'utilisateur qui effectue la transaction à la fois sur la base de données fédérée et distante est toujours connue et peut être auditée.
+ Les performances s'améliorent car la connexion physique est réutilisée entre les utilisateurs sans que le serveur fédéré n'ait besoin de s'authentifier à nouveau.

# Transférez des z/OS données Db2 à grande échelle vers Amazon S3 dans des fichiers CSV
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files"></a>

*Bruno Sahinoglu, Abhijit Kshirsagar et Ivan Schuster, Amazon Web Services*

## Résumé
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Un ordinateur central est toujours un système d'enregistrement dans de nombreuses entreprises, contenant une énorme quantité de données, y compris des entités de données de base contenant des enregistrements des transactions commerciales actuelles et historiques. Il est souvent cloisonné et n'est pas facilement accessible par les systèmes distribués au sein d'une même entreprise. Avec l'émergence de la technologie cloud et la démocratisation des mégadonnées, les entreprises souhaitent utiliser les informations cachées dans les données du mainframe pour développer de nouvelles capacités commerciales.

Dans ce but, les entreprises cherchent à ouvrir les données Db2 de leur mainframe à leur environnement cloud Amazon Web Services (AWS). Les raisons commerciales sont multiples et les méthodes de transfert varient d'un cas à l'autre. Il se peut que vous préfériez connecter votre application directement au mainframe ou que vous préfériez répliquer vos données en temps quasi réel. Si le cas d'utilisation consiste à alimenter un entrepôt de données ou un lac de données, il n'est plus nécessaire de disposer d'une up-to-date copie et la procédure décrite dans ce modèle peut suffire, en particulier si vous souhaitez éviter les coûts de licence de produits tiers. Un autre cas d'utilisation peut être le transfert de données sur le mainframe pour un projet de migration. Dans un scénario de migration, les données sont nécessaires pour effectuer les tests d'équivalence fonctionnelle. L'approche décrite dans cet article est un moyen rentable de transférer les données DB2 vers l'environnement cloud AWS.

Amazon Simple Storage Service (Amazon S3) étant l'un des services AWS les plus intégrés, vous pouvez accéder aux données à partir de là et recueillir des informations directement en utilisant d'autres services AWS tels qu'Amazon Athena, les fonctions AWS Lambda ou Amazon. QuickSight Vous pouvez également charger les données sur Amazon Aurora ou Amazon DynamoDB à l'aide d'AWS Glue ou d'AWS Database Migration Service (AWS DMS). Dans cet objectif, il décrit comment décharger les données Db2 dans des fichiers CSV au format ASCII sur le mainframe et transférer les fichiers vers Amazon S3.

À cette fin, des [scripts mainframe](https://github.com/aws-samples/unloaddb2-samples) ont été développés pour aider à générer des langages de contrôle des tâches (JCLs) permettant de décharger et de transférer autant de tables DB2 que nécessaire.

## Conditions préalables et limitations
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Conditions préalables**
+ Utilisateur du système z/OS d'exploitation IBM autorisé à exécuter des scripts Restructured Extended Executor (REXX) et JCL.
+ Accès aux services du système z/OS Unix (USS) pour générer des clés privées et publiques SSH (Secure Shell).
+ Un compartiment S3 inscriptible. Pour plus d'informations, consultez [Créer votre premier compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) dans la documentation Amazon S3.
+ Un serveur compatible avec le protocole SFTP (AWS Transfer Family SSH File Transfer Protocol) utilisant **Service géré** en tant que fournisseur d'identité et Amazon S3 en tant que service de stockage AWS. Pour plus d'informations, consultez la section [Créer un serveur compatible SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) dans la documentation AWS Transfer Family.

**Limites**
+ Cette approche n'est pas adaptée à la synchronisation des données en temps quasi réel ou en temps réel.
+ Les données ne peuvent être déplacées que de Db2 z/OS vers Amazon S3, et non l'inverse.

## Architecture
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Pile technologique source**
+ Mainframe exécutant Db2 sous z/OS

**Pile technologique cible**
+ AWS Transfer Family
+ Amazon S3
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ Amazon Redshift

**Architecture source et cible**

Le schéma suivant montre le processus de génération, d'extraction et de transfert de z/OS données DB2 au format ASCII CSV vers un compartiment S3.

![\[Data flow from corporate data center to AWS Cloud, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Une liste de tables est sélectionnée pour la migration des données à partir du catalogue DB2.

1. La liste est utilisée pour générer des tâches de déchargement avec les colonnes numériques et de données au format externe.

1. Les données sont ensuite transférées vers Amazon S3 à l'aide d'AWS Transfer Family.

1. Une tâche d'extraction, de transformation et de chargement (ETL) AWS Glue peut transformer les données et les charger dans un bucket traité au format spécifié, ou AWS Glue peut introduire les données directement dans la base de données.

1. Amazon Athena et Amazon QuickSight peuvent être utilisés pour interroger et afficher les données afin de générer des analyses.

Le schéma suivant montre le déroulement logique de l'ensemble du processus.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. Le premier JCL, appelé TABNAME, utilisera l'utilitaire Db2 DSNTIAUL pour extraire et générer la liste des tables que vous comptez décharger de Db2. Pour choisir vos tables, vous devez adapter manuellement l'entrée SQL pour sélectionner et ajouter des critères de filtre afin d'inclure un ou plusieurs schémas DB2.

1. Le second JCL, appelé REXXEXEC, utilisera le squelette JCL et le programme REXX fournis pour traiter la liste des tables créée par le JCL TABNAME et générer un JCL par nom de table. Chaque JCL contiendra une étape pour décharger la table et une autre pour envoyer le fichier au compartiment S3 à l'aide du protocole SFTP.

1. La dernière étape consiste à exécuter la JCL pour décharger la table et à transférer le fichier vers AWS. L'ensemble du processus peut être automatisé à l'aide d'un planificateur sur site ou sur AWS.

## Outils
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Services AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) est un service de requêtes interactif qui vous permet d'analyser les données directement dans Amazon Simple Storage Service (Amazon S3) à l'aide du langage SQL standard.
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) est un moteur de base de données relationnelle entièrement géré conçu pour le cloud et compatible avec MySQL et PostgreSQL.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) est un service d'extraction, de transformation et de chargement (ETL) entièrement géré. Il vous aide à classer, nettoyer, enrichir et déplacer les données de manière fiable entre les magasins de données et les flux de données.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) est un service de business intelligence (BI) à l'échelle du cloud qui vous permet de visualiser, d'analyser et de rapporter vos données dans un tableau de bord unique.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) est un service d'entrepôt de données géré à l'échelle du pétaoctet dans le cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le cloud AWS.
+ [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.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) est un service de transfert sécurisé qui vous permet de transférer des fichiers vers et depuis les services de stockage AWS.

**Outils pour ordinateurs centraux**
+ Le [protocole SFTP (SSH File Transfer Protocol)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) est un protocole de transfert de fichiers sécurisé qui permet la connexion à distance et le transfert de fichiers entre serveurs. SSH assure la sécurité en chiffrant l'ensemble du trafic.
+ [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) est un exemple de programme fourni par IBM pour le déchargement de données.
+ [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) est un programme d'utilitaires par lots fourni par IBM pour décharger des données avec différentes options de DSNTIAUL.
+ [z/OS OpenSSH](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) est un port du logiciel Open Source SSH exécuté sur le service système Unix sous le réseau du système d'exploitation IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Il fournit plusieurs utilitaires, dont ssh-keygen.
+ Le script [REXX (Restructured Extended Executor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) est utilisé pour automatiser la génération de JCL avec les étapes Db2 Unload et SFTP.

**Code**

Le code de ce modèle est disponible dans le dépôt GitHub [unloaddb2](https://github.com/aws-samples/unloaddb2-samples).

## Bonnes pratiques
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Lors du premier déchargement, les données générées JCLs doivent décharger l'intégralité des données de la table.

Après le premier déchargement complet, effectuez des déchargements incrémentiels pour améliorer les performances et réaliser des économies. Mettez à jour la requête SQL dans le modèle de deck JCL pour tenir compte des modifications apportées au processus de déchargement.

Vous pouvez convertir le schéma manuellement ou en utilisant un script sur Lambda avec le Db2 SYSPUNCH en entrée. Pour un processus industriel, [AWS Schema Conversion Tool (SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html) est l'option préférée.

Enfin, utilisez un planificateur basé sur le mainframe ou un planificateur sur AWS avec un agent sur le mainframe pour gérer et automatiser l'ensemble du processus.

## Épopées
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Configuration du compartiment S3
<a name="set-up-the-s3-bucket"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le compartiment S3. | Pour obtenir des instructions, consultez la section [Création de votre premier compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | AWS général | 

### Configuration du serveur Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un serveur compatible SFTP. | Pour ouvrir et créer un serveur SFTP sur la [console AWS Transfer Family](https://console.aws.amazon.com/transfer/), procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | AWS général | 
| Créez un rôle IAM pour Transfer Family. | Pour créer un rôle AWS Identity and Access Management (IAM) permettant à Transfer Family d'accéder à Amazon S3, suivez les instructions de la section [Création d'un rôle et d'une politique IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Administrateur AWS | 
| Ajoutez un utilisateur géré par le service Amazon S3. | Pour ajouter l'utilisateur géré par le service Amazon S3, suivez les instructions de la [documentation AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user) et utilisez l'ID utilisateur de votre mainframe. | AWS général | 

### Sécuriser le protocole de communication
<a name="secure-the-communication-protocol"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez la clé SSH. | Dans l'environnement USS de votre mainframe, exécutez la commande suivante.<pre>ssh-keygen -t rsa</pre>Lorsque vous êtes invité à saisir un mot de passe, gardez-le vide. | Développeur de mainframe | 
| Attribuez les niveaux d'autorisation appropriés au dossier SSH et aux fichiers clés. | Par défaut, les clés publiques et privées sont stockées dans le répertoire des utilisateurs`/u/home/username/.ssh`.Vous devez donner l'autorisation 644 aux fichiers clés et 700 au dossier.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Développeur de mainframe | 
| Copiez le contenu de la clé publique sur votre utilisateur géré par le service Amazon S3. | Pour copier le contenu de la clé publique générée par USS, ouvrez la console [AWS Transfer Family](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Développeur de mainframe | 

### Générez le JCLs
<a name="generate-the-jcls"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Générez la liste des tables DB2 incluses dans le champ d'application. | Fournissez du code SQL d'entrée pour créer une liste des tables concernées par la migration des données. Cette étape vous oblige à spécifier des critères de sélection pour interroger la table de catalogue DB2 SYSIBM.SYSTABLES à l'aide d'une clause SQL where. Les filtres peuvent être personnalisés pour inclure un schéma spécifique ou des noms de table commençant par un préfixe particulier ou basés sur un horodatage pour un déchargement incrémentiel. La sortie est capturée dans un jeu de données séquentiel physique (PS) sur le mainframe. Cet ensemble de données servira d'entrée pour la prochaine phase de génération de JCL.Avant d'utiliser le JCL TABNAME (vous pouvez le renommer si nécessaire), apportez les modifications suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Tâche d'extraction de listes de tables DB2**<pre><Jobcard><br />//* <br />//* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA<br />//* <br />//STEP01  EXEC PGM=IEFBR14<br />//* <br />//DD1      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.TABLIST<br />//* <br />//DD2      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//UNLOAD  EXEC PGM=IKJEFT01,DYNAMNBR=20 <br />//SYSTSPRT DD  SYSOUT=* <br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//         DD  DISP=SHR,DSN=CEE.SCEERUN <br />//         DD  DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD <br />//SYSTSIN  DD  *<br />  DSN SYSTEM(DBCG) <br />  RUN  PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - <br />       LIB('DSNC10.DBCG.RUNLIB.LOAD')<br />  END<br />//SYSPRINT DD SYSOUT=*<br />//* <br />//SYSUDUMP DD SYSOUT=*<br />//* <br />//SYSREC00 DD DISP=(NEW,CATLG,DELETE),<br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            DSN=<HLQ1>.DSN81210.TABLIST <br />//* <br />//SYSPUNCH DD DISP=(NEW,CATLG,DELETE), <br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 <br />//            DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//SYSIN    DD * <br />   SELECT CHAR(CREATOR), CHAR(NAME)<br />     FROM SYSIBM.SYSTABLES <br />    WHERE OWNER = '<Schema>' <br />      AND NAME LIKE '<Prefix>%' <br />      AND TYPE = 'T'; <br />/* </pre> | Développeur de mainframe | 
| Modifiez les modèles JCL. | Les modèles JCL fournis avec ce modèle contiennent une carte de travail générique et des noms de bibliothèques. Cependant, la plupart des sites mainframe auront leurs propres normes de dénomination pour les noms de jeux de données, les noms de bibliothèques et les fiches de travail. Par exemple, une classe de travail spécifique peut être requise pour exécuter des tâches DB2. Le sous-système Job Entry implémente JES2 et JES3 peut imposer des modifications supplémentaires. Les bibliothèques de chargement standard peuvent avoir un premier qualificatif différent de celui `SYS1` défini par défaut par IBM. Par conséquent, personnalisez les modèles pour tenir compte des normes spécifiques à votre site avant de les exécuter.Apportez les modifications suivantes dans le squelette JCL UNLDSKEL :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Déchargement et squelette JCL SFTP**<pre>//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, <br />//         TIME=1440,NOTIFY=&USRPFX<br />//* DELETE DATASETS<br />//STEP01   EXEC PGM=IEFBR14<br />//DD01     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//DD02     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//*<br />//* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO<br />//*<br />//UNLD01   EXEC PGM=DSNUTILB,REGION=0M,<br />// PARM='<DSN>,UNLOAD'<br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//SYSPRINT DD  SYSOUT=*<br />//UTPRINT  DD  SYSOUT=*<br />//SYSOUT   DD  SYSOUT=*<br />//SYSPUN01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(1,1),RLSE),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//SYSREC01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(10,50),RLSE),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//SYSPRINT DD SYSOUT=*<br />//SYSIN    DD *<br />  UNLOAD<br />  DELIMITED COLDEL ','<br />  FROM TABLE &TABNAME<br />  UNLDDN SYSREC01<br />  PUNCHDDN SYSPUN01<br />  SHRLEVEL CHANGE ISOLATION UR;<br /> /*<br />//*<br />//* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL<br />//*<br />//SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M<br />//STDPARM DD *<br /> SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE;<br /> rm &TABNAME..csv;<br /> //SYSPRINT DD SYSOUT=*<br /> //STDOUT DD SYSOUT=*<br /> //STDENV DD *<br /> //STDERR DD SYSOUT=*                                                </pre>  | Développeur de mainframe | 
| Générez le JCL Mass Unload. | Cette étape implique l'exécution d'un script REXX dans un environnement ISPF à l'aide de JCL. Fournissez la liste des tables incluses créées lors de la première étape en tant qu'entrée pour la génération massive de JCL par rapport au `TABLIST DD` nom. La JCL générera une nouvelle JCL par nom de table dans un ensemble de données partitionné spécifié par l'utilisateur et indiqué par rapport au nom. `ISPFILE DD` Allouez cette bibliothèque au préalable. Chaque nouvelle JCL comportera deux étapes : une étape pour décharger la table Db2 dans un fichier, et une étape pour envoyer le fichier dans le compartiment S3.Apportez les modifications suivantes dans le JCL REXXEXEC (vous pouvez changer le nom) :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Tâche de génération de JCL en masse**<pre>//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A,      <br />//         TIME=1440,NOTIFY=&SYSUID<br />//* Most of the values required can be updated to your site specific<br />//* values using the command 'TSO ISRDDN' in your ISPF session. <br />//* Update all the lines tagged with //update marker to desired<br />//* site specific values. <br />//ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25<br />//SYSPROC   DD DISP=SHR,DSN=USER.Z23D.CLIST<br />//SYSEXEC   DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB<br />//ISPPLIB   DD DISP=SHR,DSN=ISP.SISPPENU<br />//ISPSLIB   DD DISP=SHR,DSN=ISP.SISPSENU<br />//          DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB<br />//ISPMLIB   DD DSN=ISP.SISPMENU,DISP=SHR<br />//ISPTLIB   DD DDNAME=ISPTABL<br />//          DD DSN=ISP.SISPTENU,DISP=SHR<br />//ISPTABL   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPPROF   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPLOG    DD SYSOUT=*,RECFM=VA,LRECL=125<br />//SYSPRINT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSHELP   DD DSN=SYS1.HELP,DISP=SHR <br />//SYSOUT    DD SYSOUT=*<br />//* Input list of tablenames<br />//TABLIST   DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST<br />//* Output pds<br />//ISPFILE   DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN<br />//SYSTSIN   DD *<br />ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>)<br />/*</pre>Avant d'utiliser le script REXX, apportez les modifications suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Script STEPS REX**<pre>/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */<br />/* 10/27/2021 - added new parms to accommodate ftp */<br />Trace "o" <br />    parse arg usrpfx ftpuser ftpsite<br />    Say "Start"<br />    Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite<br />    Say "Reading table name list"<br />    "EXECIO * DISKR TABLIST (STEM LINE. FINIS"<br />    DO I = 1 TO LINE.0<br />      Say I<br />      suffix = I<br />      Say LINE.i<br />      Parse var LINE.i schema table rest<br />      tabname = schema !! "." !! table<br />      Say tabname<br />      tempjob= "LOD" !! RIGHT("0000" !! i, 5) <br />      jobname=tempjob<br />      Say tempjob<br />      ADDRESS ISPEXEC "FTOPEN "<br />      ADDRESS ISPEXEC "FTINCL UNLDSKEL"<br />      /* member will be saved in ISPDSN library allocated in JCL */<br />      ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")"<br />    END<br /><br />    ADDRESS TSO "FREE F(TABLIST) "<br />    ADDRESS TSO "FREE F(ISPFILE) "<br /><br />exit 0</pre> | Développeur de mainframe | 

### Exécutez le JCLs
<a name="run-the-jcls"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Effectuez l'étape de déchargement de DB2. | Après la génération de JCL, vous aurez JCLs autant de tables à décharger.Cette histoire utilise un exemple généré par JCL pour expliquer la structure et les étapes les plus importantes.Aucune action de votre part n'est nécessaire. Les informations suivantes sont fournies à titre de référence uniquement. Si votre intention est de soumettre JCLs ce que vous avez généré à l'étape précédente, passez à la section *Soumettre la LODnnnnn JCLs* tâche.Lorsque vous déchargez des données Db2 à l'aide d'une JCL avec l'utilitaire DSNUTILB Db2 fourni par IBM, vous devez vous assurer que les données déchargées ne contiennent pas de données numériques compressées. Pour ce faire, utilisez le paramètre DSNUTILB`DELIMITED`.Le `DELIMITED` paramètre prend en charge le déchargement des données au format CSV en ajoutant un caractère comme délimiteur et des guillemets doubles pour le champ de texte, en supprimant le rembourrage dans la colonne VARCHAR et en convertissant tous les champs numériques en FORMAT EXTERNE, y compris les champs DATE.L'exemple suivant montre à quoi ressemble l'étape de déchargement dans le JCL généré, en utilisant la virgule comme séparateur.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Développeur mainframe, Ingénieur système | 
| Effectuez l'étape SFTP. | Pour utiliser le protocole SFTP depuis une JCL, utilisez l'utilitaire BPXBATCH. L'utilitaire SFTP ne peut pas accéder directement aux ensembles de données MVS. Vous pouvez utiliser la commande copy (`cp`) pour copier le fichier `&USRPFX..DB2.UNLOAD.&JOBNAME` séquentiel dans le répertoire USS, où il se trouve. `&TABNAME..csv`Exécutez la `sftp` commande à l'aide de la clé privée (`id_rsa`) et de l'ID utilisateur RACF comme nom d'utilisateur pour vous connecter à l'adresse IP AWS Transfer Family.<pre>SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE;<br /> rm &TABNAME..csv; </pre> | Développeur mainframe, Ingénieur système | 
| Soumettez le LODnnnnn JCLs. | La JCL précédente générait toutes les tables LODnnnnn JCL qui devaient être déchargées, transformées en CSV et transférées dans le compartiment S3.Exécutez la `submit` commande sur tous ceux JCLs qui ont été générés. | Développeur mainframe, Ingénieur système | 

## Ressources connexes
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Pour plus d'informations sur les différents outils et solutions utilisés dans ce document, consultez les rubriques suivantes :
+ [Guide de l'utilisateur de z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS — Exemples d'instructions de contrôle UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS — Déchargement de fichiers délimités](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family — Création d'un serveur compatible SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family — Travailler avec des utilisateurs gérés par des services](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Informations supplémentaires
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Une fois que vous avez enregistré vos données DB2 sur Amazon S3, vous disposez de nombreuses méthodes pour développer de nouvelles connaissances. Amazon S3 s'intégrant aux services d'analyse de données AWS, vous pouvez librement consommer ou exposer ces données du côté distribué. Par exemple, vous pouvez effectuer les opérations suivantes :
+ Créez un [lac de données sur Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) et extrayez des informations précieuses à l'aide query-in-place d'outils d'analyse et d'apprentissage automatique sans déplacer les données.
+ Lancez une [fonction Lambda](https://aws.amazon.com/lambda/) en configurant un flux de travail de traitement après le téléchargement intégré à AWS Transfer Family.
+ Développez de nouveaux microservices pour accéder aux données dans Amazon S3 ou dans une [base de données entièrement gérée](https://aws.amazon.com/free/database/?trk=ps_a134p000007CdNEAA0&trkCampaign=acq_paid_search_brand&sc_channel=PS&sc_campaign=acquisition_FR&sc_publisher=Google&sc_category=Database&sc_country=FR&sc_geo=EMEA&sc_outcome=acq&sc_detail=amazon%20relational%20database%20service&sc_content=Relational%20Database_e&sc_matchtype=e&sc_segment=548727697660&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Database|Solution|FR|EN|Text&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service&ef_id=CjwKCAjwzt6LBhBeEiwAbPGOgcGbQIl1-QsbHfWTgMZSSHEXzSG377R9ZyK3tCcbnHuT45L230FufxoCeEkQAvD_BwE:G:s&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service) à l'aide d'[AWS Glue](https://aws.amazon.com/glue/), un service d'intégration de données sans serveur qui facilite la découverte, la préparation et la combinaison de données à des fins d'analyse, d'apprentissage automatique et de développement d'applications.

Dans le cas d'une migration, étant donné que vous pouvez transférer toutes les données du mainframe vers S3, vous pouvez effectuer les opérations suivantes :
+ Supprimez l'infrastructure physique et créez une stratégie d'archivage des données rentable avec Amazon S3 Glacier et S3 Glacier Deep Archive. 
+ Développez des solutions de sauvegarde et de restauration évolutives, durables et sécurisées avec Amazon S3 et d'autres services AWS, tels que S3 Glacier et Amazon Elastic File System (Amazon EFS), afin d'augmenter ou de remplacer les fonctionnalités sur site existantes.

# Transformez Easytrieve en langues modernes en utilisant des outils personnalisés AWS Transform
<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 personnalisée.AWS Transform](https://aws.amazon.com/transform/custom/) language-to-language 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 de [AWS Transform for mainframe](https://aws.amazon.com/transform/mainframe/)
+ 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 la transformation EZT vers Java est prise en charge pour ce modèle de transformation spécifique. 
+ **Hors de portée** — La transformation d'autres langages de programmation mainframe nécessite une nouvelle définition de transformation personnalisée en mode AWS Transform personnalisé.

*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/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Flux de travail**

Cette solution utilise un modèle de transformation de language-to-language migration AWS Transform personnalisé pour moderniser les applications mainframe Easytrieve (EZT) vers Java grâce à un flux de travail automatisé en quatre étapes.

*Étape 1 — Fournissez votre ancien code à AWS Transform for Mainframe, qui :*
+ Analyse le code
+ Extrait la logique métier de haut niveau
+ Extrait la logique métier détaillée.

*Étape 2 — Créez un dossier avec les entrées requises :*
+ Règles commerciales EZT extraites à l'aide de AWS Transform for mainframe 
+ 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

*Étape 3 — Création et exécution d'une définition de transformation personnalisée*

1. Utilisez la AWS Transform CLI pour décrire les objectifs de transformation en langage naturel. AWS Transform analyse de manière personnalisée le BRE, le code source et les guides de programmation EZT afin de générer une définition de transformation personnalisée pour examen et approbation par les développeurs.

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'agent Self-Debugger 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, 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. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilise l'IA agentic pour vous aider à accélérer la modernisation des charges de travail existantes, telles que .NET, le mainframe et les charges de travail. VMware 
+ [AWS Transform pour mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) est utilisé pour analyser les applications EZT existantes afin d'extraire la logique métier intégrée et de générer une documentation complète sur les règles métier, y compris des résumés logiques, des définitions d'acronymes et des bases de connaissances structurées. Elles servent de données d'entrée pour la AWS Transform personnalisation. 
+ [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 byte-by-byte comparaison 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>

### 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 | 
| --- | --- | --- | 
| Configurez AWS Transform pour le mainframe. | Configurez l'environnement et les autorisations requises Gestion des identités et des accès AWS (IAM) pour prendre en charge les flux de travail de modernisation du mainframe. Pour plus d'informations, consultez [la section Transformation des applications mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) dans AWS la documentation. | Développeur d’applications | 
| Générez de la documentation Business Rule Extract (BRE). | Extrayez la logique métier du code source EZT ou COBOL pour générer une documentation fonctionnelle. Pour obtenir des instructions sur la façon de lancer le processus d'extraction et de consulter le résultat, consultez la section [Extraire la logique métier](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) dans la AWS Transform documentation. | Développeur d’applications | 

### Configuration AWS Transform personnalisée
<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é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 | 

### 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 format Sequential/Text/DB 2 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>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*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. 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*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.Trouvez l'identifiant de conversation dans les journaux de votre précédente tentative d'exécution.   | 
| *Résolution des contraintes de mémoire*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.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*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)

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

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)

# Plus de modèles
<a name="mainframe-more-patterns-pattern-list"></a>

**Topics**
+ [Déployez les automatisations de sécurité pour la AWS WAF solution à l'aide de Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Répliquez des bases de données mainframe sur AWS à l'aide de Precisely Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)