

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Unidades centrales
<a name="mainframe-pattern-list"></a>

**Topics**
+ [Acceda Servicios de AWS desde IBM z/OS instalando el AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Copia de seguridad y archivo de datos de mainframe en Amazon S3 mediante BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Cree programas COBOL Db2 mediante y AWS Mainframe Modernization AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Cree un PAC de servidor empresarial Micro Focus con Amazon EC2 Auto Scaling y Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Cree un visor de archivos de unidad central avanzada en la nube de AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Almacenamiento en contenedores de las cargas de trabajo de mainframe que Blu Age ha modernizado](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Convierta y desempaquete datos EBCDIC a ASCII en AWS mediante Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Convierta archivos de mainframe del formato EBCDIC al formato ASCII delimitado por caracteres en Amazon S3 mediante AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Convertir archivos de datos de mainframe con diseños de registros complejos mediante Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Genere información sobre z/OS datos de Db2 mediante AWS Mainframe Modernization Amazon Q en Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Genere información de datos mediante AWS Mainframe Modernization Amazon Q en Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Implemente la autenticación basada en Microsoft Entra ID en una aplicación de mainframe modernizada de AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Integrar el controlador universal Stonebranch con AWS Mainframe Modernization](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Migración y réplica de archivos VSAM a Amazon RDS o Amazon MSK mediante Connect de Precisely](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernice la aplicación de CardDemo mainframe mediante AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernice e implemente aplicaciones de mainframe con Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernice la administración de la producción del mainframe AWS mediante Rocket Enterprise Server y LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernice las cargas de trabajo de impresión por lotes de mainframe AWS mediante Rocket Enterprise Server y LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernización del mainframe: DevOps adelante AWS con Rocket Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernizar las cargas de trabajo de impresión en línea de mainframe en AWS mediante Micro Focus Enterprise Server y LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Mover los archivos de mainframe directamente a Amazon S3 mediante Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Optimice el rendimiento de su aplicación modernizada AWS Blu Age](optimize-performance-aws-blu-age-modernized-application.md)
+ [Proteja y optimice el acceso de los usuarios a una base de datos de federación DB2 en AWS mediante contextos de confianza](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Transfiera z/OS datos de Db2 a gran escala a Amazon S3 en archivos CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Transforma Easytrieve a idiomas modernos mediante el uso personalizado AWS Transform](transform-easytrieve-modern-languages.md)
+ [Más patrones](mainframe-more-patterns-pattern-list.md)

# Acceda Servicios de AWS desde IBM z/OS instalando el AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

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

## Resumen
<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/) es una herramienta de código abierto para gestionar varios AWS servicios mediante comandos en una consola de línea de comandos. Con una configuración mínima, puede ejecutar comandos desde sesiones de línea de comandos, como el símbolo del sistema, la terminal y el intérprete de comandos bash para implementar una funcionalidad equivalente a la proporcionada por Consola de administración de AWS basada en el navegador.

Todas las funciones de administración, gestión y acceso de la AWS infraestructura como servicio (IaaS) Consola de administración de AWS están disponibles en la AWS API y. AWS CLI Puede instalarlas AWS CLI en un z/OS mainframe de IBM para acceder, gestionar e interactuar directamente con ellas Servicios de AWS desde z/OS. AWS CLI Esto permite a los usuarios y las aplicaciones realizar diversas tareas, como:
+ Transferencia de archivos o conjuntos de datos entre z/OS un almacenamiento de objetos del Amazon Simple Storage Service (Amazon S3) y visualización del contenido de los buckets
+ Iniciar y detener diferentes AWS recursos; por ejemplo, iniciar un trabajo por lotes en un entorno AWS Mainframe Modernization 
+ Llamar a una AWS Lambda función para implementar una lógica empresarial común
+ Integración con inteligencia artificial y machine learning (IA y ML) y servicios de análisis

Este patrón describe cómo instalar, configurar y usar la función AWS CLI en z/OS. You can install it globally, so it's available to all z/OS los usuarios o a nivel de usuario. El patrón también detalla cómo usarlo AWS CLI en una sesión de línea de comandos interactiva desde z/OS Unix System Services (USS) o como un trabajo por lotes.

## Requisitos previos y limitaciones
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Requisitos previos **
+ **Comunicación de red de a z/OS AWS**

  De forma predeterminada, AWS CLI envía las solicitudes Servicios de AWS mediante HTTPS en el puerto TCP 443. Para usarlo AWS CLI correctamente, debe poder realizar conexiones salientes en el puerto TCP 443. Puede usar cualquiera de los siguientes comandos z/OS USS (es posible que algunos de ellos no estén instalados en su entorno) para probar la conectividad de la red desde z/OS hasta 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 credenciales**

  Para poder comunicarse con Nube de AWS los servicios de z/OS, es AWS CLI necesario configurar algunas credenciales con privilegios para acceder al destino. Cuenta de AWS Para los comandos programáticos AWS, puede utilizar las teclas de acceso, que consisten en un identificador de clave de acceso y una clave de acceso secreta. Si no tiene claves de acceso, puede crearlas desde la Consola de administración de AWS. Como práctica recomendada, no utilice las claves de acceso del usuario Cuenta de AWS raíz para ninguna tarea a menos que se requiera el usuario raíz. En su lugar, [cree un nuevo usuario administrador de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) y [prepárese para los permisos con privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege)** **para configurar el usuario con claves de acceso. Tras crear el usuario, puede [crear un ID de clave de acceso y una clave de acceso secreta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) para este usuario.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python para z/OS**

   AWS CLI Requiere Python 3.8 o posterior. IBM ha permitido que Python se ejecute z/OS con [IBM Open Enterprise Python for z/OS](https://www.ibm.com/products/open-enterprise-python-zos). IBM Open Enterprise Python está disponible de forma gratuita a través de Shopz SMP/E, o puede descargar el archivo PAX desde el [sitio web de IBM](https://www.ibm.com/account/reg/signup?formid=urx-49465). Para obtener instrucciones, consulte la [documentación de instalación y configuración](https://www.ibm.com/docs/en/python-zos) de IBM Open Enterprise Python para z/OS.

**Limitaciones**
+ Las instrucciones de instalación que se proporcionan en este patrón se aplican únicamente a la **versión 1 de la AWS CLI **. La última versión de AWS CLI es la versión 2. Sin embargo, este patrón usa la versión anterior porque los métodos de instalación son diferentes para la versión 2 y los ejecutables binarios disponibles para la versión 2 no son compatibles con el z/OS sistema.

**Versiones de producto**
+ AWS CLI versión 1
+ Python 3.8 o posterior

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

**Pila de tecnología**
+ Mainframe que ejecuta z/OS
+ Servicios de sistemas z/OS UNIX para mainframe (USS)
+ Mainframe Open MVS (OMVS): z/OS interfaz de comandos del entorno shell de UNIX
+ Disco de mainframe, como un dispositivo de almacenamiento de acceso directo (DASD)
+ AWS CLI

**Arquitectura de destino**

El siguiente diagrama muestra un AWS CLI despliegue en IBM z/OS. Puede invocarla AWS CLI desde una sesión de usuario interactiva, como una sesión de SSH o una sesión de telnet. También puede invocarlo desde un trabajo por lotes mediante el lenguaje de control de tareas (JCL) o desde cualquier programa que pueda llamar a un comando de shell de Unix. z/OS 

![\[AWS CLI en un z/OS mainframe de IBM que accede a los servicios de AWS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


 AWS CLI Se comunica con los Servicio de AWS puntos finales a través de una TCP/IP red. Esta conexión de red puede realizarse a través de Internet o mediante una AWS Direct Connect conexión privada desde el centro de datos del cliente a los centros de Nube de AWS datos. La comunicación se autentica con AWS credenciales y se cifra. 

**Automatización y escala**

Puede explorar las capacidades de AWS CLI y desarrollar scripts Servicio de AWS de shell USS para gestionar sus AWS recursos desde z/OS. También puede ejecutar AWS CLI comandos y scripts de shell desde el entorno z/OS por lotes, y puede automatizar los trabajos por lotes para que se ejecuten según un cronograma específico mediante la integración con los programadores de mainframe. AWS CLI Los comandos o scripts se pueden codificar dentro de los parámetros (PARMs) y los procedimientos (PROCs), y se pueden escalar siguiendo el enfoque estándar de llamar al PARM o al PROC desde diferentes trabajos por lotes con diferentes parámetros.

## Tools (Herramientas)
<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) es una herramienta de código abierto que te ayuda a interactuar Servicios de AWS mediante los comandos de tu consola de línea de comandos.

## Prácticas recomendadas
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Por motivos de seguridad, restrinja los permisos de acceso al directorio USS donde se almacenan los detalles de las claves de AWS acceso. Permita el acceso únicamente a los usuarios o programas que usen la AWS CLI.
+ No utilice las claves de acceso del usuario Cuenta de AWS root para ninguna tarea. Por el contrario, [cree un nuevo usuario administrador de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) con las claves de acceso correspondientes y que sea para usted.


| 
| 
| Los usuarios de IAM tienen credenciales de larga duración, lo que supone un riesgo de seguridad. Para ayudar a mitigar este riesgo, le recomendamos que brinde a estos usuarios únicamente los permisos que necesitan para realizar la tarea y que los elimine cuando ya no los necesiten. | 
| --- |

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

### Instale AWS CLI la versión 1 en z/OS USS
<a name="install-cli-version-1-on-z-os-uss"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale Python 3.8 o posterior. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 
| Configure las variables de entorno de USS. | Agregue variables de entorno al perfil. Puede añadirlas al archivo `/u/cliuser/.profile` de un usuario individual (`cliuser`) o al archivo `/etc/profile` de todos los usuarios.Este patrón asume que Python se ha instalado en el directorio `/u/awscli/python`. Si el directorio de instalación es diferente, actualice el código en consecuencia.<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> | Administrador de mainframe z/OS  | 
| Pruebe la instalación de Python. | Ejecute el comando **python**:<pre>python --version</pre>El resultado debe confirmar que Python 3.8 o posterior está instalado correctamente. | Administrador de mainframe z/OS  | 
| Verifique o instale **pip**. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 
| Instale la AWS CLI versión 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 

### Configure el AWS CLI acceso desde z/OS
<a name="configure-cli-access-from-z-os"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure las claves de AWS acceso, la región predeterminada y la salida. | La [AWS CLI documentación](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) describe diferentes opciones para configurar el AWS acceso. Puede elegir una configuración de acuerdo con los estándares de su organización. En este ejemplo, se utiliza la configuración de credenciales a corto plazo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de AWS, administrador de mainframe, z/OS desarrollador de mainframe z/OS  | 
| Pruebe el. AWS CLI | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS Administrador de mainframe, desarrollador de mainframe z/OS  | 

### Opción 1: transferencia de datos de USS a Amazon S3 de forma interactiva desde una sesión de USS
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descargue y transfiera el archivo CSV de muestra. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desarrollador de aplicaciones, desarrollador de mainframe z/OS  | 
| Cree un bucket de S3 y cargue el archivo CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desarrollador de aplicaciones, desarrollador de mainframe z/OS  | 
| Consulte el bucket de S3 y el archivo cargado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Para más información sobre la carga de objetos, consulte [Introducción a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) en la documentación de Amazon S3. | AWS general | 
| Ejecute una consulta SQL en una tabla de Amazon Athena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)El resultado de la consulta SQL mostrará el contenido del archivo CSV. | AWS general, desarrollador de aplicaciones | 

### Opción 2: transferencia de datos de USS a Amazon S3 mediante JCL por lotes
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cargue el archivo de muestra. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desarrollador de mainframes z/OS  | 
| Cree JCL por lotes. | Codifique JCL del lote de la siguiente manera para crear el bucket de S3 de destino, cargar el conjunto de datos y enumerar el contenido del depósito. Asegúrese de reemplazar el nombre del directorio, los nombres de los archivos y el nombre del bucket por sus propios valores.<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> | Desarrollador de mainframe z/OS  | 
| Envíe el trabajo de JCL por lotes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desarrollador de mainframe z/OS  | 
| Vea el conjunto de datos cargado en el bucket de S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS general | 

## Recursos relacionados
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI documentación de la versión 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization Referencia de los comandos de la CLI](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## Información adicional
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED en la opción 3.4 del ISPF (utilidad de lista de conjuntos de datos)**

![\[Visualización del contenido del conjunto de datos en z/OS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT del trabajo por lotes enviado**

![\[Salida estándar del registro de trabajos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## Conexiones
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Copia de seguridad y archivo de datos de mainframe en Amazon S3 mediante 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 y Maggie Li, Amazon Web Services*

*Mikhael Liberman, Model9 Mainframe Software*

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

Este patrón muestra cómo hacer copias de seguridad y archivar los datos del mainframe directamente en Amazon Simple Storage Service (Amazon S3) y, a continuación, recuperar y restaurar esos datos en el mainframe mediante BMC AMI Cloud Data (antes conocido como Model9 Manager). Si busca una forma de modernizar su solución de copia de seguridad y archivado como parte de su proceso de modernización del mainframe o de cumplir con los requisitos de conformidad, este patrón puede ayudarle a cumplir esos objetivos.

Por lo general, las organizaciones que ejecutan aplicaciones empresariales principales en mainframes utilizan una biblioteca de cintas virtuales (VTL) para hacer copias de seguridad de los almacenes de datos, como archivos y registros. Este método puede resultar caro porque consume MIPS facturables y no se puede acceder a los datos almacenados en cintas fuera del ordenador central. Para evitar estos problemas, puede utilizar BMC AMI Cloud Data para transferir de forma rápida y rentable los datos operativos e históricos del mainframe directamente a Amazon S3. Puede utilizar AMI Cloud Data de BMC para realizar copias de seguridad y archivar datos y, TCP/IP al AWS mismo tiempo, aprovechar los motores del procesador de información integrado (zIIP) de IBM z para reducir los costes, el paralelismo y los tiempos de transferencia.

## Requisitos previos y limitaciones
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ BMC AMI Cloud Data con una clave de licencia válida
+ Conectividad TCP/IP entre el mainframe y AWS
+ Una función AWS Identity and Access Management (IAM) para acceder a un bucket de S3 read/write 
+ Se ha establecido el acceso al producto de seguridad de mainframe (RACF) para ejecutar los procesos de BMC AMI Cloud
+ Un z/OS agente AMI Cloud de BMC (Java versión 8 de 64 bits SR5 FP16 o posterior) que tenga puertos de red disponibles, reglas de firewall que permitan el acceso a los depósitos de S3 y un sistema de archivos dedicado z/FS 
+ [Requisitos](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) cumplidos para el servidor de administración BMC AMI Cloud

**Limitaciones**
+ BMC AMI Cloud Data almacena sus datos operativos en una base de datos PostgreSQL que se ejecuta como un contenedor de Docker en la misma instancia de Amazon Elastic Compute Cloud ( EC2Amazon) que el servidor de administración. Actualmente, Amazon Relational Database Service (Amazon RDS) no admite actualmente como backend para BMC AMI Cloud Data. Para obtener más información sobre las últimas actualizaciones de los productos, consulte [Novedades](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) en la documentación de BMC.
+ Este patrón solo realiza copias de seguridad y z/OS archiva los datos del mainframe. BMC AMI Cloud Data solo realiza copias de seguridad y archiva los archivos del mainframe.
+ Este patrón no convierte los datos a formatos abiertos estándar, como JSON o CSV. Utilice un servicio de transformación adicional como [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (anteriormente conocido como Model9 Gravity) para convertir los datos a formatos abiertos estándar. Las aplicaciones nativas en la nube y las herramientas de análisis de datos pueden acceder a los datos una vez que estos se hayan escrito en la nube.

**Versiones de producto**
+ BMC AMI Cloud Data, versión 2.x

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

**Pila de tecnología de origen**
+ Mainframe que ejecuta z/OS
+ Archivos de mainframe, como conjuntos de datos y archivos de z/OS UNIX System Services (USS)
+ Disco de mainframe, como un dispositivo de almacenamiento de acceso directo (DASD)
+ Cinta de mainframe (biblioteca de cintas físicas o virtuales)

**Pila de tecnología de destino**
+ Amazon S3
+  EC2 Instancia de Amazon en una nube privada virtual (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Arquitectura de destino**

El siguiente diagrama muestra una arquitectura de referencia en la que los agentes de software BMC AMI Cloud Data de un mainframe controlan los procesos de archivado y respaldo de datos heredados que almacenan los datos en Amazon S3.

![\[Agentes de software BMC AMI Cloud Data en un mainframe que impulsan los procesos de copia de seguridad y archivado de datos heredados\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Los agentes de software AMI Cloud Data de BMC se ejecutan en particiones lógicas de mainframe ()LPARs. Los agentes de software leen y escriben datos del mainframe desde el DASD o graban directamente en Amazon S3 a través de TCP/IP.

1. AWS Direct Connect configura una conexión física y aislada entre la red local y. AWS Para mejorar la seguridad, ejecute una site-to-site VPN sobre ella Direct Connect para cifrar los datos en tránsito.

1. El bucket de S3 almacena los archivos del mainframe como datos de almacenamiento de objetos y los agentes de BMC AMI Cloud Data se comunican directamente con los buckets de S3. Los certificados se utilizan para el cifrado HTTPS de todas las comunicaciones entre el agente y Amazon S3. El cifrado de datos de Amazon S3 se utiliza para cifrar y proteger los datos en reposo.

1. Los servidores de administración de datos AMI Cloud de BMC se ejecutan como contenedores Docker en las EC2 instancias. Las instancias se comunican con los agentes que se ejecutan en el mainframe LPARs y en los buckets S3.

1. Amazon EFS se monta en EC2 instancias activas y pasivas para compartir el almacenamiento del Network File System (NFS). Esto garantiza que los metadatos relacionados con una política creada en el servidor de administración no se pierdan en caso de una conmutación por error. En caso de una conmutación por error por parte del servidor activo, puede acceder al servidor pasivo sin pérdida de datos. Si el servidor pasivo devuelve un error, también podrá acceder al servidor activo sin perder ningún dato.

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

**Servicios de AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona una capacidad informática escalable en el Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) permite crear y configurar sistemas de archivos compartidos en la Nube de AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar casi cualquier cantidad de datos.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)conecta su red interna a una AWS Direct Connect ubicación a través de un cable Ethernet de fibra óptica estándar. Con esta conexión, puede crear interfaces virtuales directamente con los AWS servicios públicos y, al mismo tiempo, omitir a los proveedores de servicios de Internet en su ruta de red.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

**Herramientas de BMC**
+ El [servidor de administración BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) es una aplicación GUI que se ejecuta como un contenedor Docker en una Amazon Machine Image (AMI) de Amazon Linux para Amazon. EC2 El servidor de administración proporciona la funcionalidad necesaria para gestionar las actividades de BMC AMI Cloud, como la elaboración de informes, la creación y administración de políticas, la ejecución de archivos y la realización de copias de seguridad, recuperaciones y restauraciones.
+ El [agente de BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) se ejecuta en un LPAR de mainframe en las instalaciones que lee y escribe archivos directamente en el almacenamiento de objetos mediante TCP/IP. Una tarea iniciada se ejecuta en un LPAR de mainframe y es responsable de leer y escribir los datos de copia de seguridad y archivar en Amazon S3 y desde este.
+ La [interfaz de línea de comandos (M9CLI) de BMC AMI Cloud Mainframe](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) le proporciona un conjunto de comandos para realizar acciones de BMC AMI Cloud directamente desde TSO/E o en operaciones por lotes, sin depender del servidor de administración.

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

### Creación de un bucket de S3 y una política de IAM
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un bucket de S3. | [Cree un bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para almacenar los archivos y volúmenes de los que desee realizar copias de seguridad y archivar desde su entorno de mainframe. | AWS general | 
| Cree una política de IAM. | Todos los servidores de administración y agentes de BMC AMI Cloud requieren acceso al bucket de S3 que creó en el paso anterior.Para conceder el acceso necesario, cree la siguiente política de IAM:<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 general | 

### Obtenga la licencia del software BMC AMI Cloud y descárguelo
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Obtenga una licencia de software de BMC AMI Cloud. | Para obtener una clave de licencia de software, póngase en contacto con el [equipo de BMC AMI Cloud](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). El resultado del z/OS `D M=CPU` comando es necesario para generar una licencia. | Responsable de compilación | 
| Descarga de la clave de licencia y el software BMC AMI Cloud | Puede obtener los archivos de instalación y la clave de licencia si sigue las instrucciones de la [documentación de BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html). | Administrador de la infraestructura de mainframe | 

### Instalación del agente de software BMC AMI Cloud en el mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instalación del agente de software BMC AMI Cloud | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador de la infraestructura de mainframe | 

### Configurar un servidor de administración AMI Cloud de BMC en una instancia EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree instancias de Amazon EC2 Linux 2. | Lance dos instancias de Amazon EC2 Linux 2 en distintas zonas de disponibilidad siguiendo las instrucciones del [paso 1: lanzar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) de la EC2 documentación de Amazon.Su instancia debe cumplir los siguientes requisitos de hardware y software recomendados:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Para obtener más información, consulte la [Documentación de BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Arquitecto de la nube, administrador de la nube | 
| Crear un sistema de archivos de Amazon EFS. | Cree un sistema de archivos Amazon EFS siguiendo las instrucciones del [Paso 1: Cree su sistema de archivos Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) en la documentación de Amazon EFS.Al crear el sistema de archivos, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador de la nube, arquitecto de la nube | 
| Instale Docker y configure el servidor de administración. | **Conéctese a sus EC2 instancias:**Conéctate a tus EC2 instancias siguiendo las instrucciones de [Connect to your Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) en la EC2 documentación de Amazon.**Configura tus EC2 instancias:**Para cada EC2 instancia, haz lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Arquitecto de la nube, administrador de la nube | 
| Instale el software del servidor de administración. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Para solucionar problemas, vaya a los registros almacenados en la carpeta `/data/model9/logs/`** **. Para obtener más información, consulte la [Documentación de BMC](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html). | Arquitecto de la nube, administrador de la nube | 

### Incorporación de un agente y defina una política de copia de seguridad o archivado en el servidor de administración de BMC AMI Cloud
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Añada un nuevo agente. | Antes de añadir un nuevo agente, confirme lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Debe crear un agente en el servidor de administración antes de definir cualquier política de copia de seguridad y archivado. Para crear el agente, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Una vez creado el agente, puede ver el estado **Conectado** en comparación con el agente de almacenamiento de objetos y el agente de mainframe en una nueva ventana que aparece en la tabla. | Desarrollador o administrador de almacenamiento de mainframe | 
| Cree una política de copia de seguridad o archivado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Desarrollador o administrador de almacenamiento de mainframe | 

### Ejecute la política de copia de seguridad o archivado desde el servidor de administración
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ejecute la política de copia de seguridad o archivado. | Ejecute la política de copia de seguridad o archivado de datos que creó anteriormente desde el servidor de administración de forma manual o automática (según una programación). Para ejecutar la política manualmente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Desarrollador o administrador de almacenamiento de mainframe | 
| Restaure la copia de seguridad o la política de archivos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Desarrollador o administrador de almacenamiento de mainframe | 

### Ejecute la política de copia de seguridad o archivado desde el mainframe
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ejecute la política de copia de seguridad o de archivo mediante M9CLI. | Utilice la M9CLI para realizar procesos de copia de seguridad y restauración desde TSO/E, REXX o incluso JCLs sin configurar reglas en el servidor de administración AMI Cloud de BMC.**Uso de TSO/E:**Si usa TSO/E, asegúrese de que `M9CLI REXX` esté concatenado a `TSO`. Para hacer una copia de seguridad de un conjunto de datos mediante TSO/E, utilice el comando `TSO M9CLI BACKDSN <DSNAME>`.Para obtener más información sobre los comandos M9CLI, consulte la [referencia de CLI](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) en la documentación de BMC.**Uso JCLs de:**Para ejecutar la política de copia de seguridad y archivado mediante JCLs, ejecute el `M9CLI` comando.**Uso de operaciones por lotes:**En el siguiente ejemplo se muestra cómo archivar un conjunto de datos mediante la ejecución del comando `M9CLI` por lotes:<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> | Desarrollador o administrador de almacenamiento de mainframe | 
| Ejecute la política de copia de seguridad o de archivo en el lote JCL. | BMC AMI Cloud proporciona un ejemplo de rutina JCL llamada **M9SAPIJ**. Puede personalizar **M9SAPIJ** para que ejecute una política específica creada en el servidor de administración con un JCL. Este trabajo también puede formar parte de un programador de lotes para ejecutar automáticamente los procesos de copia de seguridad y restauración.El trabajo por lotes espera los siguientes valores obligatorios:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)También puede cambiar otros valores según las instrucciones del trabajo de ejemplo. | Desarrollador o administrador de almacenamiento de mainframe | 

## Recursos relacionados
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Modernización del mainframe con AWS](https://aws.amazon.com/mainframe/) (documentación de AWS)
+ [How Cloud Backup for Mainframes Cuts Costs with Model9 and AWS](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/) (blog AWS Partner Network)
+ [How to Enable Mainframe Data Analytics on AWS Using Model9](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/) (blog AWS Partner Network)
+ [Recomendaciones de resiliencia de AWS Direct Connect](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) (documentación de AWS)
+ [Documentación de BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) (sitio web de BMC)

# Cree programas COBOL Db2 mediante y AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

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

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

**nota**  
AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funcionalidades similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Este patrón explica cómo crear un AWS CodeBuild proyecto sencillo para precompilar y vincular programas de COBOL Db2 mediante las herramientas Replatform. AWS Mainframe Modernization Esto permite el despliegue y la ejecución de estos programas en el entorno de ejecución de Replatform. AWS Mainframe Modernization 

COBOL, un lenguaje de programación orientado a los negocios, potencia muchas aplicaciones críticas debido a su fiabilidad y legibilidad. IBM Db2, un sistema de gestión de bases de datos relacionales, gestiona grandes volúmenes de datos de manera eficiente y se integra con los programas COBOL a través de SQL. COBOL y Db2 forman juntos la columna vertebral de las operaciones de misión crítica en sectores como las finanzas y el gobierno, a pesar de la aparición de nuevas tecnologías.

La migración de los componentes COBOL y Db2 del entorno de mainframe a otras plataformas plantea desafíos como la compatibilidad de las plataformas, la complejidad de la integración, la migración de datos y la optimización del rendimiento. El traslado de estos componentes críticos requiere una planificación cuidadosa, experiencia técnica y recursos para garantizar una migración fluida y, al mismo tiempo, mantener la fiabilidad y la funcionalidad.

El AWS Mainframe Modernization servicio proporciona herramientas y recursos para cambiar la plataforma de las aplicaciones y bases de datos de mainframe para que se ejecuten en la AWS infraestructura, como las instancias de Amazon Elastic Compute Cloud EC2 (Amazon). Esto implica trasladar las cargas de trabajo del mainframe a la nube sin tener que hacer cambios importantes en el código.

El proceso de compilación previo y enlace de Db2 es esencial para optimizar el rendimiento y la fiabilidad de las aplicaciones de bases de datos. La compilación previa transforma las instrucciones de SQL incrustadas en código ejecutable, lo que reduce la sobrecarga del tiempo de ejecución y mejora la eficiencia. El proceso de enlace vincula el código compilado previamente con las estructuras de la base de datos, lo que facilita las rutas de acceso y la optimización de las consultas. Este proceso garantiza la integridad de los datos, mejora la capacidad de respuesta de las aplicaciones y protege contra las vulnerabilidades de seguridad. Las aplicaciones compiladas previamente y enlazadas correctamente minimizan el consumo de recursos, mejoran la escalabilidad y mitigan los riesgos de los ataques de inyección de código SQL.

## Requisitos previos y limitaciones
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Requisitos previos**
+ Acceso a una Cuenta de AWS consola de nivel administrativo.
+ Un sistema de base de datos IBM Db2, como IBM Db2 for z/OS o Db2 para Linux, Unix y Windows (LUW).
+ El software IBM Data Server Client, está disponible para su descarga en el [sitio web de IBM](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers). Para obtener más información, consulte los [tipos de IBM Data Server Client y Data Server Driver](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Un programa COBOL Db2 para compilar y vincular. Como alternativa, este patrón proporciona un programa de ejemplo básico que puede utilizar.
+ Una nube privada virtual (VPC) conectada a una AWS red privada. Para más información sobre la creación de VPC, consulte la [documentación de Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Un repositorio de control de código fuente, como GitHub o GitLab.

**Limitaciones**
+ Para conocer AWS CodeBuild las cuotas, consulte [Cuotas para AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html).
+ Algunas Servicios de AWS no están disponibles en todas Regiones de AWS. Para conocer la disponibilidad de las regiones, consulte [Servicios de AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para los puntos de conexión específicos, consulte la página [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

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

**Pila de tecnología de origen**

La pila de orígenes incluye:
+ Programas COBOL que utilizan una base de datos Db2 para almacenar datos
+ Compilador IBM COBOL y Db2 para precompilador z/OS 
+ Otras partes de la configuración del mainframe, como el sistema de archivos, el administrador de transacciones y el spool

**Pila de tecnología de destino**

El enfoque de este patrón funciona con dos opciones: mover datos de Db2 for a Db2 para LUW o z/OS permanecer en Db2 para z/OS. La arquitectura de destino incluye:
+ Programas COBOL que utilizan una base de datos Db2 para almacenar datos
+ AWS Mainframe Modernization Cambie la plataforma de las herramientas de compilación
+ AWS CodeBuild como infraestructura para crear la aplicación
+ Otros Nube de AWS recursos, como Amazon Linux

**Arquitectura de destino**

![\[Arquitectura para crear programas COBOL Db2 en AWS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


En el siguiente diagrama se ilustra lo siguiente:

1. El usuario carga su código en un repositorio de control de código fuente, como GitHub o GitLab.

1. AWS CodePipeline nota el cambio y obtiene el código del repositorio.

1. CodePipeline inicia AWS CodeBuild y envía el código.

1. CodeBuild sigue las instrucciones de la `buildspec.yml` plantilla (que se proporcionan en la sección de [información adicional](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) para:

   1. Obtener IBM Data Server Client de un bucket de Amazon Simple Storage Service (Amazon S3).

   1. Instalar y configurar IBM Data Server Client.

   1. Recupere las credenciales de Db2 de AWS Secrets Manager.

   1. Conexión al servidor Db2.

   1. Precompilar, compilar y vincular el programa COBOL.

   1. Guarde los productos terminados en un depósito de S3 AWS CodeDeploy para su uso.

1. CodePipeline comienza CodeDeploy.

1. CodeDeploy coordina sus agentes, que ya están instalados en los entornos de ejecución. Los agentes obtienen la aplicación de Amazon S3 y la instalan según las instrucciones que se indican en `appspec.yml`.

Para simplificar las cosas y centrarlas en la compilación, las instrucciones de este patrón abarcan los pasos 1 a 4, pero no incluyen la implementación del programa COBOL Db2.

**Automatización y escala**

Para mayor simplicidad, este patrón describe cómo aprovisionar los recursos de forma manual. Sin embargo, existen numerosas opciones de automatización disponibles, como CloudFormation AWS Cloud Development Kit (AWS CDK), y HashiCorp Terraform, que automatizan estas tareas. Para obtener más información, consulte la documentación de [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) y [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

## Tools (Herramientas)
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-tools"></a>

**Servicios de AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) es un servicio de compilación completamente administrado que le permite compilar código fuente, poner en marcha pruebas unitarias y producir artefactos listos para implementar.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatiza las implementaciones en instancias, AWS Lambda funciones EC2 o servicios de Amazon Elastic Container Service (Amazon ECS) o en instancias locales.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) permite diseñar y configurar rápidamente las diferentes etapas de un proceso de lanzamiento de software y automatizar los pasos necesarios para lanzar los cambios en el software de manera continua.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)proporciona herramientas y recursos que le ayudan a planificar e implementar la migración y la modernización de los mainframes a AWS entornos de tiempo de ejecución gestionados.

**Otras herramientas**
+ **Imagen de Amazon ECR para las herramientas de AWS Mainframe Modernization Replatform**. Para compilar una aplicación COBOL, tendrá que empezar CodeBuild con una imagen de Amazon Elastic Container Registry (Amazon ECR) que contenga las herramientas de Replatform: AWS Mainframe Modernization 

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

  Para obtener más información sobre la imagen de ECR disponible, consulte el [tutorial](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html) de la *Guía del usuario de AWS Mainframe Modernization *.
+ El software [IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) es esencial para precompilar y vincular los programas COBOL Db2. CodeBuild Actúa como puente entre el compilador COBOL y Db2.

## Prácticas recomendadas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ No todos los programas COBOL utilizan Db2 como capa de persistencia de datos. Asegúrese de que las directivas de compilación para acceder a Db2 se apliquen únicamente a los programas COBOL diseñados específicamente para interactuar con Db2. Implemente una lógica para distinguir entre los programas COBOL Db2 y los programas COBOL que no utilizan Db2.
+ Se recomienda evitar compilar programas que no hayan sido modificados. Implemente un proceso para identificar qué programas deben compilarse.

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

### Creación de la infraestructura en la nube
<a name="create-the-cloud-infrastructure"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un bucket de S3 para alojar IBM Data Server Client y los artefactos de canalización. | Debe configurar un bucket de S3 para (a) cargar IBM Data Server Client, (b) almacenar el código del repositorio y (c) almacenar los resultados del proceso de creación.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para ver más maneras de crear un bucket de S3, consulte [la documentación de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | AWS general | 
| Cargue IBM Data Server Client en el bucket de S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS general | 
| Cree un AWS Secrets Manager secreto para sus credenciales de Db2. | Para crear un secreto para almacenar sus DB2 credenciales de forma segura:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para más información sobre la creación de secretos, consulte la [documentación de Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | AWS general | 
| Compruebe que Db2 sea accesible desde la subred de la VPC. | AWS CodeBuild necesita una conexión al servidor Db2 para que el cliente del servidor de datos pueda realizar operaciones de precompilación y enlace. Asegúrese de que CodeBuild puede acceder al servidor Db2 a través de una conexión segura.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Administrador de red, AWS general | 

### Creación de los artefactos de la aplicación
<a name="create-the-application-artifacts"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el activo COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Desarrollador de aplicaciones | 
| Creación del archivo `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Conecta tu repositorio a CodePipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Necesitará el nombre del recurso de Amazon (ARN) para la conexión cuando cree la política AWS Identity and Access Management (IAM) para un paso CodePipeline posterior. | AWS DevOps | 

### Configuración de permisos
<a name="configure-permissions"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una política de IAM para CodeBuild. | El CodeBuild proyecto requiere acceso a algunos recursos, como Secrets Manager y Amazon S3.Para configurar los permisos necesarios:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para obtener más información sobre la creación de políticas de IAM, consulte la [documentación de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | AWS general | 
| Cree un rol de IAM para CodeBuild. | Para que las políticas de seguridad estén disponibles CodeBuild, debe configurar un rol de IAM.Para crear el rol:1. En el panel de navegación de la [consola de IAM](https://console.aws.amazon.com/iam), seleccione **Roles**, **Crear rol**.3. En **Tipo de entidad de confianza**, mantenga la selección predeterminada de **Servicio de AWS**.4. **En Caso de uso**, seleccione el CodeBuild servicio y, a continuación, elija **Siguiente**.4. En la lista de políticas de IAM disponibles, busque la política para la que creó y CodeBuild, a continuación, seleccione **Siguiente** para asociarla al rol.5. Especifique un nombre para el rol y elija **Crear rol** para guardarlo para consultarlo en el futuro CodeBuild.Para obtener más información sobre la creación de un rol de IAM para un Servicio de AWS, consulte la documentación de [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | AWS general | 
| Cree una política de IAM para. CodePipeline | La AWS CodePipeline canalización requiere acceso a algunos recursos, incluidos su repositorio de código y Amazon S3.Repita los pasos indicados anteriormente CodeBuild para crear una política de IAM CodePipeline (en el paso 2, elija en **CodePipeline**lugar de **CodeBuild**). | AWS DevOps | 
| Cree un rol de IAM para CodePipeline. | Para que las políticas de seguridad estén disponibles CodePipeline, debe configurar un rol de IAM.Para crear el rol:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compilación y enlace del programa COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una CodePipeline canalización y un CodeBuild proyecto. | Para crear una CodePipeline canalización y el CodeBuild proyecto que compila y enlaza el programa COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Revise la salida. | Compruebe el éxito de la compilación revisando los registros de CodePipeline compilación. | AWS DevOps | 
| Compruebe los resultados en Db2. | Compruebe la versión del paquete en la tabla 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 versión debe coincidir con el ID de CodeBuild compilación, que se muestra `CDB2SMP` en nuestro ejemplo:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Resolución de problemas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Ocasionalmente, la AWS consola cambia de región cuando te mueves de un servicio a otro. | Asegúrese de verificar lo seleccionado Región de AWS cada vez que cambie de un servicio a otro.El Región de AWS selector está en la esquina superior derecha de la ventana de la consola. | 
| Puede resultar difícil identificar los problemas de conectividad de Db2 desde. CodeBuild | Para solucionar problemas de conectividad, añada el siguiente comando de DB2 conexión al `buildspec.yml` archivo. Esta adición lo ayudará a depurar y resolver los problemas de conectividad.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| En ocasiones, el panel de roles de la consola de IAM no muestra inmediatamente la política de IAM que ha creado. | Si se produce un retraso, actualice la pantalla para mostrar la información más reciente. | 

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

**Documentación de IBM**
+ [Tipos de controladores y IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Descarga de tipos de controladores y IBM Data Server Client](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentación**
+ [Guía del usuario de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guía del usuario](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Guía del usuario](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Guía del usuario](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guía del usuario](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guía del usuario** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Información adicional
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild política**

Sustituya los marcadores de posición `<RegionID>`, `<AccountID>`, `<SubnetARN>`, `<BucketARN>` y `<DB2CredSecretARN>` por sus propios valores.

```
{"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 política**

Sustituya los marcadores de posición `<BucketARN>` y `<ConnectionARN>` por sus propios valores.

```
{
    "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`**

Sustituya el marcador de posición `<your-bucket-name>` con el nombre real de su bucket de 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
```

# Cree un PAC de servidor empresarial Micro Focus con Amazon EC2 Auto Scaling y Systems Manager
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager"></a>

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

*Peter Woods, ninguno*

*Abraham Rondon, Micro Focus*

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

Este patrón introduce una arquitectura escalable para aplicaciones de mainframe que utilizan [Micro Focus Enterprise Server en Scale-Out Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html) y un grupo de EC2 Auto Scaling de Amazon Elastic Compute Cloud (Amazon) en Amazon Web Services ().AWS La solución está totalmente automatizada con AWS Systems Manager los ganchos de ciclo de vida EC2 de Amazon Auto Scaling. Al usar este patrón, puede configurar sus aplicaciones de mainframe en línea y por lotes para lograr una alta resiliencia escalando vertical y horizontalmente de forma automática en función de sus demandas de capacidad. 

**nota**  
Este patrón se probó con la versión 6.0 de Micro Focus Enterprise Server. Para la versión 8, consulte [Configurar Micro Focus Runtime (en Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Requisitos previos y limitaciones
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Software y licencia de Micro Focus Enterprise Server. Para obtener más información, contacte con el departamento de [ventas de Micro Focus](https://www.microfocus.com/en-us/contact/contactme).
+ Comprender el concepto de reconstrucción y entrega de una aplicación de mainframe a ejecutar en Micro Focus Enterprise Server. Para obtener información general, consulte [Hoja de datos de Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Comprender los conceptos de clúster de rendimiento y disponibilidad escalable horizontalmente de Micro Focus Enterprise Server. Para más información, consulte la [documentación de Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Comprensión del concepto general de aplicación de mainframe DevOps con integración continua (CI). Para ver un patrón de orientación AWS prescriptiva desarrollado por AWS Micro Focus, consulte [Modernización de mainframe: puesta DevOps en marcha AWS con](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) Micro Focus.

**nota**  
Este patrón se probó con la versión 6 de Micro Focus Enterprise Server. Para la versión 8, consulte [Configurar Micro Focus Runtime (en Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Limitaciones**
+ Para obtener una lista de las plataformas compatibles con Micro Focus Enterprise Server, consulte la [hoja de datos de Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Los scripts y las pruebas utilizados en este patrón se basan en Amazon EC2 Windows Server 2019; no se probaron otras versiones y sistemas operativos de Windows Server para este patrón.
+ El patrón se basa en Micro Focus Enterprise Server 6.0 para Windows; no se han probado versiones anteriores o posteriores para desarrollar este patrón.

**Versiones de producto**
+ Micro Focus Enterprise Server 6.0
+ Windows Server 2019

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

En un entorno de mainframe convencional, debe aprovisionar el hardware para alojar las aplicaciones y los datos corporativos. Para hacer frente a los picos de demanda estacionales, mensuales, trimestrales o incluso imprevistos o sin precedentes, los usuarios de mainframe deben *escalar horizontalmente* sus capacidades adquiriendo capacidad de almacenamiento y procesamiento adicionales. El aumento de la cantidad de recursos de almacenamiento y capacidad de cómputo mejora el rendimiento general, pero el escalado no es lineal.

Este no es el caso cuando comienza a adoptar un modelo de consumo bajo demanda en AWS mediante los servidores Amazon EC2 Auto Scaling y Micro Focus Enterprise. En las siguientes secciones se explica en detalle cómo crear una arquitectura de aplicaciones de mainframe escalable y totalmente automatizada mediante el clúster de rendimiento y disponibilidad escalable (PAC) de Micro Focus Enterprise Server con un grupo de Amazon EC2 Auto Scaling. 

**Arquitectura de escalado automático de Micro Focus Enterprise Server**

En primer lugar, es importante conocer los conceptos básicos de Micro Focus Enterprise Server. Este entorno proporciona un entorno de implementación x86 compatible con mainframe para aplicaciones que tradicionalmente se ejecutaban en el mainframe de IBM. Ofrece ejecuciones en línea y por lotes, así como un entorno de transacciones compatible con:
+ IBM COBOL
+ IBM PL/I
+ Trabajos por lotes en IBM JCL
+ Transacciones de IBM CICS e IMS TM
+ Servicios web
+ Utilidades de procesamiento por lotes comunes, incluida SORT

Micro Focus Enterprise Server permite la ejecución de aplicaciones de mainframe con cambios mínimos. Las cargas de trabajo de mainframe existentes se pueden trasladar a plataformas x86 y modernizarse para aprovechar las extensiones nativas en la nube de AWS y así expandirse rápidamente a nuevos mercados o geografías. 

El [patrón AWS Prescriptive Guidance Modernization: DevOps on AWS with Micro](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) Focus introdujo la arquitectura para acelerar el desarrollo y las pruebas de aplicaciones de mainframe en AWS mediante Micro Focus Enterprise Developer y Enterprise Test Server con AWS y AWS CodePipeline . CodeBuild Este patrón se centra en la implementación de aplicaciones de mainframe en el entorno de producción de AWS para lograr una alta disponibilidad y resiliencia.

En un entorno de producción de mainframe, es posible que haya configurado IBM Parallel Sysplex en el mainframe para lograr un alto rendimiento y una alta disponibilidad. Para crear una arquitectura escalable similar a Sysplex, Micro Focus introdujo el clúster de rendimiento y disponibilidad (PAC) en Enterprise Server. PACs admiten la implementación de aplicaciones de mainframe en múltiples regiones de Enterprise Server administradas como una sola imagen y escaladas en instancias de Amazon EC2 . PACs también permiten un rendimiento predecible de las aplicaciones y del sistema bajo demanda. 

En un PAC, varias instancias de Enterprise Server funcionan juntas como una sola entidad lógica. Por lo tanto, el fallo de una instancia de Enterprise Server no interrumpirá la continuidad del negocio, ya que la capacidad se comparte con otras regiones, mientras que las nuevas instancias se inician automáticamente con la funcionalidad estándar del sector, como un grupo de Amazon EC2 Auto Scaling. Esto elimina los puntos únicos de fallo y mejora la resiliencia ante problemas de hardware, red y aplicaciones. Las instancias de Enterprise Server ampliadas se pueden operar y administrar mediante la administración web común de servidores empresariales (ESCWA) APIs, lo que simplifica el mantenimiento operativo y la facilidad de servicio de los servidores empresariales. 

**nota**  
Micro Focus recomienda que el [clúster de rendimiento y disponibilidad (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) esté formado por, al menos, tres regiones de Enterprise Server. Así, la disponibilidad no se verá comprometida en caso de que una región de Enterprise Server falle o requiera mantenimiento.

La configuración del PAC requiere un servicio de administración de base de datos relacional (RDBMS) compatible para administrar la base de datos regional, una base de datos interregional y las bases de datos de almacenes de datos opcionales. Es necesario usar una base de datos de almacén de datos para gestionar los archivos de Virtual Storage Access Method (VSAM). La compatibilidad con el gestor de archivos de base de datos de Micro Focus mejora la disponibilidad y la escalabilidad. Entre las opciones admitidas se incluyen las siguientes: RDBMSs 
+ Microsoft SQL Server 2009 o posterior
+ PostgreSQL 10.x, incluida la edición compatible con PostgreSQL de Amazon Aurora
+ DB2 10.4 y versiones posteriores

Para obtener más información sobre los requisitos de RDBMS y PAC compatibles, consulte [Micro Focus Enterprise Server: requisitos previos](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) y [Micro Focus Enterprise Server: configuración de PAC recomendada](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html).

El siguiente diagrama muestra una configuración de arquitectura de AWS típica para un PAC de Micro Focus. 

![\[Una arquitectura de tres zonas de disponibilidad con cinco pasos que se describen en una tabla después del diagrama.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **component** | **Descripción** | 
| --- |--- |--- |
| 1 | Grupo de escalado automático de instancias de Enterprise Server | Configure un grupo de escalado automático implementado con las instancias de Enterprise Server en un PAC. Las CloudWatch alarmas de Amazon pueden aumentar o activar el número de instancias mediante CloudWatch métricas. | 
| 2 | Grupo de escalado automático de instancias ESCWA de Enterprise Server  | Configure un grupo de escalado automático implementado con Enterprise Server Common Web Administration (ESCWA). La CESPAO se encarga de la gestión de clústeres. APIs   Los servidores de ESCWA actúan como plano de control para añadir o eliminar Enterprise Server e iniciar o detener las regiones de Enterprise Server en el PAC durante los eventos de escalado automático de la instancia de Enterprise Server.   Como la instancia de ESCWA se usa únicamente para la gestión del PAC, su patrón de tráfico es predecible. y su escalado. automático (el requisito de capacidad deseado se puede establecer en 1).  | 
| 3 | Instancia de Amazon Aurora en una configuración Multi-AZ | Configure un sistema de administración de base de datos relacional (RDBMS) para alojar los archivos de datos de los usuarios y del sistema y compartirlos entre las instancias de Enterprise Server. | 
| 4 | Instancia y réplica de Amazon ElastiCache (Redis OSS) | Configure una instancia principal ElastiCache (Redis OSS) y al menos una réplica para alojar los datos de los usuarios y actuar como un repositorio escalable (SOR) para las instancias de Enterprise Server. Puede configurar uno o más [repositorios escalables horizontalmente](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) para almacenar tipos específicos de datos de usuario.   Enterprise Server emplea una base de datos NoSQL de Redis como SOR, [requisito fundamental para mantener la integridad del PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html). | 
| 5 | Equilibrador de carga de red | Configure un equilibrador de carga que proporcione un nombre de host para que las aplicaciones se conecten a los servicios proporcionados por las instancias de Enterprise Server (por ejemplo, acceder a la aplicación a través de un emulador 3270). | 

Estos componentes conforman el requisito mínimo para un clúster PAC de Micro Focus Enterprise Server. La siguiente sección trata sobre la automatización de la administración de clústeres.

**Uso de Automatización de AWS Systems Manager para escalar**

Una vez implementado el clúster PAC en AWS, el PAC se administra a través de Enterprise Server Common Web Administration (ESCWA) APIs. 

Para automatizar las tareas de administración de clústeres durante los eventos de escalado automático, puede utilizar los manuales de automatización de Systems Manager y Amazon EC2 Auto Scaling with Amazon EventBridge. La arquitectura de estas automatizaciones se muestra en el siguiente diagrama.

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


 


| 
| 
|  | **Componente** | **Descripción** | 
| --- |--- |--- |
| 1 | Enlace de ciclo de vida de escalado automático | Configura enlaces de ciclo de vida de escalado automático y envía notificaciones a Amazon EventBridge cuando se lancen nuevas instancias y las instancias existentes finalicen en el grupo de escalado automático. | 
| 2 | Amazon EventBridge | Configure una EventBridge regla de Amazon para enrutar los eventos de escalado automático a los objetivos del runbook de Systems Manager Automation. | 
| 3 | Manuales de procedimientos de Automation | Configure los manuales de automatización de Systems Manager para ejecutar PowerShell scripts de Windows e invoque a la CESPAO APIs para administrar el PAC. Para ver más ejemplos, consulte la sección *Información adicional*. | 
| 4 | Instancia ESCWA de Enterprise Server en un grupo de escalado automático | Configurar una instancia ESCWA de Enterprise Server en un grupo de escalado automático. La instancia de la CESPAO permite APIs gestionar el PAC.  | 

## Tools (Herramientas)
<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 proporciona el entorno de ejecución para aplicaciones creadas con cualquier variante de entorno de desarrollo integrado (IDE) de 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 le ayuda a garantizar que dispone del número correcto de EC2 instancias de Amazon disponibles para gestionar la carga de su aplicación. Puede crear colecciones de EC2 instancias, denominadas grupos de Auto Scaling, y especificar un número mínimo y máximo de instancias.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html): Amazon ElastiCache es un servicio web para configurar, administrar y escalar un almacén de datos en memoria distribuido o un entorno de caché en la nube. Proporciona una capacidad de almacenamiento en caché de alto rendimiento, escalable y rentable.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html): Amazon Relational Database Service (Amazon RDS) es un servicio web que facilita la configuración, el funcionamiento y el escalado de una base de datos relacional en la nube de AWS. Proporciona una capacidad rentable y de tamaño ajustable para una base de datos relacional y se ocupa de las tareas comunes de administración de bases de datos. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html): AWS Systems Manager es un servicio que puede utilizar para ver y controlar su infraestructura en AWS. Mediante la consola de Systems Manager, puede ver los datos operativos de varios servicios de AWS y automatizar las tareas operativas en sus recursos de AWS. Systems Manager le ayuda a mantener la seguridad y la conformidad mediante el análisis de sus instancias administradas y el informe sobre las infracciones de las políticas que detecte o la toma de medidas correctivas con respecto a estas.

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

### Crear una instancia de Amazon Aurora
<a name="create-an-amazon-aurora-instance"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una CloudFormation plantilla de AWS para una instancia de Amazon Aurora. | Utilice el [fragmento de código de ejemplo de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html) para crear una CloudFormation plantilla que cree una instancia de Amazon Aurora compatible con PostgreSQL Edition. | Arquitecto de la nube | 
| Implemente una CloudFormation pila para crear la instancia de Amazon Aurora. | Use la CloudFormation plantilla para crear una instancia compatible con Aurora PostgreSQL que tenga habilitada la replicación Multi-AZ para las cargas de trabajo de producción. | Arquitecto de la nube | 
| Configure los ajustes de conexión a la base de datos para Enterprise Server. | Siga las instrucciones de la [documentación de Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html) para preparar las cadenas de conexión y la configuración de la base de datos para Micro Focus Enterprise Server. |  DevOps Ingeniero de datos, ingeniero | 

### Crear un ElastiCache clúster de Amazon para la instancia de Redis
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crea una CloudFormation plantilla para el ElastiCache clúster de Amazon para la instancia de Redis. | Utilice el [fragmento de código de ejemplo de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html) para crear una CloudFormation plantilla que cree un ElastiCache clúster de Amazon para la instancia de Redis. | Arquitecto de la nube | 
| Implemente la CloudFormation pila para crear un ElastiCache clúster de Amazon para la instancia de Redis. | Cree el ElastiCache clúster de Amazon para la instancia de Redis que tiene habilitada la replicación Multi-AZ para las cargas de trabajo de producción. | Arquitecto de la nube | 
| Configure los ajustes de conexión de Enterprise Server PSOR. | Siga las instrucciones de la [documentación de Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) para preparar la configuración de la conexión del repositorio Scale-Out PAC (PSOR) para Micro Focus Enterprise Server PAC. | DevOps ingeniero | 

### Cree un grupo de escalado automático de ESCWA para Micro Focus Enterprise Server
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una AMI de Micro Focus Enterprise Server. | Cree una instancia de Amazon EC2 Windows Server e instale el binario de Micro Focus Enterprise Server en la EC2 instancia. Cree una Amazon Machine Image (AMI) de la EC2 instancia. Para más información, consulte la [documentación de instalación de Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Arquitecto de la nube | 
| Cree una CloudFormation plantilla para Enterprise Server ESCWA.  | Use el [fragmento de código de ejemplo de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) para crear una plantilla de una pila personalizada de Enterprise Server ESCWA en un grupo de escalado automático. | Arquitecto de la nube | 
| Implemente la CloudFormation pila para crear un grupo de EC2 escalado de Amazon para Enterprise Server ESCWA. | Utilice la CloudFormation plantilla para implementar el grupo de escalado automático con la AMI de la CESPAO de Micro Focus Enterprise Server creada en la historia anterior. | Arquitecto de la nube | 

### Cree de un manual de procedimientos de Automatización de AWS Systems Manager
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una CloudFormation plantilla para un manual de automatización de Systems Manager. | Utilice los fragmentos de código de ejemplo de la sección de *información adicional* para crear una CloudFormation plantilla que cree un manual de automatización de Systems Manager para automatizar la creación de PAC, la ampliación de Enterprise Server y la ampliación horizontal de Enterprise Server. | Arquitecto de la nube | 
| Implemente la CloudFormation pila que contiene el manual de ejecución de Systems Manager Automation. | Utilice la CloudFormation plantilla para implementar una pila que contenga el manual de automatización para la creación de PAC, el escalado de Enterprise Server y el escalado de Enterprise Server. | Arquitecto de la nube | 

### Cree un grupo de escalado automático para Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una CloudFormation plantilla para configurar un grupo de escalado automático para Micro Focus Enterprise Server. | Utilice el [fragmento de código de ejemplo de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) para crear una CloudFormation plantilla que cree un grupo de escalado automático. Esta plantilla reutilizará la misma AMI que se creó para la instancia de Micro Focus Enterprise Server ESCWA. A continuación, utilice un [fragmento de código de ejemplo de AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) para crear el evento del ciclo de vida de escalado automático y configure Amazon EventBridge para filtrar los eventos de escalado horizontal y horizontal en la misma plantilla. CloudFormation  | Arquitecto de la nube | 
| Implemente la CloudFormation pila para el grupo de escalado automático de los servidores empresariales Micro Focus. | Implemente la CloudFormation pila que contiene el grupo de escalado automático para los servidores Micro Focus Enterprise. | Arquitecto de la nube | 

## Recursos relacionados
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Clúster de rendimiento y disponibilidad (PAC) de Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Ganchos del ciclo de vida de Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Ejecutar automatizaciones con activadores mediante EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

## Información adicional
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-additional"></a>

Los siguientes escenarios deben automatizarse para reducir o escalar horizontalmente los clústeres de PAC.

**Automatización para iniciar o recrear un PAC**

Al inicio de un clúster de PAC, Enterprise Server requiere que la CESPAO lo invoque APIs para crear una configuración de PAC. Esta acción inicia y agrega regiones de Enterprise Server al PAC. Para crear o volver a crear un PAC, siga estos pasos: 

1. Configure un [repositorio escalable horizontalmente de PAC (PSOR)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) en ESCWA con un nombre determinado.

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

1. Cree un PAC con un nombre determinado y adjúntele el PSOR.

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

1. Configure la base de datos regional y la base de datos interregional si es la primera vez que configura un PAC.
**nota**  
En este paso se usan consultas SQL y la herramienta **dbhfhadmin** de la línea de comandos de Micro Focus Enterprise Suite para crear la base de datos e importar los datos iniciales.

1. Instale la definición de PAC en las regiones de Enterprise Server.

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

1. Inicie las regiones de Enterprise Server en el PAC.

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

Los pasos anteriores se pueden implementar mediante un script de Windows PowerShell . 

En los pasos siguientes se explica cómo crear una automatización para crear un PAC mediante la reutilización del PowerShell script de Windows.

1. Crea una plantilla de EC2 lanzamiento de Amazon que descargue o cree el PowerShell script de Windows como parte del proceso de arranque. Por ejemplo, puede utilizar los datos EC2 del usuario para descargar el script desde un bucket de Amazon Simple Storage Service (Amazon S3).

1. Cree un runbook de AWS Systems Manager Automation para invocar el script de Windows PowerShell .

1. Asocie el manual de procedimientos a la instancia de ESCWA mediante la etiqueta de instancia.

1. Cree un grupo de escalado automático ESCWA utilizando la plantilla de lanzamiento. 

Puede usar el siguiente CloudFormation fragmento de AWS de ejemplo para crear el runbook de automatización.

* CloudFormation Fragmento de ejemplo de un manual de automatización de Systems Manager utilizado para la creación de un 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"
```

Para obtener más información, consulte [Micro Focus Enterprise Server: Configuración de un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

**Automatización para escalado horizontal con una nueva instancia de Enterprise Server**

Cuando una instancia de Enterprise Server se escala horizontalmente, su región de Enterprise Server debe añadirse al PAC. En los siguientes pasos se explica cómo invocar a la CESPAO APIs y añadir la región de Enterprise Server al PAC. 

1. Instale la definición de PAC en las regiones de Enterprise Server.

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

1. Inicie en caliente la región en el PAC.

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

1. Agregue la instancia de Enterprise Server al equilibrador de carga asociando el grupo de escalado automático al equilibrador de carga.

Los pasos anteriores se pueden implementar mediante un script de Windows PowerShell . Para obtener más información, consulte [Micro Focus Enterprise Server: Configuración de un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

Los siguientes pasos se pueden utilizar para crear una automatización basada en eventos que permita añadir una instancia de Enterprise Server recién lanzada a un PAC reutilizando el PowerShell script de Windows. 

1. Cree una plantilla de EC2 lanzamiento de Amazon para una instancia de Enterprise Server que aprovisione una región de Enterprise Server durante su arranque. Por ejemplo, puede usar el comando mfds de Micro Focus Enterprise Server para importar una configuración regional. Para obtener más detalles y ver las opciones disponibles para este comando, consulte la [referencia de Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html).

1. Cree un grupo de escalado automático de Enterprise Server que emplee la plantilla de lanzamiento creada en el paso anterior.

1. Cree un manual de automatización de Systems Manager para invocar el script de Windows PowerShell . 

1. Asocie el manual de procedimientos a la instancia de ESCWA mediante la etiqueta de instancia.

1. Cree una EventBridge regla de Amazon para filtrar el evento EC2 Instance Launch Successful para el grupo de escalado automático de Enterprise Server y cree el objetivo para usar el manual de automatización.

Puede usar el siguiente CloudFormation fragmento de ejemplo para crear el manual de automatización y la regla. EventBridge 

* CloudFormation Fragmento de ejemplo de Systems Manager utilizado para escalar instancias de 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"
```

**Automatización para reducir horizontalmente una instancia de Enterprise Server**

Al igual que con la ampliación *horizontal*, cuando se amplía una instancia de Enterprise Server, se inicia la acción de finalización del ciclo de vida EC2 de la instancia, y se necesitan las siguientes llamadas al proceso y a la API para eliminar una instancia de Micro Focus Enterprise Server del PAC. 

1. Detenga la región de la instancia de Enterprise Server que está finalizando.

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

1. Elimine la instancia de Enterprise Server del PAC.

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

1. Envíe una señal para continuar con la finalización de la instancia de Enterprise Server.

Los pasos anteriores se pueden implementar en un script de Windows. PowerShell Para obtener más información sobre este proceso, consulte el [documento de Micro Focus Enterprise Server: Administración de un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

En los siguientes pasos se explica cómo crear una automatización basada en eventos para cerrar una instancia de Enterprise Server desde un PAC mediante la reutilización del script de Windows. PowerShell  

1. Cree un manual de automatización de Systems Manager para invocar el script de Windows PowerShell .

1. Asocie el manual de procedimientos a la instancia de ESCWA mediante la etiqueta de instancia.

1. Cree un enlace automático para el ciclo de vida de un grupo de escalado, por EC2 ejemplo, la terminación.

1. Cree una EventBridge regla de Amazon para filtrar el evento de acción del ciclo EC2 de vida de finalización de la instancia para el grupo de escalado automático de Enterprise Server y cree el objetivo para usar el manual de automatización. 

Puede utilizar la siguiente CloudFormation plantilla de ejemplo para crear un manual, un enlace de ciclo de vida y una EventBridge regla de Systems Manager Automation.

* CloudFormation Fragmento de ejemplo de un manual de automatización de Systems Manager utilizado para escalar en una instancia de Enterprise Server*

```
  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
```

**Automatización para un activador de escalado EC2 automático de Amazon**

El proceso de configuración de una política de escalado para instancias de Enterprise Server requiere comprender el comportamiento de la aplicación. En la mayoría de los casos, puede establecer políticas de escalado de seguimiento de objetivos. Por ejemplo, puedes usar el uso promedio de la CPU como CloudWatch métrica de Amazon para configurar la política de escalado automático. Para obtener más información, consulte [Políticas de escalado de seguimiento de Target para Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Para aplicaciones con patrones de tráfico regulares, considere la posibilidad de usar una política de escalado predictivo. Para obtener más información, consulte [Escalado predictivo para Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html). 

# Cree un visor de archivos de unidad central avanzada en la nube de AWS
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

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

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

Este patrón proporciona ejemplos de código y pasos para ayudarlo a crear una herramienta avanzada para buscar y revisar los archivos de formato fijo de su unidad central mediante los servicios sin servidor de AWS. El patrón proporciona un ejemplo de cómo convertir un archivo de entrada de mainframe en un documento de Amazon OpenSearch Service para navegar y buscar. La herramienta de visualización de archivos puede ayudarle a lograr lo siguiente:
+ Conservar la misma estructura y diseño de archivos de unidad central para mantener la coherencia en su entorno de migración de AWS objetivo (por ejemplo, puede mantener el mismo diseño para los archivos en una aplicación por lotes que transmite archivos a terceros)
+ Acelerar el desarrollo y las pruebas durante la migración de su unidad central
+ Dar soporte a las actividades de mantenimiento después de la migración

## Requisitos previos y limitaciones
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Una nube privada virtual (VPC) con una subred a la que pueda acceder la plataforma antigua
+ 
**nota**  
Un archivo de entrada y su correspondiente cuaderno de texto en lenguaje común orientado a los negocios (COBOL) (: Para ver ejemplos de archivos de entrada y cuadernos de texto COBOL, consulte en el repositorio. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub Para obtener más información sobre los cuadernos de COBOL, consulte la Guía de programación [empresarial de COBOL para z/OS ](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf) 6.3 en el sitio web de IBM.)

**Limitaciones**
+ El análisis de los copybook está limitado a no más de dos niveles anidados (SE PRODUCE)

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

**Pila de tecnología de origen**
+ Archivos de entrada en formato [FB (bloqueado fijo)](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats)
+ Diseño de copybook de COBOL

**Pila de tecnología de destino**
+ Amazon Athena
+  OpenSearch Servicio Amazon
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Lambda
+ AWS Step Functions

**Arquitectura de destino**

El siguiente diagrama muestra el proceso de analizar y convertir un archivo de entrada del ordenador central en un documento de OpenSearch servicio para su navegación y búsqueda.

![\[Proceso para analizar y convertir el archivo de entrada del ordenador central en un servicio. OpenSearch\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Un usuario administrador o una aplicación envía los archivos de entrada a un bucket de S3 y los copybook de COBOL a otro bucket de S3.

1. 
**nota**  
El bucket de S3 con los archivos de entrada invoca una función de Lambda que inicia un flujo de trabajo de Step Functions sin servidor. : El uso de un activador de eventos de S3 y una función de Lambda para impulsar el flujo de trabajo de Step Functions en este patrón es opcional. Los ejemplos de GitHub código de este patrón no incluyen el uso de estos servicios, pero puede usarlos según sus necesidades.

1. El flujo de trabajo de Step Functions coordina todos los procesos por lotes de las siguientes funciones de Lambda:
   + La función `s3copybookparser.py` analiza el diseño del copybook y extrae los atributos de los campos, los tipos de datos y las compensaciones (necesarios para el procesamiento de los datos de entrada).
   + La función `s3toathena.py` crea un diseño de tabla de Athena. Athena analiza los datos de entrada que procesa la función `s3toathena.py` y los convierte en un archivo CSV.
   + La `s3toelasticsearch.py` función ingiere el archivo de resultados del bucket de S3 y lo envía a OpenSearch Service.

1. Los usuarios acceden a los OpenSearch paneles con OpenSearch Service para recuperar los datos en varios formatos de tablas y columnas y, a continuación, ejecutar consultas con los datos indexados.

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

**Servicios de AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) es un servicio interactivo de consultas que le permite analizar datos directamente en Amazon Simple Storage Service (Amazon S3) usando SQL estándar.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice. En este patrón, se utiliza Lambda para implementar la lógica principal, como analizar archivos, convertir datos y cargar datos en OpenSearch Service para un acceso interactivo a los archivos.
+ [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) es un servicio gestionado que le ayuda a implementar, operar y escalar clústeres de OpenSearch servicios en la nube de AWS. En este patrón, utiliza OpenSearch Service para indexar los archivos convertidos y proporcionar capacidades de búsqueda interactiva a los usuarios.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ La [interfaz de la línea de comandos de AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que le permite interactuar con los servicios de AWS mediante comandos en su intérprete de comandos de línea de comandos.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) es un servicio de orquestación sin servidor que le ayuda a combinar funciones de Lambda y otros servicios de AWS para crear aplicaciones esenciales desde el punto de vista empresarial. En este patrón, se utilizan Step Functions para orquestar las funciones de Lambda.

**Otras herramientas**
+ [GitHub](https://github.com/)es un servicio de alojamiento de código que proporciona herramientas de colaboración y control de versiones.
+ [Python](https://www.python.org/) es un lenguaje de programación de alto nivel.

**Código**

El código de este patrón está disponible en el GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositorio.

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

### Prepare el entorno de destino
<a name="prepare-the-target-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el bucket de S3. | [Cree un bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) para almacenar los copybooks, los archivos de entrada y los archivos de salida. Recomendamos la siguiente estructura de carpetas para su bucket de S3:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 
| Cree la función s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 
| Cree la función s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 
| Cree la función s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 
| Cree el clúster OpenSearch de servicios. | **Cree el clúster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Conceder acceso al rol de IAM**Para proporcionar un acceso detallado al rol de IAM de la función de Lambda (`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`), haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 
| Cree Step Functions para la orquestación. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 

### Implemente y ejecute
<a name="deploy-and-run"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cargue los archivos de entrada y los copybooks en un bucket de S3;. | Descargue los archivos de ejemplo de la carpeta de ejemplos del [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositorio y cárguelos en el bucket de S3 que creó anteriormente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 
| Invoque los Step Functions. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/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>Por ejemplo:<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 general | 
| Valide la ejecución del flujo de trabajo en Step Functions. | En la [consola de Step Functions](https://console.aws.amazon.com/states/home), revise la ejecución del flujo de trabajo en el **inspector de gráficos**. Los estados de ejecución están codificados por colores para representar el estado de ejecución. Por ejemplo, el azul indica **In progress (En curso)**, el verde indica **Succeeded (Correcto)** y el rojo indica **Failed (Con error)**. También puede revisar la tabla de la sección **Historial de eventos de ejecución** para obtener información más detallada sobre los eventos de ejecución.Para ver un ejemplo de la ejecución de un flujo de trabajo gráfico, consulte el *gráfico de Step Functions* en la sección *Información adicional* de este patrón. | AWS general | 
| Valida los registros de entrega en Amazon CloudWatch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Para ver un ejemplo de registros de entregas correctos, consulta *los registros de CloudWatch entrega* en la sección de *información adicional* de este patrón. | AWS general | 
| Valide el archivo formateado en los OpenSearch paneles de control y realice las operaciones con los archivos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS general | 

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

**Referencias**
+ [Ejemplo de copybook de COBOL](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) (documentación de IBM)
+ [Ayuda de archivo BMC Compuware](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html) (documentación de BMC)

**Tutoriales**
+ [Tutorial: uso de un desencadenador de Amazon S3 para invocar una función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentación de AWS Lambda)
+ [¿Cómo creo un flujo de trabajo sin servidor con AWS Step Functions y AWS Lambda?](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/) (documentación de AWS)
+ [Uso de OpenSearch paneles con Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (documentación de AWS)

## Información adicional
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Gráfico de Step Functions**

En el siguiente ejemplo se muestra un gráfico de Step Functions. El gráfico muestra el estado de ejecución de las funciones de Lambda utilizadas en este patrón.

![\[El gráfico de Step Functions muestra el estado de ejecución de las funciones de Lambda utilizadas en este patrón.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch registros de entrega**

El siguiente ejemplo muestra los registros de entrega correctos para la ejecución de la ejecución `s3toelasticsearch`.


| 
| 
| 2022-08-10T15:53:33.033-05:00 | Número de documentos en trámite: 100 |  | 
| --- |--- |--- |
|  | 2022-08-10T15:53:33.171-05:00 | [INFO] 2022-08-10T 20:53:33 .171 Z a1b2c3d4-5678-90ab-cdef- post:443/\$1bulk [estado: 200 solicitud: 0.100 s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 2022-08-10T15:53:33.172-05:00 | Escritura masiva correcta: 100 documentos | 

# Almacenamiento en contenedores de las cargas de trabajo de mainframe que Blu Age ha modernizado
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

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

Este patrón proporciona un ejemplo de entorno de contenedores para ejecutar cargas de trabajo de mainframe que se han modernizado con la herramienta [Blu Age](https://www.bluage.com/). Blu Age convierte las cargas de trabajo de mainframe heredadas en código Java moderno. Este patrón proporciona un envoltorio alrededor de la aplicación de Java para que pueda ejecutarla mediante servicios de orquestación de contenedores como [Amazon Elastic Container Service (Amazon ECS)](https://aws.amazon.com/ecs/) o [Amazon Elastic Kubernetes Service (Amazon EKS)](https://aws.amazon.com/eks/).

Para obtener más información sobre la modernización de sus cargas de trabajo mediante el uso de Blu Age y los servicios de AWS, consulte estas publicaciones en las recomendaciones de AWS:
+ [Ejecución de cargas de trabajo de mainframe modernizadas de Blu Age en una infraestructura de AWS sin servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

Si necesita ayuda para utilizar Blu Age para modernizar las cargas de trabajo de sus mainframes, póngase en contacto con el equipo de Blu Age seleccionando la opción **Contactar con nuestros expertos** en el [sitio web de Blu Age](https://www.bluage.com/). Si necesita ayuda para migrar sus cargas de trabajo modernizadas a AWS, integrarlas con los servicios de AWS y pasarlas a producción, póngase en contacto con su administrador de cuentas de AWS o rellene el [formulario de AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Requisitos previos y limitaciones
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Requisitos previos **
+ Una aplicación Java modernizada creada por Blu Age. Para fines de prueba, este patrón proporciona un ejemplo de aplicación Java que puede utilizar como prueba de concepto.
+ Un entorno de [Docker](https://aws.amazon.com/docker/) que puede utilizar para crear el contenedor.

**Limitaciones**

Según la plataforma de orquestación de contenedores que utilice, es posible que los recursos que se puedan poner a disposición del contenedor (como la CPU, la RAM y el almacenamiento) estén limitados. Por ejemplo, si utiliza Amazon ECS con AWS Fargate, consulte la [documentación de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) para conocer los límites y las consideraciones.

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

**Pila de tecnología de origen**
+ Blu Age
+ Java

**Pila de tecnología de destino**
+ Docker

**Arquitectura de destino**

En el siguiente diagrama, se muestra la arquitectura de la aplicación Blu Age dentro de un contenedor de Docker.

![\[Aplicación Blu Age en un contenedor de Docker\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. El punto de entrada al contenedor es el script contenedor. Este script bash es responsable de preparar el entorno de tiempo de ejecución para la aplicación Blu Age y de procesar los resultados.

1. Las variables de entorno del contenedor se utilizan a fin de configurar variables en el script del contenedor, como los nombres de bucket de Amazon Simple Storage Service (Amazon S3) y las credenciales de la base de datos. Las variables de entorno las proporcionan AWS Secrets Manager o Parameter Store, una funcionalidad de AWS Systems Manager. Si utiliza Amazon ECS como servicio de orquestación de contenedores, también puede codificar las variables de entorno en la definición de tareas de Amazon ECS.

1. El script contenedor se encarga de introducir todos los archivos de entrada del bucket de S3 en el contenedor antes de ejecutar la aplicación Blu Age. La interfaz de la línea de comandos de AWS (AWS CLI) se instala en el contenedor. Esto proporciona un mecanismo de acceso a los objetos que se almacenan en Amazon S3 a través del punto de conexión de la nube privada virtual (VPC) de la puerta de enlace.

1. Es posible que el archivo Java Archive (JAR) de la aplicación Blu Age necesite comunicarse con otras orígenes de datos, como Amazon Aurora.

1. Una vez finalizado, el script contenedor entrega los archivos de salida resultantes a un bucket de S3 para su posterior procesamiento (por ejemplo, por parte de Amazon CloudWatch Logging Services). El patrón también permite enviar archivos de registro comprimidos a Amazon S3, si utiliza una alternativa al CloudWatch registro estándar.

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

**Servicios de AWS**
+ [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) es un servicio de registro de imágenes de contenedor administrado que es seguro, escalable y fiable.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) es un servicio de administración de contenedores escalable y rápido que ayuda a ejecutar, detener y administrar contenedores en un clúster.

**Herramientas**
+ [Docker](https://aws.amazon.com/docker/) es una plataforma de software para crear, probar e implementar aplicaciones. Docker agrupa el software en unidades estandarizadas denominadas [contenedores](https://aws.amazon.com/containers/), que contienen todo lo que el software necesita para ejecutarse, incluidas las bibliotecas, las herramientas del sistema, el código y el tiempo de ejecución. Puede usar Docker a fin de implementar y escalar aplicaciones en cualquier entorno.
+ [Bash](https://www.gnu.org/software/bash/manual/) es una interfaz de lenguaje de comandos (shell) para el sistema operativo GNU.
+ [Java](https://www.java.com/) es el lenguaje de programación y el entorno de desarrollo utilizados en este patrón.
+ [Blu Age](https://www.bluage.com/) es una herramienta de AWS Mainframe Modernization que convierte las cargas de trabajo de mainframe heredadas, incluidos el código de las aplicaciones, las dependencias y la infraestructura, en cargas de trabajo modernas para la nube.

**Repositorio de código**

El código de este patrón está disponible en el [repositorio de contenedores de muestras de GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Prácticas recomendadas
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Externalice las variables para alterar el comportamiento de su aplicación mediante variables de entorno. Estas variables permiten que la solución de orquestación de contenedores modifique el entorno de tiempo de ejecución sin tener que volver a construir el contenedor. Este patrón incluye ejemplos de variables de entorno que pueden ser útiles para las aplicaciones de Blu Age.
+ Valide cualquier dependencia de la aplicación antes de ejecutar la aplicación Blu Age. Por ejemplo, compruebe que la base de datos esté disponible y que las credenciales sean válidas. Escriba las pruebas en el script contenedor para comprobar las dependencias y, si no se cumplen, no las consiga antes de tiempo.
+ Utilice el registro detallado dentro del script contenedor. Interactuar directamente con un contenedor en ejecución puede resultar difícil, dependiendo de la plataforma de orquestación y del tiempo que lleve el trabajo. Asegúrese de que los resultados útiles estén escritos para ayudar a `STDOUT` a diagnosticar cualquier problema. Por ejemplo, el resultado puede incluir el contenido del directorio de trabajo de la aplicación antes y después de ejecutarla.

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

### Obtenga un archivo JAR de la aplicación Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Opción 1: trabajar con Blu Age a fin de obtener el archivo JAR de su aplicación. | El contenedor de este patrón requiere una aplicación Blu Age. Como alternativa, puede usar la aplicación Java de ejemplo que viene con este patrón para un prototipo.Trabaje con el equipo de Blu Age para obtener un archivo JAR para su aplicación que pueda incluir en el contenedor. Si el archivo JAR no está disponible, consulte la siguiente tarea para usar la aplicación de ejemplo en su lugar. | Arquitecto de la nube | 
| Opción 2: Cree o utilice el archivo JAR de la aplicación de muestra suministrado. | Este patrón proporciona un archivo JAR de muestra prediseñado. Este archivo genera las variables de entorno de la aplicación a `STDOUT` antes de dormir durante 30 segundos y salir.Este archivo recibe un nombre `bluAgeSample.jar` y se encuentra en la [carpeta docker](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker) del GitHub repositorio.[Si desea modificar el código y crear su propia versión del archivo JAR, utilice el código fuente que se encuentra en. /java\$1 sample/src/sample \$1java\$1app.java](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src) en el repositorio. GitHub Puede usar el script de compilación en [./java\$1sample/build.sh](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample) para compilar el código fuente de Java y crear un nuevo archivo JAR. | Desarrollador de aplicaciones | 

### Construya el contenedor de Blue Age
<a name="build-the-blu-age-container"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clona el repositorio. GitHub  | Clone el repositorio de código de muestra mediante el comando:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Utilice Docker para crear el contenedor. | Utilice Docker para crear el contenedor antes de enviarlo a un registro de Docker, como Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Pruebe el contenedor Blu Age. | (Opcional) Si es necesario, pruebe el contenedor en las instalaciones mediante el comando:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Autenticar en su repositorio de Docker. | Si planea usar Amazon ECR, siga las instrucciones de la [documentación de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) para instalar y configurar la AWS CLI y autenticar la CLI de Docker en su registro predeterminado.Le recomendamos que utilice el [get-login-password comando](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html) para la autenticación.  La [consola de Amazon ECR](https://console.aws.amazon.com/ecr/) proporciona una versión rellenada previamente de este comando si utiliza el botón **Ver comandos de extracción**. Para obtener más información, consulte la [documentación de 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 no piensa utilizar Amazon ECR, siga las instrucciones que se proporcionan para su sistema de registro de contenedores. | AWS DevOps | 
| Cree un repositorio de contenedores. | Cree un repositorio en Amazon ECR. Para obtener instrucciones, consulte el patrón [Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html).Si utiliza otro sistema de registro de contenedores, siga las instrucciones que se proporcionan para ese sistema. | AWS DevOps | 
| Etiquete su contenedor y colóquelo en el repositorio de destino. | Si utiliza Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Para obtener más información, consulte [Insertar una imagen de Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) en la *Guía del usuario de Amazon ECR*. | AWS DevOps | 

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

**Recursos de AWS**
+ [Repositorio de contenedores de muestras de AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Ejecución de cargas de trabajo de mainframe modernizadas de Blu Age en una infraestructura de AWS sin servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Uso de Amazon ECR con la AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) (*Guía del usuario de Amazon ECR*)
+ [Autenticación de registro privado](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Guía del usuario de Amazon ECR*)
+ [Documentación de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Documentación de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Recursos adicionales**
+ [Sitio web de Blu Age](https://www.bluage.com/)
+ [Sitio web de Docker](https://docker.com/)

# Convierta y desempaquete datos EBCDIC a ASCII en AWS mediante Python
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

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

Dado que los mainframe suelen alojar datos empresariales críticos, la modernización de estos datos es una de las tareas más importantes a la hora de migrar datos a la nube de Amazon Web Services (AWS) o a otro entorno de American Standard Code for Information Interchange (ASCII). En los mainframe, los datos suelen codificarse en un formato ampliado de código de intercambio decimal codificado en binario (EBCDIC). La exportación de bases de datos, los métodos de acceso al almacenamiento virtual (VSAM) o los archivos planos suelen producir archivos EBCDIC binarios empaquetados, que son más complejos de migrar. La solución de migración de bases de datos más usada es la captura de datos de cambios (CDC), que, en la mayoría de los casos, convierte automáticamente la codificación de los datos. Sin embargo, es posible que los mecanismos de CDC no estén disponibles para estas bases de datos, VSAM o archivos planos. En el caso de estos archivos, es necesario adoptar un enfoque alternativo para modernizar los datos.

Este patrón describe cómo modernizar los datos EBCDIC convirtiéndolos a formato ASCII. Tras la conversión, puede cargar los datos en bases de datos distribuidas o hacer que las aplicaciones en la nube procesen los datos directamente. El patrón utiliza el script de conversión y los archivos de muestra del [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositorio.

## Requisitos previos y limitaciones
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Un archivo de entrada EBCDIC y su correspondiente cuaderno en lenguaje común orientado a negocios (COBOL). En el repositorio se incluyen un archivo EBCDIC de muestra y un cuaderno de notas COBOL. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Para obtener más información sobre los cuadernos de COBOL, consulte la Guía de programación de [Enterprise COBOL for z/OS 6.4](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) en el sitio web de IBM.

**Limitaciones**
+ No es compatible con diseños de archivo definidos en COBOL. Deben estar disponibles por separado.

**Versiones de producto**
+ Python, versión 3.8 o posterior

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

**Pila de tecnología de origen**
+ Datos EBCDIC en un mainframe
+ Cuaderno COBOL

**Pila de tecnología de destino**
+ Instancia de Amazon Elastic Compute Cloud (Amazon EC2) en una nube privada virtual (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python y sus paquetes necesarios, JavaScript Object Notation (JSON), sys y datetime
+ Archivo plano ASCII listo para ser leído por una aplicación moderna o cargado en una tabla de base de datos relacional

**Arquitectura de destino**

![\[Datos EBCDIC convertidos a ASCII en una EC2 instancia mediante scripts de Python y un cuaderno COBOL\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


El diagrama de arquitectura muestra el proceso de conversión de un archivo EBCDIC en un archivo ASCII en una instancia: EC2 

1. Con el script **parse\$1copybook\$1to\$1json.py**, el cuaderno COBOL se convierte en un archivo JSON.

1. Con el archivo JSON y el script **extract\$1ebcdic\$1to\$1ascii.py**, los datos EBCDIC se convierten en un archivo ASCII.

**Automatizar y escalar**

Una vez que disponga de los recursos necesarios para las primeras conversiones manuales de archivos, puede automatizar la conversión de archivos. Este patrón no incluye instrucciones para la automatización. La conversión se puede automatizar de varias formas. A continuación, se muestra un posible enfoque:

1. Encapsular la interfaz de la línea de comandos de AWS (AWS CLI) y los comandos de script de Python en un script de intérprete de comandos.

1. Cree una función de AWS Lambda que envíe de forma asíncrona el trabajo del script de shell a una instancia. EC2 Para obtener más información, consulte [Programar trabajos de SSH con AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Crear un desencadenante de Amazon Simple Storage Service (Amazon S3) que invoque la función de Lambda cada vez que se cargue un archivo heredado. Para obtener más información, consulte [Utilizar un desencadenador de Amazon S3 para invocar una función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

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

**Servicios de AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) proporciona capacidad informática escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) proporciona volúmenes de almacenamiento a nivel de bloques para utilizarlos con instancias de Amazon Elastic Compute Cloud (Amazon). EC2
+ La [interfaz de la línea de comandos de AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que le permite interactuar con los servicios de AWS mediante comandos en su intérprete de comandos de línea de comandos.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.

**Otras herramientas**
+ [GitHub](https://github.com/)es un servicio de alojamiento de código que proporciona herramientas de colaboración y control de versiones.
+ [Python](https://www.python.org/) es un lenguaje de programación de alto nivel.

**Repositorio de código**

El código de este patrón está disponible en el [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositorio.

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

### Prepara la EC2 instancia
<a name="prepare-the-ec2-instance"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Lanza una EC2 instancia. | La EC2 instancia debe tener acceso saliente a Internet. Esto permite que la instancia acceda al código fuente de Python disponible en GitHub. Para crear una instancia:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS general | 
| Instala Git | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS general, Linux | 
| Instalación de Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS general, Linux | 
| Clona el GitHub repositorio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS general, GitHub | 

### Cree el archivo ASCII a partir de los datos del EBCDIC
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Convierta el cuaderno COBOL en el archivo de diseño JSON. | En la carpeta `mainframe-data-utilities`, ejecute el script **parse\$1copybook\$1to\$1json.py**. Este módulo de automatización lee el diseño del archivo de un cuaderno COBOL y crea un archivo JSON. Este archivo JSON contiene la información necesaria para interpretar y extraer los datos del archivo fuente. Se crearán los metadatos de JSON a partir del cuaderno COBOL. El siguiente comando convierte el cuaderno COBOL en un archivo 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>El script imprime los argumentos recibidos.<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>Para obtener más información sobre los argumentos, consulte el [archivo README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) del GitHub repositorio. | AWS general, Linux | 
| Inspeccione el archivo de diseño JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/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>Los atributos más importantes del archivo de diseño JSON son:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Para obtener más información sobre el archivo de diseño JSON, consulta el [archivo README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) del GitHub repositorio. | AWS general, JSON | 
| Cree el archivo ASCII.  | Ejecute el script **extract\$1ebcdic\$1to\$1ascii.py**, que se incluye en el repositorio clonado GitHub . Este script lee el archivo EBCDIC y escribe un archivo ASCII convertido y legible.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>A medida que el script procesa los datos del EBCDIC, imprime un mensaje por cada lote de 10 000 registros. Consulte el siguiente ejemplo.<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>Para obtener información sobre cómo cambiar la frecuencia de impresión, consulte el [archivo README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) del GitHub repositorio. | AWS general | 
| Examinar el archivo ASCII. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Si ha usado el archivo EBCDIC proporcionado como ejemplo, el primer registro del archivo ASCII será este.<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 general, Linux | 
| Evalúe el archivo EBCDIC. | En la EC2 consola de Amazon, introduce el siguiente comando. Esto abre el primer registro del archivo EBCDIC.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Si ha usado el archivo EBCDIC de ejemplo, el resultado es el siguiente.<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>Para evaluar la equivalencia entre los archivos de origen y de destino, es necesario un conocimiento exhaustivo de EBCDIC. Por ejemplo, el primer carácter del archivo EBCDIC de muestra es un guion (`-`). En la notación hexadecimal del archivo EBCDIC, este carácter se representa mediante `60`, y en la notación hexadecimal del archivo ASCII, este carácter se representa mediante `2D`. Para obtener una tabla EBCDIC-to-ASCII de conversión, consulte [EBCDIC a ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) en el sitio web de IBM. | AWS general, Linux, EBCDIC | 

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

**Referencias**
+ [El conjunto de caracteres EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentación de IBM)
+ [EBCDIC a ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) (documentación de IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (documentación de IBM)
+ [Conceptos básicos de JCL](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts) (documentación de IBM)
+ [Conéctate a tu instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) ( EC2 documentación de Amazon)

**Tutoriales**
+ [Programar trabajos de SSH con AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) (publicación del blog de AWS)
+ [Uso de un desencadenador de Amazon S3 para invocar una función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentación de AWS Lambda)

# Convierta archivos de mainframe del formato EBCDIC al formato ASCII delimitado por caracteres en Amazon S3 mediante 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*

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

Este patrón le muestra cómo lanzar una AWS Lambda función que convierte automáticamente los archivos EBCDIC (Extended Binary Coded Decimal Interchange Code) de mainframe en archivos del Código Estándar Estadounidense para el Intercambio de Información (ASCII) delimitados por caracteres. La función de Lambda se ejecuta después de cargar los archivos ASCII en un bucket de Amazon Simple Storage Service (Amazon S3). Tras la conversión de archivos, puede leer los archivos ASCII en cargas de trabajo basadas en x86 o cargarlos en bases de datos modernas.

El enfoque de conversión de archivos que se muestra en este patrón puede ayudarle a superar los desafíos que supone trabajar con archivos EBCDIC en entornos modernos. Los archivos codificados en EBCDIC suelen contener datos representados en formato binario o decimal empaquetado, y los campos tienen una longitud fija. Estas características crean obstáculos porque las cargas de trabajo modernas basadas en x86 o los entornos distribuidos suelen trabajar con datos codificados en ASCII y no pueden procesar archivos EBCDIC.

## Requisitos previos y limitaciones
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Un bucket de Amazon S3
+ Un usuario AWS Identity and Access Management (IAM) con permisos administrativos
+ AWS CloudShell
+ [Python 3.8.0](https://www.python.org/downloads/release/python-380/) o posterior
+ Archivo plano codificado en EBCDIC y su estructura de datos correspondiente en un cuaderno de texto común en un lenguaje empresarial común (COBOL)

**nota**  
Este patrón utiliza un archivo EBCDIC de muestra ([CLIENT.EBCDIC.txt](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)) y su cuaderno de texto COBOL correspondiente ([COBKS05.cpy](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy)). Ambos archivos están disponibles en el GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositorio.

**Limitaciones**
+ Los cuadernos de COBOL suelen contener múltiples definiciones de diseño. El [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)proyecto puede analizar este tipo de cuaderno, pero no puede deducir qué diseño considerar en la conversión de datos. Esto se debe a que los cuadernos no tienen esta lógica (que permanece en los programas COBOL). Por lo tanto, debe configurar manualmente las reglas para seleccionar los diseños después de analizar el cuaderno.
+ Este patrón está sujeto a las cuotas de [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

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

**Pila de tecnología de origen**
+ IBM z/OS, IBM i y otros sistemas EBCDIC
+ Archivos secuenciales con datos codificados en EBCDIC (como descargas de IBM Db2)
+ Cuaderno COBOL

**Pila de tecnología de destino**
+ Amazon S3
+ Notificaciones de eventos de Amazon S3
+ IAM
+ Función de Lambda
+ Python 3.8 o posterior
+ Utilidades de datos de unidad central
+ Metadatos JSON
+ Archivos ASCII delimitados por caracteres

**Arquitectura de destino**

El siguiente diagrama muestra una arquitectura para convertir archivos EBCDIC de mainframe en archivos ASCII.

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


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El usuario ejecuta el script del analizador del cuaderno para convertir el cuaderno COBOL en un archivo JSON.

1. El usuario carga los metadatos JSON en un bucket de Amazon S3. Esto hace que los metadatos sean legibles por la función de Lambda de conversión de datos.

1. El usuario o un proceso automatizado carga el archivo EBCDIC en el bucket de Amazon S3.

1. El evento de notificación de Amazon S3 activa la función de Lambda de conversión de datos.

1. AWS verifica los permisos de lectura/escritura del bucket de Amazon S3 para la función Lambda.

1. Lambda lee el archivo del bucket de Amazon S3 y lo convierte localmente de EBCDIC a ASCII.

1. Lambda registra el estado del proceso en Amazon. CloudWatch

1. Lambda vuelve a escribir el archivo ASCII en Amazon S3.

**nota**  
El script del analizador del cuaderno se ejecuta una sola vez para realizar la conversión de metadatos al formato JSON, que posteriormente se almacena en un bucket de Amazon S3. Tras la conversión inicial, todos los archivos EBCDIC que hagan referencia al mismo archivo JSON del bucket de Amazon S3 utilizarán la configuración de metadatos existente.

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

**Servicios de AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) le CloudWatch ayuda a supervisar las métricas de sus AWS recursos y las aplicaciones en las que se ejecuta AWS en tiempo real.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)es un shell basado en un navegador que puede utilizar para gestionar Servicios de AWS mediante AWS Command Line Interface (AWS CLI) y una gama de herramientas de desarrollo preinstaladas.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Lambda ejecuta el código solo cuando es necesario y escala la capacidad de manera automática, por lo que solo pagará por el tiempo informático que utilice.

**Otras herramientas**
+ [GitHub](https://github.com/)es un servicio de alojamiento de código que proporciona herramientas de colaboración y control de versiones.
+ [Python](https://www.python.org/) es un lenguaje de programación de alto nivel.

**Código**

El código de este patrón está disponible en el GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositorio.

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

Tenga en cuenta las siguientes prácticas recomendadas:
+ Establezca los permisos requeridos en el nivel de nombre de recurso de Amazon (ARN).
+ Otorgue siempre permisos con privilegios mínimos para las políticas de IAM. Para obtener más información, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la documentación de IAM.

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

### Cree variables de entorno y una carpeta de trabajo
<a name="create-environment-variables-and-a-working-folder"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear variables de entorno. | Copie las siguientes variables de entorno en un editor de texto y, a continuación, sustituya los valores `<placeholder>` del siguiente ejemplo por los valores de sus recursos:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Creará referencias a su bucket de Amazon S3 y Región de AWS más adelante. Cuenta de AWSPara definir las variables de entorno, abra la [CloudShell consola](https://console.aws.amazon.com/cloudshell/) y, a continuación, copie y pegue las variables de entorno actualizadas en la línea de comandos.Debe repetir este paso cada vez que se reinicie la CloudShell sesión. | AWS general | 
| Cree una carpeta de trabajo. | Para simplificar el proceso de limpieza de recursos más adelante, cree una carpeta de trabajo CloudShell ejecutando el siguiente comando:<pre>mkdir workdir; cd workdir</pre>Debe cambiar el directorio al directorio de trabajo (`workdir`) cada vez que pierda la conexión con la CloudShell sesión. | AWS general | 

### Definir una política y un rol de IAM
<a name="define-an-iam-role-and-policy"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una política de confianza para la función de Lambda. | El convertidor EBCDIC se ejecuta en una función de Lambda. La función debe tener un rol de IAM. Antes de crear el rol de IAM, debe definir un documento de política de confianza que permita a los recursos asumir esa política.Desde la carpeta de CloudShell trabajo, cree un documento de política ejecutando el siguiente comando:<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 general | 
| Crear el rol de IAM para la conversión de Lambda. | Para crear un rol de IAM, ejecute el siguiente AWS CLI comando desde la carpeta de CloudShell trabajo:<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | AWS general | 
| Cree el documento de política de IAM para la función de Lambda. | La función Lambda debe tener acceso de lectura y escritura al bucket de Amazon S3 y permisos de escritura para Amazon Logs. CloudWatch Para crear una política de IAM, ejecute el siguiente comando desde la carpeta de trabajo: CloudShell <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 general | 
| Adjuntar los documentos sobre la política de IAM al rol de IAM. | Para adjuntar la política de IAM a la función de IAM, introduzca el siguiente comando desde su CloudShell carpeta de trabajo:<pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | AWS general | 

### Crear la función de Lambda para la conversión de EBCDIC
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descargar el código fuente de conversión a EBCDIC. | Desde la carpeta de CloudShell trabajo, ejecute el siguiente comando para descargar el código mainframe-data-utilities fuente desde la que se encuentra: GitHub<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | AWS general | 
| Crear el paquete ZIP. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para crear el paquete ZIP que crea la función Lambda para la conversión a EBCDIC:<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | AWS general | 
| Crear la función de Lambda. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para crear la función Lambda para la conversión a 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> El diseño de las variables de entorno indica a la función de Lambda dónde residen los metadatos de JSON. | AWS general | 
| Crear la política basada en recursos para la función de Lambda. | En la carpeta de CloudShell trabajo, introduzca el siguiente comando para permitir que la notificación de eventos de Amazon S3 active la función Lambda para la conversión a 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 general | 

### Notificaciones de eventos de Amazon S3
<a name="create-the-s3-event-notification"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el documento de configuración para la notificación de eventos de Amazon S3. | La notificación de eventos de Amazon S3 inicia la función de Lambda de conversión EBCDIC cuando los archivos se colocan en la carpeta de entrada.Desde la carpeta de CloudShell trabajo, ejecute el siguiente comando para crear el documento JSON para la notificación de eventos de 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 general | 
| Crear notificaciones de eventos de Amazon S3. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para crear la notificación de eventos de Amazon S3:<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | AWS general | 

### Crear y cargar los metadatos JSON
<a name="create-and-upload-the-json-metadata"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Analizar el cuaderno de COBOL. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para convertir un cuaderno de COBOL de muestra en un archivo JSON (que define cómo leer y dividir correctamente el archivo de datos):<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 general | 
| Añada la regla de transformación. | El archivo de datos de ejemplo y su cuaderno de notas COBOL correspondiente son archivos de varios diseños. Esto significa que la conversión debe dividir los datos en función de determinadas reglas. En este caso, los bytes de las posiciones 3 y 4 de cada fila definen el diseño.Desde la carpeta de CloudShell trabajo, edite el `CLIENT.json` archivo y cambie el contenido de la siguiente `"transf-rule": [],` manera:<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> | Información general sobre AWS, lade IBM y Cobol | 
| Cargue los metadatos JSON en el bucket de Amazon S3. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente AWS CLI comando para cargar los metadatos de JSON en su bucket de Amazon S3:<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | AWS general | 

### Convertir el archivo EBCDIC
<a name="convert-the-ebcdic-file"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Envíe el archivo EBCDIC al bucket de Amazon S3. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para enviar el archivo EBCDIC al bucket de Amazon S3:<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Se recomienda configurar carpetas diferentes para los archivos de entrada (EBCDIC) y de salida (ASCII) para evitar volver a llamar a la función de conversión de Lambda cuando el archivo ASCII se cargue en el bucket de Amazon S3. | AWS general | 
| Comprobar la salida. | Desde la carpeta de CloudShell trabajo, introduce el siguiente comando para comprobar si el archivo ASCII se genera en tu bucket de Amazon S3:<pre>aws s3 ls s3://$bucket/</pre> La conversión de datos puede tardar varios segundos en realizarse. Le recomendamos que compruebe el archivo ASCII varias veces.Cuando el archivo ASCII esté disponible, introduzca el siguiente comando para mostrar el contenido del archivo convertido en el bucket de Amazon S3. Si lo necesita, podrá descargarlo o utilizarlo directamente del bucket de Amazon S3:<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Comprobar el contenido del archivo 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 general | 

### Limpiar el entorno
<a name="clean-the-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| (Opcional) Prepare las variables y la carpeta. | Si pierdes la conexión con CloudShell, vuelve a conectarte e introduce el siguiente comando para cambiar el directorio a la carpeta de trabajo:<pre>cd workdir</pre>Asegúrese de que las variables de entorno estén definidas:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | AWS general | 
| Eliminar la configuración de notificación para el bucket. | Desde la carpeta de CloudShell trabajo, ejecute el siguiente comando para eliminar la configuración de notificaciones de eventos de Amazon S3:<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | AWS general | 
| Elimine la función de Lambda. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para eliminar la función Lambda del convertidor EBCDIC:<pre>aws lambda delete-function \<br />--function-name E2A</pre> | AWS general | 
| Eliminar el rol y la política de IAM. | En la carpeta de CloudShell trabajo, introduzca el siguiente comando para eliminar la función y la política del conversor 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 general | 
| Elimine los archivos generados en el bucket de Amazon S3. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para eliminar los archivos generados en el bucket de 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 general | 
| Elimine la carpeta de trabajo. | Desde la carpeta de CloudShell trabajo, introduzca el siguiente comando para eliminarlos `workdir` y su contenido:<pre>cd ..; rm -Rf workdir</pre> | AWS general | 

## Recursos relacionados
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [Mainframe Data Utilities README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) () GitHub
+ [El conjunto de caracteres EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentación de IBM)
+ [EBCDIC a ASCII](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii) (documentación de IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (documentación de IBM)
+ [Uso de un activador de Amazon S3 para invocar una función AWS Lambda Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentación)

# Convertir archivos de datos de mainframe con diseños de registros complejos mediante Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

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

Nota: AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funciones similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Este patrón le muestra cómo convertir archivos de datos de mainframe con datos no textuales y diseños de registros complejos, pasando de la codificación de caracteres EBCDIC (código de intercambio decimal con código binario extendido) a la codificación de caracteres ASCII (Código estándar estadounidense para el intercambio de información) mediante un archivo de estructura de Micro Focus. Para completar la conversión de archivos, siga estos pasos:

1. Prepare un único archivo fuente que describa todos los elementos de datos y los diseños de registros de su entorno de mainframe.

1. Cree un archivo de estructura que contenga el diseño de registro de los datos mediante el editor de archivos de datos de Micro Focus como parte de las herramientas clásicas de archivos de datos o herramientas de archivos de datos de Micro Focus. El archivo de estructura identifica los datos no textuales para que pueda convertir correctamente los archivos del mainframe de EBCDIC a ASCII.

1. Pruebe el archivo de estructura mediante las herramientas clásicas de archivos de datos o las herramientas de archivos de datos.

## Requisitos previos y limitaciones
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Micro Focus Enterprise Developer para Windows, disponible a través de [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

**Versiones de producto**
+ Micro Focus Enterprise Server 7.0 y versiones posteriores

## Tools (Herramientas)
<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) proporciona el entorno de ejecución para las aplicaciones creadas con cualquier variante del entorno de desarrollo integrado (IDE) de Enterprise Developer.
+ [Las herramientas de archivos de datos clásicas](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) de Micro Focus le ayudan a convertir, navegar, editar y crear archivos de datos. Las herramientas clásicas para archivos de datos incluyen el [convertidor de archivos de datos](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFCV.html), el [editor de diseño de registros](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHRLMF.html) y el [editor de archivos de datos](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html).
+ [Las herramientas de archivos de datos](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) de Micro Focus le ayudan a crear, editar y mover archivos de datos. Las herramientas de archivos de datos incluyen el [editor de archivos de datos](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html), las [utilidades de conversión de archivos](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHCONV.html) y la [utilidad de línea de comandos de estructura de archivos de datos](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

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

### Preparación del archivo de origen
<a name="prepare-the-source-file"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Identificar los componentes de origen. | Identificar todos los diseños de registro posibles para el archivo, incluidas las redefiniciones que contengan datos no textuales.Si tiene diseños que contienen redefiniciones, debe reducir estos diseños a diseños únicos que describan cada posible permutación de la estructura de datos. Por lo general, los diseños de registros de un archivo de datos se pueden describir mediante los siguientes arquetipos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Para obtener más información sobre cómo crear diseños de registros aplanados para archivos que contienen diseños de registros complejos, consulte [Realojar aplicaciones EBCDIC en entornos ASCII para migraciones de mainframe](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html). | Desarrollador de aplicaciones | 
| Identificar las condiciones de diseño de los registros. | En el caso de los archivos con varios diseños de registro o los archivos que contienen diseños complejos con una cláusula REDEFINES, identifique los datos y las condiciones de un registro que puede usar para definir qué diseño usar durante la conversión. Le recomendamos que analice esta tarea con un experto en la materia (SME) que conozca los programas que procesan estos archivos.Por ejemplo, un archivo puede contener dos tipos de registros que contienen datos no textuales. Puede inspeccionar el código fuente y encontrar código similar al siguiente:<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>El código ayuda a identificar lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Puede documentar los valores que utiliza este campo para asociar los diseños de registros con los registros de datos correctos del archivo. | Desarrollador de aplicaciones | 
| Cree el archivo de origen. | Si el archivo se describe en varios archivos fuente o si el diseño de registros contiene datos no textuales que están subordinados a una cláusula REDEFINES, cree un nuevo archivo fuente que contenga los diseños de registros. No es necesario que el nuevo programa describa el archivo mediante las instrucciones SELECT y FD. El programa simplemente puede contener las descripciones de los registros en 10 niveles dentro de Working-Storage.Puede crear un archivo de origen para cada archivo de datos o crear un archivo de origen maestro que describa todos los archivos de datos. | Desarrollador de aplicaciones | 
| Compilar el código fuente. | Compile el archivo fuente para crear el diccionario de datos. Se recomienda compilar el archivo fuente mediante el juego de caracteres EBCDIC. Si utiliza la directiva IBMCOMP o las directivas ODOSLIDE, también debe utilizar estas directivas en el archivo fuente.IBMCOMP afecta al almacenamiento de bytes de los campos COMP y ODOSLIDE afecta al relleno cuando se producen estructuras variables. Si estas directivas están configuradas incorrectamente, la herramienta de conversión no leerá el registro de datos correctamente. Esto da como resultado datos incorrectos en el archivo convertido. | Desarrollador de aplicaciones | 

### (Opción A) Cree el archivo de estructura con las herramientas clásicas de archivos de datos
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie la herramienta y cargue el diccionario. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desarrollador de aplicaciones | 
| Cree el diseño de registro predeterminado. | Utilice el diseño de registro predeterminado para todos los registros que no coincidan con ningún diseño condicional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)El diseño predeterminado aparece en el panel **Diseños** y se puede identificar mediante el icono rojo de la carpeta. | Desarrollador de aplicaciones | 
| Cree un diseño de registro condicional. | Utilice el diseño de registro condicional cuando haya más de un diseño de registro en un archivo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desarrollador de aplicaciones | 

### (Opción B) Cree el archivo de estructura mediante las herramientas de archivos de datos
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie la herramienta y cargue el diccionario. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desarrollador de aplicaciones | 
| Cree el diseño de registro predeterminado. | Utilice el diseño de registro predeterminado para todos los registros que no coincidan con ningún diseño condicional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)El diseño predeterminado aparece en el panel **Diseños** y se puede identificar mediante el icono azul en forma de “D”. | Desarrollador de aplicaciones | 
| Cree un diseño de registro condicional. | Utilice el diseño de registro condicional cuando haya más de un diseño de registro en un archivo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desarrollador de aplicaciones | 

### (Opción A) Pruebe el archivo de estructura con las herramientas clásicas de archivos de datos
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Probar un archivo de datos EBCDIC. | Confirme que puede usar el archivo de estructura para ver correctamente un archivo de datos de prueba del EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desarrollador de aplicaciones | 

### (Opción B) Pruebe el archivo de estructura con las herramientas de archivos de datos
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Probar un archivo de datos EBCDIC. | Confirme que puede usar el archivo de estructura para ver correctamente un archivo de datos de prueba del EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desarrollador de aplicaciones | 

### Pruebe la conversión de archivos de datos
<a name="test-data-file-conversion"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Probar la conversión de un archivo EBCDIC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desarrollador de aplicaciones | 

## Recursos relacionados
<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) (documentación de Micro Focus)
+ [Unidades centrales y código heredado](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (Blog de AWS)
+ [AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/) Guidance (documentación de AWS)
+ [Documentación de AWS](https://docs.aws.amazon.com/index.html) (documentación de AWS)
+ [Referencia general de AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (documentación de AWS)
+ [Glosario de AWS](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) (documentación de AWS)

# Implementar un entorno para aplicaciones de Blu Age en contenedores mediante Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

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

La migración de las cargas de trabajo de mainframe heredadas a arquitecturas de nube modernas puede eliminar los costos de mantenimiento de un mainframe, costos que solo aumentan a medida que el entorno envejece. Sin embargo, la migración de los trabajos desde un mainframe puede plantear desafíos únicos. Es posible que los recursos internos no estén familiarizados con la lógica del trabajo, y el alto rendimiento de los mainframes en estas tareas especializadas puede resultar difícil de replicar en comparación con el rendimiento generalizado de los mainframes en estas tareas especializadas. CPUs Reescribir estas tareas puede ser una tarea ardua y requerir un esfuerzo considerable.

Blu Age convierte las cargas de trabajo heredadas de los mainframes en código Java moderno, que luego puede ejecutar como un contenedor.

Este patrón proporciona una muestra de arquitectura sin servidor para ejecutar una aplicación en contenedores que se ha modernizado con la herramienta Blu Age. Los archivos HashiCorp Terraform incluidos crearán una arquitectura segura para la organización de los contenedores de Blu Age, que admitirá tanto las tareas por lotes como los servicios en tiempo real.

Para obtener más información sobre la modernización de sus cargas de trabajo mediante el uso de Blu Age y los servicios de AWS, consulte estas publicaciones en las recomendaciones de AWS:
+ [Ejecución de cargas de trabajo de mainframe que se han modernizado con Blu Age en una infraestructura sin servidor de AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Almacenamiento en contenedores de las cargas de trabajo de mainframe que Blu Age ha modernizado](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

Si necesita ayuda para utilizar Blu Age para modernizar las cargas de trabajo de sus mainframes, póngase en contacto con el equipo de Blu Age seleccionando la opción **Contactar con nuestros expertos** en el [sitio web de Blu Age](https://www.bluage.com/). Si necesita ayuda para migrar sus cargas de trabajo modernizadas a AWS, integrarlas con los servicios de AWS y pasarlas a producción, póngase en contacto con su administrador de cuentas de AWS o rellene el [formulario de AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Requisitos previos y limitaciones
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Requisitos previos **
+ La aplicación en contenedores de muestra de Blu Age que proporciona el patrón [Almacenamiento en contenedores de las cargas de trabajo de mainframe que Blu Age ha modernizado](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html). La aplicación de muestra proporciona la lógica necesaria para gestionar el procesamiento de las entradas y salidas de la aplicación modernizada y se puede integrar con esta arquitectura.
+ Se requiere Terraform para implementar estos recursos.

**Limitaciones**
+ Amazon Elastic Container Service (Amazon ECS) limita los recursos de tareas que se pueden poner a disposición del contenedor. Estos recursos incluyen la CPU, la RAM y el almacenamiento. Por ejemplo, cuando se utiliza Amazon ECS con AWS Fargate, se [aplican los límites de recursos de la tarea](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Versiones de producto**

Esta solución se probó con las siguientes versiones:
+ Terraform 1.3.6
+ Proveedor 4.46.0 de AWS para Terraform

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

**Pila de tecnología de origen**
+ Blu Age
+ Terraform

**Pila de tecnología de destino**
+ Amazon Aurora compatible con PostgreSQL
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ Servicio AWS Identity and Access Management (IAM)
+ AWS Key Management Server (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notification Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Arquitectura de destino**

En el siguiente diagrama se muestra la arquitectura de la solución.

![\[La descripción sigue el diagrama.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. La solución implementa los siguientes roles de IAM:
   + Rol de tarea por lotes
   + Rol de ejecución de tareas por lotes
   + Rol de tarea de servicio
   + Rol de ejecución de tareas del servicio
   + Rol de Step Functions
   + Rol de AWS Backup
   + Rol de monitorización mejorada RDS.

   Los roles se ajustan a los principios de acceso de privilegios mínimos.

1. Amazon ECR se utiliza para almacenar la imagen del contenedor que está orquestada por este patrón.

1. El Almacén de parámetros de AWS Systems Manager proporciona datos de configuración sobre cada entorno a la definición de tareas de Amazon ECS durante el tiempo de ejecución.

1. AWS Secrets Manager proporciona datos de configuración sobre cada entorno a la definición de tareas de Amazon ECS durante el tiempo de ejecución. AWS KMS cifró los datos.

1. Los módulos Terraform crean definiciones de tareas de Amazon ECS para todas las tareas en tiempo real y por lotes.

1. Amazon ECS ejecuta una tarea por lotes utilizando AWS Fargate como motor de computación. Se trata de una tarea de corta duración, iniciada según lo exigido por AWS Step Functions.

1. Amazon Aurora, compatible con PostgreSQL, proporciona una base de datos para admitir la aplicación modernizada. Esto reemplaza a las bases de datos de mainframe, como IBM Db2 o IBM IMS DB.

1. Amazon ECS ejecuta un servicio de larga duración para ofrecer una carga de trabajo modernizada en tiempo real. Estas aplicaciones sin estado se ejecutan de forma permanente con contenedores repartidos entre las zonas de disponibilidad.

1. Se utiliza un equilibrador de carga de red para conceder acceso a la carga de trabajo en tiempo real. El equilibrador de carga de red es compatible con protocolos anteriores, como IBM CICS. Como alternativa, puede utilizar el equilibrador de carga de aplicación con cargas de trabajo basadas en HTTP.

1. Amazon S3 proporciona almacenamiento de objetos para las entradas y salidas de los trabajos. El contenedor debe gestionar las operaciones de extracción y envío a Amazon S3 a fin de preparar el directorio de trabajo para la aplicación Blu Age.

1. El servicio AWS Step Functions se utiliza para orquestar la ejecución de las tareas de Amazon ECS para procesar las cargas de trabajo por lotes.

1. Los temas de SNS para cada carga de trabajo por lotes se utilizan para integrar la aplicación modernizada con otros sistemas, como el correo electrónico, o para iniciar acciones adicionales, como entregar los objetos de salida de Amazon S3 a FTP.

**nota**  
De forma predeterminada, la solución no tiene acceso a Internet. Este patrón supone que la nube privada virtual (VPC) se conectará a otras redes mediante un servicio como [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/). Por lo tanto, se implementan varios puntos de conexión de VPC de interfaz para permitir el acceso a los servicios de AWS que utiliza la solución. Para activar el acceso directo a Internet, puede utilizar el conmutador del módulo Terraform para reemplazar los puntos de conexión de VPC por una puerta de enlace de Internet y los recursos asociados.

**Automatizar y escalar**

El uso de recursos sin servidor en todo este patrón ayuda a garantizar que, al escalar horizontalmente, haya pocos límites en la escala de este diseño. Esto reduce los *problemas de vecino ruidoso*, como la competencia por los recursos de computación que podría surgir en el mainframe original. Las tareas por lotes se pueden programar para que se ejecuten simultáneamente según sea necesario.

Los contenedores individuales están limitados por los tamaños máximos admitidos por Fargate. Para obtener más información, consulte la sección [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) en la documentación de Amazon ECS.

Para [escalar las cargas de trabajo en tiempo real de forma horizontal](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), puede añadir contenedores.

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

**Servicios de AWS**
+ La [edición de Amazon Aurora compatible con PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) es un motor de base de datos relacional compatible con ACID, completamente administrado que le permite configurar, utilizar y escalar implementaciones de PostgreSQL.
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) es un servicio totalmente gestionado que le ayuda a centralizar y automatizar la protección de datos Servicios de AWS tanto en la nube como en las instalaciones.
+ [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) es un servicio de registro de imágenes de contenedor administrado que es seguro, escalable y fiable.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) es un servicio de administración de contenedores escalable y rápido que ayuda a ejecutar, detener y administrar contenedores en un clúster.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) facilita poder crear y controlar claves criptográficas para proteger los datos.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) le permite reemplazar las credenciales codificadas en el código, incluidas las contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación.
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) es un servicio de organización sin servidor que le ayuda a combinar AWS Lambda funciones y otras Servicios de AWS para crear aplicaciones críticas para la empresa.
+ El [Almacén de parámetros de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) proporciona un almacenamiento seguro y jerárquico para administrar los datos de configuración y los secretos.

**Otros servicios**
+ [HashiCorp Terraform](https://www.terraform.io/docs) es una herramienta de infraestructura como código (IaC) que facilita usar el código para aprovisionar y administrar los recursos y la infraestructura en la nube. Este patrón usa Terraform para crear la arquitectura de muestra.

**Repositorio de código**

El código fuente de este patrón está disponible en el repositorio GitHub [Blu Age Sample ECS Infrastructure (](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform#aws-blu-age-sample-ecs-infrastructure-terraform)Terraform).

## Prácticas recomendadas
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Para los entornos de prueba, use características como la opción `forceDate` para configurar la aplicación modernizada para generar resultados de prueba consistentes ejecutándola siempre durante un período de tiempo conocido.
+ Ajuste cada tarea de forma individual para consumir la cantidad óptima de recursos. Puede utilizar [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) para obtener orientación sobre posibles cuellos de botella.

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

### Preparación del entorno para la implementación
<a name="prepare-the-environment-for-deployment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el código fuente de la solución. | [Clone el código de la solución del proyecto. GitHub ](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform) | DevOps ingeniero | 
| Impulse el entorno mediante la implementación de recursos para almacenar el estado de Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingeniero | 

### Implementar la infraestructura de soluciones
<a name="deploy-the-solution-infrastructure"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Revise y actualice la configuración de Terraform. | En el directorio raíz, abra el archivo `main.tf,`, revise el contenido y considere la posibilidad de realizar las siguientes actualizaciones:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingeniero | 
| Implemente el archivo Terraform. | Desde su terminal, ejecute el comando `terraform apply` para implementar todos los recursos. Revise los cambios generados por Terraform e introduzca **sí** para iniciar la compilación.Tenga en cuenta que la implementación de esta infraestructura puede tardar más de 15 minutos. | DevOps ingeniero | 

### (Opcional) Implementar una aplicación de Blu Age en contenedores válida
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Envíe la imagen del contenedor Blu Age a Amazon ECR. | Introduzca el contenedor en el repositorio de Amazon ECR que creó en la épica anterior. Para obtener instrucciones, consulte la [documentación de Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).Anote el URI de la imagen del contenedor. | DevOps ingeniero | 
| Actualice Terraform para que haga referencia a la imagen del contenedor de Blu Age. | Actualice el archivo `main.tf`** **para que haga referencia a la imagen del contenedor que usted subió. | DevOps ingeniero | 
| Volver a implementar el archivo Terraform. | Desde su terminal, ejecute `terraform apply` para implementar todos los recursos. Revise las actualizaciones sugeridas por Terraform y, a continuación, introduzca **sí** para continuar con la implementación. | DevOps ingeniero | 

## Recursos relacionados
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Blu Age](https://www.bluage.com/)
+ [Ejecución de cargas de trabajo de mainframe que se han modernizado con Blu Age en una infraestructura sin servidor de AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Almacenamiento en contenedores de las cargas de trabajo de mainframe que Blu Age ha modernizado](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

# Genere información sobre z/OS datos de Db2 mediante AWS Mainframe Modernization Amazon Q en Quick Sight
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight"></a>

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

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

Nota: AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funciones similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Si su organización aloja datos críticos para la empresa en un entorno de mainframe IBM Db2, obtener información a partir de esos datos es fundamental para impulsar el crecimiento y la innovación. Al desbloquear los datos del mainframe, puede crear inteligencia empresarial más rápida, segura y escalable para acelerar la toma de decisiones, el crecimiento y la innovación basados en los datos en la nube de Amazon Web Services (AWS).

Este patrón presenta una solución para generar información empresarial y crear narrativas compartibles a partir de datos de mainframe en IBM Db2 for tables. z/OS Los cambios en los datos del mainframe se transmiten al tema de [Amazon Managed Streaming para Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) mediante la [replicación de datos de AWS Mainframe Modernization con Precisely](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html). Mediante la [ingesta de transmisión de Amazon Redshift,](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html) los datos de los temas de Amazon MSK se almacenan en tablas de almacenes de datos de [Amazon Redshift sin servidor](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) para su análisis en Amazon QuickSight.

Una vez que los datos estén disponibles en QuickSight, puede utilizar las peticiones en lenguaje natural con [Amazon Q en QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) para crear resúmenes de los datos, formular preguntas y generar historias basadas en datos. No tiene que escribir consultas SQL ni aprender una herramienta de inteligencia empresarial (BI).

**Contexto empresarial**

Este patrón presenta una solución para casos de uso de análisis de datos e información de datos de mainframe. Con el patrón, puede crear un panel visual para los datos de su empresa. Para demostrar la solución, este patrón utiliza una empresa de atención médica que ofrece planes médicos, dentales y oftalmológicos a sus miembros en los EE. UU. En este ejemplo, la información demográfica y del plan de los miembros se almacena en las tablas de datos de IBM Db2 for. z/OS El panel visual muestra lo siguiente:
+ Distribución de miembros por región
+ Distribución de miembros por género
+ Distribución de miembros por edad
+ Distribución de miembros por tipo de plan
+ Miembros que no han completado la inmunización preventiva

Para ver ejemplos de la distribución de los miembros por región y de los miembros que no han completado la inmunización preventiva, consulte la sección de información adicional.

Después de crear el panel, se genera una historia basada en datos que explica la información del análisis anterior. Las historias basadas en datos proporcionan recomendaciones para aumentar el número de miembros que han completado la inmunización preventiva.

## Requisitos previos y limitaciones
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS. Esta solución se creó y probó en Amazon Linux 2 en Amazon Elastic Compute Cloud (Amazon EC2).
+ Una nube privada virtual (VPC) con una subred a la que puede acceder el sistema de su mainframe.
+ Una base de datos de mainframe con datos empresariales. Para ver los datos de ejemplo que se utilizan para crear y probar esta solución, consulte la sección de *archivos adjuntos*.
+ La captura de datos de cambios (CDC) está habilitada en las z/OS tablas de Db2. Para habilitar la CDC en Db2 z/OS, consulte la [documentación de IBM](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes).
+ Precisamente Connect CDC z/OS se instala en el z/OS sistema que aloja las bases de datos de origen. La z/OS imagen CDC for de Precision Connect se proporciona como un archivo zip dentro de la imagen [Amazon Machine Image AWS Mainframe Modernization (AMI) de Data Replication for IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1). Para instalar Precily Connect CDC for z/OS en el mainframe, consulte la [documentación de instalación de Precision](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).

**Limitaciones**
+ Los datos de Db2 de su mainframe deben estar en un tipo de datos compatible con Precisely Connect CDC. Para obtener una lista de los tipos de datos compatibles, consulte la [documentación de 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).
+ Los datos de Amazon MSK deben estar en un tipo de datos compatible con Amazon Redshift. Para obtener una lista de los tipos de datos compatibles, consulte la [documentación de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ Amazon Redshift tiene diferentes comportamientos y límites de tamaño para los distintos tipos de datos. Para obtener más información, consulte la [documentación de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ Los datos casi en tiempo real de QuickSight dependen del intervalo de actualización establecido para la base de datos de Amazon Redshift.
+ Algunas Servicios de AWS no están disponibles en todas Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte [Servicios de AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Amazon Q en QuickSight no está disponible actualmente en todas las regiones que admiten QuickSight. Para ver los puntos de conexión específicos, consulte la página [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

**Versiones de producto**
+ AWS Mainframe Modernization Replicación de datos con la versión 4.1.44 de Precision
+ Python, versión 3.6 o posterior
+ Apache Kafka versión 3.5.1****

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

**Arquitectura de destino**

El siguiente diagrama muestra una arquitectura para generar información empresarial a partir de datos del mainframe mediante la [replicación de datos de AWS Mainframe Modernization con Precisely](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) y Amazon Q en QuickSight.

![\[Proceso de siete pasos desde el z/OS mainframe hasta Amazon. QuickSight\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El agente de lectura de registro de Precisely lee los datos de los registros de Db2 y los escribe en un almacenamiento transitorio de un sistema de archivos OMVS del mainframe.

1. El agente publicador lee los registros de Db2 sin procesar del almacenamiento transitorio.

1. El daemon del controlador en las instalaciones autentica, autoriza, supervisa y administra las operaciones.

1. El Apply Agent se implementa en Amazon EC2 mediante la AMI preconfigurada. Se conecta con el agente publicador a través del daemon del controlador mediante TCP/IP. El agente de aplicación envía los datos a Amazon MSK mediante varios trabajadores para lograr un alto rendimiento.

1. Los trabajadores escriben los datos en el tema de Amazon MSK en formato JSON. Como objetivo intermedio para los mensajes replicados, Amazon MSK ofrece capacidades de conmutación por error automatizadas y de alta disponibilidad.

1. La ingesta de transmisión de Amazon Redshift proporciona una ingesta de datos de alta velocidad y baja latencia de Amazon MSK a una base de datos de Amazon Redshift sin servidor. Un procedimiento almacenado en Amazon Redshift realiza la reconciliación de los datos de cambios (insert/update/deletes) del mainframe en tablas de Amazon Redshift. Estas tablas de Amazon Redshift sirven como origen de análisis de datos para QuickSight.

1. Los usuarios acceden a los datos en QuickSight para obtener análisis e información. Puede usar Amazon Q en QuickSight para interactuar con los datos mediante peticiones en lenguaje natural.

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

**Servicios de AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona una capacidad informática escalable en el Nube de AWS. Puede iniciar tantos servidores virtuales como necesite y escalarlos o reducirlos horizontalmente con rapidez.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) le ayuda a crear y controlar claves criptográficas para proteger sus datos.
+ [Amazon Managed Streaming para Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) es un servicio completamente administrado que le permite crear y ejecutar aplicaciones que utilizan Apache Kafka para procesar datos de streaming.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) es un servicio de inteligencia empresarial (BI) a escala de la nube que lo ayuda a visualizar, analizar y generar informes de sus datos en un único panel. Este patrón utiliza las capacidades de BI generativa de Amazon Q en QuickSight.
+ [Amazon Redshift sin servidor](https://aws.amazon.com/redshift/redshift-serverless/) es una opción sin servidor de Amazon Redshift que hace que sea más eficiente ejecutar y escalar los análisis en cuestión de segundos sin necesidad de configurar y administrar la infraestructura del almacén de datos.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) lo ayuda a reemplazar las credenciales codificadas en su código, incluidas contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación.

**Otras herramientas**
+ [Precisely Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) recopila e integra datos de sistemas heredados en plataformas de datos y en la nube.

**Repositorio de código**

El código de este patrón está disponible en el repositorio GitHub [Mainframe\$1 DataInsights \$1change\$1data\$1reconciliation](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition). El código es un procedimiento almacenado en Amazon Redshift. Este procedimiento almacenado concilia los cambios en los datos del mainframe (inserciones, actualizaciones y eliminaciones) de Amazon MSK en las tablas de Amazon Redshift. Estas tablas de Amazon Redshift sirven como origen de análisis de datos para QuickSight.

## Prácticas recomendadas
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Siga las [prácticas recomendadas](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html) al configurar su clúster de Amazon MSK.
+ Siga las [prácticas recomendadas de análisis de datos](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations) de Amazon Redshift para mejorar el rendimiento
+ Al crear los roles AWS Identity and Access Management (IAM) para la configuración de Precially, siga el principio de privilegios mínimos y conceda los permisos mínimos necesarios para realizar una tarea. Para obtener más información, consulte [Otorgar privilegio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) y [Prácticas recomendadas de seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la documentación de IAM.

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

### Configure la replicación AWS Mainframe Modernization de datos con Precision on Amazon EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure un grupo de seguridad. | Para conectarse al daemon del controlador y al clúster de Amazon MSK, [cree un grupo de seguridad](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) para la EC2 instancia. Agregue las siguientes reglas de entrada y salida:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Anote el nombre del grupo de seguridad. Deberá hacer referencia al nombre cuando lance la EC2 instancia y configure el clúster de Amazon MSK. | DevOps ingeniero, AWS DevOps | 
| Cree una política de IAM y un rol de IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps ingeniero, administrador de sistemas de AWS | 
| Aprovisione una EC2 instancia. | Para aprovisionar una EC2 instancia para ejecutar Precily CDC y conectarse a Amazon MSK, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador DevOps e ingeniero de AWS | 

### Configuración de Amazon MSK
<a name="set-up-msk"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el clúster de Amazon MSK. | Para crear un clúster de Amazon MSK, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Un clúster aprovisionado típico tarda hasta 15 minutos en crearse. Una vez creado el clúster, su estado cambia de **Creando** a **Activo**. | AWS DevOps, administrador de la nube | 
| Configure la SASL/SCRAM autenticación. | Para configurar la SASL/SCRAM autenticación de un clúster de Amazon MSK, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquitecto de la nube | 
| Cree el tema de Amazon MSK. | Para crear el tema de Amazon MSK, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de la nube | 

### Configura el motor de aplicación precisa en Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure los scripts de Precisely para replicar los cambios en los datos. | Para configurar los scripts de Precisely Connect CDC para replicar los datos modificados del mainframe al tema de Amazon MSK, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Para archivos .ddl de ejemplo, consulte la sección [Información adicional](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional). | Desarrollador de aplicaciones, arquitecto de la nube | 
| Genere la clave ACL de red. | Para generar la clave de lista de control de acceso de la red (ACL de la red), haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquitecto de nube, AWS DevOps | 

### Preparación del entorno de origen del mainframe
<a name="prepare-the-mainframe-source-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure los valores predeterminados en la pantalla del ISPF. | Para configurar los ajustes predeterminados en el Interactive System Productivity Facility (ISPF), siga las instrucciones de la [documentación 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/Start-ISPF-Panel-Interface). | Administrador del sistema de mainframe | 
| Configure el daemon del controlador. | Para configurar el daemon del controlador, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador del sistema de mainframe | 
| Configure el publicador. | Para configurar el publicador, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador del sistema de mainframe | 
| Actualice el archivo de configuración del daemon. | Para actualizar los detalles del publicador en el archivo de configuración del daemon del controlador, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador del sistema de mainframe | 
| Cree el trabajo para iniciar el daemon del controlador. | Para crear el trabajo, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador del sistema de mainframe | 
| Genere el archivo JCL del publicador de capturas. | Para generar el archivo JCL del publicador de capturas, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador del sistema de mainframe | 
| Compruebe y actualice las CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador del sistema de mainframe | 
| Envíe los archivos JCL. | Envíe los siguientes archivos JCL que ha configurado en los pasos anteriores:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Tras enviar los archivos JCL, puede iniciar el motor de aplicación en Precily en la EC2 instancia. | Administrador del sistema de mainframe | 

### Ejecución y validación de las CDC
<a name="run-and-validate-cdc"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie el motor de aplicación y valide la CDC. | Para iniciar el motor de aplicación en la EC2 instancia y validar el CDC, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquitecto de la nube, desarrollador de aplicaciones | 
| Valide los registros del tema de Amazon MSK. | Para leer el mensaje del tema de Kafka, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Desarrollador de aplicaciones, arquitecto de la nube | 

### Almacene los datos de cambios del mainframe en un almacén de datos de Amazon Redshift sin servidor
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Amazon Redshift sin servidor. | Para crear un almacén de datos de Amazon Redshift sin servidor, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)En el panel de Amazon Redshift sin servidor, compruebe que el espacio de nombres y el grupo de trabajo se crearon y están disponibles. Para este patrón de ejemplo, el proceso puede tardar entre 2 y 5 minutos. | Ingeniero de datos | 
| Configure el rol de IAM y la política de confianza necesarios para la ingesta de transmisión. | Para configurar la ingesta de transmisión de Amazon Redshift sin servidor desde Amazon MSK, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingeniero de datos | 
| Conecte Amazon Redshift sin servidor a Amazon MSK. | Para conectarse al tema de Amazon MSK, cree un esquema externo en Amazon Redshift sin servidor. En el editor de consultas V2 de Amazon Redshift, ejecute el siguiente comando SQL y, a continuación, sustituya `'iam_role_arn'` por el rol que creó anteriormente y `'MSK_cluster_arn` por el ARN de su clúster.<pre>CREATE EXTERNAL SCHEMA member_schema<br />FROM MSK<br />IAM_ROLE 'iam_role_arn'<br />AUTHENTICATION iam<br />URI 'MSK_cluster_arn';</pre> | Ingeniero de migraciones | 
| Cree una vista materializada. | Para consumir los datos del tema de Amazon MSK en Amazon Redshift sin servidor, cree una vista materializada. En el editor de consultas V2 de Amazon Redshift, ejecute los siguientes comandos de SQL y sustituya `<MSK_Topic_name>` por el nombre del tema de 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> | Ingeniero de migraciones | 
| Cree tablas de destino en Amazon Redshift. | Las tablas de Amazon Redshift proporcionan la entrada para QuickSight. Este patrón utiliza las tablas `member_dtls` y `member_plans`, que coinciden con las tablas de Db2 de origen del mainframe.Para crear las dos tablas en Amazon Redshift, ejecute los siguientes comandos de SQL en el editor de consultas V2 de Amazon Redshift:<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> | Ingeniero de migraciones | 
| Cree un procedimiento almacenado en Amazon Redshift. | Este patrón utiliza un procedimiento almacenado para sincronizar los datos de cambios (`INSERT`, `UPDATE`, `DELETE`) del mainframe de origen con la tabla de almacén de datos de Amazon Redshift de destino para su análisis en QuickSight.Para crear el procedimiento almacenado en Amazon Redshift, utilice el editor de consultas v2 para ejecutar el código del procedimiento almacenado que se encuentra en el GitHub repositorio. | Ingeniero de migraciones | 
| Lea la vista materializada de la transmisión y cárguela en las tablas de destino. | El procedimiento almacenado lee los cambios de datos de la vista materializada de transmisión y carga los cambios de datos en las tablas de destino. Para ejecutar el procedimiento almacenado, use el siguiente comando:<pre>call SP_Members_Load();</pre>Puede utilizar [Amazon EventBridge](https://aws.amazon.com/eventbridge/) para programar los trabajos en su almacén de datos de Amazon Redshift para llamar a este procedimiento almacenado en función de sus requisitos de latencia de datos. EventBridge ejecuta los trabajos a intervalos fijos. Para comprobar si la llamada anterior al procedimiento se ha completado, puede que necesite utilizar un mecanismo como una máquina de estado de [AWS Step Functions](https://aws.amazon.com/step-functions/). Para obtener más información, consulte los siguientes recursos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Otra opción es utilizar el editor de consultas V2 de Amazon Redshift para programar la actualización. Para obtener más información, consulte [Consultas programadas con el editor de consultas v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Ingeniero de migraciones | 

### Conexión de QuickSight a los datos en Amazon Redshift
<a name="connect-quick-sight-to-data-in-rs"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure QuickSight. | Para configurar QuickSight, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Ingeniero de migraciones | 
| Configure una conexión segura entre QuickSight y Amazon Redshift. | Para configurar una conexión segura entre QuickSight y Amazon Redshift, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingeniero de migraciones | 
| Cree un conjunto de datos para QuickSight. | Para crear un conjunto de datos para QuickSight desde Amazon Redshift, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingeniero de migraciones | 
| Una el conjunto de datos. | Para crear análisis en QuickSight, combine las dos tablas; para ello, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join).En el panel **Configuración de unión**, elija **Izquierda** en **Tipo de unión**. En **Cláusulas de unión**, utilice `memberid from member_plans = memberid from members_details`. | Ingeniero de migraciones | 

### Obtenga información empresarial a partir de los datos del mainframe mediante Amazon Q en QuickSight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Amazon Q en QuickSight. | Para configurar la capacidad de BI generativa de Amazon Q in QuickSight, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html). | Ingeniero de migraciones | 
| Analice los datos del mainframe y cree un panel visual. | Para analizar y visualizar sus datos en QuickSight, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Cuando termine, puede publicar el panel de control para compartirlo con otras personas de su organización. Para ver ejemplos, consulte el *panel visual del mainframe* en la sección de [información adicional](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). | Ingeniero de migraciones | 

### Cree una historia basada en datos con Amazon Q en QuickSight a partir de datos del mainframe.
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una historia basada en datos. | Cree una historia basada en datos para explicar la información del análisis anterior y genere una recomendación para aumentar la inmunización preventiva de los miembros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingeniero de migraciones | 
| Vea la historia basada en datos generada. | Para ver la historia basada en datos generada, selecciónela en la página de **Historias basadas en datos**. | Ingeniero de migraciones | 
| Edite una historia basada en datos generada. | Para cambiar el formato, el diseño o los elementos visuales de una historia basada en datos, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Ingeniero de migraciones | 
| Comparta una historia basada en datos. | Para compartir una historia basada en datos, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingeniero de migraciones | 

## Resolución de problemas
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Se ha producido el error `Validate Connection` al crear un conjunto de datos de QuickSight a Amazon Redshift. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| Al intentar iniciar el motor de aplicación en la EC2 instancia, aparece el siguiente error:`-bash: sqdeng: command not found` | Para exportar la ruta de instalación de `sqdata`, ejecute el siguiente comando:<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| Al intentar iniciar el motor de aplicación, se produce uno de los siguientes errores de conexión:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Compruebe el spool del mainframe para asegurarse de que los trabajos del daemon del controlador se estén ejecutando. | 

## Recursos relacionados
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Genere información mediante AWS Mainframe Modernization Amazon Q en 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) (patrón)
+ [Genere información de datos con AWS Mainframe Modernization Amazon Q en Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (demostración)
+ [AWS Mainframe Modernization - Replicación de datos para IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Ingesta de transmisión de Amazon Redshift a una vista materializada](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## Información adicional
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**Ejemplo: archivos .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.ddl*

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

**Ejemplo de archivo .sqd**

Sustituya** **`<kafka topic name>` por el nombre de su tema de 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;
```

**Panel visual de mainframe**

Amazon Q creó el siguiente elemento visual de datos en QuickSight para la pregunta de análisis `show member distribution by region`*.*

![\[Las regiones noreste y sudoeste tienen 8 miembros, la región sudoeste tiene 5 miembros y la región medio oeste tiene 4 miembros.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


Amazon Q creó el siguiente elemento visual de datos en QuickSight para la pregunta `show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[La región sudeste muestra 6, la región sudoeste muestra 5 y el medio oeste muestra 4.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Salida de una historia basada en datos**

Las siguientes capturas de pantalla muestran secciones de la historia basada en datos creada por Amazon Q en QuickSight para la petición `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`.

En la introducción, la historia basada en datos recomienda elegir la región con más miembros para obtener el mayor impacto de las iniciativas de inmunización.

![\[Pantalla de introducción para un análisis basado en la geografía, la demografía y la edad de la base de miembros.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


La historia basada en datos proporciona un análisis del número de miembros de las cuatro regiones. Las regiones noreste, sudoeste y sureste son las que tienen más miembros.

![\[Las regiones noreste y sudoeste tienen 8 miembros, el sudeste tiene 6 miembros y el medio oeste tiene 4 miembros.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


La historia basada en datos presenta un análisis de los miembros por edad.

![\[Gráfico que muestra que la base de miembros se inclina hacia los adultos más jóvenes y de mediana edad.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


La historia basada en datos se centra en las iniciativas de inmunización en el medio oeste.

![\[Recomendación para una campaña de divulgación personal y desafíos regionales.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Continuación del análisis de la historia basada en datos, con los resultados y las conclusiones anticipados.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


## Conexiones
<a name="attachments-18e72bcb-1b9a-406a-8220-83aca7743ad2"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Genere información de datos mediante AWS Mainframe Modernization Amazon Q en Quick Sight
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight"></a>

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

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

Nota: AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funciones similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Si su organización aloja datos críticos para la empresa en un entorno de mainframe, obtener información a partir de esos datos es fundamental para impulsar el crecimiento y la innovación. Al desbloquear los datos del mainframe, puede crear inteligencia empresarial más rápida, segura y escalable para acelerar la toma de decisiones, el crecimiento y la innovación basados en los datos en la nube de Amazon Web Services (AWS).

Este patrón presenta una solución para generar información empresarial y crear narrativas compartibles a partir de datos de mainframe mediante la [transferencia de archivos AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) con BMC y [Amazon Q en QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html). Los conjuntos de datos de mainframe se transfieren a [Amazon Simple Storage Service (Amazon S3) mediante AWS Mainframe Modernization la transferencia](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) de archivos con BMC. Una AWS Lambda función formatea y prepara el archivo de datos del mainframe para cargarlo en Quick Sight.

Una vez que los datos estén disponibles en QuickSight, puede utilizar las peticiones en lenguaje natural con [Amazon Q en QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) para crear resúmenes de los datos, formular preguntas y generar historias basadas en datos. No tiene que escribir consultas SQL ni aprender una herramienta de inteligencia empresarial (BI).

**Contexto empresarial**

Este patrón presenta una solución para casos de uso de análisis de datos e información de datos de mainframe. Con el patrón, puede crear un panel visual para los datos de su empresa. Para demostrar la solución, este patrón utiliza una empresa de atención médica que ofrece planes médicos, dentales y oftalmológicos a sus miembros en los EE. UU. En este ejemplo, la información demográfica y de planes de los miembros se almacena en las tablas de datos de mainframe. El panel visual muestra lo siguiente:
+ Distribución de miembros por región
+ Distribución de miembros por género
+ Distribución de miembros por edad
+ Distribución de miembros por tipo de plan
+ Miembros que no han completado la inmunización preventiva

Después de crear el panel, se genera una historia basada en datos que explica la información del análisis anterior. Las historias basadas en datos proporcionan recomendaciones para aumentar el número de miembros que han completado la inmunización preventiva.

## Requisitos previos y limitaciones
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Conjuntos de datos de mainframe con datos empresariales
+ Acceso a la instalación de un agente de transferencia de archivos en el mainframe

**Limitaciones**
+ El archivo de datos del mainframe debe estar en uno de los formatos de archivo compatibles con QuickSight. Para obtener una lista de los formatos de archivo compatibles, consulte [Orígenes de datos compatibles](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Este patrón utiliza una función de Lambda para convertir el archivo de mainframe a un formato compatible con QuickSight.

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

El siguiente diagrama muestra una arquitectura para generar información empresarial a partir de datos de mainframe mediante la transferencia de AWS Mainframe Modernization archivos con BMC y Amazon Q en Quick Sight.

![\[Descripción del diagrama de arquitectura después del diagrama.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Un conjunto de datos de mainframe que contiene datos empresariales se transfiere a Amazon S3 mediante la transferencia de AWS Mainframe Modernization archivos con BMC.

1. La función de Lambda convierte el archivo que está en el bucket de S3 de destino de transferencia de archivos en formato de valores separados por comas (CSV).

1. La función de Lambda envía el archivo convertido al bucket de S3 del conjunto de datos de origen.

1. QuickSight ingiere los datos del archivo.

1. Los usuarios acceden a los datos en QuickSight. Puede usar Amazon Q en QuickSight para interactuar con los datos mediante peticiones en lenguaje natural.

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

**Servicios de AWS**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ AWS Mainframe Modernization la [transferencia de archivos con BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) convierte y transfiere conjuntos de datos de mainframe a Amazon S3 para casos de uso de modernización, migración y aumento de mainframes.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) es un servicio de BI a escala de la nube que lo ayuda a visualizar, analizar y generar informes de sus datos en un único panel. Este patrón utiliza las capacidades de BI generativa de [Amazon Q en QuickSight](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) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

## Prácticas recomendadas
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ [Al crear las funciones AWS Identity and Access Management (IAM) para la transferencia de AWS Mainframe Modernization archivos con BMC y la función Lambda, siga el principio del privilegio mínimo.](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)
+ Asegúrese de que el conjunto de datos de origen tenga [tipos de datos compatibles](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) con QuickSight. Si el conjunto de datos de origen contiene tipos de datos no compatibles, conviértalos en tipos de datos compatibles. Para obtener información sobre los tipos de datos de mainframe no compatibles y cómo convertirlos en tipos de datos compatibles con Amazon Q en QuickSight, consulte la sección [Recursos relacionados](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

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

### Configure la transferencia de AWS Mainframe Modernization archivos con BMC
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale el agente de transferencia de archivos. | Para instalar el agente de transferencia de AWS Mainframe Modernization archivos, siga las instrucciones de la [AWS documentación](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html). | Administrador del sistema de mainframe | 
| Cree un bucket de S3 para la transferencia de archivos de mainframe. | [Cree un depósito de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para almacenar el archivo de salida de la transferencia de AWS Mainframe Modernization archivos con BMC. En el diagrama de arquitectura, este es el bucket de destino de la transferencia de archivos. | Ingeniero de migraciones | 
| Cree un punto de conexión de transferencia de datos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Especialista en AWS Mainframe Modernization | 

### Conversión de la extensión del nombre del archivo del mainframe para integrarla con QuickSight
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un bucket de S3. | [Cree un bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para que la función de Lambda copie el archivo de mainframe convertido del bucket de origen al bucket de destino final. | Ingeniero de migraciones | 
| Creación de una función de Lambda. | Para crear una función de Lambda que cambie la extensión del archivo y copie el archivo de mainframe en el bucket de destino, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingeniero de migraciones | 
| Cree un desencadenador de Amazon S3 para invocar una función de Lambda. | Para configurar un desencadenador que invoque la función de Lambda, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Para obtener más información, consulte [Tutorial: utilizar un desencadenador de Amazon S3 para invocar una función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Líder de migración | 
| Proporcione permisos de IAM para la función de Lambda. | Se requieren permisos de IAM para que la función de Lambda acceda a los buckets de S3 del conjunto de datos de origen y destino de la transferencia de archivos. Actualice la política asociada al rol de ejecución de la función de Lambda mediante la concesión de** **permisos `s3:GetObject` y `s3:DeleteObject`** **para el bucket de S3 de destino de la transferencia de archivos y el acceso `s3:PutObject` al bucket de S3 del conjunto de datos de origen.Para obtener más información, consulte la sección [Creación de una política de permisos](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy)** ** del *Tutorial: utilizar un desencadenador de Amazon S3 para invocar una función de Lambda*. | Líder de migración | 

### Definición de una tarea de transferencia de datos de mainframe
<a name="define-a-mainframe-data-transfer-task"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una tarea de transferencia de para copiar el archivo de mainframe en el bucket de S3. | Para crear una tarea de transferencia de archivos de mainframe, siga las instrucciones de la [documentación de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html).Especifique la codificación de la **página de códigos fuente** como **IBM1047** y la codificación de la **página de códigos de destino** como **UTF-8**. | Ingeniero de migraciones | 
| Compruebe la tarea de transferencia. | Para comprobar que la transferencia de datos se ha realizado correctamente, siga las instrucciones de la [documentación de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console). Confirme que el archivo de mainframe esté en el bucket de S3 de destino de la transferencia de archivos. | Líder de migración | 
| Compruebe la función de copia de Lambda. | Compruebe que se haya iniciado la función de Lambda y que el archivo se haya copiado con la extensión .csv en el bucket de S3 del conjunto de datos de origen.El archivo .csv creado por la función de Lambda es el archivo de datos de entrada de QuickSight. Para ver datos de ejemplo, consulte el archivo `Sample-data-member-healthcare-APG` en la sección de [conexiones](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68). | Líder de migración | 

### Conexión de QuickSight a los datos del mainframe
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure QuickSight. | Para configurar QuickSight, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Líder de migración | 
| Cree un conjunto de datos para QuickSight. | Para crear un conjunto de datos para QuickSight, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html). El archivo de datos de entrada es el archivo de mainframe convertido que se creó al definir la tarea de transferencia de datos de mainframe. | Líder de migración | 

### Obtenga información empresarial a partir de los datos del mainframe mediante Amazon Q en QuickSight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Amazon Q en QuickSight. | Esta capacidad requiere la edición Enterprise. Para configurar Amazon Q en QuickSight, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Líder de migración | 
| Analice los datos del mainframe y cree un panel visual. | Para analizar y visualizar sus datos en QuickSight, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Cuando termine, puede publicar el panel de control para compartirlo con otras personas de su organización. Para ver ejemplos, consulte el *panel visual del mainframe* en la sección de [información adicional](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Ingeniero de migraciones | 

### Creación de una historia basada en datos con Amazon Q en QuickSight a partir de datos del mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una historia basada en datos. | Cree una historia basada en datos para explicar la información del análisis anterior y genere una recomendación para aumentar la inmunización preventiva de los miembros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingeniero de migraciones | 
| Vea la historia basada en datos generada. | Para ver la historia basada en datos que se ha generado, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html). | Líder de migración | 
| Edite una historia basada en datos generada. | Para cambiar el formato, el diseño o los elementos visuales de una historia basada en datos, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Líder de migración | 
| Comparta una historia basada en datos. | Para compartir una historia basada en datos, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingeniero de migraciones | 

## Resolución de problemas
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| No se han podido detectar los archivos o conjuntos de datos del mainframe introducidos en los **criterios de búsqueda de conjuntos de datos** para **Crear una tarea de transferencia en AWS Mainframe Modernization la transferencia** de archivos con BMC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

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

Para convertir tipos de datos de mainframe como [PACKED-DECIMAL (COMP-3)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) o [BINARY (COMP o COMP-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-binary-comp-comp-4) a un [tipo de datos](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) compatible con QuickSight, consulte los siguientes patrones:
+ [Convierta y descomprima datos EBCDIC a ASCII mediante Python AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)
+ [Convierta archivos de mainframe del formato EBCDIC al formato ASCII delimitado por caracteres en Amazon S3 mediante 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)

## Información adicional
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional"></a>

**S3 .py CopyLambda**

El siguiente código de Python se generó mediante una petición con Amazon Q en 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'
}
```

**Panel visual de mainframe**

Amazon Q creó el siguiente elemento visual de datos en QuickSight para la pregunta de análisis `show member distribution by region`*.*

![\[Gráfico que muestra el número de miembros de las regiones sudoeste, centro-oeste, noreste y sureste.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


Amazon Q creó el siguiente elemento visual de datos en QuickSight para la pregunta `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/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Salida de una historia basada en datos**

Las siguientes capturas de pantalla muestran secciones de la historia basada en datos creada por Amazon Q en QuickSight para la petición `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.`

En la introducción, la historia basada en datos recomienda elegir la región con más miembros para obtener el mayor impacto de las iniciativas de inmunización.

![\[Página de introducción a una historia basada en datos que se centra en las tasas de finalización de la inmunización.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


La historia con datos proporciona un análisis del número de miembros de las tres principales regiones y menciona al sudoeste como la región que más se centra en las iniciativas de inmunización.

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


**nota**  
Cada una de las regiones del sudoeste y del noreste tiene ocho miembros. Sin embargo, el sudoeste tiene más miembros que no están completamente vacunados, por lo que tiene más posibilidades de beneficiarse de las iniciativas para aumentar las tasas de inmunización.

## Conexiones
<a name="attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Implemente la autenticación basada en Microsoft Entra ID en una aplicación de mainframe modernizada de AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani y Rimpy Tewani, Amazon Web Services*

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

**nota**  
AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funcionalidades similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Las aplicaciones de mainframe que se modernizan mediante patrones de refactorización, como las de [AWS Mainframe Modernization Refactor con AWS Blu Age, requieren una integración cuidadosa de los mecanismos de autenticación en la nueva](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) arquitectura de la aplicación. Esta integración suele abordarse como una actividad posterior a la modernización. La tarea puede ser compleja y, a menudo, implica la migración o la externalización de los sistemas de autenticación existentes para alinearlos con los estándares de seguridad modernos y las prácticas nativas en la nube. Los desarrolladores deben considerar cómo implementar la autenticación de manera eficaz mientras trabajan dentro de las limitaciones del tiempo de ejecución y las bibliotecas de la aplicación modernizada. Tras la modernización, AWS proporciona formas de facilitar la integración del código moderno de AWS Blu Age con sistemas de administración de identidades y accesos, como [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) y [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) (anteriormente conocido como Azure AD).

Este patrón explica cómo implementar un mecanismo de autenticación en una aplicación modernizada cuando el proveedor de autenticación es Microsoft Entra ID, sin perder tiempo en investigaciones y pruebas. El patrón proporciona lo siguiente:
+ Bibliotecas de Angular pertinentes y probadas en campo de la Biblioteca de autenticación de Microsoft (MSAL) y otra documentación de Microsoft Entra ID que son esenciales para la implementación de la autenticación. 
+ Se requieren configuraciones en el entorno de ejecución de AWS Blu Age para habilitar Spring Security mediante la OAuth versión 2.0.
+ Una biblioteca que captura las identidades de los usuarios autenticados y las pasa al AWS Blu Age Runtime.
+ Medidas de seguridad que recomendamos implementar.
+ Sugerencias de solución de problemas frecuentes con la configuración de Microsoft Entra ID.

**nota**  
Este patrón utiliza la biblioteca de OAuth extensiones AWS Blu Age, que se proporciona a los clientes como parte de su contratación con [los servicios AWS profesionales](https://aws.amazon.com/professional-services/). Esta biblioteca no forma parte de AWS Blu Age Runtime.

## Requisitos previos y limitaciones
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Requisitos previos **
+ Una aplicación modernizada que fue producida por las herramientas de refactorización y modernización de mainframes de AWS Blu Age. Este patrón se utiliza [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)como ejemplo de una aplicación de mainframe de código abierto.
+ La biblioteca de OAuth extensiones de AWS Blu Age, proporcionada por el equipo de AWS Blu Age durante su contratación con [AWS Professional Services](https://aws.amazon.com/professional-services/).
+ Activa Cuenta de AWS para implementar y probar la aplicación modernizada.
+ Familiaridad con los archivos de configuración de AWS Blu Age y los fundamentos de Microsoft Entra ID.

**Limitaciones**
+ Este patrón abarca la autenticación OAuth 2.0 y los flujos básicos de autorización basados en tokens. Los escenarios de autorización avanzada y los mecanismos de control de acceso detallados no están dentro del alcance.
+ Algunos Servicios de AWS no están disponibles en todos. Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte [Servicios de AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

**Versiones de producto**

Este patrón se desarrolló mediante lo siguiente:
+ AWS Blu Age Runtime versión 4.1.0 (el patrón también funciona con versiones posteriores compatibles con versiones anteriores)
+ Biblioteca MSAL, versión 3.0.23
+ Java Development Kit (JDK), versión 17
+ Angular, versión 16.1

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

**Pila de tecnología de origen**

En los entornos de mainframe típicos, la autenticación se implementa a través de los perfiles de usuario. Estos perfiles identifican a los usuarios del sistema, definen quién puede iniciar sesión y especifican qué funciones pueden llevar a cabo los usuarios con los recursos del sistema. Los perfiles de usuario los administran los responsables de seguridad o los administradores de seguridad.

**Pila de tecnología de destino**
+ ID de Microsoft Entra
+ Backend modernizado basado en Java Spring Boot
+ AWS Blu Age Runtime
+ Spring Security con OAuth 2.0
+ Aplicación de una sola página de Angular (SPA)

**Arquitectura de destino**

AWS El tiempo de ejecución de Blu Age admite la autenticación OAuth basada en la versión 2.0 de forma predeterminada, por lo que el patrón utiliza ese estándar para proteger el backend APIs.

En el diagrama siguiente se ilustra el flujo del proceso.

**nota**  
En el diagrama se incluye Amazon Aurora como ejemplo de modernización de bases de datos, aunque Aurora no se incluye en los pasos de este patrón.

![\[Flujo del proceso para la autenticación basada en Entra ID para una aplicación de AWS Blu Age.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


donde:

1. Un usuario intenta autenticarse con Microsoft Entra ID.

1. Microsoft Entra ID devuelve los tokens de actualización, acceso e ID que la aplicación utiliza en llamadas posteriores.

1. El interceptor MSAL incluye el token de acceso en el `Authorization` encabezado de una solicitud HTTPS para llamar al Blu Age Runtime. AWS 

1. La `extension-oauth` biblioteca AWS Blu Age extrae la información del usuario del encabezado mediante un archivo de configuración de AWS Blu Age Runtime (`application-main.yml`) y coloca esta información en un `SharedContext` objeto para que la lógica empresarial pueda consumirla.
**nota**  
`SharedContext`es un componente de tiempo de ejecución proporcionado por AWS Blu Age que gestiona la información de contexto y estado de la aplicación en toda la aplicación modernizada. Para obtener más información sobre los componentes y las actualizaciones de AWS Blu Age Runtime, consulta las [notas de la versión de AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) en la AWS Mainframe Modernization documentación. Para obtener más información sobre el `application-main.yml` archivo, consulte [Configurar la configuración de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) en la AWS Mainframe Modernization documentación.

1. El AWS Blu Age Runtime comprueba si el token está presente. 

   1. Si el token está presente, se comunica con Microsoft Entra ID para comprobar su validez. 

   1. Si el token no está presente, el AWS Blu Age Runtime devuelve un error con el código de estado HTTP 403.

1. Si el token es válido, el AWS Blue Age Runtime permite que la lógica empresarial continúe. Si el token no es válido, AWS Blu Age Runtime devuelve un error con el código de estado HTTP 403.

**OAuth Flujo de trabajo 2.0**

Para ver un diagrama de alto nivel del flujo de trabajo OAuth 2.0, consulte la [documentación de Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

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

**Servicios de AWS**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)proporciona herramientas y recursos para ayudarlo a planificar e implementar la migración y la modernización de los mainframes a los entornos de tiempo de ejecución AWS gestionados. Puede utilizar las funciones de refactorización de este servicio, que proporciona AWS Blu Age, para convertir y modernizar sus aplicaciones de mainframe antiguas.

**nota**  
AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funcionalidades similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Repositorio de código**

La CardDemo aplicación se ha actualizado para demostrar la integración con Microsoft Entra ID. Puedes acceder al código de [este patrón desde el GitHub repositorio](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app).

**Configuración de backend**

Este patrón requiere cambios en el archivo de `application-main.yml`**** configuración para habilitar Spring Security mediante el uso de la OAuth versión 2.0 en la aplicación de fondo.  El archivo `.yml` tiene este aspecto:

```
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 Biblioteca de filtros de OAuth extensiones Blu Age**

La biblioteca de OAuth extensiones de AWS Blu Age la proporciona el equipo de AWS Blu Age durante su contratación con [AWS Professional Services](https://aws.amazon.com/professional-services/).

Esta biblioteca lee la configuración `claim.claims` del archivo `application-main.yml` que se muestra en el bloque de código anterior. Esta configuración es una lista. Cada elemento de la lista proporciona dos valores: `claimName` y `claimMapValue`. `claimName` representa el nombre de una clave en un token web JSON (JWT) enviado por el frontend y `claimMapValue` es el nombre de la clave en `SharedContext`. Por ejemplo, si quieres capturar el ID de usuario en el backend, establezca `claimName` en el nombre de la clave en el JWT que contiene el valor de `userId` proporcionado por Microsoft Entra ID y establezca `claimMapValue` en el nombre de la clave para obtener el ID de usuario en el código del backend.

Por ejemplo, si establece `UserId` en `claimMapValue`, puede usar el siguiente código para extraer el ID de usuario:

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

## Prácticas recomendadas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Al implementar este patrón, tenga en cuenta las siguientes consideraciones de seguridad importantes.

**importante**  
Este patrón proporciona una base para la integración de la autenticación. Le recomendamos que implemente medidas de seguridad además de las descritas en esta sección en función de los requisitos de su empresa antes de implementarla en producción.
+ **AWS seguridad de configuración.**Mueva los valores de configuración confidenciales de `application-main.yml` a AWS Secrets Manager. Por ejemplo, configure las siguientes propiedades mediante Secrets Manager:

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

  Para obtener más información sobre cómo usar Secrets Manager para configurar los parámetros de AWS Blu Age, consulta los [secretos de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html) en la AWS Mainframe Modernization documentación.
+ **Protección del entorno del tiempo de ejecución.** Configure el entorno de aplicaciones modernizado con los controles AWS de seguridad adecuados:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Registro de Amazon.** Considere la posibilidad de agregar el archivo `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>
  ```

  Para obtener información sobre cómo habilitar el rastreo con la correlación CloudWatch, consulte [Habilitar la correlación entre el rastreo y el registro](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html) en la CloudWatch documentación.
+ **Configuración y gestión de tokens.** Configure la vida útil de los tokens en Microsoft Entra ID para adaptarla a sus requisitos de seguridad. Configure los tokens de acceso para que caduquen en 1 hora y actualícelos para que caduquen en 24 horas. En la configuración de AWS Blu Age Runtime (`application-main.yml`), asegúrese de que la validación de JWT esté configurada correctamente con el URI del emisor y los valores de audiencia exactos del registro de la aplicación Entra ID.

  Cuando un token caduca y se actualiza:

  1. El interceptor de errores de la aplicación de Angular gestiona la respuesta 401 obteniendo un nuevo token a través de MSAL.

  1. El nuevo token se envía con la solicitud posterior.

  1. El OAuth filtro del AWS Blu Age Runtime valida el nuevo token y se actualiza automáticamente `SharedContext` con la información de usuario actual. Esto garantiza que la lógica empresarial siga teniendo acceso al contexto de usuario válido a través de las llamadas `SharedContext.get().getValue()`.

  Para obtener más información sobre los componentes de AWS Blu Age Runtime y sus actualizaciones, consulta las [notas de la versión de AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Seguridad del tiempo de ejecución de AWS Blu Age.** La `oauth2-ext` biblioteca proporcionada por AWS Blu Age debe colocarse en la ubicación correcta del directorio compartido (`{app-server-home}/shared/`) con los permisos de archivo adecuados. Compruebe que la biblioteca extrae correctamente la información del usuario JWTs comprobando la población de `SharedContext` objetos en sus registros.
+ **Configuración de notificaciones específicas.** En `application-main.yml`, defina las notificaciones que necesita de Microsoft Entra ID de forma explícita. Por ejemplo, para capturar el correo electrónico y los roles del usuario, especifique lo siguiente:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Gestión de errores.** Agregue el manejo de errores para abordar los errores de autenticación en su aplicación de Angular; por ejemplo:

  ```
  @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);
        })
      );
    }
  }
  ```
+ **Configuración del tiempo de espera de la sesión.** Configure los ajustes de tiempo de espera de la sesión tanto en el AWS Blu Age Runtime como en el Microsoft Entra ID. Por ejemplo, agregue el siguiente código al archivo `application-main.yml`:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Debe implementar la MsalGuard función en todas las rutas protegidas para evitar el acceso no autorizado. Por ejemplo:

  ```
  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  }
  ];
  ```

  Se podrá acceder a las rutas que MsalGuard no estén protegidas sin autenticación, lo que podría exponer funciones confidenciales. Asegúrese de que todas las rutas que requieren autenticación incluyan las protecciones en su configuración.

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

### Configuración de Microsoft Entra ID
<a name="set-up-a-microsoft-entra-id"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configurar una cuenta de Microsoft Azure para crear una instancia de Entra ID. | Para ver las opciones e instrucciones, consulte el [sitio web de Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Desarrollador de aplicaciones | 
| Configurar una instancia de Microsoft Entra ID en la aplicación. | Para obtener información sobre cómo agregar la autenticación de Microsoft Entra ID B2C (Azure AD B2C) a su SPA de Angular, consulte la [documentación de Microsoft](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components). En concreto:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desarrollador de aplicaciones | 

### Clona el repositorio e implementa tu código de AWS Blu Age
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clona el GitHub repositorio para obtener el código angular necesario para la autenticación. | Ejecuta el siguiente comando para clonar el [GitHub repositorio](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) que viene con este patrón en tu directorio de trabajo actual local:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Desarrollador de aplicaciones | 
| Implemente el código modernizado de AWS Blu Age en un servidor Tomcat para implementar la autenticación. | Para configurar el entorno local que incluye Tomcat y el servidor de desarrollo Angular, siga los pasos de instalación proporcionados por el equipo de AWS Blu Age como parte de la interacción de los clientes con AWS los servicios profesionales. | Desarrollador de aplicaciones | 

### Creación de la solución de autenticación
<a name="build-the-authentication-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Habilitar la seguridad del tiempo de ejecución de AWS Blu Age para proteger los puntos de conexión de la API de REST de AWS Blu Age. | Configure el `application-main.yml` archivo que utiliza el AWS Blu Age Runtime de la siguiente manera. Para ver un ejemplo de este archivo, consulte la sección [Repositorio de código](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools), incluida anteriormente en este patrón.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desarrollador de aplicaciones | 
| Incorporar el código de ejemplo de su entorno local a su base de código de Angular modernizada de Blu Age. | Para obtener información sobre cómo incorporar el ejemplo en su base de código angular modernizada de AWS Blu Age, consulte la sección sobre el [repositorio de códigos](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) que aparece anteriormente en este patrón. | Desarrollador de aplicaciones | 
| Colocar la biblioteca `oauth2-ext` en el directorio compartido. | Coloque la biblioteca `oauth2-ext` en el directorio compartido** **del servidor de aplicaciones para que su aplicación modernizada de** **AWS Blu Age pueda usarla**.**Ejecute los siguientes comandos :<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Desarrollador de aplicaciones | 

### Implementación de la solución de autenticación
<a name="deploy-the-authentication-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implementar la aplicación de frontend. | Ejecute los comandos siguientes para iniciar la aplicación de frontend de forma local:<pre>npm install <br />ng serve --ssl<br />npm start</pre>Al agregar la marca `--ssl` al comando `ng serve`, se garantiza que el servidor de desarrollo utilice HTTPS, que es más seguro que otros protocolos y proporciona una mejor simulación de un entorno de producción. | Desarrollador de aplicaciones | 
| Iniciar la aplicación de backend. | Inicie el servidor de Tomcat en Eclipse. | Desarrollador de aplicaciones | 

### Pruebe la aplicación
<a name="test-the-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Probar la funcionalidad de inicio de sesión. | Acceda a la aplicación implementada localmente en `http://localhost:4200` para comprobar que se pide a los usuarios que confirmen su identidad.Aquí se usa HTTP con fines ilustrativos. En un entorno de producción u otro entorno de acceso público, debe utilizar HTTPS por motivos de seguridad. Incluso para el desarrollo local, le recomendamos que configure HTTPS siempre que sea posible.Debería aparecer el mensaje de inicio de sesión de Microsoft y los usuarios configurados en Microsoft Entra ID deberían poder acceder a la aplicación. | Desarrollador de aplicaciones | 
| Probar el encabezado de la autorización de la solicitud. | En los siguientes pasos, se usa la [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)aplicación como ejemplo. Los pasos de prueba para otras aplicaciones modernas variarán.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desarrollador de aplicaciones | 
| Probar la funcionalidad de cierre de sesión. | Elija **Salir** para cerrar sesión e intente acceder de nuevo a la aplicación. Debería ver un nuevo mensaje de inicio de sesión. | Desarrollador de aplicaciones | 

## Resolución de problemas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| El token emitido por Microsoft Entra ID no es compatible con la seguridad de Spring Boot OAuth 2.0. | Para resolver el problema, consulta [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) en el OAuth blog. | 
| Preguntas generales relacionadas con los tokens. | Para decodificar y ver el contenido de un token JWT, utilice el sitio web [https://jwt.io/](https://jwt.io/). | 

## Recursos relacionados
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Para obtener información sobre cómo refactorizar tu aplicación mediante AWS Blu Age, consulta la AWS Mainframe Modernization documentación.](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Para entender cómo funciona la OAuth versión 2.0, consulte el sitio web de la [OAuth versión 2.0](https://oauth.net/2/).
+ Para obtener información general sobre la Biblioteca de autenticación de Microsoft (MSAL), consulte la [documentación de Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Para obtener información sobre los perfiles de usuario en un sistema AS/400, consulte el [tutorial de IBM i (AS400)](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ [Para ver el OAuth flujo de autenticación 2.0 y OpenID Connect (OIDC) en la plataforma de identidad de Microsoft, consulte la documentación de Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)

# Integrar el controlador universal Stonebranch con AWS Mainframe Modernization
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization"></a>

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

*Robert Lemieux y Huseyin Gomleksizoglu, Stonebranch*

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

Nota: AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funciones similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Este patrón explica cómo integrar la [orquestación de cargas de trabajo de Stonebranch Universal Automation Center (UAC)](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) con el [servicio de AWS Mainframe Modernization de Amazon Web Services (AWS)](https://aws.amazon.com/mainframe-modernization/). El servicio de AWS Mainframe Modernization migra y moderniza las aplicaciones de mainframe a la nube de AWS. Ofrece dos patrones: [Redefinición de la plataforma de AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) con Micro Focus y la [refactorización automatizada de AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) con AWS Blu Age.  

Stonebranch UAC es una plataforma de automatización y organización de TI en tiempo real. El UAC está diseñado para automatizar y organizar los trabajos, las actividades y los flujos de trabajo en los sistemas de TI híbridos, desde los entornos locales hasta los de AWS. Los clientes empresariales que utilizan sistemas de mainframe están realizando la transición a infraestructuras y aplicaciones modernizadas centradas en la nube. Las herramientas y los servicios profesionales de Stonebranch facilitan la migración de los programadores y las capacidades de automatización existentes a la nube de AWS.

Al migrar o modernizar sus programas de mainframe a la nube de AWS mediante el servicio AWS Mainframe Modernization, puede utilizar esta integración para automatizar la programación por lotes, aumentar la agilidad, mejorar el mantenimiento y reducir los costos.

Este patrón proporciona instrucciones para integrar el [programador Stonebranch](https://www.stonebranch.com/) con las aplicaciones de mainframe migradas al tiempo de ejecución de Micro Focus Enterprise del servicio de AWS Mainframe Modernization. Este patrón es para arquitectos de soluciones, desarrolladores, consultores, especialistas en migración y otras personas que trabajan en migraciones, modernizaciones, operaciones o DevOps

**Resultados específicos**

Este patrón se centra en proporcionar los siguientes resultados objetivo:
+ La capacidad de programar, automatizar y ejecutar trabajos por lotes de mainframe que se ejecutan en el servicio AWS Mainframe Modernization (tiempo de ejecución de Microfocus) de Stonebranch Universal Controller.
+ Supervise los procesos por lotes de la aplicación desde el controlador universal Stonebranch.
+ Start/Restart/Rerun/Stopprocesa por lotes de forma automática o manual desde el controlador universal Stonebranch.
+ Recupere los resultados de los procesos por lotes de AWS Mainframe Modernization.
+ Capture los CloudWatch registros de [AWS](https://aws.amazon.com/cloudwatch/) de los trabajos por lotes en Stonebranch Universal Controller.

## Requisitos previos y limitaciones
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Una aplicación de demostración de Micro Focus [Bankdemo](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) con archivos de Job Control Language (JCL) y un proceso por lotes implementado en un entorno del servicio de AWS Mainframe Modernization (tiempo de ejecución de Micro Focus)
+ Conocimientos básicos sobre cómo crear e implementar una aplicación de mainframe que se ejecute en Micro Focus [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Conocimientos básicos del controlador universal Stonebranch
+ Licencia de prueba de Stonebranch (póngase en contacto con [Stonebranch)](https://www.stonebranch.com/)
+ Instancias de Amazon Elastic Compute Cloud (Amazon EC2) para Windows o Linux (por ejemplo, xlarge) con un mínimo de cuatro núcleos, 8 GB de memoria y 2 GB de espacio en disco
+ Apache Tomcat, versión 8.5.x o 9.0.x
+ Entorno de ejecución de Java (JRE) o OpenJDK versión 8 u 11
+ [Edición de Amazon Aurora compatible con MySQL](https://aws.amazon.com/rds/aurora/)
+ Bucket de [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) para repositorio de exportación
+ [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) para las conexiones del agente Stonebranch Universal Message Service (OMS) para una alta disponibilidad (HA)
+ Archivos de instalación de Universal Agent 7.2 de Stonebranch Universal Controller 7.2
+ [AWS Mainframe Modernization](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) plantilla de programación de tareas (última versión publicada del archivo .zip)

**Limitaciones**
+ El producto y la solución se han probado y se ha validado su compatibilidad solo con OpenJDK 8 y 11.
+ La plantilla [aws-mainframe-modernization-stonebranchde programación de tareas de integración](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) solo funcionará con el servicio de modernización de mainframe de AWS.
+ Esta plantilla de programación de tareas solo funcionará en las ediciones para Unix, Linux o Windows de los agentes de Stonebranch.
+ Algunos servicios de AWS no están disponibles en todas las regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte [AWS services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte la página [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

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

**Arquitectura de estado objetivo**

En el siguiente diagrama se muestra el entorno de AWS de ejemplo que se requiere para este piloto.

![\[Stonebranch UAC interactuando con el entorno de AWS Mainframe Modernization.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. El Universal Automation Center (UAC) de Stonebranch incluye dos componentes principales: Universal Controller y Universal Agents. Stonebranch OMS se utiliza como un bus de mensajes entre el controlador y los agentes individuales.

1. Universal Controller utiliza la base de datos UAC de Stonebranch. La base de datos puede ser compatible con MySQL, Microsoft SQL Server, Oracle o Aurora MySQL.

1. Servicio de modernización de mainframe de AWS: entorno de ejecución de Micro Focus con la [BankDemo aplicación implementada](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/). Los archivos de la BankDemo aplicación se almacenarán en un bucket de S3. Este bucket también contiene los archivos JCL de la unidad central.

1. Stonebranch UAC puede ejecutar las siguientes funciones para la ejecución por lotes:

   1. Inicie un trabajo por lotes con el nombre del archivo JCL que existe en el bucket de S3 vinculado al servicio de AWS Mainframe Modernization.

   1. Obtenga el estado de la ejecución del trabajo por lotes.

   1. Espere hasta que se complete la ejecución del trabajo por lotes.

   1. Obtenga los registros de la ejecución del trabajo por lotes.

   1. Vuelva a ejecutar los trabajos por lotes fallidos.

   1. Cancele el trabajo por lotes mientras se está ejecutando.

1. Stonebranch UAC puede ejecutar las siguientes funciones para la aplicación:

   1. Iniciar la aplicación

   1. Obtener el estado de la aplicación

   1. Espere hasta que la aplicación se inicie o se detenga

   1. Detener la aplicación

   1. Obtener los registros del funcionamiento de la aplicación

**Conversión de trabajos en Stonebranch**

El siguiente diagrama representa el proceso de conversión de puestos de trabajo de Stonebranch durante el proceso de modernización. Describe cómo los cronogramas de trabajo y las definiciones de tareas se convierten a un formato compatible que puede ejecutar tareas por lotes de AWS Mainframe Modernization.

![\[Proceso desde el mainframe hasta la conversión a programador de trabajos en Amazon EC2 con archivos JCL en Amazon S3.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Para el proceso de conversión, las definiciones de los trabajos se exportan desde el sistema de mainframe existente.

1. Los archivos JCL se pueden cargar en el depósito S3 de la aplicación Mainframe Modernization para que el servicio AWS Mainframe Modernization pueda implementarlos.

1. La herramienta de conversión convierte las definiciones de trabajo exportadas en tareas de UAC.

1. Una vez creadas todas las definiciones de tareas y los cronogramas de trabajos, estos objetos se importarán al controlador universal. A continuación, las tareas convertidas ejecutan los procesos en el servicio de AWS Mainframe Modernization en lugar de ejecutarlos en el mainframe.

**Arquitectura UAC de Stonebranch**

El siguiente diagrama de arquitectura representa un active-active-passive modelo de controlador universal de alta disponibilidad (HA). El UAC de Stonebranch se implementa en varias zonas de disponibilidad para proporcionar una alta disponibilidad y respaldar la recuperación de desastres (DR).

![\[Entorno multi-AZ con DR y controladores, Amazon EFS, Aurora y un bucket de S3 para copias de seguridad.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Controlador universal*

Se aprovisionan dos servidores Linux como controladores universales. Ambos se conectan al mismo punto de conexión de la base de datos. Cada servidor alberga una aplicación Universal Controller y un OMS. La versión más reciente de Universal Controller se utiliza en el momento del aprovisionamiento.

Los controladores universales se implementan en la aplicación web de Tomcat como el documento ROOT y se distribuyen en el puerto 80. Esta implementación facilita la configuración del equilibrador de carga de frontend.

El HTTP a través de TLS o HTTPS se habilita mediante el certificado comodín de Stonebranch (por ejemplo, `https://customer.stonebranch.cloud`). Esto asegura la comunicación entre el navegador y la aplicación.

*OMS*

Un agente universal y un OMS (servicio de mensajes de Opswise) residen en cada servidor de Universal Controller. Todos los agentes universales desplegados por el cliente están configurados para conectarse a ambos servicios de OMS. OMS actúa como un servicio de mensajería común entre los agentes universales y el controlador universal.

Amazon EFS monta un directorio de bobinas en cada servidor. OMS utiliza este directorio compartido para mantener la información de conexión y tareas de los controladores y los agentes. OMS funciona en un modo de alta disponibilidad. Si el OMS activo deja de funcionar, el OMS pasivo tiene acceso a todos los datos y reanuda las operaciones activas automáticamente. Los agentes universales detectan este cambio y se conectan automáticamente al nuevo OMS activo.

*Base de datos*

Amazon Relational Database Service (Amazon RDS) aloja la base de datos de UAC y su motor es compatible con Amazon Aurora MySQL. Amazon RDS ayuda a gestionar y ofrecer copias de seguridad programadas a intervalos regulares. Ambas instancias de Universal Controller se conectan al mismo punto de conexión de la base de datos.

*Equilibrador de carga*

Se configura un equilibrador de carga de aplicación para cada instancia. El equilibrador de carga dirige el tráfico al controlador activo en cualquier momento dado. Los nombres de dominio de su instancia apuntan a los puntos finales del equilibrador de carga respectivos.

*URLs*

Cada una de sus instancias tiene una URL, como se muestra en el siguiente ejemplo.


| 
| 
| Entorno | Instancia | 
| --- |--- |
| **Producción** | `customer.stonebranch.cloud` | 
| **Desarrollo (no producción)** | `customerdev.stonebranch.cloud` | 
| **Pruebas (fuera de producción)** | `customertest.stonebranch.cloud` | 

**nota**  
  Los nombres de las instancias que no son de producción se pueden configurar en función de sus necesidades.

*Alta disponibilidad*

La alta disponibilidad (HA) es la capacidad de un sistema de funcionar de forma continua y sin fallos durante un período de tiempo designado. Estos fallos incluyen, entre otros, el almacenamiento, las demoras en la respuesta de las comunicaciones del servidor causadas por problemas de la CPU o la memoria y la conectividad de red.

Para cumplir con los requisitos de alta disponibilidad:
+ Todas las instancias, bases de datos y demás configuraciones de EC2 se reflejan en dos zonas de disponibilidad independientes dentro de la misma región de AWS.
+ El controlador se aprovisiona a través de una imagen de máquina de Amazon (AMI) en dos servidores Linux en las dos zonas de disponibilidad. Por ejemplo, si está aprovisionado en la región de Europa eu-west-1, tiene un controlador universal en la zona de disponibilidad eu-west-1a y en la zona de disponibilidad eu-west-1c.
+ No se permite que ningún trabajo se ejecute directamente en los servidores de aplicaciones ni que se almacene ningún dato en estos servidores.
+ El equilibrador de carga de aplicación realiza comprobaciones de estado en cada controlador universal para identificar el controlador activo y dirigir el tráfico hacia él. En caso de que se produzcan problemas con un servidor, el equilibrador de carga pasa automáticamente al estado activo del controlador universal pasivo. A continuación, el equilibrador de cargas identifica la nueva instancia activa de Universal Controller a partir de las comprobaciones de estado y comienza a dirigir el tráfico. La conmutación por error se produce en un plazo de cuatro minutos sin pérdida de trabajo, y la URL de frontend sigue siendo la misma.
+ El servicio de base de datos Aurora compatible con MySQL almacena los datos de Universal Controller. Para los entornos de producción, un clúster de base de datos se crea con dos instancias de base de datos en dos zonas de disponibilidad diferentes dentro de una sola región de AWS. Ambos controladores universales utilizan una interfaz de conectividad de bases de datos Java (JDBC) que apunta a un único punto de conexión del clúster de base de datos. En caso de que una instancia de base de datos tenga problemas, el punto de conexión del clúster de base de datos apunta dinámicamente a la instancia en buen estado. No se requiere intervención manual alguna.

*Backup y purga*

El controlador universal Stonebranch está configurado para realizar copias de seguridad y purgar los datos antiguos siguiendo el programa que se muestra en la tabla.


| 
| 
| Tipo | Schedule | 
| --- |--- |
| **Actividad** | 7 días | 
| **Auditoría** | 90 días | 
| **Historial** | 60 días | 

Los datos de backup anteriores a las fechas mostradas se exportan al formato.xml y se almacenan en el sistema de archivos. Una vez finalizado el proceso de copia de seguridad, los datos más antiguos se purgan de la base de datos y se archivan en un depósito de S3 durante un máximo de un año en el caso de las instancias de producción.

Puede ajustar este programa en la interfaz de la controladora universal. Sin embargo, el aumento de estos plazos puede provocar un tiempo de inactividad más prolongado durante el mantenimiento.

## Tools (Herramientas)
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-tools"></a>

**Servicios de AWS**
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) es un servicio que le ayuda a modernizar sus aplicaciones de unidad central para convertirlas en entornos de tiempo de ejecución administrados nativos en la nube de AWS. Ofrece herramientas y recursos para ayudarle a planificar e implementar la migración y modernización.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) proporciona volúmenes de almacenamiento de nivel de bloque para su uso con instancias de Amazon EC2.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) le ayuda a crear y configurar sistemas de archivos compartidos en la nube de AWS.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) le ayuda a configurar, utilizar y escalar una base de datos relacional en la nube de AWS. Este patrón utiliza la edición de Amazon Aurora compatible con MySQL.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuye el tráfico entrante de aplicaciones o redes entre varios destinos. Así, por ejemplo, puede distribuir el tráfico entre instancias de Amazon EC2, contenedores y direcciones IP de una o varias zonas de disponibilidad. Este patrón utiliza un Equilibrador de carga de aplicación.

**Stonebranch**
+ [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) es un sistema de productos de automatización de cargas de trabajo empresariales. Este patrón utiliza los siguientes componentes del UAC:
  + [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), una aplicación web Java que se ejecuta en un contenedor web de Tomcat, es la solución empresarial de programación de trabajos y agente de automatización de cargas de trabajo de Universal Automation Center. El controlador presenta una interfaz de usuario para crear, supervisar y configurar la información del controlador; gestiona la lógica de programación; procesa todos los mensajes con Universal Agents como origen y destino; y sincroniza gran parte del funcionamiento de alta disponibilidad de Universal Automation Center.
  + [Universal Agent es un agente](https://www.stonebranch.com/documentation-universal-agent) de programación independiente del proveedor que colabora con el programador de tareas existente en las principales plataformas informáticas, tanto antiguas como distribuidas. Se admiten todos los programadores que se ejecutan en z/Series, i/Series Unix, Linux o Windows.
+ [Universal Agent es un agente](https://www.stonebranch.com/documentation-universal-agent) de programación independiente del proveedor que colabora con el programador de tareas existente en las principales plataformas informáticas, tanto antiguas como distribuidas. Se admiten todos los programadores que se ejecutan en Unixz/Series, i/Series, Linux o Windows.
+ [Integración con Stonebranch La extensión universal de aws-mainframe-modernization-stonebranch AWS Mainframe Modernization](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) es la plantilla de integración para ejecutar, monitorear y volver a ejecutar trabajos por lotes en la plataforma AWS Mainframe Modernization.

**Código**

[El código de este patrón está disponible en el repositorio -integration. aws-mainframe-modernization-stonebranch](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/) GitHub 

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

### Instalación de Universal Controller y Universal Agent en Amazon EC2
<a name="install-universal-controller-and-universal-agent-on-amazon-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descargue los archivos de instalación. | Descargue la instalación desde los servidores de Stonebranch. Para obtener los archivos de instalación, póngase en contacto con Stonebranch. | Arquitecto de la nube | 
| Lanzar la instancia EC2. | Necesitará unos 3 GB de espacio adicional para las instalaciones de Universal Controller y Universal Agent. Por lo tanto, proporciona al menos 30 GB de espacio en disco para la instancia.Agrega el puerto 8080 al grupo de seguridad para que sea accesible. | Arquitecto de la nube | 
| Compruebe los requisitos previos. | Antes de la instalación, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de la nube, administrador de Linux | 
| Instale Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Arquitecto de la nube, administrador de Linux | 
| Instale Universal Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de la nube, administrador de Linux | 
| Agregue OMS a Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 

### Importe la extensión universal de AWS Mainframe Modernization y cree una tarea
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Plantilla de integración de importación. | Para este paso, necesita la [extensión universal de AWS Mainframe Modernization](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases). Asegúrese de descargar la última versión publicada del archivo .zip.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)Una vez importada la plantilla de integración, verá las **tareas de AWS Mainframe Modernization** en la sección **Servicios disponibles**. | Administrador de Universal Controller | 
| Habilite las credenciales que se pueden resolver. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 
| Iniciar la tarea. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 

### Probar el inicio de un trabajo por lotes
<a name="test-starting-a-batch-job"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear una tarea para el trabajo por lotes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 
| Iniciar la tarea. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 

### Cree un flujo de trabajo para múltiples tareas
<a name="create-a-workflow-for-multiple-tasks"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Copie las tareas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 
| Tarea de actualizar. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 
| Cree un flujo de trabajo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 
| Compruebe el estado del flujo de trabajo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de universal Controller | 

### Solucione los problemas de los trabajos por lotes fallidos y vuelva a ejecutarlos
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Corrija la tarea fallida y vuelva a ejecutarla. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 

### Cree las tareas de inicio y detención de la aplicación
<a name="create-start-application-and-stop-application-tasks"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree la acción Iniciar aplicación. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de Universal Controller | 

### Crear una tarea de cancelación de ejecución por lotes
<a name="create-a-cancel-batch-execution-task"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree la acción Cancelar Batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Recursos relacionados
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Controlador universal](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Agente universal](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [Configuración de LDAP](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [SAML Single Sign-On](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Herramienta de conversión Xpress](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Información adicional
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Iconos en el editor de flujos de trabajo**

![\[Tarea RUNHELLO en la parte superior, FOOBAR en el centro y las tareas restantes en el tercer nivel.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Todas las tareas están conectadas**

![\[RUNHELLO se conecta a FOOBAR, que se conecta a las tres tareas restantes.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**Estado del flujo de trabajo**

![\[Se produjo un error en la tarea FOOBAR y las tres tareas restantes están esperando.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Migración y réplica de archivos VSAM a Amazon RDS o Amazon MSK mediante Connect de Precisely
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna y Boopathy Gopalsamy, Amazon Web Services*

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

Este patrón le muestra cómo migrar y replicar archivos del Método de Acceso a Almacenamiento Virtual (VSAM) de un mainframe a un entorno de destino en la nube de AWS mediante [Connect](https://www.precisely.com/product/precisely-connect/connect) de Precisely. Los entornos de destino indicados en este patrón incluyen Amazon Relational Database Service (Amazon RDS) y Amazon Managed Streaming para Apache Kafka (Amazon MSK). Connect emplea [registro de datos de cambios (CDC)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect) para supervisar continuamente las actualizaciones de sus archivos VSAM de origen y, a continuación, transferir estas actualizaciones a uno o más de sus entornos de destino de AWS. Puede usar este patrón para lograr sus objetivos de modernización de aplicaciones o análisis de datos. Por ejemplo, puede usar Connect para migrar los archivos de aplicaciones de VSAM a la nube de AWS con baja latencia, o migrar sus datos de VSAM a un almacenamiento de datos o lago de datos de AWS para realizar análisis que puedan tolerar latencias de sincronización superiores a las requeridas para la modernización de las aplicaciones.

## Requisitos previos y limitaciones
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Requisitos previos **
+ [IBM z/OS V2R1](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument) o posterior
+ [CICS Transaction Server para z/OS (CICS TS) V5.1 o posterior (captura de datos CICS/VSAM](https://www.ibm.com/support/pages/cics-transaction-server-zos-51-detailed-system-requirements))
+ [IBM MQ 8.0](https://www.ibm.com/support/pages/downloading-ibm-mq-80) o posterior
+ Cumplimiento de los [requisitos de seguridad de z/OS (por ejemplo, la autorización de la APF](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) para cargar bibliotecas) SQData 
+ Registros de recuperación de VSAM activados
+ (Opcional) [Versión de recuperación de CICS VSAM (CICS VR)](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr) para capturar automáticamente los registros de CDC
+ Una cuenta de AWS activa
+ Una [nube privada virtual (VPC) de Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) con una subred a la que pueda acceder la plataforma antigua
+ Una licencia de VSAM Connect de Precisely

**Limitaciones**
+ Connect no admite la creación automática de tablas de destino basadas en cuadernos o esquemas VSAM de origen. Debe definir la estructura de la tabla de destino por primera vez.
+ En el caso de destinos que no son de transmisión, como Amazon RDS, debe especificar el mapeo entre el origen de la conversión y el destino en el script de configuración de Apply Engine.
+ Las funciones de registro, monitoreo y alerta se implementan a través de componentes externos (como Amazon CloudWatch) APIs y requieren que estén completamente operativas.

**Versiones de producto**
+ SQData 40134 para z/OS
+ SQData 4.0.43 para la Amazon Machine Image (AMI) de Amazon Linux en Amazon Elastic Compute Cloud (Amazon) EC2

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

**Pila de tecnología de origen**
+ Lenguaje de control de tareas (JCL)
+ Shell z/OS Unix e Instalación de Sistema Interactivo de Productividad (ISPF)
+ Utilidades VSAM (IDCAMS)

**Pila de tecnología de destino**
+ Amazon EC2
+ Amazon MSK
+ Amazon RDS
+ Amazon VPC

**Arquitectura de destino**

*Migración de archivos VSAM a Amazon RDS*

El siguiente diagrama muestra cómo migrar archivos VSAM a una base de datos relacional, como Amazon RDS, en tiempo real o casi en tiempo real mediante el CDC agent/publisher en el entorno de origen (mainframe local) y el [Apply Engine](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) en el entorno de destino (nube de AWS).

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


El diagrama muestra el siguiente flujo de trabajo por lotes:

1. Connect registra los cambios en un archivo comparando los archivos VSAM de los archivos de copia de seguridad para identificar los cambios y, a continuación, los envía al flujo de registro.

1. El publicador consume los datos del flujo de registro del sistema.

1. El publicador comunica los cambios registrados en los datos a un motor de destino a través de TCP/IP. El controlador Daemon autentica la comunicación entre los entornos de origen y destino.

1. El Apply Engine del entorno de destino recibe los cambios del agente publicador y los aplica a una base de datos relacional o no relacional.

En el diagrama, se muestra el siguiente flujo on line:

1. Connect registra los cambios en el archivo online mediante una réplica de registro y, a continuación, transmite los cambios registrados a un flujo de registro.

1. El publicador consume los datos del flujo de registro del sistema.

1. El publicador comunica los cambios en los datos registrados al motor de destino a través de TCP/IP. El controlador Daemon autentica la comunicación entre los entornos de origen y destino.

1. El motor de implementación del entorno de destino recibe los cambios del agente publicador y los aplica a una base de datos relacional o no relacional.

*Migración de archivos VSAM a Amazon MSK*

El siguiente diagrama muestra cómo transmitir estructuras de datos de VSAM desde un mainframe a Amazon MSK en modo de alto rendimiento, y cómo generar automáticamente conversiones de esquemas JSON o AVRO que se integran con Amazon MSK.

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


El diagrama muestra el siguiente flujo de trabajo por lotes:

1. Connect registra los cambios en un archivo mediante CICS VR o comparando los archivos VSAM de los archivos de copia de seguridad para identificar los cambios. Los cambios registrados se envían al flujo de registro.

1. El publicador consume los datos del flujo de registro del sistema.

1. El publicador comunica los cambios en los datos registrados al motor de destino a través de TCP/IP. El controlador Daemon autentica la comunicación entre los entornos de origen y destino.

1. El motor replicador, que funciona en modo de procesamiento paralelo, divide los datos en una unidad de caché de trabajo.

1. Los subprocesos de trabajo registran los datos de la caché.

1. Los datos se publican en los temas de Amazon MSK desde los hilos de trabajo.

1. [Los usuarios aplican los cambios de Amazon MSK a destinos como Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) OpenSearch o Amazon Service mediante conectores.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

En el diagrama, se muestra el siguiente flujo on line:

1. Los cambios en el archivo online se registran mediante una réplica de registro. Los cambios registrados se envían al flujo de registro.

1. El publicador consume los datos del flujo de registro del sistema.

1. El publicador comunica los cambios en los datos registrados al motor de destino a través de TCP/IP. El controlador Daemon autentica la comunicación entre los entornos de origen y destino.

1. El motor replicador, que funciona en modo de procesamiento paralelo, divide los datos en una unidad de caché de trabajo.

1. Los subprocesos de trabajo registran los datos de la caché.

1. Los datos se publican en los temas de Amazon MSK desde los hilos de trabajo.

1. [Los usuarios aplican los cambios de Amazon MSK a destinos como DynamoDB, Amazon S3 o Service mediante OpenSearch conectores.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Tools (Herramientas)
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ [Amazon Managed Streaming para Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) es un servicio completamente administrado que le permite crear y ejecutar aplicaciones que utilizan Apache Kafka para procesar datos de streaming.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) le ayuda a configurar, utilizar y escalar una base de datos relacional en la nube de AWS.

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

### Prepare el entorno de origen (mainframe)
<a name="prepare-the-source-environment-mainframe"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desarrollador/administrador de IBM Mainframe | 
| Configure el directorio zFS. | Para configurar un directorio zFS, siga las instrucciones de [Directorios 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) en la documentación de Precisely.Las configuraciones de Controller Daemon y Capture/Publisher agente se almacenan en el sistema de archivos de z/OS UNIX Systems Services (denominado ZfS). Los agentes de controlador Daemon, registrador, almacenamiento y publicador requieren una estructura de directorios zFS predefinida para almacenar un número reducido de archivos. | Desarrollador/administrador de IBM Mainframe | 
| Configure los puertos. TCP/IP  | Para configurar TCP/IP los puertos, siga las instrucciones de los [puertos TCP/IP](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) de la documentación de Precily.El controlador Daemon requiere TCP/IP puertos en los sistemas de origen. Los puertos son referenciados por los motores en los sistemas de destino (donde se procesan los datos de cambios registrados). | Desarrollador/administrador de IBM Mainframe | 
| Cree un flujo de z/OS registro. | Para crear un flujo de registro de [z/OS, siga las instrucciones de [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)](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) en la documentación de Precily.Connect utiliza el flujo de registro para registrar y transmitir datos entre el entorno de origen y el entorno de destino durante la migración.Para ver un ejemplo de JCL que crea un z/OS LogStream, consulte [Crear flujos de registro z/OS del sistema](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) en la documentación de Precily. | Desarrollador de Mainframe de IBM | 
| Identifique y autorice a IDs los usuarios de ZfS y a las tareas iniciadas. | Use RACF para conceder acceso al sistema de archivos OMVS zFS. Para ver un ejemplo de JCL, consulte [Identificar y autorizar el usuario de ZfS y la tarea iniciada 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) en la documentación de Precily. | Desarrollador/administrador de IBM Mainframe | 
| Genere las claves z/OS públicas/privadas y el archivo de claves autorizado. | Ejecute JCL para generar el par de claves. Para ver un ejemplo, consulte *Ejemplo de par de claves* en la sección de *Información adicional* de este patrón.Para obtener instrucciones, consulte [Generar claves z/OS públicas y privadas y un archivo de claves autorizadas](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) en la documentación de Precily. | Desarrollador/administrador de IBM Mainframe | 
| Active el registro replicado de CICS VSAM y adjúntelo al flujo de registro. | Ejecute el siguiente script de JCL.<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> | Desarrollador/administrador de IBM Mainframe | 
| Active el registro de recuperación de archivos de VSAM mediante FCT. | Modifique la tabla de control de archivos (FCT) para que refleje los siguientes cambios en los parámetros:<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> | Desarrollador/administrador de IBM Mainframe | 
| Configure el CDCz registro para el agente publicador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desarrollador/administrador de IBM Mainframe | 
| Active el controlador Daemon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desarrollador/administrador de IBM Mainframe | 
| Active el publicador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desarrollador/administrador de IBM Mainframe | 
| Active el flujo de registro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desarrollador/administrador de IBM Mainframe | 

### Prepare el entorno de destino (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale Precily en una EC2 instancia. | Para instalar Connect from Precisely en la AMI de Amazon Linux para Amazon EC2, siga las instrucciones de [Instalar Connect CDC (SQData) en 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) en la documentación de Precily. | AWS general | 
| Abra los TCP/IP puertos. | Para modificar el grupo de seguridad e incluir los puertos del controlador Daemon para el acceso entrante y saliente, siga las instrucciones de [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) en la documentación de Precisely. | AWS general | 
| Cree directorios de archivos. | Para crear directorios de archivos, siga las instrucciones de [Preparación del entorno de aplicación de destino](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) en la documentación de Precisely. | AWS general | 
| Cree el archivo de configuración de Apply Engine. | Cree el archivo de configuración de Apply Engine en el directorio de trabajo de Apply Engine. El siguiente ejemplo de archivo de configuración muestra Apache Kafka como destino:<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>Para obtener más información, consulte [Security](https://kafka.apache.org/documentation/#security) en la documentación de Apache Kafka. | AWS general | 
| Cree scripts para el procesamiento de Apply Engine. | Cree scripts para que Apply Engine procese los datos de origen y los replique en el destino. Para obtener más información, consulte [Crear un script de Apply Engine](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) en la documentación de Precisely. | AWS general | 
| Ejecute los scripts. | Para iniciar el script, ejecute los comandos `SQDPARSE` y `SQDENG`. Para obtener más información, consulte [Analizar un script para 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) en la documentación de Precisely. | AWS general | 

### Validar el entorno
<a name="validate-the-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Valide la lista de archivos VSAM y las tablas de destino para su procesamiento en CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS general, Mainframe | 
| Compruebe que el SQData producto Connect CDC esté vinculado. | Ejecute un trabajo de prueba y compruebe que el código de retorno de este trabajo es 0 (correcto).Los mensajes de estado de Connect CDC SQData Apply Engine deben mostrar mensajes de conexión activa. | AWS general, Mainframe | 

### Ejecute y valide casos de prueba (lote)
<a name="run-and-validate-test-cases-batch"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ejecute el trabajo por lotes en el mainframe. | Ejecute el trabajo de aplicación por lotes con un JCL modificado. Incluya pasos en el JCL modificado para hacer lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS general, Mainframe | 
| Comprobar el flujo de registros. | Compruebe el flujo de registro para confirmar que puede ver los datos de cambios del trabajo por lotes completado en el mainframe. | AWS general, Mainframe | 
| Valide los recuentos de la tabla de cambios delta de origen y de destino. | Para confirmar que se han contabilizado los registros, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS general, Mainframe | 

### Ejecute y valide casos de prueba (On line)
<a name="run-and-validate-test-cases-online"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ejecute la transacción online en una región CICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desarrollador de Mainframe de IBM | 
| Comprobar el flujo de registros. | Confirme que el flujo de registro incluye los cambios específicos a nivel de registro. | Desarrollador de AWS Mainframe | 
| Valide el recuento en la base de datos de destino. | Supervise Apply Engine para comprobar el recuento a nivel de registro. | Precisely, Linux | 
| Valide los recuentos de registros y los registros de datos en la base de datos de destino. | Consulte la base de datos de destino para validar los recuentos de registros y los registros de datos. | AWS general | 

## Recursos relacionados
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS](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) (documentación de Precisely)
+ [Apply engine](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) (documentación de Precisely)
+ [Motor de replicador](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (documentación de Precisely)
+ [Flujo de registro](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (documentación de IBM)

## Información adicional
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-additional"></a>

**Archivo de configuración de ejemplo**

Este es un archivo de configuración de ejemplo para un flujo de registro en el que el entorno de origen es un mainframe y el entorno de destino es 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;
```

**Ejemplo de par de claves**

Este es un ejemplo de cómo ejecutar JCL para generar el par de claves:

```
//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
```

# Modernice la aplicación de CardDemo mainframe mediante AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

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

## Resumen
<a name="modernize-carddemo-mainframe-app-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html) se diseñó para acelerar la modernización de las aplicaciones de mainframe. Utiliza IA generativa para agilizar el proceso de modernización del mainframe. Automatiza tareas complejas, como el análisis de código heredado, la documentación del mainframe, la extracción de reglas empresariales, la descomposición de aplicaciones monolíticas en el dominio empresarial y la refactorización del código. Acelera los proyectos de modernización al automatizar tareas complejas, como el análisis de aplicaciones y la planificación de las secuencias de migración. Al descomponer las aplicaciones monolíticas, secuencia de AWS Transform forma inteligente la transformación de las aplicaciones del mainframe, lo que le ayuda a transformar las funciones empresariales en paralelo. AWS Transform puede acelerar la toma de decisiones y mejorar la agilidad operativa y la eficiencia de la migración.

Este patrón ofrece step-by-step instrucciones que le ayudarán a probar las capacidades de modernización del mainframe AWS Transform mediante [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)el uso de un ejemplo de una aplicación de mainframe de código abierto.

## Requisitos previos y limitaciones
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ AWS IAM Identity Center, [habilitado](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Permisos](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform) que permiten a los administradores habilitar AWS Transform
+ [Permisos](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector) que permiten a los administradores aceptar solicitudes de conexión de Amazon Simple Storage Service (Amazon S3) para AWS Transform la aplicación web

**Limitaciones**
+ AWS Transform está disponible solo en algunos Regiones de AWS. Para obtener la lista completa de regiones admitidas, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform admite el análisis de código, la generación de documentos, la extracción de reglas empresariales, la descomposición y la refactorización del lenguaje común orientado a los negocios (COBOL) a Java. Para obtener más información, consulte [Capabilities and key features](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) y [Supported file types for transformation of mainframe applications](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files).
+ Hay una cuota de servicio para las capacidades de transformación del mainframe en AWS Transform. Para obtener más información, consulte [Cuotas para AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para poder colaborar en un espacio de trabajo compartido, todos los usuarios deben estar registrados en la misma instancia AWS IAM Identity Center que esté asociada a la instancia de la aplicación web. AWS Transform 
+ El bucket de Amazon S3 AWS Transform debe estar en la misma región Cuenta de AWS y.

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

En el siguiente diagrama se muestra la arquitectura que configuró en este patrón.

![\[Uso de AWS Transform para modernizar una aplicación del mainframe que se almacena en un bucket de Amazon S3.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. AWS Transform utiliza un conector para acceder a la aplicación de CardDemo mainframe, que está almacenada en un bucket de Amazon S3.

1. AWS Transform AWS IAM Identity Center se utiliza para administrar el acceso y la autenticación de los usuarios. El sistema implementa distintos niveles de controles de seguridad para la autenticación, la autorización, el cifrado y la administración del acceso para proteger el código y los artefactos durante el procesamiento. Los usuarios interactúan con el AWS Transform agente a través de una interfaz de chat. Puede dar instrucciones al agente de IA para realizar tareas específicas en inglés. Para obtener más información, consulte [Human in the loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl) en la AWS Transform documentación.

1. El agente de IA interpreta las instrucciones del usuario, crea un plan de trabajo, divide el trabajo en tareas ejecutables y lo ejecuta de forma autónoma. Los usuarios pueden revisar y aprobar la transformación. Estas son algunas de las tareas de transformación:
   + **Análisis de código**: AWS Transform analiza el código de cada archivo para obtener detalles como el nombre y el tipo de archivo, las líneas de código y sus rutas. El agente analiza el código fuente, ejecuta clasificaciones, crea asignaciones de las dependencias e identifica cualquier artefacto que falte. También identifica los componentes duplicados.
   + **Generación de documentos**: AWS Transform genera documentación para la aplicación de mainframe. Al analizar el código, puede crear automáticamente documentación detallada de los programas de las aplicaciones, así como descripciones de la lógica empresarial, los flujos, las integraciones y las dependencias que hay en los sistemas heredados.
   + **Extracción de la lógica empresarial**: AWS Transform analiza los programas de COBOL para documentar su lógica empresarial principal, a fin de ayudarlo a comprender la lógica empresarial fundamental.
   + **Descomposición del código**: AWS Transform descompone el código en dominios que tienen en cuenta las dependencias entre los programas y los componentes. La agrupación de archivos y programas relacionados en el mismo dominio mejora la organización y ayuda a preservar la estructura lógica de la aplicación al dividirla en componentes más pequeños.
   + **Planificación de la oleada de migración**: en función de los dominios que haya creado durante la fase de descomposición, AWS Transform genera un plan de migración con el orden de modernización recomendado.
   + **Refactorización de código**: AWS Transform refactoriza el código de todos los archivos de dominio o de algunos de ellos en código Java. El objetivo de este paso es preservar la lógica empresarial fundamental de la aplicación y, al mismo tiempo, refactorizarla para convertirla en una aplicación de Java modernizada y optimizada para la nube.

1. AWS Transform almacena el código refactorizado, los documentos generados, los artefactos asociados y las bibliotecas de tiempo de ejecución en su bucket de Amazon S3. Se puede hacer lo siguiente:
   + Acceda a la carpeta del tiempo de ejecución del bucket de Amazon S3.
   + Cree e implemente la aplicación siguiendo las instrucciones de la documentación sobre cómo [crear e implementar la aplicación modernizada después](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) de la refactorización. AWS Transform 
   + A través de la interfaz de chat, solicite y descargue una muestra o una plantilla Terraform de AWS CloudFormation AWS Cloud Development Kit (AWS CDK) Hashicorp. Estas plantillas pueden ayudarlo a implementar los AWS recursos necesarios para respaldar la aplicación refactorizada.
   + Utilice [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) para mejorar la calidad del código refactorizado mediante el uso de modelos de lenguaje de gran tamaño (). LLMs El motor de refactorización conserva la equivalencia funcional de COBOL y, al mismo tiempo, la transforma en código Java. El uso de Reforge es un paso opcional que está disponible después de la transformación. Este paso se utiliza LLMs para reestructurar el código para que se parezca mucho al Java nativo, lo que puede mejorar la legibilidad y el mantenimiento. Reforge también agrega comentarios legibles por humanos para ayudarlo a entender el código e implementa patrones de programación modernos y prácticas recomendadas.

## Tools (Herramientas)
<a name="modernize-carddemo-mainframe-app-tools"></a>

**Servicios de AWS**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utiliza la IA agentic para ayudarlo a acelerar la modernización de las cargas de trabajo heredadas, como .NET, los mainframes y las cargas de trabajo. VMware 
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)le ayuda a gestionar de forma centralizada el acceso mediante inicio de sesión único (SSO) a sus aplicaciones y a las de la nube. Cuentas de AWS 
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

**Repositorio de código**

Puede utilizar la aplicación de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código abierto como ejemplo de aplicación para empezar a modernizar el mainframe.

## Prácticas recomendadas
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Comience de a poco**: comience con un código pequeño y menos complejo (entre 15 000 y 20 000 líneas de código) para comprender cómo se AWS Transform analizan y transforman las aplicaciones de mainframe.
+ **Combínelo con la experiencia humana**: utilícelo AWS Transform como acelerador y, al mismo tiempo, aplique la experiencia humana para obtener resultados óptimos.
+ **Haga revisiones y pruebas minuciosas**: revise siempre detenidamente el código transformado y ejecute pruebas exhaustivas para validar la equivalencia funcional después de la transformación.
+ Envía **comentarios**: para enviar comentarios y sugerencias de mejora, utiliza el botón **Enviar comentarios** del Consola de administración de AWS o crea un caso con [AWS Support](https://support.console.aws.amazon.com/). Para obtener más información, consulte [Creación de un caso de soporte](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Sus comentarios son valiosos para poder mejorar y seguir desarrollando el servicio.

## Epics
<a name="modernize-carddemo-mainframe-app-epics"></a>

### Preparación de la aplicación del mainframe
<a name="prepare-the-mainframe-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un bucket. | Cree un bucket de Amazon S3 en la misma Cuenta de AWS región en la que AWS Transform está activado. Utiliza este depósito para almacenar el código de la aplicación del mainframe y AWS Transform utiliza este depósito para almacenar los documentos generados, el código refactorizado y otros archivos asociados a la transformación. Para obtener instrucciones, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la documentación de Amazon S3. | AWS general | 
| Prepare la aplicación del mainframe de ejemplo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Desarrollador de aplicaciones, ingeniero DevOps  | 

### Configure el Centro de Identidad de IAM y AWS Transform
<a name="configure-sso-and-trn"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Agregue usuarios a IAM Identity Center. | Agregue los posibles usuarios a IAM Identity Center. Siga las instrucciones de la documentación sobre cómo [añadir usuarios al Centro de identidades de IAM](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users). AWS Transform  | Administrador de AWS | 
| Habilite AWS Transform y añada usuarios. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Administrador de AWS | 
| Configure el acceso de los usuarios a la aplicación AWS Transform web. | Cada usuario debe aceptar la invitación para acceder a la aplicación AWS Transform web. Siga las instrucciones que se indican en [la AWS Transform documentación sobre cómo aceptar la invitación](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation). | Desarrollador de aplicaciones, propietario de la aplicación | 
| Inicie sesión en la aplicación AWS Transform web. | Siga las instrucciones que se indican [en Iniciar sesión en AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | Desarrollador de aplicaciones, propietario de la aplicación | 
| Configure un espacio de trabajo. | Configure un espacio de trabajo en el que los usuarios puedan colaborar en la aplicación AWS Transform web. Siga las instrucciones de la AWS Transform documentación sobre cómo [iniciar su proyecto](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow). | Administrador de AWS | 

### Transformación de la aplicación del mainframe
<a name="transform-the-mainframe-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un trabajo de transformación. | Cree un trabajo de transformación para modernizar la aplicación de CardDemo mainframe. Para obtener instrucciones, consulte [Crear e iniciar un trabajo](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job) en la AWS Transform documentación. Cuando se le pida que defina los objetivos en la interfaz de AWS Transform chat, elija **Realizar la modernización del mainframe ( z/OS a IBM AWS) y, a** continuación, elija **Analizar código, Generar documentación técnica, Lógica empresarial, Descomponer código, Planificar la secuencia de migración y Transformar código a Java**. | Desarrollador de aplicaciones, propietario de la aplicación | 
| Configure el conector. | Establezca un conector al bucket de Amazon S3 que contiene la aplicación de CardDemo mainframe. Este conector permite acceder AWS Transform a los recursos del bucket y realizar funciones de transformación consecutivas. Para obtener instrucciones, consulte [Configurar un conector](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) en la AWS Transform documentación. | Administrador de AWS | 
| Realice el análisis del código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obtener más información, consulte [Análisis de código](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) en la AWS Transform documentación. | Desarrollador de aplicaciones, propietario de la aplicación | 
| Genere la documentación técnica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obtener más información, consulte [Generar documentación técnica](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) en la AWS Transform documentación. | Desarrollador de aplicaciones, propietario de la aplicación | 
| Extraiga la lógica empresarial. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obtener más información, consulte [Extraer la lógica empresarial](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) en la AWS Transform documentación. | Desarrollador de aplicaciones, propietario de la aplicación | 
| Descomponga el código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obtener más información sobre la descomposición y las semillas, consulte [Descomposición en la documentación](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition). AWS Transform  | Desarrollador de aplicaciones, propietario de la aplicación | 
| Planifique las oleadas de migración. | Planifique las oleadas de migración de la CardDemo aplicación. Siga las instrucciones que aparecen en la AWS Transform documentación sobre la [planificación de la oleada de migración](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) para revisar y editar el plan de oleada. | Desarrollador de aplicaciones, propietario de la aplicación | 
| Refactorice el código | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Desarrollador de aplicaciones, propietario de la aplicación | 
| (Opcional) Utilice Reforge para mejorar el código de Java. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obtener más información, consulte [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) en la AWS Transform documentación. | Desarrollador de aplicaciones, propietario de la aplicación | 
| Optimice la implementación. | AWS Transform puede proporcionar plantillas de infraestructura como código (IaC) para Terraform o CloudFormation AWS CDK Terraform. Estas plantillas lo ayudan a implementar los componentes principales, como los recursos de computación, base de datos, almacenamiento y seguridad.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obtener más información, consulte [Capacidades de implementación](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment) en la AWS Transform documentación. | Desarrollador de aplicaciones, propietario de la aplicación | 

## Resolución de problemas
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| No puede ver el código fuente ni el documento generado en la aplicación AWS Transform web. | Añada una política al permiso CORS para que el bucket de Amazon S3 la permita AWS Transform como origen. Para obtener más información, consulte los [permisos CORS del bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) en la AWS Transform documentación. | 

## Recursos relacionados
<a name="modernize-carddemo-mainframe-app-resources"></a>

**AWS documentación**
+ [Transformación de aplicaciones de mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform documentación)

**Otros recursos AWS **
+ [Acelere su proceso de modernización del mainframe utilizando agentes de IA con AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/) (AWS entrada del blog)
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [AWS IAM Identity Center FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Videos y tutoriales**
+ [Introducción a 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: Modernice las aplicaciones de mainframe más rápido con Amazon Q Developer](https://www.youtube.com/watch?v=pSi0XtYfY4o) () YouTube
+ [AWS re:Invent 2024: Automatizar la migración](https://www.youtube.com/watch?v=9FjxnEoH5wg) y la modernización para acelerar la transformación () YouTube
+ [AWS re:Invent 2024: Toyota impulsa la innovación y mejora la eficiencia operativa](https://www.youtube.com/watch?v=_NXc1MJenw4) con la generación de IA () YouTube

**nota**  
AWS Transform anteriormente se conocía como *transformación de Amazon Q Developer para mainframe.*

# Modernice e implemente aplicaciones de mainframe con Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

*Mason Cahill, Polaris Jhandi, Prachi Khanna, Sivasubramanian Ramani y Santosh Kumar Singh, Amazon Web Services*

## Resumen
<a name="modernize-mainframe-app-transform-terraform-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)puede acelerar la modernización a gran escala de .NET, el mainframe y las cargas VMware de trabajo. Implementa agentes de IA especializados que automatizan las tareas complejas como las evaluaciones, el análisis de código, la refactorización, la descomposición, la asignación de dependencias, la validación y la planificación de la transformación. [Este patrón demuestra cómo AWS Transform modernizar una aplicación de mainframe y luego implementarla en la AWS infraestructura mediante Hashicorp Terraform.](https://developer.hashicorp.com/terraform/intro) Estas step-by-step instrucciones le ayudan a pasar de COBOL a una aplicación Java moderna [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), que es un ejemplo de aplicación de mainframe de código abierto.

## Requisitos previos y limitaciones
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Permisos administrativos para crear AWS recursos e implementar aplicaciones
+ La versión 1.5.7 o posterior de Terraform [configurada](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Proveedor de Terraform, configurado](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center[, activado](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [habilitado](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Un usuario [incorporado a un](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) espacio de AWS Transform trabajo con un rol de colaborador que puede ejecutar tareas de transformación

**Limitaciones**
+ AWS Transform solo está disponible en algunos. Regiones de AWS Para obtener la lista completa de regiones admitidas, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Hay una cuota de servicio para las capacidades de transformación del mainframe en AWS Transform. Para obtener más información, consulte [Cuotas para AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para colaborar en un espacio de trabajo compartido, todos los usuarios deben ser usuarios registrados de la misma instancia AWS IAM Identity Center que esté asociada a tu instancia de la aplicación AWS Transform web.
+ El bucket de Amazon Simple Storage Service (Amazon S3) debe estar en la Cuenta de AWS misma región AWS Transform y.

## Arquitectura
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

El siguiente diagrama muestra la end-to-end modernización de la aplicación antigua y su implementación en Nube de AWS. Las credenciales de la aplicación y la base de datos se almacenan en AWS Secrets Manager, y Amazon CloudWatch proporciona capacidades de monitoreo y registro.

![\[AWS Transform moderniza una aplicación de mainframe y la implementación mediante Terraform.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. A través de él AWS IAM Identity Center, el usuario se autentica y accede al AWS Transform . Cuenta de AWS

1. El usuario carga el código de mainframe COBOL en el bucket de Amazon S3 e inicia la transformación en AWS Transform.

1. AWS Transform moderniza el código COBOL para convertirlo en código Java nativo de la nube y almacena el código modernizado en el bucket de Amazon S3.

1. Terraform crea la AWS infraestructura para implementar la aplicación modernizada, que incluye un Application Load Balancer, una instancia de Amazon Elastic Compute Cloud (Amazon EC2) y una base de datos del Amazon Relational Database Service (Amazon RDS). Terraform implementa el código modernizado en la instancia de Amazon EC2.

1. Los archivos VSAM se cargan en Amazon EC2 y se migran de Amazon EC2 a la base de datos de Amazon RDS.

## Tools (Herramientas)
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Servicios de AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) brinda capacidad de computación escalable en la Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez. En este patrón, las instancias de clúster de conmutación por error de SQL Server se instalan en las instancias de Amazon EC2.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)le ayuda a gestionar de forma centralizada el acceso mediante el inicio de sesión único (SSO) a sus aplicaciones y a las de la nube. Cuentas de AWS 
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) lo ayuda a configurar, utilizar y escalar una base de datos relacional en la Nube de AWS.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) lo ayuda a reemplazar las credenciales codificadas en su código, incluidas contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utiliza la IA agentic para ayudarlo a acelerar la modernización de las cargas de trabajo antiguas, como .NET, los mainframes y las cargas de trabajo. VMware 

**Otras herramientas**
+ [Apache Maven](https://maven.apache.org/) es una herramienta de automatización de compilaciones y administración de proyectos de software de código abierto para proyectos de Java.
+ [Apache Tomcat](https://tomcat.apache.org/) es un contenedor de servlets de código abierto y un servidor web para el código Java.
+ [HashiCorp Terraform](https://www.terraform.io/docs) es una herramienta de infraestructura como código (IaC) que facilita usar el código para aprovisionar y administrar los recursos y la infraestructura en la nube.
+ [Spring Boot](https://spring.io/projects/spring-boot) es un marco de código abierto que se creó sobre Spring Boot Framework en Java.

**Repositorio de código**

[El código de este patrón está disponible en el repositorio E2E de Mainframe Transformation GitHub .](https://github.com/aws-samples/sample-mainframe-transformation-e2e) Este patrón utiliza la aplicación de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código abierto como aplicación de ejemplo.

## Prácticas recomendadas
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Asigne la propiedad total del código y los recursos destinados a la migración.
+ Desarrolle y pruebe una prueba de concepto antes de escalar a una migración completa.
+ Garantice la implicación de todas las partes interesadas.
+ Establezca canales de comunicación claros.
+ Defina y documente los requisitos para un producto mínimo viable (MVP).
+ Establezca criterios de éxito claros.

## Epics
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Preparación y carga del código de la aplicación del mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un bucket. | Cree un bucket de Amazon S3 en la misma Cuenta de AWS región en la que AWS Transform está activado. Este depósito se utiliza para almacenar el código de la aplicación del mainframe, los datos y los scripts adicionales necesarios para crear y ejecutar la aplicación. AWS Transform utiliza este depósito para almacenar el código refactorizado y otros archivos asociados a la transformación. Para obtener instrucciones, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la documentación de Amazon S3. | AWS general, administrador de AWS | 
| Configure los permisos de CORS para el bucket. | Al configurar su depósito para el AWS Transform acceso, debe configurar el uso compartido de recursos de origen cruzado (CORS) para el depósito. Si no se ha configurado correctamente, es posible que no pueda utilizar las funciones de visualización en línea o de comparación de archivos de AWS Transform. Para obtener instrucciones sobre cómo configurar CORS para un bucket, consulte [Uso compartido de recursos entre orígenes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) en el bucket de Amazon S3. Para conocer la política, consulta los [permisos CORS del bucket de S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) en la documentación. AWS Transform  | AWS general, administrador de AWS | 
| Prepare el código de la aplicación del mainframe de ejemplo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS general, desarrollador de aplicaciones | 

### Transformación de la aplicación del mainframe
<a name="transform-the-mainframe-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure el AWS Transform trabajo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicaciones, propietario de la aplicación | 
| Configure un conector. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicaciones, propietario de la aplicación | 
| Transforme el código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicaciones, propietario de la aplicación | 

### Implementación de la infraestructura mediante Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Actualice las plantillas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)En el caso de los entornos de producción o similares a los de producción, configure componentes de seguridad adicionales. Por ejemplo, habilite las [protecciones de AWS WAF para el equilibrador de carga de aplicación](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS general, administrador de AWS | 
| Implemente la infraestructura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Instalación y configuración de Apache Tomcat en la instancia de Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale el software necesario. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 
| Verifique la instalación del software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 

### Compilación y empaquetado del código de la aplicación modernizada
<a name="compile-and-package-the-modernized-application-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descargue y extraiga el código generado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 
| Compile la aplicación modernizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 

### Migración de la base de datos
<a name="migrate-the-database"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree la base de datos y los esquemas JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 
| Valide la creación de la base de datos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 
| Migre los datos a la base de datos de JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 

### Instalación de la aplicación modernizada
<a name="install-the-modernized-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale la aplicación modernizada en la instancia de Amazon EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicaciones, arquitecto de la nube | 
| Reinicie el servidor de Tomcat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicaciones, arquitecto de la nube | 
| Migre el conjunto de datos de VSAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicación, ingeniero de migraciones | 
| Actualice los parámetros en los scripts de Groovy. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador de aplicaciones | 

### Pruebe la aplicación
<a name="test-the-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Pruebe la aplicación modernizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador, ingeniero de pruebas | 
| Compruebe los scripts del lote. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desarrollador, ingeniero de pruebas | 

### Limpieza
<a name="clean-up"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Prepárese para eliminar la infraestructura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS general | 
| Configurar la infraestructura. | Estos pasos eliminarán sus recursos de forma permanente. Asegúrese de haber realizado una copia de seguridad de todos los datos importantes antes de continuar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS general | 

## Resolución de problemas
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Autenticación de Terraform | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Errores relacionados con Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| El nombre de la URL no se carga | Asegúrese de que el grupo de seguridad del equilibrador de carga de aplicación tenga su dirección IP en la regla de entrada como origen. | 
| Problema de autenticación en el registro de Tomcat | Confirme que la contraseña secreta de la base de datos AWS Secrets Manager y la contraseña del **archivo server.xml** coinciden. | 

## Recursos relacionados
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Guía prescriptiva**
+ [Modernice la aplicación de CardDemo mainframe con AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentación de servicio**
+ [AWS Consola de administración de Blue Age Blusam](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Requisitos de configuración de la infraestructura para AWS Blu Age Runtime (no gestionada)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Incorporación de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernización de las aplicaciones de mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configure la configuración de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS publicaciones de blog**
+ [Acelere su proceso de modernización del mainframe con agentes de IA con AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernice la administración de la producción del mainframe AWS mediante Rocket Enterprise Server y LRS X PageCenter
<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 and Shoup Inc*

## Resumen
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

Al modernizar la administración de la producción de su mainframe, puede ahorrar costos, mitigar la deuda técnica que implica el mantenimiento de los sistemas heredados y mejorar la resiliencia y la agilidad mediante las tecnologías nativas de la DevOps nube de Amazon Web Services (AWS). Este patrón muestra cómo modernizar las cargas de trabajo de administración de la producción de mainframe críticas para la empresa en la nube de AWS. El modelo utiliza [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) como entorno de ejecución para una aplicación de mainframe modernizada, con Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) como servidor de impresión y LRS X como servidor de archivos. PageCenter El LRS PageCenter X ofrece soluciones de administración de resultados para ver, indexar, buscar, archivar y proteger el acceso a los resultados empresariales.

El patrón se basa en el enfoque de modernización del mainframe a través de [redefinir la plataforma.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Las aplicaciones de mainframe se migran mediante [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) a Amazon Elastic Compute Cloud (Amazon EC2). Las cargas de trabajo de administración de resultados de mainframe se migran a Amazon EC2, y una base de datos de mainframe, como IBM Db2 (para), funciona con z/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS AWS Directory Service para Microsoft Active Directory para la autenticación y autorización del flujo de trabajo de administración de resultados.

## Requisitos previos y limitaciones
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Una carga de trabajo de administración de la producción de mainframe.
+ Conocimientos básicos sobre cómo volver a compilar y entregar una aplicación de mainframe que se ejecute en Rocket Enterprise Server. Para obtener más información, consulte la ficha técnica de [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) en la documentación de Rocket Software.
+ Conocimientos básicos de las soluciones y los conceptos de impresión en la nube de LRS. Para obtener más información, consulte *Output Modernization* (Modernización de la producción) en la documentación del LRS.
+ Software y licencia de Rocket Enterprise Server. Para obtener más información, contacte con [Rocket Software](https://www.rocketsoftware.com/products/enterprise-suite/request-contact).
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISSoftware y licencias de LRS. Para obtener más información, [póngase en contacto con LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Debe proporcionar los nombres de host de las EC2 instancias en las que se instalarán los productos LRS.


| 
| 
| Nota: Para obtener más información sobre las consideraciones de configuración de las cargas de trabajo de administración de la salida de mainframe, consulte *Consideraciones* en la sección [Información adicional](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) de este patrón. | 
| --- |

**Versiones de producto**
+ [Rocket Enterprise Server 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 o posterior

## Arquitectura
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Pila de tecnología de origen**
+ Sistema operativo: IBM z/OS
+ Lenguaje de programación: Common Business-Oriented Language (COBOL), Job Control Language (JCL) y Customer Information Control System (CICS)
+ Base de datos: IBM Db2 para z/OS, base de datos del Sistema de Gestión de la Información de IBM (IMS) y Método de acceso al almacenamiento virtual (VSAM)
+ Seguridad: Resource Access Control Facility (RACF), CA Top Secret for z/OS y Access Control Facility 2 () ACF2
+ Soluciones de impresión y archivado: productos de impresión y z/OS salida para mainframes de IBM (IBM Infoprint Server for z/OS, LRS y CA Deliver) y soluciones de archivado (CA Deliver, ASG Mobius o CA Bundle)

**Arquitectura de origen**

El diagrama siguiente muestra una arquitectura de estado actual tipo para una carga de trabajo de administración de la producción de mainframe.

![\[Proceso de la salida de mainframe en siete pasos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


El diagrama muestra el siguiente flujo de trabajo:

1. Los usuarios llevan a cabo transacciones comerciales en un sistema de participación (SoE) que se basa en una aplicación CICS de IBM escrita en COBOL.

1. El SoE invoca el servicio de mainframe, que registra los datos de las transacciones comerciales en una base de datos (SoR) como IBM Db2 for z/OS. system-of-records

1. El SoR conserva los datos comerciales del SoE.

1. El programador de trabajos por lotes inicia un trabajo por lotes para generar resultados de impresión.

1. El trabajo por lotes extrae los datos de la base de datos. Formatea los datos de acuerdo con los requisitos comerciales y, a continuación, genera producción empresarial, como extractos de facturación, tarjetas de identidad o extractos de préstamos. Por último, el trabajo por lotes dirige la producción a la administración de la producción para formatear, publicar y almacenar los resultados en función de los requisitos empresariales.

1. La administración de la producción recibe los resultados del trabajo por lotes. La gestión de salida indexa, organiza y publica la salida en un destino específico del sistema de gestión de salida, como las soluciones LRS PageCenter X (como se demuestra en este patrón) o CA View.

1. Los usuarios pueden ver, buscar y recuperar los resultados.

**Pila de tecnología de destino**
+ Sistema operativo: Windows Server que se ejecuta en Amazon EC2
+ Informática — Amazon EC2
+ Almacenamiento: Amazon Elastic Block Store (Amazon EBS) y FSx Amazon para Windows File Server
+ Lenguaje de programación: COBOL, JCL y CICS
+ Bases de datos: Amazon RDS
+ Seguridad: AWS Managed Microsoft AD
+ Impresión y archivado: solución de impresión LRS (VPSX) y archivado (PageCenterX) en AWS
+ Entorno de tiempo de ejecución de mainframe: Rocket Enterprise Server

**Arquitectura de destino**

El diagrama siguiente muestra una arquitectura para una carga de trabajo de administración de la producción de mainframe que se implementa en la nube de AWS.

![\[Arquitectura de destino para la administración por lotes de aplicaciones y la salida en siete pasos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El programador de trabajos por lotes inicia un trabajo por lotes para generar la producción, como extractos de facturación, tarjetas de identificación o extractos de préstamos.

1. El trabajo por lotes del mainframe ([rediseñado para Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utiliza el tiempo de ejecución de Rocket Enterprise Server para extraer datos de la base de datos de la aplicación, aplicar lógica empresarial a los datos y formatear los datos. A continuación, envía los datos a un destino de salida mediante el [módulo de salida de la impresora de Rocket Software (documentación](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html) de OpenText Micro Focus).

1. La base de datos de la aplicación (un SoR que se ejecuta en Amazon RDS) conserva los datos para su impresión.

1. La solución de VPSX/MFI impresión LRS se implementa en Amazon EC2 y sus datos operativos se almacenan en Amazon EBS. LRS VPSX/MFI utiliza el agente de TCP/IP-based LRS/Queue transmisión para recopilar los datos de salida a través de la API JES Print Exit de Rocket Software.

   LRS VPSX/MFI realiza el preprocesamiento de datos, como la traducción de EBCDIC a ASCII. También realiza tareas más complejas, como la conversión de flujos de datos exclusivos de computadoras centrales, como IBM Advanced Function Presentation (AFP) y Xerox Line Conditioned Data Stream (LCDS), en flujos de datos más comunes de visualización e impresión, como el lenguaje de comandos de impresora (PCL) y el PDF.

   Durante el período de mantenimiento del LRS PageCenter X, el LRS conserva la cola de salida y VPSX/MFI sirve de respaldo para la cola de salida. El LRS VPSX/MFI conecta y envía la salida al LRS PageCenter X mediante el protocolo. LRS/Queue LRS/Queue realiza un intercambio de información sobre la preparación y la finalización de los trabajos para garantizar que se produzca la transferencia de datos.

   **Notas:**

   Para obtener más información sobre los datos de impresión que se transmiten desde Rocket Software Print Exit a LRS/Queue los mecanismos de procesamiento por lotes de mainframe VPSX/MFI compatibles con el LRS, consulte *Captura de datos de impresión* en la sección de [información adicional](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

   El LRS VPSX/MFI puede realizar comprobaciones de estado a nivel de flota de impresoras. Para obtener más información, consulte *Printer-fleet health checks* (Comprobaciones de estado de la flota de impresoras) en la sección [Additional information](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) (Información adicional) de este patrón.

1. La solución de administración de salida LRS PageCenter X se implementa en Amazon EC2 y sus datos operativos se almacenan en Amazon FSx for Windows File Server. LRS PageCenter X proporciona un sistema central de gestión de informes de todos los archivos importados a LRS PageCenter X y permite a todos los usuarios acceder a los archivos. Los usuarios pueden ver el contenido de un archivo específico o realizar búsquedas de criterios coincidentes en varios archivos.

   El LRS/NetX componente es un servidor de aplicaciones web multiproceso que proporciona un entorno de ejecución común para la aplicación LRS PageCenter X y otras aplicaciones LRS. El componente LRS/Web Connect está instalado en el servidor web y proporciona un conector desde el servidor web al servidor de aplicaciones LRS/NetX web.

1. El LRS PageCenter X proporciona almacenamiento para los objetos del sistema de archivos. Los datos operativos del LRS PageCenter X se almacenan en Amazon FSx for Windows File Server.

1. AWS Managed Microsoft AD lleva a cabo la autenticación y la autorización de la administración de la producción con LRS/DIS.

**nota**  
La solución de destino no suele requerir cambios en la aplicación para adaptarse a los lenguajes de formato de mainframe, como IBM AFP o Xerox LCDS.

**Arquitectura de infraestructura de AWS**

El diagrama siguiente muestra una arquitectura de infraestructura de AWS segura y de alta disponibilidad para una carga de trabajo de administración de la producción de mainframe.

![\[Infraestructura multi-AZ de AWS con un flujo de trabajo en siete pasos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El programador de lotes inicia el proceso por lotes y se implementa EC2 en Amazon en varias [zonas de disponibilidad](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para una alta disponibilidad (HA).
**nota**  
Este patrón no incluye la implementación del programador de lotes. Para obtener más información acerca de la implementación, consulte la documentación del proveedor de software del programador.

1. El trabajo por lotes dela computadora central (escrito en un lenguajes de programación como JCL o COBOL) utiliza la lógica empresarial básica para procesar y generar la producción de impresión, como extractos de facturación, tarjetas de identificación y extractos de préstamos. El trabajo por lotes se implementa en Amazon en EC2 dos zonas de disponibilidad para alta disponibilidad. Utiliza la API Print Exit de Rocket Software para enrutar la salida de impresión al LRS VPSX/MFI para el preprocesamiento de los datos.

1. El servidor de VPSX/MFI impresión LRS se implementa en Amazon en dos zonas EC2 de disponibilidad para HA (par redundante activo-en espera). Utiliza [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) como almacén de datos operativos. El Network Load Balancer realiza una comprobación del estado de las instancias VPSX/MFI EC2 LRS. Si una instancia activa está en mal estado, el equilibrador de carga dirige el tráfico a las instancias activas en espera de la otra zona de disponibilidad. Las solicitudes de impresión se conservan en la cola de trabajos del LRS de forma local en cada una de las instancias. EC2 En caso de producirse un error, se debe reiniciar la instancia errónea antes de que los servicios de LRS puedan reanudar el procesamiento de la solicitud de impresión.
**nota**  
El LRS también VPSX/MFI puede realizar comprobaciones de estado a nivel de flota de impresoras. Para obtener más información, consulte *Printer-fleet health checks* (Comprobaciones de estado de la flota de impresoras) en la sección [Additional information](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) (Información adicional) de este patrón.

1. La administración de salida del LRS PageCenter X se implementa en Amazon en EC2 dos zonas de disponibilidad para HA (par redundante activo-en espera). Utiliza [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) como almacén de datos operativos. Si una instancia activa se encuentra en mal estado, el balanceador de cargas comprueba el estado de las instancias LRS PageCenter X y dirige el tráfico a las EC2 instancias en espera de la otra zona de disponibilidad.

1. Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) proporciona un nombre DNS para integrar el VPSX/MFI servidor LRS con LRS X. PageCenter
**nota**  
El LRS PageCenter X admite un balanceador de carga de capa 4.

1. LRS PageCenter X utiliza Amazon FSx for Windows File Server como almacén de datos operativo implementado en dos zonas de disponibilidad para alta disponibilidad. LRS PageCenter X solo entiende los archivos que se encuentran en el recurso compartido de archivos, no en una base de datos externa.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) se utiliza con LRS/DIS para realizar la autenticación y la autorización del flujo de trabajo de administración de resultados. Para obtener más información, consulte *Print output authentication and authorization* (Autenticación y autorización de la producción de impresión) en la sección [Additional information](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) (Información adicional).

## Tools (Herramientas)
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-tools"></a>

**Servicios de AWS**
+ [AWS Directory Service para Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) permite que las cargas de trabajo compatibles con un directorio y los recursos de AWS utilicen Active Directory administrado en la nube de AWS.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) proporciona volúmenes de almacenamiento a nivel de bloques para utilizarlos con instancias de Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona capacidad informática escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuye el tráfico entrante de aplicaciones o redes entre varios destinos. Por ejemplo, puede distribuir el tráfico entre EC2 instancias, contenedores y direcciones IP de Amazon en una o más zonas de disponibilidad. Este patrón utiliza un equilibrador de carga de red.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) proporciona sistemas de archivos que admiten los protocolos de conectividad estándares del sector y ofrecen alta disponibilidad y replicación en todas las regiones de AWS. Este patrón usa Amazon FSx for Windows File Server.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) le ayuda a configurar, utilizar y escalar una base de datos relacional en la nube de AWS.

**Otras herramientas**
+ El software [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) proporciona una solución escalable de administración de contenido de documentos e informes que ayuda a los usuarios a obtener el máximo valor de la información mediante funciones automatizadas de indexación, cifrado y búsqueda avanzada.
+ [La LRS VPSX/MFI (interfaz Micro Focus)](https://www.lrsoutputmanagement.com/products/modernization-products/), desarrollada conjuntamente por LRS y Rocket Software, captura la salida de una bobina JES de Rocket Software y la envía de forma fiable a un destino de impresión específico.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queuepara recopilar o capturar datos de impresión a través de la interfaz de programación JES Print Exit de Rocket Software.
+ LRS Directory Integration Server (LRS/DIS) es un directorio de integración que se utiliza para la autenticación y la autorización durante el flujo de trabajo de impresión.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) es un entorno de implementación de aplicaciones para aplicaciones de mainframe. Proporciona el entorno en tiempo de ejecución para las aplicaciones de mainframe que se migran o crean con cualquier versión de Rocket Enterprise Developer.

## Epics
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Configuración del tiempo de ejecución de Rocket e implementación de una aplicación por lotes para mainframe
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure el tiempo de ejecución e implemente una aplicación de demostración. | Para configurar Rocket Enterprise Server en Amazon EC2 e implementar la aplicación de BankDemo demostración de Rocket Software, siga las instrucciones de la guía de [usuario](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html) de AWS Mainframe Modernization.La BankDemo aplicación es una aplicación por lotes para mainframe que crea y, a continuación, inicia la impresión. | Arquitecto de la nube | 

### Configurar un servidor de impresión LRS en Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crea una instancia de Amazon EC2 Windows. | Para lanzar una instancia de Amazon EC2 Windows, sigue las instrucciones de [Lanzar una EC2 instancia de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) en la EC2 documentación de Amazon. Utilice el mismo nombre de host que utilizó para la licencia de producto de LRS.La instancia debe cumplir los siguientes requisitos de hardware y software para LRS VPSX/MFI:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Los requisitos de hardware y software anteriores están pensados para una flota de impresoras pequeña (entre 500 y 1000). Para conocer todos los requisitos, consulte a sus personas de contacto en LRS y AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Instale LRS VPSX/MFI en la EC2 instancia. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Instale LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Instale LRS/DIS. | El LRS/DIS producto suele estar incluido en la instalación del LRS VPSX. Sin embargo, si LRS/DIS no se instaló junto con el LRS VPSX, siga los siguientes pasos para instalarlo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Crear un grupo de destino. | Cree un grupo de destino siguiendo las instrucciones de [Create a target group for your Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) (Crear un grupo de destino para el equilibrador de carga de red). Al crear el grupo de destino, registre la VPSX/MFI EC2 instancia de LRS como destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Crear un equilibrador de carga de red. | Para crear el equilibrador de carga de red, siga las instrucciones de la [documentación de Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) (Equilibrio de carga elástico). Su Network Load Balancer dirige el tráfico de Rocket Enterprise Server a la instancia de VPSX/MFI EC2 LRS.Al crear el equilibrador de carga de red, elija los valores siguientes en la página **Listeners and Routing** (Oyentes y enrutamiento):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 

### Integre Rocket Enterprise Server con un VPSX/MFI de LRS/Queue LRS
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Rocket Enterprise Server para la integración. LRS/Queue  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Configura Rocket Enterprise Server para la VPSX/MFI integración con LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 

### Configurar la cola de impresión y los usuarios de impresión
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Asocie el módulo OpenText Micro Focus Print Exit al proceso de ejecución del servidor de la impresora por lotes de Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Cree una cola de salida de impresión en LRS VPSX/MFI e intégrela con LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Cree un usuario de impresión en LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 

### Configurar un servidor LRS PageCenter X en Amazon EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crea una instancia de Amazon EC2 Windows. | Para lanzar una instancia de Amazon EC2 Windows, sigue las instrucciones del [paso 1: lanzar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) de la EC2 documentación de Amazon. Utilice el mismo nombre de host que utilizó para la licencia de producto de LRS.La instancia debe cumplir los siguientes requisitos de hardware y software para LRS PageCenter X:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Los requisitos de hardware y software anteriores están pensados para una flota de impresoras pequeña (entre 500 y 1000). Para conocer todos los requisitos, consulte a sus personas de contacto en LRS y AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Instale PageCenter LRS X en la instancia. EC2  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Instale LRS/DIS. | El LRS/DIS producto suele incluirse en la instalación del LRS VPSX. Sin embargo, si LRS/DIS no se instaló junto con el LRS VPSX, siga los siguientes pasos para instalarlo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Crear un grupo de destino. | Cree un grupo de destino siguiendo las instrucciones de [Create a target group for your Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) (Crear un grupo de destino para el equilibrador de carga de red). Al crear el grupo objetivo, registre la EC2 instancia LRS PageCenter X como destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Crear un equilibrador de carga de red. | Para crear el equilibrador de carga de red, siga las instrucciones de la [documentación de Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) (Equilibrio de carga elástico). Su Network Load Balancer enruta el tráfico de LRS VPSX/MFI a la instancia de PageCenter LRS X. EC2 Al crear el equilibrador de carga de red, elija los valores siguientes en la página **Listeners and Routing** (Oyentes y enrutamiento):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 

### Configure las funciones de administración de salida en LRS X PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Habilite la función de importación en LRS X. PageCenter | Puede utilizar la función de importación de LRS PageCenter X para reconocer las salidas que llegan al LRS PageCenter X mediante criterios como el nombre del trabajo o el ID del formulario. A continuación, puede enrutar los resultados a carpetas específicas del LRS X. PageCenterPara habilitar la importación, siga estos pasos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Configure la política de conservación de documentos. | LRS PageCenter X utiliza una política de retención de documentos para decidir durante cuánto tiempo se debe conservar un documento en LRS X. PageCenterPara configurar la política de conservación de documentos, siga los pasos siguientes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Cree una regla para enrutar el documento de salida a una carpeta específica de LRS X. PageCenter | En LRS PageCenter X, **Destination** determina la ruta de la carpeta a la que se enviará la salida cuando **Report** Definition invoque este destino. Para este ejemplo, cree una carpeta basada en la carpeta de **Form ID** en la definición del informe y guarde el resultado en esa carpeta.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Cree una definición de informe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 

### Configurar la autenticación y autorización para administración de la producción
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un dominio de AWS Managed Microsoft AD con usuarios y grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Une las EC2 instancias a un dominio de Microsoft AD administrado por AWS. | Une las EC2 instancias LRS VPSX/MFI y LRS PageCenter X a tu dominio de AWS Managed Microsoft AD de [forma automática](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentación del AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentación de AWS Directory Service). | Arquitecto de la nube | 
| Configure e integre LRS/DIS con AWS Managed Microsoft AD para la EC2 instancia LRS PageCenter X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Configure un grupo de importación para importar la salida de LRS VPSX a LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Agregue una regla de seguridad a Import group (Grupo de importación). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Cree un usuario en LRS PageCenter X para importar la salida desde LRS VPSX/MFI.  | Al crear un usuario en LRS PageCenter X para importar la salida, el nombre de usuario debe ser el mismo que el **ID de VPSX de la cola de salida de impresión en LRS VPSX/MFI**. En este ejemplo, el ID de VPSX es. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Agregue el usuario de importación de LRS PageCenter X al grupo de importación exclusiva. | Para conceder los permisos necesarios para la importación de documentos de LRS VPSX a LRS PageCenter X, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 
| Configure LRS/DIS con AWS Managed Microsoft AD para la VPSX/MFI EC2 instancia de LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 

### Configure Amazon FSx for Windows File Server como almacén de datos operativos para LRS X PageCenter
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un sistema de archivos para LRS X. PageCenter | Para utilizar Amazon FSx for Windows File Server como almacén de datos operativo para LRS PageCenter X en un entorno Multi-AZ, siga las instrucciones del [paso 1: Cree su sistema de archivos](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Arquitecto de la nube | 
| Asigne el archivo compartido a la instancia de LRS X. PageCenter EC2  | Para asignar el recurso compartido de archivos creado en el paso anterior a la EC2 instancia LRS PageCenter X, siga las instrucciones del [paso 2: Asigne el recurso compartido de archivos a una EC2 instancia que ejecute Windows Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Arquitecto de la nube | 
| Asigne el directorio de control y el directorio de carpetas maestras de LRS PageCenter X a la unidad compartida FSx de red Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquitecto de la nube | 

### Pruebe un flujo de trabajo de administración de la producción
<a name="test-an-output-management-workflow"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie una solicitud de impresión por lotes desde la BankDemo aplicación Rocket Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Ingeniero de pruebas | 
| Compruebe el resultado de impresión en el LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Ingeniero de pruebas | 

## Recursos relacionados
<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)
+ [Advanced Function Presentation data stream](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (Flujo de datos de presentación de funciones avanzadas) (Documentación de IBM)
+ [Flujo de datos condicionado por línea (LCDS)](https://www.compart.com/en/lcds) (documentación de Compart)
+ [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/) (Capacitación de cargas de trabajo de mainframe empresarial en AWS) (publicación de blog)
+ [Modernize your mainframe online printing workloads on AWS](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) (Modernice las cargas de trabajo de impresión online de mainframe en AWS) (Recomendaciones de AWS)
+ [Modernize your mainframe batch printing workloads on AWS](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) (Modernice las cargas de trabajo de impresión por lotes de mainframe en AWS) (Recomendaciones de AWS)

## Información adicional
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Consideraciones**

Durante su proceso de modernización, podría considerar la posibilidad de utilizar una amplia variedad de configuraciones para los procesos en línea y por lotes de mainframe, así como para la producción que generan. Todos los clientes y proveedores que utilizan la plataforma de mainframe la han personalizado con requisitos particulares que afectan directamente a la impresión. Así, por ejemplo, su plataforma actual podría incorporar el flujo de datos AFP de IBM o las pantallas LCD de Xerox en el flujo de trabajo actual. Además, los [caracteres de control de carro de mainframe](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) y [las palabras del comando de canal](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) pueden afectar al aspecto de la página impresa y requerir un manejo especial. Como parte del proceso de planificación de la modernización, le recomendamos evaluar y comprender las configuraciones de su entorno de impresión específico.  

**Captura de datos de impresión**

Rocket Software Print Exit pasa la información necesaria para que LRS VPSX/MFI procese eficazmente el archivo de bobina. La información consta de campos incluidos en los bloques de control correspondientes, como los siguientes:
+ JOBNAME
+ OWNER (USERID)
+ DESTINATION
+ FORM
+ FILENAME
+ WRITER

El LRS VPSX/MFI admite los siguientes mecanismos de procesamiento por lotes de ordenadores centrales para capturar datos de Rocket Enterprise Server:
+  print/spool Procesamiento COBOL POR LOTES mediante sentencias z/OS JCL SYSOUT estándar. DD/OUTPUT 
+  print/spool Procesamiento por lotes de COBOL mediante sentencias z/OS JCL CA-SPOOL SUBSYS DD estándar.
+ IMS/COBOL print/spoolprocesamiento mediante la interfaz CBLTDLI. Para obtener una lista completa de los métodos y ejemplos de programación compatibles, consulte la documentación de LRS que se incluye con la licencia del producto.

**Comprobaciones de estado de la flota de impresoras**

El LRS VPSX/MFI (LRS LoadX) puede realizar controles de estado exhaustivos, incluida la gestión de los dispositivos y la optimización operativa. La administración de dispositivos puede detectar un error en un dispositivo de impresión y dirigir la solicitud de impresión a una impresora en buen estado. Para obtener más información sobre las comprobaciones de estado exhaustivas de las flotas de impresoras, consulte la documentación de LRS que se incluye con la licencia del producto.

**Autenticación y autorización de impresoras**

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/DIStambién puede aplicar controles de seguridad de impresión de nivel granular en los siguientes casos de uso:
+ Gestione quién puede examinar el trabajo de impresión.
+ Gestione el nivel de navegación de los trabajos de otros usuarios.
+ Gestione las tareas operativas, por ejemplo, la seguridad en el nivel de comandos, como retener o liberar, purgar, modificar, copiar y redirigir. La seguridad se puede configurar mediante el ID de usuario o el grupo, de forma similar a un grupo de seguridad de Active Directory o a un grupo LDAP.

## Conexiones
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernice las cargas de trabajo de impresión por lotes de mainframe AWS mediante Rocket Enterprise Server y LRS VPSX/MFI
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy y Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray and Shoup Inc*

## Resumen
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Este patrón le muestra cómo modernizar las cargas de trabajo de impresión por lotes de mainframe críticas para la empresa en la nube de Amazon Web Services (AWS) mediante Rocket Enterprise Server como entorno de ejecución para una aplicación de mainframe modernizada y LRS VPSX/MFI (Micro Focus Interface) como servidor de impresión. El patrón se basa en el enfoque de modernización del mainframe a través de [redefinir la plataforma.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Con este enfoque, migra los trabajos por lotes de su mainframe a Amazon Elastic Compute Cloud (Amazon EC2) y migra su base de datos de mainframe, como IBM ( DB2 forz/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), integrada con AWS Managed Microsoft AD. Al modernizar sus cargas de trabajo de impresión por lotes, puede reducir los costos de infraestructura de TI, mitigar la carga técnica que supone el mantenimiento de los sistemas heredados, eliminar los silos de datos, aumentar la agilidad y la eficiencia con un DevOps modelo y aprovechar los recursos bajo demanda y la automatización en la nube de AWS.

## Requisitos previos y limitaciones
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Una carga de trabajo de gestión de producción o impresión de mainframe
+ Conocimientos básicos sobre cómo recompilar y entregar una aplicación de mainframe ejecutada en Rocket Enterprise Server (para obtener más información, consulte la hoja de datos de [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) en la documentación de Rocket).
+ Conocimientos básicos de las soluciones y los conceptos de [impresión en la nube de LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/)
+ Software y licencia de Rocket Enterprise Server (para obtener más información, póngase en contacto con el [departamento de ventas de Rocket](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact)).
+ VPSX/MFI, LRS/Queue, and LRS/DIS[Software y licencias de LRS (para obtener más información, póngase en contacto con el departamento de ventas de LRS).](https://www.lrsoutputmanagement.com/about-us/contact-us/)

**nota**  
Para obtener más información sobre las consideraciones de configuración de las cargas de trabajo de administración de la producción de mainframe, consulte *Consideraciones* en la sección [Información adicional](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de este patrón.

**Versiones de producto**
+ [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 (actualización de producto 7)
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) V1R3 o superior

## Arquitectura
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pila de tecnología de origen**
+ Sistema operativo: IBM z/OS
+ Lenguaje de programación: Common Business-Oriented Language (COBOL), Job Control Language (JCL) y Customer Information Control System (CICS)
+ Base de datos: IBM DB2 for z/OS y Virtual Storage Access Method (VSAM)
+ Seguridad: Resource Access Control Facility (RACF), CA Top Secret for z/OS y Access Control Facility 2 () ACF2
+ Gestión de impresión y salida: productos de z/OS impresión para mainframes de IBM (IBM Tivoli Output Manager for z/OS, LRS y CA View)

**Pila de tecnología de destino**
+ Sistema operativo: Microsoft Windows Server que se ejecuta en Amazon EC2
+ Informática — Amazon EC2
+ Lenguaje de programación: COBOL, JCL y CICS
+ Bases de datos: Amazon RDS
+ Seguridad: AWS Managed Microsoft AD
+ Administración de impresión y producción: solución de impresión LRS en AWS
+ Entorno de tiempo de ejecución de mainframe: Rocket Enterprise Server

**Arquitectura de origen**

El diagrama siguiente muestra una arquitectura de estado actual tipo para una carga de trabajo de administración de la producción de mainframe:

![\[De usuario a servicio de mainframe: Db2 para z/OS, programador de tareas, trabajo por lotes y salida en seis pasos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


El diagrama muestra el siguiente flujo de trabajo:

1. Los usuarios llevan a cabo transacciones comerciales en un sistema de participación (SoE) que se basa en una aplicación CICS de IBM escrita en COBOL.

1. El SoE invoca el servicio de mainframe, que registra los datos de las transacciones comerciales en una base de datos system-of-records (SoR), como IBM DB2 for z/OS.

1. El SoR conserva los datos comerciales del SoE.

1. El programador de trabajos por lotes inicia un trabajo por lotes para generar resultados de impresión.

1. El trabajo por lotes extrae datos de la base de datos, formatea los datos de acuerdo con los requisitos comerciales y, a continuación, genera producción empresarial, como extractos de facturación, tarjetas de identificación o extractos de préstamos. Por último, el trabajo por lotes dirige la producción a la administración de la impresión para procesar y enviar los resultados en función de los requisitos empresariales. 

1. La gestión de los resultados de producción recibe la producción de impresión del trabajo por lotes y, a continuación, la envía a un destino específico, como el correo electrónico, un archivo compartido que emplee un FTP seguro, una impresora física que use soluciones de impresión LRS (como se demuestra en este patrón) o IBM Tivoli.

**Arquitectura de destino**

El diagrama siguiente muestra una arquitectura para una carga de trabajo de administración de la producción de mainframe que se implementa en la nube de AWS:

![\[Aplicación por lotes en AWS con programador, Rocket Enterprise Server y base de datos en cuatro pasos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El programador de trabajos por lotes inicia un trabajo por lotes para generar la producción, como extractos de facturación, tarjetas de identificación o extractos de préstamos.

1. El trabajo por lotes del mainframe ([rediseñado a Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utiliza el tiempo de ejecución de Rocket Enterprise Server para extraer datos de la base de datos de la aplicación, aplicar lógica empresarial a los datos, formatear los datos y, a continuación, enviarlos a un destino de impresión mediante [Rocket Software Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (documentación de Micro Focus).

1. La base de datos de la aplicación (un SoR que se ejecuta en Amazon RDS) conserva los datos para su impresión.

1. La solución de VPSX/MFI impresión LRS se implementa en Amazon EC2 y sus datos operativos se almacenan en Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI utiliza el agente TCP/IP-based LRS/Queue de transmisión para recopilar datos de impresión a través de la API JES Print Exit de Rocket Software y entregar los datos a un destino de impresión específico.

**nota**  
La solución de destino no suele requerir cambios en la aplicación para adaptarla a los lenguajes de formato de mainframe, como IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS). Para obtener más información sobre el uso de Rocket Software para la migración y modernización de aplicaciones de mainframe en AWS, consulte la entrada en el 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/).

**Arquitectura de infraestructura de AWS**

El diagrama siguiente muestra una arquitectura de infraestructura de AWS segura y de alta disponibilidad para una carga de trabajo de administración de la producción de mainframe:

![\[Implementación multi-AZ en AWS con Rocket Software y componentes de LRS en siete pasos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El programador de lotes inicia el proceso por lotes y se implementa EC2 en Amazon en varias [zonas de disponibilidad](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para una alta disponibilidad (HA). 
**nota**  
Este patrón no incluye la implementación del programador de lotes. Para obtener más información acerca de la implementación, consulte la documentación del proveedor de software del programador.

1. El trabajo por lotes de la computadora central (escrito en un lenguajes de programación como JCL o COBOL) utiliza la lógica empresarial básica para procesar y generar la producción de impresión, como extractos de facturación, tarjetas de identificación y extractos de préstamos. El trabajo se implementa en Amazon en dos zonas de EC2 disponibilidad para alta disponibilidad y utiliza Rocket Software Print Exit para enrutar los resultados de impresión a LRS VPSX/MFI para que los impriman los usuarios finales.

1. LRS VPSX/MFI usa un comando. 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 A continuación, los comandos se ejecutan mediante una función estándar integrada de Rocket Software. 
**nota**  
Para obtener más información sobre los datos de impresión que se transmiten desde Rocket Software Print Exit a LRS/Queue los mecanismos de procesamiento por lotes de ordenadores centrales VPSX/MFI compatibles con el LRS, consulte *Captura de datos de impresión* en la sección de [información adicional](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de este patrón.

1. 
**nota**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) proporciona un nombre DNS para integrar Rocket Enterprise Server con el 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 y enruta el tráfico a los destinos registrados que están en buen estado.

1. 
**nota**  
El servidor de VPSX/MFI impresión LRS se implementa en Amazon en EC2 dos zonas de disponibilidad para alta disponibilidad y utiliza [Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) como almacén de datos operativos. El LRS VPSX/MFI admite los modos de servicio activo-activo y activo-pasivo. Esta arquitectura utiliza varios AZs en un par activo-pasivo como modo de espera activo y activo. El Network Load Balancer realiza una comprobación del estado de las VPSX/MFI EC2 instancias LRS y enruta el tráfico a las instancias en espera activas de la otra zona de disponibilidad si una instancia activa se encuentra en mal estado. Las solicitudes de impresión se conservan en la cola de trabajos del LRS de forma local en cada una de las instancias. EC2 En caso de recuperación, se debe reiniciar una instancia fallida para que los servicios de LRS reanuden el procesamiento de la solicitud de impresión. : LRS también VPSX/MFI puede realizar comprobaciones de estado a nivel de flota de impresoras. Para obtener más información, consulte *Comprobaciones de estado de la flota de impresoras* en la sección de [Información adicional](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de este patrón.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) se integra LRS/DIS para realizar la autenticación y autorización del flujo de trabajo de impresión. Para obtener más información, consulte *Autenticación y autorización de impresión* en la sección de [Información adicional](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) de este patrón.

1. LRS VPSX/MFI utiliza Amazon EBS para el almacenamiento en bloque. Puede hacer copias de seguridad de los datos de Amazon EBS de EC2 las instancias activas en Amazon S3 como point-in-time instantáneas y restaurarlos en volúmenes de EBS activos en espera. Para automatizar la creación, retención y eliminación de instantáneas de volúmenes de Amazon EBS, puede usar [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) para establecer la frecuencia de las instantáneas automatizadas y restaurarlas en función de sus [necesidades de RTO/RPO](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).

## Tools (Herramientas)
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Servicios de AWS**
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html)) proporciona volúmenes de almacenamiento a nivel de bloque para usarlos con instancias. EC2 Los volúmenes de EBS se comportan como dispositivos de bloques sin formatear. Puede montar estos volúmenes como dispositivos en sus instancias.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) proporciona capacidad informática escalable en la nube de AWS. Puede usar Amazon EC2 para lanzar tantos o tan pocos servidores virtuales como necesite, y puede ampliarlos de manera horizontal o horizontal.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) es un servicio web que facilita la configuración, el funcionamiento y la escala de una base de datos relacional en la nube de AWS. Proporciona una capacidad rentable y de tamaño ajustable para una base de datos relacional y se ocupa de las tareas comunes de administración de bases de datos.
+ [AWS Directory Service para Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), también conocido como AWS Managed Microsoft AD, permite que las cargas de trabajo compatibles con un directorio y los recursos de AWS utilicen Microsoft Active Directory en la nube de AWS.

**Otras herramientas**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), una interfaz desarrollada conjuntamente por LRS y Rocket Software, captura la producción de una bobina de Rocket Enterprise Server JES y la entrega de forma fiable a un destino de impresión específico.
+ El servidor de información de directorio LRS (LRS/DIS) se utiliza para la autenticación y la autorización durante el flujo de trabajo de impresión.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIpara recopilar o capturar datos de impresión a través de la interfaz de programación 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) es un entorno de implementación de aplicaciones para aplicaciones de mainframe. Proporciona el entorno de ejecución para las aplicaciones de mainframe que se migran o crean con cualquier versión de Rocket Software Enterprise Developer.

## Epics
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configura Rocket Enterprise Server en Amazon EC2 e implementa una aplicación por lotes para mainframe
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Rocket Enterprise Server e implemente una aplicación de demostración. | Configure Rocket Enterprise Server en Amazon y EC2, a continuación, despliegue la aplicación de BankDemo demostración de Rocket Software en Amazon EC2.La BankDemo aplicación es una aplicación por lotes para ordenadores centrales que crea y, a continuación, inicia la impresión. | Arquitecto de la nube | 

### Configurar un servidor de impresión LRS en Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Obtenga una licencia de producto LRS para imprimir. | Para obtener una licencia de producto LRS para LRSVPSX/MFI, LRS/Queue, and LRS/DIS, póngase en contacto con el equipo de gestión de producción de [LRS.](https://www.lrsoutputmanagement.com/about-us/contact-us/) Debe proporcionar los nombres de host de las EC2 instancias en las que se instalarán los productos de LRS. | Responsable de compilación | 
| Cree una instancia de Amazon EC2 Windows para instalar LRS VPSX/MFI. | Para lanzar una instancia de Amazon EC2 Windows, sigue las instrucciones de [Lanzar una EC2 instancia de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) en la EC2 documentación de Amazon. La instancia debe cumplir los siguientes requisitos de hardware y software para LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Los requisitos de hardware y software anteriores están pensados para una flota de impresoras pequeña (entre 500 y 1000). Para conocer todos los requisitos, consulte a sus personas de contacto en LRS y AWS.Cuando cree la instancia de Windows, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Instala LRS VPSX/MFI en la EC2 instancia. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Instale LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Instale LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Cree un grupo objetivo y registre LRS VPSX/MFI EC2 como objetivo. | Cree un grupo de destino siguiendo las instrucciones de [Crear un grupo de destino para el equilibrador de carga de red](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) en la documentación en el equilibrador de carga de red elástico.Al crear el grupo de destino, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Crear un equilibrador de carga de red. | Siga las instrucciones de [Crear un equilibrador de carga de red](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) en la documentación de Elastic Load Balancing. Su Network Load Balancer dirige el tráfico de Rocket Enterprise Server a LRS. VPSX/MFI EC2Al crear el equilibrador de carga de red, siga los pasos siguientes en la página **Listeners and Routing** (Oyentes y enrutamiento):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Integre Rocket Enterprise Server con LRS y LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Rocket Enterprise Server para la integración. LRS/Queue  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Actualmente, LRS admite un límite máximo de 50 caracteres para los nombres de DNS, pero este aspecto cambiará en el futuro. Si el nombre DNS tiene más de 50 caracteres, puede utilizar la dirección IP del equilibrador de carga de red como alternativa. | Arquitecto de la nube | 
| Configura Rocket Enterprise Server para la VPSX/MFI integración con LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Configuración de impresoras y usuarios de impresión en Rocket Enterprise Server y LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Asocie el módulo de Rocket Software Print Exit al proceso de ejecución del servidor de la impresora por lotes de Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Para obtener más información sobre la configuración, consulte [Using the Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) (Uso de la salida) en la documentación de Micro Focus. | Arquitecto de la nube | 
| Añada una impresora en LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Cree un usuario de impresión en LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Configure imprimir autenticación y autorización
<a name="set-up-print-authentication-and-authorization"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un dominio de AWS Managed Microsoft AD con usuarios y grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Une LRS VPSX/MFI EC2 a un dominio de Microsoft AD gestionado por AWS. | Une LRS VPSX/MFI EC2 a tu dominio de Microsoft AD gestionado por AWS de [forma automática](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (documentación del AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (documentación de AWS Directory Service). | Arquitecto de la nube | 
| Configure e integre LRS/DIS con AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Pruebe un flujo de trabajo de impresión
<a name="test-a-print-workflow"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie una solicitud de impresión por lotes desde la BankDemo aplicación Rocket Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Ingeniero de pruebas | 
| Compruebe la producción de impresión en LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Ya puede ver el resultado impreso de un extracto de cuenta con columnas para **Account No.** (Número de cuenta), **Description**, **Date**, **Amount** (Importe) y **Balance** (Saldo). Para ver un ejemplo, consulte el archivo adjunto **batch\$1print\$1output ** para este patrón. | Ingeniero de pruebas | 

## Recursos relacionados
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernización de la producción de LRS](https://www.lrsoutputmanagement.com/) (documentación de LRS)
+ [Controles ANSI y de carro de máquinas](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentación de IBM)
+ [Palabras de comando de canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) (documentación de IBM)
+ [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/) (Capacitación de cargas de trabajo de mainframe empresarial en AWS) (publicación de blog de socio de AWS)
+ [Cree un PAC para servidores empresariales de Micro Focus con Amazon EC2 Auto Scaling y Systems Manager (documentación](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) de AWS Prescriptive Guidance)
+ Flujo de datos de [Presentación de funciones avanzadas (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentación de IBM)
+ [Flujo de datos condicionado por línea (LCDS)](https://www.compart.com/en/lcds) (documentación de Compart)

## Información adicional
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Consideraciones**

Durante su proceso de modernización, podría considerar la posibilidad de utilizar una amplia variedad de configuraciones para los procesos en línea y por lotes de mainframe, así como para la producción que generan. Todos los clientes y proveedores que utilizan la plataforma de mainframe la han personalizado con requisitos particulares que afectan directamente a la impresión. Por ejemplo, su plataforma actual puede incorporar Advanced Function Presentation (AFP) de IBM o Line Condition Data Stream (LCDS) de Xerox en el flujo de trabajo actual. Además, los [caracteres de control de carro de mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) y las [palabras de comando de canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) pueden afectar al aspecto de la página impresa y pueden requerir un tratamiento especial. Como parte del proceso de planificación de la modernización, le recomendamos evaluar y comprender las configuraciones de su entorno de impresión específico.

**Captura de datos de impresión**

Rocket Software Print Exit transmite la información necesaria para que LRS VPSX/MFI pueda procesar de forma eficaz el archivo de impresión. La información consta de campos incluidos en los bloques de control correspondientes, como los siguientes:
+ JOBNAME
+ OWNER (USERID)
+ DESTINATION
+ FORM
+ FILENAME
+ WRITER

El LRS VPSX/MFI admite los siguientes mecanismos de procesamiento por lotes de mainframe para capturar datos de Rocket Enterprise Server.
+  print/spool Procesamiento COBOL POR LOTES mediante sentencias JCL SYSOUT estándar z/OS DD/OUTPUT 
+  print/spool Procesamiento de COBOL POR LOTES utilizando sentencias JCL CA-SPOOL SUBSYS DD estándar z/OS 
+ IMS/COBOL print/spoolprocesamiento mediante la interfaz CBLTDLI (para obtener una lista completa de los métodos y ejemplos de programación compatibles, consulte la documentación del LRS que se incluye con la licencia del producto).

**Comprobación de estado de la flota de impresoras**

El LRS VPSX/MFI (LRS LoadX) puede realizar controles de estado exhaustivos, como la gestión de los dispositivos y la optimización operativa. La administración de dispositivos puede detectar un error en un dispositivo de impresión y dirigir la solicitud de impresión a una impresora en buen estado. Para obtener más información sobre las comprobaciones de estado exhaustivas de las flotas de impresoras, consulte la documentación de LRS que se incluye con la licencia del producto.

**Imprimir autenticación y autorización**

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/DIStambién puede aplicar controles de seguridad de impresión de nivel granular en los siguientes casos de uso:
+ Gestione quién puede examinar el trabajo de impresión.
+ Gestione el nivel de navegación de los trabajos de otros usuarios.
+ Gestione las tareas operativas. Por ejemplo, la seguridad en el nivel de comandos, como retener o liberar, purgar, modificar, copiar y redirigir. La seguridad se puede configurar mediante el ID de usuario o el grupo, (similar a un grupo AD o a un grupo LDAP).** **

## Conexiones
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Modernización del mainframe: DevOps adelante AWS con Rocket Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Resumen
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Desafíos de los clientes**

Las organizaciones que ejecutan aplicaciones principales en hardware de mainframe suelen enfrentarse a algunos desafíos cuando el hardware necesita escalar verticalmente para satisfacer las demandas de las innovaciones digitales. Estos desafíos incluyen las siguientes limitaciones. 
+ Los entornos de desarrollo y prueba de los mainframe no se pueden escalar debido a la inflexibilidad de los componentes de hardware de los mainframes y al elevado costo que supone cambiarlos.
+ El desarrollo de mainframes se enfrenta a una escasez de personal cualificado, ya que los nuevos desarrolladores no están familiarizados con las herramientas tradicionales de desarrollo de mainframes ni están interesados en ellas. La tecnología moderna, como los contenedores, los canales de integration/continuous entrega continua (CI/CD) y los marcos de prueba modernos, no están disponibles para el desarrollo de mainframes.

**Resultados del patrón**

Para abordar estos desafíos, Amazon Web Services (AWS) y Rocket Software Micro Focus, un socio de AWS Partner Network (APN), han colaborado para crear este patrón. La solución está diseñada para ayudarle a lograr los siguientes resultados.
+ Mejora de la productividad de los desarrolladores. Los desarrolladores pueden disponer de nuevas instancias de desarrollo de mainframe en cuestión de minutos.
+ Uso del Nube de AWS para crear nuevos entornos de prueba de mainframe con una capacidad prácticamente ilimitada.
+ Aprovisionamiento rápido de una nueva infraestructura de mainframe CI/CD . El aprovisionamiento se AWS puede completar en una hora utilizando y. AWS CloudFormation AWS Systems Manager
+ Uso nativo de AWS DevOps herramientas para el desarrollo de mainframes, incluidas AWS CodeBuild, AWS CodeCommit AWS CodePipeline AWS CodeDeploy, y Amazon Elastic Container Registry (Amazon ECR).
+ Transforme el desarrollo tradicional en cascada en un desarrollo ágil en proyectos de mainframe.

**Resumen de tecnologías**

En este patrón, la pila de destino contiene los siguientes componentes.


| 
| 
| Componentes lógicos | Soluciones de implementación | Description (Descripción) | 
| --- |--- |--- |
| Repositorios de código fuente |  AccuRev Servidor de software Rocket CodeCommit, Amazon ECR  | Administración del código fuente: la solución utiliza dos tipos de código fuente: Código fuente de mainframe, por ejemplo, COBOL y JCL. AWS plantillas de infraestructura y scripts de automatización Ambos tipos de código fuente necesitan control de versiones, pero se administran de forma diferente SCMs. El código fuente desplegado en el mainframe o en los servidores empresariales de Rocket Software se administra en Rocket Software Micro Focus AccuRev Server. AWS las plantillas y los scripts de automatización se gestionan en CodeCommit. Amazon ECR se utiliza para los repositorios de imágenes de Docker.  | 
| Instancias de desarrolladores empresariales | Amazon Elastic Compute Cloud (Amazon EC2), desarrollador empresarial de Rocket Software para Eclipse | Los desarrolladores de mainframe pueden desarrollar código en Amazon EC2 mediante Rocket Software Enterprise Developer for Eclipse. Esto elimina la necesidad de depender del hardware del mainframe para escribir y probar el código.  | 
| Administración de licencias de Rocket Software Enterprise Suite | Rocket Software Enterprise Suite License Manager | Para la administración y la gobernanza centralizadas de las licencias de Rocket Software Enterprise Suite, la solución utiliza Rocket Software Enterprise Suite License Manager para alojar la licencia requerida. | 
| Canalización de CI/CD | CodePipeline, CodeBuild CodeDeploy, Rocket Software Enterprise Developer en un contenedor, Rocket Software Enterprise Test Server en un contenedor, Rocket Software Micro Focus Enterprise Server | Los equipos de desarrollo de mainframes necesitan CI/CD canalizaciones para realizar la compilación de código, las pruebas de integración y las pruebas de regresión. En un contenedor de CodePipeline forma nativa AWS, CodeBuild pueden trabajar con Rocket Software Enterprise Developer y Enterprise Test Server en un contenedor. | 

## Requisitos previos y limitaciones
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Requisitos previos **


| 
| 
| Name | Description (Descripción) | 
| --- |--- |
| py3270 | py3270 es una interfaz de Python para x3270, un emulador de terminal IBM 3270. Proporciona una API para un subproceso x3270 o s3270. | 
| x3270 | x3270 es un emulador de terminal IBM 3270 para el sistema X Window y Windows.  El desarrollador lo puede utilizar para realizar pruebas unitarias a nivel local. | 
| Robot-Framework-Mainframe-3270-Library | Mainframe3270 es una biblioteca para Robot Framework basada en el proyecto py3270. | 
| Rocket Software Verastream | Rocket Software Verastream es una plataforma de integración que permite probar los activos del mainframe del mismo modo que se prueban las aplicaciones móviles, las aplicaciones web y los servicios web SOA. | 
| Instalador y licencia de Rocket Software Unified Functional Testing (UFT) | Rocket Software Unified Functional Testing es un software que automatiza las pruebas funcionales y de regresión para aplicaciones y entornos de software. | 
| Instalador y licencia de Rocket Software Enterprise Server | Enterprise Server proporciona el tiempo de ejecución para las aplicaciones de mainframe. | 
| Instalador y licencia de Rocket Software Enterprise Test Server | Rocket Software Enterprise Test Server es un entorno de prueba de aplicaciones de mainframe de IBM. | 
|  AccuRev Instalador y licencia de Rocket Software para servidores, e AccuRev instalador y licencia de Rocket Software Micro Focus para sistemas operativos Windows y Linux  | AccuRev proporciona administración de código fuente (SCM). El AccuRev sistema está diseñado para que lo utilice un equipo de personas que están desarrollando un conjunto de archivos. | 
| Instalador, revisión y licencia de Rocket Software Enterprise Developer for Eclipse | Enterprise Developer proporciona a los desarrolladores de mainframe una plataforma para desarrollar y mantener las principales aplicaciones de mainframe en línea y por lotes. | 

**Limitaciones**
+ No se admite la creación de una imagen de Docker de Windows en CodeBuild. Este [problema notificado necesita el](https://github.com/docker-library/docker/issues/49) apoyo de los equipos de Windows Kernel/HCS y Docker. La solución alternativa consiste en crear un manual de procedimientos de imágenes de Docker mediante Systems Manager. Este patrón utiliza la solución alternativa para compilar imágenes de contenedor de Rocket Software Enterpise Developer for Eclipse y Rocket Software Micro Focus Enterprise Test Server. 
+ Windows aún no admite la conectividad de nube privada virtual (VPC) desde CodeBuild , por lo que el patrón no utiliza Rocket Software License Manager para administrar las licencias en los contenedores OpenText Rocket Software Enterprise Developer y Rocket Software Enterprise Test Server.

**Versiones de producto**
+ La versión 5.5 o posterior de Rocket Software Enterprise Developer
+ La versión 5.5 o posterior de Rocket Software Enterprise Test Server
+ La versión 5.5 o posterior de Rocket Software Enterprise Server
+ Rocket Software AccuRev 7.x o posterior
+ Imagen base de Docker de Windows para Rocket Software Enterprise Developer y Enterprise Test Server: **microsoft/dotnet-framework-4.7.2-runtime**
+ **Imagen base de Linux Docker para el AccuRev cliente: amazonlinux:2**

## Arquitectura
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Entorno de mainframe**

En el desarrollo de mainframe convencional, los desarrolladores necesitan usar hardware de mainframe para desarrollar y probar programas. Se enfrentan a limitaciones de capacidad, por ejemplo, la restricción de millones de instrucciones por segundo (MIPS) para el dev/test entorno, y deben confiar en las herramientas disponibles en los ordenadores centrales.

En muchas organizaciones, el desarrollo de mainframes sigue la metodología de desarrollo en cascada, y los equipos utilizan ciclos largos para publicar los cambios. Estos ciclos de lanzamiento suelen ser más largos que los del desarrollo de productos digitales.   

El siguiente diagrama muestra varios proyectos de mainframe que comparten el hardware de mainframe para su desarrollo. En el caso del hardware de mainframe, resulta caro escalar horizontalmente un entorno de desarrollo y pruebas para más proyectos.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*Arquitectura de AWS*****

Este patrón extiende el desarrollo de mainframe a la Nube de AWS. En primer lugar, utiliza AccuRev SCM para alojar el código fuente del mainframe. AWS Luego, permite que Enterprise Developer y Enterprise Test Server estén disponibles para compilar y probar el código del mainframe en AWS. 

En las siguientes secciones se describen los tres componentes principales del patrón.

**1. SCM**

En AWS, el patrón se utiliza AccuRev para crear un conjunto de espacios de trabajo SCM y un control de versiones para el código fuente del mainframe. Su arquitectura basada en flujos permite el desarrollo de mainframes paralelos para varios equipos. Para combinar un cambio, AccuRev utiliza el concepto de promoción. Para añadir ese cambio a otros espacios de trabajo, AccuRev utiliza el concepto de actualización.

A nivel de proyecto, cada equipo puede crear una o más secuencias para realizar un seguimiento de los cambios AccuRev a nivel de proyecto. Se denominan flujos de proyectos. Estos flujos del proyecto se heredan del mismo flujo principal. El flujo principal se usa para combinar los cambios de los diferentes flujos del proyecto.

Cada flujo de proyectos puede promover el código y se ha configurado un activador de promoción posterior para iniciar el proceso de AWS CI/CD. AccuRev La versión correcta para el cambio de flujo de un proyecto se puede convertir en su flujo principal para realizar más pruebas de regresión.  

Por lo general, el flujo principal se denomina flujo de integración del sistema. Cuando hay un ascenso de un flujo de proyectos a un flujo de integración de sistemas, una activación posterior a la promoción inicia otro CI/CD proceso para ejecutar pruebas de regresión.

Además del código de mainframe, este patrón incluye AWS CloudFormation plantillas, documentos de automatización de Systems Manager y scripts. Siguiendo las infrastructure-as-code mejores prácticas, se controlan las versiones en ellas. CodeCommit 

Si necesita volver a sincronizar el código del mainframe con un entorno de mainframe para su despliegue, Rocket Software proporciona la solución Enterprise Sync, que sincroniza el código del SCM con el AccuRev SCM del mainframe.

**2. Entornos de desarrollo y pruebas**

En una organización grande, escalar más de cien o incluso más de mil desarrolladores de mainframe es todo un desafío. Para abordar esta restricción, el patrón utiliza instancias de Amazon EC2 Windows para el desarrollo. En las instancias, están instaladas las herramientas Enterprise Developer for Eclipse. El desarrollador puede realizar todas las pruebas y depuraciones del código del mainframe de forma local en la instancia. 

AWS Systems Manager Los documentos de State Manager y Automation se utilizan para automatizar el aprovisionamiento de instancias para desarrolladores. El tiempo medio para crear una instancia de desarrollador es de 15 minutos. Se han preparado el software y las configuraciones siguientes:
+ AccuRev Cliente de Windows para extraer y guardar el código fuente AccuRev
+ Herramienta Enterprise Developers for Eclipse, para escribir, probar y depurar el código de mainframe de forma local
+ Marcos de pruebas de código abierto, pruebas de desarrollo impulsado por el comportamiento (BDD) de Python, marco de prueba Behave, py3270 y el emulador x3270 para crear scripts para probar aplicaciones
+ Una herramienta de desarrollo de Docker para crear la imagen de Docker de Enterprise Test Server y probar la aplicación en el contenedor de Docker de Enterprise Test Server 

En el ciclo de desarrollo, los desarrolladores utilizan la EC2 instancia para desarrollar y probar el código del mainframe de forma local. Cuando los cambios locales se prueban correctamente, los desarrolladores promueven el cambio en el AccuRev servidor.  

**3. CI/CD oleoductos**

En este patrón, las CI/CD canalizaciones se utilizan para las pruebas de integración y las pruebas de regresión antes del despliegue en el entorno de producción. 

Como se explica en la sección SCM, AccuRev utiliza dos tipos de flujos: un flujo de proyecto y un flujo de integración. Cada transmisión está conectada a canalizaciones. CI/CD Para realizar la integración entre el AccuRev servidor y AWS CodePipeline, el patrón utiliza un script AccuRev posterior a la promoción para crear un evento que inicie el CI/CD.

Por ejemplo, cuando un desarrollador promueve un cambio en el flujo de un proyecto AccuRev, inicia un script posterior a la promoción para que se ejecute en Server. AccuRev A continuación, el script carga los metadatos del cambio a un bucket de Amazon Simple Storage Service (Amazon S3) para crear un evento de Amazon S3. Este evento iniciará la ejecución de una canalización CodePipeline configurada. 

El mismo mecanismo de inicio de eventos se utiliza para el flujo de integración y sus canalizaciones asociadas. 

En el CI/CD proceso, se CodePipeline utiliza CodeBuild con el contenedor de clientes de AccuRev Linux para extraer el código más reciente de las AccuRev transmisiones. Luego, la canalización comienza CodeBuild a usar el contenedor de Windows para Enterprise Developer para compilar el código fuente y a usar el contenedor de Windows de Enterprise Test Server CodeBuild para probar las aplicaciones de mainframe.

Las CI/CD canalizaciones se crean mediante CloudFormation plantillas y el plano se utilizará para nuevos proyectos. Al usar las plantillas, un proyecto tarda menos de una hora en crear una nueva CI/CD canalización. AWS

Para ampliar la capacidad de prueba de su ordenador central AWS, el patrón incluye el conjunto de DevOps pruebas de Rocket Software, Verastream y el servidor UFT. Con las DevOps herramientas modernas, puede ejecutar tantas pruebas como necesite. AWS 

En el siguiente diagrama se muestra un ejemplo de entorno de desarrollo de AWS mainframe con Rocket Software activado.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Pila de tecnología de destino*

En esta sección se ofrece una visión más detallada de la arquitectura de cada componente del patrón.

**1. Repositorio de código fuente: SCM AccuRev **

AccuRev SCM está configurado para administrar las versiones del código fuente del mainframe. Para una alta disponibilidad, AccuRev admite los modos principal y de réplica. Los operadores pueden realizar una conmutación por error a la réplica cuando realizan tareas de mantenimiento en el nodo principal. 

Para acelerar la respuesta de la CI/CD canalización, el patrón utiliza Amazon CloudWatch Events para detectar los cambios en el código fuente e iniciar el inicio de la canalización.

1. La canalización se ha configurado para que utilice un origen de Amazon S3.

1. Se configura una regla de CloudWatch eventos para capturar los eventos de S3 de un bucket de S3 de origen.

1. La regla de CloudWatch eventos establece un objetivo para la canalización.

1. AccuRev SCM está configurado para ejecutar un script posterior a la promoción de forma local una vez finalizada la promoción.

1. AccuRev SCM genera un archivo XML que contiene los metadatos de la promoción y el script carga el archivo XML en el depósito S3 de origen.

1. Tras la carga, el bucket de S3 de origen envía los eventos para que coincidan con la regla de CloudWatch eventos, y esta última inicia la CloudWatch ejecución de la canalización. 

Cuando la canalización se ejecuta, inicia un CodeBuild proyecto para utilizar un contenedor cliente de AccuRev Linux para extraer el código más reciente del mainframe de una transmisión asociada. AccuRev   

El siguiente diagrama muestra la configuración de un AccuRev servidor.

![\[Nube de AWS diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Plantilla para desarrolladores empresariales** 

El patrón utiliza EC2 plantillas de Amazon para simplificar la creación de la instancia de desarrollador. Al usar State Manager, puede aplicar la configuración de software y licencia a EC2 las instancias de manera coherente.

La EC2 plantilla de Amazon incluye su configuración de contexto de VPC y su configuración de instancia predeterminada, y cumple con los requisitos de etiquetado empresarial. Al usar una plantilla, un equipo puede crear sus propias instancias de desarrollo nuevas. 

Cuando se inicia una instancia de desarrollador, mediante la asociación con etiquetas, Systems Manager usa State Manager para aplicar la automatización. La automatización incluye los siguientes pasos generales.

1. Instale el software Enterprise Developer e instale las revisiones.

1. Instale el AccuRev cliente para Windows.

1. Instale el script preconfigurado para que los desarrolladores se unan a la AccuRev transmisión. Inicialice los espacios de trabajo de Eclipse.

1. Instale las herramientas de desarrollo, incluidas x3270, py3270 y Docker.

1. Configure los ajustes de la licencia para que apunten a un equilibrador de carga de License Manager.

El siguiente diagrama muestra una instancia de desarrollador empresarial creada por la EC2 plantilla de Amazon, con el software y la configuración aplicados a la instancia por State Manager. Las instancias de desarrollador empresarial se conectan AWS License Manager para activar su licencia.

![\[Nube de AWS diagram showing Enterprise Developer Instance setup with License Manager and Administrador de sistemas components.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  Canalización de CI/CD**

Como se explicó en la sección de AWS arquitectura, en el patrón hay canalizaciones a nivel de proyecto y CI/CD canalizaciones de integración de sistemas. Cada equipo de proyecto de mainframe crea una canalización o varias CI/CD canalizaciones para crear los programas que está desarrollando en un proyecto. Estas CI/CD canalizaciones de proyectos extraen el código fuente de una transmisión asociada. AccuRev  

En un equipo de proyecto, los desarrolladores promocionan su código en la AccuRev transmisión asociada. A continuación, la promoción inicia la canalización del proyecto para compilar el código y ejecutar las pruebas de integración. 

Cada CI/CD canalización de CodeBuild proyectos utiliza proyectos con la imagen Amazon ECR de la herramienta para desarrolladores empresariales y la imagen Amazon ECR de la herramienta Enterprise Test Server. 

CodePipeline y CodeBuild se utilizan para crear las canalizaciones. CI/CD Como CodeBuild no CodePipeline hay comisiones ni compromisos por adelantado, solo pagas por lo que utilizas. En comparación con el hardware de mainframe, la AWS solución reduce considerablemente el tiempo de aprovisionamiento del hardware y reduce el coste del entorno de pruebas.

En el desarrollo moderno, se utilizan múltiples metodologías de prueba. Por ejemplo, el desarrollo basado en pruebas (TDD), el BDD y Robot Framework. Con este patrón, los desarrolladores pueden usar estas herramientas modernas para realizar pruebas de mainframe. Por ejemplo, si utiliza x3270, py3270 y la herramienta de prueba Behave python, puede definir el comportamiento de una aplicación en línea. También puede utilizar la estructura robotizada Build mainframe 3270 en estos procesos. CI/CD 

El siguiente diagrama muestra el proceso de transmisión del equipo. CI/CD  

![\[Nube de AWS CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


El siguiente diagrama muestra el informe de CI/CD prueba del proyecto elaborado por CodePipeline Mainframe3270 Robot Framework.

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


El siguiente diagrama muestra el informe de CI/CD prueba del proyecto elaborado por Py3270 y CodePipeline Behave BDD.

![\[Test report summary showing 100% pass rate for 2 test cases in a pipeline.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Una vez superadas las pruebas a nivel de proyecto, el código probado se transfiere manualmente al flujo de integración de SCM. AccuRev Puede automatizar este paso una vez que los equipos confíen en la cobertura de las pruebas de su cartera de proyectos.

Cuando se promueve el código, el proceso de integración del CI/CD sistema comprueba el código fusionado y realiza pruebas de regresión. El código fusionado se promueve desde todos los flujos de proyectos paralelos.

En función de la precisión del entorno de pruebas, los clientes pueden disponer de más CI/CD procesos de integración de sistemas en un entorno diferente, por ejemplo, UAT (preproducción). 

En el patrón, las herramientas utilizadas en la canalización de integración de sistemas son Enterprise Test Server, UFT Server y Verastream. Todas estas herramientas pueden desplegarse en el contenedor Docker y utilizarse con ellas. CodeBuild

Tras probar satisfactoriamente los programas del mainframe, el artefacto se almacena, con el control de versiones, en un bucket de S3. 

El siguiente diagrama muestra una CI/CD canalización de integración del sistema.

![\[CI/CD pipeline showing Servicios de AWS and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Una vez que el artefacto se haya probado satisfactoriamente en las CI/CD canalizaciones de integración del sistema, podrá promocionarse para su despliegue en producción. 

Si necesita volver a implementar el código fuente en el mainframe, Rocket Software ofrece la solución Enterprise Sync para sincronizar el código fuente desde el mainframe AccuRev Endeavour.

El siguiente diagrama muestra un proceso de producción que CI/CD despliega el artefacto en servidores empresariales. En este ejemplo, CodeDeploy organiza el despliegue del artefacto de mainframe probado en Enterprise Server.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Además del tutorial de arquitectura en CI/CD proceso, consulte la entrada del AWS DevOps blog [Automatice miles de pruebas de mainframe AWS con Micro Focus Enterprise Suite para obtener más información sobre las pruebas](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) de aplicaciones de mainframe en y. CodeBuild CodePipeline (Micro Focus ahora es Rocket Software). Consulte la entrada del blog para conocer las mejores prácticas y los detalles sobre cómo realizar pruebas de mainframe en. AWS

## Tools (Herramientas)
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS herramientas de automatización**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Eventos de 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)

**Herramientas de Rocket Software**
+ [Rocket Enterprise Developer for Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Rocket Enterprise Test Server](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/) (implementación en producción)
+ [Software Rocket AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [Rocket Software Enterprise Suite License Manager](https://www.microfocus.com/documentation/slm/)
+ [Rocket Software Verastream Host Integrator](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Rocket Software UFT One](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Otras herramientas**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Robot-Framework-Mainframe-3270-Library](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Epics
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Cree la infraestructura AccuRev SCM
<a name="create-the-accurev-scm-infrastructure"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente un servidor AccuRev SCM principal mediante. CloudFormation |  | AWS CloudFormation | 
| Cree el usuario AccuRev administrador. | Inicie sesión en el servidor AccuRev SCM y ejecute el comando CLI para crear un usuario administrador. | AccuRev Administrador del servidor SCM | 
| Crea AccuRev transmisiones. | Cree AccuRev flujos que hereden de los flujos superiores en secuencia: flujos de producción, integración de sistemas y equipos. | AccuRev Administrador de SCM | 
| Cree las cuentas de inicio de AccuRev sesión del desarrollador. | Utilice los comandos CLI de AccuRev SCM para crear cuentas de inicio de sesión de AccuRev usuarios para desarrolladores de mainframe. | AccuRev Administrador de SCM | 

### Cree la plantilla de EC2 lanzamiento de Amazon para desarrolladores empresariales
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente la plantilla de EC2 lanzamiento de Amazon utilizando CloudFormation. | Se usa CloudFormation para implementar una plantilla de EC2 lanzamiento de Amazon para instancias de Enterprise Developer. La plantilla incluye un documento de Automatización de Systems Manager para la instancia de Rocket Enterprise Developer. | AWS CloudFormation | 
| Crea la instancia de Enterprise Developer a partir de la EC2 plantilla de Amazon. |  | Habilidades de desarrollador de mainframe y inicio de sesión en la consola de AWS | 

### Creación de la imagen de Docker de la herramienta Enterprise Developer
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear la imagen de Docker de la herramienta Enterprise Developer. | Utilice el comando de Docker y el Dockerfile de la herramienta Enterprise Developer para crear la imagen de Docker. | Docker | 
| Cree el repositorio de Docker en Amazon ECR. | En la consola de Amazon ECR, cree el repositorio para la imagen de Docker de Enterprise Developer. | Amazon ECR | 
| Enviar la imagen de Docker de la herramienta Enterprise Developer a Amazon ECR. | Ejecute el comando push de Docker para enviar la imagen de Docker de la herramienta para desarrolladores empresariales y guardarla en el repositorio de Docker de Amazon ECR. | Docker | 

### Creación de la imagen de Docker de Enterprise Test Server
<a name="create-the-enterprise-test-server-docker-image"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear la imagen de Docker de Enterprise Test Server. | Utilice el comando de Docker y el Dockerfile de Enterprise Test Server para crear la imagen de Docker. | Docker | 
| Cree el repositorio de Docker en Amazon ECR. | En la consola de Amazon ECR, cree el repositorio de Amazon ECR para la imagen de Docker de Enterprise Test Server. | Amazon ECR | 
| Enviar la imagen de Docker de Enterprise Test Server a Amazon ECR. | Ejecute el comando push de Docker para enviar y guardar la imagen de Docker del Enterprise Test Server en Amazon ECR. | Docker | 

### Crea la CI/CD canalización de transmisión del equipo
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crea el CodeCommit repositorio. | En la CodeCommit consola, cree un repositorio basado en Git para la infraestructura y el CloudFormation código. | AWS CodeCommit | 
| Cargue la CloudFormation plantilla y el código de automatización en el CodeCommit repositorio. | Ejecuta el comando Git push para cargar la CloudFormation plantilla y el código de automatización en el repositorio. | Git | 
| Implemente la CI/CD canalización de transmisiones en equipo mediante CloudFormation. | Usa la CloudFormation plantilla preparada para implementar una CI/CD canalización de transmisión en equipo. | AWS CloudFormation | 

### Cree la CI/CD canalización de integración del sistema
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear la imagen de Docker de UFT. | Utilice el comando de Docker y el Dockerfile de UFT para crear la imagen de Docker. | Docker | 
| Crear el repositorio de Docker en Amazon ECR para la imagen de UFT. | En la consola de Amazon ECR, cree el repositorio de Docker para la imagen de UFT. | Amazon ECR | 
| Enviar la imagen de Docker de UFT a Amazon ECR. | Ejecute el comando push de Docker para enviar y guardar la imagen de Docker del Enterprise Test Server en Amazon ECR. | Docker | 
| Crear la imagen de Docker de Verastream. | Utilice el comando de Docker y el Dockerfile de Verastream para crear la imagen de Docker. | Docker | 
| Crear el repositorio de Docker en Amazon ECR para la imagen de Verastream. | En la consola de Amazon ECR, cree el repositorio de Docker para la imagen de Verastream. | Amazon ECR | 
| Implemente la CI/CD canalización de integración del sistema mediante CloudFormation. | Utilice la CloudFormation plantilla preparada para implementar una CI/CD canalización de integración de sistemas. | AWS CloudFormation | 

### Cree una CI/CD canalización de despliegue de producción
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente Enterprise Server mediante el AWS Quick Start. | Para implementar Enterprise Server mediante CloudFormation, inicie Enterprise Server en AWS Quick Start. | AWS CloudFormation | 
| Implemente una CI/CD canalización de despliegue en producción. | En la CloudFormation consola, utilice la CloudFormation plantilla para implementar una CI/CD canalización de despliegue de producción. | AWS CloudFormation | 

## Recursos relacionados
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Referencias**
+ [AWS DevOps Blog - Automatice miles de pruebas de mainframe AWS con Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) (Micro Focus ahora es Rocket Software).
+ [repositorio py3270/py3270 GitHub ](https://github.com/py3270/py3270)
+ [Repositorio de bibliotecas GitHub Altran-PT-GDC/Robot-Framework-Mainframe-3270](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [¡Bienvenido a Behave\$1](https://behave.readthedocs.io/en/latest/index.html)
+ [Blog de socios de la APN - Etiqueta: Micro Focus](https://aws.amazon.com/blogs/apn/tag/micro-focus/) (Micro Focus ahora es Rocket Software)
+ [Lanzamiento de una instancia desde una plantilla de lanzamiento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**AWS Marketplace**
+ [Rocket Software UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Quick Start (Inicio rápido)**
+ [Rocket Enterprise Server en AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernizar las cargas de trabajo de impresión en línea de mainframe en AWS mediante Micro Focus Enterprise Server y 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 y Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray and Shoup Inc*

## Resumen
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Este patrón le muestra cómo modernizar sus cargas de trabajo de impresión online de mainframe críticas para la empresa en la nube de Amazon Web Services (AWS) mediante el uso de Micro Focus Enterprise Server como entorno de ejecución para una aplicación de mainframe modernizada y LRS VPSX/MFI (Micro Focus Interface) como servidor de impresión. El patrón se basa en el enfoque de modernización del mainframe a través de [redefinir la plataforma.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Con este enfoque, migra su aplicación en línea de mainframe a Amazon Elastic Compute Cloud (Amazon EC2) y migra su base de datos de mainframe, como IBM ( DB2 forz/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), integrada con AWS Managed Microsoft AD para la autenticación y autorización del flujo de trabajo de impresión. Al modernizar sus cargas de trabajo de impresión en línea, puede reducir los costos de infraestructura de TI, mitigar la carga técnica que supone el mantenimiento de los sistemas heredados, eliminar los silos de datos, aumentar la agilidad y la eficiencia con un DevOps modelo y aprovechar los recursos bajo demanda y la automatización en la nube de AWS.

## Requisitos previos y limitaciones
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Una carga de trabajo de impresión en línea o administración de producción de mainframe
+ Conocimientos básicos sobre cómo recompilar y entregar una aplicación de mainframe ejecutada en Micro Focus Enterprise Server (para obtener más información, consulte la hoja de datos de [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) en la documentación de Micro Focus).
+ Conocimientos básicos de las soluciones y conceptos de impresión en la nube de LRS (para obtener más información, consulte [Modernización de la producción](https://www.lrsoutputmanagement.com/products/modernization-products) en la documentación de LRS).
+ Software y licencia de Micro Focus Enterprise Server (para obtener más información, póngase en contacto con el [departamento de ventas de Micro Focus](https://www.microfocus.com/en-us/contact/contactme)).
+ VPSX/MFI, LRS/Queue, and LRS/DIS[Software y licencias de LRS (para obtener más información, póngase en contacto con el departamento de ventas de LRS).](https://www.lrsoutputmanagement.com/about-us/contact-us/)

**nota**  
Para obtener más información sobre las consideraciones de configuración de las cargas de trabajo de impresión en línea de mainframe, consulte *Consideraciones* en la sección *Información adicional* de este patrón.

**Versiones de producto**
+ [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 o posterior
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/modernization-products/) V1R3 o posterior

## Arquitectura
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pila de tecnología de origen**
+ Sistema operativo: IBM z/OS
+ Lenguaje de programación – Common Business-Oriented Language (COBOL), y Customer Information Control System (CICS) 
+ Base de datos: z/OS IBM DB2 para el sistema de gestión de la información (IMS) y el método de acceso al almacenamiento virtual (VSAM) de IBM
+ Seguridad: Resource Access Control Facility (RACF), CA Top Secret para z/OS y Access Control Facility 2 () ACF2
+ Gestión de impresión y salida: productos de z/OS impresión para mainframes de IBM (IBM Infoprint Server for z/OS, LRS y CA View)

**Pila de tecnología de destino**
+ Sistema operativo: Microsoft Windows Server que se ejecuta en Amazon EC2
+ Informática — Amazon EC2
+ Lenguaje de programación – COBOL y CICS
+ Bases de datos: Amazon RDS
+ Seguridad: AWS Managed Microsoft AD
+ Administración de impresión y producción: solución de impresión LRS en AWS
+ Entorno de tiempo de ejecución de mainframe – Micro Focus Enterprise Server

**Arquitectura de origen**

En el siguiente diagrama se muestra una arquitectura de estado actual típica para una carga de trabajo de impresión en línea de mainframe.

![\[Proceso de seis pasos para producir una salida visible.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


El diagrama muestra el siguiente flujo de trabajo:

1. Los usuarios llevan a cabo transacciones comerciales en un sistema de participación (SoE) que se basa en una aplicación CICS de IBM escrita en COBOL.

1. El SoE invoca el servicio de mainframe, que registra los datos de las transacciones comerciales en una base de datos system-of-records (SoR), como IBM DB2 for z/OS.

1. El SoR conserva los datos comerciales del SoE.

1. Un usuario inicia una solicitud para generar un resultado de impresión desde el CICS SoE, que inicia una solicitud de transacción de impresión para procesar la solicitud de impresión. 

1. La aplicación de transacciones de impresión (como un programa CICS y COBOL) extrae los datos de la base de datos, los formatea de acuerdo con los requisitos empresariales y genera resultados empresariales (datos impresos), como extractos de facturación, tarjetas de identidad o extractos de préstamos. A continuación, la aplicación envía una solicitud de impresión mediante el método de acceso virtual a las telecomunicaciones (VTAM). Un servidor de z/OS impresión (como IBM Infoprint Server) utiliza NetSpool o un componente VTAM similar para interceptar las solicitudes de impresión y, a continuación, crea conjuntos de datos de salida de impresión en la bobina de JES mediante los parámetros de salida de JES. Los parámetros de salida del JES especifican la información de enrutamiento que el servidor de impresión utiliza para transmitir la salida a una impresora de red determinada. El término *VTAM* se refiere al servidor de z/OS comunicaciones y al elemento de servicios de la arquitectura de red del sistema (SNA) de z/OS.

1. El componente de transmisión de la producción de impresión transmite los conjuntos de datos de impresión de salida desde la bobina JES a impresoras o servidores de impresión remotos, como LRS (como se demuestra en este patrón), IBM Infoprint Server o destinos de correo electrónico.

**Arquitectura de destino**

El siguiente diagrama muestra una arquitectura para una carga de trabajo de impresión en línea de mainframe que se implementa en la nube de AWS:

![\[Proceso de cuatro pasos, desde la solicitud de inicio de la impresión hasta el procesamiento en AWS y la impresión de LRS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Un usuario inicia una solicitud de impresión desde una interfaz de usuario en línea (CICS) para crear la producción de impresión, como extractos de facturación, tarjetas de identificación o extractos de préstamos.

1. La aplicación en línea de mainframe ([rediseñada para Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utiliza el tiempo de ejecución de Micro Focus Enterprise Server para extraer datos de la base de datos de la aplicación, aplicar lógica empresarial a los datos, formatear los datos y, a continuación, enviar los datos a un destino de impresión mediante [Micro Focus CICS Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (DFHUPRNT). 

1. La base de datos de la aplicación (un SoR que se ejecuta en Amazon RDS) conserva los datos para su impresión.

1. La solución de VPSX/MFI impresión LRS se implementa en Amazon EC2 y sus datos operativos se almacenan en Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI usa un 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 nombre de cola. 

**nota**  
La solución de destino no suele requerir cambios en la aplicación para adaptarla a los lenguajes de formato de mainframe, como IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS). Para obtener más información sobre el uso de Micro Focus para la migración y modernización de aplicaciones de mainframe en AWS, consulte [Potenciar las cargas de trabajo de mainframe empresarial en AWS con Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) en la documentación de AWS.

**Arquitectura de infraestructura de AWS**

El siguiente diagrama muestra una arquitectura de infraestructura de AWS segura y de alta disponibilidad para una carga de trabajo de impresión en línea de mainframe:

![\[Dos zonas de disponibilidad con el servidor Micro Focus Enterprise activado EC2, Amazon RDS e impresión LRS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. La aplicación en línea para mainframe (escrita en un lenguaje de programación como CICS o COBOL) utiliza la lógica empresarial básica para procesar y generar la producción de impresión, como extractos de facturación, tarjetas de identidad y extractos de préstamos. La aplicación en línea se implementa en Amazon en dos [zonas EC2 de disponibilidad](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (AZ) para una alta disponibilidad (HA) y utiliza Micro Focus CICS Print Exit para enrutar los resultados de impresión a LRS VPSX/MFI para que los impriman los usuarios finales.

1. LRS utiliza un comando. VPSX/MFI 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 
**nota**  
Para obtener más información sobre los distintos métodos de programación de aplicaciones CICS para la impresión y sobre su compatibilidad con Micro Focus Enterprise Server y LRS VPSX/MFI, consulte *Captura de datos de impresión* en la sección *Información adicional* de este patrón.

1. 
**nota**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) proporciona un nombre DNS para integrar Micro Focus Enterprise Server con 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 y enruta el tráfico a los destinos registrados que están en buen estado.

1. El servidor de VPSX/MFI impresión LRS se implementa en Amazon en EC2 dos zonas de disponibilidad para alta disponibilidad y utiliza [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) como almacén de datos operativos. El LRS VPSX/MFI admite los modos de servicio activo-activo y activo-pasivo. Esta arquitectura utiliza varias zonas de disponibilidad en un par activo-pasivo como activo y modo de espera activa. El Network Load Balancer realiza una comprobación del estado de las VPSX/MFI EC2 instancias LRS y enruta el tráfico a las instancias activas en espera en otra zona de disponibilidad si una instancia activa se encuentra en mal estado. Las solicitudes de impresión se conservan en la cola de trabajos del LRS de forma local en cada una de las instancias. EC2 En caso de recuperación, se debe reiniciar una instancia fallida para que los servicios de LRS reanuden el procesamiento de la solicitud de impresión. 
**nota**  
El LRS también VPSX/MFI puede realizar comprobaciones de estado a nivel de flota de impresoras. Para obtener más información, consulte *Comprobaciones de estado de la flota de impresoras* en la sección de *Información adicional* de este patrón.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) se integra LRS/DIS para llevar a cabo la autenticación y autorización del flujo de trabajo de impresión. Para obtener más información, consulte *Autenticación y autorización de impresión* en la sección de *Información adicional* de este patrón.

1. LRS VPSX/MFI utiliza Amazon EBS para el almacenamiento en bloque. Puede hacer copias de seguridad de los datos de Amazon EBS de EC2 las instancias activas en Amazon S3 como point-in-time instantáneas y restaurarlos en volúmenes de EBS activos en espera. Para automatizar la creación, retención y eliminación de instantáneas de volúmenes de Amazon EBS, puede usar [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) para establecer la frecuencia de las instantáneas automatizadas y restaurarlas en función de sus [necesidades de RTO/RPO](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).

## Tools (Herramientas)
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Servicios de AWS**
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) proporciona volúmenes de almacenamiento a nivel de bloques para su uso con las instancias de Amazon. EC2 Los volúmenes de EBS se comportan como dispositivos de bloques sin formatear. Puede montar estos volúmenes como dispositivos en sus instancias.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona capacidad informática escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) le ayuda a configurar, utilizar y escalar una base de datos relacional en la nube de AWS.
+ [AWS Directory Service para Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), también conocido como AWS Managed Microsoft Active Directory, permite que sus cargas de trabajo compatibles con directorios y los recursos de AWS utilicen Active Directory administrado en AWS.

**Otras herramientas**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), una interfaz desarrollada conjuntamente por LRS y Micro Focus, captura la producción de una bobina JES de Micro Focus Enterprise Server y la entrega de forma fiable a un destino de impresión específico.
+ El servidor de información de directorio LRS (LRS/DIS) se utiliza para la autenticación y la autorización durante el flujo de trabajo de impresión.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, para recopilar o capturar datos de impresión a través de la interfaz de programación Print Exit en línea de Micro Focus.
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) es un entorno de implementación de aplicaciones para aplicaciones de mainframe. Proporciona el entorno de ejecución para las aplicaciones de mainframe que se migran o crean con cualquier versión de Micro Focus Enterprise Developer.

## Epics
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configure Micro Focus Enterprise Server en Amazon EC2 e implemente una aplicación en línea para mainframe
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Micro Focus Enterprise Server e implemente una aplicación en línea de demostración. | Configure Micro Focus Enterprise Server en Amazon y EC2, a continuación, despliegue la aplicación Micro Focus Account Demo (ACCT Demo) en Amazon EC2 siguiendo las instrucciones del [Tutorial: CICS Support](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) de la documentación de Micro Focus.La aplicación ACCT Demo es una aplicación en línea para mainframe (CICS) que crea y, a continuación, inicia la producción de impresión. | Arquitecto de la nube | 

### Configurar un servidor de impresión LRS en Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Obtenga una licencia de producto LRS para imprimir. | Para obtener una licencia de producto LRS para LRSVPSX/MFI, LRS/Queue, and LRS/DIS, póngase en contacto con el equipo de gestión de producción de [LRS.](https://www.lrsoutputmanagement.com/about-us/contact-us/) Debe proporcionar los nombres de host de las EC2 instancias en las que se instalarán los productos de LRS. | Responsable de compilación | 
| Cree una instancia de Amazon EC2 Windows para instalar LRS VPSX/MFI. | Para lanzar una instancia de Amazon EC2 Windows, sigue las instrucciones del [paso 1: lanzar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) de la EC2 documentación de Amazon. La instancia debe cumplir los siguientes requisitos de hardware y software para LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Los requisitos de hardware y software anteriores están pensados para una flota de impresoras pequeña (entre 500 y 1000). Para conocer todos los requisitos, consulte a sus personas de contacto en LRS y AWS.Cuando cree la instancia de Windows, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Instale LRS VPSX/MFI en la EC2 instancia. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Instale LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Instale LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Cree un grupo objetivo y registre LRS VPSX/MFI EC2 como destino. | Cree un grupo de destino siguiendo las instrucciones de [Crear un grupo de destino para el equilibrador de carga de red](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) en la documentación en el equilibrador de carga de red elástico.Al crear el grupo de destino, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Crear un equilibrador de carga de red. | Siga las instrucciones de [Crear un equilibrador de carga de red](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) en la documentación de Elastic Load Balancing. Su Network Load Balancer dirige el tráfico de Micro Focus Enterprise Server a LRS. VPSX/MFI EC2Al crear el equilibrador de carga de red, siga los pasos siguientes en la página **Listeners and Routing** (Oyentes y enrutamiento):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Integre Micro Focus Enterprise Server con LRS y LRS/Queue VPSX/MFI
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Micro Focus Enterprise Server para la integración. LRS/Queue  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Haga que CICS Print Exit (DFHUPRNT) esté disponible para la inicialización de Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Comprobar que Micro Focus Enterprise Server haya detectado CICS Print Exit (DFHUPRNT)**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Defina el ID de terminal de la impresora CICS (TERMIDs) como Micro Focus Enterprise Server. | **Habilitar la impresión 3270 en Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Defina el terminal de la impresora CICS en Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Configure impresoras y usuarios de impresión en Micro Focus Enterprise Server y LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una cola de impresión en LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)La cola de impresión debe ser equivalente a la impresión TERMIDs creada en Micro Focus Enterprise Server. | Arquitecto de la nube | 
| Cree un usuario de impresión en LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Configure imprimir autenticación y autorización
<a name="set-up-print-authentication-and-authorization"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un dominio de AWS Managed Microsoft AD con usuarios y grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 
| Une LRS VPSX/MFI EC2 a un dominio de Microsoft AD gestionado por AWS. | Une LRS VPSX/MFI EC2 a tu dominio de Microsoft AD gestionado por AWS de [forma automática](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentación del AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentación de AWS Directory Service). | Arquitecto de la nube | 
| Configure e integre LRS/DIS con AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquitecto de la nube | 

### Probar un flujo de trabajo de impresión en línea
<a name="test-an-online-print-workflow"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicie una solicitud de impresión en línea desde la aplicación Micro Focus ACCT Demo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)El mensaje “Solicitud de impresión programada” se muestra en la parte inferior de la pantalla. Esto confirma que se generó una solicitud de impresión en línea desde la aplicación ACCT Demo y se envió a LRS VPS/MFI para su procesamiento de impresión.  | Arquitecto de la nube | 
| Compruebe la producción de impresión en LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Ahora puede ver el resultado de impresión de un extracto de cuenta con columnas para el número de cuenta, el apellido, el nombre, la dirección, el teléfono, el número de tarjetas emitidas, la fecha de emisión, el importe y el saldo.Para ver un ejemplo, consulte el archivo adjunto **online\$1print\$1output** para ver este patrón. | Ingeniero de pruebas | 

## Recursos relacionados
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernización de la producción de LRS](https://www.lrsoutputmanagement.com/products/modernization-products) (documentación de LRS)
+ [Conceptos de redes VTAM](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts) (documentación de IBM)
+ [Resumen de los tipos de unidades lógicas (LU)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (documentación de IBM)
+ [Controles ANSI y de carro de máquinas](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentación de IBM)
+ [Capacitación de las cargas de trabajo de mainframe empresariales en AWS con Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (blog de AWS Partner Network)
+ [Cree un PAC para servidores empresariales de Micro Focus con Amazon EC2 Auto Scaling y Systems Manager (documentación](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) de AWS Prescriptive Guidance)
+ Flujo de datos de [Presentación de funciones avanzadas (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentación de IBM)
+ [Flujo de datos condicionado por línea (LCDS)](https://www.compart.com/en/lcds) (documentación de Compart)

## Información adicional
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Consideraciones**

Durante su proceso de modernización, puede considerar una amplia variedad de configuraciones para los procesos en línea del mainframe y la producción que generan. Todos los clientes y proveedores que utilizan la plataforma de mainframe la han personalizado con requisitos particulares que afectan directamente a la impresión. Por ejemplo, su plataforma actual puede incorporar Advanced Function Presentation (AFP) de IBM o Line Condition Data Stream (LCDS) de Xerox en el flujo de trabajo actual. Además, los [caracteres de control de carro de mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) y las [palabras de comando de canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) pueden afectar al aspecto de la página impresa y pueden requerir un tratamiento especial. Como parte del proceso de planificación de la modernización, le recomendamos evaluar y comprender las configuraciones de su entorno de impresión específico.

**Captura de datos de impresión**

En esta sección se resumen los métodos de programación de aplicaciones CICS que puede utilizar en un entorno de mainframe de IBM para la impresión. Los VPSX/MFI componentes del LRS proporcionan técnicas que permiten a los mismos programas de aplicación crear datos de la misma manera. En la siguiente tabla se describe cómo se admite cada método de programación de aplicaciones en una aplicación CICS modernizada que se ejecuta en AWS y Micro Focus Enterprise Server con un servidor de impresión LRS VPSX/MFI .


| 
| 
| Método | Description (Descripción) | Soporte para el método en un entorno modernizado | 
| --- |--- |--- |
| EXEC CICS SEND TEXT..    or EXEC CICS SEND MAP..  | Estos métodos CICS y VTAM son responsables de crear y entregar los flujos de datos de impresión 3270/SCS a los dispositivos de impresión LUTYPE0 y a los dispositivos de impresión. LUTYPE1 LUTYPE3  | La interfaz de programa de aplicación (API) Online Print Exit (DFHUPRNT) de Micro Focus permite procesar los datos de impresión al crear flujos de datos de impresión 3270/SCS mediante VPSX/MFI cualquiera de estos métodos.  | 
| EXEC CICS SEND TEXT..    or EXEC CICS SEND MAP.. (con software de mainframe de IBM de terceros) | Los métodos CICS y VTAM se encargan de crear y entregar los flujos de datos de impresión 3270/SCS a los dispositivos de impresión LUTYPE0 y a los dispositivos de impresión. LUTYPE1 LUTYPE3 Los productos de software de terceros interceptan los datos de impresión, los convierten en datos de formato de impresión estándar con un carácter de ASA/MCH control y colocan los datos en la bobina JES para que los procesen sistemas de impresión basados en ordenadores centrales que utilizan JES.  | La API Print Exit online (DFHUPRNT) de Micro Focus permite procesar los datos de impresión antes de crear flujos de datos de impresión VPSX/MFI 3270/SCS mediante uno de estos métodos.  | 
| EXEC CICS SPOOLOPEN  | Los programas de aplicación CICS utilizan este método para escribir datos directamente en la bobina JES. A continuación, los datos están disponibles para ser procesados por sistemas de impresión basados en mainframe que utilizan JES.  | Micro Focus Enterprise Server envía los datos a la bobina de Enterprise Server, donde los puede procesar VPSX/MFI Batch Print Exit (LRSPRTE6), que envía los datos a VPSX.  | 
| DRS/API | Se utiliza una interfaz de programación proporcionada por LRS para escribir los datos de impresión en JES.  | VPSX/MFI proporciona una interfaz de reemplazo que envía los datos de impresión directamente al VPSX.  | 

**Comprobación de estado de la flota de impresoras**

El LRS VPSX/MFI (LRS LoadX) puede realizar exhaustivas comprobaciones de estado, incluidas la gestión de los dispositivos y la optimización operativa. La administración de dispositivos puede detectar un error en un dispositivo de impresión y dirigir la solicitud de impresión a una impresora en buen estado. Para obtener más información sobre las comprobaciones de estado exhaustivas de las flotas de impresoras, consulte la documentación de LRS que se incluye con la licencia del producto.

**Imprimir autenticación y autorización**

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/DIStambién puede aplicar controles de seguridad de impresión de nivel granular en los siguientes casos de uso:
+ Gestione quién puede examinar el trabajo de impresión.
+ Gestione el nivel de navegación de los trabajos de otros usuarios.
+ Gestione las tareas operativas. Por ejemplo, la seguridad a nivel de comandos, como retener o liberar, purgar, modificar, copiar y redirigir. La seguridad se puede configurar mediante el ID de usuario o el grupo (similar al grupo AD o al grupo LDAP).

## Conexiones
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Mover los archivos de mainframe directamente a Amazon S3 mediante Transfer Family
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Resumen
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Como parte del proceso de modernización, puede afrontar el desafío de transferir archivos entre sus servidores en las instalaciones y la nube de Amazon Web Services (AWS). La transferencia de datos desde mainframes puede suponer un desafío importante, ya que los mainframes normalmente no pueden acceder a los almacenes de datos modernos como Amazon Simple Storage Service (Amazon S3), Amazon Elastic Block Store (Amazon EBS) o Amazon Elastic File System (Amazon EFS).

Muchos clientes utilizan recursos de almacenamiento provisional intermedios, como servidores Linux, Unix o Windows en las instalaciones, para transferir archivos a la nube de AWS. Puede evitar este método indirecto si utiliza AWS Transfer Family con el protocolo de File Transfer (SFTP) de Secure Shell (SSH) para cargar archivos de mainframe directamente a Amazon S3.

## Requisitos previos y limitaciones
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Una nube privada virtual (VPC) con una subred a la que pueda acceder la plataforma antigua
+ Un punto de conexión de Transfer Family para su VPC
+ Archivos del método de acceso al almacenamiento virtual (VSAM) de mainframe convertidos en [archivos de longitud fija](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) secuenciales (documentación de IBM)

**Limitaciones**
+ SFTP transfiere los archivos en modo binario de forma predeterminada, lo que significa que los archivos se cargan en Amazon S3 conservando la codificación EBCDIC. Si el archivo no contiene datos binarios o empaquetados, puede utilizar el **sftp **[ascii subcommand](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) (documentación de IBM) para convertir los archivos en texto durante la transferencia.
+ Debe [desempaquetar los archivos de mainframe](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b) (Recomendaciones de AWS) que contengan contenido empaquetado y binario para poder utilizar estos archivos en el entorno de destino.
+ El tamaño de los objetos de Amazon S3 puede oscilar entre un mínimo de 0 bytes y un máximo de 5 TB. Para obtener más información sobre las capacidades de Amazon S3, consulte [Amazon S3 FAQs](https://aws.amazon.com/s3/faqs/?nc1=h_ls).

## Arquitectura
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Pila de tecnología de origen**
+ Lenguaje de control de tareas (JCL)
+ Intérprete de comandos e ISPF para z/OS Unix
+ SFTP
+ VSAM y archivos planos

**Pila de tecnología de destino**
+ Transfer Family
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)

**Arquitectura de destino**

El diagrama siguiente muestra una arquitectura de referencia para usar Transfer Family con SFTP para cargar archivos de mainframe directamente a un bucket de S3.

![\[Uso de Transfer Family con SFTP para cargar archivos de mainframe directamente a un bucket de S3\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. Se utiliza un trabajo de JCL para transferir los archivos de mainframe del mainframe heredado a la nube de AWS a través de Direct Connect.

1. Direct Connect permite que el tráfico de la red permanezca en la red global de AWS y evite la Internet pública. Direct Connect también mejora la velocidad de la red, empezando en 50 Mbps y escalando verticalmente hasta 100 Gbps.

1. El punto de conexión de VPC permite las conexiones entre los recursos de la VPC y los servicios compatibles sin utilizar la Internet pública. El acceso a Transfer Family y Amazon S3 logra una alta disponibilidad al realizarse a través de las interfaces de red elásticas ubicadas en dos subredes privadas y zonas de disponibilidad.

1. Transfer Family autentica a los usuarios y usa SFTP para recibir los archivos del entorno heredado y moverlos a un bucket de S3.

**Automatizar y escalar**

Una vez implementado el servicio Transfer Family, puede transferir un número ilimitado de archivos desde el mainframe a Amazon S3 utilizando un trabajo de JCL como cliente SFTP. También puede automatizar la transferencia de archivos mediante el uso de un programador de trabajos por lotes del mainframe para ejecutar los trabajos de SFTP cuando esté todo a punto para transferir los archivos del mainframe.

## Tools (Herramientas)
<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) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le permite lanzar recursos de AWS en una red virtual que haya definido. Esta red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) le permite escalar de forma segura sus transferencias de business-to-business archivos recurrentes a Amazon S3 y Amazon EFS mediante los protocolos SFTP, FTPS y FTP.

## Epics
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Crear el bucket de S3 y la política de acceso
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el bucket de S3. | [Cree un bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para alojar los archivos que transfiera desde su entorno anterior. | AWS general | 
| Cree una política y un rol de IAM. | Transfer Family utiliza el rol de AWS Identity and Access Management (IAM) para conceder acceso al bucket de S3 que se creó con anterioridad.[Cree un rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) que incluya la siguiente [política de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html):<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>Debe elegir el caso de uso de Transfer al crear el rol de IAM. | AWS general | 

### Definir el servicio de transferencia
<a name="define-the-transfer-service"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el servidor SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Para obtener más información sobre cómo configurar un servidor SFTP, consulte [Create an SFTP-enabled server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) (Guía del usuario de AWS Transfer Family). | AWS general | 
| Obtenga la dirección del servidor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS general | 
| Cree el par de claves del cliente SFTP. | Cree un key pair de claves SSH para [Microsoft Windows](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#windows-ssh) o [macOS/Linux/UNIX](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#macOS-linux-unix-ssh). | AWS general, SSH | 
| Cree el servidor SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS general | 

### Transferir el archivo de mainframe
<a name="transfer-the-mainframe-file"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Envíe la clave privada SSH a la computadora central. | Utilice SFTP o SCP para enviar la clave privada SSH al entorno heredado.Ejemplo de SFTP:<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>Ejemplos de SCP:<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>A continuación, guarde la clave SSH en el sistema de archivos z/OS Unix con el nombre de usuario que ejecutará más adelante el trabajo de transferencia de archivos por lotes (por ejemplo,). `/u/CONTROLM` Para obtener más información sobre el shell de z/OS Unix, consulte [Introducción a los z/OS shell](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) (documentación de IBM). | Computadora central, shell de z/OS Unix, FTP, SCP | 
| Cree el cliente SFTP de JCL. | Como los mainframes no tienen un cliente SFTP nativo, debe usar la utilidad BPXBATCH para ejecutar el cliente SFTP desde el shell de Unix. z/OS En el editor ISPF, cree el cliente SFTP JCL. Por ejemplo:<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>[Para obtener más información sobre cómo ejecutar un comando en el shell de z/OS Unix, consulte La utilidad BPXBATCH (documentación de IBM).](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) Para obtener más información sobre cómo crear o editar trabajos de JCL en z/OS, consulte [What is ISPF?](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) (¿Qué es el ISPF?) y [The ISPF editor](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor) (El editor ISPF) (documentación de IBM). | JCL, Mainframe, shell de Unix z/OS  | 
| Ejecute el cliente SFTP de JCL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Para obtener más información sobre cómo comprobar la actividad de los trabajos por lotes, consulte la [z/OS SDSF User's Guide](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide) (documentación de IBM). | Mainframe, JCL, ISPF | 
| Valide la transferencia de archivos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS general | 
| Automatice el cliente SFTP de JCL. | Utilice el programador de tareas para activar automáticamente el cliente SFTP de JCL.Puede utilizar programadores de trabajos de mainframe, como [BMC Control-M](https://www.bmcsoftware.pt/it-solutions/control-m.html) o [CA Workload Automation](https://www.broadcom.com/products/mainframe/workload-automation/ca7), para automatizar los trabajos por lotes para la transferencia de archivos en función del tiempo y otras dependencias de los trabajos por lotes. | Programador de trabajos | 

## Recursos relacionados
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [How AWS Transfer Family works](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html) (Cómo funciona AWS Transfer Family)

# Optimice el rendimiento de su aplicación modernizada AWS Blu Age
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy y Himanshu Sah, Amazon Web Services*

## Resumen
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Las aplicaciones de mainframe que se modernizan con AWS Blu Age requieren pruebas de equivalencia funcional y de rendimiento antes de implementarlas en producción. En las pruebas de rendimiento, las aplicaciones modernizadas pueden funcionar más lentamente que los sistemas heredados, especialmente en trabajos por lotes complejos. Esta disparidad se debe a que las aplicaciones de mainframe son monolíticas, mientras que las aplicaciones modernas utilizan arquitecturas de varios niveles. Este patrón presenta técnicas de optimización para abordar estas brechas de rendimiento en las aplicaciones que se modernizan mediante la [refactorización automatizada con Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html). AWS 

El patrón utiliza el marco de modernización de AWS Blu Age con capacidades nativas de Java y ajuste de bases de datos para identificar y resolver los cuellos de botella en el rendimiento. El patrón describe cómo puede utilizar la creación de perfiles y la supervisión para identificar los problemas de rendimiento con métricas como los tiempos de ejecución de SQL, el uso de la memoria y los patrones. I/O A continuación, se explica cómo aplicar optimizaciones específicas, como la reestructuración de las consultas de la base de datos, el almacenamiento en caché y el perfeccionamiento de la lógica empresarial.

Las mejoras en los tiempos de procesamiento por lotes y en el uso de los recursos del sistema lo ayudan a igualar los niveles de rendimiento del mainframe en los sistemas modernizados. Este enfoque mantiene la equivalencia funcional durante la transición a arquitecturas modernas basadas en la nube.

Para utilizar este patrón, configure el sistema e identifique hotspots de rendimiento siguiendo las instrucciones de la sección [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) y aplique las técnicas de optimización que se describen en detalle en la sección [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture).

## Requisitos previos y limitaciones
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Requisitos previos **
+ Una aplicación modernizada de AWS Blu Age
+ [¿Una licencia JProfiler ](https://www.ej-technologies.com/store/jprofiler)
+ Privilegios administrativos para instalar herramientas de creación de perfiles y clientes de bases de datos
+ AWS [Certificación Blu Age Level 3](https://bluinsights.aws/certification/)
+ Comprensión de nivel intermedio del marco AWS Blu Age, la estructura del código generado y la programación en Java

**Limitaciones**

Las siguientes funciones y características de optimización quedan fuera del alcance de este patrón:
+ Optimización de la latencia de la red entre los niveles de aplicación
+ Optimizaciones a nivel de infraestructura mediante tipos de instancias de Amazon Elastic Compute Cloud (Amazon EC2) y optimización del almacenamiento
+ Pruebas simultáneas de carga de usuarios y pruebas de estrés

**Versiones de producto**
+ JProfiler versión 13.0 o posterior (recomendamos la versión más reciente)
+ Versión 8.14 o posterior de pgAdmin

## Arquitectura
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Este patrón configura un entorno de creación de perfiles para una aplicación de AWS Blu Age mediante herramientas como JProfiler pgAdmin. Es compatible con la optimización mediante el SQLExecution generador DAOManager y el generador APIs proporcionado por AWS Blu Age.

El resto de esta sección proporciona información detallada y ejemplos para identificar los hotspots de rendimiento y las estrategias de optimización para sus aplicaciones modernizadas. Los pasos de la sección [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) se refieren a esta información para brindar más pautas.

**Identificación de los hotspots de rendimiento en las aplicaciones de mainframe modernizadas**

En las aplicaciones de mainframe modernizadas, los *hotspots de rendimiento* son áreas específicas del código que provocan ralentizaciones o ineficiencias significativas. Estos hotspots suelen deberse a las diferencias de arquitectura entre el mainframe y las aplicaciones modernizadas. Para identificar estos obstáculos en el rendimiento y optimizar el rendimiento de su aplicación modernizada, puede utilizar tres técnicas: el registro de SQL, un `EXPLAIN` plan de consultas y el análisis. JProfiler 

*Técnica de identificación de hotspots: registro de SQL*

Las aplicaciones Java modernas, incluidas las que se han modernizado con AWS Blu Age, tienen funciones integradas para registrar consultas SQL. Puede habilitar registradores específicos en los proyectos de AWS Blu Age para rastrear y analizar las sentencias SQL ejecutadas por su aplicación. Esta técnica es particularmente útil para identificar patrones ineficientes de acceso a las bases de datos, como el exceso de consultas individuales o las llamadas a las bases de datos mal estructuradas, que podrían optimizarse mediante el procesamiento por lotes o el refinamiento de las consultas.

Para implementar el registro SQL en su aplicación modernizada de AWS Blu Age, establezca el nivel de registro en las sentencias SQL del `application.properties` archivo a fin `DEBUG` de capturar los detalles de la ejecución de las consultas:

```
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
```

Supervise las consultas de alta frecuencia y de bajo rendimiento utilizando los datos registrados para identificar los objetivos de optimización. Céntrese en las consultas dentro de los procesos por lotes, ya que suelen tener el mayor impacto en el rendimiento.

*Técnica de identificación de hotspots: plan EXPLAIN de las consultas*

Este método utiliza las capacidades de planificación de consultas de los sistemas de administración de bases de datos relacionales. Puede utilizar comandos como `EXPLAIN` en PostgreSQL o MySQL o `EXPLAIN PLAN` en Oracle para examinar cómo la base de datos pretender ejecutar una consulta determinada. El resultado de estos comandos proporciona información valiosa sobre la estrategia de ejecución de la consulta; por ejemplo, si se utilizarán índices o si se realizarán exámenes de tablas completas. Esta información es fundamental para optimizar el rendimiento de las consultas, especialmente en los casos en que una indexación adecuada puede reducir considerablemente el tiempo de ejecución.

Extraiga las consultas SQL más repetitivas de los registros de la aplicación y analice la ruta de ejecución de las consultas con un rendimiento lento mediante el comando `EXPLAIN` específico de la base de datos. A continuación, se muestra un ejemplo de base de datos de PostgreSQL.

Consulta:

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

Comando de `EXPLAIN`:

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Salida:

```
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)
```

Puede interpretar la salida de `EXPLAIN` de la siguiente forma:
+ Lea el plan `EXPLAIN` desde las operaciones más internas hasta las más externas (de abajo hacia arriba).
+ Busque los términos clave. Por ejemplo, `Seq Scan` indica un examen completo de la tabla y `Index Scan` muestra el uso del índice.
+ Compruebe los valores de costo: el primer número es el costo inicial y el segundo es el costo total.
+ Consulte el valor `rows` del número estimado de filas de salida.

En este ejemplo, el motor de consultas utiliza un examen del índice para buscar las filas coincidentes y, a continuación, prepara solo esas filas (`Bitmap Heap Scan`). Este método es más eficiente que examinar toda la tabla, a pesar del mayor costo del acceso a las filas individuales.

Las operaciones de examen de las tablas incluidas en la salida de un plan `EXPLAIN` indican que falta un índice. La optimización requiere la creación de un índice adecuado.

*Técnica de identificación de puntos calientes: análisis JProfiler *

JProfiler es una completa herramienta de creación de perfiles de Java que le ayuda a resolver los cuellos de botella en el rendimiento al identificar las llamadas lentas a las bases de datos y las llamadas que requieren un uso intensivo de la CPU. Esta herramienta es particularmente eficaz para identificar las consultas SQL lentas y el uso ineficiente de la memoria.

Ejemplo de análisis para la consulta:

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

La vista JProfiler Hot Spots proporciona la siguiente información:
+ Columna **Tiempo**
  + Muestra la duración total de la ejecución (por ejemplo, 329 segundos)
  + Muestra el porcentaje del tiempo total de la aplicación (por ejemplo, 58,7 %)
  + Ayuda a identificar las operaciones que más tiempo consumen
+ Columna **Tiempo medio**
  + Muestra la duración de cada ejecución (por ejemplo, 2692 microsegundos)
  + Indica el rendimiento de cada operación
  + Ayuda a detectar operaciones lentas
+ Columna **Eventos**
  + Muestra el recuento de ejecuciones (por ejemplo, 122 387 veces)
  + Indica la frecuencia de la operación
  + Ayuda a identificar los métodos a los que se llama con frecuencia

Para ver los resultados del ejemplo:
+ Frecuencia alta: 122 387 ejecuciones indican un potencial de optimización
+ Problema de rendimiento: 2692 microsegundos durante un tiempo medio sugieren poca eficiencia
+ Impacto crítico: el 58,7 % del tiempo total indica un cuello de botella importante

JProfiler puede analizar el comportamiento de la aplicación en tiempo de ejecución para revelar puntos críticos que podrían no ser evidentes mediante el análisis de código estático o el registro de SQL. Estas métricas lo ayudan a identificar las operaciones que necesitan optimizarse y a determinar la estrategia de optimización que sería más eficaz. Para obtener más información sobre JProfiler las funciones, consulte la [JProfiler documentación](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Si utiliza estas tres técnicas (registro de SQL, `EXPLAIN` plan de consultas y JProfiler) en combinación, puede obtener una visión holística de las características de rendimiento de la aplicación. Al identificar y abordar los hotspots de rendimiento más críticos, puede cerrar la brecha de rendimiento entre la aplicación de mainframe original y el sistema modernizado basado en la nube.

Tras identificar los hotspots de rendimiento de la aplicación, puede aplicar estrategias de optimización, que se explican en la siguiente sección.

**Estrategias de optimización para la modernización del mainframe**

En esta sección se describen las estrategias clave para optimizar las aplicaciones que se han modernizado a partir de sistemas de mainframe. Se centra en tres estrategias: utilizar las existentes APIs, implementar un almacenamiento en caché eficaz y optimizar la lógica empresarial.

*Estrategia de optimización: utilizar la existente APIs*

AWS Blu Age proporciona varias interfaces DAO potentes APIs que puede utilizar para optimizar el rendimiento. Dos interfaces principales, DAOManager y SQLExecution Builder, ofrecen capacidades para mejorar el rendimiento de las aplicaciones.

**DAOManager**

DAOManager sirve como interfaz principal para las operaciones de bases de datos en aplicaciones modernizadas. Ofrece varios métodos para mejorar las operaciones de las bases de datos y mejorar el rendimiento de las aplicaciones, especialmente para las operaciones sencillas de creación, lectura, actualización y eliminación (CRUD, por sus siglas en inglés) y procesamiento por lotes.
+ **Uso SetMaxResults.** En la DAOManager API, puede usar el **SetMaxResults**método para especificar el número máximo de registros que se van a recuperar en una sola operación de base de datos. De forma predeterminada, DAOManager recupera solo 10 registros a la vez, lo que puede provocar varias llamadas a la base de datos al procesar conjuntos de datos de gran tamaño. Utilice esta optimización cuando la aplicación tenga que procesar una gran cantidad de registros y actualmente esté realizando varias llamadas a bases de datos para recuperarlos. Esto resulta particularmente útil en situaciones de procesamiento por lotes en las que se realiza una iteración a través de un conjunto de datos de gran tamaño. En el siguiente ejemplo, el código de la izquierda (antes de la optimización) usa el valor de recuperación de datos predeterminado de 10 registros. El código de la derecha (después de la optimización) se configura **setMaxResults**para recuperar 100 000 registros a la vez.  
![\[Ejemplo de uso SetMaxResults para evitar múltiples llamadas a la base de datos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**nota**  
Elija lotes de mayor tamaño con cuidado y compruebe el tamaño del objeto, ya que esta optimización aumenta el consumo de memoria.
+ **Sustituir SetOnGreatorOrEqual por SetOnEqual.** Esta optimización implica cambiar el método que se utiliza para establecer la condición de recuperación de registros. El **SetOnGreatorOrEqual**método recupera los registros que son mayores o iguales a un valor especificado, mientras que solo **SetOnEqual**recupera los registros que coinciden exactamente con el valor especificado.

  **SetOnEqual**Utilícelo como se ilustra en el siguiente ejemplo de código, cuando sepa que necesita coincidencias exactas y esté utilizando actualmente el **SetOnGreatorOrEqual**método seguido de **readNextEqual()**. Esta optimización reduce la recuperación innecesaria de datos.  
![\[Ejemplo de uso SetOnEqual para recuperar registros en función de una coincidencia exacta.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Utilice operaciones de escritura y actualización por lotes.** Puede utilizar las operaciones por lotes para agrupar varias operaciones de escritura o actualización en una sola transacción de la base de datos. Esto reduce el número de llamadas a la base de datos y puede mejorar considerablemente el rendimiento de las operaciones que implican varios registros.

  En el siguiente ejemplo, el código de la izquierda realiza operaciones de escritura en bucle, lo que ralentiza el rendimiento de la aplicación. Puede optimizar este código mediante una operación de escritura por lotes: durante cada iteración del bucle `WHILE`, se agregan registros a un lote hasta que el tamaño del lote alcance un tamaño predeterminado de 100. A continuación, puede vaciar el lote cuando alcance el tamaño de lote predeterminado y, a continuación, vaciar los registros restantes en la base de datos. Esto resulta especialmente útil en las situaciones en las que se procesan conjuntos de datos de gran tamaño que requieren actualizaciones.  
![\[Ejemplo de agrupación de varias operaciones en una sola transacción de base de datos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Agregue índices.** Agregar índices es una optimización a nivel de base de datos que puede mejorar considerablemente el rendimiento de las consultas. Los índices permiten que la base de datos localice rápidamente las filas con un valor de columna específico sin tener que examinar toda la tabla. Utilice la indexación en las columnas que se utilizan con frecuencia en las cláusulas `WHERE`, las condiciones `JOIN` o las instrucciones `ORDER BY`. Esto es particularmente importante para las tablas de gran tamaño o cuando la recuperación rápida de datos es fundamental.

**SQLExecutionConstructor**

SQLExecutionBuilder es una API flexible que puede utilizar para controlar las consultas SQL que se ejecutarán, recuperar solo determinadas columnas mediante `SELECT` el uso de nombres de tablas dinámicas y utilizar nombres de tablas dinámicas. `INSERT` En el siguiente ejemplo, SQLExecutor Builder usa una consulta personalizada que usted defina. 

![\[Ejemplo de uso de SQLExecutor Builder con una consulta personalizada.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Elegir entre DAOManager y SQLExecution Builder**

La elección entre estas opciones APIs depende de su caso de uso específico:
+ Úselo DAOManager cuando desee que AWS Blu Age Runtime genere las consultas SQL en lugar de escribirlas usted mismo.
+ Elija SQLExecution Builder cuando necesite escribir consultas SQL para aprovechar las funciones específicas de la base de datos o escribir consultas SQL óptimas.

*Estrategia de optimización: almacenamiento en caché*

En las aplicaciones modernizadas, la implementación de estrategias de almacenamiento en caché eficaces puede reducir significativamente las llamadas a las bases de datos y mejorar los tiempos de respuesta. Esto ayuda a cerrar la brecha de rendimiento entre los entornos de mainframe y en la nube.

En las aplicaciones de AWS Blu Age, las implementaciones de almacenamiento en caché sencillas utilizan estructuras de datos internas, como mapas hash o listas de matrices, por lo que no es necesario configurar una solución de almacenamiento en caché externa que requiera una reestructuración de costes y código. Este enfoque es particularmente eficaz para los datos a los que se accede con frecuencia, pero que no cambian a menudo. Al implementar el almacenamiento en caché, tenga en cuenta las limitaciones de memoria y los patrones de actualización para mantener el rendimiento y las ventajas de rendimiento reales de los datos almacenados en caché.

La clave para un almacenamiento en caché exitoso es identificar los datos correctos que se van a almacenar en caché. En el siguiente ejemplo, el código de la izquierda siempre lee los datos de la tabla, mientras que el código de la derecha lee los datos de la tabla cuando el mapa hash local no tiene un valor para una clave determinada. `cacheMap` es un objeto de mapa hash que se crea en el contexto del programa y se borra con el método de limpieza del contexto del programa.

Almacenamiento en caché con: DAOManager

![\[Ejemplo de optimizaciones de almacenamiento en caché con. DAOManager\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Almacenamiento en caché con Builder: SQLExecution

![\[Ejemplo de optimizaciones de almacenamiento en caché con Builder. SQLExecution\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Estrategia de optimización: optimización de la lógica empresarial*

La optimización de la lógica empresarial se centra en reestructurar el código generado automáticamente por AWS Blu Age para alinearlo mejor con las capacidades de la arquitectura moderna. Esto se hace necesario cuando el código generado mantiene la misma estructura lógica que el código de mainframe heredado, lo que puede no ser óptimo para los sistemas modernos. El objetivo es mejorar el rendimiento y, al mismo tiempo, mantener la equivalencia funcional de la aplicación original.

Este enfoque de optimización no se centra solo en los simples ajustes de la API y las estrategias de almacenamiento en caché. Implica cambios en la forma en que la aplicación procesa los datos e interactúa con la base de datos. Algunas de las optimizaciones más comunes son evitar operaciones de lectura innecesarias para las actualizaciones sencillas, eliminar las llamadas redundantes a las bases de datos y reestructurar los patrones de acceso a los datos para adaptarlos mejor a la arquitectura moderna de la aplicación. A continuación se muestran algunos ejemplos:
+ **Actualizar los datos directamente en la base de datos.**Reestructure su lógica empresarial mediante actualizaciones directas de SQL en lugar de DAOManager realizar múltiples operaciones con bucles. Por ejemplo, el siguiente código (lado izquierdo) realiza varias llamadas a la base de datos y utiliza memoria excesiva. En concreto, utiliza varias operaciones de lectura y escritura en bases de datos dentro de bucles, actualizaciones específicas en lugar de hacer procesamientos por lotes y crear objetos innecesarios para cada iteración.

  El siguiente código optimizado (en la derecha) utiliza una sola operación de actualización de Direct SQL. En concreto, utiliza una sola llamada a la base de datos en lugar de realizar varias llamadas y no requiere bucles, ya que todas las actualizaciones se gestionan en una sola instrucción. Esta optimización proporciona un mejor rendimiento y una mejor utilización de los recursos y reduce la complejidad. Evita la inyección de código SQL, proporciona un mejor almacenamiento en caché del plan de consultas y ayuda a mejorar la seguridad.  
![\[Reestructuración del código mediante actualizaciones directas de SQL en lugar de DAOManager operaciones con bucles.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**nota**  
Utilice siempre consultas parametrizadas para evitar la inyección de código SQL y garantizar una administración adecuada de las transacciones.
+ **Reducción de las llamadas redundantes a las bases de datos.** Las llamadas redundantes a las bases de datos pueden afectar significativamente al rendimiento de las aplicaciones, especialmente cuando se producen dentro de bucles. Una técnica de optimización sencilla pero eficaz consiste en evitar repetir la misma consulta a la base de datos varias veces. En la siguiente comparación de código se demuestra cómo al mover la llamada a la base de datos `retrieve()` fuera del bucle se evita la ejecución redundante de consultas idénticas, lo que mejora la eficiencia.  
![\[alt text not found\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Reducción de las llamadas a la base de datos mediante la cláusula SQL** `JOIN`**.** Implemente SQLExecution Builder para minimizar las llamadas a la base de datos. SQLExecutionBuilder proporciona un mayor control sobre la generación de SQL y es particularmente útil para consultas complejas que DAOManager no se pueden gestionar de manera eficiente. Por ejemplo, el código siguiente utiliza varias DAOManager llamadas:

  ```
  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);
  }
  ```

  El código optimizado usa una sola llamada a la base de datos en 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);
  }
  ```

*Uso conjunto de estrategias de optimización*

Estas tres estrategias funcionan de forma sinérgica: APIs proporcionan las herramientas para un acceso eficiente a los datos, el almacenamiento en caché reduce la necesidad de recuperar datos de forma repetida y la optimización de la lógica empresarial garantiza que APIs se utilicen de la manera más eficaz posible. La supervisión y el ajuste periódicos de estas optimizaciones garantizan una mejora continua del rendimiento y, al mismo tiempo, mantienen la fiabilidad y la funcionalidad de la aplicación modernizada. La clave del éxito reside en comprender cuándo y cómo aplicar cada estrategia en función de las características y los objetivos de rendimiento de la aplicación.

## Tools (Herramientas)
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)es una herramienta de creación de perfiles de Java diseñada para desarrolladores e ingenieros de rendimiento. Analiza las aplicaciones Java y ayuda a identificar los cuellos de botella en el rendimiento, las pérdidas de memoria y los problemas de subprocesos. JProfiler ofrece perfiles de CPU, memoria y subprocesos, así como supervisión de bases de datos y máquinas virtuales Java (JVM) para proporcionar información sobre el comportamiento de las aplicaciones.
**nota**  
Como alternativa JProfiler, puede utilizar [Java](https://visualvm.github.io/) VisualVM. Se trata de una herramienta gratuita de código abierto de creación de perfiles de rendimiento y supervisión para aplicaciones de Java que permite supervisar en tiempo real el uso de la CPU, el consumo de memoria, la administración de subprocesos y las estadísticas de recopilación de elementos no utilizados. Dado que Java VisualVM es una herramienta JDK integrada, resulta más JProfiler rentable que para las necesidades básicas de creación de perfiles.
+ [pgAdmin](https://www.pgadmin.org/) es una plataforma de administración y desarrollo de código abierto para PostgreSQL. Proporciona una interfaz gráfica que permite crear, mantener y utilizar objetos de bases de datos. Puede usar pgAdmin para realizar una amplia gama de tareas, desde escribir consultas SQL sencillas hasta desarrollar bases de datos complejas. Algunas de sus características son un editor de código SQL que resalta la sintaxis, un editor de código en el servidor, un agente de programación para SQL, un intérprete de comandos y tareas por lotes, y compatibilidad con todas las características de PostgreSQL tanto para usuarios sin experiencia como con experiencia de PostgreSQL.

## Prácticas recomendadas
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Identificación de hotspots de rendimiento:
+ Documente las métricas de rendimiento de referencia antes de iniciar las optimizaciones.
+ Establezca objetivos claros de mejora del rendimiento en función de los requisitos empresariales.
+ Al realizar evaluaciones comparativas, desactive la creación de registros detallados, ya que esto puede afectar al rendimiento.
+ Configure un conjunto de pruebas de rendimiento y ejecútelo periódicamente.
+ Utilice la versión más reciente de pgAdmin. (Las versiones más antiguas no admiten el plan `EXPLAIN` de consultas).
+ Para realizar una evaluación comparativa, desconéctese una vez que se hayan JProfiler completado las optimizaciones, ya que esto aumenta la latencia.
+ Para realizar evaluaciones comparativas, asegúrese de ejecutar el servidor en modo de inicio en lugar de en modo de depuración, ya que el modo de depuración aumenta la latencia.

Estrategias de optimización:
+ Configure **SetMaxResults**los valores en el `application.yaml` archivo para especificar lotes del tamaño correcto de acuerdo con las especificaciones de su sistema.
+ Configure **SetMaxResults**los valores en función del volumen de datos y las restricciones de memoria.
+ Cambie **SetOnGreatorOrEqual**a **SetOnEqual**solo cuando se realicen llamadas posteriores`.readNextEqual()`.
+ En las operaciones de escritura o actualización por lotes, gestione el último lote por separado, ya que podría ser más pequeño que el tamaño del lote configurado y la operación de escritura o actualización podría pasarlo por alto.

Almacenamiento en caché:
+ Los campos que se introducen para el almacenamiento en caché en `processImpl`, que cambian con cada ejecución, siempre deben definirse en el contexto de ese `processImpl`. Los campos también deben borrarse mediante el método `doReset()` o `cleanUp()`.
+ Cuando implemente el almacenamiento en caché en memoria, ajuste el tamaño de la caché. Las cachés muy grandes que se almacenan en la memoria pueden ocupar todos los recursos, lo que podría afectar al rendimiento general de la aplicación.

SQLExecutionConstructor:
+ Para las consultas que planea usar en SQLExecution Builder, utilice nombres clave como`PROGRAMNAME_STATEMENTNUMBER`.
+ Cuando utilice SQLExecution Builder, compruebe siempre el `Sqlcod` campo. Este campo contiene un valor que especifica si la consulta se ejecutó correctamente o si encontró algún error.
+ Utilice consultas parametrizadas para evitar la inyección de código SQL.

Optimización de la lógica empresarial:
+ Mantenga la equivalencia funcional al reestructurar el código y ejecute pruebas de regresión y comparaciones de bases de datos para el subconjunto de programas correspondiente.
+ Mantenga instantáneas de la creación de perfiles para poder compararlas.

## Epics
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Instalación JProfiler y pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instalar y configurar. JProfiler | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desarrollador de aplicaciones | 
| Instale y configure pgAdmin. | En este paso, debe instalar y configurar un cliente de base de datos para que realice consultas en la base de datos. Este patrón utiliza una base de datos PostgreSQL y pgAdmin como cliente de base de datos. Si utiliza otro motor de base de datos, siga la documentación del cliente de base de datos correspondiente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desarrollador de aplicaciones | 

### Identificación de hotspots
<a name="identify-hotspots"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Habilite el registro de consultas SQL en su aplicación AWS Blu Age. | Habilite los registradores para el registro de consultas SQL en el `application.properties` archivo de su aplicación AWS Blu Age, tal y como se explica en la sección de [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desarrollador de aplicaciones | 
| Genere y analice los planes `EXPLAIN` de consultas para identificar los hotspots de rendimiento de las bases de datos. | Para obtener información detallada, consulte la sección [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desarrollador de aplicaciones | 
| Cree una JProfiler instantánea para analizar un caso de prueba de rendimiento lento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desarrollador de aplicaciones | 
| Analice la JProfiler instantánea para identificar los cuellos de botella en el rendimiento. | Siga estos pasos para analizar la instantánea. JProfiler [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Para obtener más información sobre su uso JProfiler, consulte la sección [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture) y la [JProfiler documentación](https://www.ej-technologies.com/jprofiler/docs). | Desarrollador de aplicaciones | 

### Establecimiento de una línea de base
<a name="establish-a-baseline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Establezca una línea de base de rendimiento antes de implementar las optimizaciones. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desarrollador de aplicaciones | 

### Aplicación de estrategias de optimización
<a name="apply-optimization-strategies"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Optimice las llamadas de lectura. | Optimice la recuperación de datos mediante el DAOManager **SetMaxResults**método. Para obtener más información sobre este enfoque, consulte la sección [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desarrollador de aplicaciones, DAOManager | 
| Refactorice la lógica empresarial para evitar varias llamadas a la base de datos. | Reduzca las llamadas a la base de datos mediante una cláusula `JOIN` en SQL. Para obtener detalles y ejemplos, consulte *Optimización de la lógica empresarial* en la sección [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desarrollador de aplicaciones, SQLExecution constructor | 
| Refactorice el código para usar el almacenamiento en caché para reducir la latencia de las llamadas de lectura. | Para obtener información sobre esta técnica, consulte *Almacenamiento en caché* en la sección [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desarrollador de aplicaciones | 
| Reescriba el código ineficiente que utiliza varias DAOManager operaciones para realizar operaciones de actualización sencillas. | Para obtener más información sobre cómo actualizar los datos directamente en la base de datos, consulte *Optimización de la lógica empresarial* en la sección [Arquitectura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desarrollador de aplicaciones | 

### Estrategias de optimización de pruebas
<a name="test-optimization-strategies"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Valide cada cambio de optimización de forma iterativa y, al mismo tiempo, mantenga la equivalencia funcional. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)El uso de métricas de línea de base como referencia garantiza una medición precisa del impacto de cada optimización y, al mismo tiempo, mantiene la fiabilidad del sistema. | Desarrollador de aplicaciones | 

## Resolución de problemas
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Al ejecutar la aplicación moderna, verá una excepción con el error `Query_ID not found`. | Para resolver este problema, siga estos pasos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Ha agregado índices, pero no ve ninguna mejora de rendimiento. | Siga estos pasos para asegurarse de que el motor de consultas utilice el índice:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Te encuentras con una excepción out-of-memory. | Compruebe que el código libere la memoria almacenada en la estructura de datos. | 
| Las operaciones de escritura por lotes hacen que falten registros en la tabla | Revise el código para asegurarse de que se realice una operación de escritura adicional cuando el recuento de lotes no es cero. | 
| El registro de SQL no aparece en los registros de la aplicación. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Recursos relacionados
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Refactorización automática de aplicaciones con AWS Blu Age (Guía AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) *del usuario*)
+ [Documentación de pgAdmin](https://www.pgadmin.org/docs/)
+ [JProfiler documentación](https://www.ej-technologies.com/jprofiler/docs)

# Proteja y optimice el acceso de los usuarios a una base de datos de federación DB2 en AWS mediante contextos de confianza
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Resumen
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

Muchas empresas están migrando sus cargas de trabajo de la unidad central antigua a Amazon Web Services (AWS). Esta migración incluye el cambio de IBM Db2 para z/OS bases de datos a Db2 para Linux, Unix y Windows (LUW) en Amazon Elastic Compute Cloud (Amazon). EC2 Durante una migración gradual de las instalaciones a AWS, es posible que los usuarios necesiten acceder a los datos de IBM Db2 z/OS y Db2 LUW en EC2 Amazon hasta que todas las aplicaciones y bases de datos se hayan migrado por completo a Db2 LUW. En estos escenarios de acceso remoto a los datos, la autenticación de los usuarios puede resultar difícil porque las diferentes plataformas utilizan diferentes mecanismos de autenticación.

Este patrón explica cómo configurar un servidor de federación en Db2 para LUW con Db2 como base de datos remota. z/OS El patrón utiliza un contexto confiable para propagar la identidad de un usuario de Db2 LUW a Db2 sin volver a autenticarse en la base de datos z/OS remota. Para obtener más información sobre los contextos de confianza, consulte la sección [Información adicional](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional).

## Requisitos previos y limitaciones
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa
+ Una instancia de Db2 que se ejecuta en una instancia de Amazon EC2 
+ Un Db2 remoto para una z/OS base de datos que se ejecuta en las instalaciones
+ La red local conectada a AWS a través de [AWS Site-to-Site VPN](https://aws.amazon.com/vpn/) o [AWS Direct Connect](https://aws.amazon.com/directconnect/)

## Arquitectura
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Arquitectura de destino**

![\[El mainframe local se conecta a través de un servidor Db2 local y una VPN a la base de datos de Db2 on. EC2\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Tools (Herramientas)
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**Servicios de AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) proporciona capacidad informática escalable en la nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.
+ La [ Site-to-SiteVPN de AWS](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) le ayuda a transferir el tráfico entre las instancias que lanza en AWS y su propia red remota.

**Otras herramientas**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) es el comando de la interfaz de la línea de comandos (CLI) interactiva de Db2.

## Epics
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Habilite la federación en la base de datos Db2 LUW que se ejecuta en AWS
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Habilite la federación en la base de datos DB2 LUW. | Para habilitar la federación en DB2 LUW, ejecute el siguiente comando.<pre>update dbm cfg using federated YES</pre> | Administrador de base de datos | 
| Reinicie la base de datos. | Para reiniciar la base de datos, ejecute el comando siguiente:<pre>db2stop force;<br />db2start;</pre> | Administrador de base de datos | 

### Cataloga la base de datos remota
<a name="catalog-the-remote-database"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cataloga el subsistema Db2 z/OS remoto. | Para catalogar la z/OS base de datos Db2 remota en Db2 LUW que se ejecuta en AWS, utilice el siguiente comando de ejemplo.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | Administrador de base de datos | 
| Catalogue la base de datos remota. | Para catalogar la base de datos remota, utilice el siguiente comando de ejemplo. <pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | Administrador de base de datos | 

### Cree la definición de servidor remoto
<a name="create-the-remote-server-definition"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Recopile las credenciales de usuario para la base de datos remota de Db2. z/OS  | Antes de continuar con los siguientes pasos, recopile la siguiente información:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | Administrador de base de datos | 
| Cree la capa DRDA. | Ejecute el siguiente comando para crear una capa DRDA.<pre>CREATE WRAPPER DRDA;</pre> | Administrador de base de datos | 
| Cree la definición del servidor. | Para crear la definición del servidor, ejecute el siguiente comando de ejemplo.<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>En esta definición, `FED_PROXY_USER` especifica el usuario proxy que se utilizará para establecer conexiones de confianza a la base de datos de Db2 z/OS . El ID de usuario y la contraseña de autorización solo son necesarios para crear el objeto de servidor remoto en la base de datos de Db2 LUW. No se utilizarán más adelante durante el tiempo de ejecución. | Administrador de base de datos | 

### Creación de asignaciones de usuarios
<a name="create-user-mappings"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un asignación de usuarios para el usuario proxy. | Para crear un asignación de usuarios para el usuario proxy, ejecute el siguiente comando.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | Administrador de base de datos | 
| Cree asignaciones de usuarios para cada usuario en Db2 LUW. | Cree asignaciones de usuarios para todos los usuarios de la base de datos de Db2 LUW en AWS que necesiten acceder a datos remotos a través del usuario proxy. Ejecute el siguiente comando para crear las asignaciones de usuario.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>La declaración especifica que un usuario de Db2 LUW (`PERSON1`) puede establecer una conexión de confianza con la base de datos remota de Db2 z/OS (). `USE_TRUSTED_CONTEXT 'Y'` Una vez establecida la conexión a través del usuario proxy, el usuario puede acceder a los datos mediante el ID de z/OS usuario de Db2 (). `REMOTE_AUTHID 'USERZID'` | Administrador de base de datos | 

### Cree el objeto de contexto de confianza
<a name="create-the-trusted-context-object"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el objeto de contexto de confianza. | Para crear el objeto de contexto de confianza en la z/OS base de datos remota de Db2, utilice el siguiente comando de ejemplo.<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>En esta definición, `CTX_LUW_ZOS` es un nombre arbitrario para el objeto de contexto de confianza. El objeto contiene el ID del usuario proxy y la dirección IP del servidor desde el que debe originarse la conexión de confianza. En este ejemplo, el servidor de la base de datos Db2 LUW en AWS. También puede utilizar el nombre de dominio en lugar de la dirección IP. La cláusula `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` indica que se permite cambiar el ID de usuario en una conexión de confianza para cada ID de usuario. No es necesario proporcionar una contraseña. | Administrador de base de datos | 

## Recursos relacionados
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [Instalación de control de acceso a los recursos de IBM (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [Federación IBM Db2 LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Contextos de confianza](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Información adicional
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Contextos de confianza de Db2**

Un contexto de confianza es un objeto de base de datos de Db2 que define una relación de confianza entre un servidor federado y un servidor de base de datos remoto. Para definir una relación de confianza, el contexto de confianza especifica los atributos de confianza. Existen tres tipos de atributos de confianza:
+ El ID de autorización del sistema que realiza la solicitud de conexión inicial a la base de datos
+ La dirección IP o el nombre de dominio desde los que se realiza la conexión
+ La configuración de cifrado para las comunicaciones de datos entre el servidor de la base de datos y el cliente de la base de datos

Se establece una conexión de confianza cuando todos los atributos de una solicitud de conexión coinciden con los atributos especificados en cualquier objeto de contexto de confianza definido en el servidor. Existen dos tipos diferentes de conexiones de confianza: implícitas y explícitas. Una vez establecida una conexión de confianza implícita, el usuario hereda un rol que no está disponible para él fuera del ámbito de esa definición de conexión de confianza. Una vez establecida una conexión de confianza explícita, los usuarios pueden conectarse a la misma conexión física, con o sin autenticación. Además, a los usuarios de Db2 se les pueden asignar roles que especifiquen privilegios que solo se utilizarán dentro de la conexión de confianza. Este patrón utiliza una conexión de confianza explícita.

*Contexto de confianza en este patrón*

Una vez completado el patrón, PERSON1 en Db2, LUW accede a los datos remotos de Db2 z/OS mediante un contexto de confianza federado. La conexión para PERSON1 se establece a través de un usuario proxy si la conexión se origina en la dirección IP o el nombre de dominio que se especifica en la definición del contexto de confianza. Una vez establecida la conexión, el ID PERSON1 de z/OS usuario de Db2 correspondiente se cambia sin necesidad de volver a autenticarse, y el usuario puede acceder a los datos u objetos en función de los privilegios de Db2 configurados para ese usuario.

*Ventajas de los contextos de confianza federados*
+ Este enfoque mantiene el principio del privilegio mínimo al eliminar el uso de un ID de usuario o de aplicación común, que requeriría un conjunto de todos los privilegios que requieren todos los usuarios.
+ La identidad real del usuario que realiza la transacción tanto en la base de datos federada como en la remota siempre se conoce y se puede auditar.
+ El rendimiento mejora porque la conexión física se reutiliza entre los usuarios sin necesidad de que el servidor federado vuelva a autenticarse.

# Transfiera z/OS datos de Db2 a gran escala a Amazon S3 en archivos CSV
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files"></a>

*Bruno Sahinoglu, Abhijit Kshirsagar e Ivan Schuster, Amazon Web Services*

## Resumen
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Un mainframe sigue siendo el sistema de registro de muchas empresas que conservan una enorme cantidad de datos, incluidas entidades de datos maestros con registros de las transacciones comerciales actuales e históricas. A menudo está aislado, y los sistemas distribuidos de la misma empresa no pueden acceder fácilmente a él. Con la aparición de la tecnología en la nube y la democratización de los macrodatos, las empresas tratan de usar la información oculta en los datos del mainframe para desarrollar nuevas capacidades empresariales.

Con ese objetivo, las empresas buscan abrir sus datos Db2 de mainframe a su entorno de nube de Amazon Web Services (AWS). Los motivos empresariales son varios, y los métodos de transferencia varían de un caso a otro. Es posible que prefiera conectar la aplicación directamente al mainframe, o que prefiera replicar los datos prácticamente en tiempo real. Si el caso de uso es alimentar un almacén de datos o un lago de datos, disponer de una up-to-date copia ya no es un problema y el procedimiento descrito en este patrón puede ser suficiente, especialmente si se quiere evitar los costes de licencia de productos de terceros. Otro caso de uso podría ser la transferencia de datos de un mainframe para un proyecto de migración. En un escenario de migración, es necesario contar con datos para realizar las pruebas de equivalencia funcional. El enfoque descrito en esta publicación es una forma rentable de transferir los datos de Db2 al entorno de nube de AWS.

Dado que Amazon Simple Storage Service (Amazon S3) es uno de los servicios de AWS más integrados, puede acceder a los datos desde allí y recopilar información directamente mediante otros servicios de AWS, como Amazon Athena, AWS Lambda Functions o Amazon. QuickSight También puede cargar los datos en Amazon Aurora o Amazon DynamoDB mediante AWS Glue o AWS Database Migration Service (AWS DMS). Con ese objetivo en mente, este patrón describe cómo descargar datos de Db2 en archivos CSV en formato ASCII en el mainframe y transferir los archivos a Amazon S3.

Para ello, se han desarrollado [scripts de mainframe](https://github.com/aws-samples/unloaddb2-samples) para ayudar a generar lenguajes de control de tareas (JCLs) para descargar y transferir tantas tablas de Db2 como necesite.

## Requisitos previos y limitaciones
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Requisitos previos **
+ Usuario del sistema z/OS operativo IBM con autorización para ejecutar scripts JCL y Restructured Extended Executor (REXX).
+ Acceso a los servicios del sistema z/OS Unix (USS) para generar claves públicas y privadas de SSH (Secure Shell).
+ Un bucket de S3 con permisos de escritura. Para obtener más información, consulte la sección [Cree su primer bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) en la documentación de Amazon S3.
+ Un servidor habilitado para el protocolo SSH File Transfer (SFTP) de AWS Transfer Family con **Service Managed** como proveedor de identidad y Amazon S3 como servicio de almacenamiento de AWS. Para obtener más información, consulte [Crear un servidor habilitado para SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) en la documentación de AWS Transfer Family.

**Limitaciones**
+ Este enfoque no es adecuado para la sincronización de datos prácticamente en tiempo real o en tiempo real.
+ Los datos solo se pueden mover de Db2 z/OS a Amazon S3, y no al revés.

## Arquitectura
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Pila de tecnología de origen**
+ Mainframe que ejecuta Db2 en z/OS

**Pila de tecnología de destino**
+ AWS Transfer Family
+ Amazon S3
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ Amazon Redshift

**Arquitectura de origen y destino**

El siguiente diagrama muestra el proceso de generación, extracción y transferencia de z/OS datos de Db2 en formato CSV ASCII a un bucket de S3.

![\[Data flow from corporate data center to Nube de AWS, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Se selecciona una lista de tablas para la migración de datos del catálogo de Db2.

1. La lista se usa para impulsar la generación de trabajos de descarga con las columnas numéricas y de datos en formato externo.

1. A continuación, los datos se transfieren a Amazon S3 mediante AWS Transfer Family.

1. Un trabajo de extracción, transformación y carga (ETL) de AWS Glue puede transformar los datos y cargarlos en un bucket procesado en el formato especificado, o bien AWS Glue puede introducir los datos directamente en la base de datos.

1. Amazon Athena y Amazon se QuickSight pueden usar para consultar y renderizar los datos para impulsar el análisis.

En el siguiente diagrama se muestra un flujo lógico de todo el proceso.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. El primer JCL, denominado TABNAME, usará la utilidad DSNTIAUL de Db2 para extraer y generar la lista de tablas que planea descargar de Db2. Para elegir las tablas, debe adaptar manualmente la entrada SQL para seleccionar y añadir criterios de filtro que incluyan uno o más esquemas de Db2.

1. El segundo JCL, denominado REXXEXEC, usará un esqueleto de JCL y el programa REXX proporcionado para procesar la lista de tablas creada por el JCL TABNAME y generar un JCL por nombre de tabla. Cada JCL incluirá un paso para descargar la tabla y otro paso para enviar el archivo al bucket de S3 mediante el protocolo SFTP.

1. El último paso consiste en ejecutar el JCL para descargar la tabla y transferir el archivo a AWS. Todo el proceso se puede automatizar con AWS o mediante un programador en las instalaciones.

## Tools (Herramientas)
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Servicios de AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) es un servicio interactivo de consultas que le permite analizar datos directamente en Amazon Simple Storage Service (Amazon S3) usando SQL estándar.
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) es un motor de base de datos relacional completamente administrado diseñado para la nube y compatible con MySQL y PostgreSQL.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) es un servicio de extracción, transformación y carga (ETL) completamente administrado. Ayuda a clasificar, limpiar, enriquecer y mover datos de forma fiable entre almacenes de datos y flujos de datos.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) es un servicio de inteligencia empresarial (BI) a escala de nube que le ayuda a visualizar, analizar y elaborar informes sobre sus datos en un único panel de control.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) es un servicio de almacenamiento de datos administrado de varios petabytes en la nube de AWS.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) le ayuda a configurar, utilizar y escalar una base de datos relacional en la nube de AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) es un servicio de transferencia segura que le permite transferir archivos dentro y fuera de los servicios de almacenamiento de AWS.

**Herramientas de mainframe**
+ El [Protocolo SSH File Transfer (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) es un protocolo seguro de transferencia de archivos que permite el inicio de sesión remoto y la transferencia de archivos entre servidores. SSH proporciona seguridad al cifrar todo el tráfico.
+ [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) es un programa de muestra proporcionado por IBM para descargar datos.
+ [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) es un programa de utilidades por lotes proporcionado por IBM para descargar datos con diferentes opciones de DSNTIAUL.
+ [z/OS OpenSSH es un puerto SSH](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) de software de código abierto que se ejecuta en el Servicio de Sistema Unix bajo la red del sistema operativo IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Proporciona múltiples utilidades, como ssh-keygen.
+ El script [REXX (Restructured Extended Executor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) se usa para automatizar la generación de JCL con los pasos Db2 Unload y SFTP.

**Código**

[El código de este patrón está disponible en el repositorio unloaddb2. GitHub ](https://github.com/aws-samples/unloaddb2-samples)

## Prácticas recomendadas
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Para la primera descarga, lo generado JCLs debería descargar todos los datos de la tabla.

Tras la primera descarga completa, realice descargas graduales para mejorar el rendimiento y ahorrar costos. Actualice la consulta SQL de la plantilla JCL para adaptarla a cualquier cambio en el proceso de descarga.

Puede convertir el esquema manualmente o mediante un script de Lambda con SYSPUNCH de Db2 como entrada. Para un proceso industrial, la [herramienta de conversión de esquemas (SCT) de AWS](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html) es la opción recomendada.

Por último, use un programador basado en mainframe o un programador en AWS con un agente en el mainframe para ayudar a gestionar y automatizar todo el proceso.

## Epics
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Configuración del bucket de S3
<a name="set-up-the-s3-bucket"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree el bucket de S3. | Para obtener instrucciones, consulte [Crear su primer bucket de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | AWS general | 

### Configure el servidor Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree un servidor compatible con SFTP. | Para abrir y crear un servidor SFTP en la [consola de AWS Transfer Family](https://console.aws.amazon.com/transfer/), haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | AWS general | 
| Cree un rol de IAM para Transfer Family. | Para crear un rol de AWS Identity and Access Management (IAM) que permita a Transfer Family obtener acceso a Amazon S3, siga las instrucciones de [Crear una política y rol de IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Administrador de AWS | 
| Añada un usuario gestionado por el servicio Amazon S3. | Para añadir el usuario gestionado por el servicio Amazon S3, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user) y use su ID de usuario de mainframe. | AWS general | 

### Proteja el protocolo de comunicación
<a name="secure-the-communication-protocol"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree la clave de SSH. | En el entorno de USS de su servidor principal, ejecute el siguiente comando.<pre>ssh-keygen -t rsa</pre>Cuando se le pida una contraseña, deje el campo vacío. | Desarrollador de Mainframe | 
| Proporcione los niveles de autorización correctos a la carpeta SSH y a los archivos de clave. | De forma predeterminada, las claves públicas y privadas se almacenarán en el directorio de usuario `/u/home/username/.ssh`.Debe conceder autorización 644 a los archivos de clave, y 700 a la carpeta.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Desarrollador de Mainframe | 
| Copie el contenido de la clave pública a su usuario gestionado por el servicio Amazon S3. | Para copiar el contenido de clave pública generado por USS abra la [consola de AWS Transfer Family](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Desarrollador de Mainframe | 

### Genera el JCLs
<a name="generate-the-jcls"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Genere la lista de tablas Db2 incluidas. | Proporcione el código SQL de entrada para crear una lista de las tablas destinadas a la migración de datos. Este paso requiere que especifique los criterios de selección consultando la tabla SYSIBM.SYSTABLES del catálogo de Db2 mediante una cláusula where de SQL. Los filtros se pueden personalizar para incluir un esquema específico, o bien nombres de tablas que comiencen con un prefijo concreto o en función de una marca de tiempo para la descarga gradual. El resultado se captura en un conjunto de datos secuencial físico (PS) en el mainframe. Este conjunto de datos servirá de entrada para la siguiente fase de generación de JCL.Antes de usar JCL TABNAME (puede renombrarlo si es necesario), realice los siguientes cambios:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Trabajo de extracción de lista de tablas de 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> | Desarrollador de Mainframe | 
| Modifique las plantillas de JCL. | Las plantillas JCL proporcionadas con este patrón contienen una tarjeta de trabajo y nombres de bibliotecas genéricas. Sin embargo, la mayoría de los sitios de mainframe tendrán sus propios estándares de nomenclatura para los nombres de conjuntos de datos, bibliotecas y tarjetas de trabajo. Por ejemplo, es posible que necesite una clase de trabajo específica para ejecutar trabajos de Db2. El subsistema Job Entry implementa JES2 y JES3 puede imponer cambios adicionales. Las bibliotecas de carga estándar pueden tener un primer calificador diferente a `SYS1`, que es el predeterminado de IBM. Por lo tanto, personalice las plantillas para adecuarlas a los estándares específicos de su sitio antes de ejecutarlas.Realice los siguientes cambios en el esqueleto de JCL UNLDSKEL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Descargue el esqueleto de JCL mediante 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>  | Desarrollador de Mainframe | 
| Genere el JCL de descarga masiva. | Este paso implica ejecutar un script REXX en un entorno ISPF mediante JCL. Proporcione la lista de tablas incluidas en el primer paso como entrada para la generación masiva de JCL con el nombre `TABLIST DD`. El JCL generará un nuevo JCL por nombre de tabla en un conjunto de datos particionado definido por el usuario y especificado con el nombre `ISPFILE DD`. Asigne esta biblioteca de antemano. Cada nuevo JCL tendrá dos pasos: uno para descargar la tabla de Db2 en un archivo y otro para enviar el archivo al bucket de S3.Realice los siguientes cambios en el JCL REXXEXEC (puede cambiar el nombre):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Generación masiva de trabajos JCL**<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>Antes de ejecutar el script REXX, realice los siguientes cambios:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Script ZSTEPS REXX**<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> | Desarrollador de Mainframe | 

### Ejecute el JCLs
<a name="run-the-jcls"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Realice el paso de descarga de Db2. | Tras la generación del JCL, tendrá tantas tablas JCLs como desee descargar.Esta historia emplea un ejemplo generado por el JCL para explicar la estructura y los pasos más importantes.No tiene que hacer nada. La siguiente información es solo para referencia. Si su intención es enviar las JCLs que ha generado en el paso anterior, vaya a *Enviar la LODnnnnn JCLs tarea*.Al descargar datos de Db2 usando un JCL con la utilidad DSNUTILB Db2 proporcionada por IBM, debe asegurarse de que los datos descargados no contengan datos numéricos comprimidos. Para ello, utilice el parámetro de DSNUTILB `DELIMITED`.El parámetro `DELIMITED` permite descargar los datos en formato CSV añadiendo un carácter como delimitador y comillas dobles para el campo de texto, eliminando el relleno de la columna VARCHAR y convirtiendo todos los campos numéricos a FORMATO EXTERNO, incluidos los campos de FECHA.El siguiente ejemplo muestra el aspecto del paso de descarga en el JCL generado, usando el carácter de coma como delimitador.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Desarrollador de mainframe, ingeniero de sistemas | 
| Realice el paso de SFTP. | Para usar el protocolo SFTP de un JCL, emplee la utilidad BPXBATCH. La utilidad SFTP no puede acceder directamente a los conjuntos de datos de MVS. Puede usar el comando de copia (`cp`) para copiar el archivo secuencial `&USRPFX..DB2.UNLOAD.&JOBNAME` al directorio USS, donde se convierte en `&TABNAME..csv`.Ejecute el comando `sftp` con la clave privada (`id_rsa`) y la ID de usuario de RACF como nombre de usuario para conectarse a la dirección IP de 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> | Desarrollador de mainframe, ingeniero de sistemas | 
| Envíe el LODnnnnn JCLs. | El JCL anterior generaba todas las tablas de LODnnnnn JCL que debían descargarse, transformarse en CSV y transferirse al bucket de S3.Ejecute el `submit` comando en todas las JCLs que se hayan generado. | Desarrollador de mainframe, ingeniero de sistemas | 

## Recursos relacionados
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Para obtener más información sobre las diferentes herramientas y soluciones usadas en este documento, consulte lo siguiente:
+ [Guía del usuario de z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS — Ejemplos de sentencias de control UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS — Descarga de archivos delimitados](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family: cree un servidor habilitado para SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family: trabajar con usuarios gestionados por servicios](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Información adicional
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Una vez que tenga sus datos de Db2 en Amazon S3, podrá obtener información de múltiples maneras. Como Amazon S3 se integra con los servicios de análisis de datos de AWS, puede consumir o exponer libremente estos datos de forma distribuida. Por ejemplo, puede hacer lo siguiente:
+ Cree un [lago de datos en Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) y extraiga información valiosa mediante query-in-place el uso de herramientas de análisis y aprendizaje automático sin mover los datos.
+ Iniciar una [función de Lambda](https://aws.amazon.com/lambda/) configurando un flujo de trabajo de procesamiento posterior a la carga integrado con AWS Transfer Family.
+ Desarrollar nuevos microservicios para acceder a los datos en Amazon S3 o en una [base de datos totalmente administrada](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) con [AWS Glue](https://aws.amazon.com/glue/), un servicio de integración de datos sin servidor que facilita la detección, preparación y combinación de datos para el análisis, el machine learning y el desarrollo de aplicaciones.

En un caso de uso de migración, dado que puede transferir cualquier dato del mainframe a S3, puede hacer lo siguiente:
+ Retirar la infraestructura física y crear una estrategia de archivado de datos rentable con Amazon S3 Glacier y S3 Glacier Deep Archive. 
+ Crear soluciones de copia de seguridad y restauración escalables, duraderas y seguras con Amazon S3 y otros servicios de AWS, como S3 Glacier y Amazon Elastic File System (Amazon EFS), para mejorar o reemplazar las capacidades existentes en las instalaciones.

# Transforma Easytrieve a idiomas modernos mediante el uso personalizado AWS Transform
<a name="transform-easytrieve-modern-languages"></a>

*Shubham Roy, Subramanyam Malisetty y Harshitha Shashidhar, de Amazon Web Services*

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

[https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) language-to-language Aborda los desafíos de modernizar las cargas de trabajo EZT exclusivas y exclusivas de mainframe que se utilizan habitualmente para el procesamiento de datos por lotes y la generación de informes. Este patrón reemplaza los enfoques de migración costosos, prolongados y propensos a errores, que se basan en herramientas patentadas y una experiencia poco común en mainframe, por una solución automatizada de inteligencia artificial basada en agentes que usted crea. AWS Transform

Este patrón proporciona una definición de transformación personalizada lista para usar para la transformación EZT. La definición utiliza varias entradas de transformación:
+ Reglas de negocio de EZT extraídas mediante un [AWS Transform mainframe](https://aws.amazon.com/transform/mainframe/)
+ Documentación de referencia sobre la programación de EZT
+ Código fuente de EZT
+ Conjuntos de datos de entrada y salida de mainframe

AWS Transform custom utiliza estas entradas para generar aplicaciones funcionalmente equivalentes en los lenguajes de destino modernos, como Java o Python.

El proceso de transformación utiliza funciones inteligentes de ejecución de pruebas, depuración automática y corrección iterativa para validar la equivalencia funcional con los resultados esperados. También es compatible con el aprendizaje continuo, lo que permite la definición de transformación personalizada para mejorar la precisión y la coherencia en las transformaciones sucesivas. Con este patrón, las organizaciones pueden reducir el esfuerzo y el riesgo de migración, hacer frente a la deuda técnica especializada en mainframes y modernizar las cargas de trabajo de EZT AWS para mejorar la agilidad, la fiabilidad, la seguridad y la innovación.

## Requisitos previos y limitaciones
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Requisitos previos **
+ Una cuenta activa AWS  
+ Una carga de trabajo EZT para mainframe con datos de entrada y salida 

**Limitaciones**

*Limitaciones de alcance*
+ **Compatibilidad con el lenguaje: solo se admite** la transformación de EZT a Java para este patrón de transformación específico. 
+ **Fuera de alcance**: la transformación de otros lenguajes de programación de mainframe requiere una nueva definición de transformación personalizada en formato personalizado. AWS Transform 

*Limitaciones del proceso*
+ **Dependencia de la validación**: sin los datos de salida de referencia, la transformación no se puede validar. 
+ **Lógica patentada**: las utilidades altamente específicas y desarrolladas a medida requieren documentación de usuario adicional y materiales de referencia para que el agente de IA las interprete correctamente.

*Limitaciones técnicas*
+ **Límites de servicio**: para ver los límites y las cuotas de servicio AWS Transform personalizados, consulte la [Guía AWS Transform del usuario (Cuotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html)) y la [referencia AWS general (Transformar cuotas](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html)).

**Versiones de producto**
+ AWS Transform CLI — Última versión
+ Node.js: versión 20 o posterior
+ Git — Última versión
+ Entorno de destino
  + Java: versión 17 o posterior
  + Spring Boot: la versión 3.x es el objetivo principal de las aplicaciones refactorizadas
  + Maven: versión 3.6 o posterior

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

**Pila de tecnología de origen**
+ **Sistema operativo**: IBM z/OS
+ **Lenguaje de programación** — Easytrieve, lenguaje de control de tareas (JCL)
+ **Base de datos**: IBM DB2 for z/OS, método de acceso al almacenamiento virtual (VSAM), archivos planos de mainframe

**Pila de tecnología de destino**
+ **Sistema operativo** — Amazon Linux
+ **Computación**: Amazon Elastic Compute Cloud (Amazon EC2)
+ Lenguaje de **programación**: Java
+ **Base de datos** Amazon Relational Database Service (Amazon RDS)

**Arquitectura de destino**

![\[diagrama de arquitectura de destino para usar AWS Transform custom para transformar EZT en código moderno.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Flujo de trabajo**

Esta solución utiliza un patrón de transformación de language-to-language migración AWS Transform personalizado para modernizar las aplicaciones Easytrieve (EZT) de mainframe a Java mediante un flujo de trabajo automatizado de cuatro pasos.

*Paso 1: Proporcione su código heredado a Mainframe, que: AWS Transform *
+ Analiza el código
+ Extrae la lógica empresarial de alto nivel
+ Extrae la lógica empresarial detallada.

*Paso 2: Crea una carpeta con las entradas necesarias:*
+ Reglas de negocio de EZT extraídas mediante un AWS Transform mainframe 
+ Documentación de referencia sobre la programación de EZT 
+ Código fuente de EZT
+ Conjuntos de datos de entrada y salida de mainframe

*Paso 3: Crear y ejecutar una definición de transformación personalizada*

1. Utilice la AWS Transform CLI para describir los objetivos de transformación en lenguaje natural. AWS Transform custom analiza las guías de programación BRE, código fuente y EZT para generar una definición de transformación personalizada para que los desarrolladores la revisen y aprueben.

1. A continuación, invoque la AWS Transform CLI con el código fuente del proyecto. AWS Transform custom crea planes de transformación, convierte EZT a Java tras su aprobación, genera archivos auxiliares, crea el JAR ejecutable y valida los criterios de salida.

1. Utilice el agente de validación para probar la equivalencia funcional con la salida del mainframe. El agente de autodepuración corrige los problemas de forma autónoma. Los resultados finales incluyen informes de validación de código Java y HTML validados.

**Automatización y escala**
+ Arquitectura de ejecución multimodo de Agentic AI: AWS Transform custom aprovecha la IA de Agentic con 3 modos de ejecución (conversacional, interactivo y totalmente automatizado) para automatizar tareas de transformación complejas, como el análisis de código, la refactorización, la planificación de la transformación y las pruebas.
+ Sistema de comentarios sobre el aprendizaje adaptativo: la plataforma implementa mecanismos de aprendizaje continuo mediante el análisis de muestras de código, el análisis de la documentación y la integración de los comentarios de los desarrolladores con las definiciones de transformación versionadas.
+ Arquitectura de procesamiento simultáneo de aplicaciones: el sistema permite la ejecución paralela distribuida de múltiples operaciones de transformación de aplicaciones simultáneamente en una infraestructura escalable.

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

**Servicios de AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) es un servicio de IA de agencia que se utiliza para transformar las aplicaciones EZT heredadas en lenguajes de programación modernos. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utiliza la IA agentic para ayudarlo a acelerar la modernización de las cargas de trabajo heredadas, como .NET, los mainframes y las cargas de trabajo. VMware 
+ [AWS Transform para mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) se utiliza para analizar las aplicaciones EZT heredadas a fin de extraer la lógica empresarial integrada y generar una documentación exhaustiva sobre las reglas empresariales, que incluye resúmenes de lógica, definiciones de acrónimos y bases de conocimiento estructuradas. Sirven como datos de entrada para personalizarlos. AWS Transform  
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos. Amazon S3 sirve como el servicio de almacenamiento principal de AWS Transform Custom para almacenar definiciones de transformaciones, repositorios de código y resultados de procesamiento. 
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos. La IAM proporciona un marco de seguridad AWS Transform personalizado, gestionando los permisos y el control de acceso para las operaciones de transformación.

**Otras herramientas**
+ [AWS Transform CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) es la interfaz de línea de comandos AWS Transform personalizada, que permite a los desarrolladores definir, ejecutar y administrar transformaciones de código personalizadas a través de conversaciones en lenguaje natural y modos de ejecución automatizados. AWS Transform custom admite sesiones interactivas (atx custom def exec) y transformaciones autónomas para una modernización escalable de las bases de código.
+ El sistema de control de versiones de [Git](https://git-scm.com/doc) se utiliza para la protección de sucursales, el seguimiento de cambios y las capacidades de reversión durante la aplicación de correcciones automatizadas. 
+ [Java](https://www.java.com/en/) es el lenguaje de programación y el entorno de desarrollo utilizados en este patrón. 

**Repositorio de código**

El código de este patrón está disponible en [Easytrieve to Modern Languages Transformation with AWS Transform](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) Custom on. GitHub

## Prácticas recomendadas
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Establezca una estructura de proyecto estandarizada: cree una estructura de cuatro carpetas (código fuente, bre-doc, datos de entrada y datos de salida), valide la integridad y documente el contenido antes de la transformación.
+ Utilice archivos de referencia para la validación: utilice archivos de entrada de referencia de producción, realice una comparación con la salida de referencia y acepte la tolerancia cero ante las desviaciones. byte-by-byte
+ Utilice todos los documentos de referencia disponibles: para aumentar la precisión de la transformación, proporcione todos los documentos de referencia disponibles, como los requisitos empresariales y las listas de verificación de codificación.
+ Proporcione información para mejorar la calidad: AWS Transform Custom extrae automáticamente lo aprendido de las ejecuciones de transformación (comentarios de los desarrolladores, problemas de código) y crea elementos de conocimiento para ellos. Después de cada transformación exitosa, revise los elementos de conocimiento y apruebe el que le gustaría utilizar en futuras ejecuciones. Esto mejora la calidad de las futuras transformaciones.

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

### Genere un extracto de reglas de negocio (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure AWS Transform para un mainframe. | Configure el entorno y los permisos necesarios AWS Identity and Access Management (IAM) para respaldar los flujos de trabajo de modernización del mainframe. Para obtener más información, consulte la documentación sobre [la transformación de las aplicaciones de mainframe.](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) AWS  | Desarrollador de aplicaciones | 
| Genere documentación sobre Business Rule Extract (BRE). | Extraiga la lógica empresarial del código EZT o COBOL fuente para generar documentación funcional. Para obtener instrucciones sobre cómo iniciar el proceso de extracción y revisar el resultado, consulte [Extraer la lógica empresarial](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) en la AWS Transform documentación. | Desarrollador de aplicaciones | 

### Configure una configuración AWS Transform personalizada
<a name="set-up-trn-custom"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Aprovisione la infraestructura de AWS Transform forma personalizada. | Implemente la infraestructura lista para la producción necesaria para alojar un entorno de transformación seguro. Esto incluye una instancia privada de Amazon EC2 configurada con las herramientas, los permisos de IAM y la configuración de red necesarios para convertir el código de Easytrieve. Para aprovisionar el entorno mediante la infraestructura como código (IaC), siga las instrucciones de implementación del repositorio Personalizado y transformado [a lenguajes modernos de Easytrieve](https://github.com/aws-samples/sample-mainframe-easytrieve-transform). AWS Transform GitHub  | Desarrollador de aplicaciones, administrador de AWS | 
| Prepare los materiales de entrada para la transformación. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desarrollador de aplicaciones | 

###  Crea una definición de transformación personalizada
<a name="create-a-custom-transformation-definition"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una definición de transformación. | Siga estos pasos para crear la definición de transformación personalizada para la transformación de EZT a Java con validación funcional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desarrollador de aplicaciones | 
| Publique la definición de transformación. | Tras revisar y validar la definición de transformación, puede publicarla en el registro AWS Transform personalizado con un mensaje en lenguaje natural y proporcionar un nombre de definición, por ejemplo, *EasyTrieve-to-Java-Migration*. | Desarrollador de aplicaciones | 

### Prepare los datos de referencia para su validación.
<a name="prepare-baseline-data-for-validation"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Revise el resumen de validación de la transformación. | Antes de ejecutar la transformación AWS Transform personalizada, compruebe que la `input-data` carpeta contiene los archivos de datos necesarios capturados antes de ejecutar el trabajo por lotes del mainframe. Tras ejecutar el trabajo por lotes en el ordenador central, asegúrese de que la `output-data` carpeta capture los archivos resultantes. Todos los archivos están en formato Sequential/Text/DB 2 y utilizan la codificación EBCDIC según los requisitos de ejecución.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desarrollador de aplicaciones | 
| Ejecute el trabajo de transformación personalizado. | Ejecute el comando AWS Transform CLI y elija la opción interactiva o no interactiva:<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 se valida automáticamente mediante build/test comandos durante la ejecución de la transformación. | Desarrollador de aplicaciones | 

### Valide y entregue el código probado
<a name="validate-and-deliver-tested-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Revise el resumen de validación de la transformación. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desarrollador de aplicaciones | 
| Acceda a los informes de validación. | Introduzca estos comandos para revisar los artefactos de validación detallados:<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> | Desarrollador de aplicaciones | 
| Habilite los elementos de conocimiento para un aprendizaje continuo. | Mejore la precisión de la transformación futura al incluir los elementos de conocimiento sugeridos en su configuración persistente. Tras una transformación, el agente almacena los patrones identificados y las reglas de mapeo en el directorio de sesión local. Para revisar y aplicar estos elementos aprendidos, ejecute estos comandos en su instancia de 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> | Desarrollador de aplicaciones | 

## Resolución de problemas
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| *Configuración de las rutas de entrada y salida*Los archivos de entrada no se leen o los archivos de salida no se escriben correctamente.  | Especifique la ruta completa del directorio donde se almacenan los archivos de entrada e indique claramente la ubicación en la que debe escribirse la salida. Asegúrese de que los permisos de acceso adecuados estén configurados para estos directorios. Las mejores prácticas incluyen el uso de rutas absolutas en lugar de rutas relativas para evitar la ambigüedad y la verificación de que todas las rutas especificadas existan con los permisos adecuados read/write .  | 
| *Reanudar las ejecuciones interrumpidas*La ejecución se interrumpió o debe continuar desde donde se detuvo | Puede reanudar la ejecución desde donde la dejó proporcionando el ID de conversación en el comando CLI.Busque el ID de la conversación en los registros del intento de ejecución anterior.   | 
| *Resolver las restricciones de memoria*Se produce un error de memoria insuficiente durante la ejecución. | Puede solicitar AWS Transform compartir el tamaño actual de la JVM en memoria y, a continuación, aumentar la asignación de memoria en función de esta información. Este ajuste ayuda a adaptarse a mayores requisitos de procesamiento.Considere la posibilidad de dividir los trabajos grandes en lotes más pequeños si persisten las limitaciones de memoria después de los ajustes.  | 
| *Abordar las discrepancias en los archivos de salida*Los archivos de salida no coinciden con las expectativas e AWS Transform indican que no es posible realizar más cambios. | Proporcione comentarios específicos y razones técnicas que expliquen por qué la salida actual es incorrecta. Incluya documentación técnica o empresarial adicional para respaldar sus requisitos. Este contexto detallado ayuda a AWS Transform corregir el código para generar los archivos de salida adecuados. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

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

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

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: [attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)

# Más patrones
<a name="mainframe-more-patterns-pattern-list"></a>

**Topics**
+ [Implemente las automatizaciones de seguridad para la AWS WAF solución mediante Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Replicar bases de datos de unidades centrales en AWS mediante Precisely Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)