

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

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

**Topics**
+ [Accesso Servizi AWS da IBM z/OS installando AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Esegui il backup e l'archiviazione dei dati del mainframe su Amazon S3 utilizzando BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Crea programmi COBOL Db2 usando e Modernizzazione del mainframe AWS AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Create un Micro Focus Enterprise Server PAC con Amazon EC2 Auto Scaling e Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Crea un visualizzatore di file mainframe avanzato nel cloud AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Converti e decomprimi i dati EBCDIC in ASCII su AWS usando Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Converti i file mainframe dal formato EBCDIC al formato ASCII delimitato da caratteri in Amazon S3 utilizzando AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Convertite file di dati mainframe con layout di registrazione complessi utilizzando Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Genera approfondimenti sui z/OS dati Db2 utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Implementa l'autenticazione basata su Microsoft Entra ID in un'applicazione mainframe modernizzata AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Integra il controller universale Stonebranch con la modernizzazione del mainframe AWS](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Esegui la migrazione e la replica di file VSAM su Amazon RDS o Amazon MSK utilizzando Connect from Precisly](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernizza l'applicazione CardDemo mainframe utilizzando AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernizza e implementa le applicazioni mainframe utilizzando e Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernizza la gestione dell'output del mainframe AWS utilizzando Rocket Enterprise Server e LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernizza i carichi di lavoro di stampa in batch su mainframe AWS utilizzando Rocket Enterprise Server e LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernizzazione del mainframe: attiva DevOps AWS con Rocket Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernizza i carichi di lavoro di stampa online mainframe su AWS utilizzando Micro Focus Enterprise Server e LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Sposta i file mainframe direttamente su Amazon S3 utilizzando Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Ottimizza le prestazioni della tua applicazione modernizzata AWS Blu Age](optimize-performance-aws-blu-age-modernized-application.md)
+ [Proteggi e semplifica l'accesso degli utenti in un database federativo Db2 su AWS utilizzando contesti affidabili](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Trasferisci z/OS dati Db2 su larga scala su Amazon S3 in file CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Trasforma Easytrieve in linguaggi moderni utilizzando soluzioni personalizzate AWS Transform](transform-easytrieve-modern-languages.md)
+ [Altri modelli](mainframe-more-patterns-pattern-list.md)

# Accesso Servizi AWS da IBM z/OS installando AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

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

## Riepilogo
<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/) è uno strumento open source per la gestione di più AWS servizi utilizzando i comandi in una shell a riga di comando. Con una configurazione minima, è possibile eseguire comandi da sessioni a riga di comando come il prompt dei comandi, il terminale e la shell bash per implementare funzionalità equivalenti a quelle fornite dal browser. Console di gestione AWS

Tutte le funzioni di amministrazione, gestione e accesso dell' AWS infrastruttura come servizio (IaaS) Console di gestione AWS sono disponibili nell' AWS API e. AWS CLIÈ possibile installarle AWS CLI su un z/OS mainframe IBM per accedere, gestire e interagire Servizi AWS direttamente da z/OS. AWS CLI Consente agli utenti e alle applicazioni di eseguire varie attività, come:
+ Trasferimento di file o set di dati tra lo storage di oggetti z/OS Amazon Simple Storage Service (Amazon S3) e visualizzazione del contenuto dei bucket
+ Avvio e arresto di AWS risorse diverse; ad esempio, avvio di un processo in batch in un ambiente Modernizzazione del mainframe AWS 
+ Chiamata di una AWS Lambda funzione per implementare una logica aziendale comune
+ Integrazione con servizi di intelligenza artificiale e apprendimento automatico (AI/ML) e analisi

Questo modello descrive come installare, configurare e utilizzare AWS CLI su z/OS. You can install it globally, so it's available to all z/OS utenti o a livello di utente. Il modello descrive anche come utilizzarlo AWS CLI in una sessione interattiva a riga di comando di z/OS Unix System Services (USS) o come processo batch.

## Prerequisiti e limitazioni
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Prerequisiti**
+ **Comunicazione di rete da a z/OS AWS**

  Per impostazione predefinita, AWS CLI invia le richieste Servizi AWS utilizzando HTTPS sulla porta TCP 443. Per utilizzare AWS CLI correttamente, è necessario essere in grado di effettuare connessioni in uscita sulla porta TCP 443. È possibile utilizzare uno qualsiasi dei seguenti comandi z/OS USS (alcuni di questi potrebbero non essere installati nell'ambiente in uso) per testare la connettività di rete da a: z/OS AWS

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

  Per comunicare con Cloud AWS i servizi di z/OS, è AWS CLI necessario configurare alcune credenziali con privilegi di accesso alla destinazione. Account AWS Per i comandi programmatici AWS, è possibile utilizzare le chiavi di accesso, che consistono in un ID della chiave di accesso e una chiave di accesso segreta. Se non si dispone di chiavi di accesso, sarà possibile crearle dalla Console di gestione AWS. È consigliabile non utilizzare le chiavi di accesso dell'utente Account AWS root per alcuna attività a meno che non sia richiesto l'utente root. [Create invece un nuovo utente IAM amministratore](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) e [preparatevi a**** ottenere le autorizzazioni con privilegi minimi per](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege) configurare l'utente con le chiavi di accesso. Dopo aver creato l'utente, puoi [creare un ID della chiave di accesso e una chiave di accesso segreta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) per questo utente.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python per z/OS**

   AWS CLI Richiede Python 3.8 o successivo. IBM ha consentito a Python di funzionare [con IBM Open Enterprise z/OS Python](https://www.ibm.com/products/open-enterprise-python-zos) for z/OS. [IBM Open Enterprise Python è disponibile gratuitamente tramite Shopz SMP/E oppure è possibile scaricare il file PAX dal sito Web IBM.](https://www.ibm.com/account/reg/signup?formid=urx-49465) Per istruzioni, consulta la [documentazione di installazione e configurazione](https://www.ibm.com/docs/en/python-zos) per IBM Open Enterprise Python for z/OS.

**Limitazioni**
+ **Le istruzioni di installazione fornite in questo modello sono applicabili solo alla AWS CLI versione 1.** L'ultima versione di AWS CLI è la versione 2. Tuttavia, questo modello utilizza la versione precedente perché i metodi di installazione sono diversi per la versione 2 e gli eseguibili binari disponibili per la versione 2 non sono compatibili con il z/OS sistema.

**Versioni del prodotto**
+ AWS CLI versione 1
+ Python 3.8 o versioni successive

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

**stack tecnologico**
+ Mainframe con z/OS
+ Servizi di sistema z/OS UNIX per mainframe (USS)
+ Mainframe Open MVS (OMVS): z/OS interfaccia di comando dell'ambiente shell UNIX
+ Disco mainframe, ad esempio un dispositivo di archiviazione ad accesso diretto (DASD)
+ AWS CLI

**Architettura di destinazione**

Il diagramma seguente mostra un' AWS CLI implementazione su IBM z/OS. È possibile richiamarlo AWS CLI da una sessione utente interattiva, come SSH, e da sessioni telnet. È inoltre possibile richiamarlo da un processo batch utilizzando il linguaggio di controllo del lavoro (JCL) o da qualsiasi programma in grado di chiamare un comando della shell Unix. z/OS 

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


 AWS CLI Comunica con gli Servizio AWS endpoint tramite una rete. TCP/IP Questa connessione di rete può avvenire tramite Internet o tramite una AWS Direct Connect connessione privata dal data center del cliente ai Cloud AWS data center. La comunicazione viene autenticata con AWS credenziali e crittografata. 

**Automazione e scalabilità**

Puoi esplorare le funzionalità di an Servizio AWS with the AWS CLI e sviluppare script di shell USS per gestire AWS le tue risorse da z/OS. È inoltre possibile eseguire AWS CLI comandi e script di shell dall'ambiente z/OS batch e automatizzare i processi in batch per eseguirli secondo una pianificazione specifica mediante l'integrazione con gli scheduler del mainframe. AWS CLI i comandi o gli script possono essere codificati all'interno di parametri (PARMs) e procedure (PROCs) e possono essere scalati seguendo l'approccio standard di chiamata al PARM o al PROC da diversi processi batch con parametri diversi.

## Tools (Strumenti)
<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) è uno strumento open source che consente di interagire Servizi AWS tramite comandi nella shell della riga di comando.

## Best practice
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Per motivi di sicurezza, limita le autorizzazioni di accesso alla directory USS in cui sono memorizzati i dettagli della chiave di AWS accesso. Consenti l'accesso solo agli utenti o ai programmi che utilizzano il AWS CLI.
+ Non utilizzare le chiavi di accesso utente Account AWS root per alcuna attività. [Crea invece un nuovo utente IAM amministratore](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) e configuralo con le chiavi di accesso.


| 
| 
| Gli utenti IAM dispongono di credenziali a lungo termine che presentano un rischio per la sicurezza. Per ridurre questo rischio, si consiglia di fornire a questi utenti solo le autorizzazioni necessarie per eseguire l'attività e di rimuoverli quando non sono più necessari. | 
| --- |

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

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Python 3.8 o versione successiva. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Amministratore del mainframe z/OS  | 
| Imposta le variabili di ambiente USS. | Aggiungi variabili di ambiente al profilo. È possibile aggiungerle al `/u/cliuser/.profile` file per un singolo utente (`cliuser`) o al `/etc/profile` file per tutti gli utenti.Questo modello presuppone che Python sia stato installato nella `/u/awscli/python` directory. Se la directory di installazione è diversa, aggiorna il codice di conseguenza.<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> | Amministratore del mainframe z/OS  | 
| Prova l'installazione di Python. | Esegui il comando **python**:<pre>python --version</pre>L'output dovrebbe confermare che Python 3.8 o versione successiva è installato correttamente. | Amministratore del mainframe z/OS  | 
| Verifica o installa **pip**. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Amministratore del mainframe z/OS  | 
| Installa AWS CLI la versione 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS Amministratore del mainframe | 

### Configura AWS CLI l'accesso da z/OS
<a name="configure-cli-access-from-z-os"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura le chiavi di AWS accesso, la regione predefinita e l'output. | La [AWS CLI documentazione](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) descrive diverse opzioni per configurare AWS l'accesso. Puoi scegliere una configurazione in base agli standard della tua organizzazione. Questo esempio utilizza la configurazione delle credenziali a breve termine.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Amministratore AWS, amministratore mainframe z/OS , sviluppatore z/OS mainframe | 
| Prova il. AWS CLI | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS z/OS Amministratore di mainframe, sviluppatore mainframe | 

### Opzione 1 ‒ Trasferimento interattivo di dati da USS ad Amazon S3 da una sessione USS
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica e trasferisci il file CSV di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di app, sviluppatore di mainframe z/OS  | 
| Crea un bucket S3 e carica il file CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di app, sviluppatore di mainframe z/OS  | 
| Visualizza il bucket S3 e il file caricato. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Per ulteriori informazioni sul caricamento di oggetti, consulta la sezione [Guida introduttiva ad Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) S3 nella documentazione di Amazon S3. | Informazioni generali su AWS | 
| Esegui una query SQL su una tabella Amazon Athena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)L'output della query SQL mostrerà il contenuto del file CSV. | General AWS, sviluppatore di app | 

### Opzione 2 ‒ Trasferimento di dati da USS ad Amazon S3 utilizzando batch JCL
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica il file di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di mainframe z/OS  | 
| Crea JCL in batch. | Codifica il batch JCL come segue per creare il bucket S3 di destinazione, caricare il set di dati ed elencare il contenuto del bucket. Assicurati di sostituire il nome della directory, i nomi dei file e il nome del bucket con i tuoi valori.<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> | Sviluppatore di mainframe z/OS  | 
| Invia il lavoro JCL in batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Sviluppatore di mainframe z/OS  | 
| Visualizza il set di dati caricato nel bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Informazioni generali su AWS | 

## Risorse correlate
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI documentazione della versione 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [Modernizzazione del mainframe AWS Riferimento ai comandi CLI](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [Modernizzazione del mainframe AWS](https://aws.amazon.com/mainframe-modernization/)

## Informazioni aggiuntive
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED nell'opzione ISPF 3.4 (utilità per l'elenco dei set di dati)**

![\[Visualizzazione del contenuto del set di dati in z/OS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT del processo batch inviato**

![\[Output standard dal registro dei lavori.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


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

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Esegui il backup e l'archiviazione dei dati del mainframe su Amazon S3 utilizzando 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 e Maggie Li, Amazon Web Services*

*Mikhael Liberman, software mainframe Model9*

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

Questo modello dimostra come eseguire il backup e l'archiviazione dei dati del mainframe direttamente su Amazon Simple Storage Service (Amazon S3), quindi richiamare e ripristinare tali dati sul mainframe utilizzando BMC AMI Cloud Data (precedentemente noto come Model9 Manager). Se stai cercando un modo per modernizzare la tua soluzione di backup e archiviazione nell'ambito di un progetto di modernizzazione del mainframe o per soddisfare i requisiti di conformità, questo modello può aiutarti a raggiungere questi obiettivi.

In genere, le organizzazioni che eseguono applicazioni aziendali principali su mainframe utilizzano una libreria a nastro virtuale (VTL) per eseguire il backup di archivi di dati come file e log. Questo metodo può essere costoso perché utilizza MIPS fatturabili e i dati archiviati su nastri all'esterno del mainframe sono inaccessibili. Per evitare questi problemi, è possibile utilizzare BMC AMI Cloud Data per trasferire in modo rapido ed economico i dati operativi e storici del mainframe direttamente su Amazon S3. È possibile utilizzare BMC AMI Cloud Data per eseguire il backup e l'archiviazione dei dati sfruttando TCP/IP al AWS contempo i motori IBM z Integrated Information Processor (zIIP) per ridurre costi, parallelismo e tempi di trasferimento.

## Prerequisiti e limitazioni
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ BMC AMI Cloud Data con una chiave di licenza valida
+ Connettività TCP/IP tra il mainframe e AWS
+ Un ruolo AWS Identity and Access Management (IAM) per l' read/write accesso a un bucket S3
+ Accesso ai prodotti di sicurezza mainframe (RACF) per eseguire i processi BMC AMI Cloud
+ Un z/OS agente BMC AMI Cloud (Java versione 8 a 64 bit SR5 FP16 o successiva) con porte di rete disponibili, regole firewall che consentono l'accesso ai bucket S3 e un file system dedicato z/FS 
+ [Requisiti](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) soddisfatti per il server di gestione BMC AMI Cloud

**Limitazioni**
+ BMC AMI Cloud Data archivia i dati operativi in un database PostgreSQL che viene eseguito come contenitore Docker sulla stessa istanza Amazon Elastic Compute Cloud (Amazon) del server di gestione. EC2 Amazon Relational Database Service (Amazon RDS) non è attualmente supportato come backend per BMC AMI Cloud Data. [Per ulteriori informazioni sugli ultimi aggiornamenti del prodotto, consulta What's New?](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) nella documentazione BMC.
+ Questo modello esegue il backup e l'archiviazione solo dei dati z/OS del mainframe. BMC AMI Cloud Data esegue il backup e l'archiviazione solo dei file mainframe.
+ Questo modello non converte i dati in formati aperti standard come JSON o CSV. Utilizza un servizio di trasformazione aggiuntivo come [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (precedentemente noto come Model9 Gravity) per convertire i dati in formati aperti standard. Le applicazioni native del cloud e gli strumenti di analisi dei dati possono accedere ai dati dopo che sono stati scritti nel cloud.

**Versioni del prodotto**
+ BMC AMI Cloud Data versione 2.x

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

**Stack tecnologico di origine**
+ Mainframe con z/OS
+ File mainframe come set di dati e file z/OS UNIX System Services (USS)
+ Disco mainframe, ad esempio un dispositivo di archiviazione ad accesso diretto (DASD)
+ Nastro mainframe (libreria di nastri virtuale o fisica)

**Stack tecnologico Target**
+ Simple Storage Service (Amazon S3)
+  EC2 Istanza Amazon in un cloud privato virtuale (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Architettura Target**

Il diagramma seguente mostra un'architettura di riferimento in cui gli agenti software BMC AMI Cloud Data su un mainframe gestiscono i processi di backup e archiviazione dei dati legacy che archiviano i dati in Amazon S3.

![\[Agenti software BMC AMI Cloud Data su un mainframe che guidano i processi di backup e archiviazione dei dati legacy\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli agenti software BMC AMI Cloud Data vengono eseguiti su partizioni logiche mainframe (). LPARs Gli agenti software leggono e scrivono i dati del mainframe da DASD o nastro direttamente su Amazon S3 tramite TCP/IP.

1. AWS Direct Connect configura una connessione fisica e isolata tra la rete locale e. AWS Per una maggiore sicurezza, utilizza anche una site-to-site VPN Direct Connect per crittografare i dati in transito.

1. Il bucket S3 archivia i file mainframe come dati di storage di oggetti e gli agenti BMC AMI Cloud Data comunicano direttamente con i bucket S3. I certificati vengono utilizzati per la crittografia HTTPS di tutte le comunicazioni tra l'agente e Amazon S3. La crittografia dei dati di Amazon S3 viene utilizzata per crittografare e proteggere i dati archiviati.

1. I server di gestione BMC AMI Cloud Data funzionano come contenitori Docker sulle EC2 istanze. Le istanze comunicano con gli agenti in esecuzione su mainframe LPARs e bucket S3.

1. Amazon EFS è montato su EC2 istanze attive e passive per condividere lo storage Network File System (NFS). Questo serve a garantire che i metadati relativi a una policy creata sul server di gestione non vadano persi in caso di failover. In caso di failover da parte del server attivo, è possibile accedere al server passivo senza alcuna perdita di dati. In caso di guasto del server passivo, è possibile accedere al server attivo senza alcuna perdita di dati.

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

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ti aiuta a creare e configurare file system condivisi in Cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) S3) è un servizio di storage di oggetti basato sul cloud che consente di archiviare, proteggere e recuperare quasi ogni quantità di dati.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)collega la rete interna a una AWS Direct Connect posizione tramite un cavo Ethernet standard in fibra ottica. Con questa connessione, è possibile creare interfacce virtuali direttamente verso i AWS servizi pubblici ignorando i provider di servizi Internet nel percorso di rete.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

**Strumenti BMC**
+ Il [server di gestione BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) è un'applicazione GUI che viene eseguita come contenitore Docker su Amazon Linux Amazon Machine Image (AMI) per Amazon. EC2 Il server di gestione offre la funzionalità per gestire le attività di BMC AMI Cloud come la creazione di report, la creazione e la gestione di policy, l'esecuzione di archivi e l'esecuzione di backup, richiami e ripristini.
+ [L'agente BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) viene eseguito su un mainframe LPAR locale che legge e scrive i file direttamente nell'archivio di oggetti utilizzando TCP/IP. Un'attività avviata viene eseguita su un mainframe LPAR ed è responsabile della lettura e della scrittura dei dati di backup e archiviazione da e verso Amazon S3.
+ [BMC AMI Cloud Mainframe Command Line Interface (M9CLI)](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) fornisce una serie di comandi per eseguire azioni BMC AMI Cloud direttamente da TSO/E o in batch, senza la dipendenza dal server di gestione.

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

### Crea un bucket S3 e una policy IAM
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per archiviare i file e i volumi di cui desideri eseguire il backup e l'archiviazione dal tuo ambiente mainframe. | Informazioni generali su AWS | 
| Creare una policy IAM | Tutti i server e gli agenti di gestione BMC AMI Cloud richiedono l'accesso al bucket S3 creato nel passaggio precedente.Per concedere l'accesso richiesto, crea la seguente policy 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> | Informazioni generali su AWS | 

### Ottieni la licenza del software BMC AMI Cloud e scarica il software
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni una licenza software BMC AMI Cloud. | Per ottenere una chiave di licenza software, contatta il [team BMC AMI Cloud](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). L'output del z/OS `D M=CPU` comando è necessario per generare una licenza. | Costruisci piombo | 
| Scarica il software BMC AMI Cloud e il codice di licenza. | Ottieni i file di installazione e la chiave di licenza seguendo le istruzioni nella documentazione [BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html). | Amministratore dell'infrastruttura mainframe | 

### Installare l'agente software BMC AMI Cloud sul mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installare l'agente software BMC AMI Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore dell'infrastruttura mainframe | 

### Configurare un server di gestione BMC AMI Cloud su un'istanza EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea istanze Amazon EC2 Linux 2. | Avvia due istanze di Amazon EC2 Linux 2 in diverse zone di disponibilità seguendo le istruzioni del [Passaggio 1: Avvia un'istanza](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) nella EC2 documentazione di Amazon.L'istanza deve soddisfare i seguenti requisiti hardware e software consigliati:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Per ulteriori informazioni, consulta la documentazione [BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Architetto del cloud, amministratore del cloud | 
| Crea un file system Amazon EFS. | Crea un file system Amazon EFS seguendo le istruzioni della [Fase 1: Crea il tuo file system Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) nella documentazione di Amazon EFS.Durante la creazione del file system, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore del cloud, architetto del cloud | 
| Installa Docker e configura il server di gestione. | **Connect alle tue EC2 istanze:**Connettiti alle tue EC2 istanze seguendo le istruzioni di [Connect to your Linux istance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) nella EC2 documentazione di Amazon.**Configura le tue EC2 istanze:**Per ogni EC2 istanza, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Architetto del cloud, amministratore del cloud | 
| Installa il software del server di gestione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Per risolvere i problemi, accedi ai log archiviati nella cartella. `/data/model9/logs/`**** [Per ulteriori informazioni, consulta la documentazione BMC.](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html) | Architetto del cloud, amministratore del cloud | 

### Aggiungere un agente e definire una politica di backup o archiviazione sul server di gestione BMC AMI Cloud
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi un nuovo agente. | Prima di aggiungere un nuovo agente, conferma quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)È necessario creare un agente sul server di gestione prima di definire qualsiasi politica di backup e archiviazione. Per creare l'agente, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Dopo aver creato l'agente, vedrai lo stato della **connessione** rispetto all'object storage e all'agente mainframe in una nuova finestra che appare nella tabella. | Amministratore o sviluppatore dello storage mainframe | 
| Crea una politica di backup o archiviazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore o sviluppatore dello storage mainframe | 

### Esegui la politica di backup o archiviazione dal server di gestione
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la politica di backup o archiviazione. | Esegui la politica di backup o archiviazione dei dati creata in precedenza dal server di gestione manualmente o automaticamente (in base a una pianificazione). Per eseguire la policy manualmente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore o sviluppatore dello storage mainframe | 
| Ripristina la politica di backup o archiviazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Amministratore o sviluppatore dello storage mainframe | 

### Esegui la policy di backup o archiviazione dal mainframe
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la politica di backup o archiviazione utilizzando M9CLI. | Utilizza M9CLI per eseguire processi di backup e ripristino da TSO/E, REXX o tramite JCLs senza configurare regole sul server di gestione BMC AMI Cloud.**Utilizzando TSO/E:**Se usi TSO/E, assicurati che sia concatenato a. `M9CLI REXX` `TSO` Per eseguire il backup di un set di dati tramite TSO/E, usa il comando. `TSO M9CLI BACKDSN <DSNAME>`Per ulteriori informazioni sui comandi M9CLI, vedere il [riferimento CLI](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) nella documentazione BMC.**Utilizzando: JCLs**Per eseguire la politica di backup e archiviazione utilizzando JCLs, esegui il `M9CLI` comando.**Utilizzo delle operazioni in batch:**L'esempio seguente mostra come archiviare un set di dati eseguendo il `M9CLI` comando in batch:<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> | Amministratore o sviluppatore dello storage mainframe | 
| Esegui la politica di backup o archiviazione nel batch JCL. | **BMC AMI Cloud fornisce una routine JCL di esempio chiamata M9SAPIJ.** È possibile personalizzare **M9SAPIJ** per eseguire una politica specifica creata sul server di gestione con un JCL. Questo processo può anche far parte di un programma di pianificazione in batch per l'esecuzione automatica dei processi di backup e ripristino.Il processo batch prevede i seguenti valori obbligatori:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)È inoltre possibile modificare altri valori seguendo le istruzioni sul job di esempio. | Amministratore o sviluppatore dello storage mainframe | 

## Risorse correlate
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Modernizzazione del mainframe con AWS (documentazione](https://aws.amazon.com/mainframe/) AWS)
+ In che [modo il backup su cloud per mainframe riduce i costi con Model9 e AWS (blog di AWS](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/) Partner Network)
+ [Come abilitare l'analisi dei dati mainframe su AWS utilizzando Model9](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/) (AWS Partner Network Blog)
+ [Raccomandazioni sulla resilienza di AWS Direct Connect](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) (documentazione AWS)
+ [Documentazione BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) (sito web BMC)

# Crea programmi COBOL Db2 usando e Modernizzazione del mainframe AWS AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

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

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

**Nota**  
Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Questo modello spiega come creare un semplice AWS CodeBuild progetto per precompilare e associare i programmi COBOL Db2 utilizzando gli strumenti Replatform. Modernizzazione del mainframe AWS Ciò consente la distribuzione e l'esecuzione di questi programmi nell'ambiente di runtime Replatform. Modernizzazione del mainframe AWS 

COBOL, un linguaggio di programmazione orientato al business, alimenta molte applicazioni critiche grazie alla sua affidabilità e leggibilità. IBM Db2, un sistema di gestione di database relazionali, gestisce grandi volumi di dati in modo efficiente e si integra con i programmi COBOL tramite SQL. Insieme, COBOL e Db2 costituiscono la spina dorsale delle operazioni cruciali in settori come quello finanziario e governativo, nonostante l'emergere di nuove tecnologie.

La migrazione dei componenti COBOL e Db2 dall'ambiente mainframe ad altre piattaforme comporta sfide quali la compatibilità della piattaforma, la complessità dell'integrazione, la migrazione dei dati e l'ottimizzazione delle prestazioni. Lo spostamento di questi componenti critici richiede un'attenta pianificazione, competenze tecniche e risorse per garantire una migrazione senza intoppi pur mantenendo affidabilità e funzionalità.

Il Modernizzazione del mainframe AWS servizio fornisce strumenti e risorse per ripiattaforma applicazioni e database mainframe da eseguire sull' AWS infrastruttura, come le istanze Amazon Elastic Compute Cloud (Amazon EC2). Ciò comporta lo spostamento dei carichi di lavoro mainframe sul cloud senza importanti modifiche al codice.

Il processo di precompilazione e associazione di Db2 è essenziale per ottimizzare le prestazioni e l'affidabilità delle applicazioni di database. La precompilazione trasforma le istruzioni SQL incorporate in codice eseguibile, riducendo il sovraccarico di runtime e migliorando l'efficienza. Il processo di associazione collega il codice precompilato con le strutture del database, facilitando i percorsi di accesso e l'ottimizzazione delle query. Questo processo garantisce l'integrità dei dati, migliora la reattività delle applicazioni e protegge dalle vulnerabilità di sicurezza. Le applicazioni correttamente precompilate e associate riducono al minimo il consumo di risorse, migliorano la scalabilità e mitigano i rischi degli attacchi di SQL injection.

## Prerequisiti e limitazioni
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Prerequisiti**
+ Un accesso Account AWS alla console a livello amministrativo.
+ Un sistema di database IBM Db2, ad esempio IBM Db2 for z/OS o Db2 per Linux, Unix e Windows (LUW).
+ [Il software IBM Data Server Client, disponibile per il download dal sito Web IBM.](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers) Per ulteriori informazioni, consulta i tipi di [client IBM Data Server e Driver Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Un programma COBOL Db2 da compilare e associare. In alternativa, questo modello fornisce un programma di esempio di base che è possibile utilizzare.
+ Un cloud privato virtuale (VPC) AWS con una rete privata. Per informazioni sulla creazione di un VPC, consulta la documentazione di [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Un repository per il controllo del codice sorgente come o. GitHub GitLab

**Limitazioni**
+ Per le AWS CodeBuild quote, vedere [Quote](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) per. AWS CodeBuild
+ Alcune Servizi AWS non sono disponibili in tutte. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta la pagina [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

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

**Stack tecnologico di origine**

Lo stack di origine include:
+ Programmi COBOL che utilizzano un database Db2 per archiviare i dati
+ Compilatore IBM COBOL e Db2 per precompilatore z/OS 
+ Altre parti della configurazione del mainframe, come il file system, il gestore delle transazioni e lo spool

**Stack tecnologico Target**

L'approccio di questo modello funziona per due opzioni: spostare i dati da Db2 for z/OS a Db2 per LUW o rimanere su Db2 per z/OS. L'architettura di destinazione include:
+ Programmi COBOL che utilizzano un database Db2 per archiviare i dati
+ Modernizzazione del mainframe AWS Strumenti di compilazione per ripiattaforme
+ AWS CodeBuild come infrastruttura per creare l'applicazione
+ Altre Cloud AWS risorse come Amazon Linux

**Architettura Target**

![\[Architettura per la creazione di programmi COBOL Db2 su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


Il diagramma illustra quanto segue:

1. L'utente carica il proprio codice in un repository di controllo del codice sorgente come o. GitHub GitLab

1. AWS CodePipeline rileva la modifica e ottiene il codice dal repository.

1. CodePipeline avvia AWS CodeBuild e invia il codice.

1. CodeBuild segue le istruzioni contenute nel `buildspec.yml` modello (fornito nella sezione [Informazioni aggiuntive](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) per:

   1. Ottieni l'IBM Data Server Client da un bucket Amazon Simple Storage Service (Amazon S3).

   1. Installa e configura IBM Data Server Client.

   1. Recupera le credenziali Db2 da. Gestione dei segreti AWS

   1. Connettiti al server Db2.

   1. Precompila, compila e associa il programma COBOL.

   1. Salva i prodotti finiti in un bucket S3 per utilizzarli. AWS CodeDeploy 

1. CodePipeline inizia. CodeDeploy

1. CodeDeploy coordina i suoi agenti, che sono già installati negli ambienti di runtime. Gli agenti recuperano l'applicazione da Amazon S3 e la installano in base alle istruzioni contenute in. `appspec.yml`

Per semplificare le cose e concentrarsi sulla compilazione, le istruzioni riportate in questo schema coprono i passaggi da 1 a 4 ma non includono l'implementazione del programma COBOL Db2.

**Automazione e scalabilità**

Per semplicità, questo modello descrive come fornire le risorse manualmente. Tuttavia, sono disponibili numerose opzioni di automazione, come CloudFormation, e HashiCorp Terraform AWS Cloud Development Kit (AWS CDK), che automatizzano queste attività. Per ulteriori informazioni, consulta la documentazione [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)e [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

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

**Servizi AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)è un servizio di compilazione completamente gestito che consente di compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per la distribuzione.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatizza le distribuzioni su Amazon EC2 o su istanze AWS Lambda , funzioni o servizi Amazon Elastic Container Service (Amazon ECS) in locale.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)ti aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.
+ [Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornisce strumenti e risorse per aiutarvi a pianificare e implementare la migrazione e la modernizzazione dai mainframe agli ambienti di runtime AWS gestiti.

**Altri strumenti**
+ **Immagine Amazon ECR per gli strumenti Modernizzazione del mainframe AWS Replatform**. Per compilare un'applicazione COBOL, devi iniziare CodeBuild utilizzando un'immagine Amazon Elastic Container Registry (Amazon ECR) che contiene gli strumenti Replatform: Modernizzazione del mainframe AWS 

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

  [https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html)
+ [Il software IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) è essenziale per precompilare e associare i programmi COBOL Db2. CodeBuild Funge da ponte tra il compilatore COBOL e Db2.

## Best practice
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Non tutti i programmi COBOL si affidano a Db2 come livello di persistenza dei dati. Assicuratevi che le direttive di compilazione per l'accesso a Db2 siano applicate solo ai programmi COBOL progettati specificamente per interagire con Db2. Implementate una logica per distinguere tra i programmi COBOL Db2 e i programmi COBOL che non utilizzano Db2.
+ Ti consigliamo di evitare di compilare programmi che non sono stati modificati. Implementa un processo per identificare quali programmi richiedono la compilazione.

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

### Crea l'infrastruttura cloud
<a name="create-the-cloud-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3 per ospitare il client IBM Data Server e gli artefatti della pipeline. | È necessario configurare un bucket S3 per (a) caricare IBM Data Server Client, (b) archiviare il codice dal repository e (c) archiviare i risultati del processo di compilazione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per informazioni su come creare un bucket S3, consulta la documentazione di [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Informazioni generali su AWS | 
| Carica l'IBM Data Server Client nel bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Informazioni generali su AWS | 
| Crea un Gestione dei segreti AWS segreto per le tue credenziali Db2. | Per creare un segreto per archiviare in modo sicuro le tue credenziali: DB2 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per ulteriori informazioni sulla creazione di segreti, consulta la [documentazione di Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | Informazioni generali su AWS | 
| Verifica che Db2 sia accessibile dalla sottorete VPC. | AWS CodeBuild necessita di una connessione al server Db2 in modo che il Data Server Client possa eseguire operazioni di precompilazione e associazione. Assicurati che CodeBuild possa raggiungere il server Db2 tramite una connessione sicura.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Amministratore di rete, General AWS | 

### Crea gli artefatti dell'applicazione
<a name="create-the-application-artifacts"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create la risorsa COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Sviluppatore di app | 
| Crea il file `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Connect il tuo repository a. CodePipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Avrai bisogno dell'Amazon Resource Name (ARN) per la connessione quando crei la policy AWS Identity and Access Management (IAM) per una CodePipeline fase successiva. | AWS DevOps | 

### Configurazione delle autorizzazioni
<a name="configure-permissions"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una policy IAM per CodeBuild. | Il CodeBuild progetto richiede l'accesso ad alcune risorse, tra cui Secrets Manager e Amazon S3.Per configurare le autorizzazioni necessarie:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per ulteriori informazioni sulla creazione di policy IAM, consulta la [documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | Informazioni generali su AWS | 
| Crea un ruolo IAM per CodeBuild. | Per rendere disponibili le politiche di sicurezza CodeBuild, devi configurare un ruolo IAM.Per creare questo ruolo:1. Sulla [console IAM](https://console.aws.amazon.com/iam), nel riquadro di navigazione, scegli **Ruoli**, **Crea ruolo**.3. Per il **tipo di entità affidabile**, mantieni l'**Servizio AWS**impostazione predefinita.4. Per **Caso d'uso**, seleziona il CodeBuild servizio, quindi scegli **Avanti**.4. Nell'elenco delle policy IAM disponibili, individua la policy per cui hai creato CodeBuild, quindi scegli **Avanti** per associarla al ruolo.5. Specificate un nome per il ruolo e scegliete **Crea ruolo** per salvarlo per riferimenti futuri in CodeBuild.Per ulteriori informazioni sulla creazione di un ruolo IAM per un Servizio AWS, consulta la [documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | Informazioni generali su AWS | 
| Crea una policy IAM per CodePipeline. | La AWS CodePipeline pipeline richiede l'accesso ad alcune risorse, tra cui il repository di codice e Amazon S3.Ripeti i passaggi forniti in precedenza per CodeBuild creare una policy IAM per CodePipeline (nel passaggio 2, scegli **CodePipeline**invece di). **CodeBuild** | AWS DevOps | 
| Crea un ruolo IAM per CodePipeline. | Per rendere disponibili le politiche di sicurezza CodePipeline, devi configurare un ruolo IAM.Per creare questo ruolo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compila e associa il programma COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una CodePipeline pipeline e un CodeBuild progetto. | Per creare una CodePipeline pipeline e il CodeBuild progetto che compila e associa il programma COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Esamina l'output. | Verifica il successo della build esaminando i log di CodePipeline compilazione. | AWS DevOps | 
| Controlla i risultati in Db2. | Verifica la versione del pacchetto nella tabella 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 versione deve corrispondere all'ID di CodeBuild build, che è `CDB2SMP` nel nostro esempio:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## risoluzione dei problemi
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Occasionalmente, la AWS console cambia regione quando ci si sposta da un servizio all'altro. | Assicurati di verificare la selezione Regione AWS ogni volta che passi da un servizio all'altro.Il Regione AWS selettore si trova nell'angolo superiore destro della finestra della console. | 
| Può essere difficile identificare i problemi di connettività di Db2. CodeBuild | Per risolvere i problemi di connettività, aggiungi il seguente comando DB2 connect al file. `buildspec.yml` Questa aggiunta consente di eseguire il debug e risolvere i problemi di connettività.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| A volte, il riquadro dei ruoli nella console IAM non mostra immediatamente la policy IAM che hai creato. | Se riscontri un ritardo, aggiorna lo schermo per visualizzare le informazioni più recenti. | 

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

**Documentazione IBM**
+ [Client e tipi di driver IBM Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Scarica i tipi di client e driver IBM Data Server](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentazione**
+ [Guida per l'utente di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guida per l'utente](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [Modernizzazione del mainframe AWS Guida per l'utente](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [Gestione dei segreti AWS Guida per l'utente](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guida per l'utente](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guida per l'utente** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Informazioni aggiuntive
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild policy**

Sostituisci i segnaposto`<RegionID>`,, `<AccountID>` `<SubnetARN>``<BucketARN>`, e `<DB2CredSecretARN>` con i tuoi valori.

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

Sostituisci i segnaposto `<BucketARN>` e `<ConnectionARN>` con i tuoi valori.

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

Sostituisci il `<your-bucket-name>` segnaposto con il nome effettivo del bucket 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
```

# Create un Micro Focus Enterprise Server PAC con Amazon EC2 Auto Scaling e Systems Manager
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager"></a>

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

*Peter Woods, Nessuno*

*Abraham Rondon, Micro Focus*

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

Questo modello introduce un'architettura scalabile per applicazioni mainframe che utilizza [Micro Focus Enterprise Server in Scale-Out Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html) e un gruppo Amazon Elastic Compute Cloud (Amazon) EC2 Auto Scaling su Amazon Web Services ().AWS La soluzione è completamente automatizzata con AWS Systems Manager i ganci del ciclo di vita di Amazon EC2 Auto Scaling. Utilizzando questo modello, è possibile configurare le applicazioni mainframe online e in batch per ottenere un'elevata resilienza grazie alla scalabilità interna e orizzontale automatica in base alle esigenze di capacità. 

**Nota**  
Questo modello è stato testato con Micro Focus Enterprise Server versione 6.0. Per la versione 8, consulta [Configurare Micro Focus Runtime (su Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Prerequisiti e limitazioni
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Software e licenza Micro Focus Enterprise Server. Per ulteriori informazioni, contattate il [reparto vendite di Micro Focus](https://www.microfocus.com/en-us/contact/contactme).
+ Comprensione del concetto di ricostruzione e fornitura di un'applicazione mainframe da eseguire in Micro Focus Enterprise Server. Per una panoramica di alto livello, consultate la scheda tecnica di [Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Comprensione dei concetti di Micro Focus Enterprise Server scale-out Performance and Availability Cluster. Per ulteriori informazioni, consultate la documentazione di [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Comprensione del concetto generale di applicazione mainframe DevOps con integrazione continua (CI). Per un modello di guida AWS prescrittiva sviluppato da AWS e Micro Focus, vedi [Modernizzazione del mainframe: DevOps ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) on with Micro Focus. AWS 

**Nota**  
Questo modello è stato testato con Micro Focus Enterprise Server versione 6. Per la versione 8, consulta [Configurare Micro Focus Runtime (su Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Limitazioni**
+ Per un elenco delle piattaforme supportate da Micro Focus Enterprise Server, consultate la [scheda tecnica di Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Gli script e i test utilizzati in questo modello si basano su Amazon EC2 Windows Server 2019; altre versioni e sistemi operativi di Windows Server non sono stati testati per questo modello.
+ Il modello si basa su Micro Focus Enterprise Server 6.0 per Windows; le versioni precedenti o successive non sono state testate nello sviluppo di questo modello.

**Versioni del prodotto**
+ Micro Focus Enterprise Server 6.0
+ Windows Server 2019

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

Nell'ambiente mainframe convenzionale, è necessario fornire l'hardware per ospitare le applicazioni e i dati aziendali. Per far fronte e soddisfare i picchi di richieste stagionali, mensili, trimestrali o addirittura inaspettate o senza precedenti, gli utenti mainframe devono *scalare* orizzontalmente acquistando capacità di storage e di elaborazione aggiuntive. L'aumento del numero di risorse di archiviazione e capacità di elaborazione migliora le prestazioni complessive, ma la scalabilità non è lineare.

Questo non è il caso quando inizi ad adottare un modello di consumo on demand su AWS utilizzando Amazon Auto EC2 Scaling e Micro Focus Enterprise Server. Le sezioni seguenti spiegano in dettaglio come creare un'architettura applicativa mainframe completamente automatizzata e scalabile utilizzando Micro Focus Enterprise Server Scale-Out Performance and Availability Cluster (PAC) con un gruppo Amazon Auto Scaling. EC2  

**Architettura di scalabilità automatica Micro Focus Enterprise Server**

Innanzitutto, è importante comprendere i concetti di base di Micro Focus Enterprise Server. Questo ambiente fornisce un ambiente di distribuzione x86 compatibile con il mainframe per le applicazioni tradizionalmente eseguite sul mainframe IBM. Fornisce esecuzioni online e in batch e un ambiente di transazione che supporta quanto segue:
+ IBM COBOL
+ IBM PL/I
+ lavori batch IBM JCL
+ Transazioni IBM CICS e IMS TM
+ Servizi Web
+ Utilità batch comuni, tra cui SORT

Micro Focus Enterprise Server consente l'esecuzione delle applicazioni mainframe con modifiche minime. I carichi di lavoro mainframe esistenti possono essere spostati su piattaforme x86 e modernizzati per sfruttare le estensioni native di AWS Cloud per una rapida espansione verso nuovi mercati o aree geografiche. 

[Modernizzazione del modello AWS Prescriptive Guidance: su DevOps AWS con Micro Focus](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) ha introdotto l'architettura per accelerare lo sviluppo e il test di applicazioni mainframe su AWS utilizzando Micro Focus Enterprise Developer ed Enterprise Test Server con AWS e AWS. CodePipeline CodeBuild Questo modello si concentra sulla distribuzione di applicazioni mainframe nell'ambiente di produzione AWS per ottenere disponibilità e resilienza elevate.

In un ambiente di produzione mainframe, potresti aver configurato IBM Parallel Sysplex nel mainframe per ottenere prestazioni e disponibilità elevate. Per creare un'architettura scalabile simile a Sysplex, Micro Focus ha introdotto il Performance and Availability Cluster (PAC) su Enterprise Server. PACs supporta la distribuzione di applicazioni mainframe su più regioni Enterprise Server gestite come un'unica immagine e scalabili in istanze Amazon EC2 . PACs supportano anche prestazioni prevedibili delle applicazioni e velocità di trasmissione del sistema su richiesta. 

In un PAC, più istanze di Enterprise Server funzionano insieme come un'unica entità logica. Il guasto di un'istanza di Enterprise Server, pertanto, non interromperà la continuità aziendale poiché la capacità è condivisa con altre regioni, mentre le nuove istanze vengono avviate automaticamente utilizzando funzionalità standard del settore come un gruppo Amazon Auto EC2 Scaling. Ciò rimuove i singoli punti di errore, migliorando la resilienza ai problemi hardware, di rete e delle applicazioni. Le istanze scalabili di Enterprise Server possono essere gestite e gestite utilizzando Enterprise Server Common Web Administration (ESCWA) APIs, che semplifica la manutenzione operativa e la facilità di manutenzione degli Enterprise Server. 

**Nota**  
Micro Focus consiglia che il [Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) sia composto da almeno tre aree Enterprise Server in modo da non compromettere la disponibilità nel caso in cui un'area Enterprise Server si guasti o richieda manutenzione.

La configurazione PAC richiede un servizio di gestione di database relazionali (RDBMS) supportato per gestire il database regionale, un database interregionale e database di archivi dati opzionali. È necessario utilizzare un database di archivio dati per gestire i file VSAM (Virtual Storage Access Method) utilizzando il supporto Micro Focus Database File Handler per migliorare la disponibilità e la scalabilità. Sono supportati i RDBMSs seguenti:
+ Microsoft SQL Server 2009 R2 e versioni successive
+ PostgreSQL 10.x, inclusa l'edizione compatibile con Amazon Aurora PostgreSQL
+ DB2 10.4 e versioni successive

Per i dettagli sui requisiti RDBMS e PAC supportati, vedere [Micro Focus Enterprise Server - Prerequisiti e [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html) -](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) Configurazione PAC consigliata.

Il diagramma seguente mostra una configurazione tipica dell'architettura AWS per un Micro Focus PAC. 

![\[Un'architettura a tre zone di disponibilità con cinque passaggi descritti in una tabella dopo il diagramma.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **Componente** | **Descrizione** | 
| --- |--- |--- |
| 1 | Gruppo di scalabilità automatica delle istanze di Enterprise Server | Configura un gruppo di scalabilità automatico distribuito con istanze di Enterprise Server in un PAC. Il numero di istanze può essere scalato orizzontalmente o avviato dagli CloudWatch allarmi di Amazon utilizzando i parametri. CloudWatch  | 
| 2 | Gruppo di scalabilità automatica delle istanze ESCWA di Enterprise Server  | Configura un gruppo di ridimensionamento automatico distribuito con Enterprise Server Common Web Administration (ESCWA). ESCWA fornisce la gestione dei cluster. APIs   I server ESCWA fungono da piano di controllo per aggiungere o rimuovere Enterprise Server e avviare o arrestare le aree Enterprise Server nel PAC durante gli eventi di scalabilità automatica delle istanze di Enterprise Server.   Poiché l'istanza ESCWA viene utilizzata solo per la gestione PAC, il suo schema di traffico è prevedibile e il requisito di capacità desiderato per la scalabilità automatica può essere impostato su 1.  | 
| 3 | Istanza Amazon Aurora in una configurazione Multi-AZ | Configura un sistema di gestione di database relazionali (RDBMS) per ospitare file di dati utente e di sistema da condividere tra le istanze di Enterprise Server. | 
| 4 | Istanza e replica Amazon ElastiCache (Redis OSS) | Configura un'istanza principale ElastiCache (Redis OSS) e almeno una replica per ospitare i dati degli utenti e fungere da archivio scalabile (SOR) per le istanze di Enterprise Server. È possibile configurare uno o più [repository a scalabilità orizzontale per archiviare tipi specifici di](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) dati utente.   Enterprise Server utilizza un database Redis NoSQL come SOR[, un requisito](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html) per mantenere l'integrità PAC. | 
| 5 | Network Load Balancer | Configura un sistema di bilanciamento del carico, fornendo un nome host alle applicazioni per la connessione ai servizi forniti dalle istanze di Enterprise Server (ad esempio, l'accesso all'applicazione tramite un emulatore 3270). | 

Questi componenti costituiscono il requisito minimo per un cluster PAC Micro Focus Enterprise Server. La sezione successiva tratta l'automazione della gestione dei cluster.

**Utilizzo di AWS Systems Manager Automation per la scalabilità**

Dopo la distribuzione del cluster PAC su AWS, il PAC viene gestito tramite Enterprise Server Common Web Administration (ESCWA). APIs 

Per automatizzare le attività di gestione dei cluster durante gli eventi di scalabilità automatica, puoi utilizzare i runbook di Systems Manager Automation e Amazon Auto EC2 Scaling con Amazon. EventBridge L'architettura di queste automazioni è mostrata nel diagramma seguente.

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


 


| 
| 
|  | **Componente** | **Descrizione** | 
| --- |--- |--- |
| 1 | Gancio automatico del ciclo di vita della scalabilità | Configura gli hook automatici del ciclo di vita della scalabilità e invia notifiche ad Amazon EventBridge quando vengono lanciate nuove istanze e le istanze esistenti vengono terminate nel gruppo di scalabilità automatica. | 
| 2 | Amazon EventBridge | Imposta una EventBridge regola Amazon per indirizzare gli eventi di scalabilità automatica verso le destinazioni del runbook di Systems Manager Automation. | 
| 3 | Runbook di automazione | Configura i runbook di Systems Manager Automation per eseguire PowerShell gli script di Windows e richiama ESCWA APIs per gestire il PAC. *Per alcuni esempi, vedere la sezione Informazioni aggiuntive.* | 
| 4 | Istanza ESCWA di Enterprise Server in un gruppo di scalabilità automatica | Configurare un'istanza ESCWA di Enterprise Server in un gruppo di ridimensionamento automatico. L'istanza ESCWA consente di APIs gestire il PAC.  | 

## Tools (Strumenti)
<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 fornisce l'ambiente di esecuzione per le applicazioni create con qualsiasi variante dell'ambiente di sviluppo integrato (IDE) di 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 ti aiuta a garantire il numero corretto di istanze EC2 Amazon disponibili per gestire il carico della tua applicazione. È possibile creare raccolte di EC2 istanze, denominate gruppi di Auto Scaling, e specificare il numero minimo e massimo di istanze.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html): Amazon ElastiCache è un servizio web per configurare, gestire e scalare un archivio dati distribuito in memoria o un ambiente di cache nel cloud. Fornisce una soluzione di caching scalabile ad alte prestazioni e a costi contenuti.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) — Amazon Relational Database Service (Amazon RDS) è un servizio Web che semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud AWS. Fornisce una capacità ridimensionabile e conveniente per un database relazionale e gestisce le attività di amministrazione comuni del database. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) — AWS Systems Manager è un servizio AWS che puoi usare per visualizzare e controllare la tua infrastruttura su AWS. Utilizzando la console Systems Manager, puoi visualizzare i dati operativi da più servizi AWS e automatizzare le attività operative tra le tue risorse AWS. Systems Manager consente di mantenere la sicurezza e la conformità eseguendo la scansione delle Istanze gestite e segnalando eventuali violazioni dei criteri rilevate (o intraprendendo azioni correttive in merito).

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

### Crea un'istanza Amazon Aurora
<a name="create-an-amazon-aurora-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un CloudFormation modello AWS per un'istanza Amazon Aurora. | Utilizza lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html) per creare un CloudFormation modello che creerà un'istanza Edition compatibile con Amazon Aurora PostgreSQL. | Architetto del cloud | 
| Implementa uno CloudFormation stack per creare l'istanza Amazon Aurora. | Usa il CloudFormation modello per creare un'istanza compatibile con Aurora PostgreSQL con la replica Multi-AZ abilitata per i carichi di lavoro di produzione. | Architetto del cloud | 
| Configurare le impostazioni di connessione al database per Enterprise Server. | Seguite le istruzioni nella [documentazione di Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html) per preparare le stringhe di connessione e la configurazione del database per Micro Focus Enterprise Server. | Ingegnere dei dati, DevOps ingegnere | 

### Crea un ElastiCache cluster Amazon per l'istanza Redis
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un CloudFormation modello per il ElastiCache cluster Amazon per l'istanza Redis. | Usa lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html) per creare un CloudFormation modello che creerà un ElastiCache cluster Amazon per l'istanza Redis. | Architetto del cloud | 
| Implementa lo CloudFormation stack per creare un ElastiCache cluster Amazon per l'istanza Redis. | Crea il ElastiCache cluster Amazon per l'istanza Redis con la replica Multi-AZ abilitata per i carichi di lavoro di produzione. | Architetto del cloud | 
| Configurare le impostazioni di connessione PSOR di Enterprise Server. | Seguite le istruzioni nella [documentazione di Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) per preparare la configurazione di connessione PAC Scale-Out Repository (PSOR) per Micro Focus Enterprise Server PAC. | DevOps ingegnere | 

### Create un gruppo di scalabilità automatico Micro Focus Enterprise Server ESCWA
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create un'AMI Micro Focus Enterprise Server. | Crea un'istanza Amazon EC2 Windows Server e installa il file binario Micro Focus Enterprise Server nell' EC2 istanza. Crea un'Amazon Machine Image (AMI) dell' EC2 istanza. Per ulteriori informazioni, consulta la [documentazione di installazione di Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Architetto del cloud | 
| Crea un CloudFormation modello per Enterprise Server ESCWA.  | Usa lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) per creare un modello per creare uno stack personalizzato di Enterprise Server ESCWA in un gruppo di ridimensionamento automatico. | Architetto del cloud | 
| Implementa lo CloudFormation stack per creare un gruppo di EC2 scalabilità Amazon per Enterprise Server ESCWA. | Utilizzate il CloudFormation modello per implementare il gruppo di scalabilità automatico con l'AMI ESCWA Micro Focus Enterprise Server creato nella storia precedente. | Architetto del cloud | 

### Crea un runbook di AWS Systems Manager Automation
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un CloudFormation modello per un runbook di Systems Manager Automation. | Utilizza i frammenti di codice di esempio nella sezione *Informazioni aggiuntive* per creare un CloudFormation modello che creerà un runbook di Systems Manager Automation per automatizzare la creazione di PAC, la scalabilità iniziale di Enterprise Server e la scalabilità orizzontale di Enterprise Server. | Architetto del cloud | 
| Implementa lo CloudFormation stack che contiene il runbook Systems Manager Automation. | Utilizzate il CloudFormation modello per distribuire uno stack che contenga il runbook Automation per la creazione di PAC, Enterprise Server scalabilità in ed Enterprise Server scalabilità out. | Architetto del cloud | 

### Create un gruppo di scalabilità automatico per Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create un CloudFormation modello per configurare un gruppo di scalabilità automatico per Micro Focus Enterprise Server. | Usa lo [snippet di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) per creare un CloudFormation modello che creerà un gruppo di scalabilità automatico. Questo modello riutilizzerà la stessa AMI creata per l'istanza ESCWA di Micro Focus Enterprise Server. Utilizza quindi un [frammento di codice di esempio di AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) per creare l'evento di scalabilità automatica del ciclo di vita e configura Amazon per EventBridge filtrare gli eventi di scalabilità orizzontale e orizzontale nello stesso modello. CloudFormation  | Architetto del cloud | 
| Implementate lo CloudFormation stack per il gruppo di scalabilità automatico per i server Micro Focus Enterprise. | Implementate lo CloudFormation stack che contiene il gruppo di scalabilità automatico per Micro Focus Enterprise Server. | Architetto del cloud | 

## Risorse correlate
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Cluster di prestazioni e disponibilità dei server Micro Focus Enterprise (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Ganci per il ciclo di vita di Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Esecuzione di automazioni con trigger utilizzando EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

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

I seguenti scenari devono essere automatizzati per la scalabilità interna o orizzontale dei cluster PAC.

**Automazione per l'avvio o la ricreazione di un PAC**

All'avvio di un cluster PAC, Enterprise Server richiede che ESCWA venga richiamato per APIs creare una configurazione PAC. Questo avvia e aggiunge le regioni Enterprise Server al PAC. Per creare o ricreare un PAC, attenersi alla seguente procedura: 

1. Configura un [PAC Scale-Out Repository (PSOR)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) in ESCWA con un determinato nome.

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

1. Crea un PAC con un determinato nome e allega il PSOR ad esso.

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

1. Configura il database regionale e il database interregionale se è la prima volta che configuri un PAC.
**Nota**  
Questo passaggio utilizza le query SQL e lo strumento **dbhfhadmin da riga di comando di Micro Focus** Enterprise Suite per creare il database e importare i dati iniziali.

1. Installa la definizione PAC nelle regioni Enterprise Server.

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

1. Avvia le regioni Enterprise Server nel PAC.

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

I passaggi precedenti possono essere implementati utilizzando uno PowerShell script di Windows. 

I passaggi seguenti spiegano come creare un'automazione per la creazione di un PAC riutilizzando lo script di Windows PowerShell .

1. Crea un modello di EC2 avvio Amazon che scarichi o crei PowerShell lo script di Windows come parte del processo di bootstrap. Ad esempio, puoi utilizzare i dati EC2 utente per scaricare lo script da un bucket Amazon Simple Storage Service (Amazon S3).

1. Crea un runbook AWS Systems Manager Automation per richiamare lo script di Windows PowerShell .

1. Associa il runbook all'istanza ESCWA utilizzando il tag di istanza.

1. Crea un gruppo di ridimensionamento automatico ESCWA utilizzando il modello di avvio. 

Puoi utilizzare lo CloudFormation snippet AWS di esempio seguente per creare il runbook di automazione.

* CloudFormation Frammento di esempio per un runbook di Systems Manager Automation utilizzato per la creazione di 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"
```

Per ulteriori informazioni, vedere [Micro Focus Enterprise Server -](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html) Configurazione di un PAC.

**Automazione per la scalabilità orizzontale con una nuova istanza di Enterprise Server**

Quando un'istanza Enterprise Server viene scalata orizzontalmente, la relativa regione Enterprise Server deve essere aggiunta al PAC. I passaggi seguenti spiegano come richiamare ESCWA APIs e aggiungere la regione Enterprise Server al PAC. 

1. Installare la definizione PAC nelle regioni Enterprise Server.

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

1. Warm Start la regione nel PAC.

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

1. Aggiungere l'istanza Enterprise Server al load balancer associando il gruppo di scalabilità automatica al load balancer.

I passaggi precedenti possono essere implementati utilizzando uno script di Windows. PowerShell Per ulteriori informazioni, vedere [Micro Focus Enterprise Server - Configurazione di un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

I seguenti passaggi possono essere utilizzati per creare un'automazione basata sugli eventi per aggiungere un'istanza Enterprise Server appena lanciata in un PAC riutilizzando lo script di Windows. PowerShell  

1. Crea un modello di EC2 avvio Amazon per un'istanza di Enterprise Server che effettui il provisioning di una regione Enterprise Server durante il suo avvio. Ad esempio, è possibile utilizzare il comando Micro Focus Enterprise Server mfds per importare una configurazione regionale. Per ulteriori dettagli e opzioni disponibili per questo comando, consultate [Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html) Reference.

1. Creare un gruppo di scalabilità automatica di Enterprise Server che utilizzi il modello di avvio creato nel passaggio precedente.

1. Crea un runbook di Systems Manager Automation per richiamare lo script di Windows PowerShell . 

1. Associate il runbook all'istanza ESCWA utilizzando il tag instance.

1. Crea una EventBridge regola Amazon per filtrare l'evento EC2 Instance Launch Successful per il gruppo di scalabilità automatica Enterprise Server e crea la destinazione per utilizzare il runbook di automazione.

È possibile utilizzare lo CloudFormation snippet di esempio seguente per creare il runbook di automazione e la regola. EventBridge 

* CloudFormation Frammento di esempio per Systems Manager utilizzato per scalare le istanze di 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"
```

**Automazione per la scalabilità in un'istanza di Enterprise Server**

Analogamente alla scalabilità orizzontale, quando un'istanza di Enterprise Server viene *scalata in* orizzontale, viene avviato l'evento EC2 Instance-terminate Lifecycle Action e sono necessarie le seguenti chiamate di processo e API per rimuovere un'istanza di Micro Focus Enterprise Server dal PAC. 

1. Arresta la regione nell'istanza di Enterprise Server in fase di terminazione.

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

1. Rimuovere l'istanza Enterprise Server dal PAC.

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

1. Invia un segnale per continuare a terminare l'istanza di Enterprise Server.

I passaggi precedenti possono essere implementati in uno PowerShell script di Windows. Per ulteriori dettagli su questo processo, consultate il [documento Micro Focus Enterprise Server - Amministrazione di un PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

I passaggi seguenti spiegano come creare un'automazione basata sugli eventi per terminare un'istanza di Enterprise Server da un PAC riutilizzando lo script di Windows. PowerShell  

1. Crea un runbook di Systems Manager Automation per richiamare lo script di Windows PowerShell .

1. Associate il runbook all'istanza ESCWA utilizzando il tag instance.

1. Crea un hook automatico per il ciclo di vita del gruppo con scalabilità, ad esempio la terminazione. EC2 

1. Crea una EventBridge regola Amazon per filtrare l'evento EC2 Instance-terminate Lifecycle Action per il gruppo di scalabilità automatica di Enterprise Server e crea la destinazione per utilizzare il runbook di automazione. 

È possibile utilizzare il seguente CloudFormation modello di esempio per creare un runbook, un hook del ciclo di vita e una regola di Systems Manager Automation. EventBridge 

* CloudFormation Frammento di esempio per un runbook di Systems Manager Automation utilizzato per la scalabilità in un'istanza di 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
```

**Automazione per un trigger di scalabilità EC2 automatica di Amazon**

Il processo di impostazione di una politica di scalabilità per le istanze di Enterprise Server richiede una comprensione del comportamento dell'applicazione. Nella maggior parte dei casi, è possibile impostare politiche di scalabilità di Target Tracking. Ad esempio, puoi utilizzare l'utilizzo medio della CPU come CloudWatch metrica Amazon per impostare la politica di scalabilità automatica. Per ulteriori informazioni, consulta le [politiche di scalabilità di monitoraggio di Target per Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Per le applicazioni con schemi di traffico regolari, prendi in considerazione l'utilizzo di una politica di scalabilità predittiva. Per ulteriori informazioni, consulta Scaling [predittivo per Amazon Auto EC2 Scaling.](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html) 

# Crea un visualizzatore di file mainframe avanzato nel cloud AWS
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

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

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

Questo modello fornisce esempi di codice e passaggi per aiutarti a creare uno strumento avanzato per la navigazione e la revisione dei file mainframe in formato fisso utilizzando i servizi serverless AWS. Il modello fornisce un esempio di come convertire un file di input mainframe in un documento Amazon OpenSearch Service per la navigazione e la ricerca. Lo strumento di visualizzazione dei file può aiutarti a ottenere quanto segue:
+ Mantieni la stessa struttura e lo stesso layout dei file mainframe per garantire la coerenza nell'ambiente di migrazione di destinazione AWS (ad esempio, puoi mantenere lo stesso layout per i file in un'applicazione batch che trasmette i file a parti esterne)
+ Velocizza lo sviluppo e i test durante la migrazione del mainframe
+ Supporta le attività di manutenzione dopo la migrazione

## Prerequisiti e limitazioni
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un cloud privato virtuale (VPC) con una sottorete raggiungibile dalla tua piattaforma legacy
+ 
**Nota**  
Un file di input e il corrispondente quaderno COBOL (Common Business-Oriented Language) (: Per esempi di file di input e quaderni COBOL, consultate il repository. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub [Per ulteriori informazioni sui quaderni COBOL, consulta la Guida alla programmazione di Enterprise COBOL for 6.3 sul sito Web IBM.) z/OS ](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf)

**Limitazioni**
+ L'analisi dei copybook è limitata a non più di due livelli annidati (OCCURS)

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

**Stack di tecnologia di origine**
+ File di input in formato [FB (Fixed Blocked](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats))
+ Layout del quaderno COBOL

**Stack tecnologico Target**
+ Amazon Athena
+  OpenSearch Servizio Amazon
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Lambda
+ AWS Step Functions

**Architettura Target**

Il diagramma seguente mostra il processo di analisi e conversione di un file di input del mainframe in un documento di OpenSearch servizio per la navigazione e la ricerca.

![\[Processo di analisi e conversione del file di input del mainframe in Service. OpenSearch\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un utente o un'applicazione amministratore invia i file di input a un bucket S3 e i quaderni COBOL a un altro bucket S3.

1. 
**Nota**  
Il bucket S3 con i file di input richiama una funzione Lambda che avvia un flusso di lavoro Step Functions senza server. : L'uso di un trigger di eventi S3 e della funzione Lambda per guidare il flusso di lavoro Step Functions in questo modello è facoltativo. Gli esempi di GitHub codice di questo modello non includono l'uso di questi servizi, ma è possibile utilizzarli in base alle proprie esigenze.

1. Il flusso di lavoro Step Functions coordina tutti i processi batch delle seguenti funzioni Lambda:
   + La `s3copybookparser.py` funzione analizza il layout del quaderno ed estrae gli attributi dei campi, i tipi di dati e gli offset (necessari per l'elaborazione dei dati di input).
   + La `s3toathena.py` funzione crea un layout di tabella Athena. Athena analizza i dati di input elaborati dalla `s3toathena.py` funzione e li converte in un file CSV.
   + La `s3toelasticsearch.py` funzione acquisisce il file dei risultati dal bucket S3 e lo invia al servizio. OpenSearch 

1. Gli utenti accedono a OpenSearch Dashboards with OpenSearch Service per recuperare i dati in vari formati di tabelle e colonne e quindi eseguire query sui dati indicizzati.

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

**Servizi AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon Simple Storage Service (Amazon S3) utilizzando SQL standard.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi. In questo modello, si utilizza Lambda per implementare la logica di base, come l'analisi dei file, la conversione dei dati e il caricamento dei dati in OpenSearch Service per l'accesso interattivo ai file.
+ [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) è un servizio gestito che ti aiuta a distribuire, gestire e scalare i cluster OpenSearch di servizi nel cloud AWS. In questo modello, utilizzi OpenSearch Service per indicizzare i file convertiti e fornire funzionalità di ricerca interattive per gli utenti.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) è un servizio di orchestrazione senza server che ti aiuta a combinare funzioni Lambda e altri servizi AWS per creare applicazioni aziendali critiche. In questo modello, usi Step Functions per orchestrare le funzioni Lambda.

**Altri strumenti**
+ [GitHub](https://github.com/)è un servizio di code-hosting che fornisce strumenti di collaborazione e controllo delle versioni.
+ [Python](https://www.python.org/) è un linguaggio di programmazione di alto livello.

**Codice**

Il codice per questo pattern è disponibile nel repository. GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)

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

### Prepara l'ambiente di destinazione
<a name="prepare-the-target-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) per archiviare i quaderni, i file di input e i file di output. Ti consigliamo la seguente struttura di cartelle per il tuo bucket S3:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea la funzione s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea la funzione s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea la funzione s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea il cluster OpenSearch di servizi. | **Crea il cluster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Concedi l'accesso al ruolo IAM**Per fornire un accesso granulare al ruolo IAM (`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`) della funzione Lambda, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Crea Step Functions per l'orchestrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 

### Implementa ed esegui
<a name="deploy-and-run"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica i file di input e i quaderni nel bucket S3. | Scarica i file di esempio dalla cartella di esempio del [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)repository e carica i file nel bucket S3 che hai creato in precedenza.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 
| Invoca Step Functions. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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>Esempio:<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> | Informazioni generali su AWS | 
| Convalida l'esecuzione del flusso di lavoro in Step Functions. | Nella [console Step Functions](https://console.aws.amazon.com/states/home), esaminate l'esecuzione del flusso di lavoro nell'**ispettore Graph**. Gli stati di esecuzione sono codificati a colori per rappresentare lo stato di esecuzione. **Ad esempio, il blu indica **In corso**, il verde indica **Riuscito e il rosso indica Non riuscito**.** È inoltre possibile consultare la tabella nella sezione **Cronologia degli eventi di esecuzione** per informazioni più dettagliate sugli eventi di esecuzione.Per un esempio di esecuzione grafica del flusso di lavoro, vedete il *grafico Step Functions* nella sezione *Informazioni aggiuntive* di questo modello. | Informazioni generali su AWS | 
| Convalida i registri di spedizione in Amazon. CloudWatch | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Per un esempio di registri di consegna riusciti, consulta i *registri di CloudWatch consegna* nella sezione *Informazioni aggiuntive* di questo modello. | Informazioni generali su AWS | 
| Convalida il file formattato nelle OpenSearch dashboard ed esegui operazioni sui file. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Informazioni generali su AWS | 

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

**Riferimenti**
+ [Esempio di quaderno COBOL (documentazione](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) IBM)
+ [BMC Compuware File-AID (documentazione BMC](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html))

**Tutorial**
+ [Tutorial: utilizzo di un trigger Amazon S3 per richiamare una funzione Lambda (documentazione AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))
+ [Come posso creare un flusso di lavoro serverless con AWS Step Functions e AWS Lambda (documentazione AWS](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/))
+ [Utilizzo di OpenSearch dashboard con Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (documentazione AWS)

## Informazioni aggiuntive
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Grafico Step Functions**

L'esempio seguente mostra un grafico Step Functions. Il grafico mostra lo stato di esecuzione delle funzioni Lambda utilizzate in questo modello.

![\[Il grafico Step Functions mostra lo stato dell'esecuzione per le funzioni Lambda utilizzate in questo modello.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch registri di consegna**

L'esempio seguente mostra i log di consegna riusciti per l'esecuzione dell'`s3toelasticsearch`esecuzione.


| 
| 
| 2022-08-10T 15:53:33.033-05:00 | Numero di documenti di elaborazione: 100 |  | 
| --- |--- |--- |
|  | 2022-08-10T 15:53:33.171-05:00 | [INFORMAZIONI] 2022-08-10T 20:53:33.171 Z a1b2c3d4-5678-90ab-cdef- Post:443/\$1bulk [stato:200 richiesta:0.100s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 2022-08-10T 15:53:33.172-05:00 | Scrittura in blocco riuscita: 100 documenti | 

# Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

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

[Questo modello fornisce un ambiente container di esempio per l'esecuzione di carichi di lavoro mainframe che sono stati modernizzati utilizzando lo strumento Blu Age.](https://www.bluage.com/) Blu Age converte i carichi di lavoro mainframe legacy in codice Java moderno. Questo modello fornisce un wrapper per l'applicazione Java in modo da poterla eseguire utilizzando servizi di orchestrazione di container come Amazon [Elastic Container Service (Amazon ECS) o Amazon Elastic [Kubernetes](https://aws.amazon.com/eks/) Service (Amazon](https://aws.amazon.com/ecs/) EKS).

Per ulteriori informazioni sulla modernizzazione dei carichi di lavoro utilizzando Blu Age e i servizi AWS, consulta queste pubblicazioni di AWS Prescriptive Guidance:
+ [Esecuzione di carichi di lavoro mainframe Blu Age modernizzati su un'infrastruttura AWS serverless](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

[Per assistenza sull'utilizzo di Blu Age per modernizzare i carichi di lavoro mainframe, contatta il team Blu Age scegliendo **Contatta i nostri** esperti sul sito Web Blu Age.](https://www.bluage.com/) Per assistenza sulla migrazione dei carichi di lavoro modernizzati su AWS, l'integrazione con i servizi AWS e il loro trasferimento in produzione, contatta il tuo account manager AWS o compila il modulo [AWS](https://pages.awscloud.com/AWS-Professional-Services.html) Professional Services.

## Prerequisiti e limitazioni
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Prerequisiti**
+ Un'applicazione Java modernizzata creata da Blu Age. A scopo di test, questo modello fornisce un'applicazione Java di esempio che è possibile utilizzare come proof of concept.
+ Un ambiente [Docker](https://aws.amazon.com/docker/) che puoi usare per creare il contenitore.

**Limitazioni**

A seconda della piattaforma di orchestrazione dei container utilizzata, le risorse che possono essere rese disponibili al contenitore (come CPU, RAM e storage) potrebbero essere limitate. Ad esempio, se utilizzi Amazon ECS con AWS Fargate, consulta la documentazione di [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) per limiti e considerazioni.

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

**Stack tecnologico di origine**
+ Età blu
+ Java

**Stack tecnologico Target**
+ Docker

**Architettura di destinazione**

Il diagramma seguente mostra l'architettura dell'applicazione Blu Age all'interno di un contenitore Docker.

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


1. Il punto di ingresso per il contenitore è lo script wrapper. Questo script bash è responsabile della preparazione dell'ambiente di runtime per l'applicazione Blu Age e dell'elaborazione degli output.

1. Le variabili di ambiente all'interno del contenitore vengono utilizzate per configurare le variabili nello script wrapper, come i nomi dei bucket di Amazon Simple Storage Service (Amazon S3) e le credenziali del database. Le variabili di ambiente sono fornite da AWS Secrets Manager o Parameter Store, una funzionalità di AWS Systems Manager. Se utilizzi Amazon ECS come servizio di orchestrazione dei container, puoi anche codificare le variabili di ambiente nella definizione del task di Amazon ECS.

1. Lo script wrapper è responsabile dell'estrazione di tutti i file di input dal bucket S3 nel contenitore prima di eseguire l'applicazione Blu Age. L'AWS Command Line Interface (AWS CLI) viene installata all'interno del contenitore. Ciò fornisce un meccanismo per accedere agli oggetti archiviati in Amazon S3 tramite l'endpoint gateway Virtual Private Cloud (VPC).

1. Il file Java Archive (JAR) per l'applicazione Blu Age potrebbe dover comunicare con altre fonti di dati, come Amazon Aurora.

1. Dopo il completamento, lo script wrapper invia i file di output risultanti in un bucket S3 per un'ulteriore elaborazione (ad esempio, tramite Amazon CloudWatch Logging Services). Il modello supporta anche l'invio di file di log compressi ad Amazon S3, se utilizzi un'alternativa alla CloudWatch registrazione standard.

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

**Servizi AWS**
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) è un servizio rapido e scalabile di gestione dei container che ti aiuta a eseguire, arrestare e gestire container in un cluster.

**Strumenti**
+ [Docker](https://aws.amazon.com/docker/) è una piattaforma software per la creazione, il test e la distribuzione di applicazioni. Docker impacchetta il software in unità standardizzate chiamate [contenitori](https://aws.amazon.com/containers/), che contengono tutto ciò di cui il software ha bisogno per funzionare, tra cui librerie, strumenti di sistema, codice e runtime. Puoi usare Docker per distribuire e scalare le applicazioni in qualsiasi ambiente.
+ [Bash](https://www.gnu.org/software/bash/manual/) è un'interfaccia in linguaggio di comando (shell) per il sistema operativo GNU.
+ [Java](https://www.java.com/) è il linguaggio di programmazione e l'ambiente di sviluppo utilizzati in questo modello.
+ [Blu Age](https://www.bluage.com/) è uno strumento di modernizzazione dei mainframe AWS che converte i carichi di lavoro mainframe legacy, inclusi codice applicativo, dipendenze e infrastruttura, in carichi di lavoro moderni per il cloud.

**Repository di codice**

Il codice per questo pattern è disponibile nel [repository di contenitori di esempio GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Best practice
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Esternalizza le variabili per modificare il comportamento dell'applicazione utilizzando variabili di ambiente. Queste variabili consentono alla soluzione di orchestrazione del contenitore di modificare l'ambiente di runtime senza ricostruire il contenitore. Questo modello include esempi di variabili di ambiente che possono essere utili per le applicazioni Blu Age.
+ Convalida tutte le dipendenze dell'applicazione prima di eseguire l'applicazione Blu Age. Ad esempio, verificate che il database sia disponibile e che le credenziali siano valide. Scrivi dei test nello script wrapper per verificare le dipendenze e fallisci subito se non vengono soddisfatte.
+ Usa la registrazione dettagliata all'interno dello script wrapper. Interagire direttamente con un container in esecuzione può essere difficile, a seconda della piattaforma di orchestrazione e della durata del lavoro. Assicurati che venga scritto un output utile per facilitare la diagnosi `STDOUT` di eventuali problemi. Ad esempio, l'output potrebbe includere il contenuto della directory di lavoro dell'applicazione sia prima che dopo l'esecuzione dell'applicazione.

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

### Ottieni un file JAR dell'applicazione Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Opzione 1: utilizza Blu Age per ottenere il file JAR dell'applicazione. | Il contenitore in questo modello richiede un'applicazione Blu Age. In alternativa, è possibile utilizzare l'applicazione Java di esempio fornita con questo modello per un prototipo.Collaborate con il team di Blu Age per ottenere un file JAR per la vostra applicazione che può essere inserito nel contenitore. Se il file JAR non è disponibile, consultate l'operazione successiva per utilizzare invece l'applicazione di esempio. | Architetto del cloud | 
| Opzione 2: creare o utilizzare il file JAR dell'applicazione di esempio fornito. | Questo modello fornisce un file JAR di esempio predefinito. Questo file invia in output le variabili di ambiente dell'applicazione `STDOUT` prima di dormire per 30 secondi e uscire.Questo file ha un nome `bluAgeSample.jar` e si trova nella [cartella docker del GitHub repository](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker).[Se desideri modificare il codice e creare la tua versione del file JAR, usa il codice sorgente che si trova in. /java\$1 sample/src/sample \$1java\$1app.java nel repository](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src). GitHub [È possibile utilizzare lo script di compilazione all'indirizzo. ](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample)/java\$1sample/build.sh per compilare il codice sorgente Java e creare un nuovo file JAR. | Sviluppatore di app | 

### Crea il contenitore Blu Age
<a name="build-the-blu-age-container"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il GitHub repository. | Clona il repository di codice di esempio utilizzando il comando:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Usa Docker per creare il contenitore. | Usa Docker per creare il contenitore prima di inviarlo a un registro Docker come Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Prova il contenitore Blu Age. | (Facoltativo) Se necessario, testate il contenitore localmente utilizzando il comando:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Effettua l'autenticazione nel tuo repository Docker. | Se prevedi di utilizzare Amazon ECR, segui le istruzioni nella [documentazione di Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) per installare e configurare l'AWS CLI e autenticare la CLI Docker nel tuo registro predefinito.[Ti consigliamo di utilizzare il comando per l'autenticazione. get-login-password ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html)  La [console Amazon ECR](https://console.aws.amazon.com/ecr/) fornisce una versione precompilata di questo comando se utilizzi il **pulsante Visualizza comandi push**. Per ulteriori informazioni, consulta la [documentazione di 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>Se non intendi utilizzare Amazon ECR, segui le istruzioni fornite per il tuo sistema di registro dei container. | AWS DevOps | 
| Crea un repository di contenitori. | Crea un repository in Amazon ECR. Per istruzioni, consulta lo schema [Distribuisci un ambiente per applicazioni Blu Age containerizzate](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) utilizzando Terraform.Se utilizzi un altro sistema di registro dei contenitori, segui le istruzioni fornite per quel sistema. | AWS DevOps | 
| Etichetta e invia il contenitore al repository di destinazione. | Se utilizzi Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Per ulteriori informazioni, consulta [Pushing a Docker image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) nella *Amazon ECR* User Guide. | AWS DevOps | 

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

**Risorse AWS**
+ [Repository di contenitori di esempio di AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Esecuzione di carichi di lavoro mainframe Blu Age modernizzati su un'infrastruttura AWS serverless](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Utilizzo di Amazon ECR con l'AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) (*Amazon ECR* User Guide)
+ [Autenticazione del registro privato](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Amazon ECR User Guide*)
+ [Documentazione Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Documentazione Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Altre risorse**
+ [Sito Web Blu Age](https://www.bluage.com/)
+ [Sito web Docker](https://docker.com/)

# Converti e decomprimi i dati EBCDIC in ASCII su AWS usando Python
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

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

Poiché i mainframe in genere ospitano dati aziendali critici, la modernizzazione dei dati è una delle attività più importanti durante la migrazione dei dati verso il cloud Amazon Web Services (AWS) o un altro ambiente American Standard Code for Information Interchange (ASCII). Sui mainframe, i dati sono generalmente codificati in formato EBCDIC (Extended Binary-Coded Decimal Interchange Code). L'esportazione di database, Virtual Storage Access Method (VSAM) o file flat produce generalmente file EBCDIC binari compressi, la cui migrazione è più complessa. La soluzione di migrazione del database più utilizzata è Change Data Capture (CDC), che, nella maggior parte dei casi, converte automaticamente la codifica dei dati. Tuttavia, i meccanismi CDC potrebbero non essere disponibili per questi database, VSAM o file flat. Per questi file, è necessario un approccio alternativo per modernizzare i dati.

Questo modello descrive come modernizzare i dati EBCDIC convertendoli in formato ASCII. Dopo la conversione, puoi caricare i dati in database distribuiti o fare in modo che le applicazioni nel cloud elaborino direttamente i dati. Il pattern utilizza lo script di conversione e i file di esempio presenti nel [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repository.

## Prerequisiti e limitazioni
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un file di input EBCDIC e il corrispondente quaderno COBOL (Common Business-Oriented Language). Nel repository sono inclusi un file EBCDIC di esempio e un quaderno COBOL. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Per ulteriori informazioni sui quaderni COBOL, consulta [Enterprise COBOL](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) for 6.4 Programming Guide sul sito Web IBM. z/OS 

**Limitazioni**
+ I layout di file definiti all'interno dei programmi COBOL non sono supportati. Devono essere resi disponibili separatamente.

**Versioni del prodotto**
+ Python versione 3.8 o successiva

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

**Stack tecnologico di origine**
+ Dati EBCDIC su un mainframe
+ Quaderno COBOL

**Stack tecnologico Target**
+ Istanza Amazon Elastic Compute Cloud (Amazon EC2) in un cloud privato virtuale (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python e i suoi pacchetti richiesti, JavaScript Object Notation (JSON), sys e datetime
+ File flat ASCII pronto per essere letto da un'applicazione moderna o caricato in una tabella di database relazionale

**Architettura Target**

![\[Dati EBCDIC convertiti in ASCII su un' EC2 istanza utilizzando script Python e un quaderno COBOL\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


Il diagramma di architettura mostra il processo di conversione di un file EBCDIC in un file ASCII su un'istanza: EC2 

1. Utilizzando lo script **parse\$1copybook\$1to\$1json.py**, convertite il quaderno COBOL in un file JSON.

1. Utilizzando il file JSON e lo script **extract\$1ebcdic\$1to\$1ascii.py**, convertite i dati EBCDIC in un file ASCII.

**Automazione e scalabilità**

Dopo aver predisposto le risorse necessarie per le prime conversioni manuali dei file, puoi automatizzare la conversione dei file. Questo modello non include istruzioni per l'automazione. Esistono diversi modi per automatizzare la conversione. Di seguito è riportata una panoramica di un approccio possibile:

1. Incapsula i comandi di script AWS Command Line Interface (AWS CLI) e Python in uno script di shell.

1. Crea una funzione AWS Lambda che invii in modo asincrono il job dello script di shell a un'istanza. EC2 Per ulteriori informazioni, consulta [Pianificazione di lavori SSH con AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Crea un trigger Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) che richiami la funzione Lambda ogni volta che viene caricato un file legacy. Per ulteriori informazioni, consulta [Usare un trigger Amazon S3 per richiamare una funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

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

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e scalarli rapidamente verso l'alto o verso il basso.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornisce volumi di storage a livello di blocco da utilizzare con istanze Amazon Elastic Compute Cloud (Amazon). EC2
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

**Altri strumenti**
+ [GitHub](https://github.com/)è un servizio di code-hosting che fornisce strumenti di collaborazione e controllo delle versioni.
+ [Python](https://www.python.org/) è un linguaggio di programmazione di alto livello.

**Archivio di codice**

Il codice per questo pattern è disponibile nel [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repository.

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

### Prepara l'istanza EC2
<a name="prepare-the-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia un' EC2 istanza. | L' EC2 istanza deve disporre di accesso a Internet in uscita. Ciò consente all'istanza di accedere al codice sorgente Python disponibile su. GitHub Per creare l'istanza:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Informazioni generali su AWS | 
| Installa Git. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Informazioni generali su AWS, Linux | 
| Installare Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Informazioni generali su AWS, Linux | 
| Clona il GitHub repository. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS generale, GitHub | 

### Crea il file ASCII dai dati EBCDIC
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza il quaderno COBOL nel file di layout JSON. | **All'interno della `mainframe-data-utilities` cartella, esegui lo script parse\$1copybook\$1to\$1json.py.** Questo modulo di automazione legge il layout del file da un quaderno COBOL e crea un file JSON. Il file JSON contiene le informazioni necessarie per interpretare ed estrarre i dati dal file sorgente. Questo crea i metadati JSON dal quaderno COBOL. Il comando seguente converte il quaderno COBOL in un file 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>Lo script stampa gli argomenti ricevuti.<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>Per ulteriori informazioni sugli argomenti, consultate il [file README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) nel GitHub repository. | Informazioni generali su AWS, Linux | 
| Ispeziona il file di layout JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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>Gli attributi più importanti del file di layout JSON sono:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Per ulteriori informazioni sul file di layout JSON, consultate il file [README nel repository](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md). GitHub  | Informazioni generali su AWS, JSON | 
| Crea il file ASCII.  | Esegui lo script **extract\$1ebcdic\$1to\$1ascii.py**, incluso nel repository GitHub clonato. Questo script legge il file EBCDIC e scrive un file ASCII convertito e leggibile.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>Durante l'elaborazione dei dati EBCDIC, lo script stampa un messaggio per ogni batch di 10.000 record. Guarda l'esempio seguente.<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>Per informazioni su come modificare la frequenza di stampa, consultate il [file README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) nel repository. GitHub  | Informazioni generali su AWS | 
| Esamina il file ASCII. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Se è stato utilizzato il file EBCDIC di esempio fornito, il seguente è il primo record del file ASCII.<pre>00000000: 2d30 3030 3030 3030 3030 3130 3030 3030  -000000000100000<br />00000010: 3030 307c 3030 3030 3030 3030 3031 3030  000|000000000100<br />00000020: 3030 3030 3030 7c2d 3030 3030 3030 3030  000000|-00000000<br />00000030: 3031 3030 3030 3030 3030 7c30 7c30 7c31  0100000000|0|0|1<br />00000040: 3030 3030 3030 3030 7c2d 3130 3030 3030  00000000|-100000<br />00000050: 3030 307c 3130 3030 3030 3030 307c 2d31  000|100000000|-1<br />00000060: 3030 3030 3030 3030 7c30 3030 3030 7c30  00000000|00000|0<br />00000070: 3030 3030 7c31 3030 3030 3030 3030 7c2d  0000|100000000|-<br />00000080: 3130 3030 3030 3030 307c 3030 3030 3030  100000000|000000<br />00000090: 3030 3030 3130 3030 3030 3030 307c 2d30  0000100000000|-0<br />000000a0: 3030 3030 3030 3030 3031 3030 3030 3030  0000000001000000<br />000000b0: 3030 7c41 7c41 7c0a                      00|A|A|.</pre> | Informazioni generali su AWS, Linux | 
| Valuta il file EBCDIC. | Nella EC2 console Amazon, inserisci il seguente comando. Questo apre il primo record del file EBCDIC.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Se hai utilizzato il file EBCDIC di esempio, il risultato è il seguente.<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>Per valutare l'equivalenza tra il file di origine e quello di destinazione, è richiesta una conoscenza approfondita di EBCDIC. Ad esempio, il primo carattere del file EBCDIC di esempio è un trattino (). `-` Nella notazione esadecimale del file EBCDIC, questo carattere è rappresentato da, e nella notazione esadecimale del file ASCII`60`, questo carattere è rappresentato da. `2D` [Per una tabella di EBCDIC-to-ASCII conversione, consulta EBCDIC to ASCII sul sito Web IBM.](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) | Informazioni generali su AWS, Linux, EBCDIC | 

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

**Riferimenti**
+ [Il set di caratteri EBCDIC (](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set)documentazione IBM)
+ [Da EBCDIC](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) ad ASCII (documentazione IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (documentazione IBM)
+ [Concetti JCL di base (documentazione IBM](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts))
+ [Connect alla tua istanza Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) ( EC2 documentazione Amazon)

**Tutorial**
+ [Pianificazione di lavori SSH con AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) (post sul blog AWS)
+ [Utilizzo di un trigger Amazon S3 per richiamare una funzione Lambda (documentazione AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))

# Converti i file mainframe dal formato EBCDIC al formato ASCII delimitato da caratteri in Amazon S3 utilizzando 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*

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

Questo modello mostra come avviare una AWS Lambda funzione che converte automaticamente i file EBCDIC (Extended Binary Coded Decimal Interchange Code) del mainframe in file ASCII (American Standard Code for Information Interchange) delimitati da caratteri. La funzione Lambda viene eseguita dopo il caricamento dei file ASCII in un bucket Amazon Simple Storage Service (Amazon S3). Dopo la conversione dei file, puoi leggere i file ASCII su carichi di lavoro basati su x86 o caricare i file in database moderni.

L'approccio alla conversione dei file illustrato in questo modello può aiutarvi a superare le sfide legate all'utilizzo dei file EBCDIC in ambienti moderni. I file codificati in EBCDIC contengono spesso dati rappresentati in formato binario o decimale compresso e i campi sono a lunghezza fissa. Queste caratteristiche creano ostacoli perché i carichi di lavoro o gli ambienti distribuiti moderni basati su x86 generalmente funzionano con dati con codifica ASCII e non sono in grado di elaborare file EBCDIC.

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

**Prerequisiti**
+ Un attivo Account AWS
+ Un bucket Amazon S3
+ Un utente AWS Identity and Access Management (IAM) con autorizzazioni amministrative
+ AWS CloudShell
+ [Python 3.8.0](https://www.python.org/downloads/release/python-380/) o successivo
+ Un file flat codificato in EBCDIC e la struttura dati corrispondente in un quaderno COBOL (Common Business-Oriented Language)

**Nota**  
[Questo modello utilizza un file EBCDIC di esempio ([Client.EBCDIC.txt](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)) e il quaderno COBOL corrispondente (COBKS05.cpy).](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy) Entrambi i GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)file sono disponibili nel repository.

**Limitazioni**
+ I quaderni COBOL di solito contengono più definizioni di layout. Il [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)progetto può analizzare questo tipo di quaderno ma non può dedurre quale layout prendere in considerazione per la conversione dei dati. Questo perché i quaderni non seguono questa logica (che rimane invece nei programmi COBOL). Di conseguenza, è necessario configurare manualmente le regole per la selezione dei layout dopo aver analizzato il quaderno.
+ Questo modello è soggetto alle quote [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

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

**Stack tecnologico di origine**
+ IBM z/OS, IBM i e altri sistemi EBCDIC
+ File sequenziali con dati codificati in EBCDIC (come IBM Db2 unloads)
+ Quaderno COBOL

**Stack tecnologico Target**
+ Simple Storage Service (Amazon S3)
+ Notifica degli eventi di Amazon S3
+ IAM
+ funzione Lambda
+ Python 3.8 o versioni successive
+ Utilità per dati mainframe
+ Metadati JSON
+ File ASCII delimitati da caratteri

**Architettura di Target**

Il diagramma seguente mostra un'architettura per la conversione dei file EBCDIC mainframe in file ASCII.

![\[Architettura per la conversione dei file EBCDIC mainframe in file ASCII\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/97ab4129-2639-4733-86cb-962d91526df4/images/3ca7ca44-373a-434f-8c40-09e7c2abf5ec.png)


Il diagramma mostra il flusso di lavoro seguente:

1. L'utente esegue lo script di analisi dei copybook, che converte il quaderno COBOL in un file JSON.

1. L'utente carica i metadati JSON in un bucket Amazon S3. Ciò rende i metadati leggibili dalla funzione Lambda di conversione dei dati.

1. L'utente o un processo automatizzato carica il file EBCDIC nel bucket Amazon S3.

1. L'evento di notifica di Amazon S3 attiva la funzione Lambda di conversione dei dati.

1. AWS verifica le autorizzazioni di lettura/scrittura del bucket Amazon S3 per la funzione Lambda.

1. Lambda legge il file dal bucket Amazon S3 e lo converte localmente da EBCDIC in ASCII.

1. Lambda registra lo stato del processo in Amazon. CloudWatch

1. Lambda riscrive il file ASCII su Amazon S3.

**Nota**  
Lo script di analisi dei copybook viene eseguito una sola volta per eseguire la conversione dei metadati in formato JSON, che viene successivamente archiviato in un bucket Amazon S3. Dopo la conversione iniziale, tutti i file EBCDIC successivi che fanno riferimento allo stesso file JSON nel bucket Amazon S3 utilizzeranno la configurazione dei metadati esistente.

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

**Servizi AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ti CloudWatch aiuta a monitorare i parametri delle tue AWS risorse e delle applicazioni su cui esegui AWS in tempo reale.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)è una shell basata su browser che puoi utilizzare per gestire Servizi AWS utilizzando AWS Command Line Interface (AWS CLI) e una gamma di strumenti di sviluppo preinstallati.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Lambda esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.

**Altri strumenti**
+ [GitHub](https://github.com/)è un servizio di code-hosting che fornisce strumenti di collaborazione e controllo delle versioni.
+ [Python](https://www.python.org/) è un linguaggio di programmazione di alto livello.

**Codice**

Il codice per questo pattern è disponibile nel repository. GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)

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

Prendi in considerazione le seguenti best practice:
+ Imposta le autorizzazioni richieste a livello di Amazon Resource Name (ARN).
+ Concedi sempre le autorizzazioni con privilegi minimi per le policy IAM. Per ulteriori informazioni, consulta le [best practice di sicurezza in IAM nella documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).

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

### Crea variabili di ambiente e una cartella di lavoro
<a name="create-environment-variables-and-a-working-folder"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare le variabili di ambiente. | Copiate le seguenti variabili di ambiente in un editor di testo, quindi sostituite i `<placeholder>` valori dell'esempio seguente con i valori delle risorse:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Creerai riferimenti al tuo bucket Amazon S3 e versioni successive Account AWS. Regione AWS Per definire le variabili di ambiente, apri la [CloudShell console](https://console.aws.amazon.com/cloudshell/), quindi copia e incolla le variabili di ambiente aggiornate nella riga di comando.È necessario ripetere questo passaggio ogni volta che la CloudShell sessione viene riavviata. | Informazioni generali su AWS | 
| Crea una cartella di lavoro. | Per semplificare il processo di pulizia delle risorse in un secondo momento, crea una cartella di lavoro CloudShell eseguendo il seguente comando:<pre>mkdir workdir; cd workdir</pre>È necessario modificare la directory nella directory di lavoro (`workdir`) ogni volta che si perde la connessione alla CloudShell sessione. | Informazioni generali su AWS | 

### Definisci un ruolo e una policy IAM
<a name="define-an-iam-role-and-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una politica di fiducia per la funzione Lambda. | Il convertitore EBCDIC funziona con una funzione Lambda. La funzione deve avere un ruolo IAM. Prima di creare il ruolo IAM, è necessario definire un documento sulla politica di fiducia che consenta alle risorse di assumere tale politica.Dalla cartella CloudShell di lavoro, crea un documento di policy eseguendo il seguente 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> | Informazioni generali su AWS | 
| Crea il ruolo IAM per la conversione Lambda. | Per creare un ruolo IAM, esegui il seguente AWS CLI comando dalla cartella di CloudShell lavoro:<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | Informazioni generali su AWS | 
| Crea il documento di policy IAM per la funzione Lambda. | La funzione Lambda deve disporre dell'accesso in lettura/scrittura al bucket Amazon S3 e delle autorizzazioni di scrittura per Amazon Logs. CloudWatch Per creare una policy IAM, esegui il seguente comando dalla cartella di lavoro: 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> | Informazioni generali su AWS | 
| Allega il documento relativo alla policy IAM al ruolo IAM. | Per allegare la policy IAM al ruolo IAM, inserisci il seguente comando dalla tua cartella di CloudShell lavoro:<pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | Informazioni generali su AWS | 

### Crea la funzione Lambda per la conversione EBCDIC
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica il codice sorgente della conversione EBCDIC. | Dalla cartella CloudShell di lavoro, esegui il seguente comando per scaricare il codice mainframe-data-utilities sorgente da: GitHub<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | Informazioni generali su AWS | 
| Crea il pacchetto ZIP. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per creare il pacchetto ZIP che crea la funzione Lambda per la conversione EBCDIC:<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | Informazioni generali su AWS | 
| Creazione della funzione Lambda | Dalla cartella di CloudShell lavoro, immettete il seguente comando per creare la funzione Lambda per la conversione 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> Il layout della variabile di ambiente indica alla funzione Lambda dove risiedono i metadati JSON. | Informazioni generali su AWS | 
| Crea la politica basata sulle risorse per la funzione Lambda. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per consentire alla notifica degli eventi di Amazon S3 di attivare la funzione Lambda per la conversione 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> | Informazioni generali su AWS | 

### Crea la notifica degli eventi di Amazon S3
<a name="create-the-s3-event-notification"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il documento di configurazione per la notifica degli eventi di Amazon S3. | La notifica degli eventi di Amazon S3 avvia la funzione Lambda di conversione EBCDIC quando i file vengono inseriti nella cartella di input.Dalla cartella di CloudShell lavoro, esegui il seguente comando per creare il documento JSON per la notifica degli eventi di 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> | Informazioni generali su AWS | 
| Crea la notifica degli eventi di Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per creare la notifica degli eventi di Amazon S3:<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | Informazioni generali su AWS | 

### Crea e carica i metadati JSON
<a name="create-and-upload-the-json-metadata"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Analizza il quaderno COBOL. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per analizzare un quaderno COBOL di esempio in un file JSON (che definisce come leggere e suddividere correttamente il file di dati):<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> | Informazioni generali su AWS | 
| Aggiungi la regola di trasformazione. | Il file di dati di esempio e il corrispondente quaderno COBOL sono un file a più layout. Ciò significa che la conversione deve suddividere i dati in base a determinate regole. In questo caso, i byte nelle posizioni 3 e 4 in ogni riga definiscono il layout.Dalla cartella CloudShell di lavoro, modificate il `CLIENT.json` file e modificate il contenuto nel `"transf-rule": [],` modo seguente:<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> | Informazioni generali su AWS, mainframe IBM, Cobol | 
| Carica i metadati JSON nel bucket Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente AWS CLI comando per caricare i metadati JSON nel tuo bucket Amazon S3:<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | Informazioni generali su AWS | 

### Convertire il file EBCDIC
<a name="convert-the-ebcdic-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia il file EBCDIC al bucket Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per inviare il file EBCDIC al bucket Amazon S3:<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Ti consigliamo di impostare cartelle diverse per i file di input (EBCDIC) e di output (ASCII) per evitare di richiamare nuovamente la funzione di conversione Lambda quando il file ASCII viene caricato nel bucket Amazon S3. | Informazioni generali su AWS | 
| Controlla l'output. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per verificare se il file ASCII è generato nel tuo bucket Amazon S3:<pre>aws s3 ls s3://$bucket/</pre> La conversione dei dati può richiedere diversi secondi. Ti consigliamo di verificare la presenza del file ASCII alcune volte.Una volta che il file ASCII è disponibile, inserisci il seguente comando per visualizzare il contenuto del file convertito nel bucket Amazon S3. Se necessario, puoi scaricarlo o utilizzarlo direttamente dal bucket Amazon S3:<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Controlla il contenuto del file 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> | Informazioni generali su AWS | 

### Pulisci l'ambiente
<a name="clean-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| (Facoltativo) Prepara le variabili e la cartella. | Se perdete la connessione con CloudShell, riconnettetevi e immettete il seguente comando per spostare la directory nella cartella di lavoro:<pre>cd workdir</pre>Assicuratevi che le variabili di ambiente siano definite:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | Informazioni generali su AWS | 
| Rimuovi la configurazione di notifica per il bucket. | Dalla cartella di CloudShell lavoro, esegui il seguente comando per rimuovere la configurazione di notifica degli eventi di Amazon S3:<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | Informazioni generali su AWS | 
| Elimina la funzione Lambda. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per eliminare la funzione Lambda per il convertitore EBCDIC:<pre>aws lambda delete-function \<br />--function-name E2A</pre> | Informazioni generali su AWS | 
| Elimina il ruolo e la policy IAM. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per rimuovere il ruolo e la politica del convertitore 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> | Informazioni generali su AWS | 
| Elimina i file generati nel bucket Amazon S3. | Dalla cartella di CloudShell lavoro, inserisci il seguente comando per eliminare i file generati nel bucket 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> | Informazioni generali su AWS | 
| Elimina la cartella di lavoro. | Dalla cartella di CloudShell lavoro, immettete il seguente comando per `workdir` rimuoverne il contenuto:<pre>cd ..; rm -Rf workdir</pre> | Informazioni generali su AWS | 

## Risorse correlate
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [Utilità per dati mainframe README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) () GitHub
+ [Il set di caratteri EBCDIC (documentazione IBM](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set))
+ [Da EBCDIC](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii) ad ASCII (documentazione IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (documentazione IBM)
+ [Utilizzo di un trigger Amazon S3 per richiamare una funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentazione)AWS Lambda 

# Convertite file di dati mainframe con layout di registrazione complessi utilizzando Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

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

Nota: Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Questo modello mostra come convertire i file di dati mainframe con dati non testuali e layout di record complessi dalla codifica dei caratteri EBCDIC (Extended Binary Coded Decimal Interchange Code) alla codifica dei caratteri ASCII (American Standard Code for Information Interchange) utilizzando un file di struttura Micro Focus. Per completare la conversione del file, è necessario effettuare le seguenti operazioni:

1. Preparate un unico file sorgente che descriva tutti gli elementi di dati e i layout dei record nell'ambiente mainframe.

1. Create un file di struttura che contenga il layout di registrazione dei dati utilizzando Micro Focus Data File Editor come parte di Micro Focus Classic Data File Tools o Data File Tools. Il file di struttura identifica i dati non testuali in modo da poter convertire correttamente i file mainframe da EBCDIC in ASCII.

1. Verificate il file di struttura utilizzando Classic Data File Tools o Data File Tools.

## Prerequisiti e limitazioni
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Micro Focus Enterprise Developer per Windows, disponibile tramite [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

**Versioni del prodotto**
+ Micro Focus Enterprise Server 7.0 e versioni successive

## Tools (Strumenti)
<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) fornisce l'ambiente di esecuzione per le applicazioni create con qualsiasi variante dell'ambiente di sviluppo integrato (IDE) di Enterprise Developer.
+ Micro Focus [Classic Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) vi aiuta a convertire, navigare, modificare e creare file di dati. I Classic Data File Tools includono [Data File Converter](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFCV.html), [Record Layout Editor](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHRLMF.html) e [Data File Editor](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html).
+ Micro Focus [Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) vi aiuta a creare, modificare e spostare file di dati. I Data File Tools includono [Data File Editor](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html), [File Conversion Utilities](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHCONV.html) e [Data File Structure Command Line Utility](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

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

### Prepara il file sorgente
<a name="prepare-the-source-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Identifica i componenti di origine. | Identifica tutti i possibili layout di record per il file, incluse eventuali ridefinizioni che contengono dati non testuali.Se disponete di layout che contengono ridefinizioni, dovete suddividerli in layout unici che descrivano ogni possibile permutazione della struttura dei dati. In genere, i layout dei record di un file di dati possono essere descritti dai seguenti archetipi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)[Per ulteriori informazioni sulla creazione di layout di record semplificati per file che contengono layout di record complessi, vedere Rehosting di applicazioni EBCDIC su ambienti ASCII per le migrazioni mainframe.](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html) | Sviluppatore di app | 
| Identifica le condizioni di layout dei record. | Per i file con più layout di record o i file che contengono layout complessi con una clausola REDEFINES, identificate i dati e le condizioni all'interno di un record che potete utilizzare per definire il layout da utilizzare durante la conversione. Si consiglia di discutere di questa attività con un esperto in materia (SME) che conosca i programmi che elaborano questi file.Ad esempio, un file può contenere due tipi di record che contengono dati non testuali. È possibile controllare il codice sorgente ed eventualmente trovare codice simile al seguente:<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>Il codice consente di identificare quanto segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)È possibile documentare i valori utilizzati da questo campo per associare i layout dei record ai record di dati corretti nel file. | Sviluppatore di app | 
| Crea il file sorgente. | Se il file è descritto in più file di origine o se il layout del record contiene dati non di testo subordinati a una clausola REDEFINES, create un nuovo file sorgente che contenga i layout dei record. Il nuovo programma non ha bisogno di descrivere il file utilizzando le istruzioni SELECT e FD. Il programma può semplicemente contenere le descrizioni dei record come 01 livelli all'interno di Working-Storage.È possibile creare un file sorgente per ogni file di dati o creare un file sorgente principale che descriva tutti i file di dati. | Sviluppatore di app | 
| Compila il file sorgente. | Compila il file sorgente per creare il dizionario dei dati. Ti consigliamo di compilare il file sorgente utilizzando il set di caratteri EBCDIC. Se vengono utilizzate la direttiva IBMCOMP o le direttive ODOSLIDE, è necessario utilizzare queste direttive anche nel file sorgente.IBMCOMP influisce sulla memorizzazione dei byte dei campi COMP e ODOSLIDE influisce sul padding sulle strutture OCCURS VARIYING. Se queste direttive sono impostate in modo errato, lo strumento di conversione non leggerà correttamente il record di dati. Ciò si traduce in dati errati nel file convertito. | Sviluppatore di app | 

### (Opzione A) Crea il file di struttura utilizzando Classic Data File Tools
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia lo strumento e carica il dizionario. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 
| Create il layout di record predefinito. | Utilizza il layout di record predefinito per tutti i record che non corrispondono a nessun layout condizionale.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Il layout predefinito viene visualizzato nel riquadro **Layout** e può essere identificato dall'icona rossa della cartella. | Sviluppatore di app | 
| Crea un layout di registrazione condizionale. | Usa il layout di registrazione condizionale quando c'è più di un layout di record in un file.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### (Opzione B) Create il file di struttura utilizzando Data File Tools
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia lo strumento e carica il dizionario. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 
| Crea il layout di record predefinito. | Utilizza il layout di record predefinito per tutti i record che non corrispondono a nessun layout condizionale.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Il layout predefinito viene visualizzato nel riquadro **Layout** e può essere identificato dall'icona blu «D». | Sviluppatore di app | 
| Crea un layout di registrazione condizionale. | Usa il layout di registrazione condizionale quando c'è più di un layout di record in un file.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### (Opzione A) Testate il file di struttura utilizzando Classic Data File Tools
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova un file di dati EBCDIC. | Conferma di poter utilizzare il file di struttura per visualizzare correttamente un file di dati di test EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### (Opzione B) Testate il file di struttura utilizzando Data File Tools
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova un file di dati EBCDIC. | Conferma di poter utilizzare il file di struttura per visualizzare correttamente un file di dati di test EBCDIC.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

### Prova la conversione dei file di dati
<a name="test-data-file-conversion"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la conversione di un file EBCDIC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Sviluppatore di app | 

## Risorse correlate
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-resources"></a>
+ [Micro Focus (documentazione Micro](https://www.microfocus.com/en-us/products/enterprise-suite/overview) Focus)
+ [Mainframe e codice legacy](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (post sul blog AWS)
+ [AWS Prescriptive Guidance (](https://docs.aws.amazon.com/prescriptive-guidance/)documentazione AWS)
+ [Documentazione AWS](https://docs.aws.amazon.com/index.html) (documentazione AWS)
+ [Riferimento generale AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (documentazione AWS)
+ [Glossario AWS](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) (documentazione AWS)

# Implementa un ambiente per applicazioni Blu Age containerizzate utilizzando Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

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

La migrazione dei carichi di lavoro mainframe legacy in architetture cloud moderne può eliminare i costi di manutenzione di un mainframe, costi che aumentano solo con l'invecchiamento dell'ambiente. Tuttavia, la migrazione dei lavori da un mainframe può porre sfide uniche. Le risorse interne potrebbero non conoscere la logica del lavoro e le elevate prestazioni dei mainframe in queste attività specializzate possono essere difficili da replicare rispetto a quelle di uso generalizzato. CPUs Riscrivere questi lavori può essere un'impresa ardua e richiedere un notevole impegno.

Blu Age converte i carichi di lavoro mainframe legacy in codice Java moderno, che puoi quindi eseguire come contenitore.

Questo modello fornisce un esempio di architettura serverless per l'esecuzione di un'applicazione containerizzata che è stata modernizzata con lo strumento Blu Age. I file HashiCorp Terraform inclusi creeranno un'architettura sicura per l'orchestrazione dei contenitori Blu Age, supportando sia attività in batch che servizi in tempo reale.

Per ulteriori informazioni sulla modernizzazione dei carichi di lavoro utilizzando Blu Age e i servizi AWS, consulta queste pubblicazioni AWS Prescriptive Guidance:
+ [Esecuzione di carichi di lavoro mainframe modernizzati con Blu Age sull'infrastruttura serverless AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

**[Per ricevere assistenza sull'utilizzo di Blu Age per modernizzare i carichi di lavoro mainframe, contatta il team Blu Age selezionando Contatta i nostri esperti sul sito Web Blu Age.](https://www.bluage.com/)** Per assistenza sulla migrazione dei carichi di lavoro modernizzati su AWS, l'integrazione con i servizi AWS e il loro trasferimento in produzione, contatta il tuo account manager AWS o compila il modulo [AWS](https://pages.awscloud.com/AWS-Professional-Services.html) Professional Services.

## Prerequisiti e limitazioni
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Prerequisiti**
+ L'applicazione di esempio di Blu Age containerizzata fornita dai carichi di [lavoro mainframe Containerize](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) che sono stati modernizzati dal modello Blu Age. L'applicazione di esempio fornisce la logica per gestire l'elaborazione di input e output per l'applicazione modernizzata e può integrarsi con questa architettura.
+ Terraform è necessario per distribuire queste risorse.

**Limitazioni**
+ Amazon Elastic Container Service (Amazon ECS) impone dei limiti alle risorse delle attività che possono essere rese disponibili per il container. Queste risorse includono CPU, RAM e storage. Ad esempio, quando si utilizza Amazon ECS con AWS Fargate, si applicano i limiti [delle risorse delle attività](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Versioni del prodotto**

Questa soluzione è stata testata con le seguenti versioni:
+ Terraform 1.3.6
+ Terraform AWS Provider 4.46.0

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

**Stack tecnologico di origine**
+ Età blu
+ Terraform

**Stack tecnologico Target**
+ Amazon Aurora PostgreSQL-Compatible Edition
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ Server di gestione delle chiavi AWS (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notification Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Architettura Target**

Il diagramma seguente mostra l'architettura della soluzione.

![\[La descrizione segue il diagramma.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. La soluzione implementa i seguenti ruoli IAM:
   + Ruolo dell'attività Batch
   + Ruolo di esecuzione delle attività Batch
   + Ruolo dell'attività di servizio
   + Ruolo di esecuzione dell'attività di servizio
   + Ruolo Step Functions
   + Ruolo di AWS Backup
   + Ruolo RDS Enhanced Monitoring.

   I ruoli sono conformi ai principi di accesso con privilegi minimi.

1. Amazon ECR viene utilizzato per archiviare l'immagine del contenitore orchestrata da questo modello.

1. AWS Systems Manager Parameter Store fornisce dati di configurazione su ciascun ambiente alla definizione delle attività di Amazon ECS in fase di esecuzione.

1. AWS Secrets Manager fornisce dati di configurazione sensibili sull'ambiente alla definizione delle attività di Amazon ECS in fase di esecuzione. I dati sono stati crittografati da AWS KMS.

1. I moduli Terraform creano definizioni di attività Amazon ECS per tutte le attività in tempo reale e in batch.

1. Amazon ECS esegue un'attività in batch utilizzando AWS Fargate come motore di elaborazione. Si tratta di un'attività di breve durata, avviata come richiesto da AWS Step Functions.

1. Amazon Aurora, compatibile con PostgreSQL, fornisce un database per supportare l'applicazione modernizzata. Questo sostituisce i database mainframe come IBM Db2 o IBM IMS DB.

1. Amazon ECS offre un servizio di lunga durata per fornire un carico di lavoro modernizzato in tempo reale. Queste applicazioni stateless vengono eseguite in modo permanente con contenitori distribuiti tra le zone di disponibilità.

1. Un Network Load Balancer viene utilizzato per concedere l'accesso al carico di lavoro in tempo reale. Il Network Load Balancer supporta protocolli precedenti, come IBM CICS. In alternativa, puoi utilizzare un Application Load Balancer con carichi di lavoro basati su HTTP.

1. Amazon S3 fornisce lo storage di oggetti per gli input e gli output dei processi. Il contenitore dovrebbe gestire le operazioni pull and push in Amazon S3 per preparare la directory di lavoro per l'applicazione Blu Age.

1. Il servizio AWS Step Functions viene utilizzato per orchestrare l'esecuzione delle attività di Amazon ECS per elaborare carichi di lavoro in batch.

1. Gli argomenti SNS per ogni carico di lavoro batch vengono utilizzati per integrare l'applicazione modernizzata con altri sistemi, come la posta elettronica, o per avviare azioni aggiuntive, come la consegna di oggetti di output da Amazon S3 a FTP.

**Nota**  
Per impostazione predefinita, la soluzione non ha accesso a Internet. Questo modello presuppone che il cloud privato virtuale (VPC) sia connesso ad altre reti utilizzando un servizio [come AWS](https://aws.amazon.com/transit-gateway/) Transit Gateway. Pertanto, vengono implementati endpoint VPC a più interfacce per garantire l'accesso ai servizi AWS utilizzati dalla soluzione. Per attivare l'accesso diretto a Internet, puoi utilizzare l'interruttore nel modulo Terraform per sostituire gli endpoint VPC con un gateway Internet e le risorse associate.

**Automazione e scalabilità**

L'uso di risorse serverless in questo modello contribuisce a garantire che, grazie alla scalabilità orizzontale, vi siano pochi limiti alla scalabilità di questo progetto. In questo modo si riducono i *fastidiosi problemi dei vicini*, come la concorrenza per le risorse di elaborazione che si potrebbe riscontrare sul mainframe originale. Le attività Batch possono essere pianificate per l'esecuzione simultanea in base alle esigenze.

I singoli contenitori sono limitati dalle dimensioni massime supportate da Fargate. Per ulteriori informazioni, consulta la sezione [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) nella documentazione di Amazon ECS.

Per [scalare orizzontalmente i carichi di lavoro in tempo reale](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), puoi aggiungere contenitori.

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

**Servizi AWS**
+ [Amazon Aurora PostgreSQL Compatible Edition è un motore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) è un servizio completamente gestito che ti aiuta a centralizzare e automatizzare la protezione dei dati su Servizi AWS, nel cloud e in locale.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) è un servizio rapido e scalabile di gestione dei container che ti aiuta a eseguire, arrestare e gestire container in un cluster.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ti aiuta a sostituire le credenziali codificate nel codice, comprese le password, con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) è un servizio di orchestrazione senza server che ti aiuta a combinare AWS Lambda funzioni e altro Servizi AWS per creare applicazioni aziendali critiche.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) fornisce uno storage sicuro e gerarchico per la gestione dei dati di configurazione e la gestione dei segreti.

**Altri servizi**
+ [HashiCorp Terraform](https://www.terraform.io/docs) è uno strumento Infrastructure as Code (IaC) che consente di utilizzare il codice per fornire e gestire l'infrastruttura e le risorse cloud. Questo modello utilizza Terraform per creare l'architettura di esempio.

**Archivio di codice**

Il codice sorgente di questo pattern è disponibile nel repository GitHub [Blu Age Sample ECS Infrastructure (Terraform](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform#aws-blu-age-sample-ecs-infrastructure-terraform)).

## Best practice
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Per gli ambienti di test, utilizza funzionalità come la `forceDate` possibilità di configurare l'applicazione modernizzata per generare risultati di test coerenti eseguendo sempre per un periodo di tempo noto.
+ Ottimizza ogni attività individualmente per consumare la quantità ottimale di risorse. Puoi utilizzare [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) per ottenere indicazioni su potenziali colli di bottiglia.

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

### Prepara l'ambiente per l'implementazione
<a name="prepare-the-environment-for-deployment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il codice sorgente della soluzione. | [Clona il codice della soluzione dal GitHub progetto.](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform) | DevOps ingegnere | 
| Avvia l'ambiente distribuendo risorse per archiviare lo stato di Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingegnere | 

### Implementa l'infrastruttura della soluzione
<a name="deploy-the-solution-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rivedi e aggiorna la configurazione di Terraform. | Nella directory principale, apri il file, `main.tf,` esamina il contenuto e valuta la possibilità di apportare i seguenti aggiornamenti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps ingegnere | 
| Distribuisci il file Terraform. | Dal tuo terminale, esegui il `terraform apply` comando per distribuire tutte le risorse. Esamina le modifiche generate da Terraform e inserisci **yes** per avviare la build.Tieni presente che possono essere necessari più di 15 minuti per implementare questa infrastruttura. | DevOps ingegnere | 

### (Facoltativo) Implementa un'applicazione containerizzata Blu Age valida
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia l'immagine del contenitore Blu Age ad Amazon ECR. | Inserisci il contenitore nel repository Amazon ECR che hai creato nell'epopea precedente. Per istruzioni, consulta la [documentazione di Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)Prendi nota dell'URI dell'immagine del contenitore. | DevOps ingegnere | 
| Aggiorna Terraform in modo che faccia riferimento all'immagine del contenitore Blu Age. | Aggiorna il file `main.tf`**** in modo che faccia riferimento all'immagine del contenitore che hai caricato. | DevOps ingegnere | 
| Ridistribuisci il file Terraform. | Dal tuo terminale, esegui `terraform apply` per distribuire tutte le risorse. Esamina gli aggiornamenti suggeriti da Terraform, quindi inserisci **yes** per procedere con la distribuzione. | DevOps ingegnere | 

## Risorse correlate
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Età blu](https://www.bluage.com/)
+ [Esecuzione di carichi di lavoro mainframe modernizzati con Blu Age sull'infrastruttura serverless AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerizza i carichi di lavoro mainframe che sono stati modernizzati da Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

# Genera approfondimenti sui z/OS dati Db2 utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight"></a>

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

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

Nota: il Modernizzazione del mainframe AWS servizio (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se la tua organizzazione ospita dati aziendali critici in un ambiente mainframe IBM Db2, ottenere informazioni approfondite da tali dati è fondamentale per promuovere la crescita e l'innovazione. Sbloccando i dati del mainframe, puoi creare business intelligence più veloce, sicura e scalabile per accelerare il processo decisionale, la crescita e l'innovazione basati sui dati nel cloud Amazon Web Services ().AWS

Questo modello presenta una soluzione per generare approfondimenti aziendali e creare narrazioni condivisibili a partire dai dati mainframe in IBM Db2 for tables. z/OS [Le modifiche ai dati del mainframe vengono trasmesse in streaming all'argomento [Amazon Managed Streaming for Apache Kafka (Amazon Modernizzazione del mainframe AWS MSK) utilizzando Data Replication with Precisly](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html).](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html) Utilizzando [lo streaming ingestion di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html), i dati tematici di Amazon MSK vengono archiviati in tabelle di data warehouse Serverless di [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) per l'analisi in Amazon Quick Sight.

Dopo che i dati sono disponibili in Quick Sight, puoi utilizzare istruzioni in linguaggio naturale con [Amazon Q in Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) per creare riepiloghi dei dati, porre domande e generare storie di dati. Non è necessario scrivere query SQL o imparare a usare uno strumento di business intelligence (BI).

**Contesto aziendale**

Questo modello presenta una soluzione per i casi d'uso di analisi dei dati mainframe e analisi dei dati. Utilizzando il modello, crei una dashboard visiva per i dati della tua azienda. Per dimostrare la soluzione, questo modello utilizza un'azienda sanitaria che fornisce piani medici, dentistici e oculistici ai suoi membri negli Stati Uniti. In questo esempio, i dati demografici dei membri e le informazioni sul piano vengono archiviati in IBM Db2 for data tables. z/OS La dashboard visiva mostra quanto segue:
+ Distribuzione dei membri per regione
+ Distribuzione dei membri per genere
+ Distribuzione dei membri per età
+ Distribuzione dei membri per tipo di piano
+ Membri che non hanno completato l'immunizzazione preventiva

Per esempi di distribuzione dei membri per regione e membri che non hanno completato l'immunizzazione preventiva, vedere la sezione Informazioni aggiuntive.

Dopo aver creato la dashboard, si genera una storia basata sui dati che spiega le informazioni ricavate dall'analisi precedente. La storia dei dati fornisce raccomandazioni per aumentare il numero di membri che hanno completato le vaccinazioni preventive.

## Prerequisiti e limitazioni
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS. Questa soluzione è stata creata e testata su Amazon Linux 2 su Amazon Elastic Compute Cloud (Amazon EC2).
+ Un cloud privato virtuale (VPC) con una sottorete accessibile dal sistema mainframe.
+ Un database mainframe con dati aziendali. Per i dati di esempio utilizzati per creare e testare questa soluzione, consulta la sezione *Allegati.*
+ Change Data Capture (CDC) abilitato nelle tabelle z/OS Db2. [Per abilitare CDC su Db2 z/OS, consulta la documentazione IBM.](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes)
+ Precisly Connect CDC per l' z/OS installazione sul z/OS sistema che ospita i database di origine. Il Precisly Connect CDC for z/OS image viene fornito come file zip all'interno di [Modernizzazione del mainframe AWS - Data Replication for IBM z/OS Amazon](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) Machine Image (AMI). Per installare Precisly Connect CDC for z/OS sul mainframe, consulta la documentazione di [installazione di Precisly](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) Connect.

**Limitazioni**
+ I dati Db2 del mainframe devono essere in un tipo di dati supportato da Precisly Connect CDC. Per un elenco dei tipi di dati supportati, consulta la [documentazione di Precisly 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).
+ I tuoi dati su Amazon MSK devono essere in un tipo di dati supportato da Amazon Redshift. Per un elenco dei tipi di dati supportati, consulta la documentazione di [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ Amazon Redshift ha comportamenti e limiti di dimensione diversi per diversi tipi di dati. Per ulteriori informazioni, consulta la documentazione di [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ I dati quasi in tempo reale in Quick Sight dipendono dall'intervallo di aggiornamento impostato per il database Amazon Redshift.
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Amazon Q in Quick Sight non è attualmente disponibile in tutte le regioni che supportano Quick Sight. Per endpoint specifici, consulta la pagina [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

**Versioni del prodotto**
+ Modernizzazione del mainframe AWS Replica dei dati con Precisly versione 4.1.44
+ Python versione 3.6 o successiva
+ Apache Kafka versione 3.5.1****

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

**Architettura Target**

Il diagramma seguente mostra un'architettura per generare informazioni aziendali dai dati mainframe utilizzando [Modernizzazione del mainframe AWS Data Replication with Precisly e](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) Amazon Q in Quick Sight.

![\[Processo in sette fasi dal z/OS mainframe ad Amazon. QuickSight\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


Il diagramma mostra il flusso di lavoro seguente:

1. L'agente Precisly Log Reader legge i dati dai log Db2 e li scrive in uno storage transitorio su un file system OMVS sul mainframe.

1. Il Publisher Agent legge i log Db2 non elaborati dallo storage transitorio.

1. Il daemon del controller locale autentica, autorizza, monitora e gestisce le operazioni.

1. L'agente Apply viene distribuito su Amazon EC2 utilizzando l'AMI preconfigurata. Si connette con Publisher Agent tramite il daemon del controller utilizzando TCP/IP. L'agente Apply invia i dati ad Amazon MSK utilizzando più worker per un throughput elevato.

1. I lavoratori scrivono i dati nell'argomento Amazon MSK in formato JSON. Come destinazione intermedia per i messaggi replicati, Amazon MSK offre funzionalità di failover automatizzate e ad alta disponibilità.

1. L'ingestione di streaming di Amazon Redshift fornisce l'inserimento di dati a bassa latenza e alta velocità da Amazon MSK a un database Amazon Redshift Serverless. Una procedura memorizzata in Amazon Redshift esegue la riconciliazione dei dati di modifica del mainframe (insert/update/deletes) nelle tabelle Amazon Redshift. Queste tabelle Amazon Redshift fungono da fonte di analisi dei dati per Quick Sight.

1. Gli utenti accedono ai dati in Quick Sight per analisi e approfondimenti. Puoi utilizzare Amazon Q in Quick Sight per interagire con i dati utilizzando istruzioni in linguaggio naturale.

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

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e scalarli rapidamente verso l'esterno o verso l'esterno.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) consente di creare e controllare chiavi crittografiche per proteggere i dati.
+ [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK) è un servizio completamente gestito che ti aiuta a creare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare dati di streaming.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) è un servizio di business intelligence (BI) su scala cloud che ti aiuta a visualizzare, analizzare e generare report sui dati in un'unica dashboard. Questo modello utilizza le funzionalità di BI generativa di Amazon Q in Quick Sight.
+ [Amazon Redshift Serverless](https://aws.amazon.com/redshift/redshift-serverless/) è un'opzione serverless di Amazon Redshift che rende più efficiente l'esecuzione e la scalabilità delle analisi in pochi secondi senza la necessità di configurare e gestire l'infrastruttura di data warehouse.
+ Con [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) puoi sostituire le credenziali nel codice,incluse le password, con una chiamata API a Secrets Manager in modo da recuperare il segreto a livello di codice.

**Altri strumenti**
+ [Precisly Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) raccoglie e integra i dati dai sistemi legacy in piattaforme cloud e dati.

**Deposito di codici**

Il codice per questo pattern è disponibile nel repository GitHub [DataInsightsMainframe\$1](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition) \$1change\$1data\$1reconciliation. Il codice è una procedura memorizzata in Amazon Redshift. Questa procedura memorizzata riconcilia le modifiche ai dati del mainframe (inserimenti, aggiornamenti ed eliminazioni) da Amazon MSK alle tabelle Amazon Redshift. Queste tabelle Amazon Redshift fungono da fonte di analisi dei dati per Quick Sight.

## Best practice
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Segui le [best practice](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html) durante la configurazione del cluster Amazon MSK.
+ Segui le [best practice di analisi dei dati](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations) di Amazon Redshift per migliorare le prestazioni.
+ Quando crei i ruoli AWS Identity and Access Management (IAM) per la configurazione Precisly, segui il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le [best practice relative alla [concessione dei privilegi minimi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e alla sicurezza nella documentazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) IAM.

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

### Configura la replica Modernizzazione del mainframe AWS dei dati con Precisly on Amazon EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura un gruppo di sicurezza. | Per connetterti al daemon del controller e al cluster Amazon MSK, [crea un gruppo di sicurezza](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) per l'istanza. EC2 Aggiungi le seguenti regole in entrata e in uscita:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Annota il nome del gruppo di sicurezza. Dovrai fare riferimento al nome quando avvii l' EC2 istanza e configuri il cluster Amazon MSK. | DevOps ingegnere, AWS DevOps | 
| Crea una policy IAM e un ruolo IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps ingegnere, amministratore di sistema AWS | 
| Fornisci un' EC2 istanza. | Per fornire un' EC2 istanza per eseguire Precisly CDC e connettersi ad Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore, DevOps ingegnere di AWS | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il cluster Amazon MSK. | Per creare un cluster Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)La creazione di un cluster con provisioning tipico richiede fino a 15 minuti. Dopo la creazione del cluster, lo stato del cluster cambia da **Creato** ad **Attivo**. | AWS DevOps, amministratore del cloud | 
| Configura SASL/SCRAM l'autenticazione. | Per configurare SASL/SCRAM l'autenticazione per un cluster Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architetto del cloud | 
| Crea l'argomento Amazon MSK. | Per creare l'argomento Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore cloud | 

### Configura il motore di applicazione precisa su Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura gli script Precisly per replicare le modifiche ai dati. | Per configurare gli script CDC di Precisly Connect per replicare i dati modificati dal mainframe all'argomento Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)[Ad esempio i file.ddl, consultate la sezione Informazioni aggiuntive.](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional) | Sviluppatore di app, architetto cloud | 
| Genera la chiave ACL di rete. | Per generare la chiave dell'elenco di controllo degli accessi alla rete (network ACL), procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architetto del cloud, AWS DevOps | 

### Prepara l'ambiente di origine del mainframe
<a name="prepare-the-mainframe-source-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurare le impostazioni predefinite nella schermata ISPF. | [Per configurare le impostazioni predefinite nell'Interactive System Productivity Facility (ISPF), segui le istruzioni nella documentazione di Precisly.](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) | Amministratore di sistema mainframe | 
| Configura il demone del controller. | Per configurare il demone del controller, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Configurazione del publisher. | Per configurare l'editore, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Aggiorna il file di configurazione del demone. | Per aggiornare i dettagli dell'editore nel file di configurazione del demone del controller, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Crea il job per avviare il daemon del controller. | Per creare il job, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Genera il file JCL di Capture Publisher. | Per generare il file JCL dell'editore di acquisizione, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Controlla e aggiorna CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Amministratore di sistema mainframe | 
| Invia i file JCL. | Invia i seguenti file JCL che hai configurato nei passaggi precedenti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Dopo aver inviato i file JCL, puoi avviare Apply Engine in Precisly sull' EC2 istanza. | Amministratore di sistema mainframe | 

### Esegui e convalida CDC
<a name="run-and-validate-cdc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia Apply Engine e convalida il CDC. | Per avviare Apply Engine sull' EC2 istanza e convalidare il CDC, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Architetto del cloud, sviluppatore di app | 
| Convalida i record sull'argomento Amazon MSK. | Per leggere il messaggio sull'argomento Kafka, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Sviluppatore di app, architetto cloud | 

### Archivia i dati relativi alle modifiche del mainframe in un data warehouse Serverless Amazon Redshift
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Amazon Redshift Serverless. | [Per creare un data warehouse Serverless Amazon Redshift, segui le istruzioni nella documentazione.AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)Nella dashboard di Amazon Redshift Serverless, verifica che lo spazio dei nomi e il gruppo di lavoro siano stati creati e siano disponibili. Per questo modello di esempio, il processo potrebbe richiedere 25 minuti. | Ingegnere dei dati | 
| Configura il ruolo IAM e la policy di fiducia necessari per l'acquisizione dello streaming. | Per configurare l'acquisizione di streaming senza server di Amazon Redshift da Amazon MSK, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingegnere dei dati | 
| Connetti Amazon Redshift Serverless ad Amazon MSK. | Per connetterti all'argomento Amazon MSK, crea uno schema esterno in Amazon Redshift Serverless. Nell'editor di query di Amazon Redshift v2, esegui il seguente comando SQL, sostituendolo `'iam_role_arn'` con il ruolo creato in precedenza e sostituendo `'MSK_cluster_arn` «con l'ARN per il cluster.<pre>CREATE EXTERNAL SCHEMA member_schema<br />FROM MSK<br />IAM_ROLE 'iam_role_arn'<br />AUTHENTICATION iam<br />URI 'MSK_cluster_arn';</pre> | Ingegnere della migrazione | 
| Crea una vista materializzata. | Per utilizzare i dati dell'argomento Amazon MSK in Amazon Redshift Serverless, crea una vista materializzata. Nell'editor di query di Amazon Redshift v2, esegui i seguenti comandi SQL, sostituendoli `<MSK_Topic_name>` con il nome del tuo argomento 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> | Ingegnere della migrazione | 
| Crea tabelle di destinazione in Amazon Redshift. | Le tabelle Amazon Redshift forniscono l'input per Quick Sight. Questo modello utilizza le tabelle `member_dtls` e`member_plans`, che corrispondono alle tabelle Db2 di origine sul mainframe.Per creare le due tabelle in Amazon Redshift, esegui i seguenti comandi SQL in Amazon Redshift query editor v2:<pre>-- Table 1: members_dtls<br />CREATE TABLE members_dtls (<br /> memberid INT ENCODE AZ64,<br /> member_name VARCHAR(100) ENCODE ZSTD,<br /> member_type VARCHAR(50) ENCODE ZSTD,<br /> age INT ENCODE AZ64,<br /> gender CHAR(1) ENCODE BYTEDICT,<br /> email VARCHAR(100) ENCODE ZSTD,<br /> region VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;<br /><br />-- Table 2: member_plans<br />CREATE TABLE member_plans (<br /> memberid INT ENCODE AZ64,<br /> medical_plan CHAR(1) ENCODE BYTEDICT,<br /> dental_plan CHAR(1) ENCODE BYTEDICT,<br /> vision_plan CHAR(1) ENCODE BYTEDICT,<br /> preventive_immunization VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;</pre> | Ingegnere della migrazione | 
| Crea una procedura memorizzata in Amazon Redshift. | Questo modello utilizza una procedura memorizzata per sincronizzare i dati di modifica (`INSERT`,`UPDATE`,`DELETE`) dal mainframe di origine alla tabella del data warehouse Amazon Redshift di destinazione per l'analisi in Quick Sight.Per creare la stored procedure in Amazon Redshift, utilizza l'editor di query v2 per eseguire il codice di stored procedure presente nel repository. GitHub  | Ingegnere della migrazione | 
| Leggi dalla vista materializzata in streaming e carica nelle tabelle di destinazione. | La stored procedure legge le modifiche ai dati dalla vista materializzata in streaming e carica le modifiche ai dati nelle tabelle di destinazione. Per eseguire la stored procedure, utilizzare il seguente comando:<pre>call SP_Members_Load();</pre>Puoi utilizzare [Amazon EventBridge](https://aws.amazon.com/eventbridge/) per pianificare i lavori nel tuo data warehouse Amazon Redshift per richiamare questa procedura memorizzata in base ai tuoi requisiti di latenza dei dati. EventBridge esegue i lavori a intervalli fissi. Per verificare se la chiamata precedente alla procedura è stata completata, potrebbe essere necessario utilizzare un meccanismo come una macchina a [AWS Step Functions](https://aws.amazon.com/step-functions/)stati. Per maggiori informazioni, consulta le seguenti risorse:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Un'altra opzione è usare Amazon Redshift Query Editor v2 per pianificare l'aggiornamento. Per ulteriori informazioni, consulta [Pianificazione di una query con l'editor di query v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Ingegnere della migrazione | 

### Connect Quick Sight ai dati in Amazon Redshift
<a name="connect-quick-sight-to-data-in-rs"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Quick Sight. | Per configurare Quick Sight, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Ingegnere della migrazione | 
| Configura una connessione sicura tra Quick Sight e Amazon Redshift. | Per configurare una connessione sicura tra Quick Sight e Amazon Redshift, procedi come segue[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Crea un set di dati per Quick Sight. | Per creare un set di dati per Quick Sight da Amazon Redshift, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Tecnico di migrazione | 
| Unisciti al set di dati. | Per creare analisi in Quick Sight, unisci le due tabelle seguendo le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join).Nel riquadro **Join Configuration**, scegli **Left** for **Join type**. In **Clausole Join, usa**. `memberid from member_plans = memberid from members_details` | Ingegnere della migrazione | 

### Ottieni informazioni aziendali dai dati del mainframe utilizzando Amazon Q in Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Amazon Q in Quick Sight. | Per configurare la funzionalità di BI generativa di Amazon Q in Quick Sight, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html). | Ingegnere della migrazione | 
| Analizza i dati del mainframe e crea una dashboard visiva. | Per analizzare e visualizzare i dati in Quick Sight, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Al termine, puoi pubblicare la dashboard per condividerla con altri membri dell'organizzazione. Ad esempio, consulta la *dashboard visiva di Mainframe* nella sezione [Informazioni aggiuntive](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). | Ingegnere della migrazione | 

### Crea una storia di dati con Amazon Q in Quick Sight a partire dai dati mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una storia basata sui dati. | Crea una storia basata sui dati per spiegare gli approfondimenti tratti dall'analisi precedente e genera una raccomandazione per aumentare l'immunizzazione preventiva per i membri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Visualizza la storia dei dati generati. | Per visualizzare la storia generata dai dati, scegli quella storia nella pagina **Storie di dati**. | Ingegnere della migrazione | 
| Modifica una storia di dati generata. | [Per modificare la formattazione, il layout o gli elementi visivi di una storia di dati, segui le istruzioni contenute nella AWS documentazione.](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html) | Ingegnere della migrazione | 
| Condividi una storia basata sui dati. | Per condividere una storia basata sui dati, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingegnere della migrazione | 

## risoluzione dei problemi
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| La creazione del set di dati da Quick Sight ad Amazon Redshift non è riuscita. `Validate Connection` | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| Il tentativo di avviare il motore Apply sull' EC2 istanza restituisce il seguente errore:`-bash: sqdeng: command not found` | Esporta il percorso di `sqdata` installazione eseguendo il seguente comando:<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| Il tentativo di avviare Apply Engine restituisce uno dei seguenti errori di connessione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Controllate lo spool del mainframe per assicurarvi che i daemon job del controller siano in esecuzione. | 

## Risorse correlate
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Genera approfondimenti utilizzando Modernizzazione del mainframe AWS Amazon Q in 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) (modello)
+ [Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (demo)
+ [Modernizzazione del mainframe AWS - Replica dei dati per IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Inserimento dello streaming da Amazon Redshift in una vista materializzata](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

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

**Esempio di file.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)
);
```

*piani\$1membri.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)
);
```

**Esempio di file.sqd**

Sostituisci **`<kafka topic name>`**con il nome dell'argomento 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;
```

**Dashboard visivo del mainframe**

La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda di analisi `show member distribution by region`*.*

![\[Northeast e Southwest hanno 8 membri, Southwest ha 5 membri, Midwest ha 4 membri.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Southeast mostra 6, Southwest mostra 5 e Midwest mostra 4.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Produzione della storia dei dati**

Le schermate seguenti mostrano sezioni della storia dei dati creata da Amazon Q in Quick Sight per il prompt`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`.

Nell'introduzione, la storia dei dati consiglia di scegliere la regione con il maggior numero di membri per ottenere il massimo impatto dagli sforzi di immunizzazione.

![\[Schermata introduttiva per l'analisi basata sull'area geografica, demografica e sull'età della base di membri.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


La storia dei dati fornisce un'analisi del numero di membri per le quattro regioni. Le regioni del Nordest, del Sud-Ovest e del Sud-Est hanno il maggior numero di membri.

![\[Le regioni del nord-est e del sud-ovest hanno 8 membri, il sud-est ha 6 membri e il Midwest ha 4 membri.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


La storia dei dati presenta un'analisi dei membri per età.

![\[Grafico che mostra che la base di membri è orientata verso gli adulti più giovani e di mezza età.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


La storia dei dati si concentra sugli sforzi di immunizzazione nel Midwest.

![\[Raccomandazione per una campagna di sensibilizzazione personale e sfide regionali.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Continuazione dell'analisi dei dati, con risultati e conclusioni previsti.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


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

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Genera approfondimenti sui dati utilizzando Modernizzazione del mainframe AWS Amazon Q in Quick Sight
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight"></a>

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

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

Nota: il Modernizzazione del mainframe AWS servizio (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se la tua organizzazione ospita dati aziendali critici in un ambiente mainframe, ottenere informazioni approfondite da tali dati è fondamentale per promuovere la crescita e l'innovazione. Sbloccando i dati del mainframe, puoi creare business intelligence più veloce, sicura e scalabile per accelerare il processo decisionale, la crescita e l'innovazione basati sui dati nel cloud Amazon Web Services ().AWS

Questo modello presenta una soluzione per generare informazioni aziendali e creare narrazioni condivisibili dai dati mainframe utilizzando il [trasferimento di Modernizzazione del mainframe AWS file](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) con BMC e [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) in Quick Sight. I set di dati mainframe vengono trasferiti su [Amazon Simple Storage Service (Amazon S3) utilizzando](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) Modernizzazione del mainframe AWS il trasferimento di file con BMC. Una AWS Lambda funzione formatta e prepara il file di dati del mainframe per il caricamento in Quick Sight.

Dopo che i dati sono disponibili in Quick Sight, puoi utilizzare istruzioni in linguaggio naturale con [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) in Quick Sight per creare riepiloghi dei dati, porre domande e generare storie di dati. Non è necessario scrivere query SQL o imparare a usare uno strumento di business intelligence (BI).

**Contesto aziendale**

Questo modello presenta una soluzione per i casi d'uso di analisi dei dati mainframe e analisi dei dati. Utilizzando il modello, crei una dashboard visiva per i dati della tua azienda. Per dimostrare la soluzione, questo modello utilizza un'azienda sanitaria che fornisce piani medici, dentistici e oculistici ai suoi membri negli Stati Uniti. In questo esempio, i dati demografici dei membri e le informazioni sul piano vengono archiviati nei set di dati del mainframe. La dashboard visiva mostra quanto segue:
+ Distribuzione dei membri per regione
+ Distribuzione dei membri per genere
+ Distribuzione dei membri per età
+ Distribuzione dei membri per tipo di piano
+ Membri che non hanno completato l'immunizzazione preventiva

Dopo aver creato la dashboard, si genera una storia basata sui dati che spiega le informazioni ricavate dall'analisi precedente. La storia dei dati fornisce raccomandazioni per aumentare il numero di membri che hanno completato le vaccinazioni preventive.

## Prerequisiti e limitazioni
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Set di dati mainframe con dati aziendali
+ Accesso per installare un agente di trasferimento file sul mainframe

**Limitazioni**
+ Il file di dati del mainframe deve essere in uno dei formati di file supportati da Quick Sight. Per un elenco dei formati di file supportati, [consultate Fonti di dati supportate](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Questo modello utilizza una funzione Lambda per convertire il file mainframe in un formato supportato da Quick Sight.

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

Il diagramma seguente mostra un'architettura per generare informazioni aziendali dai dati mainframe utilizzando il trasferimento di Modernizzazione del mainframe AWS file con BMC e Amazon Q in Quick Sight.

![\[La descrizione del diagramma di architettura segue il diagramma.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un set di dati mainframe contenente dati aziendali viene trasferito su Amazon S3 Modernizzazione del mainframe AWS utilizzando il trasferimento di file con BMC.

1. La funzione Lambda converte il file contenuto nel bucket S3 di destinazione del trasferimento file in formato CSV (valori separati da virgole).

1. La funzione Lambda invia il file convertito al bucket S3 del set di dati di origine.

1. I dati contenuti nel file vengono acquisiti da Quick Sight.

1. Gli utenti accedono ai dati in Quick Sight. Puoi utilizzare Amazon Q in Quick Sight per interagire con i dati utilizzando istruzioni in linguaggio naturale.

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

**Servizi AWS**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
+ [Modernizzazione del mainframe AWS il trasferimento di file con BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) converte e trasferisce i set di dati mainframe su Amazon S3 per casi d'uso di modernizzazione, migrazione e potenziamento del mainframe.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) è un servizio di BI su scala cloud che ti aiuta a visualizzare, analizzare e generare report sui dati in un'unica dashboard. Questo modello utilizza le funzionalità di BI generativa di [Amazon Q in Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-quicksight-q.html).
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

## Best practice
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ Quando crei i ruoli AWS Identity and Access Management (IAM) per Modernizzazione del mainframe AWS il trasferimento di file con BMC e la funzione Lambda, segui il principio [del](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) privilegio minimo.
+ Assicurati che il set di dati di origine supporti i [tipi di dati per Quick](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) Sight. Se il set di dati di origine contiene tipi di dati non supportati, convertili in tipi di dati supportati. Per informazioni sui tipi di dati mainframe non supportati e su come convertirli in tipi di dati supportati da Amazon Q in Quick Sight, consulta la sezione [Risorse correlate](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

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

### Configura il trasferimento di Modernizzazione del mainframe AWS file con BMC
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa l'agente di trasferimento file. | Per installare l'agente di trasferimento Modernizzazione del mainframe AWS file, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html). | Amministratore di sistema mainframe | 
| Crea un bucket S3 per il trasferimento di file su mainframe. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per archiviare il file di output del trasferimento di file con BMC. Modernizzazione del mainframe AWS Nel diagramma di architettura, questo è il bucket di destinazione per il trasferimento dei file. | Ingegnere della migrazione | 
| Crea l'endpoint per il trasferimento dei dati. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Specialista in modernizzazione dei mainframe di AWS | 

### Converti l'estensione del nome del file mainframe per l'integrazione con Quick Sight
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per la funzione Lambda per copiare il file mainframe convertito dal bucket di origine a quello di destinazione finale. | Ingegnere della migrazione | 
| Creazione di una funzione Lambda. | Per creare una funzione Lambda che modifichi l'estensione del file e copi il file mainframe nel bucket di destinazione, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Crea un trigger Amazon S3 per richiamare la funzione Lambda. | Per configurare un trigger che richiama la funzione Lambda, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Per maggiori informazioni consulta [Tutorial: uso di un trigger Amazon S3 per richiamare una funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Responsabile della migrazione | 
| Fornisci le autorizzazioni IAM per la funzione Lambda. | Le autorizzazioni IAM sono necessarie per consentire alla funzione Lambda di accedere ai bucket S3 del set di dati di origine e di destinazione del trasferimento di file. Aggiorna la policy associata al ruolo di esecuzione della funzione Lambda autorizzando `s3:GetObject` e `s3:DeleteObject`**** autorizzando il bucket S3 di destinazione**** per il trasferimento di file e l'`s3:PutObject`accesso per il bucket S3 del set di dati di origine.Per ulteriori informazioni, consulta la**** sezione [Creare una politica di autorizzazioni](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy) in *Tutorial: Usare un trigger di Amazon S3 per richiamare una* funzione Lambda. | Responsabile della migrazione | 

### Definisci un'attività di trasferimento dati su mainframe
<a name="define-a-mainframe-data-transfer-task"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'attività di trasferimento per copiare il file mainframe nel bucket S3. | [Per creare un'operazione di trasferimento di file su mainframe, segui le istruzioni nella documentazione.Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html)**Specificate **la codifica della tabella codici sorgente** come **IBM1047** e la codifica della tabella **codici di destinazione** come UTF-8.** | Ingegnere della migrazione | 
| Verifica l'attività di trasferimento. | Per verificare che il trasferimento dei dati abbia esito positivo, segui le istruzioni contenute nella [Modernizzazione del mainframe AWS documentazione](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console). Verificate che il file mainframe si trovi nel bucket S3 di destinazione per il trasferimento dei file. | Responsabile della migrazione | 
| Verifica la funzione di copia Lambda. | Verificate che la funzione Lambda sia avviata e che il file venga copiato con un'estensione.csv nel bucket S3 del set di dati di origine.Il file.csv creato dalla funzione Lambda è il file di dati di input per Quick Sight. [Per i dati di esempio, consulta il `Sample-data-member-healthcare-APG` file nella sezione Allegati.](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68) | Responsabile della migrazione | 

### Connect Quick Sight ai dati del mainframe
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Quick Sight. | Per configurare Quick Sight, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Responsabile della migrazione | 
| Crea un set di dati per Quick Sight. | [Per creare un set di dati per Quick Sight, segui le istruzioni nella AWS documentazione.](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html) Il file di dati di input è il file mainframe convertito che è stato creato quando è stata definita l'attività di trasferimento dei dati del mainframe. | Responsabile della migrazione | 

### Ottieni informazioni aziendali dai dati del mainframe utilizzando Amazon Q in Quick Sight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Amazon Q in Quick Sight. | Questa funzionalità richiede Enterprise Edition. Per configurare Amazon Q in Quick Sight, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Responsabile della migrazione | 
| Analizza i dati del mainframe e crea una dashboard visiva. | Per analizzare e visualizzare i dati in Quick Sight, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Al termine, puoi pubblicare la dashboard per condividerla con altri membri dell'organizzazione. Ad esempio, consulta la *dashboard visiva di Mainframe* nella sezione [Informazioni aggiuntive](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Ingegnere della migrazione | 

### Crea una storia di dati con Amazon Q in Quick Sight a partire dai dati del mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una storia basata sui dati. | Crea una storia basata sui dati per spiegare gli approfondimenti tratti dall'analisi precedente e genera una raccomandazione per aumentare l'immunizzazione preventiva per i membri:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingegnere della migrazione | 
| Visualizza la storia dei dati generati. | Per visualizzare la storia dei dati generata, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html). | Responsabile della migrazione | 
| Modifica una storia di dati generata. | [Per modificare la formattazione, il layout o gli elementi visivi di una storia di dati, segui le istruzioni contenute nella AWS documentazione.](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html) | Responsabile della migrazione | 
| Condividi una storia basata sui dati. | Per condividere una storia basata sui dati, segui le istruzioni nella [AWS documentazione](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Ingegnere della migrazione | 

## risoluzione dei problemi
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Impossibile individuare i file o i set di dati del mainframe inseriti nei **criteri di ricerca dei set di dati** per **Crea attività di trasferimento** in Modernizzazione del mainframe AWS file transfer with BMC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

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

Per convertire tipi di dati mainframe come [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)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) in un [tipo di dati](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) supportato da Quick Sight, osservate i seguenti schemi:
+ [Converti e decomprimi i dati EBCDIC in ASCII usando Python AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)
+ [Converti i file mainframe dal formato EBCDIC al formato ASCII delimitato da caratteri in Amazon S3 utilizzando 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)

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

**CopyLambdaS3 .py**

Il seguente codice Python è stato generato utilizzando un prompt con Amazon Q in 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'
}
```

**Pannello di controllo visivo del mainframe**

La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda di analisi `show member distribution by region`*.*

![\[Grafico che mostra il numero di membri per il sud-ovest, il Midwest, il nord-est e il sud-est.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


La seguente immagine dei dati è stata creata da Amazon Q in Quick Sight per la domanda`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/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Output della storia dei dati**

Le schermate seguenti mostrano sezioni della storia dei dati creata da Amazon Q in Quick Sight per il prompt. `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.`

Nell'introduzione, la storia dei dati consiglia di scegliere la regione con il maggior numero di membri per ottenere il massimo impatto dagli sforzi di immunizzazione.

![\[Pagina introduttiva per una storia di dati incentrata sui tassi di completamento delle vaccinazioni.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


La storia dei dati fornisce un'analisi del numero di membri delle tre principali regioni e nomina il sud-ovest come la regione principale per quanto riguarda gli sforzi di immunizzazione.

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


**Nota**  
Le regioni del sud-ovest e del nord-est hanno ciascuna otto membri. Tuttavia, il sud-ovest ha più membri che non sono completamente vaccinati, quindi ha maggiori possibilità di beneficiare delle iniziative per aumentare i tassi di immunizzazione.

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

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Implementa l'autenticazione basata su Microsoft Entra ID in un'applicazione mainframe modernizzata AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani e Rimpy Tewani, Amazon Web Services*

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

**Nota**  
Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Le applicazioni mainframe modernizzate utilizzando modelli di refactoring, come quelle di [Modernizzazione del mainframe AWS Refactor con AWS Blu Age, richiedono un'attenta integrazione dei meccanismi di autenticazione nella nuova](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) architettura applicativa. Questa integrazione viene in genere considerata un'attività di post-modernizzazione. L'attività può essere complessa e spesso comporta la migrazione o l'esternalizzazione dei sistemi di autenticazione esistenti per allinearli ai moderni standard di sicurezza e alle pratiche native del cloud. Gli sviluppatori devono considerare come implementare l'autenticazione in modo efficace mentre lavorano entro i limiti dell'ambiente di runtime e delle librerie dell'applicazione modernizzata. Dopo la modernizzazione, AWS offre modi per semplificare l'integrazione del codice moderno AWS Blu Age con sistemi di gestione delle identità e degli accessi come [Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) Cognito e [Microsoft Entra](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) ID (precedentemente noto come Azure AD).

Questo modello spiega come implementare un meccanismo di autenticazione nell'applicazione modernizzata quando il provider di autenticazione è Microsoft Entra ID, senza perdere tempo in ricerche e prove. Il modello prevede:
+ Librerie Angular testate sul campo e pertinenti della Microsoft Authentication Library (MSAL) e altra documentazione Microsoft Entra ID che sono essenziali per l'implementazione dell'autenticazione. 
+ Configurazioni richieste su AWS Blu Age Runtime per abilitare Spring Security utilizzando 2.0. OAuth 
+ Una libreria che acquisisce le identità degli utenti autenticati e le trasmette a Blu Age Runtime. AWS 
+ Misure di sicurezza che consigliamo di implementare.
+ Suggerimenti per la risoluzione dei problemi più comuni relativi alla configurazione dell'ID Microsoft Entra.

**Nota**  
Questo modello utilizza la libreria di OAuth estensioni AWS Blu Age, fornita ai clienti nell'ambito dei [servizi AWS professionali](https://aws.amazon.com/professional-services/). Questa libreria non fa parte di AWS Blu Age Runtime.

## Prerequisiti e limitazioni
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Prerequisiti**
+ Un'applicazione modernizzata prodotta dagli strumenti di refactoring per la modernizzazione del mainframe AWS Blu Age. Questo modello utilizza [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)come esempio un'applicazione mainframe open source.
+ La libreria di OAuth estensioni AWS Blu Age, fornita dal team AWS Blu Age durante la collaborazione con [AWS Professional Services](https://aws.amazon.com/professional-services/).
+ Un attivo Account AWS per implementare e testare l'applicazione modernizzata.
+ Familiarità con i file di configurazione AWS Blu Age e i fondamenti dell'ID Microsoft Entra.

**Limitazioni**
+ Questo modello copre l'autenticazione OAuth 2.0 e i flussi di autorizzazione di base basati su token. Gli scenari di autorizzazione avanzati e i meccanismi di controllo degli accessi dettagliati non rientrano nell'ambito di applicazione.
+ Alcuni Servizi AWS non sono disponibili in tutti. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta [Endpoints and quotas del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

**Versioni del prodotto**

Questo modello è stato sviluppato utilizzando:
+ AWS Blu Age Runtime versione 4.1.0 (il pattern funziona anche con le versioni successive che sono retrocompatibili)
+ Libreria MSAL versione 3.0.23
+ Java Development Kit (JDK) versione 17
+ Versione Angular 16.1

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

**Stack tecnologico di origine**

Nei tipici ambienti mainframe, l'autenticazione viene implementata tramite profili utente. Questi profili identificano gli utenti del sistema, definiscono chi può accedere e specificano quali funzioni gli utenti possono eseguire sulle risorse di sistema. I profili utente sono gestiti dai responsabili della sicurezza o dagli amministratori della sicurezza.

**Stack tecnologico Target**
+ ID Microsoft Entra
+ Backend modernizzato basato su Java Spring Boot
+ AWS Blu Age Runtime
+ Spring Security con OAuth 2.0
+ Applicazione angolare a pagina singola (SPA)

**Architettura Target**

AWS Il runtime Blu Age supporta l'autenticazione OAuth basata su 2.0 per impostazione predefinita, quindi il pattern utilizza quello standard per proteggere il backend APIs.

Il diagramma seguente illustra il flusso del processo.

**Nota**  
Il diagramma include Amazon Aurora come esempio di modernizzazione del database, sebbene Aurora non sia inclusa nei passaggi di questo modello.

![\[Flusso di processo per l'autenticazione basata su Entra ID per un'applicazione AWS Blu Age.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


dove:

1. Un utente tenta di autenticarsi con l'ID Microsoft Entra.

1. Microsoft Entra ID restituisce i token di aggiornamento, accesso e ID utilizzati dall'applicazione nelle chiamate successive.

1. L'interceptor MSAL include il token di accesso nell'`Authorization`intestazione di una richiesta HTTPS per chiamare Blu Age Runtime. AWS 

1. La `extension-oauth` libreria AWS Blu Age estrae le informazioni dell'utente dall'intestazione utilizzando un file di configurazione AWS Blu Age Runtime (`application-main.yml`) e inserisce queste informazioni in un `SharedContext` oggetto in modo che la logica aziendale possa utilizzarle.
**Nota**  
`SharedContext`è un componente di runtime fornito da AWS Blu Age che gestisce il contesto e le informazioni sullo stato dell'applicazione modernizzata. Per ulteriori informazioni sui componenti e sugli aggiornamenti di AWS Blu Age Runtime, consulta le [note di rilascio di AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) nella Modernizzazione del mainframe AWS documentazione. Per ulteriori informazioni sul `application-main.yml` file, consulta [Configurare la configurazione per AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) nella Modernizzazione del mainframe AWS documentazione.

1. Il AWS Blu Age Runtime verifica se il token è presente. 

   1. Se il token è presente, ne verifica la validità comunicando con Microsoft Entra ID. 

   1. Se il token non è presente, AWS Blu Age Runtime restituisce un errore con il codice di stato HTTP 403.

1. Se il token è valido, AWS Blue Age Runtime consente alla logica aziendale di continuare. Se il token non è valido, AWS Blu Age Runtime restituisce un errore con il codice di stato HTTP 403.

**OAuth Flusso di lavoro 2.0**

Per un diagramma di alto livello del flusso di lavoro OAuth 2.0, consulta la documentazione di [Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

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

**Servizi AWS**

[Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornisce strumenti e risorse per aiutarvi a pianificare e implementare la migrazione e la modernizzazione dai mainframe agli AWS ambienti di runtime gestiti. È possibile utilizzare le funzionalità di refactoring di questo servizio, fornite da AWS Blu Age, per convertire e modernizzare le applicazioni mainframe esistenti.

**Nota**  
Modernizzazione del mainframe AWS Il servizio (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Archivio di codice**

L' CardDemo applicazione è stata aggiornata per dimostrare l'integrazione con Microsoft Entra ID. È possibile accedere al codice dal [GitHub repository per questo pattern.](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app)

**Configurazione del backend**

Questo modello richiede modifiche al file di `application-main.yml`**** configurazione per abilitare Spring Security utilizzando OAuth 2.0 sull'applicazione di backend.  Il `.yml` file ha il seguente aspetto:

```
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 Libreria di filtri di OAuth estensione Blu Age**

La libreria di OAuth estensioni AWS Blu Age viene fornita dal team AWS Blu Age durante la collaborazione con [AWS Professional Services](https://aws.amazon.com/professional-services/).

Questa libreria legge la `claim.claims` configurazione nel `application-main.yml` file mostrata nel blocco di codice precedente. Questa configurazione è un elenco. Ogni elemento dell'elenco fornisce due valori: `claimName` e`claimMapValue`. `claimName`rappresenta un nome di chiave in un JSON Web Token (JWT) inviato dal frontend ed `claimMapValue` è il nome della chiave in ingresso. `SharedContext` Ad esempio, se desideri acquisire l'ID utente sul backend, imposta `claimName` il nome della chiave nel JWT che contiene l'ID `userId` that fornito da Microsoft Entra e imposta il nome della chiave `claimMapValue` per recuperare l'ID utente nel codice di backend.

Ad esempio, se si imposta `UserId``claimMapValue`, è possibile utilizzare il codice seguente per estrarre l'ID utente:

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

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

Nell'implementazione di questo modello, tenete conto delle seguenti importanti considerazioni sulla sicurezza.

**Importante**  
Questo modello fornisce una base per l'integrazione dell'autenticazione. Si consiglia di implementare misure di sicurezza oltre a quelle illustrate in questa sezione in base ai requisiti aziendali prima di implementarlo in produzione.
+ **AWS sicurezza della configurazione.**Sposta i valori di configurazione sensibili da `application-main.yml` a Gestione dei segreti AWS. Ad esempio, configura le seguenti proprietà utilizzando Secrets Manager:

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

  Per ulteriori informazioni su come utilizzare Secrets Manager per configurare i parametri AWS Blu Age, consulta [AWS Blu Age Runtime secrets](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html) nella Modernizzazione del mainframe AWS documentazione.
+ **Protezione dell'ambiente di runtime.** Configura l'ambiente applicativo modernizzato con controlli di AWS sicurezza adeguati:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Registrazione su Amazon.** Valuta la possibilità di aggiungere il file`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>
  ```

  Per informazioni sull'abilitazione del tracciamento con CloudWatch, consulta [Enable trace to log correlation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html) nella CloudWatch documentazione.
+ **Configurazione e gestione dei token.** Configura la durata dei token in Microsoft Entra ID per allinearla ai tuoi requisiti di sicurezza. Imposta la scadenza dei token di accesso entro 1 ora e aggiorna i token in modo che scadano entro 24 ore. Nella configurazione AWS Blu Age Runtime (`application-main.yml`), assicurati che la convalida JWT sia configurata correttamente con l'URI esatto dell'emittente e i valori di audience rilevati durante la registrazione dell'applicazione Entra ID.

  Quando un token scade e viene aggiornato:

  1. L'intercettore degli errori dell'applicazione Angular gestisce la risposta 401 ottenendo un nuovo token tramite MSAL.

  1. Il nuovo token viene inviato con la richiesta successiva.

  1. Il OAuth filtro di AWS Blu Age Runtime convalida il nuovo token e si aggiorna automaticamente `SharedContext` con le informazioni utente correnti. Ciò garantisce che la business logic continui ad avere accesso a un contesto utente valido tramite `SharedContext.get().getValue()` chiamate.

  Per ulteriori informazioni sui componenti AWS Blu Age Runtime e sui relativi aggiornamenti, consulta le [note di rilascio di AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Sicurezza di AWS Blu Age Runtime.** La `oauth2-ext` libreria fornita da AWS Blu Age deve essere collocata nella posizione corretta della directory condivisa (`{app-server-home}/shared/`) con le autorizzazioni appropriate per i file. Verifica che la libreria estragga correttamente le informazioni dell'utente JWTs controllando la popolazione degli `SharedContext` oggetti nei tuoi log.
+ **Configurazione dei reclami specifici.** Nel`application-main.yml`, definisci in modo esplicito le attestazioni di cui hai bisogno da Microsoft Entra ID. Ad esempio, per acquisire l'e-mail e i ruoli dell'utente, specifica:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Gestione degli errori.** Aggiungi la gestione degli errori per risolvere gli errori di autenticazione nella tua applicazione Angular; ad esempio:

  ```
  @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);
        })
      );
    }
  }
  ```
+ **Configurazione del timeout della sessione.** Configura le impostazioni di timeout della sessione sia in AWS Blu Age Runtime che in Microsoft Entra ID. Ad esempio, aggiungi il codice seguente al tuo `application-main.yml` file:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** È necessario implementare la MsalGuard funzionalità per tutte le rotte protette per impedire l'accesso non autorizzato. Esempio:

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

  Le rotte prive di MsalGuard protezione saranno accessibili senza autenticazione, esponendo potenzialmente funzionalità sensibili. Assicurati che tutte le rotte che richiedono l'autenticazione includano le guardie nella loro configurazione.

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

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura un account Microsoft Azure per creare un ID Entra. | Per opzioni e istruzioni, consulta il [sito Web di Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Sviluppatore di app | 
| Configura un ID Microsoft Entra nella tua applicazione. | [Per sapere come aggiungere l'autenticazione Microsoft Entra ID B2C (Azure AD B2C) alla tua Angular SPA, consulta la documentazione Microsoft.](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components) Nello specifico:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Sviluppatore di app | 

### Clona il repository e distribuisci il tuo codice Blu Age AWS
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il GitHub repository per ottenere il codice Angular richiesto per l'autenticazione. | Esegui il seguente comando per clonare il [GitHub repository](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) fornito con questo pattern nella tua directory di lavoro corrente locale:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Sviluppatore di app | 
| Implementa il codice modernizzato AWS Blu Age su un server Tomcat per implementare l'autenticazione. | Per configurare l'ambiente locale che include Tomcat e il server di sviluppo Angular, segui i passaggi di installazione forniti dal team AWS Blu Age nell'ambito del coinvolgimento dei clienti con Professional Services. AWS  | Sviluppatore di app | 

### Crea la soluzione di autenticazione
<a name="build-the-authentication-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la sicurezza di AWS Blu Age Runtime per proteggere gli endpoint dell'API REST di AWS Blu Age. | Configura il `application-main.yml` file utilizzato da AWS Blu Age Runtime come segue. Per un esempio di questo file, consultate la sezione [Code repository riportata](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) in precedenza in questo modello.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Sviluppatore di app | 
| Incorpora il codice di esempio dal tuo ambiente locale nella tua base di codice Angular modernizzata di Blu Age. | Per informazioni su come incorporare l'esempio nella tua base di codice Angular modernizzata da AWS Blu Age, consulta la sezione [Code repository](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) precedente in questo modello. | Sviluppatore di app | 
| Posiziona la `oauth2-ext` libreria nella directory condivisa. | **Posiziona la `oauth2-ext` libreria nella directory**** condivisa del server delle applicazioni in modo che la tua applicazione modernizzata **AWS **Blu Age possa utilizzarla.**Esegui i comandi seguenti:<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Sviluppatore di app | 

### Implementa la soluzione di autenticazione
<a name="deploy-the-authentication-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa l'applicazione frontend. | Esegui i seguenti comandi per avviare l'applicazione frontend localmente:<pre>npm install <br />ng serve --ssl<br />npm start</pre>L'aggiunta del `--ssl` flag al `ng serve` comando garantisce che il server di sviluppo utilizzi HTTPS, che è più sicuro di altri protocolli e fornisce una migliore simulazione di un ambiente di produzione. | Sviluppatore di app | 
| Avvia l'applicazione di backend. | Avvia il server Tomcat in Eclipse. | Sviluppatore di app | 

### Eseguire il test dell’applicazione
<a name="test-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Verifica la funzionalità di accesso. | Accedi all'applicazione distribuita localmente all'indirizzo `http://localhost:4200` per verificare che agli utenti venga chiesto di confermare la propria identità.HTTP viene utilizzato qui a scopo dimostrativo. In un ambiente di produzione o in un altro ambiente accessibile al pubblico, è necessario utilizzare HTTPS per motivi di sicurezza. Anche per lo sviluppo locale, ti consigliamo di configurare HTTPS quando possibile.Dovrebbe apparire la richiesta di accesso Microsoft e gli utenti configurati in Microsoft Entra ID dovrebbero poter accedere all'applicazione. | Sviluppatore di app | 
| Verifica l'intestazione di autorizzazione nella richiesta. | I passaggi seguenti utilizzano l'[CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)applicazione come esempio. Le fasi di test per altre applicazioni moderne possono variare.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Sviluppatore di app | 
| Verifica la funzionalità di disconnessione. | Scegli **Esci** per disconnetterti e riprova ad accedere all'applicazione. Dovrebbe presentare una nuova richiesta di accesso. | Sviluppatore di app | 

## risoluzione dei problemi
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Il token emesso da Microsoft Entra ID non è compatibile con la sicurezza Spring Boot OAuth 2.0. | Per una risoluzione del problema, vedi [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) sul OAuth blog. | 
| Domande generali relative ai token. | [Per decodificare e visualizzare il contenuto di un token JWT, utilizza il sito Web https://jwt.io/.](https://jwt.io/) | 

## Risorse correlate
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Per informazioni sul refactoring dell'applicazione utilizzando AWS Blu Age, consulta la documentazione.Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Per capire come funziona la OAuth versione 2.0, visitate il sito Web [OAuth 2.0](https://oauth.net/2/).
+ Per una panoramica della Microsoft Authentication Library (MSAL), consulta la [documentazione di Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Per informazioni sui profili utente su un sistema AS/400, consulta il tutorial [IBM i (AS4](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14)00).
+ [Per il flusso di autenticazione OAuth 2.0 e OpenID Connect (OIDC) nella piattaforma di identità Microsoft, consulta la documentazione di Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)

# Integra il controller universale Stonebranch con la modernizzazione del mainframe AWS
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization"></a>

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

*Robert Lemieux e Huseyin Gomleksizoglu, Stonebranch*

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

Nota: Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Questo modello spiega come integrare l'orchestrazione del [carico di lavoro Stonebranch Universal Automation Center (UAC) con](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) il servizio di modernizzazione del mainframe di [Amazon Web Services (](https://aws.amazon.com/mainframe-modernization/)AWS). Il servizio AWS Mainframe Modernization migra e modernizza le applicazioni mainframe nel cloud AWS. Offre due modelli: [AWS Mainframe Modernization Replatform](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) con tecnologia Micro Focus Enterprise e AWS [Mainframe Modernization Automated Refactor con AWS](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) Blu Age.  

Stonebranch UAC è una piattaforma di automazione e orchestrazione IT in tempo reale. L'UAC è progettato per automatizzare e orchestrare lavori, attività e flussi di lavoro su sistemi IT ibridi, da quelli locali a AWS. I clienti aziendali che utilizzano sistemi mainframe stanno passando a infrastrutture e applicazioni modernizzate incentrate sul cloud. Gli strumenti e i servizi professionali di Stonebranch facilitano la migrazione degli scheduler e delle funzionalità di automazione esistenti nel cloud AWS.

Quando migri o modernizzi i tuoi programmi mainframe sul cloud AWS utilizzando il servizio AWS Mainframe Modernization, puoi utilizzare questa integrazione per automatizzare la pianificazione in batch, aumentare l'agilità, migliorare la manutenzione e ridurre i costi.

Questo modello fornisce istruzioni per l'integrazione dello [scheduler Stonebranch](https://www.stonebranch.com/) con le applicazioni mainframe migrate al runtime Micro Focus Enterprise del servizio AWS Mainframe Modernization. Questo modello è destinato agli architetti di soluzioni, agli sviluppatori, ai consulenti, agli specialisti della migrazione e a tutti coloro che si occupano di migrazioni, modernizzazioni, operazioni o. DevOps

**Risultato mirato**

Questo modello si concentra sul raggiungimento dei seguenti obiettivi:
+ La capacità di pianificare, automatizzare ed eseguire processi batch mainframe in esecuzione nel servizio AWS Mainframe Modernization (runtime Microfocus) di Stonebranch Universal Controller.
+ Monitora i processi batch dell'applicazione dallo Stonebranch Universal Controller.
+ Start/Restart/Rerun/Stopi processi in batch vengono eseguiti automaticamente o manualmente dallo Stonebranch Universal Controller.
+ Recupera i risultati dei processi batch di AWS Mainframe Modernization.
+ Acquisisci i CloudWatch log [AWS](https://aws.amazon.com/cloudwatch/) dei lavori in batch in Stonebranch Universal Controller.

## Prerequisiti e limitazioni
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'applicazione Micro Focus [Bankdemo](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) con file Job Control Language (JCL) e un processo batch distribuito in un ambiente del servizio AWS Mainframe Modernization (Micro Focus runtime)
+ [Conoscenza di base su come creare e distribuire un'applicazione mainframe eseguita su Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Conoscenza di base di Stonebranch Universal Controller
+ [Licenza di prova di Stonebranch (contatta Stonebranch)](https://www.stonebranch.com/)
+ Istanze Amazon Elastic Compute Cloud (Amazon EC2) Windows o Linux (ad esempio xlarge) con un minimo di quattro core, 8 GB di memoria e 2 GB di spazio su disco
+ Apache Tomcat versione 8.5.x o 9.0.x
+ Oracle Java Runtime Environment (JRE) o OpenJDK versione 8 o 11
+ [Edizione compatibile con Amazon Aurora MySQL](https://aws.amazon.com/rds/aurora/)
+ [Bucket Amazon Simple Storage Service (Amazon S3](https://aws.amazon.com/s3/)) per repository di esportazione
+ [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) per le connessioni degli agenti Stonebranch Universal Message Service (OMS) per l'alta disponibilità (HA)
+ File di installazione di Stonebranch Universal Controller 7.2 Universal Agent 7.2
+ [Modello di pianificazione delle attività](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) di AWS Mainframe Modernization (ultima versione rilasciata del file.zip)

**Limitazioni**
+ Il prodotto e la soluzione sono stati testati e la compatibilità è stata convalidata solo con OpenJDK 8 e 11.
+ Il modello [aws-mainframe-modernization-stonebranchdi pianificazione delle attività di integrazione](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) funzionerà solo con il servizio AWS Mainframe Modernization.
+ Questo modello di pianificazione delle attività funzionerà solo su un'edizione Unix, Linux o Windows degli agenti Stonebranch.
+ Alcuni servizi AWS non sono disponibili in tutte le regioni AWS. Per la disponibilità regionale, consulta [i servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta la pagina [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

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

**Architettura dello stato di destinazione**

Il diagramma seguente mostra l'esempio di ambiente AWS richiesto per questo programma pilota.

![\[Stonebranch UAC che interagisce con l'ambiente di modernizzazione del mainframe AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. Stonebranch Universal Automation Center (UAC) include due componenti principali: Universal Controller e Universal Agents. Stonebranch OMS viene utilizzato come bus di messaggi tra il controller e i singoli agenti.

1. Il database Stonebranch UAC viene utilizzato da Universal Controller. Il database può essere compatibile con MySQL, Microsoft SQL Server, Oracle o Aurora MySQL.

1. Servizio AWS Mainframe Modernization: ambiente di runtime Micro Focus con l'[BankDemo applicazione](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/) distribuita. I file BankDemo dell'applicazione verranno archiviati in un bucket S3. Questo bucket contiene anche i file JCL del mainframe.

1. Stonebranch UAC può eseguire le seguenti funzioni per l'esecuzione in batch:

   1. Avvia un processo batch utilizzando il nome del file JCL presente nel bucket S3 collegato al servizio di modernizzazione del mainframe AWS.

   1. Ottieni lo stato dell'esecuzione del processo batch.

   1. Attendi il completamento dell'esecuzione del processo batch.

   1. Recupera i registri dell'esecuzione del processo batch.

   1. Esegui nuovamente i processi batch non riusciti.

   1. Annulla il processo batch mentre il processo è in esecuzione.

1. Stonebranch UAC può eseguire le seguenti funzioni dell'applicazione:

   1. Avvia l'applicazione

   1. Ottieni lo stato della domanda

   1. Attendi che l'applicazione venga avviata o interrotta

   1. Interrompi l'applicazione

   1. Recupera i registri delle operazioni dell'applicazione

**Conversione dei lavori di Stonebranch**

Il diagramma seguente rappresenta il processo di conversione del lavoro di Stonebranch durante il percorso di modernizzazione. Descrive come le pianificazioni dei lavori e le definizioni delle attività vengono convertite in un formato compatibile in grado di eseguire attività batch di AWS Mainframe Modernization.

![\[Processo dal mainframe alla conversione allo strumento di pianificazione dei processi su Amazon EC2 con file JCL in Amazon S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Per il processo di conversione, le definizioni dei job vengono esportate dal sistema mainframe esistente.

1. I file JCL possono essere caricati nel bucket S3 per l'applicazione Mainframe Modernization in modo che questi file JCL possano essere distribuiti dal servizio AWS Mainframe Modernization.

1. Lo strumento di conversione converte le definizioni di lavoro esportate in attività UAC.

1. Dopo aver creato tutte le definizioni delle attività e le pianificazioni dei lavori, questi oggetti verranno importati nell'Universal Controller. Le attività convertite eseguono quindi i processi nel servizio AWS Mainframe Modernization anziché eseguirli sul mainframe.

**Architettura Stonebranch UAC**

Il seguente diagramma di architettura rappresenta un active-active-passive modello di controller universale ad alta disponibilità (HA). Stonebranch UAC è implementato in più zone di disponibilità per fornire alta disponibilità e supportare il disaster recovery (DR).

![\[Ambiente Multi-AZ con DR e controller, Amazon EFS, Aurora e un bucket S3 per i backup.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Controller universale*

Due server Linux vengono forniti come controller universali. Entrambi si connettono allo stesso endpoint del database. Ogni server ospita un'applicazione Universal Controller e un OMS. La versione più recente di Universal Controller viene utilizzata al momento del provisioning.

Gli Universal Controller vengono distribuiti nella webapp Tomcat come documento ROOT e vengono serviti sulla porta 80. Questa implementazione semplifica la configurazione del load balancer del frontend.

HTTP over TLS o HTTPS è abilitato utilizzando il certificato wildcard di Stonebranch (ad esempio,). `https://customer.stonebranch.cloud` Ciò protegge la comunicazione tra il browser e l'applicazione.

*OMS*

Un Universal Agent e un OMS (Opswise Message Service) risiedono su ogni server Universal Controller. Tutti gli Universal Agent distribuiti dal cliente sono configurati per connettersi a entrambi i servizi OMS. OMS funge da servizio di messaggistica comune tra gli Universal Agent e l'Universal Controller.

Amazon EFS monta una directory di spool su ogni server. OMS utilizza questa directory di spool condivisa per mantenere le informazioni sulla connessione e sulle attività lontane da controller e agenti. OMS funziona in modalità ad alta disponibilità. Se l'OMS attivo non funziona, l'OMS passivo ha accesso a tutti i dati e riprende automaticamente le operazioni attive. Gli Universal Agent rilevano questa modifica e si connettono automaticamente al nuovo OMS attivo.

*Database*

Amazon Relational Database Service (Amazon RDS) ospita il database UAC, con Amazon Aurora MySQL come motore. Amazon RDS aiuta a gestire e offrire backup pianificati a intervalli regolari. Entrambe le istanze Universal Controller si connettono allo stesso endpoint del database.

*Sistema di bilanciamento del carico*

Per ogni istanza è configurato un Application Load Balancer. Il load balancer indirizza il traffico verso il controller attivo in qualsiasi momento. I nomi di dominio delle istanze puntano ai rispettivi endpoint di bilanciamento del carico.

*URLs*

Ciascuna delle tue istanze ha un URL, come illustrato nell'esempio seguente.


| 
| 
| Ambiente | Istanza | 
| --- |--- |
| **Produzione** | `customer.stonebranch.cloud` | 
| **Sviluppo (non produzione)** | `customerdev.stonebranch.cloud` | 
| **Test (non di produzione)** | `customertest.stonebranch.cloud` | 

**Nota**  
  I nomi delle istanze non di produzione possono essere impostati in base alle proprie esigenze.

*Disponibilità elevata*

L'alta disponibilità (HA) è la capacità di un sistema di funzionare ininterrottamente senza guasti per un determinato periodo di tempo. Tali errori includono, a titolo esemplificativo, lo storage, i ritardi di risposta nelle comunicazioni con il server causati da problemi di CPU o memoria e la connettività di rete.

Per soddisfare i requisiti HA:
+ Tutte le istanze EC2, i database e le altre configurazioni vengono replicati su due zone di disponibilità separate all'interno della stessa regione AWS.
+ Il controller viene fornito tramite un'Amazon Machine Image (AMI) su due server Linux nelle due zone di disponibilità. Ad esempio, se hai effettuato il provisioning nella regione Europa eu-west-1, hai un controller universale nella zona di disponibilità eu-west-1a e nella zona di disponibilità eu-west-1c.
+ Nessun processo può essere eseguito direttamente sui server delle applicazioni e nessun dato può essere archiviato su questi server.
+ L'Application Load Balancer esegue controlli di integrità su ogni Universal Controller per identificare quello attivo e indirizzare il traffico verso di esso. Nel caso in cui un server presenti problemi, il load balancer porta automaticamente l'Universal Controller passivo a uno stato attivo. Il load balancer identifica quindi la nuova istanza attiva di Universal Controller dai controlli di integrità e inizia a indirizzare il traffico. Il failover avviene entro quattro minuti senza perdita di posti di lavoro e l'URL del frontend rimane lo stesso.
+ Il servizio di database compatibile con Aurora MySQL archivia i dati di Universal Controller. Per gli ambienti di produzione, un cluster di database è creato con due istanze di database in due diverse zone di disponibilità all'interno di una singola regione AWS. Entrambi gli Universal Controller utilizzano un'interfaccia Java Database Connectivity (JDBC) che punta a un singolo endpoint del cluster di database. Nel caso in cui un'istanza di database presenti problemi, l'endpoint del cluster di database punta dinamicamente all'istanza integra. Non sono richiesti interventi manuali.

*Backup ed eliminazione*

Stonebranch Universal Controller è configurato per eseguire il backup e l'eliminazione dei vecchi dati seguendo la pianificazione mostrata nella tabella.


| 
| 
| Tipo | Schedule | 
| --- |--- |
| **Attività** | 7 giorni | 
| **Audit** | 90 giorni | 
| **Cronologia** | 60 giorni | 

I dati di backup precedenti alle date mostrate vengono esportati in formato.xml e archiviati nel file system. Una volta completato il processo di backup, i dati più vecchi vengono eliminati dal database e archiviati in un bucket S3 per un massimo di un anno per le istanze di produzione.

È possibile modificare questa pianificazione nell'interfaccia Universal Controller. Tuttavia, l'aumento di questi intervalli di tempo potrebbe causare tempi di inattività più lunghi durante la manutenzione.

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

**Servizi AWS**
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) è una piattaforma AWS nativa per il cloud che ti aiuta a modernizzare le tue applicazioni mainframe in ambienti di runtime gestiti da AWS. Offre strumenti e risorse per aiutarti a pianificare e implementare la migrazione e la modernizzazione.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) fornisce volumi di storage a livello di blocchi da utilizzare con le istanze Amazon EC2.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ti aiuta a creare e configurare file system condivisi nel cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS. Questo modello utilizza l'edizione compatibile con Amazon Aurora MySQL.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni. Ad esempio, puoi distribuire il traffico tra istanze Amazon EC2, contenitori e indirizzi IP in una o più zone di disponibilità. Questo modello utilizza un Application Load Balancer.

**Stonebranch**
+ [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) è un sistema di prodotti per l'automazione dei carichi di lavoro aziendali. Questo modello utilizza i seguenti componenti UAC:
  + [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), un'applicazione Web Java in esecuzione in un contenitore Web Tomcat, è la soluzione aziendale per la pianificazione dei lavori e l'automazione del carico di lavoro di Universal Automation Center. Il controller presenta un'interfaccia utente per la creazione, il monitoraggio e la configurazione delle informazioni sul controller, gestisce la logica di pianificazione, elabora tutti i messaggi da e verso gli Universal Agent e sincronizza gran parte delle operazioni ad alta disponibilità di Universal Automation Center.
  + [Universal Agent è un agente](https://www.stonebranch.com/documentation-universal-agent) di pianificazione indipendente dal fornitore che collabora con Job Scheduler esistente su tutte le principali piattaforme informatiche, sia legacy che distribuite. Sono supportati tutti gli scheduler che funzionano su Unixz/Series, i/Series, Linux o Windows.
+ [Universal Agent è un agente](https://www.stonebranch.com/documentation-universal-agent) di pianificazione indipendente dal fornitore che collabora con Job Scheduler esistente su tutte le principali piattaforme informatiche, sia legacy che distribuite. Sono supportati tutti gli scheduler che funzionano su Unixz/Series, i/Series, Linux o Windows.
+ [Stonebranch -integration aws-mainframe-modernization-stonebranch AWS Mainframe Modernization Universal Extension](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) è il modello di integrazione per eseguire, monitorare e rieseguire lavori in batch nella piattaforma AWS Mainframe Modernization.

**Codice**

[Il codice per questo pattern è disponibile nel repository -integration. aws-mainframe-modernization-stonebranch](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/) GitHub 

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

### Installa Universal Controller e Universal Agent su Amazon EC2
<a name="install-universal-controller-and-universal-agent-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica i file di installazione. | Scarica l'installazione dai server Stonebranch. Per ottenere i file di installazione, contatta Stonebranch. | Architetto del cloud | 
| Avvia l'istanza EC2. | Avrai bisogno di circa 3 GB di spazio aggiuntivo per le installazioni di Universal Controller e Universal Agent. Fornisci quindi almeno 30 GB di spazio su disco per l'istanza.Aggiungi la porta 8080 al gruppo di sicurezza in modo che sia accessibile. | Architetto del cloud | 
| Verifica i prerequisiti. | Prima dell'installazione, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore cloud, amministratore Linux | 
| Installa Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Architetto cloud, amministratore Linux | 
| Installa Universal Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore cloud, amministratore Linux | 
| Aggiungi OMS a Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Importa AWS Mainframe Modernization Universal Extension e crea un'attività
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Importa modello di integrazione. | Per questo passaggio, è necessaria l'estensione [universale di AWS Mainframe Modernization](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases). Assicurati che sia stata scaricata l'ultima versione rilasciata del file.zip.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)Dopo l'importazione del modello di integrazione, vedrai **AWS Mainframe Modernization Tasks in Servizi** **disponibili**. | Amministratore di Universal Controller | 
| Abilita credenziali risolvibili. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Avvia l'operazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Test di avvio di un processo in batch
<a name="test-starting-a-batch-job"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'attività per il processo batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Avvia l'operazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Crea un flusso di lavoro per più attività
<a name="create-a-workflow-for-multiple-tasks"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Copia le attività. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Attività di aggiornamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Crea un flusso di lavoro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 
| Controlla lo stato del flusso di lavoro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Risolvi i problemi relativi ai processi batch non riusciti e rieseguili
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Correggi l'operazione non riuscita e riesegui. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Crea le attività di avvio dell'applicazione e interrompi l'applicazione
<a name="create-start-application-and-stop-application-tasks"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'azione Avvia applicazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Amministratore di Universal Controller | 

### Creare un'attività Annulla esecuzione Batch
<a name="create-a-cancel-batch-execution-task"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l'azione Annulla Batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Risorse correlate
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Controller universale](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Agente universale](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [Impostazioni LDAP](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [Single Sign-On SAML](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Strumento di conversione Xpress](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Informazioni aggiuntive
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Icone nell'editor del flusso di lavoro**

![\[Attività RUNHELLO nella parte superiore, FOOBAR nella parte centrale e le attività rimanenti al terzo livello.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Tutte le attività connesse**

![\[RUNHELLO si connette a FOOBAR, che si collega alle tre attività rimanenti.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**Stato del flusso di lavoro**

![\[L'operazione FOOBAR ha esito negativo e le tre attività rimanenti sono in attesa.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Esegui la migrazione e la replica di file VSAM su Amazon RDS o Amazon MSK utilizzando Connect from Precisly
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna e Boopathy GOPALSAMY, Amazon Web Services*

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

[Questo modello mostra come migrare e replicare i file VSAM (Virtual Storage Access Method) da un mainframe a un ambiente di destinazione nel cloud AWS utilizzando Connect from Precisly.](https://www.precisely.com/product/precisely-connect/connect) Gli ambienti di destinazione coperti da questo modello includono Amazon Relational Database Service (Amazon RDS) e Amazon Managed Streaming for Apache Kafka (Amazon MSK). Connect utilizza [Change Data Capture (CDC)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect) per monitorare continuamente gli aggiornamenti dei file VSAM di origine e quindi trasferirli in uno o più ambienti di destinazione AWS. Puoi utilizzare questo modello per raggiungere i tuoi obiettivi di modernizzazione delle applicazioni o di analisi dei dati. Ad esempio, puoi utilizzare Connect per migrare i file dell'applicazione VSAM sul cloud AWS con bassa latenza o migrare i dati VSAM verso un data warehouse o un data lake AWS per analisi in grado di tollerare latenze di sincronizzazione superiori a quelle richieste per la modernizzazione delle applicazioni.

## Prerequisiti e limitazioni
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Prerequisiti**
+ [IBM V2R1 o versione successiva z/OS ](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument)
+ [CICS Transaction Server per z/OS (CICS TS) V5.1 o versione successiva (acquisizione dati 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 versione successiva
+ Conformità ai [requisiti di sicurezza z/OS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS) (ad esempio, autorizzazione APF per le librerie di caricamento) SQData 
+ I log di ripristino VSAM sono attivati
+ (Opzionale) [CICS VSAM Recovery Version (CICS VR) per acquisire automaticamente i registri CDC](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr)
+ Un account AWS attivo
+ Un [Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) con una sottorete raggiungibile dalla tua piattaforma legacy
+ Una licenza VSAM Connect di Precisly

**Limitazioni**
+ Connect non supporta la creazione automatica di tabelle di destinazione basate su schemi o quaderni VSAM di origine. È necessario definire la struttura della tabella di destinazione per la prima volta.
+ Per destinazioni non in streaming come Amazon RDS, è necessario specificare la mappatura tra origine di conversione e destinazione nello script di configurazione di Apply Engine.
+ Le funzioni di registrazione, monitoraggio e avviso sono implementate APIs e richiedono componenti esterni (come Amazon CloudWatch) per essere completamente operativi.

**Versioni del prodotto**
+ SQData 40134 per z/OS
+ SQData 4.0.43 per Amazon Linux Amazon Machine Image (AMI) su Amazon Elastic Compute Cloud (Amazon) EC2

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

**Stack tecnologico di origine**
+ Job Control Language (JCL)
+ Shell Unix z/OS e Interactive System Productivity Facility (ISPF)
+ Utilità VSAM (IDCAMS)

**Stack tecnologico Target**
+ Amazon EC2
+ MSK Amazon
+ Amazon RDS
+ Amazon VPC

**Architettura Target**

*Migrazione di file VSAM su Amazon RDS*

Il diagramma seguente mostra come migrare i file VSAM su un database relazionale, come Amazon RDS, in tempo reale o quasi reale utilizzando il CDC nell'ambiente di origine (mainframe locale) e l'Apply [Engine agent/publisher nell'](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine)ambiente di destinazione (AWS Cloud).

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


Il diagramma mostra il seguente flusso di lavoro in batch:

1. Connect acquisisce le modifiche a un file confrontando i file VSAM dai file di backup per identificare le modifiche e quindi invia le modifiche al logstream.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti a un motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il motore di applicazione nell'ambiente di destinazione riceve le modifiche dall'agente Publisher e le applica a un database relazionale o non relazionale.

Il diagramma mostra il seguente flusso di lavoro online:

1. Connect acquisisce le modifiche nel file online utilizzando una replica del registro e quindi trasmette le modifiche acquisite in un flusso di registro.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti al motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il motore di applicazione nell'ambiente di destinazione riceve le modifiche dall'agente Publisher e quindi le applica a un database relazionale o non relazionale.

*Migrazione di file VSAM su Amazon MSK*

Il diagramma seguente mostra come eseguire lo streaming di strutture di dati VSAM da un mainframe ad Amazon MSK in modalità ad alte prestazioni e generare automaticamente conversioni di schemi JSON o AVRO che si integrano con Amazon MSK.

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


Il diagramma mostra il seguente flusso di lavoro in batch:

1. Connect acquisisce le modifiche a un file utilizzando CICS VR o confrontando i file VSAM dai file di backup per identificare le modifiche. Le modifiche acquisite vengono inviate al logstream.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti al motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il Replicator Engine che opera in modalità di elaborazione parallela divide i dati in un'unità di cache di lavoro.

1. I thread di lavoro acquisiscono i dati dalla cache.

1. I dati vengono pubblicati sugli argomenti di Amazon MSK dai thread di lavoro.

1. [Gli utenti applicano le modifiche da Amazon MSK a destinazioni come Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) OpenSearch o Amazon Service utilizzando i connettori.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

Il diagramma mostra il seguente flusso di lavoro online:

1. Le modifiche nel file online vengono acquisite utilizzando una replica del registro. Le modifiche acquisite vengono trasmesse al logstream.

1. L'editore utilizza i dati dal logstream di sistema.

1. L'editore comunica le modifiche ai dati acquisiti al motore di destinazione tramite TCP/IP. Il Controller Daemon autentica la comunicazione tra l'ambiente di origine e quello di destinazione.

1. Il Replicator Engine che opera in modalità di elaborazione parallela divide i dati in un'unità di cache di lavoro.

1. I thread di lavoro acquisiscono i dati dalla cache.

1. I dati vengono pubblicati sugli argomenti di Amazon MSK dai thread di lavoro.

1. [Gli utenti applicano le modifiche da Amazon MSK a destinazioni come DynamoDB, Amazon S3 o Service utilizzando i connettori OpenSearch .](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Tools (Strumenti)
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK) è un servizio completamente gestito che ti aiuta a creare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare dati di streaming.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.

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

### Preparare l'ambiente di origine (mainframe)
<a name="prepare-the-source-environment-mainframe"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installare Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Configura la directory ZfS. | Per configurare una directory ZfS, seguite le istruzioni contenute nelle directory delle [variabili ZFs nella documentazione di Precisly](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).Le configurazioni dei controller daemon e degli Capture/Publisher agenti sono memorizzate nel file system z/OS UNIX Systems Services (denominato ZFs). Gli agenti Controller Daemon, Capture, Storage e Publisher richiedono una struttura di directory ZfS predefinita per archiviare un numero limitato di file. | Sviluppatore/amministratore IBM Mainframe | 
|  TCP/IP Configura le porte. | Per configurare le TCP/IP porte, segui le istruzioni fornite dalle porte [TCP/IP nella documentazione di Precisly](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).Il Controller Daemon richiede porte sui sistemi di origine TCP/IP . Alle porte fanno riferimento i motori dei sistemi di destinazione (dove vengono elaborati i dati di modifica acquisiti). | Sviluppatore/amministratore IBM Mainframe | 
| Crea un z/OS logstream. | Per creare un [logstream z/OS, segui le istruzioni di [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) nella documentazione di Precisly.Connect utilizza il logstream per acquisire e trasmettere dati tra l'ambiente di origine e l'ambiente di destinazione durante la migrazione.Per un esempio JCL che crea un z/OS LogStream, consulta [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) nella documentazione di Precisly. | Sviluppatore IBM Mainframe | 
| Identifica e autorizza gli utenti ZfS e IDs le attività avviate. | Utilizzate RACF per concedere l'accesso al file system OMVS ZfS. Per un esempio JCL, vedete [Identificare e autorizzare l'utente e l'attività avviata da ZfS](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) nella documentazione di Precisly. IDs | Sviluppatore/amministratore IBM Mainframe | 
| Genera chiavi z/OS pubbliche/private e il file di chiave autorizzato. | Esegui JCL per generare la key pair. Per un esempio, vedi *Esempio di coppia di chiavi* nella sezione *Informazioni aggiuntive* di questo modello.Per istruzioni, consulta [Generare chiavi z/OS pubbliche e private e file di chiavi autorizzate](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) nella documentazione di Precisly. | Sviluppatore/amministratore di IBM Mainframe | 
| Attiva CICS VSAM Log Replicate e collegalo al logstream. | Esegui il seguente script 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> | Sviluppatore/amministratore IBM Mainframe | 
| Attiva il registro di ripristino dei file VSAM tramite un FCT. | Modificate la File Control Table (FCT) in modo che rifletta le seguenti modifiche ai parametri:<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> | Sviluppatore/amministratore IBM Mainframe | 
| Configura CDCz Log per l'agente Publisher. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Attiva il Controller Daemon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Attiva l'editore. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 
| Attiva il logstream. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore/amministratore IBM Mainframe | 

### Preparare l'ambiente di destinazione (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Precisly su un' EC2 istanza. | Per installare Connect from Precisly sull'AMI Amazon Linux per Amazon EC2, segui le istruzioni di [Install Connect CDC (SQData) su 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) nella documentazione di Precisly. | Informazioni generali su AWS | 
|  TCP/IP Porte aperte. | Per modificare il gruppo di sicurezza in modo da includere le porte Controller Daemon per l'accesso in entrata e in uscita, segui le istruzioni di [TCP/IP nella documentazione di Precisly](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). | Informazioni generali su AWS | 
| Crea directory di file. | Per creare directory di file, segui le istruzioni di [Prepare target apply environment](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) nella documentazione di Precisly. | Informazioni generali su AWS | 
| Crea il file di configurazione di Apply Engine. | Create il file di configurazione di Apply Engine nella directory di lavoro di Apply Engine. Il seguente file di configurazione di esempio mostra Apache Kafka come destinazione:<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>Per ulteriori informazioni, consulta [Sicurezza](https://kafka.apache.org/documentation/#security) nella documentazione di Apache Kafka. | Informazioni generali su AWS | 
| Crea script per l'elaborazione di Apply Engine. | Create gli script per Apply Engine per elaborare i dati di origine e replicare i dati di origine sulla destinazione. Per ulteriori informazioni, vedete [Creare uno script del motore di applicazione nella documentazione](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) di Precisly. | Informazioni generali su AWS | 
| Esegui gli script. | Utilizzate i `SQDENG` comandi `SQDPARSE` and per eseguire lo script. Per ulteriori informazioni, consulta [Analizzare uno script per 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) nella documentazione di Precisly. | Informazioni generali su AWS | 

### Convalida l'ambiente
<a name="validate-the-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida l'elenco dei file VSAM e delle tabelle di destinazione per l'elaborazione CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Informazioni generali su AWS, mainframe | 
| Verificare che il SQData prodotto Connect CDC sia collegato. | Esegui un processo di test e verifica che il codice restituito da questo lavoro sia 0 (operazione riuscita).I messaggi di stato di Connect CDC SQData Apply Engine dovrebbero mostrare messaggi di connessione attivi. | Informazioni generali su AWS, mainframe | 

### Esecuzione e convalida dei casi di test (Batch)
<a name="run-and-validate-test-cases-batch"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui il processo batch nel mainframe. | Esegui il processo di applicazione batch utilizzando un JCL modificato. Includi i passaggi nel JCL modificato che eseguono le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Informazioni generali su AWS, mainframe | 
| Controlla il logstream. | Controllate il logstream per confermare che è possibile visualizzare i dati di modifica per il processo batch mainframe completato. | Informazioni generali su AWS, mainframe | 
| Convalida i conteggi per le modifiche delta di origine e la tabella di destinazione. | Per confermare il conteggio dei record, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Informazioni generali su AWS, mainframe | 

### Esegui e convalida i casi di test (online)
<a name="run-and-validate-test-cases-online"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Esegui la transazione online in una regione CICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Sviluppatore IBM Mainframe | 
| Controlla il logstream. | Verifica che il logstream sia popolato con modifiche specifiche al livello di record. | Sviluppatore di mainframe AWS | 
| Convalida il conteggio nel database di destinazione. | Monitora Apply Engine per conteggi a livello record. | Precisamente, Linux | 
| Convalida il conteggio dei record e i record di dati nel database di destinazione. | Interroga il database di destinazione per convalidare il numero di record e i record di dati. | Informazioni generali su AWS | 

## Risorse correlate
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS (documentazione precisa](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))
+ [Applica il motore (documentazione](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) precisa)
+ [Motore Replicator](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (documentazione precisa)
+ [Il flusso di log](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (documentazione IBM)

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

**Esempio di file di configurazione**

Questo è un esempio di file di configurazione per un logstream in cui l'ambiente di origine è un mainframe e l'ambiente di destinazione è 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;
```

**Esempio di coppia di chiavi**

Questo è un esempio di come eseguire JCL per generare la key pair:

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

# Modernizza l'applicazione CardDemo mainframe utilizzando AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

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

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

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)è progettato per accelerare la modernizzazione delle applicazioni mainframe. Utilizza l'intelligenza artificiale generativa per semplificare il processo di modernizzazione del mainframe. Automatizza attività complesse, come l'analisi del codice legacy, la documentazione del mainframe, l'estrazione delle regole aziendali, la scomposizione delle applicazioni monolitiche in un dominio aziendale e il refactoring del codice. Accelera i progetti di modernizzazione automatizzando attività complesse, come l'analisi delle applicazioni e la pianificazione delle sequenze di migrazione. Durante la scomposizione di applicazioni monolitiche, AWS Transform sequenzia in modo intelligente la trasformazione delle applicazioni mainframe, il che aiuta a trasformare le funzioni aziendali in parallelo. AWS Transform può accelerare il processo decisionale e migliorare l'agilità operativa e l'efficienza della migrazione.

Questo modello offre step-by-step istruzioni per aiutarvi a testare le capacità di modernizzazione del mainframe AWS Transform utilizzando [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), che è un esempio di applicazione mainframe open source.

## Prerequisiti e limitazioni
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ AWS IAM Identity Center, [abilitato](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Autorizzazioni](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform) che consentono agli amministratori di abilitare AWS Transform
+ [Autorizzazioni](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector) che consentono agli amministratori di accettare le richieste di connessione Amazon Simple Storage Service (Amazon S3) per l'applicazione Web AWS Transform 

**Limitazioni**
+ AWS Transform è disponibile solo in alcuni. Regioni AWS Per un elenco completo delle regioni supportate, consulta [Regioni supportate per AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform supporta l'analisi del codice, la generazione di documenti, l'estrazione, la scomposizione e il refactoring delle regole aziendali da Common Business-Oriented Language (COBOL) a Java. Per ulteriori informazioni, vedere [Funzionalità e caratteristiche chiave e](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) [Tipi di file supportati](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files) per la trasformazione delle applicazioni mainframe.
+ È prevista una quota di servizio per le funzionalità di trasformazione del mainframe in. AWS Transform Per ulteriori informazioni, vedere [Quotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) for. AWS Transform
+ Per collaborare su uno spazio di lavoro condiviso, tutti gli utenti devono essere utenti registrati della stessa istanza associata all'istanza dell' AWS Transform applicazione Web. AWS IAM Identity Center 
+ Il bucket Amazon S3 e AWS Transform devono trovarsi nella stessa Account AWS regione.

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

Il diagramma seguente mostra l'architettura configurata secondo questo modello.

![\[Utilizzo di AWS Transform per modernizzare un'applicazione mainframe archiviata in un bucket Amazon S3.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


Il diagramma mostra il flusso di lavoro seguente:

1. AWS Transform utilizza un connettore per accedere all'applicazione CardDemo mainframe, archiviata in un bucket Amazon S3.

1. AWS Transform utilizza AWS IAM Identity Center per gestire l'accesso e l'autenticazione degli utenti. Il sistema implementa più livelli di controlli di sicurezza per l'autenticazione, l'autorizzazione, la crittografia e la gestione degli accessi per proteggere codice e artefatti durante l'elaborazione. Gli utenti interagiscono con l' AWS Transform agente tramite un'interfaccia di chat. Puoi fornire istruzioni all'agente AI per attività specifiche in inglese. Per ulteriori informazioni, consulta [Human in the loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl) nella AWS Transform documentazione.

1. L'agente AI interpreta le istruzioni dell'utente, crea un piano di lavoro, divide il lavoro in attività eseguibili e lo esegue in modo autonomo. Gli utenti possono rivedere e approvare la trasformazione. Le attività di trasformazione includono quanto segue:
   + **Analisi del codice**: AWS Transform analizza il codice contenuto in ogni file alla ricerca di dettagli quali il nome del file, il tipo di file, le righe di codice e i relativi percorsi. L'agente analizza il codice sorgente, esegue classificazioni, crea mappature delle dipendenze e identifica eventuali artefatti mancanti. Identifica inoltre i componenti duplicati.
   + **Generazione di documenti**: AWS Transform genera documentazione per l'applicazione mainframe. Analizzando il codice, può creare automaticamente una documentazione dettagliata dei programmi applicativi, comprese le descrizioni della logica aziendale, dei flussi, delle integrazioni e delle dipendenze presenti nei sistemi legacy.
   + **Estrazione della logica aziendale**: AWS Transform analizza i programmi COBOL per documentarne la logica aziendale principale, per aiutarvi a comprendere la logica aziendale fondamentale.
   + **Scomposizione del codice**: AWS Transform scompone il codice in domini che tengono conto delle dipendenze tra programmi e componenti. Il raggruppamento di file e programmi correlati all'interno dello stesso dominio migliora l'organizzazione e aiuta a preservare la struttura logica dell'applicazione quando la scompone in componenti più piccoli.
   + **Pianificazione dell'ondata di migrazione**: in base ai domini creati durante la fase di decomposizione, AWS Transform genera un piano di ondata di migrazione con l'ordine di modernizzazione consigliato.
   + **Rifattorizzazione del codice: AWS Transform rifattorizza** il codice in tutti i file di dominio o in alcuni file di dominio in codice Java. L'obiettivo di questo passaggio è preservare la logica aziendale fondamentale dell'applicazione rifattorizzandola in un'applicazione Java modernizzata e ottimizzata per il cloud.

1. AWS Transform archivia il codice rifattorizzato, i documenti generati, gli artefatti associati e le librerie di runtime nel tuo bucket Amazon S3. Puoi fare quanto segue:
   + Accedi alla cartella runtime nel tuo bucket Amazon S3.
   + Crea e distribuisci l'applicazione seguendo le istruzioni Compila [e distribuisci la tua applicazione modernizzata dopo il refactoring](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) riportato nella documentazione. AWS Transform 
   + Tramite l'interfaccia di chat, richiedi e scarica un esempio o un modello Hashicorp AWS CloudFormation Terraform AWS Cloud Development Kit (AWS CDK). Questi modelli possono aiutarti a distribuire AWS le risorse necessarie per supportare l'applicazione refactorizzata.
   + Utilizzate [Reforge per](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) migliorare la qualità del codice rifattorizzato utilizzando modelli di linguaggio di grandi dimensioni (). LLMs Il motore di refactoring preserva l'equivalenza funzionale di COBOL trasformandolo in codice Java. Reforge è un passaggio opzionale disponibile dopo la trasformazione. Questo passaggio serve LLMs a ristrutturare il codice in modo che assomigli da vicino a Java nativo, il che può migliorare la leggibilità e la manutenibilità. Reforge aggiunge anche commenti leggibili dall'uomo per aiutarti a comprendere il codice e implementa modelli di codifica e best practice moderni.

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

**Servizi AWS**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilizza l'intelligenza artificiale agentica per aiutarti ad accelerare la modernizzazione dei carichi di lavoro legacy, come .NET, mainframe e carichi di lavoro. VMware 
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) alle tue applicazioni e a quelle cloud. Account AWS 
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Archivio di codice**

È possibile utilizzare l'applicazione AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source come applicazione di esempio per iniziare con la modernizzazione del mainframe.

## Best practice
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Inizia in piccolo**: inizia con codice piccolo e meno complesso (15.000—20.000 righe di codice) per comprendere come analizza e trasforma le applicazioni mainframe. AWS Transform 
+ **Combina con l'esperienza umana**: utilizza AWS Transform come acceleratore mentre applichi l'esperienza umana per risultati ottimali.
+ **Revisione e test accurati**: rivedi sempre attentamente il codice trasformato ed esegui test completi per convalidare l'equivalenza funzionale dopo la trasformazione.
+ **Fornisci feedback**: per fornire feedback e suggerimenti per il miglioramento, utilizza il pulsante **Invia feedback** in Console di gestione AWS o crea un caso con. [Supporto AWS](https://support.console.aws.amazon.com/) Per ulteriori informazioni, consulta [Creazione di un caso di supporto](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Il tuo contributo è prezioso per il miglioramento del servizio e lo sviluppo futuro.

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

### Preparare l'applicazione mainframe
<a name="prepare-the-mainframe-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un bucket. | Crea un bucket Amazon S3 nella stessa regione in cui AWS Transform è Account AWS abilitato. Questo bucket viene utilizzato per archiviare il codice dell'applicazione mainframe e lo AWS Transform utilizza per archiviare i documenti generati, il codice refactorizzato e altri file associati alla trasformazione. Per istruzioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella documentazione di Amazon S3. | Informazioni generali su AWS | 
| Preparare l'applicazione mainframe di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Sviluppatore di app, ingegnere DevOps  | 

### Configura IAM Identity Center e AWS Transform
<a name="configure-sso-and-trn"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiungi utenti a IAM Identity Center. | Aggiungi i tuoi potenziali utenti a IAM Identity Center. Segui le istruzioni in [Aggiungere utenti in IAM Identity Center](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users) nella AWS Transform documentazione. | Amministratore AWS | 
| Abilita AWS Transform e aggiungi utenti. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Amministratore AWS | 
| Configura l'accesso degli utenti all'applicazione AWS Transform web. | Ogni utente deve accettare l'invito ad accedere all'applicazione AWS Transform web. Segui le istruzioni riportate in [Accettazione dell'invito](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation) nella AWS Transform documentazione. | Sviluppatore dell'app, proprietario dell'app | 
| Accedi all'applicazione AWS Transform web. | Segui le istruzioni riportate [in Accesso a AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | Sviluppatore dell'app, proprietario dell'app | 
| Configura uno spazio di lavoro. | Configura uno spazio di lavoro in cui gli utenti possano collaborare nell' AWS Transform applicazione web. Segui le istruzioni riportate in [Avvia il tuo progetto](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow) nella AWS Transform documentazione. | Amministratore AWS | 

### Trasforma l'applicazione mainframe
<a name="transform-the-mainframe-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un lavoro di trasformazione. | Crea un processo di trasformazione per modernizzare l'applicazione CardDemo mainframe. Per istruzioni, consulta [Creare e avviare un lavoro](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job) nella AWS Transform documentazione. Quando ti viene chiesto di impostare gli obiettivi nell'interfaccia di AWS Transform chat, scegli **Esegui la modernizzazione del mainframe (da IBM z/OS a AWS)**, quindi scegli **Analizza codice, Genera documentazione tecnica, Logica aziendale, Scomponi codice, Pianifica la sequenza di migrazione e Trasforma il codice** in Java. | Sviluppatore di app, proprietario dell'app | 
| Configura il connettore. | Stabilisci un connettore per il bucket Amazon S3 che contiene l' CardDemo applicazione mainframe. Questo connettore consente di accedere AWS Transform alle risorse nel bucket ed eseguire funzioni di trasformazione consecutive. Per istruzioni, consulta [Configurare un connettore](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) nella AWS Transform documentazione. | Amministratore AWS | 
| Esegui l'analisi del codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consultate [Analisi del codice](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) nella AWS Transform documentazione. | Sviluppatore di app, proprietario dell'app | 
| Genera documentazione tecnica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [Generare documentazione tecnica](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) nella AWS Transform documentazione. | Sviluppatore di app, proprietario dell'app | 
| Estrai la logica aziendale. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [Extract business logic nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic). AWS Transform  | Sviluppatore di app, proprietario dell'app | 
| Decomponi il codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni sulla decomposizione e sui semi, vedete [Decomposizione nella documentazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition). AWS Transform  | Sviluppatore di app, proprietario dell'app | 
| Pianifica le ondate migratorie. | Pianifica le ondate di migrazione per l' CardDemo applicazione. Segui le istruzioni riportate nella [pianificazione delle ondate di migrazione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) nella AWS Transform documentazione per rivedere e modificare il piano delle ondate. | Sviluppatore dell'app, proprietario dell'app | 
| Rifattorizza il codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Sviluppatore di app, proprietario dell'app | 
| (Facoltativo) Usa Reforge per migliorare il codice Java. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) nella documentazione. AWS Transform  | Sviluppatore dell'app, proprietario dell'app | 
| Semplifica l'implementazione. | AWS Transform può fornire modelli Infrastructure as Code (IaC) per CloudFormation AWS CDK Terraform. Questi modelli consentono di distribuire i componenti principali, tra cui risorse di elaborazione, database, archiviazione e sicurezza.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Per ulteriori informazioni, consulta [le funzionalità di distribuzione](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment) nella AWS Transform documentazione. | Sviluppatore di app, proprietario dell'app | 

## Risoluzione dei problemi
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Non è possibile visualizzare il codice sorgente o il documento generato nell'applicazione AWS Transform Web. | Aggiungi una policy all'autorizzazione CORS per il bucket Amazon S3 da AWS Transform consentire come origine. Per ulteriori informazioni, consulta le autorizzazioni [CORS del bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) nella documentazione. AWS Transform  | 

## Risorse correlate
<a name="modernize-carddemo-mainframe-app-resources"></a>

**AWS documentazione**
+ [Trasformazione delle applicazioni mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform documentazione)

**Altre risorse AWS **
+ [Accelera il tuo percorso di modernizzazione del mainframe utilizzando agenti AI con AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/) (AWS post sul blog)
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [AWS IAM Identity Center FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Video e tutorial**
+ [Introduzione ad 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 - Modernizza più rapidamente le applicazioni mainframe con](https://www.youtube.com/watch?v=pSi0XtYfY4o) Amazon Q Developer () YouTube
+ [AWS re:Invent 2024](https://www.youtube.com/watch?v=9FjxnEoH5wg) - Automatizzazione della migrazione e della modernizzazione per accelerare la trasformazione () YouTube
+ [AWS re:Invent 2024 - Toyota promuove](https://www.youtube.com/watch?v=_NXc1MJenw4) l'innovazione e migliora l'efficienza operativa con gen AI () YouTube

**Nota**  
AWS Transform era precedentemente noto come *Amazon Q Developer transform for mainframe*.

# Modernizza e implementa le applicazioni mainframe utilizzando e Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

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

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

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)può accelerare la modernizzazione su larga scala di .NET, VMware mainframe e carichi di lavoro. Implementa agenti di intelligenza artificiale specializzati che automatizzano attività complesse come valutazioni, analisi del codice, refactoring, scomposizione, mappatura delle dipendenze, convalida e pianificazione della trasformazione. [Questo modello dimostra come modernizzare un'applicazione mainframe e quindi distribuirla nell' AWS Transform infrastruttura utilizzando Hashicorp Terraform. AWS](https://developer.hashicorp.com/terraform/intro) Queste step-by-step istruzioni consentono di trasformare [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), che è un esempio di applicazione mainframe open source, da COBOL a una moderna applicazione Java.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ Autorizzazioni amministrative per creare AWS risorse e distribuire applicazioni
+ [Terraform versione 1.5.7 o successiva, configurata](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Provider per Terraform, configurato](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center[, abilitato](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [abilitato](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Un utente, inserito in un'[area di](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) AWS Transform lavoro con un ruolo di collaboratore in grado di eseguire lavori di trasformazione

**Limitazioni**
+ AWS Transform è disponibile solo in alcuni. Regioni AWS Per un elenco completo delle regioni supportate, consulta [Regioni supportate per AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ È prevista una quota di servizio per le funzionalità di trasformazione del mainframe in AWS Transform. Per ulteriori informazioni, vedere [Quotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) for. AWS Transform
+ Per collaborare su uno spazio di lavoro condiviso, tutti gli utenti devono essere utenti registrati della stessa istanza associata all'istanza dell' AWS Transform applicazione Web. AWS IAM Identity Center 
+ Il bucket AWS Transform Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) deve trovarsi nella stessa regione. Account AWS 

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

Il diagramma seguente mostra la end-to-end modernizzazione dell'applicazione legacy e la distribuzione in. Cloud AWS Le credenziali dell'applicazione e del database vengono Gestione dei segreti AWS archiviate e Amazon CloudWatch fornisce funzionalità di monitoraggio e registrazione.

![\[AWS Transform modernizza un'applicazione mainframe e la distribuzione tramite Terraform.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Tramite AWS IAM Identity Center, l'utente si autentica e accede in. AWS Transform Account AWS

1. L'utente carica il codice mainframe COBOL nel bucket Amazon S3 e avvia la trasformazione in. AWS Transform

1. AWS Transform modernizza il codice COBOL in codice Java nativo del cloud e archivia il codice modernizzato nel bucket Amazon S3.

1. Terraform crea l' AWS infrastruttura per distribuire l'applicazione modernizzata, tra cui un'Application Load Balancer, un'istanza Amazon Elastic Compute Cloud (Amazon EC2) e il database Amazon Relational Database Service (Amazon RDS). Terraform distribuisce il codice modernizzato sull'istanza Amazon EC2.

1. I file VSAM vengono caricati su Amazon EC2 e migrati da Amazon EC2 al database Amazon RDS.

## Tools (Strumenti)
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornisce capacità di calcolo scalabile nel Cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente. In questo modello, le istanze del cluster di failover di SQL Server vengono installate sulle istanze Amazon EC2.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) alle tue applicazioni e a quelle cloud. Account AWS 
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale in. Cloud AWS
+ Con [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) puoi sostituire le credenziali nel codice,incluse le password, con una chiamata API a Secrets Manager in modo da recuperare il segreto a livello di codice.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utilizza l'intelligenza artificiale agentica per aiutarti ad accelerare la modernizzazione dei carichi di lavoro legacy, come.NET, mainframe e carichi di lavoro. VMware 

**Altri strumenti**
+ [Apache Maven](https://maven.apache.org/) è uno strumento open source per la gestione di progetti software e l'automazione dello sviluppo per progetti Java.
+ [Apache Tomcat](https://tomcat.apache.org/) è un contenitore Servlet open source e un server web per codice Java.
+ [HashiCorp Terraform](https://www.terraform.io/docs) è uno strumento Infrastructure as Code (IaC) che consente di utilizzare il codice per fornire e gestire l'infrastruttura e le risorse cloud.
+ [Spring Boot](https://spring.io/projects/spring-boot) è un framework open source basato su Spring Framework in Java.

**Deposito di codice**

Il codice per questo pattern è disponibile nel repository GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Questo modello utilizza l'applicazione AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source come applicazione di esempio.

## Best practice
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Assegna la piena proprietà del codice e delle risorse destinate alla migrazione.
+ Sviluppa e testa un proof of concept prima di passare a una migrazione completa.
+ Garantisci l'impegno di tutte le parti interessate.
+ Stabilisci canali di comunicazione chiari.
+ Definisci e documenta i requisiti minimi di prodotto (MVP).
+ Stabilisci criteri di successo chiari.

## Epiche
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Prepara e carica il codice dell'applicazione mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare un bucket. | Crea un bucket Amazon S3 nella stessa regione in cui AWS Transform è Account AWS abilitato. Questo bucket viene utilizzato per archiviare il codice dell'applicazione mainframe, i dati e gli script aggiuntivi necessari per creare ed eseguire l'applicazione. AWS Transform utilizza questo bucket per archiviare il codice rifattorizzato e altri file associati alla trasformazione. Per istruzioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella documentazione di Amazon S3. | AWS generale, amministratore AWS | 
| Imposta le autorizzazioni CORS per il bucket. | Quando configuri il bucket per AWS Transform l'accesso, devi configurare la condivisione delle risorse tra le origini (CORS) per il bucket. Se non è configurato correttamente, potresti non essere in grado di utilizzare le funzionalità di visualizzazione in linea o di confronto dei file di. AWS Transform Per istruzioni su come configurare CORS per un bucket, consulta [Usare la condivisione di risorse tra origini diverse](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) nel bucket Amazon S3. Per la policy, consulta le autorizzazioni CORS del [bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) nella documentazione. AWS Transform  | AWS generale, amministratore AWS | 
| Preparare il codice applicativo mainframe di esempio. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | General AWS, sviluppatore di app | 

### Trasforma l'applicazione mainframe
<a name="transform-the-mainframe-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il AWS Transform lavoro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore dell'app, proprietario dell'app | 
| Configura un connettore. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, proprietario dell'app | 
| Trasforma il codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore dell'app, proprietario dell'app | 

### Implementa l'infrastruttura tramite Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiorna i modelli. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)Per ambienti di produzione o simili, configura componenti di sicurezza aggiuntivi. Ad esempio, abilita [AWS WAF le protezioni per il tuo Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS generale, amministratore AWS | 
| Implementa l'infrastruttura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Installa e configura Apache Tomcat sull'istanza Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa il software richiesto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Verifica l'installazione del software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 

### Compila e impacchetta il codice applicativo modernizzato
<a name="compile-and-package-the-modernized-application-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica ed estrai il codice generato. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Crea l'applicazione modernizzata. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 

### Esegui la migrazione del database
<a name="migrate-the-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare il database e gli schemi JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Convalida la creazione del database. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Migra i dati nel database JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 

### Installa l'applicazione modernizzata
<a name="install-the-modernized-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa l'applicazione modernizzata sull'istanza Amazon EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, architetto cloud | 
| Riavvia il server Tomcat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, architetto cloud | 
| Esegui la migrazione del set di dati VSAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico addetto alla migrazione | 
| Aggiorna i parametri negli script Groovy. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app | 

### Eseguire il test dell’applicazione
<a name="test-the-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Prova l'applicazione modernizzata. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico di test | 
| Verifica gli script batch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Sviluppatore di app, tecnico di test | 

### Eliminazione
<a name="clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Preparati a eliminare l'infrastruttura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Informazioni generali su AWS | 
| Eliminare l'infrastruttura. | Questi passaggi elimineranno definitivamente le tue risorse. Assicurati di aver eseguito il backup di tutti i dati importanti prima di procedere.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Informazioni generali su AWS | 

## Risoluzione dei problemi
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Autenticazione Terraform | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Errori relativi a Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Il nome dell'URL non viene caricato | Assicurati che il gruppo di sicurezza Application Load Balancer abbia il tuo indirizzo IP nella regola in entrata come origine. | 
| Problema di autenticazione nel registro di Tomcat | Verifica che la password segreta del database in Gestione dei segreti AWS e la password in **server.xml** corrispondano. | 

## Risorse correlate
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Guida prescrittiva**
+ [Modernizza l'applicazione CardDemo mainframe utilizzando AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentazione del servizio**
+ [AWS Console di amministrazione Blue Age Blusam](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Requisiti di configurazione dell'infrastruttura per AWS Blu Age Runtime (non gestito)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Onboarding AWS di Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernizzazione delle applicazioni mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configura la configurazione per AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS post sul blog**
+ [Accelera il tuo percorso di modernizzazione del mainframe utilizzando agenti AI con AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernizza la gestione dell'output del mainframe AWS utilizzando Rocket Enterprise Server e 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*

## Riepilogo
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

Modernizzando la gestione dell'output del mainframe, puoi ottenere risparmi sui costi, mitigare il debito tecnico legato alla manutenzione dei sistemi legacy e migliorare la resilienza e l'agilità attraverso tecnologie native per il cloud di Amazon Web DevOps Services (AWS). Questo modello mostra come modernizzare i carichi di lavoro di gestione dell'output mainframe critici per l'azienda sul cloud AWS. Il modello utilizza [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) come runtime per un'applicazione mainframe modernizzata, con Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) come server di stampa e LRS X come server di archiviazione. PageCenter LRS PageCenter X offre soluzioni di gestione dell'output per la visualizzazione, l'indicizzazione, la ricerca, l'archiviazione e la protezione dell'accesso agli output aziendali.

[Il modello si basa sull'approccio di modernizzazione del mainframe replatform.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Le applicazioni mainframe vengono migrate da [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) su Amazon Elastic Compute Cloud (Amazon). EC2 I carichi di lavoro di gestione dell'output mainframe vengono migrati su Amazon e un database mainframe EC2, come IBM Db2 for) funziona con z/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS AWS Directory Service per Microsoft Active Directory per l'autenticazione e l'autorizzazione del flusso di lavoro di gestione dell'output.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo.
+ Un carico di lavoro di gestione dell'output su mainframe.
+ Conoscenze di base su come ricostruire e fornire un'applicazione mainframe eseguibile su Rocket Enterprise Server. Per ulteriori informazioni, consulta la scheda tecnica di [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) nella documentazione di Rocket Software.
+ Conoscenza di base delle soluzioni e dei concetti di stampa su cloud di LRS. Per ulteriori informazioni, consultate *Output Modernization nella documentazione* di LRS.
+ Software e licenza Rocket Enterprise Server. Per ulteriori informazioni, contattate [Rocket Software.](https://www.rocketsoftware.com/products/enterprise-suite/request-contact)
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISSoftware e licenze LRS. Per ulteriori informazioni, [contattate](https://www.lrsoutputmanagement.com/about-us/contact-us/) LRS. È necessario fornire i nomi host delle EC2 istanze in cui verranno installati i prodotti LRS.


| 
| 
| [Nota: per ulteriori informazioni sulle considerazioni sulla configurazione per i carichi di lavoro di gestione dell'output del mainframe, vedere *Considerazioni* nella sezione Informazioni aggiuntive di questo modello.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) | 
| --- |

**Versioni del prodotto**
+ [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 X PageCenter V1R3 o versione successiva](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/)

## Architecture
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Stack tecnologico di origine**
+ Sistema operativo: IBM z/OS
+ Linguaggio di programmazione: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Database: IBM Db2 for z/OS, database IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Sicurezza: Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Soluzioni di stampa e archiviazione: prodotti di z/OS output e stampa mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA Deliver) e soluzioni di archiviazione (CA Deliver, ASG Mobius o CA Bundle)

**Architettura di origine**

Il diagramma seguente mostra una tipica architettura allo stato attuale per un carico di lavoro di gestione dell'output su mainframe.

![\[Processo di output del mainframe in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli utenti eseguono transazioni commerciali su un sistema di coinvolgimento (SoE) basato su un'applicazione IBM CICS scritta in COBOL.

1. Il SoE richiama il servizio mainframe, che registra i dati delle transazioni commerciali in un database system-of-records (SoR) come IBM Db2 for z/OS.

1. Il SoR conserva i dati aziendali del SoE.

1. Il batch job scheduler avvia un processo batch per generare l'output di stampa.

1. Il processo batch estrae i dati dal database. Formatta i dati in base ai requisiti aziendali, quindi genera risultati aziendali come dichiarazioni di fatturazione, carte d'identità o dichiarazioni di prestito. Infine, il processo in batch indirizza l'output alla gestione dell'output per la formattazione, la pubblicazione e l'archiviazione dell'output in base ai requisiti aziendali.

1. La gestione dell'output riceve l'output dal processo batch. La gestione dell'output indicizza, organizza e pubblica l'output in una destinazione specificata nel sistema di gestione dell'output, ad esempio le soluzioni LRS PageCenter X (come illustrato in questo modello) o CA View.

1. Gli utenti possono visualizzare, cercare e recuperare l'output.

**Stack tecnologico Target**
+ Sistema operativo: Windows Server in esecuzione su Amazon EC2
+ Elaborazione — Amazon EC2
+ Storage: Amazon Elastic Block Store (Amazon EBS) e FSx Amazon per Windows File Server
+ Linguaggio di programmazione: COBOL, JCL e CICS
+ Banca dati — Amazon RDS
+ Sicurezza: AWS Managed Microsoft AD
+ Stampa e archiviazione: soluzione di stampa (VPSX) e archiviazione (PageCenterX) LRS su AWS
+ Ambiente di runtime mainframe: Rocket Enterprise Server

**Architettura di destinazione**

Il diagramma seguente mostra un'architettura per un carico di lavoro di gestione dell'output mainframe distribuito nel cloud AWS.

![\[Architettura Target per la gestione in batch di app e output in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Il batch job scheduler avvia un processo batch per creare output, ad esempio estratti conto di fatturazione, carte d'identità o rendiconti di prestito.

1. Il processo batch del mainframe ([riplatformato su Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilizza il runtime di Rocket Enterprise Server per estrarre i dati dal database dell'applicazione, applicare la logica di business ai dati e formattare i dati. Quindi invia i dati a una destinazione di output utilizzando il [modulo di uscita della stampante Rocket Software (OpenText documentazione Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html)).

1. Il database dell'applicazione (un SoR eseguito su Amazon RDS) mantiene i dati per l'output di stampa.

1. La soluzione di VPSX/MFI stampa LRS è implementata su Amazon e EC2 i suoi dati operativi sono archiviati in Amazon EBS. LRS VPSX/MFI utilizza l'agente di TCP/IP-based LRS/Queue trasmissione per raccogliere i dati di output tramite l'API JES Print Exit di Rocket Software.

   LRS VPSX/MFI esegue la preelaborazione dei dati, ad esempio la traduzione da EBCDIC a ASCII. Svolge anche attività più complesse, inclusa la conversione di flussi di dati esclusivi del mainframe come IBM Advanced Function Presentation (AFP) e Xerox Line Conditioned Data Stream (LCDS) in flussi di dati di visualizzazione e stampa più comuni come Printer Command Language (PCL) e PDF.

   Durante la finestra di manutenzione di LRS PageCenter X, LRS mantiene la coda di output e funge da backup per la coda di output VPSX/MFI . LRS VPSX/MFI si connette e invia l'output a LRS X utilizzando il protocollo PageCenter. LRS/Queue LRS/Queue effettua uno scambio di informazioni sullo stato di preparazione e sul completamento dei lavori per garantire che il trasferimento dei dati avvenga.

   **Note:**

   [Per ulteriori informazioni sui dati di stampa trasferiti da Rocket Software Print Exit a LRS/Queue e sui meccanismi batch mainframe VPSX/MFI supportati da LRS, consultate *Print Data Capture* nella sezione Informazioni aggiuntive.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)

   LRS VPSX/MFI può eseguire controlli di integrità a livello di parco stampanti. [Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti nella sezione Informazioni* aggiuntive di questo modello.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)

1. La soluzione di gestione dell'output LRS PageCenter X è distribuita su Amazon EC2 e i suoi dati operativi sono archiviati in Amazon FSx for Windows File Server. LRS PageCenter X fornisce un sistema centrale di gestione dei report di tutti i file importati in LRS PageCenter X e consente a tutti gli utenti di accedervi. Gli utenti possono visualizzare contenuti di file specifici o eseguire ricerche su più file per trovare criteri corrispondenti.

   Il LRS/NetX componente è un server di applicazioni Web multithread che fornisce un ambiente di runtime comune per l'applicazione LRS PageCenter X e altre applicazioni LRS. Il componente LRS/Web Connect è installato sul server Web e fornisce un connettore dal server Web al server delle applicazioni LRS/NetX Web.

1. LRS PageCenter X fornisce l'archiviazione per gli oggetti del file system. I dati operativi di LRS PageCenter X sono archiviati in Amazon FSx for Windows File Server.

1. L'autenticazione e l'autorizzazione della gestione dell'output vengono eseguite da AWS Managed Microsoft AD con LRS/DIS.

**Nota**  
La soluzione di destinazione in genere non richiede modifiche alle applicazioni per adattarsi ai linguaggi di formattazione del mainframe, come IBM AFP o Xerox LCDS.

**Architettura dell'infrastruttura AWS**

Il diagramma seguente mostra un'architettura di infrastruttura AWS altamente disponibile e sicura per un carico di lavoro di gestione dell'output mainframe.

![\[Infrastruttura AWS Multi-AZ con un flusso di lavoro in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Lo scheduler batch avvia il processo batch e viene distribuito su Amazon EC2 su più [zone di disponibilità per l'alta disponibilità](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (HA).
**Nota**  
Questo modello non copre l'implementazione dello scheduler in batch. Per ulteriori informazioni sull'implementazione, consultate la documentazione del fornitore del software relativa allo scheduler in uso.

1. Il processo batch del mainframe (scritto in un linguaggio di programmazione come JCL o COBOL) utilizza la logica aziendale principale per elaborare e generare output di stampa, come estratti conto di fatturazione, carte d'identità e dichiarazioni di prestito. Il processo batch viene distribuito su Amazon EC2 in due zone di disponibilità per HA. Utilizza l'API Print Exit di Rocket Software per indirizzare l'output di stampa a LRS VPSX/MFI per la preelaborazione dei dati.

1. Il server di VPSX/MFI stampa LRS è distribuito su Amazon EC2 in due zone di disponibilità per HA (coppia ridondante attiva-standby). Utilizza [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) come archivio dati operativo. Il Network Load Balancer esegue un controllo dello stato delle istanze LRS VPSX/MFI EC2 . Se un'istanza attiva non è integra, il load balancer indirizza il traffico verso le istanze hot standby nell'altra zona di disponibilità. Le richieste di stampa vengono mantenute nella LRS Job Queue localmente in ciascuna istanza. EC2 In caso di errore, è necessario riavviare un'istanza fallita prima che i servizi LRS possano riprendere l'elaborazione della richiesta di stampa.
**Nota**  
LRS VPSX/MFI può anche eseguire controlli di integrità a livello di parco stampanti. [Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti nella sezione Informazioni* aggiuntive di questo modello.](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)

1. La gestione dell'output di LRS PageCenter X è implementata EC2 su Amazon in due zone di disponibilità per HA (coppia ridondante attiva-standby). Utilizza [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) come archivio dati operativo. Se un'istanza attiva non è integra, il load balancer esegue un controllo dello stato delle istanze LRS PageCenter X e indirizza il traffico verso EC2 le istanze di standby nell'altra zona di disponibilità.

1. Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornisce un nome DNS per integrare il server LRS con LRS VPSX/MFI X. PageCenter
**Nota**  
LRS PageCenter X supporta un sistema di bilanciamento del carico di livello 4.

1. LRS PageCenter X utilizza Amazon FSx for Windows File Server come archivio dati operativo distribuito su due zone di disponibilità per HA. LRS PageCenter X comprende solo i file che si trovano nella condivisione di file, non in un database esterno.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) viene utilizzato per LRS/DIS eseguire l'autenticazione e l'autorizzazione del flusso di lavoro di gestione dell'output. Per ulteriori informazioni, consulta *Autenticazione e autorizzazione dell'output di stampa* nella sezione Informazioni [aggiuntive](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

## Tools (Strumenti)
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-tools"></a>

**Servizi AWS**
+ [AWS Directory Service per Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) consente ai carichi di lavoro compatibili con le directory e alle risorse AWS di utilizzare Microsoft Active Directory nel cloud AWS.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornisce volumi di storage a livello di blocco da utilizzare con istanze Amazon Elastic Compute Cloud (Amazon). EC2
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribuisce il traffico di applicazioni o di rete in entrata su più destinazioni. Ad esempio, puoi distribuire il traffico tra EC2 istanze Amazon, contenitori e indirizzi IP in una o più zone di disponibilità. Questo modello utilizza un Network Load Balancer.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) fornisce file system che supportano i protocolli di connettività standard del settore e offrono disponibilità e replica elevate in tutte le regioni AWS. Questo modello utilizza Amazon FSx per Windows File Server.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.

**Altri strumenti**
+ Il software [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) offre una soluzione scalabile per la gestione dei contenuti di documenti e report che aiuta gli utenti a ottenere il massimo valore dalle informazioni attraverso l'indicizzazione automatizzata, la crittografia e le funzionalità di ricerca avanzate.
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), sviluppata congiuntamente da LRS e Rocket Software, acquisisce l'output da una bobina JES di Rocket Software e lo consegna in modo affidabile a una destinazione di stampa specificata.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queueper raccogliere o acquisire dati di stampa tramite l'interfaccia di programmazione JES Print Exit di Rocket Software.
+ LRS Directory Integration Server (LRS/DIS) viene utilizzato per l'autenticazione e l'autorizzazione durante il flusso di lavoro di stampa.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) è un ambiente di distribuzione delle applicazioni per applicazioni mainframe. Fornisce l'ambiente di runtime per le applicazioni mainframe che vengono migrate o create utilizzando qualsiasi versione di Rocket Enterprise Developer.

## Epiche
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Configura il runtime Rocket e distribuisci un'applicazione batch mainframe
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il runtime e distribuisci un'applicazione demo. | [Per configurare Rocket Enterprise Server su Amazon EC2 e distribuire l'applicazione BankDemo dimostrativa Rocket Software, segui le istruzioni nella guida per l'utente di AWS Mainframe Modernization.](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html)L' BankDemo applicazione è un'applicazione mainframe in batch che crea e quindi avvia l'output di stampa. | Architetto del cloud | 

### Configura un server di stampa LRS su Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza Amazon EC2 Windows. | Per avviare un'istanza Amazon EC2 Windows, segui le istruzioni in [Avvio di un' EC2 istanza Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) nella EC2 documentazione di Amazon. Usa lo stesso nome host che hai usato per la licenza del prodotto LRS.L'istanza deve soddisfare i seguenti requisiti hardware e software per LRS VPSX/MFI:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS VPSX/MFI sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS/DIS. | Il LRS/DIS prodotto è spesso incluso nell'installazione di LRS VPSX. Tuttavia, se non LRS/DIS è stato installato insieme a LRS VPSX, seguite i seguenti passaggi per installarlo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un gruppo di destinazione. | Crea un gruppo target seguendo le istruzioni riportate in [Creare un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Quando create il gruppo target, registrate l' VPSX/MFI EC2 istanza LRS come destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Per creare il Network Load Balancer, segui le istruzioni nella documentazione di [Elastic Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancing. Il Network Load Balancer indirizza il traffico da Rocket Enterprise Server all'istanza LRS. VPSX/MFI EC2 Quando create il Network Load Balancer, scegliete i seguenti valori nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Integra Rocket Enterprise Server con LRS LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Rocket Enterprise Server per LRS/Queue l'integrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura Rocket Enterprise Server per l'integrazione con LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura la coda di stampa e gli utenti di stampa
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Associate il modulo Rocket Software Print Exit al processo di esecuzione del server della stampante batch Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea una coda di output di stampa in LRS VPSX/MFI e integrala con LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un utente di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura un server LRS PageCenter X su Amazon EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza Amazon EC2 Windows. | Avvia un'istanza Amazon EC2 Windows seguendo le istruzioni del [Passaggio 1: Avvia un'istanza](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) nella EC2 documentazione di Amazon. Usa lo stesso nome host che hai usato per la licenza del prodotto LRS.L'istanza deve soddisfare i seguenti requisiti hardware e software per PageCenter LRS X:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS PageCenter X sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Installa LRS/DIS. | Il LRS/DIS prodotto è spesso incluso nell'installazione di LRS VPSX. Tuttavia, se non LRS/DIS è stato installato insieme a LRS VPSX, seguite i seguenti passaggi per installarlo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un gruppo di destinazione. | Crea un gruppo target seguendo le istruzioni riportate in [Creare un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Quando create il gruppo target, registrate l' EC2 istanza LRS PageCenter X come destinazione:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Per creare il Network Load Balancer, segui le istruzioni nella documentazione di [Elastic Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancing. Il Network Load Balancer indirizza il traffico da LRS VPSX/MFI all'istanza LRS X. PageCenter EC2 Quando create il Network Load Balancer, scegliete i seguenti valori nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura le funzionalità di gestione dell'output in LRS X PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la funzione di importazione in LRS X. PageCenter | È possibile utilizzare la funzione LRS PageCenter X Import per riconoscere gli output che arrivano su LRS PageCenter X in base a criteri come Job name o Form ID. Potete quindi indirizzare gli output verso cartelle specifiche in LRS X. PageCenterPer abilitare la funzione di importazione, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura la politica di conservazione dei documenti. | LRS PageCenter X utilizza una politica di conservazione dei documenti per decidere per quanto tempo conservare un documento in PageCenter LRS X.Per configurare la politica di conservazione dei documenti, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Create una regola per indirizzare il documento di output verso una cartella specifica in LRS PageCenter X. | **In LRS PageCenter X, **Destination** determina il percorso della cartella in cui verrà inviato l'output quando questa destinazione viene richiamata da Report Definition.** Per questo esempio, create una cartella basata sulla cartella **Form ID** nella definizione del report e salvate l'output in quella cartella.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea una definizione di report. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto cloud | 

### Configura l'autenticazione e l'autorizzazione per la gestione dell'output
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dominio AWS Managed Microsoft AD con utenti e gruppi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Unisci le EC2 istanze a un dominio AWS Managed Microsoft AD. | Unisci le EC2 istanze LRS VPSX/MFI e LRS PageCenter X al tuo dominio AWS Managed Microsoft AD automaticamente [(](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/)documentazione AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentazione AWS Directory Service). | Architetto del cloud | 
| Configura e integra LRS/DIS con AWS Managed Microsoft AD per l' EC2 istanza LRS PageCenter X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura un gruppo di importazione per importare l'output da LRS VPSX a LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Aggiungi una regola di sicurezza al gruppo Import. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Crea un utente in LRS PageCenter X per eseguire l'importazione dell'output da LRS VPSX/MFI.  | Quando create un utente in LRS PageCenter X per eseguire l'importazione dell'output, il nome utente deve essere lo stesso dell'ID VPSX della coda di output di stampa in LRS **VPSX/MFI**. In questo esempio, l'ID VPSX è. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Aggiungi l'utente LRS PageCenter X Import al gruppo di sola importazione. | Per fornire le autorizzazioni necessarie per l'importazione di documenti da LRS VPSX a LRS X, effettuate le seguenti operazioni PageCenter:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 
| Configura LRS/DIS con AWS Managed Microsoft AD per l' VPSX/MFI EC2 istanza LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Configura Amazon FSx for Windows File Server come archivio dati operativo per LRS X PageCenter
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create un file system per LRS X. PageCenter | Per utilizzare Amazon FSx for Windows File Server come archivio dati operativo per LRS PageCenter X in un ambiente Multi-AZ, segui le istruzioni nel [Passaggio 1: Crea il tuo file system](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Architetto del cloud | 
| Mappa la condivisione di file sull' EC2 istanza LRS PageCenter X. | Per mappare la condivisione di file creata nel passaggio precedente all' EC2 istanza LRS PageCenter X, seguite le istruzioni nel [Passo 2: Mappate la condivisione di file su un' EC2 istanza che esegue Windows Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Architetto del cloud | 
| Mappa LRS PageCenter X Control Directory e Master Folder Directory sull'unità condivisa FSx di rete Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Architetto del cloud | 

### Prova un flusso di lavoro per la gestione dell'output
<a name="test-an-output-management-workflow"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia una richiesta di stampa in batch dall'app Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Tecnico collaudatore | 
| Controllate l'output di stampa in LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Tecnico collaudatore | 

## Risorse correlate
<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)
+ [Flusso di dati di presentazione delle funzioni avanzate](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentazione IBM)
+ [Line Conditioned Data Stream (LCDS) (documentazione Compart)](https://www.compart.com/en/lcds)
+ [Potenziamento dei carichi di lavoro mainframe aziendali su AWS con Micro](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) Focus (post sul blog)
+ [Modernizza i tuoi carichi di lavoro di stampa online mainframe su AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Guidance)
+ [Modernizza i tuoi carichi di lavoro di stampa in batch mainframe su AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Guidance)

## Informazioni aggiuntive
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Considerazioni**

Durante il tuo percorso di modernizzazione, potresti prendere in considerazione un'ampia varietà di configurazioni per i processi mainframe in batch e online e l'output che generano. La piattaforma mainframe è stata personalizzata da ogni cliente e fornitore che la utilizza con requisiti particolari che influiscono direttamente sulla stampa. Ad esempio, la piattaforma attuale potrebbe incorporare il flusso di dati IBM AFP o gli LCD Xerox nel flusso di lavoro corrente. Inoltre, i [caratteri di controllo del mainframe carriage](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) e [le parole dei comandi del canale](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) possono influire sull'aspetto della pagina stampata e potrebbero richiedere una gestione speciale. Come parte del processo di pianificazione della modernizzazione, consigliamo di valutare e comprendere le configurazioni del proprio ambiente di stampa specifico.  

**Acquisizione dei dati di stampa**

Rocket Software Print Exit trasmette le informazioni necessarie a LRS per VPSX/MFI elaborare efficacemente il file di spool. Le informazioni sono costituite da campi passati nei blocchi di controllo pertinenti, come i seguenti:
+ NOME DEL LAVORO
+ PROPRIETARIO (USERID)
+ DESTINAZIONE
+ MODULO
+ NOME DEL FILE
+ SCRITTORE

LRS VPSX/MFI supporta i seguenti meccanismi batch mainframe per l'acquisizione di dati da Rocket Enterprise Server:
+ Elaborazione COBOL in BATCH utilizzando istruzioni JCL print/spool SYSOUT standard. z/OS DD/OUTPUT 
+ Elaborazione COBOL print/spool in BATCH utilizzando istruzioni z/OS JCL CA-SPOOL SUBSYS DD standard.
+ IMS/COBOL print/spoolelaborazione mediante l'interfaccia CBLTDLI. Per un elenco completo dei metodi supportati e degli esempi di programmazione, consultate la documentazione di LRS inclusa nella licenza del prodotto.

**Controlli dello stato del parco stampanti**

LRS VPSX/MFI (LRS LoadX) è in grado di eseguire controlli approfonditi dello stato di salute, tra cui la gestione dei dispositivi e l'ottimizzazione operativa. La gestione dei dispositivi è in grado di rilevare guasti in un dispositivo di stampa e indirizzare la richiesta di stampa a una stampante funzionante. Per ulteriori informazioni sui controlli approfonditi dello stato delle flotte di stampanti, consultate la documentazione LRS inclusa nella licenza del prodotto.

**Autenticazione e autorizzazione alla stampa**

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/DISpuò anche applicare controlli di sicurezza di stampa a livello granulare nei seguenti casi d'uso:
+ Gestisci chi può sfogliare il lavoro della stampante.
+ Gestisci il livello di navigazione dei lavori di altri utenti.
+ Gestisci le attività operative, ad esempio la sicurezza a livello di comando come il blocco o il rilascio, l'eliminazione, la modifica, la copia e il reindirizzamento. La sicurezza può essere configurata dall'ID utente o dal gruppo, in modo simile a un gruppo di sicurezza di Active Directory o a un gruppo LDAP.

## Allegati
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernizza i carichi di lavoro di stampa in batch su mainframe AWS utilizzando Rocket Enterprise Server e LRS VPSX/MFI
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy e Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray and Shoup Inc*

## Riepilogo
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Questo modello mostra come modernizzare i carichi di lavoro di stampa in batch mainframe critici per l'azienda sul cloud Amazon Web Services (AWS) utilizzando Rocket Enterprise Server come runtime per un'applicazione mainframe modernizzata e LRS VPSX/MFI (Micro Focus Interface) come server di stampa. [Il modello si basa sull'approccio di modernizzazione del mainframe replatform.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) In questo approccio, esegui la migrazione dei lavori in batch del mainframe su Amazon Elastic Compute Cloud (Amazon EC2) e la migrazione del database mainframe, ad esempio IBM for DB2 ) z/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 è integrato con AWS Managed Microsoft AD. Modernizzando i carichi di lavoro di stampa in batch, puoi ridurre i costi dell'infrastruttura IT, mitigare il debito tecnico legato alla manutenzione dei sistemi legacy, rimuovere i silos di dati, aumentare l'agilità e l'efficienza con un DevOps modello e sfruttare le risorse e l'automazione su richiesta nel cloud AWS.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un carico di lavoro di stampa o gestione dell'output su mainframe
+ Conoscenze di base su come ricostruire e fornire un'applicazione mainframe eseguibile su Rocket Enterprise Server (per ulteriori informazioni, consultate la scheda tecnica di [Rocket Enterprise Server nella documentazione](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) di Rocket).
+ Conoscenza di base delle soluzioni e dei concetti di stampa su cloud di [LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/)
+ Software e licenza Rocket Enterprise Server (per ulteriori informazioni, contattate il reparto vendite di [Rocket](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact)).
+ VPSX/MFI, LRS/Queue, and LRS/DIS[Software e licenze LRS (per ulteriori informazioni, contattate il reparto vendite LRS).](https://www.lrsoutputmanagement.com/about-us/contact-us/)

**Nota**  
[Per ulteriori informazioni sulle considerazioni sulla configurazione per i carichi di lavoro di stampa in batch su mainframe, vedere *Considerazioni* nella sezione Informazioni aggiuntive di questo modello.](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional)

**Versioni del prodotto**
+ [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 (aggiornamento del prodotto 7)
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) o versione successiva

## Architecture
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Stack tecnologico di origine**
+ Sistema operativo: IBM z/OS
+ Linguaggio di programmazione: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Database: IBM DB2 for and Virtual Storage Access Method ( z/OS VSAM)
+ Sicurezza: Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gestione della stampa e dell'output: prodotti di z/OS stampa mainframe IBM (IBM Tivoli Output Manager for z/OS, LRS e CA View)

**Stack tecnologico Target**
+ Sistema operativo: Microsoft Windows Server in esecuzione su Amazon EC2
+ Elaborazione — Amazon EC2
+ Linguaggio di programmazione: COBOL, JCL e CICS
+ Banca dati — Amazon RDS
+ Sicurezza: AWS Managed Microsoft AD
+ Gestione della stampa e dell'output: soluzione di stampa LRS su AWS
+ Ambiente di runtime mainframe: Rocket Enterprise Server

**Architettura di origine**

Il diagramma seguente mostra una tipica architettura allo stato attuale per un carico di lavoro di stampa in batch su mainframe:

![\[Dall'utente al servizio mainframe, Db2 for z/OS, job scheduler, batch job e output in sei fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli utenti eseguono transazioni commerciali su un sistema di coinvolgimento (SoE) basato su un'applicazione IBM CICS scritta in COBOL.

1. Il SoE richiama il servizio mainframe, che registra i dati delle transazioni commerciali in un database system-of-records (SoR) come IBM for z/OS. DB2 

1. Il SoR conserva i dati aziendali del SoE.

1. Il batch job scheduler avvia un processo batch per generare l'output di stampa.

1. Il processo batch estrae i dati dal database, li formatta in base ai requisiti aziendali e quindi genera risultati aziendali come estratti conto di fatturazione, carte d'identità o estratti conto di prestito. Infine, il processo in batch indirizza l'output alla gestione dell'output di stampa per l'elaborazione e la consegna dell'output, in base ai requisiti aziendali. 

1. La gestione dell'output di stampa riceve l'output di stampa dal processo batch e quindi lo consegna a una destinazione specifica, ad esempio e-mail, una condivisione di file che utilizza FTP sicuro, una stampante fisica che utilizza soluzioni di stampa LRS (come illustrato in questo modello) o IBM Tivoli.

**Architettura Target**

Il diagramma seguente mostra un'architettura per un carico di lavoro di stampa in batch mainframe distribuito nel cloud AWS:

![\[Applicazione Batch su AWS con scheduler, Rocket Enterprise Server e database in quattro passaggi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Il batch job scheduler avvia un processo batch per creare output di stampa, come estratti conto di fatturazione, carte d'identità o rendiconti di prestito.

1. Il processo batch del mainframe ([riplatformato su Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilizza il runtime di Rocket Enterprise Server per estrarre i dati dal database dell'applicazione, applicare la logica di business ai dati, formattare i dati e quindi inviarli a una destinazione di stampa utilizzando [Rocket Software Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (documentazione Micro Focus).

1. Il database dell'applicazione (un SoR eseguito su Amazon RDS) mantiene i dati per l'output di stampa.

1. La soluzione di VPSX/MFI stampa LRS è implementata su Amazon EC2 e i suoi dati operativi sono archiviati in Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI utilizza l'agente di TCP/IP-based LRS/Queue trasmissione per raccogliere dati di stampa tramite l'API JES Print Exit di Rocket Software e consegnarli a una destinazione di stampa specificata.

**Nota**  
La soluzione di destinazione in genere non richiede modifiche alle applicazioni per adattarsi ai linguaggi di formattazione del mainframe, come IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS). Per ulteriori informazioni sull'utilizzo di Rocket Software per la migrazione e la modernizzazione delle applicazioni mainframe su AWS, consulta il post di blog [Empowering Enterprise Mainframe Workloads on AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) with Micro Focus.

**Architettura dell'infrastruttura AWS**

Il diagramma seguente mostra un'architettura di infrastruttura AWS altamente disponibile e sicura per un carico di lavoro di stampa in batch mainframe:

![\[Implementazione Multi-AZ su AWS con Rocket Software e componenti LRS in sette fasi.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Lo scheduler batch avvia il processo batch e viene distribuito su Amazon EC2 su più [zone di disponibilità per l'alta disponibilità](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (HA). 
**Nota**  
Questo modello non copre l'implementazione dello scheduler in batch. Per ulteriori informazioni sull'implementazione, consultate la documentazione del fornitore del software relativa allo scheduler in uso.

1. Il processo batch del mainframe (scritto in un linguaggio di programmazione come JCL o COBOL) utilizza la logica aziendale principale per elaborare e generare output di stampa, come estratti conto di fatturazione, carte d'identità e dichiarazioni di prestito. Il processo viene distribuito su Amazon EC2 in due zone di disponibilità per HA e utilizza Rocket Software Print Exit per indirizzare l'output di stampa a LRS VPSX/MFI per la stampa dell'utente finale.

1. LRS utilizza un comando. VPSX/MFI 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 I comandi vengono quindi eseguiti utilizzando una funzione standard integrata di Rocket Software. 
**Nota**  
Per ulteriori informazioni sui dati di stampa trasferiti da Rocket Software Print Exit a LRS/Queue e sui meccanismi batch mainframe VPSX/MFI supportati da LRS, consultate *Print Data Capture* nella sezione [Informazioni aggiuntive](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) di questo modello.

1. 
**Nota**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornisce un nome DNS per integrare Rocket 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 e indirizza il traffico verso i target registrati che sono integri.

1. 
**Nota**  
Il server di VPSX/MFI stampa LRS è distribuito EC2 su Amazon in due zone di disponibilità per HA e utilizza [Amazon EBS come archivio](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) dati operativo. LRS VPSX/MFI supporta le modalità di servizio attivo-attivo e attivo-passivo. Questa architettura utilizza più elementi AZs in una coppia attivo-passiva come standby attivo e hot standby. Il Network Load Balancer esegue un controllo dello stato VPSX/MFI EC2 delle istanze LRS e indirizza il traffico verso le istanze hot standby nell'altra AZ se un'istanza attiva non è integra. Le richieste di stampa vengono mantenute nella LRS Job Queue localmente in ciascuna istanza. EC2 In caso di ripristino, è necessario riavviare un'istanza fallita affinché i servizi LRS riprendano l'elaborazione della richiesta di stampa. : LRS VPSX/MFI può anche eseguire controlli di integrità a livello di parco stampanti. Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti* nella sezione [Informazioni aggiuntive](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) di questo modello.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) si integra con LRS/DIS per eseguire l'autenticazione e l'autorizzazione del flusso di lavoro di stampa. Per ulteriori informazioni, consulta *Autenticazione e autorizzazione alla stampa* nella sezione [Informazioni aggiuntive](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) di questo modello.

1. LRS VPSX/MFI utilizza Amazon EBS per lo storage a blocchi. Puoi eseguire il backup dei dati di Amazon EBS da EC2 istanze attive su Amazon S3 point-in-time come snapshot e ripristinarli su volumi EBS in hot standby. [Per automatizzare la creazione, la conservazione e l'eliminazione degli snapshot di volume Amazon EBS, puoi utilizzare [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) per impostare la frequenza degli snapshot automatici e ripristinarli in base ai requisiti RTO/RPO.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Tools (Strumenti)
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html)) fornisce volumi di storage a livello di blocco da utilizzare con le istanze. EC2 Il comportamento dei volumi EBS è simile a quello dei dispositivi a blocchi non formattati e non elaborati. Puoi montare questi volumi come dispositivi sulle istanze.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi usare Amazon EC2 per lanciare tutti o pochi server virtuali di cui hai bisogno, con scalabilità orizzontale o orizzontale.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) è un servizio Web che semplifica la configurazione, il funzionamento e la scalabilità di un database relazionale nel cloud AWS. Fornisce una capacità ridimensionabile e conveniente per un database relazionale e gestisce le attività di amministrazione comuni del database.
+ [AWS Directory Service per Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), noto anche come AWS Managed Microsoft AD, consente ai carichi di lavoro basati sulle directory e alle risorse AWS di utilizzare Microsoft Active Directory nel cloud AWS.

**Altri strumenti**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), sviluppato congiuntamente da LRS e Rocket Software, acquisisce l'output da una bobina JES di Rocket Enterprise Server e lo consegna in modo affidabile a una destinazione di stampa specificata.
+ LRS Directory Information Server (LRS/DIS) viene utilizzato per l'autenticazione e l'autorizzazione durante il flusso di lavoro di stampa.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIper raccogliere o acquisire dati di stampa tramite l'interfaccia di programmazione JES Print Exit di Rocket Software.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) è un ambiente di distribuzione delle applicazioni per applicazioni mainframe. Fornisce l'ambiente di esecuzione per le applicazioni mainframe che vengono migrate o create utilizzando qualsiasi versione di Rocket Software Enterprise Developer.

## Epiche
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configura Rocket Enterprise Server su Amazon EC2 e distribuisci un'applicazione mainframe batch
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Rocket Enterprise Server e distribuisci un'applicazione demo. | Configura Rocket Enterprise Server su Amazon EC2, quindi distribuisci l' BankDemo applicazione dimostrativa Rocket Software su Amazon. EC2L' BankDemo applicazione è un'applicazione mainframe in batch che crea e quindi avvia l'output di stampa. | Architetto del cloud | 

### Configura un server di stampa LRS su Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni una licenza del prodotto LRS per la stampa. | Per ottenere una licenza di prodotto LRS per LRSVPSX/MFI, LRS/Queue, and LRS/DIS, contattate il team di [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/) Output Management. È necessario fornire i nomi host delle EC2 istanze in cui verranno installati i prodotti LRS. | Costruisci piombo | 
| Crea un'istanza Amazon EC2 Windows per installare LRS VPSX/MFI. | Avvia un'istanza Amazon EC2 Windows seguendo le istruzioni contenute in [Launch an Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) nella EC2 documentazione di Amazon. L'istanza deve soddisfare i seguenti requisiti hardware e software per LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.Quando crei l'istanza di Windows, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS VPSX/MFI sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Create un gruppo target e registrate LRS VPSX/MFI EC2 come target. | Crea un gruppo target seguendo le istruzioni contenute in [Crea un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) nella documentazione di Elastic Load Balancing.Quando crei il gruppo target, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Segui le istruzioni contenute in [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) nella documentazione di Elastic Load Balancing. Il Network Load Balancer indirizza il traffico da Rocket Enterprise Server a LRS. VPSX/MFI EC2Quando create il Network Load Balancer, effettuate le seguenti operazioni nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Integra Rocket Enterprise Server con LRS e LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura Rocket Enterprise Server per LRS/Queue l'integrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Attualmente LRS supporta un limite massimo di 50 caratteri per i nomi DNS, ma questo limite è soggetto a modifiche in futuro. Se il tuo nome DNS è maggiore di 50, puoi utilizzare l'indirizzo IP del Network Load Balancer come alternativa. | Architetto del cloud | 
| Configura Rocket Enterprise Server per l'integrazione con LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto cloud | 

### Configura stampanti e utenti di stampa in Rocket Enterprise Server e LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Associate il modulo Rocket Software Print Exit al processo di esecuzione del server della stampante batch Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Per ulteriori informazioni sulla configurazione, vedete [Using the Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) nella documentazione di Micro Focus. | Architetto del cloud | 
| Aggiungi una stampante in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Crea un utente di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Configura l'autenticazione e l'autorizzazione di stampa
<a name="set-up-print-authentication-and-authorization"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dominio AWS Managed Microsoft AD con utenti e gruppi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Unisciti a LRS VPSX/MFI EC2 a un dominio AWS Managed Microsoft AD. | Aggiungi LRS VPSX/MFI EC2 al tuo dominio AWS Managed Microsoft AD [automaticamente](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (documentazione AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (documentazione AWS Directory Service). | Architetto del cloud | 
| Configura e integra LRS/DIS con AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Prova un flusso di lavoro di stampa
<a name="test-a-print-workflow"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia una richiesta di stampa in batch dall'app Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Tecnico collaudatore | 
| Controllate l'output di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)È ora possibile visualizzare l'output di stampa di un estratto conto con le colonne relative al numero di **conto.** , **Descrizione**, **data**, **importo** e **saldo**. Per un esempio, vedete l'allegato **batch\$1print\$1output** per questo pattern. | Tecnico di test | 

## Risorse correlate
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernizzazione dell'output LRS (documentazione](https://www.lrsoutputmanagement.com/) LRS)
+ [ANSI e controlli del trasporto delle macchine](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentazione IBM)
+ [Parole di comando del canale (documentazione IBM](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words))
+ [Potenziamento dei carichi di lavoro mainframe aziendali su AWS con Micro Focus (blog](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) AWS Partner Network)
+ [Crea una PAC Micro Focus Enterprise Server con Amazon EC2 Auto Scaling and Systems Manager](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) (documentazione AWS Prescriptive Guidance)
+ Flusso di [dati AFP (Advanced Function Presentation)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentazione IBM)
+ [Line Conditioned Data Stream (LCDS) (documentazione Compart)](https://www.compart.com/en/lcds)

## Informazioni aggiuntive
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerazioni**

Durante il percorso di modernizzazione, potete prendere in considerazione un'ampia varietà di configurazioni sia per i processi batch mainframe che per l'output che generano. La piattaforma mainframe è stata personalizzata da ogni cliente e fornitore che la utilizza con requisiti particolari che influiscono direttamente sulla stampa. Ad esempio, la piattaforma attuale può incorporare IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS) nel flusso di lavoro corrente. Inoltre, i [caratteri di controllo del mainframe carriage](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e [le parole di comando del canale](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) possono influire sull'aspetto della pagina stampata e potrebbero richiedere una gestione speciale. Come parte del processo di pianificazione della modernizzazione, consigliamo di valutare e comprendere le configurazioni del proprio ambiente di stampa specifico.

**Acquisizione dei dati di stampa**

Rocket Software Print Exit trasmette le informazioni necessarie per consentire a LRS di VPSX/MFI elaborare efficacemente il file di spool. Le informazioni sono costituite da campi passati nei blocchi di controllo pertinenti, come:
+ NOME DEL LAVORO
+ PROPRIETARIO (USERID)
+ DESTINAZIONE
+ MODULO
+ NOME DEL FILE
+ SCRITTORE

LRS VPSX/MFI supporta i seguenti meccanismi batch mainframe per l'acquisizione di dati da Rocket Enterprise Server.
+ Elaborazione COBOL in BATCH utilizzando istruzioni JCL print/spool SYSOUT standard z/OS DD/OUTPUT 
+ Elaborazione BATCH COBOL utilizzando istruzioni JCL print/spool CA-SPOOL SUBSYS DD standard z/OS 
+ IMS/COBOL print/spoolelaborazione tramite l'interfaccia CBLTDLI (per un elenco completo dei metodi supportati e degli esempi di programmazione, consultate la documentazione LRS inclusa nella licenza del prodotto).

**Controlli dello stato del parco stampanti**

LRS VPSX/MFI (LRS LoadX) è in grado di eseguire controlli approfonditi dello stato di salute, tra cui la gestione dei dispositivi e l'ottimizzazione operativa. La gestione dei dispositivi può rilevare guasti in un dispositivo di stampa e indirizzare la richiesta di stampa a una stampante funzionante. Per ulteriori informazioni sui controlli approfonditi dello stato delle flotte di stampanti, consultate la documentazione LRS inclusa nella licenza del prodotto.

**Autenticazione e autorizzazione alla stampa**

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/DISpuò anche applicare controlli di sicurezza di stampa a livello granulare nei seguenti casi d'uso:
+ Gestisci chi può sfogliare il lavoro della stampante.
+ Gestisci il livello di navigazione dei lavori di altri utenti.
+ Gestisci le attività operative. Ad esempio, sicurezza a livello di comando come hold/release, purge, edit, copy e reindirizzamento. La sicurezza può essere impostata dall'ID utente o dal gruppo (simile al gruppo AD o al gruppo LDAP). ****

## Allegati
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Modernizzazione del mainframe: attiva DevOps AWS con Rocket Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Riepilogo
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Sfide dei clienti**

Organizations che eseguono applicazioni di base su hardware mainframe di solito incontrano alcune sfide quando l'hardware deve scalare per soddisfare le esigenze delle innovazioni digitali. Queste sfide includono i seguenti vincoli. 
+ Gli ambienti di sviluppo e test del mainframe non sono scalabili a causa della rigidità dei componenti hardware del mainframe e degli elevati costi di modifica.
+ Lo sviluppo di mainframe sta affrontando una carenza di competenze, perché i nuovi sviluppatori non conoscono e non sono interessati ai tradizionali strumenti di sviluppo mainframe. Le tecnologie moderne come i container, le pipeline di integration/continuous distribuzione continua (CI/CD) e i moderni framework di test non sono disponibili nello sviluppo di mainframe.

**Risultati del modello**

Per affrontare queste sfide, Amazon Web Services (AWS) e Rocket Software Micro Focus, un partner AWS Partner Network (APN), hanno collaborato alla creazione di questo modello. La soluzione è progettata per aiutarti a raggiungere i seguenti risultati.
+ Migliore produttività degli sviluppatori. Agli sviluppatori possono essere fornite nuove istanze di sviluppo mainframe in pochi minuti.
+ Utilizzo di Cloud AWS per creare nuovi ambienti di test mainframe con capacità praticamente illimitata.
+ Fornitura rapida di una nuova infrastruttura mainframe CI/CD . Il provisioning AWS può essere completato entro un'ora utilizzando e. AWS CloudFormation AWS Systems Manager
+ Uso nativo di AWS DevOps strumenti per lo sviluppo di mainframe, tra cui AWS CodeBuild, AWS CodeCommit AWS CodePipeline AWS CodeDeploy, e Amazon Elastic Container Registry (Amazon ECR).
+ Trasforma lo sviluppo tradizionale a cascata in uno sviluppo agile nei progetti mainframe.

**Riepilogo delle tecnologie**

In questo modello, lo stack di destinazione contiene i seguenti componenti.


| 
| 
| Componenti logici | Soluzioni di implementazione | Description | 
| --- |--- |--- |
| Archivi di codice sorgente |  AccuRev Server software Rocket CodeCommit, Amazon ECR  | Gestione del codice sorgente: la soluzione utilizza due tipi di codice sorgente: Codice sorgente del mainframe, ad esempio COBOL e JCL. AWS modelli di infrastruttura e script di automazione Entrambi i tipi di codice sorgente richiedono il controllo della versione, ma vengono gestiti in modo diverso SCMs. Il codice sorgente distribuito nei server mainframe o Rocket Software Enterprise viene gestito in Rocket Software Micro Focus Server. AccuRev AWS i modelli e gli script di automazione sono gestiti in. CodeCommit Amazon ECR viene utilizzato per gli archivi di immagini Docker.  | 
| Istanze per sviluppatori aziendali | Amazon Elastic Compute Cloud (Amazon EC2), sviluppatore aziendale di software Rocket per Eclipse | Gli sviluppatori di mainframe possono sviluppare codice in Amazon EC2 utilizzando Rocket Software Enterprise Developer for Eclipse. Ciò elimina la necessità di affidarsi all'hardware mainframe per scrivere e testare il codice.  | 
| Gestione delle licenze di Rocket Software Enterprise Suite | License Manager di Rocket Software Enterprise Suite | Per la gestione e la governance centralizzate delle licenze di Rocket Software Enterprise Suite, la soluzione utilizza Rocket Software Enterprise Suite License Manager per ospitare la licenza richiesta. | 
| Pipeline CI/CD | CodePipeline,, CodeBuild CodeDeploy, Rocket Software Enterprise Developer in un contenitore, Rocket Software Enterprise Test Server in un contenitore, Rocket Software Micro Focus Enterprise Server | I team di sviluppo del mainframe necessitano di CI/CD pipeline per eseguire la compilazione del codice, i test di integrazione e i test di regressione. In AWS, CodePipeline e CodeBuild può lavorare con Rocket Software Enterprise Developer ed Enterprise Test Server in un container in modo nativo. | 

## Prerequisiti e limitazioni
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Prerequisiti**


| 
| 
| Nome | Description | 
| --- |--- |
| py3270 | py3270 è un'interfaccia Python per x3270, un emulatore di terminale IBM 3270. Fornisce un'API per un sottoprocesso x3270 o s3270. | 
| x3270 | x3270 è un emulatore di terminale IBM 3270 per X Window System e Windows.  Questo può essere usato dallo sviluppatore per il test delle unità a livello locale. | 
| Robot-Framework-Mainframe-3270-Library | Mainframe3270 è una libreria per Robot Framework basata sul progetto py3270. | 
| Rocket Software Verastream | Rocket Software Verastream è una piattaforma di integrazione che consente di testare gli asset mainframe nello stesso modo in cui vengono testate le app mobili, le applicazioni Web e i servizi Web SOA. | 
| Programma di installazione e licenza Rocket Software Unified Functional Testing (UFT) | Rocket Software Unified Functional Testing è un software che fornisce l'automazione dei test funzionali e di regressione per applicazioni e ambienti software. | 
| Programma di installazione e licenza di Rocket Software Enterprise Server | Enterprise Server fornisce l'ambiente di runtime per le applicazioni mainframe. | 
| Programma di installazione e licenza di Rocket Software Enterprise Test Server | Rocket Software Enterprise Test Server è un ambiente di test delle applicazioni mainframe IBM. | 
| Programma di AccuRev installazione e licenza Rocket Software per Server e programma di installazione e licenza Rocket Software Micro Focus per sistemi AccuRev operativi Windows e Linux  | AccuRev fornisce la gestione del codice sorgente (SCM). Il AccuRev sistema è progettato per essere utilizzato da un team di persone che stanno sviluppando un set di file. | 
| Programma di installazione, patch e licenza di Rocket Software Enterprise Developer per Eclipse | Enterprise Developer fornisce agli sviluppatori di mainframe una piattaforma per sviluppare e mantenere le principali applicazioni mainframe online e in batch. | 

**Limitazioni**
+ La creazione di un'immagine Windows Docker non è supportata in. CodeBuild Questo [problema segnalato](https://github.com/docker-library/docker/issues/49) richiede il supporto dei team di Windows Kernel/HCS e Docker. La soluzione alternativa consiste nel creare un runbook di compilazione dell'immagine Docker utilizzando Systems Manager. Questo modello utilizza la soluzione alternativa per creare immagini Rocket Software Enterprise Developer for Eclipse e Rocket Software Micro Focus Enterprise Test Server Container. 
+ La connettività del cloud privato virtuale (VPC) da non CodeBuild è ancora supportata in Windows, quindi il modello non utilizza Rocket Software License Manager per gestire le licenze nei contenitori Rocket Software Enterprise Developer e OpenText Rocket Software Enterprise Test Server.

**Versioni del prodotto**
+ Rocket Software Enterprise Developer 5.5 o versione successiva
+ Rocket Software Enterprise Test Server 5.5 o versione successiva
+ Rocket Software Enterprise Server 5.5 o versione successiva
+ Rocket Software 7.x o versione successiva AccuRev 
+ **Immagine di base di Windows Docker per Rocket Software Enterprise Developer ed Enterprise Test Server: microsoft/dotnet-framework-4.7.2-runtime**
+ **Immagine di base Linux Docker per AccuRev client: amazonlinux:2**

## Architecture
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Ambiente mainframe**

Nello sviluppo di mainframe convenzionali, gli sviluppatori devono utilizzare l'hardware mainframe per sviluppare e testare i programmi. Devono far fronte a limitazioni di capacità, ad esempio limitate per milioni di istruzioni al secondo (MIPS) per l' dev/test ambiente, e devono fare affidamento sugli strumenti disponibili sui computer mainframe.

In molte organizzazioni, lo sviluppo dei mainframe segue la metodologia di sviluppo a cascata, con i team che si affidano a cicli lunghi per rilasciare le modifiche. Questi cicli di rilascio sono generalmente più lunghi rispetto allo sviluppo di prodotti digitali.   

Il diagramma seguente mostra più progetti mainframe che condividono hardware mainframe per il loro sviluppo. Nell'hardware mainframe, è costoso scalare un ambiente di sviluppo e test per più progetti.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*Architettura AWS*****

Questo modello estende lo sviluppo del mainframe a. Cloud AWS Innanzitutto, utilizza AccuRev SCM per ospitare il codice sorgente del mainframe. AWS Quindi rende disponibili Enterprise Developer ed Enterprise Test Server per la creazione e il test del codice mainframe. AWS 

Le sezioni seguenti descrivono i tre componenti principali del pattern.

**1. SCM**

Nel AWS, il pattern viene utilizzato AccuRev per creare un set di aree di lavoro SCM e il controllo della versione per il codice sorgente del mainframe. La sua architettura basata su stream consente lo sviluppo parallelo di mainframe per più team. Per unire una modifica, AccuRev utilizza il concetto di promozione. Per aggiungere tale modifica ad altre aree di lavoro, AccuRev utilizza il concetto di aggiornamento.

A livello di progetto, ogni team può creare uno o più flussi AccuRev per tenere traccia delle modifiche a livello di progetto. Questi sono chiamati flussi di progetto. Questi flussi di progetto vengono ereditati dallo stesso flusso principale. Il flusso principale viene utilizzato per unire le modifiche da diversi flussi di progetto.

Ogni stream di progetto può promuovere il codice verso AccuRev e viene impostato un trigger di promozione post per avviare la AWS pipeline CI/CD. La build riuscita di una modifica del flusso di progetto può essere promossa al flusso principale per ulteriori test di regressione.  

Di solito, il flusso principale è chiamato flusso di integrazione del sistema. Quando viene effettuata una promozione da un flusso di progetto a un flusso di integrazione di sistema, un trigger successivo alla promozione avvia un'altra CI/CD pipeline per eseguire i test di regressione.

Oltre al codice mainframe, questo modello include AWS CloudFormation modelli, documenti Systems Manager Automation e script. Seguendo le infrastructure-as-code migliori pratiche, sono controllati in base alla versione. CodeCommit 

Se è necessario sincronizzare il codice del mainframe con un ambiente mainframe per la distribuzione, Rocket Software fornisce la soluzione Enterprise Sync, che sincronizza il codice dall'SCM all'SCM del AccuRev mainframe.

**2. Ambienti di sviluppo e test**

In un'organizzazione di grandi dimensioni, scalare più di cento o addirittura più di mille sviluppatori mainframe è una sfida. Per risolvere questo vincolo, il modello utilizza istanze di Amazon EC2 Windows per lo sviluppo. Sulle istanze, sono installati gli strumenti Enterprise Developer for Eclipse. Lo sviluppatore può eseguire tutti i test e il debug del codice mainframe localmente sull'istanza. 

AWS Systems Manager I documenti State Manager e Automation vengono utilizzati per automatizzare il provisioning delle istanze per sviluppatori. Il tempo medio per creare un'istanza per sviluppatori è di 15 minuti. Vengono preparati i seguenti software e configurazioni:
+ AccuRev Client Windows per il check-out e il salvataggio del codice sorgente AccuRev
+ Strumento Enterprise Developers for Eclipse, per la scrittura, il test e il debug del codice mainframe a livello locale
+ Framework di test open source Python Behavior-driven development (BDD), framework di test Behave, py3270 e l'emulatore x3270 per la creazione di script per testare le applicazioni
+ Uno strumento di sviluppo Docker per creare l'immagine Docker di Enterprise Test Server e testare l'applicazione nel contenitore Docker di Enterprise Test Server 

Nel ciclo di sviluppo, gli sviluppatori utilizzano l' EC2 istanza per sviluppare e testare il codice mainframe a livello locale. Quando le modifiche locali vengono testate con successo, gli sviluppatori promuovono la modifica nel AccuRev server.  

**3. CI/CD oleodotti**

Nello schema, le CI/CD pipeline vengono utilizzate per i test di integrazione e i test di regressione prima della distribuzione nell'ambiente di produzione. 

Come spiegato nella sezione SCM, AccuRev utilizza due tipi di flussi: un flusso di progetto e un flusso di integrazione. Ogni stream è collegato a pipeline. CI/CD Per eseguire l'integrazione tra il AccuRev server e AWS CodePipeline, il pattern utilizza uno script di AccuRev post-promozione per creare un evento per avviare CI/CD.

Ad esempio, quando uno sviluppatore promuove una modifica a un flusso di progetto in AccuRev, avvia uno script di post-promozione da eseguire in Server. AccuRev Quindi lo script carica i metadati della modifica in un bucket Amazon Simple Storage Service (Amazon S3) per creare un evento Amazon S3. Questo evento avvierà l'esecuzione di una pipeline configurata. CodePipeline  

Lo stesso meccanismo di avvio degli eventi viene utilizzato per il flusso di integrazione e le relative pipeline associate. 

Nella CI/CD pipeline, CodePipeline si utilizza CodeBuild con il contenitore client AccuRev Linux per estrarre il codice più recente dagli stream. AccuRev Quindi la pipeline inizia CodeBuild a utilizzare il contenitore Windows Enterprise Developer per compilare il codice sorgente e a utilizzare il contenitore Windows Enterprise Test Server per testare le applicazioni mainframe CodeBuild .

Le CI/CD pipeline vengono create utilizzando CloudFormation modelli e il blueprint verrà utilizzato per nuovi progetti. Utilizzando i modelli, un progetto impiega meno di un'ora per creare una nuova CI/CD pipeline. AWS

Per scalare la capacità di test del mainframe AWS, il modello crea la suite di DevOps test Rocket Software, Verastream e il server UFT. Utilizzando gli DevOps strumenti moderni, puoi eseguire tutti i test di cui hai bisogno. AWS 

Nel diagramma seguente AWS è illustrato un esempio di ambiente di sviluppo mainframe con Rocket Software attivo.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Stack tecnologico Target*

Questa sezione fornisce uno sguardo più da vicino all'architettura di ciascun componente del pattern.

**1. Archivio del codice sorgente: SCM AccuRev **

AccuRev SCM è configurato per gestire le versioni del codice sorgente mainframe. Per un'elevata disponibilità, AccuRev supporta le modalità primaria e di replica. Gli operatori possono eseguire il failover sulla replica durante la manutenzione sul nodo primario. 

Per accelerare la risposta della CI/CD pipeline, il pattern utilizza Amazon CloudWatch Events per rilevare le modifiche al codice sorgente e avviare l'avvio della pipeline.

1. La pipeline è configurata per utilizzare una fonte Amazon S3.

1. Una regola CloudWatch Events è impostata per acquisire gli eventi S3 da un bucket S3 di origine.

1. La regola CloudWatch Events imposta un obiettivo per la pipeline.

1. AccuRev SCM è configurato per eseguire uno script di post-promozione a livello locale dopo il completamento della promozione.

1. AccuRev SCM genera un file XML che contiene i metadati della promozione e lo script carica il file XML nel bucket S3 di origine.

1. Dopo il caricamento, il bucket S3 di origine invia gli eventi che corrispondono alla regola Events e la regola CloudWatch Events avvia l'esecuzione della pipeline CloudWatch . 

Quando la pipeline viene eseguita, avvia un CodeBuild progetto che prevede l'utilizzo di un contenitore client AccuRev Linux per estrarre il codice mainframe più recente da uno stream associato. AccuRev   

Il diagramma seguente mostra una configurazione del server. AccuRev 

![\[Cloud AWS diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Modello Enterprise Developer** 

Il modello utilizza i EC2 modelli Amazon per semplificare la creazione dell'istanza di sviluppo. Utilizzando State Manager, può applicare le impostazioni del software e della licenza alle EC2 istanze in modo coerente.

Il EC2 modello Amazon si basa sulle impostazioni del contesto VPC e sulle impostazioni predefinite dell'istanza e segue i requisiti di tagging aziendali. Utilizzando un modello, un team può creare le proprie nuove istanze di sviluppo. 

All'avvio di un'istanza di sviluppo, tramite l'associazione ai tag, Systems Manager utilizza State Manager per applicare l'automazione. L'automazione include i seguenti passaggi generali.

1. Installa il software Enterprise Developer e installa le patch.

1. Installa il AccuRev client per Windows.

1. Installa lo script preconfigurato per consentire agli sviluppatori di partecipare allo AccuRev stream. Inizializza gli spazi di lavoro di Eclipse.

1. Installa strumenti di sviluppo, tra cui x3270, py3270 e Docker.

1. Configura le impostazioni della licenza in modo che punti a un bilanciamento del carico di License Manager.

Il diagramma seguente mostra un'istanza Enterprise Developer creata dal EC2 modello Amazon, con software e configurazione applicati all'istanza da State Manager. Le istanze Enterprise Developer si connettono AWS License Manager a per attivare la licenza.

![\[Cloud AWS diagram showing Enterprise Developer Instance setup with License Manager and Systems Manager components.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  Condutture CI/CD**

Come spiegato nella sezione sull' AWS architettura, nel modello sono presenti pipeline a livello di progetto e CI/CD pipeline di integrazione di sistema. Ogni team di progetto mainframe crea una o più CI/CD pipeline per creare i programmi che sta sviluppando in un progetto. Queste CI/CD pipeline di progetto controllano il codice sorgente da un flusso associato. AccuRev  

In un team di progetto, gli sviluppatori promuovono il proprio codice nel AccuRev flusso associato. Quindi la promozione avvia la pipeline del progetto per creare il codice ed eseguire i test di integrazione. 

Ogni CI/CD pipeline di progetto utilizza CodeBuild progetti con l'immagine Amazon ECR dello strumento Enterprise Developer e l'immagine Amazon ECR dello strumento Enterprise Test Server. 

CodePipeline e CodeBuild vengono utilizzati per creare le pipeline. CI/CD Perché CodeBuild non CodePipeline avete commissioni o impegni anticipati, pagate solo per ciò che utilizzate. Rispetto all'hardware mainframe, la AWS soluzione riduce notevolmente i tempi di fornitura dell'hardware e abbassa i costi dell'ambiente di test.

Nello sviluppo moderno, vengono utilizzate più metodologie di test. Ad esempio, test-driven development (TDD), BDD e Robot Framework. Con questo modello, gli sviluppatori possono utilizzare questi strumenti moderni per i test dei mainframe. Ad esempio, utilizzando x3270, py3270 e lo strumento di test Python Behave, è possibile definire il comportamento di un'applicazione online. Puoi anche utilizzare il framework robotico build mainframe 3270 in queste pipeline. CI/CD 

Il diagramma seguente mostra la pipeline del team stream. CI/CD  

![\[Cloud AWS CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


Il diagramma seguente mostra il rapporto di CI/CD test del progetto prodotto da CodePipeline in Mainframe3270 Robot Framework.

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


Il diagramma seguente mostra il rapporto di CI/CD test del progetto prodotto da CodePipeline in Py3270 e Behave BDD.

![\[Test report summary showing 100% pass rate for 2 test cases in a pipeline.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Dopo che i test a livello di progetto sono stati superati con successo, il codice testato viene promosso manualmente nel flusso di integrazione in SCM. AccuRev Puoi automatizzare questo passaggio dopo che i team avranno acquisito fiducia nella copertura dei test della loro pipeline di progetto.

Quando il codice viene promosso, la CI/CD pipeline di integrazione del sistema verifica il codice unito ed esegue test di regressione. Il codice unito viene promosso da tutti i flussi di progetto paralleli.

A seconda della granulometria richiesta dall'ambiente di test, i clienti possono disporre di più CI/CD pipeline di integrazione del sistema in un ambiente diverso, ad esempio UAT, Pre-Produzione. 

Nello schema, gli strumenti utilizzati nella pipeline di integrazione del sistema sono Enterprise Test Server, UFT Server e Verastream. Tutti questi strumenti possono essere implementati nel contenitore Docker e utilizzati con. CodeBuild

Dopo aver testato con successo i programmi mainframe, l'elemento viene archiviato, con il controllo della versione, in un bucket S3. 

Il diagramma seguente mostra una pipeline di integrazione del sistema. CI/CD 

![\[CI/CD pipeline showing Servizi AWS and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Dopo che l'artefatto è stato testato con successo nelle CI/CD pipeline di integrazione del sistema, può essere promosso per l'implementazione in produzione. 

Se è necessario redistribuire il codice sorgente sul mainframe, Rocket Software offre la soluzione Enterprise Sync per sincronizzare il codice sorgente da Mainframe a Mainframe Endeavour. AccuRev 

Il diagramma seguente mostra una pipeline di produzione che distribuisce l'artefatto in Enterprise Server CI/CD . In questo esempio, CodeDeploy orchestra la distribuzione dell'elemento mainframe testato in Enterprise Server.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Oltre alla descrizione dettagliata dell'architettura della CI/CD pipeline, [consultate il post AWS DevOps sul blog Automatizzate migliaia di test mainframe AWS con Micro Focus Enterprise Suite per ulteriori informazioni sul test delle applicazioni mainframe](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) in and. CodeBuild CodePipeline (Micro Focus è ora Rocket Software). Consultate il post del blog per le migliori pratiche e i dettagli su come eseguire i test del mainframe su. AWS

## Tools (Strumenti)
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS strumenti di automazione**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Eventi 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)
+ [Gestione dei segreti AWS](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)

**Strumenti Rocket Software**
+ [Sviluppatore Rocket Enterprise per Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Server di test Rocket Enterprise](https://www.microfocus.com/documentation/enterprise-developer/ed60/ETS-help/GUID-ECA56693-D9FE-4590-8798-133257BFEBE7.html)
+ [Rocket Enterprise Server (distribuzione](https://www.microfocus.com/documentation/enterprise-developer/es_60/) in produzione)
+ [Software Rocket AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [License Manager di Rocket Software Enterprise Suite](https://www.microfocus.com/documentation/slm/)
+ [Integratore di host Rocket Software Verastream](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Software Rocket UFT One](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Altri strumenti**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Robot-Framework-Mainframe-3270-Libreria](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Epiche
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Crea l'infrastruttura AccuRev SCM
<a name="create-the-accurev-scm-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa un server AccuRev SCM primario utilizzando. CloudFormation |  | AWS CloudFormation | 
| Crea l'utente AccuRev amministratore. | Accedere a AccuRev SCM Server ed eseguire il comando CLI per creare un utente amministratore. | AccuRev Amministratore del server SCM | 
| Crea AccuRev stream. | Crea AccuRev flussi che ereditano i flussi superiori in sequenza: Production, System Integration, Team Streams. | AccuRev Amministratore SCM | 
| Crea gli account di AccuRev accesso per sviluppatori. | Utilizzate i comandi CLI AccuRev SCM per AccuRev creare account di accesso degli utenti per gli sviluppatori mainframe. | AccuRev Amministratore SCM | 

### Crea il modello di EC2 lancio Amazon Enterprise Developer
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Distribuisci il modello di EC2 lancio di Amazon utilizzando CloudFormation. | Utilizzalo CloudFormation per distribuire un modello di EC2 lancio Amazon per le istanze Enterprise Developer. Il modello include un documento Systems Manager Automation per l'istanza Rocket Enterprise Developer. | AWS CloudFormation | 
| Crea l'istanza Enterprise Developer dal EC2 modello Amazon. |  | Accesso alla console AWS e competenze per sviluppatori mainframe | 

### Crea l'immagine Docker dello strumento Enterprise Developer
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'immagine Docker dello strumento Enterprise Developer. | Usa il comando Docker e lo strumento Enterprise Developer Dockerfile per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR. | Sulla console Amazon ECR, crea il repository per l'immagine Enterprise Developer Docker. | Amazon ECR | 
| Invia l'immagine Docker dello strumento Enterprise Developer ad Amazon ECR. | Esegui il comando Docker push per inviare l'immagine Docker dello strumento Enterprise Developer per salvarla nel repository Docker in Amazon ECR. | Docker | 

### Crea l'immagine Docker di Enterprise Test Server
<a name="create-the-enterprise-test-server-docker-image"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'immagine Docker di Enterprise Test Server. | Usa il comando Docker e il Dockerfile di Enterprise Test Server per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR. | Sulla console Amazon ECR, crea l'archivio Amazon ECR per l'immagine Docker di Enterprise Test Server. | Amazon ECR | 
| Invia l'immagine Docker di Enterprise Test Server ad Amazon ECR. | Esegui il comando Docker push per inviare e salvare l'immagine Docker di Enterprise Test Server in Amazon ECR. | Docker | 

### Crea la pipeline di stream del team CI/CD
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il CodeCommit repository. | Sulla CodeCommit console, crea un repository basato su Git per l'infrastruttura e il codice. CloudFormation  | AWS CodeCommit | 
| Carica il CloudFormation modello e il codice di automazione nel CodeCommit repository. | Esegui il comando Git push per caricare il CloudFormation modello e il codice di automazione nel repository. | Git | 
| Implementa la CI/CD pipeline di stream del team utilizzando. CloudFormation | Utilizza il CloudFormation modello preparato per distribuire una pipeline di flusso del team. CI/CD  | AWS CloudFormation | 

### Crea la CI/CD pipeline di integrazione del sistema
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'immagine UFT Docker. | Usa il comando Docker e il Dockerfile UFT per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR per l'immagine UFT. | Sulla console Amazon ECR, crea il repository Docker per l'immagine UFT. | Amazon ECR | 
| Invia l'immagine UFT Docker ad Amazon ECR. | Esegui il comando Docker push per inviare e salvare l'immagine Docker di Enterprise Test Server in Amazon ECR. | Docker | 
| Crea l'immagine Verastream Docker. | Usa il comando Docker e il Dockerfile Verastream per creare l'immagine Docker. | Docker | 
| Crea il repository Docker in Amazon ECR per l'immagine Verastream. | Sulla console Amazon ECR, crea il repository Docker per l'immagine Verastream. | Amazon ECR | 
| Implementa la pipeline di integrazione del sistema utilizzando. CI/CD CloudFormation | Utilizza il CloudFormation modello preparato per implementare una pipeline di integrazione del sistema. CI/CD  | AWS CloudFormation | 

### Crea una CI/CD pipeline di distribuzione di produzione
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa Enterprise Server utilizzando AWS Quick Start. | Per distribuire Enterprise Server utilizzando CloudFormation, avviare Enterprise Server su AWS Quick Start. | AWS CloudFormation | 
| Implementa una CI/CD pipeline di distribuzione in produzione. | Sulla CloudFormation console, utilizza il CloudFormation modello per implementare una pipeline di distribuzione in produzione. CI/CD  | AWS CloudFormation | 

## Risorse correlate
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Riferimenti**
+ [AWS DevOps Blog - Automatizza migliaia di test del mainframe AWS con Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) (Micro Focus è ora Rocket Software).
+ [repository py3270/py3270 GitHub ](https://github.com/py3270/py3270)
+ [Archivio della libreria Altran-PT-GDC/Robot-Framework-Mainframe-3270 GitHub ](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [Benvenuti a comportarvi bene\$1](https://behave.readthedocs.io/en/latest/index.html)
+ [Blog dei partner APN - Tag: Micro Focus (Micro](https://aws.amazon.com/blogs/apn/tag/micro-focus/) Focus è ora Rocket Software).
+ [Avvio di un'istanza da un modello di avvio](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**Marketplace AWS**
+ [Rocket Software UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Quick Start**
+ [Rocket Enterprise Server attivo AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernizza i carichi di lavoro di stampa online mainframe su AWS utilizzando Micro Focus Enterprise Server e 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 e Kevin Yung, Amazon Web Services*

*Abraham Rondon, Micro Focus*

*Guy Tucker, Levi, Ray and Shoup Inc*

## Riepilogo
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Questo modello mostra come modernizzare i carichi di lavoro di stampa online mainframe critici per l'azienda sul cloud Amazon Web Services (AWS) utilizzando Micro Focus Enterprise Server come runtime per un'applicazione mainframe modernizzata e LRS VPSX/MFI (Micro Focus Interface) come server di stampa. [Il modello si basa sull'approccio di modernizzazione del mainframe replatform.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) In questo approccio, esegui la migrazione della tua applicazione mainframe online su Amazon Elastic Compute Cloud (Amazon EC2) e la migrazione del database mainframe, ad esempio IBM for DB2 ) z/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 è integrato con AWS Managed Microsoft AD per l'autenticazione e l'autorizzazione del flusso di lavoro di stampa. Modernizzando i carichi di lavoro di stampa online, puoi ridurre i costi dell'infrastruttura IT, mitigare il debito tecnico legato alla manutenzione dei sistemi legacy, rimuovere i silos di dati, aumentare l'agilità e l'efficienza con un DevOps modello e sfruttare le risorse e l'automazione su richiesta nel cloud AWS.

## Prerequisiti e limitazioni
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un carico di lavoro di stampa o gestione dell'output online su mainframe
+ Conoscenze di base su come ricostruire e fornire un'applicazione mainframe eseguibile su Micro Focus Enterprise Server (per ulteriori informazioni, consultate la scheda tecnica di [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) nella documentazione Micro Focus).
+ Conoscenza di base delle soluzioni e dei concetti di stampa su cloud di LRS (per ulteriori informazioni, vedete [Output Modernization](https://www.lrsoutputmanagement.com/products/modernization-products) nella documentazione di LRS).
+ Software e licenza Micro Focus Enterprise Server (per ulteriori informazioni, contattate il reparto vendite di [Micro Focus](https://www.microfocus.com/en-us/contact/contactme)).
+ VPSX/MFI, LRS/Queue, and LRS/DISSoftware e licenze LRS (per ulteriori informazioni, contattate il reparto vendite [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/)).

**Nota**  
*Per ulteriori informazioni sulle considerazioni sulla configurazione per i carichi di lavoro di stampa mainframe online, vedete *Considerazioni* nella sezione Informazioni aggiuntive di questo modello.*

**Versioni del prodotto**
+ [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 versioni successive
+ [LRS VPSX/MFI V1R3 o versione successiva](https://www.lrsoutputmanagement.com/products/modernization-products/)

## Architecture
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Stack tecnologico di origine**
+ Sistema operativo: IBM z/OS
+ Linguaggio di programmazione: Common Business-Oriented Language (COBOL) e Customer Information Control System (CICS) 
+ Database: IBM DB2 per z/OS IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Sicurezza: Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gestione della stampa e dell'output: prodotti di z/OS stampa mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA View)

**Stack tecnologico Target**
+ Sistema operativo: Microsoft Windows Server in esecuzione su Amazon EC2
+ Elaborazione — Amazon EC2
+ Linguaggio di programmazione: COBOL e CICS
+ Banca dati — Amazon RDS
+ Sicurezza: AWS Managed Microsoft AD
+ Gestione della stampa e dell'output: soluzione di stampa LRS su AWS
+ Ambiente di runtime mainframe: Micro Focus Enterprise Server

**Architettura di origine**

Il diagramma seguente mostra una tipica architettura allo stato attuale per un carico di lavoro di stampa online mainframe.

![\[Processo in sei fasi per produrre un output visualizzabile.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Gli utenti eseguono transazioni commerciali su un sistema di coinvolgimento (SoE) basato su un'applicazione IBM CICS scritta in COBOL.

1. Il SoE richiama il servizio mainframe, che registra i dati delle transazioni commerciali in un database system-of-records (SoR) come IBM for z/OS. DB2 

1. Il SoR conserva i dati aziendali del SoE.

1. Un utente avvia una richiesta per generare un output di stampa dal CICS SoE, che avvia un'applicazione di transazione di stampa per elaborare la richiesta di stampa. 

1. L'applicazione per le transazioni di stampa (ad esempio un programma CICS e COBOL) estrae i dati dal database, li formatta in base ai requisiti aziendali e genera risultati aziendali (dati di stampa) come estratti conto, carte d'identità o estratti conto di prestito. Quindi, l'applicazione invia una richiesta di stampa utilizzando il metodo di accesso virtuale alle telecomunicazioni (VTAM). Un server di z/OS stampa (come IBM Infoprint Server) utilizza NetSpool un componente VTAM simile per intercettare le richieste di stampa, quindi crea set di dati di output di stampa sulla bobina JES utilizzando i parametri di output JES. I parametri di output JES specificano le informazioni di routing utilizzate dal server di stampa per trasmettere l'output a una particolare stampante di rete. Il termine *VTAM* si riferisce al z/OS Communications Server e all'elemento dei servizi SNA (System Network Architecture) di z/OS.

1. Il componente di trasmissione dell'output di stampa trasmette i set di dati di stampa in uscita dalla bobina JES a stampanti o server di stampa remoti, come LRS (come illustrato in questo modello), IBM Infoprint Server o destinazioni e-mail.

**Architettura Target**

Il diagramma seguente mostra un'architettura per un carico di lavoro di stampa online mainframe distribuito nel cloud AWS:

![\[Processo in quattro fasi, dall'avvio della richiesta di stampa all'elaborazione su AWS fino alla stampa LRS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un utente avvia una richiesta di stampa da un'interfaccia utente online (CICS) per creare output di stampa, come estratti conto di fatturazione, carte d'identità o estratti conto di prestito.

1. L'applicazione online mainframe ([riplatformata su Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) utilizza il runtime Micro Focus Enterprise Server per estrarre i dati dal database dell'applicazione, applicare la logica aziendale ai dati, formattare i dati e quindi inviarli a una destinazione di stampa utilizzando [Micro Focus CICS Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (DFHUPRNT). 

1. Il database dell'applicazione (un SoR eseguito su Amazon RDS) mantiene i dati per l'output di stampa.

1. La soluzione di VPSX/MFI stampa LRS è implementata su Amazon EC2 e i suoi dati operativi sono archiviati in Amazon Elastic Block Store (Amazon EBS). LRS VPSX/MFI utilizza un nome di coda. 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 

**Nota**  
La soluzione di destinazione in genere non richiede modifiche alle applicazioni per adattarsi ai linguaggi di formattazione del mainframe, come IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS). Per ulteriori informazioni sull'utilizzo di Micro Focus per la migrazione e la modernizzazione delle applicazioni mainframe su AWS, consulta [Empowering Enterprise Mainframe Workloads on AWS with Micro Focus nella documentazione AWS](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**Architettura dell'infrastruttura AWS**

Il diagramma seguente mostra un'architettura di infrastruttura AWS altamente disponibile e sicura per un carico di lavoro di stampa online mainframe:

![\[Due zone di disponibilità con server Micro Focus Enterprise EC2 attivo, Amazon RDS e stampa LRS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


Il diagramma mostra il flusso di lavoro seguente:

1. L'applicazione online mainframe (scritta in un linguaggio di programmazione come CICS o COBOL) utilizza la logica aziendale principale per elaborare e generare output di stampa, come estratti conto, carte d'identità e dichiarazioni di prestito. L'applicazione online è distribuita su Amazon EC2 in due [zone di disponibilità](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (AZ) per l'alta disponibilità (HA) e utilizza Micro Focus CICS Print Exit per indirizzare l'output di stampa a LRS VPSX/MFI per la stampa da parte dell'utente finale.

1. LRS utilizza 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**  
*Per ulteriori informazioni sui vari metodi di programmazione delle applicazioni CICS per la stampa e su come sono supportati nel server Micro Focus Enterprise e LRS VPSX/MFI, vedete *Print data capture* nella sezione Informazioni aggiuntive di questo modello.*

1. 
**Nota**  
Un [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornisce un nome DNS per integrare 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 e indirizza il traffico verso le destinazioni registrate che sono integre.

1. Il server di VPSX/MFI stampa LRS è distribuito EC2 su Amazon in due zone di disponibilità per HA e utilizza [Amazon EBS come archivio](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) dati operativo. LRS VPSX/MFI supporta le modalità di servizio attivo-attivo e attivo-passivo. Questa architettura utilizza più zone di disponibilità in una coppia attiva-passiva come standby attivo e hot standby. Il Network Load Balancer esegue un controllo dello stato delle istanze LRS e indirizza il traffico verso VPSX/MFI EC2 istanze hot standby in un'altra zona di disponibilità se un'istanza attiva non è integra. Le richieste di stampa vengono mantenute nella LRS Job Queue localmente in ciascuna istanza. EC2 In caso di ripristino, è necessario riavviare un'istanza fallita affinché i servizi LRS riprendano l'elaborazione della richiesta di stampa. 
**Nota**  
LRS VPSX/MFI può anche eseguire controlli di integrità a livello di parco stampanti. Per ulteriori informazioni, vedete *Controlli dello stato del parco stampanti* nella sezione *Informazioni aggiuntive* di questo modello.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) si integra con LRS/DIS per eseguire l'autenticazione e l'autorizzazione del flusso di lavoro di stampa. Per ulteriori informazioni, consulta *Autenticazione e autorizzazione alla stampa* nella sezione *Informazioni aggiuntive* di questo modello.

1. LRS VPSX/MFI utilizza Amazon EBS per lo storage a blocchi. Puoi eseguire il backup dei dati di Amazon EBS da EC2 istanze attive su Amazon S3 point-in-time come snapshot e ripristinarli su volumi EBS in hot standby. [Per automatizzare la creazione, la conservazione e l'eliminazione degli snapshot di volume Amazon EBS, puoi utilizzare [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) per impostare la frequenza degli snapshot automatici e ripristinarli in base ai requisiti RTO/RPO.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Tools (Strumenti)
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Block Store (Amazon EBS) fornisce volumi di storage a livello di blocco da utilizzare con le istanze Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html). EC2 Il comportamento dei volumi EBS è simile a quello dei dispositivi a blocchi non formattati e non elaborati. Puoi montare questi volumi come dispositivi sulle istanze.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
+ [AWS Directory Service per Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), noto anche come AWS Managed Microsoft Active Directory, consente ai carichi di lavoro compatibili con le directory e alle risorse AWS di utilizzare Active Directory gestita in AWS.

**Altri strumenti**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), sviluppato congiuntamente da LRS e Micro Focus, acquisisce l'output da una bobina JES di Micro Focus Enterprise Server e lo consegna in modo affidabile a una destinazione di stampa specificata.
+ LRS Directory Information Server (LRS/DIS) viene utilizzato per l'autenticazione e l'autorizzazione durante il flusso di lavoro di stampa.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, per raccogliere o acquisire dati di stampa tramite l'interfaccia di programmazione Print Exit online di Micro Focus.
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) è un ambiente di distribuzione delle applicazioni per applicazioni mainframe. Fornisce l'ambiente di esecuzione per le applicazioni mainframe che vengono migrate o create utilizzando qualsiasi versione di Micro Focus Enterprise Developer.

## Epiche
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configura Micro Focus Enterprise Server su Amazon EC2 e distribuisci un'applicazione mainframe online
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurate Micro Focus Enterprise Server e distribuite un'applicazione demo online. | Configurate Micro Focus Enterprise Server su Amazon EC2, quindi distribuite l'applicazione Micro Focus Account Demo (ACCT Demo) su Amazon EC2 seguendo le istruzioni di [Tutorial: CICS Support](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) nella documentazione Micro Focus.L'applicazione ACCT Demo è un'applicazione mainframe online (CICS) che crea e quindi avvia l'output di stampa. | Architetto del cloud | 

### Configura un server di stampa LRS su Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni una licenza del prodotto LRS per la stampa. | Per ottenere una licenza di prodotto LRS per LRSVPSX/MFI, LRS/Queue, and LRS/DIS, contattate il team di [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/) Output Management. È necessario fornire i nomi host delle EC2 istanze in cui verranno installati i prodotti LRS. | Costruisci piombo | 
| Crea un'istanza Amazon EC2 Windows per installare LRS VPSX/MFI. | Avvia un'istanza Amazon EC2 Windows seguendo le istruzioni del [Passaggio 1: Avvia un'istanza](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) nella EC2 documentazione di Amazon. L'istanza deve soddisfare i seguenti requisiti hardware e software per LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)I requisiti hardware e software precedenti sono destinati a un piccolo parco stampanti (circa 500-1000). Per ottenere i requisiti completi, rivolgiti ai tuoi contatti LRS e AWS.Quando crei l'istanza di Windows, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS VPSX/MFI sull' EC2 istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Installa LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Create un gruppo target e registrate LRS VPSX/MFI EC2 come target. | Crea un gruppo target seguendo le istruzioni contenute in [Crea un gruppo target per il tuo Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) nella documentazione di Elastic Load Balancing.Quando crei il gruppo target, procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Crea un Network Load Balancer. | Segui le istruzioni contenute in [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) nella documentazione di Elastic Load Balancing. Il Network Load Balancer indirizza il traffico da Micro Focus Enterprise Server a LRS. VPSX/MFI EC2Quando create il Network Load Balancer, effettuate le seguenti operazioni nella pagina **Listener and** Routing:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Integra Micro Focus Enterprise Server con LRS VPSX/MFI e LRS/Queue
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configurate Micro Focus Enterprise Server per LRS/Queue l'integrazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Rendete CICS Print Exit (DFHUPRNT) disponibile per l'inizializzazione di Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Verificare che Micro Focus Enterprise Server abbia rilevato CICS Print Exit (DFHUPRNT)**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Definite l'ID del terminale della stampante CICS (TERMIDs) come Micro Focus Enterprise Server. | **Abilitate la stampa 3270 in Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Definite il terminale della stampante CICS in Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Configurate stampanti e utenti di stampa in Micro Focus Enterprise Server e LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una coda di stampa in LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)La coda di stampa deve essere equivalente alla stampa TERMIDs creata in Micro Focus Enterprise Server. | Architetto del cloud | 
| Crea un utente di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Configura l'autenticazione e l'autorizzazione di stampa
<a name="set-up-print-authentication-and-authorization"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un dominio AWS Managed Microsoft AD con utenti e gruppi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 
| Unisciti a LRS VPSX/MFI EC2 a un dominio AWS Managed Microsoft AD. | Aggiungi LRS VPSX/MFI EC2 al tuo dominio AWS Managed Microsoft AD [automaticamente](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentazione AWS Knowledge Center) o [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentazione AWS Directory Service). | Architetto del cloud | 
| Configura e integra LRS/DIS con AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Architetto del cloud | 

### Prova un flusso di lavoro di stampa online
<a name="test-an-online-print-workflow"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avviate una richiesta di stampa online dall'app Micro Focus ACCT Demo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Il messaggio «Richiesta di stampa pianificata» viene visualizzato nella parte inferiore dello schermo. Ciò conferma che una richiesta di stampa online è stata generata dall'applicazione ACCT Demo e inviata a LRS VPS/MFI per l'elaborazione della stampa.  | Architetto del cloud | 
| Controllate l'output di stampa in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)È ora possibile visualizzare l'output di stampa di un estratto conto con le colonne per Numero di conto, COGNOME, PRIMO, INDIRIZZO, TELEFONO, N. Carte emesse, data di emissione, importo e saldo.Per un esempio, vedi l'allegato **online\$1print\$1output** per questo modello. | Tecnico di test | 

## Risorse correlate
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernizzazione dell'output LRS (documentazione](https://www.lrsoutputmanagement.com/products/modernization-products) LRS)
+ Concetti di [rete VTAM (documentazione IBM)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts)
+ [Riepilogo dei tipi di unità logiche (LU)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (documentazione IBM)
+ [ANSI e controlli del trasporto delle macchine](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentazione IBM)
+ [Potenziamento dei carichi di lavoro mainframe aziendali su AWS con Micro Focus (blog](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) AWS Partner Network)
+ [Crea una PAC Micro Focus Enterprise Server con Amazon EC2 Auto Scaling and Systems Manager](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) (documentazione AWS Prescriptive Guidance)
+ Flusso di [dati AFP (Advanced Function Presentation)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentazione IBM)
+ [Line Conditioned Data Stream (LCDS) (documentazione Compart)](https://www.compart.com/en/lcds)

## Informazioni aggiuntive
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerazioni**

Durante il percorso di modernizzazione, è possibile prendere in considerazione un'ampia varietà di configurazioni per i processi mainframe online e l'output che generano. La piattaforma mainframe è stata personalizzata da ogni cliente e fornitore che la utilizza con requisiti particolari che influiscono direttamente sulla stampa. Ad esempio, la piattaforma attuale può incorporare IBM Advanced Function Presentation (AFP) o Xerox Line Condition Data Stream (LCDS) nel flusso di lavoro corrente. Inoltre, i [caratteri di controllo del mainframe carriage](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e [le parole di comando del canale](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) possono influire sull'aspetto della pagina stampata e potrebbero richiedere una gestione speciale. Come parte del processo di pianificazione della modernizzazione, consigliamo di valutare e comprendere le configurazioni del proprio ambiente di stampa specifico.

**Acquisizione dei dati di stampa**

Questa sezione riassume i metodi di programmazione delle applicazioni CICS che è possibile utilizzare in un ambiente mainframe IBM per la stampa. VPSX/MFI I componenti LRS forniscono tecniche per consentire agli stessi programmi applicativi di creare dati nello stesso modo. La tabella seguente descrive come ogni metodo di programmazione dell'applicazione è supportato in un'applicazione CICS modernizzata in esecuzione in AWS e Micro Focus Enterprise Server con un server di stampa LRS VPSX/MFI .


| 
| 
| Metodo | Description | Support per il metodo in un ambiente modernizzato | 
| --- |--- |--- |
| EXEC CICS INVIA TESTO.. o EXEC CICS SEND MAP..  | Questi metodi CICS e VTAM sono responsabili della creazione e della fornitura di flussi di dati di stampa 3270/SCS a LUTYPE0 e dispositivi di stampa. LUTYPE1 LUTYPE3  | Un'interfaccia API (Application Program Interface) online Print Exit (DFHUPRNT) di Micro Focus consente l'elaborazione dei dati di stampa entro il momento in cui i flussi di dati di stampa 3270/SCS vengono creati utilizzando uno di questi metodi. VPSX/MFI  | 
| EXEC CICS INVIA TESTO.. o EXEC CICS SEND MAP.. (con software mainframe IBM di terze parti) | I metodi CICS e VTAM sono responsabili della creazione e della fornitura di flussi di dati di stampa 3270/SCS a LUTYPE0 e dispositivi di stampa. LUTYPE1 LUTYPE3 I prodotti software di terze parti intercettano i dati di stampa, li convertono in dati di formato di stampa standard con un carattere di ASA/MCH controllo e inseriscono i dati sulla bobina JES per essere elaborati da sistemi di stampa basati su mainframe che utilizzano JES.  | Un'API Micro Focus online Print Exit (DFHUPRNT) consente l'elaborazione dei dati di stampa entro il momento in VPSX/MFI cui i flussi di dati di stampa 3270/SCS vengono creati utilizzando uno di questi metodi.  | 
| EXEC CICS SPOOLOPEN  | Questo metodo viene utilizzato dai programmi applicativi CICS per scrivere dati direttamente nella bobina JES. I dati diventano quindi disponibili per essere elaborati da sistemi di stampa basati su mainframe che utilizzano JES.  | Micro Focus Enterprise Server sposta i dati nello spool Enterprise Server dove possono essere elaborati da VPSX/MFI Batch Print Exit (LRSPRTE6) che sposta i dati su VPSX.  | 
| DRS/API | Un'interfaccia programmatica fornita da LRS viene utilizzata per scrivere dati di stampa su JES.  | VPSX/MFI fornisce un'interfaccia sostitutiva che trasferisce i dati di stampa direttamente su VPSX.  | 

**Controlli dello stato del parco stampanti**

LRS VPSX/MFI (LRS LoadX) è in grado di eseguire controlli approfonditi dello stato di salute, tra cui la gestione dei dispositivi e l'ottimizzazione operativa. La gestione dei dispositivi è in grado di rilevare guasti in un dispositivo di stampa e indirizzare la richiesta di stampa a una stampante funzionante. Per ulteriori informazioni sui controlli approfonditi dello stato delle flotte di stampanti, consultate la documentazione LRS inclusa nella licenza del prodotto.

**Autenticazione e autorizzazione alla stampa**

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/DISpuò anche applicare controlli di sicurezza di stampa a livello granulare nei seguenti casi d'uso:
+ Gestisci chi può sfogliare il lavoro della stampante.
+ Gestisci il livello di navigazione dei lavori di altri utenti.
+ Gestisci le attività operative. Ad esempio, sicurezza a livello di comando come hold/release, purge, edit, copy e reindirizzamento. La sicurezza può essere impostata dall'ID utente o dal gruppo (simile al gruppo AD o al gruppo LDAP).

## Allegati
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Sposta i file mainframe direttamente su Amazon S3 utilizzando Transfer Family
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Riepilogo
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Come parte del percorso di modernizzazione, puoi affrontare la sfida del trasferimento di file tra i tuoi server locali e il cloud Amazon Web Services (AWS). Il trasferimento di dati dai mainframe può essere una sfida importante perché i mainframe in genere non possono accedere a data store moderni come Amazon Simple Storage Service (Amazon S3), Amazon Elastic Block Store (Amazon EBS) o Amazon Elastic File System (Amazon EFS).

Molti clienti utilizzano risorse di staging intermedie, come server Linux, Unix o Windows locali, per trasferire file nel cloud AWS. Puoi evitare questo metodo indiretto utilizzando AWS Transfer Family con il Secure Shell (SSH) File Transfer Protocol (SFTP) per caricare i file mainframe direttamente su Amazon S3.

## Prerequisiti e limitazioni
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un cloud privato virtuale (VPC) con una sottorete raggiungibile dalla tua piattaforma legacy
+ Un endpoint Transfer Family per il tuo VPC
+ File VSAM (Mainframe Virtual Storage Access Method) convertiti in file sequenziali a lunghezza [fissa](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) (documentazione IBM)

**Limitazioni**
+ Per impostazione predefinita, SFTP trasferisce i file in modalità binaria, il che significa che i file vengono caricati su Amazon S3 con la codifica EBCDIC preservata. Se il tuo file non contiene dati binari o compressi, puoi utilizzare il [sottocomando **sftp** ascii (documentazione IBM) per convertire i](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) file in testo durante il trasferimento.
+ È necessario [decomprimere i file mainframe](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b) (AWS Prescriptive Guidance) che contengono contenuti compressi e binari per utilizzare questi file nell'ambiente di destinazione.
+ Le dimensioni degli oggetti Amazon S3 possono variare da un minimo di 0 byte a un massimo di 5 TB. Per ulteriori informazioni sulle funzionalità di Amazon S3, consulta Amazon [S3](https://aws.amazon.com/s3/faqs/?nc1=h_ls). FAQs

## Architecture
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Stack tecnologico di origine**
+ Linguaggio Job control (JCL)
+ Shell Unix z/OS e ISPF
+ SFTP
+ VSAM e file flat

**Stack tecnologico Target**
+ Transfer Family
+ Simple Storage Service (Amazon S3)
+ Amazon Virtual Private Cloud (Amazon VPC) (Amazon VPC)

**Architettura di destinazione**

Il diagramma seguente mostra un'architettura di riferimento per l'utilizzo di Transfer Family con SFTP per caricare i file mainframe direttamente in un bucket S3.

![\[Utilizzo di Transfer Family con SFTP per caricare i file mainframe direttamente su un bucket S3\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Utilizzi un job JCL per trasferire i file del mainframe dal mainframe legacy al cloud AWS tramite Direct Connect.

1. Direct Connect consente al traffico di rete di rimanere sulla rete globale AWS e di bypassare la rete Internet pubblica. Direct Connect migliora anche la velocità di rete, a partire da 50 Mbps e scalabile fino a 100 Gbps.

1. L'endpoint VPC consente le connessioni tra le risorse VPC e i servizi supportati senza utilizzare la rete Internet pubblica. L'accesso a Transfer Family e Amazon S3 raggiunge un'elevata disponibilità grazie alle interfacce di rete elastiche situate in due sottoreti private e zone di disponibilità.

1. Transfer Family autentica gli utenti e utilizza SFTP per ricevere i file dall'ambiente legacy e spostarli in un bucket S3.

**Automazione e scalabilità**

Una volta attivato il servizio Transfer Family, puoi trasferire un numero illimitato di file dal mainframe ad Amazon S3 utilizzando un job JCL come client SFTP. Puoi anche automatizzare il trasferimento dei file utilizzando un programma di pianificazione dei processi in batch del mainframe per eseguire i processi SFTP quando sei pronto a trasferire i file mainframe.

## Tools (Strumenti)
<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) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare le risorse AWS in una rete virtuale che hai definito. Questa rete virtuale è simile a una rete tradizionale che gestiresti nel tuo data center, con i vantaggi dell'utilizzo dell'infrastruttura scalabile di AWS.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) ti consente di scalare in modo sicuro i trasferimenti ricorrenti di business-to-business file verso Amazon S3 e Amazon EFS utilizzando i protocolli SFTP, FTPS e FTP.

## Epiche
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Crea il bucket S3 e la politica di accesso
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket S3. | [Crea un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) per ospitare i file che trasferisci dal tuo ambiente legacy. | Informazioni generali su AWS | 
| Crea il ruolo e la policy di IAM. | Transfer Family utilizza il tuo ruolo AWS Identity and Access Management (IAM) per concedere l'accesso al bucket S3 che hai creato in precedenza.[Crea un ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) che includa la seguente [policy 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>Devi scegliere lo use case Transfer quando crei il ruolo IAM. | Informazioni generali su AWS | 

### Definisci il servizio di trasferimento
<a name="define-the-transfer-service"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il server SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Per ulteriori informazioni su come configurare un server SFTP, consulta [Creare un server compatibile con SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) (AWS Transfer Family User Guide). | Informazioni generali su AWS | 
| Ottieni l'indirizzo del server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Informazioni generali su AWS | 
| Crea la key pair del client SFTP. | Crea una coppia di chiavi SSH per [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 generale, SSH | 
| Crea l'utente SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Informazioni generali su AWS | 

### Trasferisci il file mainframe
<a name="transfer-the-mainframe-file"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Invia la chiave privata SSH al mainframe. | Usa SFTP o SCP per inviare la chiave privata SSH all'ambiente legacy.Esempio SFTP:<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>Esempio SCP:<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>Quindi, memorizza la chiave SSH nel file system z/OS Unix con il nome utente che successivamente eseguirà il processo batch di trasferimento dei file (ad esempio,). `/u/CONTROLM` Per ulteriori informazioni sulla shell z/OS Unix, vedere [Introduzione alle z/OS shell](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) (documentazione IBM). | Mainframe, shell z/OS Unix, FTP, SCP | 
| Crea il client SFTP JCL. | Poiché i mainframe non dispongono di un client SFTP nativo, è necessario utilizzare l'utilità BPXBATCH per eseguire il client SFTP dalla shell Unix. z/OS Nell'editor ISPF, create il client SFTP JCL. Esempio:<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>Per ulteriori informazioni su come eseguire un comando nella shell z/OS Unix, vedere L'utilità [BPXBATCH (documentazione](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) IBM). [Per ulteriori informazioni su come creare o modificare i job JCL in z/OS, consulta Cos'è ISPF?](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) e [L'editor ISPF (documentazione IBM](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor)). | JCL, mainframe, shell Unix z/OS  | 
| Esegui il client SFTP JCL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Per ulteriori informazioni su come controllare l'attività dei processi in batch, consulta la Guida per l'[utente di z/OS SDSF](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide) (documentazione IBM). | Mainframe, JCL, ISPF | 
| Convalida il trasferimento dei file. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Informazioni generali su AWS | 
| Automatizza il client SFTP JCL. | Usa Job Scheduler per attivare automaticamente il client SFTP JCL.È possibile utilizzare strumenti di pianificazione dei processi mainframe, come [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), per automatizzare i processi in batch per i trasferimenti di file in base all'ora e ad altre dipendenze dei processi batch. | Job scheduler | 

## Risorse correlate
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [Come funziona AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html)

# Ottimizza le prestazioni della tua applicazione modernizzata AWS Blu Age
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy e Himanshu Sah, Amazon Web Services*

## Riepilogo
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Le applicazioni mainframe modernizzate con AWS Blu Age richiedono test di equivalenza funzionale e prestazionale prima di essere implementate in produzione. Nei test delle prestazioni, le applicazioni modernizzate possono funzionare più lentamente rispetto ai sistemi legacy, in particolare nei lavori in batch complessi. Questa disparità esiste perché le applicazioni mainframe sono monolitiche, mentre le applicazioni moderne utilizzano architetture a più livelli. [Questo modello presenta tecniche di ottimizzazione per colmare queste lacune prestazionali per le applicazioni modernizzate utilizzando il refactoring automatizzato con Blu Age. AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)

Il modello utilizza il framework di modernizzazione AWS Blu Age con Java nativo e funzionalità di ottimizzazione del database per identificare e risolvere i problemi di prestazioni. Il modello descrive come utilizzare la profilazione e il monitoraggio per identificare problemi di prestazioni con metriche quali i tempi di esecuzione SQL, l'utilizzo della memoria e i modelli. I/O Spiega quindi come applicare ottimizzazioni mirate, tra cui la ristrutturazione delle query del database, la memorizzazione nella cache e il perfezionamento della logica aziendale.

I miglioramenti nei tempi di elaborazione in batch e nell'utilizzo delle risorse di sistema aiutano a raggiungere i livelli di prestazioni del mainframe nei sistemi modernizzati. Questo approccio mantiene l'equivalenza funzionale durante la transizione verso le moderne architetture basate sul cloud.

[Per utilizzare questo modello, configura il sistema e identifica gli hotspot prestazionali seguendo le istruzioni nella sezione [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) e applica le tecniche di ottimizzazione descritte in dettaglio nella sezione Architettura.](#optimize-performance-aws-blu-age-modernized-application-architecture)

## Prerequisiti e limitazioni
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Prerequisiti**
+ Un'applicazione AWS modernizzata di Blu Age
+ [Una licenza JProfiler ](https://www.ej-technologies.com/store/jprofiler)
+ Privilegi amministrativi per installare client di database e strumenti di profilazione
+ AWS Certificazione Blu Age [Level 3](https://bluinsights.aws/certification/)
+ Comprensione di livello intermedio del framework AWS Blu Age, della struttura del codice generato e della programmazione Java

**Limitazioni**

Le seguenti funzionalità e funzionalità di ottimizzazione non rientrano nell'ambito di questo modello:
+ Ottimizzazione della latenza di rete tra i livelli di applicazione
+ Ottimizzazioni a livello di infrastruttura tramite tipi di istanze Amazon Elastic Compute Cloud (Amazon EC2) e ottimizzazione dello storage
+ Test di carico utente e test di stress simultanei

**Versioni del prodotto**
+ JProfiler versione 13.0 o successiva (consigliamo la versione più recente)
+ pgAdmin versione 8.14 o successiva

## Architecture
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Questo modello imposta un ambiente di profilazione per un'applicazione AWS Blu Age utilizzando strumenti come JProfiler pgAdmin. Supporta l'ottimizzazione tramite DAOManager and SQLExecution Builder APIs fornito da Blu Age. AWS 

La parte restante di questa sezione fornisce informazioni dettagliate ed esempi per identificare gli hotspot prestazionali e le strategie di ottimizzazione per le applicazioni modernizzate. I passaggi della sezione [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) fanno riferimento a queste informazioni per ulteriori indicazioni.

**Identificazione degli hotspot prestazionali nelle applicazioni mainframe modernizzate**

Nelle applicazioni mainframe modernizzate, gli *hotspot prestazionali* sono aree specifiche del codice che causano rallentamenti o inefficienze significativi. Questi hotspot sono spesso causati dalle differenze architettoniche tra le applicazioni mainframe e quelle modernizzate. Per identificare questi ostacoli prestazionali e ottimizzare le prestazioni dell'applicazione modernizzata, è possibile utilizzare tre tecniche: registrazione SQL, piano di query e analisi. `EXPLAIN` JProfiler 

*Tecnica di identificazione degli hotspot: registrazione SQL*

Le moderne applicazioni Java, comprese quelle che sono state modernizzate utilizzando AWS Blu Age, dispongono di funzionalità integrate per registrare le query SQL. È possibile abilitare logger specifici nei progetti AWS Blu Age per tracciare e analizzare le istruzioni SQL eseguite dall'applicazione. Questa tecnica è particolarmente utile per identificare modelli di accesso al database inefficienti, come query individuali eccessive o chiamate al database mal strutturate, che potrebbero essere ottimizzati mediante il raggruppamento in batch o il perfezionamento delle query.

Per implementare la registrazione SQL nella tua applicazione modernizzata AWS Blu Age, imposta il livello di registro su affinché le istruzioni SQL nel file acquisiscano `DEBUG` i dettagli sull'esecuzione delle `application.properties` query:

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

Monitora le query ad alta frequenza e con prestazioni lente utilizzando i dati registrati per identificare gli obiettivi di ottimizzazione. Concentrati sulle query all'interno dei processi batch perché in genere hanno il massimo impatto sulle prestazioni.

*Tecnica di identificazione degli hotspot: piano Query EXPLAIN*

Questo metodo utilizza le funzionalità di pianificazione delle interrogazioni dei sistemi di gestione di database relazionali. È possibile utilizzare comandi come `EXPLAIN` PostgreSQL o MySQL `EXPLAIN PLAN` o Oracle per esaminare in che modo il database intende eseguire una determinata query. L'output di questi comandi fornisce informazioni preziose sulla strategia di esecuzione delle query, incluso se verranno utilizzati gli indici o verranno eseguite scansioni complete della tabella. Queste informazioni sono fondamentali per ottimizzare le prestazioni delle query, specialmente nei casi in cui un'indicizzazione corretta può ridurre significativamente i tempi di esecuzione.

Estrai le query SQL più ripetitive dai log delle applicazioni e analizza il percorso di esecuzione delle query con prestazioni lente utilizzando il comando specifico del tuo database. `EXPLAIN` Ecco un esempio di database PostgreSQL.

Query:

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

`EXPLAIN`comando:

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Output:

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

È possibile interpretare l'`EXPLAIN`output come segue:
+ Leggete il `EXPLAIN` piano dalle operazioni più interne a quelle più esterne (dal basso verso l'alto).
+ Cerca i termini chiave. Ad esempio, `Seq Scan` indica la scansione completa della tabella e `Index Scan` mostra l'utilizzo dell'indice.
+ Verifica i valori dei costi: il primo numero è il costo iniziale e il secondo numero è il costo totale.
+ Vedi il `rows` valore per il numero stimato di righe di output.

In questo esempio, il motore di query utilizza una scansione dell'indice per trovare le righe corrispondenti, quindi recupera solo quelle righe (`Bitmap Heap Scan`). Ciò è più efficiente rispetto alla scansione dell'intera tabella, nonostante il costo più elevato dell'accesso alle singole righe.

Le operazioni di scansione delle tabelle nell'output di un `EXPLAIN` piano indicano un indice mancante. L'ottimizzazione richiede la creazione di un indice appropriato.

*Tecnica di identificazione degli hotspot: analisi JProfiler *

JProfiler è uno strumento completo di profilazione Java che consente di risolvere i problemi di prestazioni identificando le chiamate lente al database e le chiamate che richiedono un uso intensivo della CPU. Questo strumento è particolarmente efficace per identificare le query SQL lente e l'utilizzo inefficiente della memoria.

Esempio di analisi per le interrogazioni:

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

La visualizzazione JProfiler Hot Spots fornisce le seguenti informazioni:
+ Colonna relativa all'**ora**
  + Mostra la durata totale dell'esecuzione (ad esempio, 329 secondi)
  + Visualizza la percentuale del tempo totale di applicazione (ad esempio, 58,7%)
  + Aiuta a identificare le operazioni che richiedono più tempo
+ **Colonna Tempo medio**
  + Mostra la durata per esecuzione (ad esempio, 2.692 microsecondi)
  + Indica le prestazioni delle singole operazioni
  + Aiuta a individuare le singole operazioni lente
+ Colonna **Eventi**
  + Mostra il conteggio delle esecuzioni (ad esempio, 122.387 volte)
  + Indica la frequenza operativa
  + Aiuta a identificare i metodi chiamati di frequente

Per i risultati di esempio:
+ Alta frequenza: 122.387 esecuzioni indicano un potenziale di ottimizzazione
+ Problema relativo alle prestazioni: il tempo medio di 2.692 microsecondi indica un'inefficienza
+ Impatto critico: il 58,7% del tempo totale indica un grave ostacolo

JProfiler è in grado di analizzare il comportamento di esecuzione dell'applicazione per individuare punti critici che potrebbero non essere visibili mediante l'analisi statica del codice o la registrazione SQL. Queste metriche aiutano a identificare le operazioni che necessitano di ottimizzazione e a determinare la strategia di ottimizzazione più efficace. Per ulteriori informazioni sulle JProfiler funzionalità, consulta la [JProfiler documentazione](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Quando si utilizzano queste tre tecniche (registrazione SQL, `EXPLAIN` piano di query e JProfiler) in combinazione, è possibile ottenere una visione olistica delle caratteristiche prestazionali dell'applicazione. Identificando e risolvendo gli hotspot prestazionali più critici, è possibile colmare il divario prestazionale tra l'applicazione mainframe originale e il sistema modernizzato basato sul cloud.

Dopo aver identificato gli hotspot prestazionali dell'applicazione, è possibile applicare le strategie di ottimizzazione, illustrate nella sezione successiva.

**Strategie di ottimizzazione per la modernizzazione del mainframe**

Questa sezione descrive le strategie chiave per ottimizzare le applicazioni che sono state modernizzate dai sistemi mainframe. Si concentra su tre strategie: utilizzo delle strategie esistenti APIs, implementazione di un caching efficace e ottimizzazione della logica aziendale.

*Strategia di ottimizzazione: utilizzo delle soluzioni esistenti APIs*

AWS Blu Age offre diverse potenti APIs interfacce DAO che è possibile utilizzare per ottimizzare le prestazioni. Due interfacce principali, DAOManager e SQLExecution Builder, offrono funzionalità per migliorare le prestazioni delle applicazioni.

**DAOManager**

DAOManager funge da interfaccia principale per le operazioni di database nelle applicazioni modernizzate. Offre diversi metodi per migliorare le operazioni del database e migliorare le prestazioni delle applicazioni, in particolare per le semplici operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) e l'elaborazione in batch.
+ **Usa. SetMaxResults** Nell' DAOManager API, è possibile utilizzare il **SetMaxResults**metodo per specificare il numero massimo di record da recuperare in una singola operazione di database. Per impostazione predefinita, DAOManager recupera solo 10 record alla volta, il che può portare a più chiamate al database durante l'elaborazione di set di dati di grandi dimensioni. Utilizzate questa ottimizzazione quando l'applicazione deve elaborare un gran numero di record e attualmente sta effettuando più chiamate al database per recuperarli. Ciò è particolarmente utile negli scenari di elaborazione in batch in cui si esegue l'iterazione su un set di dati di grandi dimensioni. Nell'esempio seguente, il codice a sinistra (prima dell'ottimizzazione) utilizza il valore di recupero dei dati predefinito di 10 record. Il codice a destra (dopo l'ottimizzazione) è impostato **setMaxResults**per recuperare 100.000 record alla volta.  
![\[Esempio di utilizzo SetMaxResults per evitare più chiamate al database.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**Nota**  
Scegliete con attenzione batch di dimensioni maggiori e controllate le dimensioni degli oggetti, poiché questa ottimizzazione aumenta l'ingombro di memoria.
+ **Sostituisci SetOnGreatorOrEqual con SetOnEqual.** Questa ottimizzazione comporta la modifica del metodo utilizzato per impostare la condizione per il recupero dei record. Il **SetOnGreatorOrEqual**metodo recupera i record che sono maggiori o uguali a un valore specificato, mentre **SetOnEqual**recupera solo i record che corrispondono esattamente al valore specificato.

  **Utilizza **SetOnEqual**come illustrato nel seguente esempio di codice, quando sai di aver bisogno di corrispondenze esatte e stai attualmente utilizzando il **SetOnGreatorOrEqual**metodo seguito da readNextEqual ().** Questa ottimizzazione riduce il recupero di dati non necessario.  
![\[Esempio di utilizzo SetOnEqual per recuperare i record in base a una corrispondenza esatta.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Utilizza operazioni di scrittura e aggiornamento in batch.** È possibile utilizzare le operazioni batch per raggruppare più operazioni di scrittura o aggiornamento in un'unica transazione di database. Ciò riduce il numero di chiamate al database e può migliorare significativamente le prestazioni per le operazioni che coinvolgono più record.

  Nell'esempio seguente, il codice a sinistra esegue operazioni di scrittura in un ciclo, il che rallenta le prestazioni dell'applicazione. È possibile ottimizzare questo codice utilizzando un'operazione di scrittura in batch: durante ogni iterazione del `WHILE` ciclo, si aggiungono record a un batch finché la dimensione del batch non raggiunge una dimensione predeterminata di 100. È quindi possibile svuotare il batch quando raggiunge la dimensione predeterminata e quindi scaricare tutti i record rimanenti nel database. Ciò è particolarmente utile negli scenari in cui si elaborano set di dati di grandi dimensioni che richiedono aggiornamenti.  
![\[Esempio di raggruppamento di più operazioni in un'unica transazione di database.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Aggiungere indici.** L'aggiunta di indici è un'ottimizzazione a livello di database che può migliorare significativamente le prestazioni delle query. Un indice consente al database di individuare rapidamente le righe con un valore di colonna specifico senza eseguire la scansione dell'intera tabella. Utilizza l'indicizzazione sulle colonne utilizzate di frequente in `WHERE` clausole, `JOIN` condizioni o istruzioni. `ORDER BY` Ciò è particolarmente importante per tabelle di grandi dimensioni o quando il recupero rapido dei dati è fondamentale.

**SQLExecutionCostruttore**

SQLExecutionBuilder è un'API flessibile che puoi utilizzare per assumere il controllo delle query SQL che verranno eseguite, recuperare solo determinate colonne, utilizzare e utilizzare nomi `INSERT` di tabelle `SELECT` dinamici. Nell'esempio seguente, SQLExecutor Builder utilizza una query personalizzata definita dall'utente. 

![\[Esempio di utilizzo di SQLExecutor Builder con una query personalizzata.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Scelta tra DAOManager e Builder SQLExecution**

La scelta tra questi APIs dipende dal caso d'uso specifico:
+ Usalo DAOManager quando vuoi che AWS Blu Age Runtime generi le query SQL invece di scriverle tu stesso.
+ Scegli SQLExecution Builder quando devi scrivere query SQL per sfruttare le funzionalità specifiche del database o scrivere query SQL ottimali.

*Strategia di ottimizzazione: caching*

Nelle applicazioni modernizzate, l'implementazione di strategie di caching efficaci può ridurre significativamente le chiamate al database e migliorare i tempi di risposta. Questo aiuta a colmare il divario di prestazioni tra ambienti mainframe e cloud.

Nelle applicazioni AWS Blu Age, le semplici implementazioni di caching utilizzano strutture di dati interne come mappe hash o elenchi di array, quindi non è necessario configurare una soluzione di caching esterna che richieda una ristrutturazione dei costi e del codice. Questo approccio è particolarmente efficace per i dati a cui si accede frequentemente ma che vengono modificati raramente. Quando implementi la memorizzazione nella cache, considera i vincoli di memoria e i modelli di aggiornamento per garantire che i dati memorizzati nella cache rimangano coerenti e offrano vantaggi effettivi in termini di prestazioni.

La chiave per una corretta memorizzazione nella cache è identificare i dati giusti da memorizzare nella cache. Nell'esempio seguente, il codice a sinistra legge sempre i dati dalla tabella, mentre il codice a destra legge i dati dalla tabella quando la mappa hash locale non ha un valore per una determinata chiave. `cacheMap`è un oggetto di mappa hash creato nel contesto del programma e cancellato nel metodo di pulizia del contesto del programma.

Memorizzazione nella cache con: DAOManager

![\[Esempio di ottimizzazione della memorizzazione nella cache con. DAOManager\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Memorizzazione nella cache con Builder: SQLExecution

![\[Esempio di ottimizzazione della memorizzazione nella cache con Builder. SQLExecution\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Strategia di ottimizzazione: ottimizzazione della logica aziendale*

L'ottimizzazione della logica aziendale si concentra sulla ristrutturazione del codice generato automaticamente da AWS Blu Age per allinearlo meglio alle funzionalità dell'architettura moderna. Ciò diventa necessario quando il codice generato mantiene la stessa struttura logica del codice mainframe legacy, il che potrebbe non essere ottimale per i sistemi moderni. L'obiettivo è migliorare le prestazioni mantenendo l'equivalenza funzionale con l'applicazione originale.

Questo approccio di ottimizzazione va oltre le semplici modifiche alle API e le strategie di memorizzazione nella cache. Implica modifiche al modo in cui l'applicazione elabora i dati e interagisce con il database. Le ottimizzazioni più comuni includono l'eliminazione di operazioni di lettura non necessarie per semplici aggiornamenti, la rimozione delle chiamate ridondanti al database e la ristrutturazione dei modelli di accesso ai dati per allinearli meglio alla moderna architettura applicativa. Di seguito si riportano alcuni esempi:
+ **Aggiornamento dei dati direttamente nel database.**Ristruttura la logica di business utilizzando gli aggiornamenti SQL diretti anziché più DAOManager operazioni con loop. Ad esempio, il codice seguente (lato sinistro) effettua più chiamate al database e utilizza una quantità eccessiva di memoria. In particolare, utilizza più operazioni di lettura e scrittura del database all'interno dei loop, aggiornamenti individuali anziché l'elaborazione in batch e la creazione di oggetti non necessari per ogni iterazione.

  Il seguente codice ottimizzato (lato destro) utilizza una singola operazione di aggiornamento Direct SQL. In particolare, utilizza una singola chiamata al database anziché più chiamate e non richiede cicli perché tutti gli aggiornamenti vengono gestiti in un'unica istruzione. Questa ottimizzazione offre prestazioni e utilizzo delle risorse migliori e riduce la complessità. Previene l'iniezione di SQL, offre una migliore memorizzazione nella cache del piano di query e aiuta a migliorare la sicurezza.  
![\[Ristrutturazione del codice utilizzando aggiornamenti SQL diretti anziché DAOManager operazioni con loop.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**Nota**  
Utilizza sempre query parametrizzate per impedire l'iniezione di SQL e garantire una corretta gestione delle transazioni.
+ **Riduzione delle chiamate ridondanti al database.** Le chiamate ridondanti al database possono influire in modo significativo sulle prestazioni delle applicazioni, in particolare quando avvengono all'interno di loop. Una tecnica di ottimizzazione semplice ma efficace consiste nell'evitare di ripetere più volte la stessa query sul database. Il seguente confronto di codice dimostra come lo spostamento della chiamata al `retrieve()` database all'esterno del ciclo impedisca l'esecuzione ridondante di query identiche, migliorando l'efficienza.  
![\[alt text not found\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Riduzione delle chiamate al database utilizzando** **la clausola SQL. `JOIN`** Implementa SQLExecution Builder per ridurre al minimo le chiamate al database. SQLExecutionBuilder offre un maggiore controllo sulla generazione di SQL ed è particolarmente utile per query complesse che DAOManager non possono essere gestite in modo efficiente. Ad esempio, il codice seguente utilizza più DAOManager chiamate:

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

  Il codice ottimizzato utilizza una singola chiamata al database in 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);
  }
  ```

*Utilizzo congiunto di strategie di ottimizzazione*

Queste tre strategie funzionano in modo sinergico: APIs forniscono gli strumenti per un accesso efficiente ai dati, la memorizzazione nella cache riduce la necessità di recuperi ripetuti dei dati e l'ottimizzazione della logica aziendale garantisce che questi APIs vengano utilizzati nel modo più efficace possibile. Il monitoraggio e la regolazione regolari di queste ottimizzazioni garantiscono continui miglioramenti delle prestazioni, pur mantenendo l'affidabilità e la funzionalità dell'applicazione modernizzata. La chiave del successo sta nel capire quando e come applicare ciascuna strategia in base alle caratteristiche e agli obiettivi prestazionali dell'applicazione.

## Tools (Strumenti)
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)è uno strumento di profilazione Java progettato per sviluppatori e ingegneri delle prestazioni. Analizza le applicazioni Java e aiuta a identificare rallentamenti nelle prestazioni, perdite di memoria e problemi di threading. JProfiler offre la profilazione di CPU, memoria e thread, nonché il monitoraggio di database e macchine virtuali Java (JVM) per fornire informazioni sul comportamento delle applicazioni.
**Nota**  
[In alternativa JProfiler, è possibile utilizzare Java VisualVM.](https://visualvm.github.io/) Si tratta di uno strumento gratuito e open source di profilazione e monitoraggio delle prestazioni per applicazioni Java che offre il monitoraggio in tempo reale dell'utilizzo della CPU, del consumo di memoria, della gestione dei thread e delle statistiche sulla raccolta dei rifiuti. Poiché Java VisualVM è uno strumento JDK integrato, è più conveniente rispetto alle esigenze di profilazione di base. JProfiler 
+ [pgAdmin](https://www.pgadmin.org/) è uno strumento di amministrazione e sviluppo open source per PostgreSQL. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database. È possibile utilizzare pgAdmin per eseguire un'ampia gamma di attività, dalla scrittura di semplici query SQL allo sviluppo di database complessi. Le sue funzionalità includono un editor SQL che evidenzia la sintassi, un editor di codice lato server, un agente di pianificazione per attività SQL, shell e batch e il supporto per tutte le funzionalità di PostgreSQL sia per utenti PostgreSQL principianti che esperti.

## Best practice
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Identificazione degli hotspot prestazionali:
+ Documenta le metriche prestazionali di base prima di iniziare le ottimizzazioni.
+ Stabilisci obiettivi chiari di miglioramento delle prestazioni in base ai requisiti aziendali.
+ Durante il benchmarking, disabilita la registrazione dettagliata, poiché può influire sulle prestazioni.
+ Configura una suite di test delle prestazioni ed eseguila periodicamente.
+ Usa l'ultima versione di pgAdmin. (Le versioni precedenti non supportano il piano di `EXPLAIN` interrogazione).
+ Per il benchmarking, scollegatelo JProfiler dopo aver completato le ottimizzazioni perché aumenta la latenza.
+ Per il benchmarking, assicuratevi di eseguire il server in modalità start anziché in modalità debug, perché la modalità di debug aumenta la latenza.

Strategie di ottimizzazione:
+ Configura **SetMaxResults**i valori nel `application.yaml` file per specificare i batch delle dimensioni corrette in base alle specifiche del sistema.
+ Configura **SetMaxResults**i valori in base al volume di dati e ai vincoli di memoria.
+ Passa **SetOnGreatorOrEqual**a **SetOnEqual**solo in caso di chiamate successive. `.readNextEqual()`
+ Nelle operazioni di scrittura o aggiornamento in batch, gestite l'ultimo batch separatamente, poiché potrebbe essere inferiore alla dimensione del batch configurato e potrebbe non essere rilevato dall'operazione di scrittura o aggiornamento.

Memorizzazione nella cache:
+ I campi introdotti per la memorizzazione nella cache`processImpl`, che mutano ad ogni esecuzione, devono sempre essere definiti nel contesto di tale operazione. `processImpl` I campi devono essere cancellati anche utilizzando il `doReset()` metodo or. `cleanUp()`
+ Quando implementate la memorizzazione nella cache in memoria, dimensionate correttamente la cache. Le cache molto grandi archiviate in memoria possono occupare tutte le risorse, il che potrebbe influire sulle prestazioni complessive dell'applicazione.

SQLExecutionCostruttore:
+ Per le query che intendi utilizzare in SQLExecution Builder, utilizza nomi chiave come. `PROGRAMNAME_STATEMENTNUMBER`
+ Quando usi SQLExecution Builder, controlla sempre il campo. `Sqlcod` Questo campo contiene un valore che specifica se la query è stata eseguita correttamente o se sono stati rilevati errori.
+ Utilizza query con parametri per impedire l'iniezione di SQL.

Ottimizzazione della logica aziendale:
+ Mantieni l'equivalenza funzionale durante la ristrutturazione del codice ed esegui test di regressione e confronto tra database per il sottoinsieme di programmi pertinente.
+ Conserva istantanee di profilazione per il confronto.

## Epiche
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Installazione JProfiler e pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa e configura JProfiler. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 
| Installa e configura pgAdmin. | In questo passaggio, si installa e si configura un client DB per interrogare il database. Questo modello utilizza un database PostgreSQL e pgAdmin come client di database. Se utilizzi un altro motore di database, segui la documentazione per il client DB corrispondente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 

### Identifica gli hotspot
<a name="identify-hotspots"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la registrazione delle query SQL nell'applicazione AWS Blu Age. | [Abilita i logger per la registrazione delle query SQL nel `application.properties` file dell'applicazione AWS Blu Age, come spiegato nella sezione Architettura.](#optimize-performance-aws-blu-age-modernized-application-architecture) | Sviluppatore di app | 
| Genera e analizza i `EXPLAIN` piani di interrogazione per identificare gli hotspot prestazionali del database. | Per i dettagli, consulta la sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app | 
| Crea un' JProfiler istantanea per analizzare un test case con prestazioni lente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 
| Analizza l' JProfiler istantanea per identificare i punti deboli in termini di prestazioni. | Segui questi passaggi per analizzare l'istantanea. JProfiler [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Per ulteriori informazioni sull'utilizzo JProfiler, consulta la sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture) e la [JProfiler documentazione](https://www.ej-technologies.com/jprofiler/docs). | Sviluppatore di app | 

### Stabilisci una linea di base
<a name="establish-a-baseline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Stabilisci una linea di base delle prestazioni prima di implementare le ottimizzazioni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Sviluppatore di app | 

### Applica strategie di ottimizzazione
<a name="apply-optimization-strategies"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottimizza le chiamate di lettura. | Ottimizza il recupero dei dati utilizzando il DAOManager **SetMaxResults**metodo. Per ulteriori informazioni su questo approccio, consulta la sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app, DAOManager | 
| Rifattorizza la logica aziendale per evitare chiamate multiple al database. | Riduci le chiamate al database utilizzando una `JOIN` clausola SQL. Per dettagli ed esempi, consulta *Ottimizzazione della logica aziendale* nella sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app, SQLExecution Builder | 
| Rifattorizza il codice per utilizzare la memorizzazione nella cache per ridurre la latenza delle chiamate di lettura. | [Per informazioni su questa tecnica, consulta la sezione *Caching* nella sezione Architettura.](#optimize-performance-aws-blu-age-modernized-application-architecture) | Sviluppatore di app | 
| Riscrivi codice inefficiente che utilizza più DAOManager operazioni per semplici operazioni di aggiornamento. | Per ulteriori informazioni sull'aggiornamento dei dati direttamente nel database, consulta *Ottimizzazione della logica aziendale* nella sezione [Architettura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Sviluppatore di app | 

### Verificate le strategie di ottimizzazione
<a name="test-optimization-strategies"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Convalida ogni modifica di ottimizzazione in modo iterativo mantenendo l'equivalenza funzionale. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)L'utilizzo di metriche di base come riferimento garantisce una misurazione accurata dell'impatto di ogni ottimizzazione, mantenendo al contempo l'affidabilità del sistema. | Sviluppatore di app | 

## risoluzione dei problemi
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Quando si esegue l'applicazione moderna, viene visualizzata un'eccezione con l'errore. `Query_ID not found` | Per risolvere il problema:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Hai aggiunto degli indici, ma non vedi alcun miglioramento delle prestazioni. | Segui questi passaggi per assicurarti che il motore di query utilizzi l'indice:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Si verifica un' out-of-memoryeccezione. | Verificate che il codice rilasci la memoria contenuta nella struttura dei dati. | 
| Le operazioni di scrittura in batch provocano la mancanza di record nella tabella | Esamina il codice per assicurarti che venga eseguita un'ulteriore operazione di scrittura quando il conteggio dei batch è diverso da zero. | 
| La registrazione SQL non viene visualizzata nei registri delle applicazioni. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Risorse correlate
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Rifattorizzazione automatica delle applicazioni con AWS Blu Age (Guida per Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) *l'utente*)
+ [Documentazione pgAdmin](https://www.pgadmin.org/docs/)
+ [JProfiler documentazione](https://www.ej-technologies.com/jprofiler/docs)

# Proteggi e semplifica l'accesso degli utenti in un database federativo Db2 su AWS utilizzando contesti affidabili
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Riepilogo
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

Molte aziende stanno migrando i propri carichi di lavoro mainframe legacy su Amazon Web Services (AWS). Questa migrazione include lo spostamento di IBM Db2 per z/OS database a Db2 per Linux, Unix e Windows (LUW) su Amazon Elastic Compute Cloud (Amazon). EC2 Durante una migrazione graduale da locale ad AWS, gli utenti potrebbero dover accedere ai dati in IBM Db2 z/OS e in Db2 LUW su Amazon EC2 fino alla completa migrazione di tutte le applicazioni e i database su Db2 LUW. In questi scenari di accesso remoto ai dati, l'autenticazione degli utenti può essere difficile perché piattaforme diverse utilizzano meccanismi di autenticazione diversi.

Questo modello illustra come configurare un server federativo su Db2 per LUW con Db2 come database remoto. z/OS Il modello utilizza un contesto affidabile per propagare l'identità di un utente da Db2 LUW a Db2 senza eseguire nuovamente l'autenticazione sul database z/OS remoto. [Per ulteriori informazioni sui contesti affidabili, vedere la sezione Informazioni aggiuntive.](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional)

## Prerequisiti e limitazioni
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un'istanza Db2 in esecuzione su un'istanza Amazon EC2 
+ Un Db2 remoto per z/OS database in esecuzione in locale
+ La rete locale connessa ad AWS tramite AWS [ Site-to-SiteVPN o AWS](https://aws.amazon.com/vpn/) [Direct Connect](https://aws.amazon.com/directconnect/)

## Architecture
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Architettura Target**

![\[Il mainframe locale si connette tramite server Db2 e VPN locali al database Db2 attivo. EC2\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Tools (Strumenti)
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**Servizi AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di calcolo scalabile nel cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ti aiuta a trasferire il traffico tra le istanze che avvii su AWS e la tua rete remota.

**Altri strumenti**
+ [db2cli è il comando CLI](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) (Interactive Command Line Interface) di Db2.

## Epiche
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Abilita la federazione sul database Db2 LUW in esecuzione su AWS
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Abilita la federazione sul DB DB2 LUW. | Per abilitare la federazione su DB2 LUW, esegui il comando seguente.<pre>update dbm cfg using federated YES</pre> | DBA | 
| Riavviare il database. | Per riavviare il database, esegui il comando seguente.<pre>db2stop force;<br />db2start;</pre> | DBA | 

### Catalogare il database remoto
<a name="catalog-the-remote-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Catalogare il z/OS sottosistema Db2 remoto. | Per catalogare il z/OS database Db2 remoto su Db2 LUW in esecuzione su AWS, usa il seguente comando di esempio.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| Catalogare il database remoto. | Per catalogare il database remoto, utilizzare il seguente comando di esempio.<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### Crea la definizione del server remoto
<a name="create-the-remote-server-definition"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Raccogli le credenziali utente per il database Db2 z/OS remoto. | Prima di procedere con i passaggi successivi, raccogli le seguenti informazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| Crea il wrapper DRDA. | Per creare il wrapper DRDA, esegui il comando seguente.<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| Crea la definizione del server. | Per creare la definizione del server, esegui il seguente comando di esempio.<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>In questa definizione, `FED_PROXY_USER` specifica l'utente proxy che verrà utilizzato per stabilire connessioni affidabili al database Db2 z/OS . L'ID utente e la password di autorizzazione sono necessari solo per creare l'oggetto server remoto nel database Db2 LUW. Non verranno utilizzati in seguito durante il runtime. | DBA | 

### Crea mappature degli utenti
<a name="create-user-mappings"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una mappatura utente per l'utente proxy. | Per creare una mappatura utente per l'utente proxy, esegui il comando seguente.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| Crea mappature utente per ogni utente su Db2 LUW. | Crea mappature utente per tutti gli utenti del database Db2 LUW su AWS che devono accedere ai dati remoti tramite l'utente proxy. Per creare le mappature degli utenti, esegui il comando seguente.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>L'istruzione specifica che un utente su Db2 LUW (`PERSON1`) può stabilire una connessione affidabile al database Db2 remoto (). z/OS `USE_TRUSTED_CONTEXT 'Y'` Dopo aver stabilito la connessione tramite l'utente proxy, l'utente può accedere ai dati utilizzando l'ID utente Db2 z/OS (). `REMOTE_AUTHID 'USERZID'` | DBA | 

### Crea l'oggetto contestuale affidabile
<a name="create-the-trusted-context-object"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'oggetto contestuale affidabile. | Per creare l'oggetto di contesto affidabile sul z/OS database Db2 remoto, utilizzate il seguente comando di esempio.<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>In questa definizione, `CTX_LUW_ZOS` è un nome arbitrario per l'oggetto di contesto affidabile. L'oggetto contiene l'ID utente proxy e l'indirizzo IP del server da cui deve provenire la connessione affidabile. In questo esempio, il server è il database Db2 LUW su AWS. È possibile utilizzare il nome di dominio anziché l'indirizzo IP. La clausola `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` indica che la modifica dell'ID utente su una connessione affidabile è consentita per ogni ID utente. Non è necessario fornire una password. | DBA | 

## Risorse correlate
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [Impianto di controllo degli accessi alle risorse IBM (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [Federazione IBM Db2 LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Contesti affidabili](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Informazioni aggiuntive
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Contesti affidabili Db2**

Un contesto affidabile è un oggetto di database Db2 che definisce una relazione di trust tra un server federato e un server di database remoto. Per definire una relazione di fiducia, il contesto affidabile specifica gli attributi di fiducia. Esistono tre tipi di attributi di fiducia:
+ L'ID di autorizzazione del sistema che effettua la richiesta iniziale di connessione al database
+ L'indirizzo IP o il nome di dominio da cui viene effettuata la connessione
+ L'impostazione di crittografia per le comunicazioni di dati tra il server del database e il client del database

Una connessione affidabile viene stabilita quando tutti gli attributi di una richiesta di connessione corrispondono agli attributi specificati in qualsiasi oggetto di contesto affidabile definito sul server. Esistono due tipi di connessioni affidabili: implicite ed esplicite. Dopo aver stabilito una connessione implicita affidabile, un utente eredita un ruolo che non gli è disponibile al di fuori dell'ambito di tale definizione di connessione affidabile. Dopo aver stabilito una connessione affidabile esplicita, gli utenti possono attivare la stessa connessione fisica, con o senza autenticazione. Inoltre, agli utenti Db2 possono essere concessi ruoli che specificano privilegi utilizzabili solo all'interno della connessione affidabile. Questo modello utilizza una connessione esplicita e affidabile.

*Contesto attendibile in questo modello*

Una volta completato il pattern, PERSON1 su Db2 LUW accede ai dati remoti da Db2 utilizzando un contesto z/OS fidato federato. La connessione per PERSON1 viene stabilita tramite un utente proxy se la connessione proviene dall'indirizzo IP o dal nome di dominio specificato nella definizione del contesto affidabile. Dopo aver stabilito la connessione, PERSON1 l'ID z/OS utente Db2 corrispondente viene cambiato senza riautenticarsi e l'utente può accedere ai dati o agli oggetti in base ai privilegi Db2 impostati per quell'utente.

*Vantaggi dei contesti fidati federati*
+ Questo approccio mantiene il principio del privilegio minimo eliminando l'uso di un ID utente o di un'applicazione comune che richiederebbe un superset di tutti i privilegi richiesti da tutti gli utenti.
+ La vera identità dell'utente che esegue la transazione sia sul database federato che su quello remoto è sempre nota e può essere verificata.
+ Le prestazioni migliorano perché la connessione fisica viene riutilizzata tra gli utenti senza che il server federato debba eseguire nuovamente l'autenticazione.

# Trasferisci z/OS dati Db2 su larga scala su Amazon S3 in file 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*

## Riepilogo
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Un mainframe è ancora un sistema di registrazione in molte aziende, che contiene un'enorme quantità di dati, tra cui entità di dati master con registrazioni delle transazioni commerciali correnti e storiche. Spesso è isolato e non è facilmente accessibile dai sistemi distribuiti all'interno della stessa azienda. Con l'avvento della tecnologia cloud e la democratizzazione dei big data, le aziende sono interessate a utilizzare le informazioni nascoste nei dati del mainframe per sviluppare nuove funzionalità aziendali.

Con questo obiettivo, le aziende stanno cercando di aprire i dati mainframe Db2 all'ambiente cloud Amazon Web Services (AWS). Le ragioni commerciali sono diverse e i metodi di trasferimento variano da caso a caso. Potresti preferire connettere l'applicazione direttamente al mainframe oppure replicare i dati quasi in tempo reale. Se il caso d'uso è quello di alimentare un data warehouse o un data lake, avere una up-to-date copia non è più un problema e la procedura descritta in questo schema potrebbe essere sufficiente, soprattutto se si desidera evitare i costi di licenza di prodotti di terze parti. Un altro caso d'uso potrebbe essere il trasferimento di dati su mainframe per un progetto di migrazione. In uno scenario di migrazione, i dati sono necessari per eseguire il test di equivalenza funzionale. L'approccio descritto in questo post è un modo conveniente per trasferire i dati Db2 all'ambiente cloud AWS.

Poiché Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) è uno dei servizi AWS più integrati, puoi accedere ai dati da lì e raccogliere informazioni direttamente utilizzando altri servizi AWS come Amazon Athena, le funzioni AWS Lambda o Amazon. QuickSight Puoi anche caricare i dati su Amazon Aurora o Amazon DynamoDB utilizzando AWS Glue o AWS Database Migration Service (AWS DMS). Con questo obiettivo in mente, questo descrive come scaricare i dati Db2 in file CSV in formato ASCII sul mainframe e trasferire i file su Amazon S3.

A tal fine, sono stati sviluppati [script mainframe](https://github.com/aws-samples/unloaddb2-samples) per aiutare a generare linguaggi di controllo del lavoro (JCLs) per scaricare e trasferire tutte le tabelle Db2 necessarie.

## Prerequisiti e limitazioni
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Prerequisiti**
+ Un utente z/OS del sistema operativo IBM con autorizzazione a eseguire script Restructured Extended Executor (REXX) e JCL.
+ Accesso a z/OS Unix System Services (USS) per generare chiavi private e pubbliche SSH (Secure Shell).
+ Un bucket S3 scrivibile. Per ulteriori informazioni, consulta [Crea il tuo primo bucket S3 nella documentazione](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) di Amazon S3.
+ Un server abilitato al protocollo SFTP (SSH File Transfer Protocol) di AWS Transfer Family che utilizza **Service gestito** come provider di identità e Amazon S3 come servizio di storage AWS. Per ulteriori informazioni, consulta [Creare un server compatibile con SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) nella documentazione di AWS Transfer Family.

**Limitazioni**
+ Questo approccio non è adatto per la sincronizzazione dei dati quasi in tempo reale o in tempo reale.
+ I dati possono essere spostati solo da Db2 z/OS ad Amazon S3, non viceversa.

## Architecture
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Stack tecnologico di origine**
+ Mainframe che esegue Db2 su z/OS

**Stack tecnologico Target**
+ AWS Transfer Family
+ Simple Storage Service (Amazon S3)
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ Amazon Redshift

**Architettura di origine e destinazione**

Il diagramma seguente mostra il processo di generazione, estrazione e trasferimento di z/OS dati Db2 in formato ASCII CSV su un bucket S3.

![\[Data flow from corporate data center to Cloud AWS, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Viene selezionato un elenco di tabelle per la migrazione dei dati dal catalogo Db2.

1. L'elenco viene utilizzato per guidare la generazione di lavori di scaricamento con le colonne numeriche e di dati in formato esterno.

1. I dati vengono quindi trasferiti su Amazon S3 utilizzando AWS Transfer Family.

1. Un job di estrazione, trasformazione e caricamento (ETL) di AWS Glue può trasformare i dati e caricarli in un bucket elaborato nel formato specificato, oppure AWS Glue può inserire i dati direttamente nel database.

1. Amazon Athena e Amazon QuickSight possono essere utilizzati per interrogare ed eseguire il rendering dei dati per favorire l'analisi.

Il diagramma seguente mostra un flusso logico dell'intero processo.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. Il primo JCL, chiamato TABNAME, utilizzerà l'utilità Db2 DSNTIAUL per estrarre e generare l'elenco di tabelle che intendi scaricare da Db2. Per scegliere le tabelle, è necessario adattare manualmente l'input SQL per selezionare e aggiungere criteri di filtro per includere uno o più schemi Db2.

1. Il secondo JCL, chiamato REXXEXEC, utilizzerà uno scheletro JCL e il programma REXX forniti per elaborare l'elenco di tabelle creato da JCL TABNAME e generare un JCL per nome di tabella. Ogni JCL conterrà un passaggio per lo scaricamento della tabella e un altro passaggio per l'invio del file al bucket S3 utilizzando il protocollo SFTP.

1. L'ultimo passaggio consiste nell'eseguire JCL per scaricare la tabella e trasferire il file su AWS. L'intero processo può essere automatizzato utilizzando uno scheduler locale o su AWS.

## Tools (Strumenti)
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Servizi AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon Simple Storage Service (Amazon S3) utilizzando SQL standard.
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) è un motore di database relazionale completamente gestito creato per il cloud e compatibile con MySQL e PostgreSQL.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) è un servizio di estrazione, trasformazione e caricamento (ETL) completamente gestito. Ti aiuta a classificare, pulire, arricchire e spostare i dati in modo affidabile tra archivi di dati e flussi di dati.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) è un servizio di business intelligence (BI) su scala cloud che ti aiuta a visualizzare, analizzare e riportare i tuoi dati in un'unica dashboard.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) è un servizio di data warehouse gestito su scala petabyte nel cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) è un servizio di trasferimento sicuro che consente di trasferire file da e verso i servizi di storage AWS.

**Strumenti mainframe**
+ [SSH File Transfer Protocol (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) è un protocollo di trasferimento file sicuro che consente l'accesso remoto e il trasferimento di file tra server. SSH fornisce sicurezza crittografando tutto il traffico.
+ [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) è un programma di esempio fornito da IBM per lo scaricamento dei dati.
+ [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) è un programma batch di utilità fornito da IBM per lo scarico di dati con diverse opzioni di DSNTIAUL.
+ [z/OS OpenSSH](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) è una porta del software Open Source SSH in esecuzione su Unix System Service nella rete del sistema operativo IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Fornisce diverse utilità, tra cui ssh-keygen.
+ Lo script [REXX (Restructured Extended Executor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) viene utilizzato per automatizzare la generazione di JCL con i passaggi Db2 Unload e SFTP.

**Codice**

[Il codice per questo pattern è disponibile nel repository unloaddb2. GitHub ](https://github.com/aws-samples/unloaddb2-samples)

## Best practice
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Per il primo scaricamento, i dati generati JCLs dovrebbero scaricare l'intera tabella.

Dopo il primo scaricamento completo, esegui scaricamenti incrementali per migliorare le prestazioni e risparmiare sui costi. Aggiorna la query SQL nel deck JCL del modello per adattare eventuali modifiche al processo di scaricamento.

È possibile convertire lo schema manualmente o utilizzando uno script su Lambda con Db2 SYSPUNCH come input. Per un processo industriale, [AWS Schema Conversion Tool (SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html) è l'opzione preferita.

Infine, utilizza uno scheduler basato su mainframe o uno scheduler su AWS con un agente sul mainframe per gestire e automatizzare l'intero processo.

## Epiche
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Configura il bucket S3
<a name="set-up-the-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket S3. | Per istruzioni, consulta [Creare il tuo primo bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | Informazioni generali su AWS | 

### Configurare il server Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un server compatibile con SFTP. | Per aprire e creare un server SFTP sulla [console AWS Transfer Family](https://console.aws.amazon.com/transfer/), procedi come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Informazioni generali su AWS | 
| Crea un ruolo IAM per Transfer Family. | Per creare un ruolo AWS Identity and Access Management (IAM) per Transfer Family per accedere ad Amazon S3, segui le istruzioni in [Creare un ruolo e una policy IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Amministratore AWS | 
| Aggiungi un utente gestito dal servizio Amazon S3. | Per aggiungere l'utente gestito dal servizio Amazon S3, segui le istruzioni nella [documentazione AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user) e usa il tuo ID utente mainframe. | Informazioni generali su AWS | 

### Proteggi il protocollo di comunicazione
<a name="secure-the-communication-protocol"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea la chiave SSH. | Nel tuo ambiente USS mainframe, esegui il seguente comando.<pre>ssh-keygen -t rsa</pre>Quando viene richiesta una passphrase, lasciala vuota. | Sviluppatore di mainframe | 
| Assegna i giusti livelli di autorizzazione alla cartella SSH e ai file chiave. | Per impostazione predefinita, le chiavi pubbliche e private verranno archiviate nella directory `/u/home/username/.ssh` utente.È necessario fornire l'autorizzazione 644 ai file chiave e 700 alla cartella.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Sviluppatore di mainframe | 
| Copia il contenuto della chiave pubblica sul tuo utente gestito dal servizio Amazon S3. | Per copiare il contenuto della chiave pubblica generato da USS, apri la console [AWS Transfer Family](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Sviluppatore di mainframe | 

### Genera il JCLs
<a name="generate-the-jcls"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Genera l'elenco di tabelle Db2 relativo all'ambito. | Fornisci un codice SQL di input per creare un elenco delle tabelle destinate alla migrazione dei dati. Questo passaggio richiede di specificare i criteri di selezione per interrogare la tabella del catalogo Db2 SYSIBM.SYSTABLES utilizzando una clausola SQL where. I filtri possono essere personalizzati per includere uno schema o nomi di tabelle specifici che iniziano con un prefisso particolare o basati su un timestamp per lo scaricamento incrementale. L'output viene acquisito in un set di dati sequenziali fisici (PS) sul mainframe. Questo set di dati fungerà da input per la fase successiva della generazione di JCL.Prima di utilizzare JCL TABNAME (puoi rinominarlo se necessario), apporta le seguenti modifiche:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Processo di estrazione dell'elenco delle tabelle 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> | Sviluppatore di mainframe | 
| Modifica i modelli JCL. | I modelli JCL forniti con questo modello contengono una scheda di lavoro generica e nomi di librerie. Tuttavia, la maggior parte dei siti mainframe avrà i propri standard di denominazione per i nomi dei set di dati, i nomi delle librerie e le job card. Ad esempio, potrebbe essere necessaria una classe di job specifica per eseguire i job Db2. Il Job Entry Subsystem implementa JES2 e JES3 può imporre ulteriori modifiche. Le librerie di caricamento standard potrebbero avere un primo qualificatore diverso `SYS1` da, che è l'impostazione predefinita di IBM. Pertanto, personalizza i modelli per tenere conto degli standard specifici del sito prima di eseguirli.Apportate le seguenti modifiche allo scheletro JCL UNLDSKEL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Unload e SFTP (JCL skeleton)**<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>  | Sviluppatore di mainframe | 
| Genera il Mass Unload JCL. | Questo passaggio prevede l'esecuzione di uno script REXX in un ambiente ISPF utilizzando JCL. Fornisci l'elenco delle tabelle relative all'ambito create nel primo passaggio come input per la generazione di massa di JCL in base al nome. `TABLIST DD` Il JCL genererà un nuovo JCL per nome di tabella in un set di dati partizionato specificato dall'utente specificato in base al nome. `ISPFILE DD` Alloca prima questa libreria. Ogni nuovo JCL avrà due passaggi: un passaggio per scaricare la tabella Db2 in un file e un passaggio per inviare il file al bucket S3.Apporta le seguenti modifiche in JCL REXXEXEC (puoi cambiare il nome):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Lavoro di generazione JCL di massa**<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>Prima di utilizzare lo script REXX, apportate le seguenti modifiche:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Script STEPS REX**<pre>/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */<br />/* 10/27/2021 - added new parms to accommodate ftp */<br />Trace "o" <br />    parse arg usrpfx ftpuser ftpsite<br />    Say "Start"<br />    Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite<br />    Say "Reading table name list"<br />    "EXECIO * DISKR TABLIST (STEM LINE. FINIS"<br />    DO I = 1 TO LINE.0<br />      Say I<br />      suffix = I<br />      Say LINE.i<br />      Parse var LINE.i schema table rest<br />      tabname = schema !! "." !! table<br />      Say tabname<br />      tempjob= "LOD" !! RIGHT("0000" !! i, 5) <br />      jobname=tempjob<br />      Say tempjob<br />      ADDRESS ISPEXEC "FTOPEN "<br />      ADDRESS ISPEXEC "FTINCL UNLDSKEL"<br />      /* member will be saved in ISPDSN library allocated in JCL */<br />      ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")"<br />    END<br /><br />    ADDRESS TSO "FREE F(TABLIST) "<br />    ADDRESS TSO "FREE F(ISPFILE) "<br /><br />exit 0</pre> | Sviluppatore di mainframe | 

### Esegui il JCLs
<a name="run-the-jcls"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eseguire la fase Db2 Unload. | Dopo la generazione di JCL, ne avrai tante JCLs quante sono le tabelle da scaricare.Questa storia utilizza un esempio generato da JCL per spiegare la struttura e i passaggi più importanti.Non è richiesta nessuna azione da parte tua. Le seguenti informazioni sono solo di riferimento. Se intendi inviare JCLs ciò che hai generato nel passaggio precedente, vai alla sezione *Invia l' LODnnnnn JCLs*attività.Quando si scaricano dati Db2 utilizzando un JCL con l'utilità DSNUTILB Db2 fornita da IBM, è necessario assicurarsi che i dati scaricati non contengano dati numerici compressi. A tale scopo`DELIMITED`, utilizzare il parametro DSNUTILB.Il `DELIMITED` parametro supporta lo scaricamento dei dati in formato CSV aggiungendo un carattere come delimitatore e virgolette doppie per il campo di testo, rimuovendo la spaziatura interna nella colonna VARCHAR e convertendo tutti i campi numerici in FORMATO ESTERNO, inclusi i campi DATE.L'esempio seguente mostra l'aspetto della fase di scaricamento nel JCL generato, utilizzando il carattere virgola come delimitatore.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Sviluppatore di mainframe, ingegnere di sistema | 
| Esegui la fase SFTP. | Per utilizzare il protocollo SFTP di un JCL, utilizzate l'utilità BPXBATCH. L'utilità SFTP non può accedere direttamente ai set di dati MVS. È possibile utilizzare il comando copy (`cp`) per copiare il file `&USRPFX..DB2.UNLOAD.&JOBNAME` sequenziale nella directory USS, dove diventa. `&TABNAME..csv`Esegui il `sftp` comando utilizzando la chiave privata (`id_rsa`) e utilizzando l'ID utente RACF come nome utente per connetterti all'indirizzo IP di 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> | Sviluppatore di mainframe, ingegnere di sistema | 
| Invia il. LODnnnnn JCLs | Il JCL precedente ha generato tutte le tabelle LODnnnnn JCL che devono essere scaricate, trasformate in CSV e trasferite nel bucket S3.Esegui il `submit` comando su tutto ciò che è stato generato. JCLs  | Sviluppatore di mainframe, ingegnere di sistema | 

## Risorse correlate
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Per ulteriori informazioni sui diversi strumenti e soluzioni utilizzati in questo documento, consultate quanto segue:
+ [Guida per l'utente di z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS — Esempi di istruzioni di controllo UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS — Scaricamento di file delimitati](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family: creazione di un server compatibile con SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family: collaborazione con utenti gestiti dal servizio](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Informazioni aggiuntive
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Dopo aver archiviato i dati Db2 su Amazon S3, hai a disposizione molti modi per sviluppare nuove informazioni. Poiché Amazon S3 si integra con i servizi di analisi dei dati AWS, puoi utilizzare o esporre liberamente questi dati sul lato distribuito. Ad esempio, puoi eseguire le operazioni seguenti:
+ Crea un [data lake su Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) ed estrai informazioni preziose utilizzando query-in-place strumenti di analisi e apprendimento automatico senza spostare i dati.
+ Avvia una funzione [Lambda](https://aws.amazon.com/lambda/) configurando un flusso di lavoro di elaborazione post-caricamento integrato con AWS Transfer Family.
+ Sviluppa nuovi microservizi per accedere ai dati in Amazon S3 o [in database completamente gestiti](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) utilizzando [AWS Glue](https://aws.amazon.com/glue/), un servizio di integrazione dei dati senza server che semplifica la scoperta, la preparazione e la combinazione di dati per l'analisi, l'apprendimento automatico e lo sviluppo di applicazioni.

In un caso di migrazione, poiché puoi trasferire qualsiasi dato dal mainframe a S3, puoi fare quanto segue:
+ Elimina l'infrastruttura fisica e crea una strategia di archiviazione dei dati conveniente con Amazon S3 Glacier e S3 Glacier Deep Archive. 
+ Crea soluzioni di backup e ripristino scalabili, durevoli e sicure con Amazon S3 e altri servizi AWS, come S3 Glacier e Amazon Elastic File System (Amazon EFS), per aumentare o sostituire le funzionalità locali esistenti.

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

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

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

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

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

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

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

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

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

**Limitazioni**

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

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

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

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

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

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

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

**Architettura di Target**

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


**Flusso di lavoro**

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

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

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

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

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

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

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

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

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

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

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

**Deposito di codice**

Il codice per questo modello è disponibile in [Easytrieve to Modern Languages Transformation con AWS Transform](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) Custom on. GitHub

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

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

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


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

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


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

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


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

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Consulta il riepilogo della convalida della trasformazione. | Prima di eseguire la trasformazione AWS Transform personalizzata, verificate che la `input-data` cartella contenga i file di dati richiesti acquisiti prima dell'esecuzione del processo batch del mainframe. Dopo l'esecuzione del processo batch del mainframe, assicuratevi che la `output-data` cartella acquisisca i file risultanti. Tutti i file sono in formato Sequential/Text/DB 2 e utilizzano la codifica EBCDIC in base ai requisiti di esecuzione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Esegui il processo di trasformazione personalizzato. | Esegui il comando AWS Transform CLI, scegliendo l'opzione non interattiva o interattiva:<pre>:# Non-interactive execution (fully autonomous):<br />atx custom def exec \<br />  --transformation-name "Easytrieve-to-Java-Migration" \<br />  --code-repository-path ~/root/transform-workspace/mainframe-source/source-code \<br />  --build-command "mvn clean install" \<br />  --non-interactive \<br />  --trust-all-tools \<br /><br /># Interactive execution (with human oversight):<br />atx custom def exec \<br />  -n "Easytrieve-to-Java-Migration" \<br />  -p ~/root/transform-workspace/mainframe-source/source-code \<br />  -c "mvn clean install"<br /><br /># Resume interrupted execution:<br />atx -resume<br /># OR<br />atx --conversation-id <conversation-id><br /></pre>AWS Transform si convalida automaticamente tramite build/test comandi durante l'esecuzione della trasformazione. | Sviluppatore di app | 

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


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Consulta il riepilogo della convalida della trasformazione. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Sviluppatore di app | 
| Accedi ai report di convalida. | Inserisci questi comandi per esaminare gli artefatti di convalida dettagliati:<pre># Full validation report<br />cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_report.html<br /><br /># Generated code location<br />ls ~/.aws/atx/custom/$LATEST_SESSION/generated/<br /><br /># Execution logs<br />cat ~/.aws/atx/custom/$LATEST_SESSION/logs/execution.log</pre> | Sviluppatore di app | 
| Abilita gli elementi di conoscenza per l'apprendimento continuo. | Migliora la precisione delle trasformazioni future promuovendo gli elementi di conoscenza suggeriti nella tua configurazione persistente. Dopo una trasformazione, l'agente memorizza i modelli e le regole di mappatura identificati nella directory della sessione locale. Per rivedere e applicare questi elementi appresi, esegui questi comandi sulla tua istanza Amazon EC2:<pre># List all knowledge items for a specific transformation definition<br />atx custom def list-ki -n <transformation-name><br /><br /># Retrieve the details of a specific knowledge item<br />atx custom def get-ki -n <transformation-name> --id <id><br /><br /># Update the status of a knowledge item (ENABLED or DISABLED)<br />atx custom def update-ki-status -n <transformation-name> --id <id> --status ENABLED<br /><br /># Update the knowledge item configuration to enable auto-approval<br />atx custom def update-ki-config -n <transformation-name> --auto-enabled TRUE</pre> | Sviluppatore di app | 

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


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

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

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

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

# Altri modelli
<a name="mainframe-more-patterns-pattern-list"></a>

**Topics**
+ [Implementa le automazioni di sicurezza per la AWS WAF soluzione utilizzando Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Replica i database mainframe su AWS utilizzando Precisly Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)