

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**Topics**
+ [Acesse Serviços da AWS a partir da IBM z/OS instalando o AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Backup e arquivamento de dados do mainframe no Amazon S3 usando o BMC AMI Cloud Data](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Crie programas COBOL Db2 usando e AWS Mainframe Modernization AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Crie um PAC de servidor corporativo da Micro Focus com o Amazon EC2 Auto Scaling e o Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Crie um visualizador avançado de arquivos de mainframe na Nuvem AWS](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [Converta e descompacte dados EBCDIC em ASCII na AWS usando Python](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Converta arquivos de mainframe do formato EBCDIC para o formato ASCII delimitado por caracteres no Amazon S3 usando AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Converta arquivos de dados de mainframe com layouts de registro complexos usando o Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Implante um ambiente para aplicativos Blu Age conteinerizados usando o Terraform](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Gere insights de z/OS dados do Db2 usando o AWS Mainframe Modernization Amazon Q no Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Implemente a autenticação baseada no Microsoft Entra ID em um aplicativo de AWS mainframe modernizado da Blue Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Integre o controlador universal Stonebranch com o AWS Mainframe Modernization](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Migre e replique arquivos VSAM para o Amazon RDS ou o Amazon MSK usando o Connect da Precisely](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernize o aplicativo de CardDemo mainframe usando AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernize e implante aplicativos de mainframe usando o Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernize o gerenciamento de saída do mainframe AWS usando o Rocket Enterprise Server e o LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernize as cargas de trabalho de impressão em lote do mainframe AWS usando o Rocket Enterprise Server e o LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernização do mainframe: DevOps iniciada AWS com o Rocket Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernize as workloads de impressão on-line de mainframe na AWS usando o Micro Focus Enterprise Server e o LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Mova arquivos de mainframe diretamente para o Amazon S3 usando o Transfer Family](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Otimize o desempenho do seu aplicativo modernizado AWS Blu Age](optimize-performance-aws-blu-age-modernized-application.md)
+ [Proteja e simplifique o acesso de usuários em um banco de dados de federação Db2 na AWS usando contextos confiáveis](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Transfira z/OS dados do Db2 em grande escala para o Amazon S3 em arquivos CSV](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform](transform-easytrieve-modern-languages.md)
+ [Mais padrões](mainframe-more-patterns-pattern-list.md)

# Acesse Serviços da AWS a partir da IBM z/OS instalando o AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh, Paulo Vítor Pereira e Phil de Valence, da Amazon Web Services*

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

O [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) é uma ferramenta de código aberto para gerenciar vários AWS serviços usando comandos em um shell de linha de comando. Com uma configuração mínima, você pode executar comandos a partir de sessões de linha de comando, como o prompt de comando, o terminal e o shell bash, para implementar uma funcionalidade equivalente à fornecida pelo navegador Console de gerenciamento da AWS.

Todas as funções de administração, gerenciamento e acesso da AWS infraestrutura como serviço (IaaS) no Console de gerenciamento da AWS estão disponíveis na AWS API e. AWS CLI Você pode instalá-lo AWS CLI em um z/OS mainframe IBM para acessar, gerenciar e interagir diretamente a Serviços da AWS partir do z/OS. AWS CLI Isso permite que usuários e aplicativos executem várias tarefas, como:
+ Transferência de arquivos ou conjuntos de dados entre o armazenamento de objetos do z/OS Amazon Simple Storage Service (Amazon S3) e a visualização do conteúdo de buckets
+ Iniciar e interromper AWS recursos diferentes; por exemplo, iniciar um trabalho em lotes em um AWS Mainframe Modernization ambiente
+ Chamando uma AWS Lambda função para implementar uma lógica comercial comum
+ Integração com inteligência artificial, aprendizado de máquina (IA/ML) e serviços de análise

Esse padrão descreve como instalar, configurar e usar o AWS CLI em z/OS. You can install it globally, so it's available to all z/OS usuários ou em nível de usuário. O padrão também detalha como usar o AWS CLI em uma sessão de linha de comando interativa do z/OS Unix System Services (USS) ou como um trabalho em lote.

## Pré-requisitos e limitações
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Pré-requisitos **
+ **Comunicação de rede de z/OS para AWS**

  Por padrão, o AWS CLI envia solicitações Serviços da AWS usando HTTPS na porta TCP 443. Para usar o AWS CLI com sucesso, você deve ser capaz de fazer conexões de saída na porta TCP 443. Você pode usar qualquer um dos seguintes comandos do z/OS USS (alguns deles podem não estar instalados em seu ambiente) para testar a conectividade de rede de z/OS até 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 credenciais**

  Para se comunicar com Nuvem AWS serviços do z/OS, é AWS CLI necessário configurar algumas credenciais com privilégios para acessar o destino. Conta da AWS Para comandos programáticos AWS, você pode usar teclas de acesso, que consistem em um ID de chave de acesso e uma chave de acesso secreta. Se você não tiver chaves de acesso, poderá criá-las usando o Console de gerenciamento da AWS. Como prática recomendada, não use as chaves de acesso do usuário Conta da AWS raiz em nenhuma tarefa, a menos que o usuário raiz seja necessário. Em vez disso, [crie um novo usuário administrador do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) e [prepare-se para obter permissões com privilégios mínimos****](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege) para configurar o usuário com chaves de acesso. Depois de criar o usuário, você pode [criar uma ID de chave de acesso e uma chave de acesso secreta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) para esse usuário.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python para z/OS**

   AWS CLI Isso requer Python 3.8 ou posterior. A IBM permitiu que o Python fosse executado z/OS com o [IBM Open Enterprise Python](https://www.ibm.com/products/open-enterprise-python-zos) for z/OS. [O IBM Open Enterprise Python está disponível gratuitamente por meio do Shopz SMP/E, ou você pode baixar o arquivo PAX no site da IBM.](https://www.ibm.com/account/reg/signup?formid=urx-49465) Para obter instruções, consulte a [documentação de instalação e configuração do](https://www.ibm.com/docs/en/python-zos) IBM Open Enterprise Python for z/OS.

**Limitações**
+ As instruções de instalação fornecidas nesse padrão são aplicáveis **somente àAWS CLI versão 1**. A versão mais recente do AWS CLI é a versão 2. No entanto, esse padrão usa a versão mais antiga porque os métodos de instalação são diferentes para a versão 2 e os executáveis binários disponíveis para a versão 2 não são compatíveis com o z/OS sistema.

**Versões do produto**
+ AWS CLI versão 1
+ Python 3.8 ou posterior

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

**Pilha de tecnologia**
+ Mainframe executando z/OS
+ Serviços de sistema z/OS UNIX de mainframe (USS)
+ Mainframe Open MVS (OMVS) — interface de comando do ambiente z/OS shell UNIX
+ Disco de mainframe, como um dispositivo de armazenamento de acesso direto (DASD - direct-access storage device)
+ AWS CLI

**Arquitetura de destino**

O diagrama a seguir mostra uma AWS CLI implantação no IBM z/OS. Você pode invocar o a AWS CLI partir de uma sessão de usuário interativa, como SSH e sessões de telnet. Você também pode invocá-lo a partir de um trabalho em lotes usando a linguagem de controle de tarefas (JCL) ou de qualquer programa que possa chamar um comando shell do z/OS Unix.

![\[AWS CLI em um z/OS mainframe IBM acessando os serviços da AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


Eles AWS CLI se comunicam com os AWS service (Serviço da AWS) endpoints por meio de uma TCP/IP rede. Essa conexão de rede pode ocorrer pela Internet ou por meio de uma AWS Direct Connect conexão privada do data center do cliente com os data Nuvem AWS centers. A comunicação é autenticada com AWS credenciais e criptografada. 

**Automação e escala**

Você pode explorar os recursos de um AWS service (Serviço da AWS) com o AWS CLI e desenvolver scripts de shell do USS para gerenciar seus AWS recursos a partir do z/OS. Você também pode executar AWS CLI comandos e scripts de shell a partir do ambiente z/OS em lotes e automatizar trabalhos em lotes para execução em um cronograma específico por meio da integração com agendadores de mainframe. AWS CLI comandos ou scripts podem ser codificados dentro de parâmetros (PARMs) e procedimentos (PROCs) e podem ser escalados seguindo a abordagem padrão de chamar o PARM ou o PROC a partir de diferentes trabalhos em lotes com parâmetros diferentes.

## Ferramentas
<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) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.

## Práticas recomendadas
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Por motivos de segurança, restrinja as permissões de acesso ao diretório do USS onde os detalhes da chave de AWS acesso estão armazenados. Permita o acesso somente aos usuários ou programas que usam AWS CLI o.
+ Não use as chaves de acesso do usuário Conta da AWS root para nenhuma tarefa. Em vez disso, [crie um novo usuário administrador do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) para você e configure-o com chaves de acesso.


| 
| 
| Os usuários do IAM têm credenciais de longo prazo, o que representa um risco de segurança. Para ajudar a reduzir esse risco, recomendamos que você forneça a esses usuários somente as permissões necessárias para realizar a tarefa e que você os remova quando não forem mais necessários. | 
| --- |

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

### Instale AWS CLI a versão 1 no z/OS USS
<a name="install-cli-version-1-on-z-os-uss"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o Python 3.8 ou posterior. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 
| Defina as variáveis de ambiente do USS. | Adicione variáveis de ambiente ao perfil. Você pode adicioná-los ao `/u/cliuser/.profile` arquivo de um usuário individual (`cliuser`) ou ao `/etc/profile` arquivo de todos os usuários.Esse padrão pressupõe que o Python tenha sido instalado no `/u/awscli/python` diretório. Se o diretório de instalação for diferente, atualize o código adequadamente.<pre># Python configuration<br />export BPXKAUTOCVT='ON'<br />export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)'<br />export TAGREDIR_ERR=txt<br />export TAGREDIR_IN=txt<br />export TAGREDIR_OUT=txt<br /><br /># AWS CLI configuration<br />export PATH=/u/cliuser/python/bin:$PATH<br />export PYTHONPATH=/u/cliuser/python:$PYTHONPATH</pre> | Administrador de mainframe z/OS  | 
| Teste a instalação do Python. | Execute o comando **python**:<pre>python --version</pre>A saída deve confirmar que você tem o Python 3.8 ou posterior instalado corretamente. | Administrador de mainframe z/OS  | 
| Verifique ou instale o **pip.** | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 
| Instale AWS CLI a versão 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador de mainframe z/OS  | 

### Configurar o AWS CLI acesso a partir do z/OS
<a name="configure-cli-access-from-z-os"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure as chaves de AWS acesso, a região padrão e a saída. | A [AWS CLI documentação](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) descreve diferentes opções para configurar o AWS acesso. Você pode escolher uma configuração de acordo com os padrões da sua organização. Este exemplo usa a configuração de credenciais de curto prazo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Administrador da AWS, administrador de mainframe, z/OS desenvolvedor de mainframe z/OS  | 
| Teste AWS CLI o. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) |  z/OS Administrador de mainframe, desenvolvedor de mainframe z/OS  | 

### Opção 1 ‒ Transferir dados do USS para o Amazon S3 de forma interativa a partir de uma sessão do USS
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe e transfira o arquivo CSV de amostra. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de aplicativos, desenvolvedor de mainframe z/OS  | 
| Crie um bucket do S3 e faça o upload do arquivo CSV. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de aplicativos, desenvolvedor de mainframe z/OS  | 
| Visualize o bucket do S3 e o arquivo carregado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Para obter mais informações sobre o upload de objetos, consulte [Introdução ao Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) S3 na documentação do Amazon S3. | AWS geral | 
| Execute uma consulta SQL em uma tabela do Amazon Athena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)A saída da consulta SQL exibirá o conteúdo do seu arquivo CSV. | AWS geral, desenvolvedor de aplicativos | 

### Opção 2 ‒ Transferir dados do USS para o Amazon S3 usando JCL em lote
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça o upload do arquivo de amostra. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de mainframe z/OS  | 
| Crie JCL em lote. | Codifique o JCL em lote da seguinte forma para criar o bucket S3 de destino, fazer o upload do conjunto de dados e listar o conteúdo do bucket. Certifique-se de substituir o nome do diretório, os nomes dos arquivos e o nome do bucket pelos seus próprios valores.<pre>//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), <br />// NOTIFY=&SYSUID,TIME=1440 <br />//*---------------------------------------------------------<br />//* Sample job for AWS CLI <br />//*--------------------------------------------------------- <br />//USSCMD EXEC PGM=BPXBATCH<br />//STDERR  DD SYSOUT=*<br />//STDOUT  DD SYSOUT=*<br />//STDENV  DD *<br /> export PATH=/u/cliuser/python/bin:$PATH<br />//STDPARM DD *<br />SH<br /> export _BPXK_AUTOCVT=ON;<br /> aws s3 mb s3://DOC-EXAMPLE-BUCKET2;<br /> cp "//'USER.DATA.FIXED'" /tmp/tmpfile;<br /> aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; <br /> rm /tmp/tmpfile;<br /> aws s3 ls s3://DOC-EXAMPLE-BUCKET2;<br />/*</pre> | Desenvolvedor de mainframe z/OS  | 
| Envie o trabalho JCL em lote. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Desenvolvedor de mainframe z/OS  | 
| Visualize o conjunto de dados carregado no bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS geral | 

## Recursos relacionados
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI documentação da versão 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization Referência de comandos da CLI](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## Mais informações
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED na opção 3.4 do ISPF (utilitário de lista de conjuntos de dados)**

![\[Visualizando o conteúdo do conjunto de dados no z/OS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT do trabalho em lotes enviado**

![\[Saída padrão do registro de tarefas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Backup e arquivamento de dados do mainframe no Amazon S3 usando o 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, Model9 Mainframe Software*

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

Este padrão demonstra como fazer backup e arquivar dados do mainframe diretamente no Amazon Simple Storage Service (Amazon S3) e, em seguida, recuperar e restaurar esses dados no mainframe usando o BMC AMI Cloud Data (conhecido anteriormente como Model9 Manager). Se você está procurando uma maneira de modernizar sua solução de backup e arquivamento como parte de um projeto de modernização do mainframe ou para atender aos requisitos de conformidade, este padrão pode ajudar você a atingir essas metas.

Normalmente, as organizações que executam as principais aplicações de negócios em mainframes usam uma biblioteca de fitas virtuais (VTL) para fazer backup de armazenamentos de dados, como arquivos e logs. Esse método pode ser caro porque consome MIPS faturáveis, e os dados armazenados em fitas fora do mainframe ficam inacessíveis. Para evitar esses problemas, você pode usar o BMC AMI Cloud Data para transferir dados operacionais e históricos do mainframe de forma rápida e econômica diretamente para o Amazon S3. Você pode usar o BMC AMI Cloud Data para fazer backup e arquivar TCP/IP dados AWS enquanto aproveita os mecanismos IBM z Integrated Information Processor (zIIP) para reduzir custos, paralelismo e tempos de transferência.

## Pré-requisitos e limitações
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ BMC AMI Cloud Data com uma chave de licença válida
+ Conectividade TCP/IP entre o mainframe e a AWS
+ Uma função AWS Identity and Access Management (IAM) para read/write acesso a um bucket do S3
+ Acesso ao produto de segurança de mainframe (RACF) no local para executar processos do BMC AMI Cloud
+ Um z/OS agente BMC AMI Cloud (Java versão 8 de 64 bits SR5 FP16 ou posterior) que tem portas de rede disponíveis, regras de firewall que permitem acesso aos buckets do S3 e um sistema de arquivos dedicado z/FS 
+ [Requisitos](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) atendidos para o servidor de gerenciamento do BMC AMI Cloud

**Limitações**
+ O BMC AMI Cloud Data armazena seus dados operacionais em um banco de dados PostgreSQL que é executado como um contêiner Docker na mesma instância do Amazon Elastic Compute Cloud ( EC2Amazon) do servidor de gerenciamento. O Amazon Relational Database Service (Amazon RDS) não é compatível atualmente como um backend para o BMC AMI Cloud Data. Para obter mais informações sobre as atualizações mais recentes do produto, consulte [What's New?](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) na documentação do BMC.
+ Esse padrão faz backup e arquiva somente os dados do z/OS mainframe. O BMC AMI Cloud Data realiza o backup e o arquivamento somente de arquivos do mainframe.
+ Este padrão não faz a conversão de dados em formatos abertos padrão, como JSON ou CSV. Use um serviço de transformação adicional, como o [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (anteriormente conhecido como Model9 Gravity) para converter os dados em formatos abertos padrão. Aplicações nativas da nuvem e ferramentas de data analytics podem acessar os dados depois que eles são gravados na nuvem.

**Versões do produto**
+ BMC AMI Cloud Data versão 2.x

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

**Pilha de tecnologia de origem**
+ Mainframe executando z/OS
+ Arquivos de mainframe, como conjuntos de dados e arquivos z/OS UNIX System Services (USS)
+ Disco de mainframe, como um dispositivo de armazenamento de acesso direto (DASD - direct-access storage device)
+ Fita de mainframe (biblioteca de fitas virtuais ou físicas)

**Pilha de tecnologias de destino**
+ Amazon S3
+  EC2 Instância da Amazon em uma nuvem privada virtual (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura de referência em que os agentes do software BMC AMI Cloud Data em um mainframe conduzem os processos legados de backup e arquivamento de dados que armazenam os dados no Amazon S3.

![\[Agentes do software BMC AMI Cloud Data em um mainframe conduzindo processos legados de backup e arquivamento de dados\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os agentes do software BMC AMI Cloud Data são executados em partições lógicas de mainframe (). LPARs Os agentes de software leem e gravam dados do mainframe do DASD ou da fita diretamente no Amazon S3 via TCP/IP.

1. AWS Direct Connect configura uma conexão física isolada entre a rede local e. AWS Para aumentar a segurança, use uma site-to-site VPN na parte superior Direct Connect para criptografar dados em trânsito.

1. O bucket do S3 armazena arquivos do mainframe como dados de armazenamento de objetos, e os agentes do BMC AMI Cloud Data se comunicam diretamente com os buckets do S3. Os certificados são usados para criptografia HTTPS de todas as comunicações entre o agente e o Amazon S3. A criptografia de dados do Amazon S3 é usada para criptografar e proteger os dados em repouso.

1. Os servidores de gerenciamento de dados do BMC AMI Cloud são executados como contêineres Docker em EC2 instâncias. As instâncias se comunicam com agentes em execução no mainframe LPARs e nos buckets do S3.

1. O Amazon EFS é montado em EC2 instâncias ativas e passivas para compartilhar o armazenamento do Network File System (NFS). Isso serve para garantir que os metadados relacionados a uma política criada no servidor de gerenciamento não sejam perdidos no caso de um failover. No caso de um failover do servidor ativo, é possível acessar o servidor passivo sem perda de dados. Se o servidor passivo falhar, é possível acessar o servidor ativo sem perda de dados.

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

**Serviços da AWS**
+ [O Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ O [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ajuda você a criar e configurar sistemas de arquivos compartilhados na Nuvem AWS.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar quase qualquer quantidade de dados.
+ [A Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)conecta sua rede interna a um AWS Direct Connect local por meio de um cabo de fibra óptica Ethernet padrão. Com essa conexão, você pode criar interfaces virtuais diretamente para AWS serviços públicos, ignorando os provedores de serviços de Internet em seu caminho de rede.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

**Ferramentas do BMC**
+ O [servidor de gerenciamento BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) é um aplicativo de GUI que é executado como um contêiner Docker em uma Amazon Linux Amazon Machine Image (AMI) para Amazon. EC2 O servidor de gerenciamento fornece a funcionalidade para gerenciar as atividades do BMC AMI Cloud, como emissão de relatórios, criação e gerenciamento de políticas, execução de arquivamentos e realização de backups, recuperações e restaurações.
+ O [agente do BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) é executado em uma LPAR de mainframe on-premises que lê e grava arquivos diretamente no armazenamento de objetos usando TCP/IP. Uma tarefa iniciada é executada em uma LPAR de mainframe e é responsável por ler e gravar dados de backup e arquivamento de e para o Amazon S3.
+ A [interface de linha de comando (M9CLI) do BMC AMI Cloud Mainframe](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) fornece um conjunto de comandos para realizar ações do BMC AMI Cloud diretamente de TSO/E ou em operações em lote, sem a dependência do servidor de gerenciamento.

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

### Crie um bucket do S3 e uma política do IAM
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | [Crie um bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para armazenar os arquivos e volumes dos quais você deseja fazer backup e arquivar do seu ambiente de mainframe. | AWS geral | 
| Crie uma política do IAM. | Todos os servidores de gerenciamento e agentes do BMC AMI Cloud exigem acesso ao bucket do S3 que você criou na etapa anterior.Para conceder o acesso necessário, crie a seguinte política do IAM:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Listfolder",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation",<br />                "s3:ListBucketVersions"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>"<br />            ]<br />        },<br />        {<br />            "Sid": "Objectaccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>/*"<br />            ]<br />        }<br />    ]<br />}</pre> | AWS geral | 

### Obtenha a licença do software BMC AMI Cloud e baixe o software
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha uma licença do software BMC AMI Cloud. | Para obter uma chave de licença do software, entre em contato com a [equipe do BMC AMI Cloud](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). A saída do z/OS `D M=CPU` comando é necessária para gerar uma licença. | Crie um lead | 
| Baixe a chave da licença e o software BMC AMI Cloud. | Obtenha os arquivos de instalação e a chave de licença seguindo as instruções na [documentação do BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html). | Administrador de infraestrutura de mainframe | 

### Instalar o agente de software BMC AMI Cloud no mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o agente de software BMC AMI Cloud. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador de infraestrutura de mainframe | 

### Configurar um servidor de gerenciamento do BMC AMI Cloud em uma instância EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie instâncias EC2 do Amazon Linux 2. | Execute duas instâncias do Amazon EC2 Linux 2 em diferentes zonas de disponibilidade seguindo as instruções da [Etapa 1: Inicie uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) na EC2 documentação da Amazon.A instância deve atender aos seguintes requisitos de hardware e software recomendados:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Para obter mais informações, consulte a [documentação do BMC](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Arquiteto de nuvem, administrador de nuvem | 
| Criar um sistema de arquivos do Amazon EFS. | Crie um sistema de arquivos do Amazon EFS seguindo as instruções da [Etapa 1: Crie seu sistema de arquivos do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) na documentação do Amazon EFS.Ao criar o sistema de arquivos, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador de nuvem, arquiteto de nuvem | 
| Instale o Docker e configure o servidor de gerenciamento. | **Conecte-se às suas EC2 instâncias:**Conecte-se às suas EC2 instâncias seguindo as instruções em [Conecte-se à sua instância Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) na EC2 documentação da Amazon.**Configure suas EC2 instâncias:**Para cada EC2 instância, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Arquiteto de nuvem, administrador de nuvem | 
| Instale o software do servidor de gerenciamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Para solucionar problemas, acesse os logs armazenados na pasta `/data/model9/logs/`****. Para obter mais informações, consulte a [documentação do BMC](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html). | Arquiteto de nuvem, administrador de nuvem | 

### Adicionar um agente e definir uma política de backup ou arquivamento no servidor de gerenciamento do BMC AMI Cloud
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione um novo agente. | Antes de adicionar um novo agente, considere o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Você deve criar um agente no servidor de gerenciamento antes de definir qualquer política de backup e arquivamento. Para criar o agente, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Depois que o agente for criado, você verá o status de **conectado** em relação ao armazenamento de objetos e ao agente de mainframe em uma nova janela que aparece na tabela. | Administrador ou desenvolvedor de armazenamento de mainframe | 
| Crie uma política de backup ou arquivamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador ou desenvolvedor de armazenamento de mainframe | 

### Execute a política de backup ou arquivamento a partir do servidor de gerenciamento
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute a política de backup ou arquivamento. | Execute a política de backup ou arquivamento de dados criada anteriormente no servidor de gerenciamento manual ou automaticamente (com base em uma programação). Para executar a política manualmente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador ou desenvolvedor de armazenamento de mainframe | 
| Restaure a política de backup ou arquivamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrador ou desenvolvedor de armazenamento de mainframe | 

### Execute a política de backup ou arquivamento a partir do mainframe
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute a política de backup ou arquivamento usando o M9CLI. | Use o M9CLI para realizar processos de backup e restauração a partir do TSO/E, REXX ou até mesmo JCLs sem configurar regras no servidor de gerenciamento do BMC AMI Cloud.**Usando o TSO/E:**Se você usar o TSO/E, certifique-se de que o `M9CLI REXX` esteja concatenado ao `TSO`. Para fazer backup de um conjunto de dados por meio do TSO/E, use o comando `TSO M9CLI BACKDSN <DSNAME>`.Para obter mais informações sobre comandos do M9CLI, consulte a [Referência da CLI](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) na documentação do BMC.**Usando JCLs:**Para executar a política de backup e arquivamento usando JCLs, execute o `M9CLI` comando.**Usando operações em lote:**Os seguintes exemplos mostram como arquivar um conjunto de dados executando o comando `M9CLI` por lote:<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> | Administrador ou desenvolvedor de armazenamento de mainframe | 
| Execute a política de backup ou arquivamento no lote JCL. | O BMC AMI Cloud fornece um exemplo de rotina JCL chamada **M9SAPIJ**. Você pode personalizar o **M9SAPIJ** para executar uma política específica criada no servidor de gerenciamento com uma JCL. Esse trabalho também pode fazer parte de um programador de lotes para executar processos de backup e restauração automaticamente.O trabalho em lotes espera os seguintes valores obrigatórios:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Você também pode alterar outros valores seguindo as instruções na tarefa de amostra. | Administrador ou desenvolvedor de armazenamento de mainframe | 

## Recursos relacionados
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Modernização do mainframe com a AWS](https://aws.amazon.com/mainframe/) (documentação da AWS)
+ [Como o backup na nuvem para mainframes reduz custos com o Model9 e a AWS](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/) (blog da rede de parceiro da AWS)
+ [Como habilitar a análise de dados de mainframe na AWS usando o Model9](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/) (blog da rede de parceiro da AWS)
+ [Recomendações de resiliência do AWS Direct Connect](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) (documentação da AWS)
+ [Documentação do BMC AMI Cloud](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) (site do BMC)

# Crie programas COBOL Db2 usando e AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

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

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

**nota**  
AWS Mainframe Modernization O serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Esse padrão explica como criar um AWS CodeBuild projeto simples para pré-compilar e vincular programas COBOL Db2 usando as ferramentas Replatform. AWS Mainframe Modernization Isso permite a implantação e a execução desses programas no ambiente de execução do AWS Mainframe Modernization Replatform.

O COBOL, uma linguagem de programação voltada para os negócios, alimenta muitas aplicações essenciais devido à sua confiabilidade e à legibilidade. O IBM Db2, um sistema de gerenciamento de banco de dados relacional, gerencia grandes volumes de dados com eficiência e se integra aos programas COBOL por meio de SQL. Juntos, o COBOL e o Db2 formam a espinha dorsal de operações essenciais em setores como finanças e governo, apesar do surgimento de novas tecnologias.

A migração de componentes COBOL e Db2 do ambiente de mainframe para outras plataformas leva a desafios como compatibilidade de plataformas, complexidade de integração, migração de dados e otimização de performance. A movimentação desses componentes essenciais requer um planejamento cuidadoso, conhecimento técnico e recursos para garantir uma migração tranquila e, ao mesmo tempo, manter a confiabilidade e a funcionalidade.

O AWS Mainframe Modernization serviço fornece ferramentas e recursos para reformular aplicativos e bancos de dados de mainframe para execução em AWS infraestrutura, como instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Isso envolve mover as workloads do mainframe para a nuvem sem grandes alterações no código.

O processo de pré-compilação e vinculação do Db2 é essencial para otimizar a performance e a confiabilidade das aplicações de banco de dados. A pré-compilação transforma instruções SQL incorporadas em código executável, o que reduz a sobrecarga de runtime e aumenta a eficiência. O processo de vinculação vincula o código pré-compilado às estruturas do banco de dados, facilitando os caminhos de acesso e a otimização de consultas. Esse processo garante a integridade dos dados, melhora a capacidade de resposta da aplicação e protege contra vulnerabilidades de segurança. Aplicações devidamente pré-compiladas e vinculadas minimizam o consumo de recursos, aprimoram a escalabilidade e reduzem os riscos de ataques de injeção de SQL.

## Pré-requisitos e limitações
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Pré-requisitos **
+ Um acesso Conta da AWS ao console em nível administrativo.
+ Um sistema de banco de dados IBM Db2, como IBM Db2 para z/OS ou Db2 para Linux, Unix e Windows (LUW).
+ O software do IBM Data Server Client, que está disponível para download no [site da IBM](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers). Para obter mais informações, consulte [IBM Data Server Client and Data Server Driver types](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Um programa COBOL Db2 para ser compilado e vinculado. Como alternativa, este padrão fornece um exemplo básico de programa que você pode usar.
+ Uma nuvem privada virtual (VPC) ativada AWS com uma rede privada. Para obter mais informações sobre como criar uma VPC, consulte a [documentação da Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Um repositório de controle de origem, como GitHub ou GitLab.

**Limitações**
+ Para AWS CodeBuild cotas, consulte [Cotas](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) para. AWS CodeBuild
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte a página [Cotas e endpoints de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

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

**Pilha de tecnologia de origem**

A pilha de origem inclui:
+ Programas COBOL que usam um banco de dados Db2 para armazenar dados
+ Compilador IBM COBOL e Db2 para pré-compilador z/OS 
+ Outras partes da configuração do mainframe, como o sistema de arquivos, o gerenciador de transações e o spool

**Pilha de tecnologias de destino**

A abordagem desse padrão funciona com duas opções: mover dados do Db2 para o Db2 z/OS para LUW ou permanecer no Db2 para z/OS. A arquitetura de destino inclui:
+ Programas COBOL que usam um banco de dados Db2 para armazenar dados
+ AWS Mainframe Modernization Ferramentas de compilação de replataformas
+ AWS CodeBuild como a infraestrutura para criar o aplicativo
+ Outros Nuvem AWS recursos, como Amazon Linux

**Arquitetura de destino**

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


O diagrama ilustra o seguinte:

1. O usuário carrega seu código em um repositório de controle de origem, como GitHub ou. GitLab

1. AWS CodePipeline percebe a alteração e obtém o código do repositório.

1. CodePipeline inicia AWS CodeBuild e envia o código.

1. CodeBuild segue as instruções no `buildspec.yml` modelo (fornecidas na seção [Informações adicionais](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) para:

   1. Obter o IBM Data Server Client de um bucket do Amazon Simple Storage Service (Amazon S3).

   1. Instalar e configurar o IBM Data Server Client.

   1. Recupere as credenciais do Db2 de. AWS Secrets Manager

   1. Conecte-se ao servidor do Db2.

   1. Pré-compilar, compilar e vincular o programa COBOL.

   1. Guarde os produtos acabados em um balde S3 AWS CodeDeploy para uso.

1. CodePipeline começa CodeDeploy.

1. CodeDeploy coordena seus agentes, que já estão instalados nos ambientes de execução. Os agentes buscam a aplicação no Amazon S3 e a instalam com base nas instruções em `appspec.yml`.

Para simplificar e manter o foco no processo de compilação, as instruções neste padrão abrangem as etapas de 1 a 4, mas não incluem a implantação do programa COBOL Db2.

**Automação e escala**

Para simplificar, este padrão descreve como provisionar recursos manualmente. No entanto, existem várias opções de automação disponíveis, como CloudFormation AWS Cloud Development Kit (AWS CDK), e HashiCorp Terraform, que automatizam essas tarefas. Para obter mais informações, consulte a documentação do [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) e do [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

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

**Serviços da AWS**
+ O [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatiza implantações na Amazon EC2 ou em instâncias, AWS Lambda funções ou serviços do Amazon Elastic Container Service (Amazon ECS).
+ O [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornece ferramentas e recursos para ajudá-lo a planejar e implementar a migração e a modernização de mainframes para ambientes de tempo de execução AWS gerenciados.

**Outras ferramentas**
+ **Imagem do Amazon ECR para ferramentas de AWS Mainframe Modernization replataforma**. Para compilar um aplicativo COBOL, você precisará começar CodeBuild usando uma imagem do Amazon Elastic Container Registry (Amazon ECR) que contém as ferramentas Replatform: AWS Mainframe Modernization 

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

  Para obter mais informações sobre a imagem do ECR disponível, consulte o [tutorial](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html) no *Guia do usuário do AWS Mainframe Modernization *.
+ O software [IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) é essencial para pré-compilar e vincular programas COBOL Db2. CodeBuild Ele atua como uma ponte entre o compilador COBOL e o Db2.

## Práticas recomendadas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Nem todo programa COBOL depende do Db2 como sua camada de persistência de dados. Certifique-se de que as diretivas de compilação para acessar o Db2 sejam aplicadas somente aos programas COBOL projetados especificamente para interagir com o Db2. Implemente uma lógica para distinguir entre programas COBOL Db2 e programas COBOL que não usam o Db2.
+ Recomendamos que você evite compilar programas que não tenham sido modificados. Implemente um processo para identificar quais programas precisam de compilação.

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

### Criar a infraestrutura de nuvem
<a name="create-the-cloud-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket do S3 para hospedar o IBM Data Server Client e artefatos do pipeline. | Você precisa configurar um bucket do S3 para (a) carregar o IBM Data Server Client, (b) armazenar seu código do repositório e (c) armazenar os resultados do processo de criação.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para saber como criar um bucket do S3, consulte a [documentação do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | AWS geral | 
| Carregue o IBM Data Server Client no bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS geral | 
| Crie um AWS Secrets Manager segredo para suas credenciais do Db2. | Para criar um segredo para armazenar suas DB2 credenciais com segurança:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para obter mais informações sobre como criar segredos, consulte a [documentação do Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | AWS geral | 
| Verifique se o Db2 pode ser acessado pela sub-rede da VPC. | AWS CodeBuild precisa de uma conexão com o servidor Db2 para que o Data Server Client possa realizar operações de pré-compilação e vinculação. Certifique-se de que CodeBuild possa acessar o servidor Db2 por meio de uma conexão segura.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Administrador de rede, AWS geral | 

### Criar os artefatos da aplicação
<a name="create-the-application-artifacts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o ativo COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Desenvolvedor de aplicativos | 
| Crie o arquivo `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Conecte seu repositório a. CodePipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Você precisará do Amazon Resource Name (ARN) para a conexão ao criar a política AWS Identity and Access Management (IAM) para uma CodePipeline etapa posterior. | AWS DevOps | 

### Configurar permissões do
<a name="configure-permissions"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política do IAM para CodeBuild. | O CodeBuild projeto requer acesso a alguns recursos, incluindo Secrets Manager e Amazon S3.Para configurar as permissões necessárias:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para obter mais informações sobre criação de políticas do IAM, consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | AWS geral | 
| Crie uma função do IAM para CodeBuild. | Para disponibilizar as políticas de segurança CodeBuild, você precisa configurar uma função do IAM.Para criar esse perfil:1. No painel [console do IAM](https://console.aws.amazon.com/iam), no painel de navegação, selecione **Perfis**, **Criar perfil**.3. Para o **Tipo de entidade confiável**, mantenha a configuração padrão **AWS service (Serviço da AWS)**.4. **Em Caso de uso**, selecione o CodeBuild serviço e escolha **Avançar**.4. Na lista de políticas do IAM disponíveis, localize a política para CodeBuild a qual você criou e escolha **Avançar** para anexá-la à função.5. Especifique um nome para a função e escolha **Create role** para salvá-la para futura referência CodeBuild.Para obter mais informações sobre a criação de uma função do IAM para um AWS service (Serviço da AWS), consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | AWS geral | 
| Crie uma política do IAM para CodePipeline. | O AWS CodePipeline pipeline requer acesso a alguns recursos, incluindo seu repositório de código e o Amazon S3.Repita as etapas fornecidas anteriormente CodeBuild para criar uma política do IAM para CodePipeline (na etapa 2, escolha **CodePipeline**em vez de **CodeBuild**). | AWS DevOps | 
| Crie uma função do IAM para CodePipeline. | Para disponibilizar as políticas de segurança CodePipeline, você precisa configurar uma função do IAM.Para criar esse perfil:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compilar e vincular o programa COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CodePipeline pipeline e um CodeBuild projeto. | Para criar um CodePipeline pipeline e o CodeBuild projeto que compila e vincula o programa COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Revise a saída. | Verifique o sucesso da compilação revisando os registros da CodePipeline compilação. | AWS DevOps | 
| Verifique os resultados no Db2. | Verifique a versão do pacote na tabela 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>A versão deve corresponder ao ID da CodeBuild compilação, que está `CDB2SMP` em nosso exemplo:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Solução de problemas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Ocasionalmente, o AWS console muda de região quando você se move entre os serviços. | Certifique-se de verificar o selecionado Região da AWS sempre que alternar entre os serviços.O Região da AWS seletor está no canto superior direito da janela do console. | 
| Pode ser difícil identificar problemas de conectividade do Db2 a partir do CodeBuild. | Para solucionar problemas de conectividade, adicione o seguinte comando DB2 connect ao `buildspec.yml` arquivo. Essa adição ajuda você a depurar e resolver problemas de conectividade.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| Ocasionalmente, o painel de perfis no console do IAM não mostra imediatamente a política do IAM que você criou. | Se você encontrar um atraso, atualize a tela para exibir as informações mais recentes. | 

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

**Documentação da IBM**
+ [IBM Data Server Client and driver types](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Download IBM Data Server Client and driver types](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentação**
+ [Guia do usuário do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guia do usuário](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Guia do usuário](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Guia do usuário](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guia do usuário](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guia do usuário** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Mais informações
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild política**

Substitua os espaços reservados `<RegionID>`, `<AccountID>`, `<SubnetARN>`, `<BucketARN>` e `<DB2CredSecretARN>` com seus valores.

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

**CodePipeline política**

Substitua os espaços reservados `<BucketARN>` e `<ConnectionARN>` com seus valores.

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

**`buildspec.yml`**

Substitua o espaço reservado `<your-bucket-name>` pelo nome do seu bucket do 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
```

# Crie um PAC de servidor corporativo da Micro Focus com o Amazon EC2 Auto Scaling e o 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, Nenhum*

*Abraham Rondon, Micro Focus*

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

Esse padrão introduz uma arquitetura escalável para aplicativos de mainframe usando o [Micro Focus Enterprise Server no 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 um grupo Amazon Elastic Compute Cloud (Amazon) EC2 Auto Scaling no Amazon Web Services ().AWS A solução é totalmente automatizada com ganchos de AWS Systems Manager ciclo de vida do Amazon EC2 Auto Scaling. Ao usar esse padrão, você pode configurar seus aplicativos de mainframe on-line e em lote para obter alta resiliência, aumentando e reduzindo automaticamente a escala com base em suas demandas de capacidade. 

**nota**  
Este padrão foi testado com o Micro Focus Enterprise Server versão 6.0. Para a versão 8, consulte [Configurar o Micro Focus Runtime (na Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Pré-requisitos e limitações
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Software e licença do Micro Focus Enterprise Server. Para obter detalhes, entre em contato com a equipe de [vendas da Micro Focus](https://www.microfocus.com/en-us/contact/contactme).
+ Uma compreensão do conceito de reconstrução e entrega de um aplicativo de mainframe para ser executado no Micro Focus Enterprise Server. Para obter uma visão geral de alto nível, consulte a [planilha de dados do Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Uma compreensão dos conceitos do Cluster Escalável de Desempenho e Disponibilidade do Micro Focus Enterprise Server. Para ter mais informações, consulte a [documentação do Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Uma compreensão do conceito geral de aplicativo de mainframe DevOps com integração contínua (CI). Para um padrão de orientação AWS prescritiva desenvolvido pela AWS Micro Focus, consulte [Modernização do mainframe: DevOps on AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) with Micro Focus.

**nota**  
Este padrão foi testado com o Micro Focus Enterprise Server versão 6. Para a versão 8, consulte [Configurar o Micro Focus Runtime (na Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Limitações**
+ Para obter uma lista das plataformas suportadas pelo Micro Focus Enterprise Server, consulte a [ficha técnica do Micro Focus Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Os scripts e testes usados nesse padrão são baseados no Amazon EC2 Windows Server 2019; outras versões e sistemas operacionais do Windows Server não foram testados para esse padrão.
+ O padrão é baseado no Micro Focus Enterprise Server 6.0 para Windows; versões anteriores ou superiores não foram testadas no desenvolvimento desse padrão.

**Versões do produto**
+ Micro Focus Enterprise Server 6.0
+ Windows Server 2019

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

No ambiente convencional de mainframe, você deve provisionar hardware para hospedar seus aplicativos e dados corporativos. Para atender e atender aos picos de demandas sazonais, mensais, trimestrais ou até mesmo sem precedentes ou inesperadas, os usuários de mainframe devem *aumentar a escala horizontalmente* comprando capacidade adicional de armazenamento e computação. Aumentar o número de recursos de armazenamento e capacidade computacional melhora o desempenho geral, mas o dimensionamento não é linear.

Esse não é o caso quando você começa a adotar um modelo de consumo sob demanda na AWS usando Amazon Auto EC2 Scaling e Micro Focus Enterprise Servers. As seções a seguir explicam detalhadamente como criar uma arquitetura de aplicativo de mainframe totalmente automatizada e escalável usando o cluster de desempenho e disponibilidade (PAC) do Micro Focus Enterprise Server Scale-Out com um grupo Amazon Auto Scaling. EC2  

**Arquitetura de escalabilidade automática do Micro Focus Enterprise Server**

Primeiro, é importante entender os conceitos básicos do Micro Focus Enterprise Server. Esse ambiente fornece um ambiente de implantação x86 compatível com mainframe para aplicativos que tradicionalmente são executados no mainframe IBM. Ele oferece execuções on-line e em lote e um ambiente de transações que oferece suporte ao seguinte:
+ IBM COBOL
+ IBM PL/I
+ Trabalhos em lote do IBM JCL
+ Transações IBM CICS e IMS TM
+ Serviços da web
+ Utilitários de lote comuns, incluindo SORT

O Micro Focus Enterprise Server permite que os aplicativos de mainframe sejam executados com o mínimo de alterações. Os workloads de mainframe existentes podem ser transferidos para plataformas x86 e modernizadas para aproveitar as extensões nativas de nuvem da AWS Cloud para uma rápida expansão para novos mercados ou regiões. 

O padrão de orientação prescritiva da AWS [Modernização do mainframe: na DevOps AWS com a Micro Focus](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) introduziu a arquitetura para acelerar o desenvolvimento e o teste de aplicativos de mainframe na AWS usando o Micro Focus Enterprise Developer e o Enterprise Test Server com AWS e AWS. CodePipeline CodeBuild Esse padrão se concentra na implantação de aplicativos de mainframe no ambiente de produção da AWS para alcançar alta disponibilidade e resiliência.

Em um ambiente de produção de mainframe, você pode ter configurado o IBM Parallel Sysplex no mainframe para obter alto desempenho e alta disponibilidade. Para criar uma arquitetura escalável semelhante à Sysplex, a Micro Focus introduziu o Cluster de Desempenho e Disponibilidade (PAC) no Enterprise Server. PACs oferecem suporte à implantação de aplicativos de mainframe em várias regiões do Enterprise Server gerenciadas como uma única imagem e escalonadas em instâncias da Amazon EC2 . PACs também oferecem suporte ao desempenho previsível do aplicativo e à taxa de transferência do sistema sob demanda. 

Em um PAC, várias instâncias do Enterprise Server trabalham juntas como uma única entidade lógica. A falha de uma instância do Enterprise Server, portanto, não interromperá a continuidade dos negócios porque a capacidade é compartilhada com outras regiões, enquanto novas instâncias são iniciadas automaticamente usando a funcionalidade padrão do setor, como um grupo Amazon Auto EC2 Scaling. Isso remove pontos únicos de falha, melhorando a resiliência a problemas de hardware, rede e aplicativos. As instâncias escaláveis do Enterprise Server podem ser operadas e gerenciadas usando a Enterprise Server Common Web Administration (ESCWA) APIs, simplificando a manutenção operacional e a capacidade de manutenção dos servidores corporativos. 

**nota**  
A Micro Focus recomenda que o [Cluster de performance e disponibilidade (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) consista em pelo menos três regiões do Enterprise Server para que a disponibilidade não seja comprometida caso uma região do Enterprise Server falhe ou exija manutenção.

A configuração do PAC requer um serviço de gerenciamento de banco de dados relacional (RDBMS - relational database management service) compatível para gerenciar o banco de dados regional, um banco de dados entre regiões e bancos de dados opcionais de armazenamento de dados. Um banco de dados de armazenamento de dados deve ser usado para gerenciar arquivos do Método de Acesso ao Armazenamento Virtual (VSAM - Virtual Storage Access Method) usando o suporte do Micro Focus Database File Handler para melhorar a disponibilidade e a escalabilidade. RDBMSs Os compatíveis incluem o seguinte:
+ Microsoft SQL Server 2009 R2 ou superior
+ PostgreSQL 10.x, incluindo o Amazon Aurora Edição Compatível com PostgreSQL
+ DB2 10.4 e versões posteriores

Para obter detalhes sobre os requisitos de RDBMS e PAC suportados, consulte [Micro Focus Enterprise Server – Pré-requisitos](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) e [Micro Focus Enterprise Server – Configuração de PAC recomendada](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html).

O diagrama a seguir mostra uma configuração típica da arquitetura da AWS para uma PAC do Micro Focus. 

![\[Uma arquitetura de três zonas de disponibilidade com cinco etapas descritas em uma tabela após o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **Componente** | **Descrição** | 
| --- |--- |--- |
| 1 | Grupo de escalabilidade automática de instâncias do Enterprise Server | Configure um grupo de escalabilidade automática implantado com instâncias do Enterprise Server em um PAC. O número de instâncias pode ser ampliado ou iniciado pelos CloudWatch alarmes da Amazon usando CloudWatch métricas. | 
| 2 | Grupo de escalabilidade automática de instâncias ESCWA do Enterprise Server  | Configure um grupo de escalabilidade automática implantado com o Enterprise Server Common Web Administration (ESCWA). A ESCWA fornece gerenciamento APIs de clusters.   Os servidores ESCWA atuam como um ambiente de gerenciamento para adicionar ou remover servidores corporativos e iniciar ou interromper regiões do servidor corporativo no PAC durante os eventos de escalabilidade automática da instância do servidor corporativo.   Como a instância ESCWA é usada somente para o gerenciamento do PAC, seu padrão de tráfego é previsível e o requisito de capacidade desejado de escalabilidade automática pode ser definido como 1.  | 
| 3 | Instância do Amazon Aurora em uma configuração multi-AZ | Configure um sistema de gerenciamento de banco de dados relacional (RDBMS) para hospedar arquivos de dados do usuário e do sistema a serem compartilhados entre as instâncias do Enterprise Server. | 
| 4 | Instância e réplica da Amazon ElastiCache (Redis OSS) | Configure uma instância primária ElastiCache (Redis OSS) e pelo menos uma réplica para hospedar dados do usuário e atuar como um repositório de expansão (SOR) para as instâncias do Enterprise Server. Você pode configurar um ou mais [repositórios de expansão horizontal](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) para armazenar tipos específicos de dados do usuário.   O Enterprise Server usa um banco de dados Redis NoSQL como SOR, [um requisito para manter a integridade do PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html). | 
| 5 | Network Load Balancer | Configure um balanceador de carga, fornecendo um nome de host para que os aplicativos se conectem aos serviços fornecidos pelas instâncias do Enterprise Server (por exemplo, acessando o aplicativo por meio de um emulador 3270). | 

Esses componentes formam o requisito mínimo para um cluster PAC do Micro Focus Enterprise Server. A próxima seção aborda a automação do gerenciamento de clusters.

**Usando o AWS Systems Manager Automation para escalabilidade**

Depois que o cluster PAC é implantado na AWS, o PAC é gerenciado por meio da Enterprise Server Common Web Administration (ESCWA). APIs 

Para automatizar as tarefas de gerenciamento de clusters durante eventos de escalabilidade automática, você pode usar os runbooks do Systems Manager Automation e o Amazon Auto EC2 Scaling com a Amazon. EventBridge A arquitetura dessas automações é mostrada no diagrama a seguir.

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


 


| 
| 
|  | **Componente** | **Descrição** | 
| --- |--- |--- |
| 1 | Gancho do ciclo de vida de escalabilidade automática | Configure ganchos de ciclo de vida de escalabilidade automática e envie notificações para a Amazon EventBridge quando novas instâncias forem lançadas e instâncias existentes forem encerradas no grupo de escalabilidade automática. | 
| 2 | Amazon EventBridge | Configure uma EventBridge regra da Amazon para rotear eventos de escalabilidade automática para destinos do runbook do Systems Manager Automation. | 
| 3 | Runbooks do Automation | Configure os runbooks do Systems Manager Automation para executar PowerShell scripts do Windows e invocar o ESCWA APIs para gerenciar o PAC. Para obter exemplos, consulte a seção * Informações adicionais*. | 
| 4 | Instância ESCWA do Enterprise Server em um grupo de escalabilidade automática | Configure uma instância ESCWA do Enterprise Server em um grupo de escalabilidade automática. A instância ESCWA fornece APIs o gerenciamento do PAC.  | 

## Ferramentas
<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): o Micro Focus Enterprise Server fornece o ambiente de execução para aplicativos criados com qualquer variante de ambiente de desenvolvimento integrado (IDE) do Enterprise Developer.
+ [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) — O Amazon EC2 Auto Scaling ajuda você a garantir que você tenha o número correto de instâncias da EC2 Amazon disponíveis para lidar com a carga do seu aplicativo. Você cria coleções de EC2 instâncias, chamadas grupos de Auto Scaling, e especifica os números mínimo e máximo de instâncias.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html) — A Amazon ElastiCache é um serviço web para configurar, gerenciar e escalar um armazenamento de dados distribuído na memória ou ambiente de cache na nuvem. Ele fornece uma solução de armazenamento em cache econômica, de alta performance e escalável.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html): o Amazon Relational Database Service (Amazon RDS) é um serviço Web que facilita a configuração, a operação e escalabilidade de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional e gerencia tarefas comuns de administração de banco de dados. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html): o AWS Systems Manager é um serviço da AWS que você pode usar para visualizar e controlar sua infraestrutura na AWS. Usando o console do Systems Manager, você pode visualizar dados operacionais de vários serviços da AWS e automatizar tarefas operacionais nos recursos da AWS. O Systems Manager ajuda você a manter a segurança e a conformidade verificando suas instâncias gerenciadas e gerando relatórios (ou tomando medidas corretivas) sobre quaisquer violações de políticas detectadas.

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

### Criar uma instância do Amazon Aurora
<a name="create-an-amazon-aurora-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo da AWS para uma instância do Amazon Aurora. | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html) para criar um CloudFormation modelo que criará uma instância de edição compatível com o Amazon Aurora PostgreSQL. | Arquiteto de nuvem | 
| Implante uma CloudFormation pilha para criar a instância do Amazon Aurora. | Use o CloudFormation modelo para criar uma instância compatível com o Aurora PostgreSQL que tenha a replicação Multi-AZ habilitada para cargas de trabalho de produção. | Arquiteto de nuvem | 
| Defina as configurações de conexão do banco de dados para o Enterprise Server. | Siga as instruções na [documentação da Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html) para preparar as strings de conexão e a configuração do banco de dados para o Micro Focus Enterprise Server. | Engenheiro de dados, DevOps engenheiro | 

### Crie um ElastiCache cluster da Amazon para a instância do Redis
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo para o ElastiCache cluster da Amazon para a instância do Redis. | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html) para criar um CloudFormation modelo que criará um ElastiCache cluster da Amazon para a instância do Redis. | Arquiteto de nuvem | 
| Implante a CloudFormation pilha para criar um ElastiCache cluster da Amazon para a instância do Redis. | Crie o ElastiCache cluster da Amazon para a instância do Redis que tenha a replicação Multi-AZ habilitada para cargas de trabalho de produção. | Arquiteto de nuvem | 
| Defina as configurações de conexão PSOR do Enterprise Server. | Siga as instruções na [documentação da Micro Focus](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) para preparar a configuração de conexão do Repositório escalável do PAC (PSOR - PAC Scale-Out Repository) para o Micro Focus Enterprise Server PAC. | DevOps engenheiro | 

### Crie um grupo de escalabilidade automática ESCWA do Micro Focus Enterprise Server
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma AMI do Micro Focus Enterprise Server. | Crie uma instância EC2 do Amazon Windows Server e instale o binário do Micro Focus Enterprise Server na EC2 instância. Crie uma Amazon Machine Image (AMI) da EC2 instância. Para ter mais informações, consulte a [documentação do Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Arquiteto de nuvem | 
| Crie um CloudFormation modelo para o Enterprise Server ESCWA.  | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) para criar um modelo para criar uma pilha personalizada do Enterprise Server ESCWA em um grupo de escalabilidade automática. | Arquiteto de nuvem | 
| Implante a CloudFormation pilha para criar um grupo de EC2 escalabilidade da Amazon para o Enterprise Server ESCWA. | Use o CloudFormation modelo para implantar o grupo de escalabilidade automática com a AMI ESCWA do Micro Focus Enterprise Server criada na história anterior. | Arquiteto de nuvem | 

### Crie um runbook do AWS Systems Manager Automation.
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo para um runbook do Systems Manager Automation. | Use os trechos de código de exemplo na seção *Informações adicionais* para criar um CloudFormation modelo que criará um runbook do Systems Manager Automation para automatizar a criação de PAC, a expansão do Enterprise Server e a expansão horizontal do Enterprise Server. | Arquiteto de nuvem | 
| Implante a CloudFormation pilha que contém o runbook do Systems Manager Automation. | Use o CloudFormation modelo para implantar uma pilha que contém o runbook de automação para criação de PAC, expansão do Enterprise Server e expansão horizontal do Enterprise Server. | Arquiteto de nuvem | 

### Crie um grupo de escalabilidade automática para o Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CloudFormation modelo para configurar um grupo de escalabilidade automática para o Micro Focus Enterprise Server. | Use o [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html) para criar um CloudFormation modelo que criará um grupo de escalabilidade automática. Esse modelo reutilizará a mesma AMI que foi criada para a instância ESCWA do Micro Focus Enterprise Server. Em seguida, use um [trecho de código de exemplo da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html) para criar o evento de ciclo de vida de escalabilidade automática e configurar EventBridge a Amazon para filtrar eventos de expansão e expansão no mesmo modelo. CloudFormation  | Arquiteto de nuvem | 
| Implante a CloudFormation pilha para o grupo de escalabilidade automática para servidores corporativos da Micro Focus. | Implante a CloudFormation pilha que contém o grupo de escalabilidade automática para servidores corporativos da Micro Focus. | Arquiteto de nuvem | 

## Recursos relacionados
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Cluster de desempenho e disponibilidade (PAC) de Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Ganchos do ciclo de vida do Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Executando automações com gatilhos usando EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

## Mais informações
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-additional"></a>

Os cenários a seguir devem ser automatizados para aumentar ou reduzir a escala dos clusters PAC.

**Automação para iniciar ou recriar um PAC**

No início de um cluster de PAC, o Enterprise Server exige que o ESCWA seja invocado APIs para criar uma configuração de PAC. Isso inicia e adiciona regiões do Enterprise Server ao PAC. Para criar ou recriar um PAC, siga as etapas a seguir: 

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

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

1. Crie um PAC com um determinado nome e anexe o PSOR a ele.

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

1. Configure o banco de dados da região e o banco de dados entre regiões se for a primeira vez que você estiver configurando uma PAC.
**nota**  
Essa etapa usa consultas SQL e a ferramenta da linha de comando **dbhfhadmin** do Micro Focus Enterprise Suite para criar o banco de dados e importar os dados iniciais.

1. Instale a definição do PAC nas regiões do Enterprise Server.

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

1. Inicie as regiões do Enterprise Server no PAC.

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

As etapas anteriores podem ser implementadas usando um PowerShell script do Windows. 

As etapas a seguir explicam como criar uma automação para criar uma PAC reutilizando o script do Windows PowerShell .

1. Crie um modelo de EC2 lançamento da Amazon que baixe ou crie o PowerShell script do Windows como parte do processo de bootstrap. Por exemplo, você pode usar dados EC2 do usuário para baixar o script de um bucket do Amazon Simple Storage Service (Amazon S3).

1. Crie um runbook do AWS Systems Manager Automation para invocar o script do Windows PowerShell .

1. Associe o runbook à instância ESCWA usando a tag de instância.

1. Criar um grupo de escalabilidade automática ESCWA usando um modelo de execução. 

Você pode usar o seguinte exemplo de CloudFormation trecho da AWS para criar o runbook de automação.

*Exemplo de CloudFormation trecho de um runbook do Systems Manager Automation usado para criação de PAC*

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

Para obter mais informações, consulte [Micro Focus Enterprise Server – Configurando um PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

**Automação para expansão horizontal com uma nova instância do Enterprise Server**

Quando uma instância do Enterprise Server é expandida, sua região do Enterprise Server deve ser adicionada ao PAC. As etapas a seguir explicam como invocar a ESCWA APIs e adicionar a região do Enterprise Server à PAC. 

1. Instale a definição do PAC nas regiões do Enterprise Server.

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

1. Inicie a região em modo de inicialização rápida no PAC.

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

1. Adicione a instância do Enterprise Server ao balanceador de carga associando o grupo de escalabilidade automática ao balanceador de carga.

As etapas anteriores podem ser implementadas usando um PowerShell script do Windows. Para obter mais informações, consulte [Micro Focus Enterprise Server – Configurando um PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

As etapas a seguir podem ser usadas para criar uma automação orientada por eventos para adicionar uma instância recém-lançada do Enterprise Server a uma PAC reutilizando o script do Windows PowerShell . 

1. Crie um modelo de EC2 lançamento da Amazon para a instância do Enterprise Server que provisione uma região do servidor corporativo durante sua inicialização. Por exemplo, você pode usar o comando mfds do Micro Focus Enterprise Server para importar uma configuração de região. Para obter mais detalhes e opções disponíveis para esse comando, consulte a [Referência do Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html).

1. Crie um grupo de escalabilidade automática do Enterprise Server que use o modelo de execução criado na etapa anterior.

1. Crie um runbook do Systems Manager Automation para invocar o script do Windows PowerShell . 

1. Associe o runbook à instância ESCWA usando a tag de instância.

1. Crie uma EventBridge regra da Amazon para filtrar o evento EC2 Instance Launch Successful para o grupo de escalabilidade automática do Enterprise Server e crie o destino para usar o runbook de automação.

Você pode usar o seguinte exemplo de CloudFormation trecho para criar o runbook de automação e a regra. EventBridge 

*Exemplo de CloudFormation trecho do Systems Manager usado para escalar instâncias do 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"
```

**Automação para reduzir a escala horizontalmente em uma instância do Enterprise Server**

Semelhante à escalabilidade horizontal, quando uma instância do Enterprise Server é *ampliada*, o evento EC2 Instance-terminate Lifecycle Action é iniciado e os seguintes processos e chamadas de API são necessários para remover uma instância do Micro Focus Enterprise Server da PAC. 

1. Pare a região na instância de encerramento do Enterprise Server.

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

1. Remova a instância do servidor corporativo do PAC.

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

1. Envie um sinal para continuar encerrando a instância do Enterprise Server.

As etapas anteriores podem ser implementadas em um PowerShell script do Windows. Para obter detalhes adicionais sobre esse processo, consulte o [documento do Micro Focus Enterprise Server – Administrando uma PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

As etapas a seguir explicam como criar uma automação orientada por eventos para encerrar uma instância do Enterprise Server a partir de uma PAC reutilizando o script do Windows. PowerShell  

1. Crie um runbook do Systems Manager Automation para invocar o script do Windows PowerShell .

1. Associe o runbook à instância ESCWA usando a tag de instância.

1. Crie um gancho automático do ciclo de vida do grupo de escalabilidade, por EC2 exemplo, encerramento.

1. Crie uma EventBridge regra da Amazon para filtrar o evento EC2 Instance-terminate Lifecycle Action para o grupo de escalabilidade automática do Enterprise Server e crie o destino para usar o runbook de automação. 

Você pode usar o CloudFormation modelo de exemplo a seguir para criar um runbook, um gancho de ciclo de vida e uma regra do Systems Manager Automation. EventBridge 

*Exemplo de CloudFormation trecho de um runbook do Systems Manager Automation usado para escalar em uma instância do 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
```

**Automação para um gatilho de escalabilidade EC2 automática da Amazon**

O processo de configuração de uma política de escalabilidade para instâncias do Enterprise Server requer uma compreensão do comportamento do aplicativo. Na maioria dos casos, você pode configurar políticas de escalabilidade de rastreamento de destino. Por exemplo, você pode usar a média de utilização da CPU como CloudWatch métrica da Amazon para definir a política de escalabilidade automática. Para obter mais informações, consulte [Políticas de escalabilidade de rastreamento de metas para o Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Para aplicativos que têm padrões de tráfego regulares, considere usar uma política de escalabilidade preditiva. Para obter mais informações, consulte Escalabilidade [preditiva para Amazon Auto EC2 Scaling.](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html) 

# Crie um visualizador avançado de arquivos de mainframe na Nuvem AWS
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

*Boopathy Gopalsamy e Jeremiah O’Connor, Amazon Web Services*

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

Esse padrão fornece exemplos de código e etapas para ajudá-lo a criar uma ferramenta avançada para navegar e revisar seus arquivos de formato fixo de mainframe usando os serviços de tecnologia sem servidor da AWS. O padrão fornece um exemplo de como converter um arquivo de entrada de mainframe em um documento do Amazon OpenSearch Service para navegação e pesquisa. A ferramenta de visualização de arquivos pode ajudá-lo a conseguir o seguinte:
+ Reter a mesma estrutura e layout de arquivos de mainframe para obter consistência em seu ambiente de migração de destino da AWS (por exemplo, você pode manter o mesmo layout para arquivos em um aplicativo em lote que transmite arquivos para terceiros)
+ Acelerar o desenvolvimento e os testes durante a migração do mainframe
+ Apoiar as atividades de manutenção após a migração

## Pré-requisitos e limitações
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma nuvem privada virtual (VPC) com uma sub-rede acessível por sua plataforma legada
+ 
**nota**  
Um arquivo de entrada e seu caderno correspondente de linguagem orientada a negócios (COBOL) (: Para obter exemplos de arquivos de entrada e cadernos COBOL, consulte no repositório. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub Para obter mais informações sobre os copybooks do COBOL, consulte o Guia de Programação do [Enterprise COBOL for z/OS 6.3](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf) no site da IBM.)

**Limitações**
+ A análise do copybook é limitada a não mais do que dois níveis aninhados (OCCURS)

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

**Pilha de tecnologia de origem**
+ Arquivos de entrada no formato [FB (Fixed Blocked)](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats)
+ Layout de cadernos em COBOL

**Pilha de tecnologias de destino**
+ Amazon Athena
+  OpenSearch Serviço Amazon
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Lambda
+ AWS Step Functions

**Arquitetura de destino**

O diagrama a seguir mostra o processo de análise e conversão de um arquivo de entrada de mainframe em um documento de OpenSearch serviço para navegação e pesquisa.

![\[Processo para analisar e converter o arquivo de entrada do mainframe em Serviço. OpenSearch\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um usuário administrador ou aplicativo envia os arquivos de entrada para um bucket do S3 e os copybooks do COBOL para outro bucket do S3.

1. 
**nota**  
O bucket do S3 com os arquivos de entrada invoca uma função do Lambda que inicia um fluxo de trabalho de Step Functions de tecnologia sem servidor. : O uso de um acionador de evento do S3 e de uma função do Lambda para conduzir o fluxo de trabalho do Step Functions neste padrão é opcional. Os exemplos de GitHub código nesse padrão não incluem o uso desses serviços, mas você pode usá-los com base em seus requisitos.

1. O fluxo de trabalho do Step Functions coordena todos os processos em lote das seguintes funções do Lambda:
   + A função `s3copybookparser.py` analisa o layout do caderno e extrai atributos de campo, tipos de dados e deslocamentos (necessários para o processamento de dados de entrada).
   + A função `s3toathena.py` cria um layout de tabela do Athena. O Athena analisa os dados de entrada que são processados pela função `s3toathena.py` e os converte em um arquivo CSV.
   + A `s3toelasticsearch.py` função ingere o arquivo de resultados do bucket do S3 e envia o arquivo para o Service. OpenSearch 

1. Os usuários acessam os OpenSearch painéis com o OpenSearch Service para recuperar os dados em vários formatos de tabela e coluna e, em seguida, executar consultas nos dados indexados.

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

**Serviços da AWS**
+ O [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) é um serviço de consultas interativas que ajuda na análise de dados diretamente no Amazon Simple Storage Service (Amazon S3) usando SQL padrão.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda você a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado. Nesse padrão, você usa o Lambda para implementar a lógica central, como analisar arquivos, converter dados e carregar dados no OpenSearch Service para acesso interativo a arquivos.
+ O [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) é um serviço gerenciado que ajuda você a implantar, operar e escalar clusters de OpenSearch serviços na nuvem da AWS. Nesse padrão, você usa o OpenSearch Service para indexar os arquivos convertidos e fornecer recursos de pesquisa interativa para os usuários.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ A ‭[AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)‭ é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ O [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) é um serviço de orquestração de tecnologia sem servidor que permite combinar funções do Lambda e outros serviços da AWS para criar aplicações essenciais aos negócios. Nesse padrão, você usa o Step Functions para orquestrar funções do Lambda.

**Outras ferramentas**
+ [GitHub](https://github.com/)é um serviço de hospedagem de código que fornece ferramentas de colaboração e controle de versão.
+ O [Python](https://www.python.org/) é uma linguagem de programação de alto nível.

**Código **

O código desse padrão está disponível no GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositório.

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

### Preparar o ambiente de destino
<a name="prepare-the-target-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o bucket do S3. | [Crie um bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) para armazenar os cadernos, arquivos de entrada e arquivos de saída. Recomendamos a seguinte estrutura de pastas para seu bucket do S3:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie a função s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie a função s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie a função s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie o cluster OpenSearch de serviços. | **Criar um cluster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Conceder acesso ao perfil do IAM**Para fornecer acesso refinado ao perfil do IAM (`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`) da função Lambda, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| Crie Step Functions para orquestração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 

### Implemente e execute
<a name="deploy-and-run"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Carregue os arquivos de entrada e os cadernos para seu bucket do S3. | Faça o download dos arquivos de amostra da pasta de amostra do [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)repositório e faça o upload dos arquivos para o bucket do S3 que você criou anteriormente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 
| chame o Step Functions.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)<pre>{<br />  "s3_copybook_bucket_name": "<BUCKET NAME>",<br />  "s3_copybook_bucket_key": "<COPYBOOK PATH>",<br />  "s3_source_bucket_name": "<BUCKET NAME",<br />  "s3_source_bucket_key": "INPUT FILE PATH"<br />}</pre>Por exemplo:<pre>{<br />  "s3_copybook_bucket_name": "fileaidtest",<br />  "s3_copybook_bucket_key": "copybook/acctix.cpy",<br />  "s3_source_bucket_name": "fileaidtest",<br />  "s3_source_bucket_key": "input/acctindex"<br />}</pre> | AWS geral | 
| Valide a execução do fluxo de trabalho em Step Functions. | No [console Step Functions](https://console.aws.amazon.com/states/home), revise a execução do fluxo de trabalho no **inspetor gráfico**. Os estados de execução são codificados por cores para representar o status da execução. Por exemplo, azul indica **Em andamento**, verde indica **Sucesso** e vermelho indica **Falha**. Você também pode revisar a tabela na seção **Histórico de eventos de execução** para obter informações mais detalhadas sobre os eventos de execução.Para obter um exemplo de execução gráfica do fluxo de trabalho, consulte o *gráfico Step Functions* na seção *Informações adicionais* desse padrão. | AWS geral | 
| Valide os registros de entrega na Amazon CloudWatch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Para ver um exemplo de registros de entrega bem-sucedidos, consulte *os registros de CloudWatch entrega* na seção *Informações adicionais* desse padrão. | AWS geral | 
| Valide o arquivo formatado nos OpenSearch painéis e execute operações de arquivo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | AWS geral | 

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

**Referências**
+ [Exemplo de copybook COBOL](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) (documentação da IBM)
+ [BMC Compuware File-AID](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html) (documentação da BMC)

**Tutoriais**
+ [Tutorial: Uso de um acionador do Amazon S3 para invocar uma função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentação do AWS Lambda)
+ [Como faço para criar um fluxo de trabalho de tecnologia sem servidor com o AWS Step Functions e o AWS Lambda](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/) (documentação da AWS)
+ [Usando OpenSearch painéis com o Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (documentação da AWS)

## Mais informações
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Gráfico de Step Functions**

O exemplo a seguir mostra um gráfico do Step Functions. O gráfico mostra o status da execução das funções do Lambda usadas nesse padrão.

![\[O gráfico do Step Functions exibe o status de execução das funções do Lambda usadas neste padrão.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch registros de entrega**

O exemplo a seguir mostra registros de entrega bem-sucedidos para a execução da execução `s3toelasticsearch`.


| 
| 
| 2022-08-10T15:53:33.033-05:00 | Número de documentos de processamento: 100 |  | 
| --- |--- |--- |
|  | 2022-08-10T15:53:33.171-05:00 | [INFO] 2022-08-10T 20:53:33,171 Z a1b2c3d4-5678-90ab-cdef- POST:443/\$1bulk [status: 200 solicitação: 0,100s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 2022-08-10T15:53:33.172-05:00 | Gravação em massa bem-sucedida: 100 documentos | 

# Containerize workloads de mainframe que foram modernizadas pela Blu Age
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

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

Esse padrão fornece um ambiente de contêiner de exemplo para executar workloads de mainframe que foram modernizadas com o uso da ferramenta [Blu Age](https://www.bluage.com/). O Blu Age converte workloads antigas de mainframe em código Java moderno. Esse padrão fornece um encapsulamento ao redor da aplicação Java para que você possa executá-la usando os serviços de orquestração de contêiner, como [Amazon Elastic Container Service (Amazon ECS) ou [Amazon Elastic Kubernetes](https://aws.amazon.com/eks/) Service (Amazon EKS)](https://aws.amazon.com/ecs/).

Para obter mais informações sobre a modernização de suas workloads usando o Blu Age e os serviços da AWS, consulte estas publicações de Recomendações da AWS:
+ [Executar workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implemente um ambiente para aplicativos Blu Age em contêineres usando o Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)

Para obter ajuda com o uso do Blu Age para modernizar suas workloads de mainframe, entre em contato com a equipe da Blu Age selecionando **Entrar em contato com nossos especialistas** no [site da Blu Age](https://www.bluage.com/). Para obter ajuda para migrar suas workloads modernizadas para a AWS, integrá-las aos serviços da AWS e colocá-las em produção, entre em contato com seu gerente de contas da AWS ou preencha o [formulário AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Pré-requisitos e limitações
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Pré-requisitos **
+ Um aplicativo Java modernizado que foi criado pela Blu Age. Para fins de teste, esse padrão fornece um exemplo de aplicativo Java que você poderá usar como prova de conceito.
+ Um ambiente [Docker](https://aws.amazon.com/docker/) que você poderá usar para criar o contêiner.

**Limitações**

Dependendo da plataforma de orquestração de contêineres que você usa, os recursos que podem ser disponibilizados para o contêiner (como CPU, RAM e armazenamento) podem ser limitados. Por exemplo, se você estiver usando o Amazon ECS com o AWS Fargate, consulte a [documentação do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) para ver os limites e considerações.

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

**Pilha de tecnologia de origem**
+ Blu Age
+ Java

**Pilha de tecnologias de destino**
+ Docker

**Arquitetura de destino**

O diagrama a seguir mostra a arquitetura de uma aplicação em Blu Age dentro de um contêiner do Docker.

![\[Aplicativo Blu Age no contêiner do Docker\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. O ponto de entrada para o contêiner é o script do encapsulamento. Esse script bash é responsável por preparar o ambiente de runtime para o aplicativo Blu Age e processar as saídas.

1. As variáveis de ambiente no contêiner são usadas para configurar variáveis no script do encapsulamento, como os nomes de bucket do Amazon Simple Storage Service (Amazon S3) e as credenciais do banco de dados. As variáveis de ambiente são fornecidas pelo AWS Secrets Manager ou pelo Parameter Store, um recurso do AWS Systems Manager. Se você estiver usando o Amazon ECS como seu serviço de orquestração de contêineres, você também poderá codificar as variáveis de ambiente na definição de tarefas do Amazon ECS.

1. O script wrapper é responsável por puxar todos os arquivos de entrada do bucket do S3 para o contêiner antes de você executar o aplicativo Blu Age. A AWS Command Line Interface (AWS CLI) foi instalada no contêiner. Isso fornece um mecanismo para acessar objetos que são armazenados no Amazon S3 por meio do endpoint de nuvem privada virtual (VPC) do gateway.

1. O arquivo Java Archive (JAR) do aplicativo Blu Age poderá precisar se comunicar com outras fontes de dados, como o Amazon Aurora.

1. Após a conclusão, o script do wrapper entrega os arquivos de saída resultantes em um bucket do S3 para processamento adicional (por exemplo, pelos serviços de CloudWatch registro da Amazon). O padrão também suporta a entrega de arquivos de log compactados para o Amazon S3, se você estiver usando uma alternativa ao CloudWatch registro padrão.

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

**Serviços da AWS**
+ O [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
+ O [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) é um serviço de gerenciamento de contêineres escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.

**Ferramentas**
+ O [Docker](https://aws.amazon.com/docker/) é uma plataforma de software para criar, testar e implantar aplicativos. O Docker empacota o software em unidades padronizadas chamadas [contêineres](https://aws.amazon.com/containers/), que têm tudo o que o software precisa para ser executado, incluindo bibliotecas, ferramentas do sistema, código e runtime. Você poderá usar o Docker para implantar e dimensionar aplicações em qualquer ambiente.
+ O [Bash](https://www.gnu.org/software/bash/manual/) é uma interface de linguagem de comando (shell) para o sistema operacional GNU.
+ [Java](https://www.java.com/) é a linguagem de programação e o ambiente de desenvolvimento usados nesse padrão.
+ O [Blu Age](https://www.bluage.com/) é uma ferramenta de AWS Mainframe Modernization que converte workloads antigas de mainframe, incluindo código de aplicativo, dependências e infraestrutura, em workloads modernas para a nuvem.

**Repositório de código**

O código desse padrão está disponível no [repositório de contêineres de amostras do GitHub Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container).

## Práticas recomendadas
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Externalize as variáveis para alterar o comportamento do seu aplicativo usando variáveis de ambiente. Essas variáveis permitem que a solução de orquestração de contêineres altere o ambiente de runtime sem reconstruir o contêiner. Esse padrão inclui exemplos de variáveis de ambiente que podem ser úteis para aplicativos Blu Age.
+ Valide todas as dependências do aplicativo antes de executar seu aplicativo Blu Age. Por exemplo, verifique se o banco de dados está disponível e se as credenciais são válidas. Escreva testes no script de encapsulamento para verificar as dependências e que apresente falhas com antecedência, caso não sejam atendidas.
+ Use o login detalhado no script do encapsulamento. Interagir diretamente com um contêiner em execução poderá ser um desafio, dependendo da plataforma de orquestração e da duração do trabalho. Certifique-se de que uma saída útil seja gravada em `STDOUT` para ajudar a diagnosticar quaisquer problemas. Por exemplo, a saída poderá incluir o conteúdo do diretório de trabalho do aplicativo antes e depois da execução do aplicativo.

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

### Obtenha um arquivo JAR do aplicativo Blu Age
<a name="obtain-a-blu-age-application-jar-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Opção 1: trabalhe com o Blu Age para obter o arquivo JAR de seu aplicativo. | O contêiner nesse padrão requer um aplicativo Blu Age. Como alternativa, você poderá usar o aplicativo Java de exemplo fornecido com esse padrão para um protótipo.Trabalhe com a equipe do Blu Age para obter um arquivo JAR para seu aplicativo que possa ser incorporado ao contêiner. Se o arquivo JAR não estiver disponível, consulte a próxima tarefa para usar o aplicativo de exemplo em vez disso. | Arquiteto de nuvem | 
| Opção 2: crie ou use o arquivo JAR do aplicativo de exemplo fornecido. | Esse padrão fornece um arquivo JAR de exemplo pré-construído. Esse arquivo envia as variáveis de ambiente do aplicativo para `STDOUT` antes de entrar em repouso por 30 segundos e sair.Esse arquivo tem um nome `bluAgeSample.jar` e está localizado na [pasta docker do GitHub repositório](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker).Se você quiser alterar o código e criar sua própria versão do arquivo JAR, use o código-fonte localizado em[. /java\$1 sample/src/sample \$1java\$1app.java no repositório](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src). GitHub Você poderá usar o script de construção em [./java\$1sample/build.sh](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample) para compilar o código-fonte Java e criar um novo arquivo JAR. | Desenvolvedor de aplicativos | 

### Construa o contêiner Blu Age
<a name="build-the-blu-age-container"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o GitHub repositório. | Clone o repositório de códigos de exemplo usando o comando:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Use o Docker para criar o contêiner. | Use o Docker para criar o contêiner antes de enviá-lo para um registro do Docker, como o Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Teste o contêiner Blu Age. | (Opcional) Se necessário, teste o contêiner localmente usando o comando:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Autentique-se no seu repositório Docker. | Se você planeja usar o Amazon ECR, siga as instruções na [documentação do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) para instalar e configurar a AWS CLI e autenticar o CLI do Docker em seu registro padrão.Recomendamos que você use o [get-login-password comando](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html) para autenticação.  No [console do Amazon ECR](https://console.aws.amazon.com/ecr/), você encontra uma versão preenchida previamente deste comando ao clicar no botão **Visualizar comandos push**. Para obter mais informações, consulte a [documentação do 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 você não planeja usar o Amazon ECR, siga as instruções fornecidas para seu sistema de registro de contêineres. | AWS DevOps | 
| Crie um repositório de contêineres. | Crie um repositório do Amazon ECR. Para obter instruções, consulte o padrão [Implemente um ambiente para aplicativos Blu Age em contêineres usando o Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html).Se você estiver usando outro sistema de registro de contêiner, siga as instruções fornecidas para esse sistema. | AWS DevOps | 
| Marque e envie seu contêiner para o repositório de destino. | Se você estiver usando o Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Para obter mais informações, consulte [Envio de uma imagem do Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) no *Guia do usuário do Amazon ECR*. | AWS DevOps | 

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

**Recursos da AWS**
+ [Repositório de contêineres de exemplo do AWS Blu Age](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Executar workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Implemente um ambiente para aplicativos Blu Age em contêineres usando o Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Usar o Amazon ECR com a AWS CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) *(Guia do usuário do Amazon ECR*)
+ [Autenticação de registro privado](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Guia do usuário do Amazon ECR*)
+ [Documentação do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Documentação do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Recursos adicionais**
+ [Site da Blu Age](https://www.bluage.com/)
+ [Site do Docker](https://docker.com/)

# Converta e descompacte dados EBCDIC em ASCII na AWS usando Python
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

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

Como os mainframes normalmente hospedam dados comerciais críticos, a modernização dos dados é uma das tarefas mais importantes ao migrar dados para a nuvem da Amazon Web Services (AWS) ou outro ambiente do American Standard Code for Information Interchange (ASCII). Em mainframes, os dados geralmente são codificados no formato EBCDIC (código de intercâmbio decimal codificado por código binário estendido). A exportação de banco de dados, VSAM (Virtual Storage Access Method) ou arquivos simples geralmente produz arquivos EBCDIC binários compactados, que são mais complexos de migrar. A solução de migração de banco de dados mais usada é a captura de dados de alteração (CDC), que, na maioria dos casos, converte automaticamente a codificação de dados. No entanto, os mecanismos do CDC podem não estar disponíveis para esses bancos de dados, VSAM ou arquivos simples. Para esses arquivos, é necessária uma abordagem alternativa para modernizar os dados.

Esse padrão descreve como modernizar os dados EBCDIC convertendo-os para o formato ASCII. Após a conversão, você pode carregar os dados em bancos de dados distribuídos ou fazer com que aplicativos na nuvem processem os dados diretamente. O padrão usa o script de conversão e os arquivos de amostra no [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositório.

## Pré-requisitos e limitações
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um arquivo de entrada EBCDIC e seu copybook correspondente de linguagem comum orientada a negócios (COBOL). Um arquivo EBCDIC de amostra e um caderno COBOL estão incluídos no repositório. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Para obter mais informações sobre os copybooks do COBOL, consulte o [Guia de Programação do Enterprise COBOL for z/OS 6.4](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) no site da IBM.

**Limitações**
+ Os layouts de arquivo definidos nos programas COBOL não são suportados. Eles devem ser disponibilizados separadamente.

**Versões do produto**
+ Python, versão 3.8 ou superior

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

**Pilha de tecnologia de origem**
+ Dados EBCDIC em um mainframe
+ Copybook de COBOL

**Pilha de tecnologias de destino**
+ Instância do Amazon Elastic Compute Cloud (Amazon EC2) em uma nuvem privada virtual (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python e seus pacotes necessários, JavaScript Object Notation (JSON), sys e datetime
+ Arquivo plano ASCII pronto para ser lido por um aplicativo moderno ou carregado em uma tabela de banco de dados relacional

**Arquitetura de destino**

![\[Dados EBCDIC convertidos em ASCII em uma instância EC2 usando scripts Python e um caderno COBOL\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


O diagrama de arquitetura mostra o processo de conversão de um arquivo EBCDIC em um arquivo ASCII em uma instância: EC2 

1. Usando o script **parse\$1copybook\$1to\$1json.py**, você converte o copybook de COBOL em um arquivo JSON.

1. Usando o arquivo JSON e o script **extract\$1ebcdic\$1to\$1ascii.py**, você converte os dados EBCDIC em um arquivo ASCII.

**Automação e escala**

Depois que os recursos necessários para as primeiras conversões manuais de arquivos estiverem disponíveis, você poderá automatizar a conversão de arquivos. Esse padrão não inclui instruções para automação. Há várias maneiras de automatizar a conversão. Veja abaixo uma visão geral de uma possível abordagem:

1. Encapsular os comandos do AWS Command Line Interface (AWS CLI) e os comandos de script do Python em um script de shell.

1. Crie uma função do AWS Lambda que envie de forma assíncrona o trabalho de script de shell em uma instância. EC2 Para obter mais informações, consulte [Agendamento de trabalhos de SSH usando o AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Crie um acionador do Amazon Simple Storage Service (Amazon S3) que invoque a função do Lambda toda vez que um arquivo legado for carregado. Para obter mais informações, consulte [Como usar um trigger do Amazon S3 para invocar uma função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

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

**Serviços da AWS**
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) fornece capacidade de computação escalável na Nuvem AWS. Você pode iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ [O Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias do Amazon Elastic Compute Cloud (Amazon). EC2
+ A [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ O [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.

**Outras ferramentas**
+ [GitHub](https://github.com/)é um serviço de hospedagem de código que fornece ferramentas de colaboração e controle de versão.
+ O [Python](https://www.python.org/) é uma linguagem de programação de alto nível.

**Repositório de código**

O código desse padrão está disponível no [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub repositório.

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

### Prepare a EC2 instância
<a name="prepare-the-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute uma EC2 instância. | A EC2 instância deve ter acesso externo à Internet. Isso permite que a instância acesse o código-fonte do Python disponível em. GitHub Para criar a instância:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral | 
| Instale o Git. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral, Linux | 
| Instalar o Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral, Linux | 
| Clone o GitHub repositório. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | AWS geral, GitHub | 

### Crie o arquivo ASCII a partir dos dados EBCDIC
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise o copybook de COBOL no arquivo de layout JSON. | Dentro da pasta `mainframe-data-utilities`, execute o script **parse\$1copybook\$1to\$1json.py**. Esse módulo de automação lê o layout do arquivo de um copybook de COBOL e cria um arquivo JSON. O arquivo JSON contém as informações necessárias para interpretar e extrair os dados do arquivo de origem. Isso cria os metadados JSON do copybook de COBOL. O comando a seguir converte o copybook de COBOL em um arquivo 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>O script imprime os argumentos recebidos.<pre>-----------------------------------------------------------------------<br />Copybook file...............| LegacyReference/COBPACK2.cpy<br />Parsed copybook (JSON List).| sample-data/cobpack2-list.json<br />JSON Dict (documentation)...| sample-data/cobpack2-dict.json<br />ASCII file..................| sample-data/COBPACK.ASCII.txt<br />EBCDIC file.................| sample-data/COBPACK.OUTFILE.txt<br />Print each..................| 10000<br />-----------------------------------------------------------------------</pre>Para obter mais informações sobre os argumentos, consulte o [arquivo README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) no GitHub repositório. | AWS geral, Linux | 
| Inspecione o arquivo de layout JSON. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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>Os atributos mais importantes do arquivo de layout JSON são:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Para obter mais informações sobre o arquivo de layout JSON, consulte o arquivo [README no GitHub repositório](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md). | AWS geral, JSON | 
| Criar o arquivo ASCII.  | Execute o script **extract\$1ebcdic\$1to\$1ascii.py**, que está incluído no GitHub repositório clonado. Esse script lê o arquivo EBCDIC e grava um arquivo ASCII convertido e legível.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>Conforme o script processa os dados do EBCDIC, ele imprime uma mensagem para cada lote de 10.000 registros. Veja o exemplo a seguir.<pre>------------------------------------------------------------------<br />2023-05-15 21:21:46.322253 | Local Json file   | -local-json | sample-data/cobpack2-list.json<br />2023-05-15 21:21:47.034556 | Records processed | 10000<br />2023-05-15 21:21:47.736434 | Records processed | 20000<br />2023-05-15 21:21:48.441696 | Records processed | 30000<br />2023-05-15 21:21:49.173781 | Records processed | 40000<br />2023-05-15 21:21:49.874779 | Records processed | 50000<br />2023-05-15 21:21:50.705873 | Records processed | 60000<br />2023-05-15 21:21:51.609335 | Records processed | 70000<br />2023-05-15 21:21:52.292989 | Records processed | 80000<br />2023-05-15 21:21:52.938366 | Records processed | 89280<br />2023-05-15 21:21:52.938448 Seconds 6.616232</pre>Para obter informações sobre como alterar a frequência de impressão, consulte o [arquivo README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) no GitHub repositório. | AWS geral | 
| Examinar o arquivo ASCII. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Se você usou o arquivo EBCDIC de amostra fornecido, o seguinte é o primeiro registro no arquivo ASCII.<pre>00000000: 2d30 3030 3030 3030 3030 3130 3030 3030  -000000000100000<br />00000010: 3030 307c 3030 3030 3030 3030 3031 3030  000|000000000100<br />00000020: 3030 3030 3030 7c2d 3030 3030 3030 3030  000000|-00000000<br />00000030: 3031 3030 3030 3030 3030 7c30 7c30 7c31  0100000000|0|0|1<br />00000040: 3030 3030 3030 3030 7c2d 3130 3030 3030  00000000|-100000<br />00000050: 3030 307c 3130 3030 3030 3030 307c 2d31  000|100000000|-1<br />00000060: 3030 3030 3030 3030 7c30 3030 3030 7c30  00000000|00000|0<br />00000070: 3030 3030 7c31 3030 3030 3030 3030 7c2d  0000|100000000|-<br />00000080: 3130 3030 3030 3030 307c 3030 3030 3030  100000000|000000<br />00000090: 3030 3030 3130 3030 3030 3030 307c 2d30  0000100000000|-0<br />000000a0: 3030 3030 3030 3030 3031 3030 3030 3030  0000000001000000<br />000000b0: 3030 7c41 7c41 7c0a                      00|A|A|.</pre> | AWS geral, Linux | 
| Avalie o arquivo EBCDIC. | No EC2 console da Amazon, insira o seguinte comando. Isso abre o primeiro registro do arquivo EBCDIC.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Se você usou o arquivo EBCDIC de amostra, o resultado é o seguinte.<pre> 00000000: 60f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 f0f0 `...............<br /> 00000010: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 ................<br /> 00000020: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 ................<br /> 00000030: f0f0 f0f0 f0f0 d000 0000 0005 f5e1 00fa ................<br /> 00000040: 0a1f 0000 0000 0005 f5e1 00ff ffff fffa ................<br /> 00000050: 0a1f 0000 000f 0000 0c10 0000 000f 1000 ................<br /> 00000060: 0000 0d00 0000 0000 1000 0000 0f00 0000 ................<br /> 00000070: 0000 1000 0000 0dc1 c100 0000 0000 0000 ................<br /> 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................<br /> 00000090: 0000 0000 0000 ......</pre>Para avaliar a equivalência entre os arquivos de origem e de destino, é necessário um conhecimento abrangente do EBCDIC. Por exemplo, o primeiro caractere do arquivo EBCDIC de amostra é um hífen (`-`). Na notação hexadecimal do arquivo EBCDIC, esse caractere é representado por `60`, e na notação hexadecimal do arquivo ASCII, esse caractere é representado por `2D`. Para obter uma tabela EBCDIC-to-ASCII de conversão, consulte [EBCDIC para ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) no site da IBM. | AWS geral, Linux, EBCDIC | 

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

**Referências**
+ [O conjunto de caracteres EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentação da IBM)
+ [EBCDIC para ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) (documentação da IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (documentação da IBM)
+ [Conceitos básicos de JCL](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts) (documentação da IBM)
+ [Conecte-se à sua instância Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) ( EC2 documentação da Amazon)

**Tutoriais**
+ [Agendamento de trabalhos SSH usando o AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) (publicação no blog da AWS)
+ [Uso de um acionador do Amazon S3 para invocar uma função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) (documentação do AWS Lambda)

# Converta arquivos de mainframe do formato EBCDIC para o formato ASCII delimitado por caracteres no Amazon S3 usando 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*

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

Esse padrão mostra como iniciar uma AWS Lambda função que converte automaticamente arquivos EBCDIC (Extended Binary Coded Decimal Interchange Code) do mainframe em arquivos American Standard Code for Information Interchange (ASCII) delimitados por caracteres. A função do Lambda é executada depois do upload dos arquivos ASCII em um bucket do Amazon Simple Storage Service (Amazon S3). Após a conversão do arquivo, você pode ler os arquivos ASCII em workloads baseadas em x86 ou carregar os arquivos em bancos de dados modernos.

A abordagem de conversão de arquivos demonstrada nesse padrão pode ajudar a superar os desafios de trabalhar com arquivos EBCDIC em ambientes modernos. Os arquivos codificados em EBCDIC geralmente contêm dados representados em formato binário ou decimal compactado, e os campos têm tamanho fixo. Essas características criam obstáculos, porque workloads modernas baseadas em x86 ou ambientes distribuídos geralmente funcionam com dados codificados em ASCII e não conseguem processar arquivos EBCDIC.

## Pré-requisitos e limitações
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Um bucket Amazon S3
+ Um usuário AWS Identity and Access Management (IAM) com permissões administrativas
+ AWS CloudShell
+ [Python 3.8.0](https://www.python.org/downloads/release/python-380/) ou superior
+ Um arquivo simples codificado em EBCDIC e sua estrutura de dados correspondente em um copybook de linguagem comum orientada a negócios (COBOL)

**nota**  
Este padrão usa um arquivo de amostra em EBCDIC ([CLIENT.EBCDIC.txt](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)) junto com o copybook correspondente em COBOL ([COBKS05.cpy](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy)). Ambos os arquivos estão disponíveis no GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositório.

**Limitações**
+ Os copybooks de COBOL geralmente contêm várias definições de layout. O [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)projeto pode analisar esse tipo de caderno, mas não consegue inferir qual layout considerar na conversão de dados. Isso ocorre porque os copybooks não mantêm essa lógica (que, em vez disso, permanece nos programas COBOL). Consequentemente, você deve configurar manualmente as regras para selecionar layouts depois de analisar o copybook.
+ Esse padrão está sujeito às [cotas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

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

**Pilha de tecnologia de origem**
+ IBM z/OS, IBM i e outros sistemas EBCDIC
+ Arquivos sequenciais com dados codificados em EBCDIC (como descarregamentos do IBM Db2)
+ Copybook de COBOL

**Pilha de tecnologias de destino**
+ Amazon S3
+ Notificação de eventos do Amazon S3
+ IAM
+ Função do Lambda
+ Python 3.8 ou superior
+ Utilitários de dados de mainframe
+ Metadados JSON
+ Arquivos ASCII delimitados por caracteres

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para converter arquivos EBCDIC de mainframe em arquivos ASCII.

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


O diagrama mostra o seguinte fluxo de trabalho:

1. O usuário executa o script de análise do copybook, que converte o copybook em COBOL em um arquivo JSON.

1. O usuário faz o upload dos metadados em JSON para um bucket do Amazon S3. Isso torna os metadados legíveis pela função do Lambda de conversão de dados.

1. O usuário ou um processo automatizado faz o upload do arquivo em EBCDIC para o bucket do Amazon S3.

1. O evento de notificação do Amazon S3 aciona a função do Lambda responsável pela conversão de dados.

1. AWS verifica as permissões de leitura e gravação do bucket do Amazon S3 para a função Lambda.

1. O Lambda realiza a leitura do arquivo no bucket do Amazon S3 e a conversão local do arquivo em EBCDIC para ASCII.

1. O Lambda registra o status do processo na Amazon. CloudWatch

1. O Lambda grava o arquivo ASCII de volta no Amazon S3.

**nota**  
O script de análise do copybook é executado uma única vez para converter os metadados para o formato JSON, que, posteriormente, é armazenado em um bucket do Amazon S3. Após a conversão inicial, todos os arquivos em EBCDIC subsequentes, que fazem referência ao mesmo arquivo JSON no bucket do Amazon S3, usarão a configuração de metadados existente.

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

**Serviços da AWS**
+  CloudWatchA [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos nos quais você executa AWS em tempo real.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)é um shell baseado em navegador que você pode usar para gerenciar Serviços da AWS usando o AWS Command Line Interface (AWS CLI) e uma variedade de ferramentas de desenvolvimento pré-instaladas.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. O Lambda executa seu código somente quando necessário e escala automaticamente, e, assim, você paga apenas pelo tempo de computação usado.

**Outras ferramentas**
+ [GitHub](https://github.com/)é um serviço de hospedagem de código que fornece ferramentas de colaboração e controle de versão.
+ O [Python](https://www.python.org/) é uma linguagem de programação de alto nível.

**Código **

O código desse padrão está disponível no GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)repositório.

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

Considere as seguintes práticas recomendadas:
+ Defina as permissões necessárias no nível do nome do recurso da Amazon (ARN).
+ Sempre conceda permissões de privilégio mínimo para políticas do IAM. Para obter mais informações, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) na documentação do IAM.

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

### Crie variáveis de ambiente e uma pasta de trabalho
<a name="create-environment-variables-and-a-working-folder"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie as variáveis de ambiente. | Copie as seguintes variáveis de ambiente para um editor de texto e, em seguida, substitua os valores `<placeholder>` no exemplo abaixo pelos valores dos seus recursos:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Você criará referências para seu bucket do Amazon S3 e Conta da AWS Região da AWS , posteriormente.Para definir variáveis de ambiente, abra o [CloudShell console](https://console.aws.amazon.com/cloudshell/) e, em seguida, copie e cole suas variáveis de ambiente atualizadas na linha de comando.Você deve repetir essa etapa sempre que a CloudShell sessão for reiniciada. | AWS geral | 
| Crie uma pasta de trabalho. | Para simplificar o processo de limpeza de recursos posteriormente, crie uma pasta de trabalho CloudShell executando o seguinte comando:<pre>mkdir workdir; cd workdir</pre>Você deve alterar o diretório para o diretório de trabalho (`workdir`) toda vez que perder uma conexão com sua CloudShell sessão. | AWS geral | 

### Defina uma política e um perfil do IAM
<a name="define-an-iam-role-and-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política de confiança para a função do Lambda. | O conversor EBCDIC é executado em uma função do Lambda. A função deve ter um perfil do IAM. Antes de criar um perfil do IAM, você deve definir um documento de política de confiança que permita que os recursos assumam essa política.Na pasta de CloudShell trabalho, crie um documento de política executando o seguinte comando:<pre>E2ATrustPol=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "Service": "lambda.amazonaws.com"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2ATrustPol" > E2ATrustPol.json</pre> | AWS geral | 
| Crie o perfil do IAM para conversão do Lambda. | Para criar uma função do IAM, execute o seguinte AWS CLI comando na pasta de CloudShell trabalho:<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | AWS geral | 
| Crie o documento de política do IAM para a função do Lambda. | A função Lambda deve ter acesso de leitura e gravação ao bucket do Amazon S3 e permissões de gravação para o Amazon Logs. CloudWatch Para criar uma política do IAM, execute o seguinte comando na pasta de CloudShell trabalho:<pre>E2APolicy=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Logs",<br />            "Effect": "Allow",<br />            "Action": [<br />                "logs:PutLogEvents",<br />                "logs:CreateLogStream",<br />                "logs:CreateLogGroup"<br />            ],<br />            "Resource": [<br />                "arn:aws:logs:*:*:log-group:*",<br />                "arn:aws:logs:*:*:log-group:*:log-stream:*"<br />            ]<br />        },<br />        {<br />            "Sid": "S3",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:PutObject",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::%s/*",<br />                "arn:aws:s3:::%s"<br />            ]<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2APolicy" "$bucket" "$bucket" > E2AConvLambdaPolicy.json</pre> | AWS geral | 
| Anexe o documento da política do IAM ao perfil do IAM. | Para anexar a política do IAM à função do IAM, insira o seguinte comando na sua pasta de CloudShell trabalho:<pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | AWS geral | 

### Crie a função do Lambda para conversão de EBCDIC
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o código-fonte da conversão EBCDIC. | Na pasta de CloudShell trabalho, execute o comando a seguir para baixar o mainframe-data-utilities código-fonte de GitHub:<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | AWS geral | 
| Crie o pacote ZIP. | Na pasta de CloudShell trabalho, insira o seguinte comando para criar o pacote ZIP que cria a função Lambda para conversão EBCDIC:<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | AWS geral | 
| Criar a função do Lambda. | Na pasta de CloudShell trabalho, insira o seguinte comando para criar a função Lambda para conversão 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> A variável de ambiente “layout” indica à função do Lambda o local em que os metadados JSON estão localizados. | AWS geral | 
| Crie a política baseada em recursos para a função do Lambda. | Na pasta de CloudShell trabalho, insira o seguinte comando para permitir que sua notificação de eventos do Amazon S3 acione a função Lambda para conversão EBCDIC:<pre>aws lambda add-permission \<br />--function-name E2A \<br />--action lambda:InvokeFunction \<br />--principal s3.amazonaws.com \<br />--source-arn arn:aws:s3:::$bucket \<br />--source-account $account \<br />--statement-id 1</pre> | AWS geral | 

### Crie a notificação de evento do Amazon S3
<a name="create-the-s3-event-notification"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o documento de configuração para a notificação de evento do Amazon S3. | A notificação de evento do Amazon S3 inicia a função do Lambda de conversão do EBCDIC quando os arquivos são colocados na pasta de entrada.Na pasta de CloudShell trabalho, execute o seguinte comando para criar o documento JSON para a notificação de eventos do Amazon S3:<pre>S3E2AEvent=$(cat <<EOF<br />{<br />"LambdaFunctionConfigurations": [<br />    {<br />      "Id": "E2A",<br />      "LambdaFunctionArn": "arn:aws:lambda:%s:%s:function:E2A",<br />      "Events": [ "s3:ObjectCreated:Put" ],<br />      "Filter": {<br />        "Key": {<br />          "FilterRules": [<br />            {<br />              "Name": "prefix",<br />              "Value": "input/"<br />            }<br />          ]<br />        }<br />      }<br />    }<br />  ]<br />}<br />EOF<br />)<br />printf "$S3E2AEvent" "$region" "$account" > S3E2AEvent.json</pre> | AWS geral | 
| Crie a notificação de evento do Amazon S3. | Na pasta de CloudShell trabalho, digite o seguinte comando para criar a notificação de evento do Amazon S3:<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | AWS geral | 

### Crie e faça o upload dos metadados JSON
<a name="create-and-upload-the-json-metadata"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Analise o copybook de COBOL. | Na pasta de CloudShell trabalho, insira o seguinte comando para analisar um exemplo de caderno COBOL em um arquivo JSON (que define como ler e dividir o arquivo de dados corretamente):<pre>python3       mdu/parse_copybook_to_json.py \<br />-copybook     mdu/LegacyReference/COBKS05.cpy \<br />-output       CLIENT.json \<br />-output-s3key CLIENT.ASCII.txt \<br />-output-s3bkt $bucket \<br />-output-type  s3 \<br />-print        25</pre> | AWS geral | 
| Adicione a regra de transformação. | O arquivo de dados de amostra e seu copybook de COBOL correspondente são arquivos com vários layouts. Isso significa que a conversão deve dividir os dados com base em determinadas regras. Nesse caso, os bytes nas posições 3 e 4 em cada linha definem o layout.Na pasta de CloudShell trabalho, edite o `CLIENT.json` arquivo e altere o conteúdo `"transf-rule": [],` para o seguinte:<pre>"transf-rule": [<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0002",<br />"transf": "transf1"<br />},<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0000",<br />"transf": "transf2"<br />}<br />],</pre> | AWS geral, IBM Mainframe, Cobol | 
| Faça o upload dos metadados em JSON para o bucket do Amazon S3. | Na pasta de CloudShell trabalho, insira o seguinte AWS CLI comando para fazer o upload dos metadados JSON em seu bucket do Amazon S3:<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | AWS geral | 

### Converta o arquivo EBCDIC
<a name="convert-the-ebcdic-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie o arquivo em EBCDIC para o bucket do Amazon S3. | Na pasta de CloudShell trabalho, digite o seguinte comando para enviar o arquivo EBCDIC para o bucket do Amazon S3:<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Recomendamos que você configure pastas distintas para os arquivos de entrada (EBCDIC) e de saída (ASCII), a fim de evitar que a função do Lambda responsável pela conversão seja acionada novamente quando o arquivo em ASCII for enviado ao bucket do Amazon S3. | AWS geral | 
| Verifique a saída. | Na pasta de CloudShell trabalho, insira o seguinte comando para verificar se o arquivo ASCII foi gerado no seu bucket do Amazon S3:<pre>aws s3 ls s3://$bucket/</pre> A conversão dos dados pode demorar alguns segundos para ser concluída. Recomendamos que você verifique o arquivo ASCII algumas vezes.Depois que o arquivo em ASCII estiver disponível, execute o comando apresentado a seguir para visualizar o conteúdo do arquivo convertido no bucket do Amazon S3. Conforme necessário, você pode fazer o download ou usar o arquivo diretamente do bucket do Amazon S3:<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Verifique o conteúdo do arquivo ASCII:<pre>0|0|220|<br />1|1|HERBERT MOHAMED|1958-08-31|BACHELOR|0010000.00|<br />1|2|36|THE ROE AVENUE|<br />2|1|JAYLEN GEORGE|1969-05-29|ELEMENTARY|0020000.00|<br />2|2|365|HEATHFIELD ESPLANADE|<br />3|1|MIKAEEL WEBER|1982-02-17|MASTER|0030000.00|<br />3|2|4555|MORRISON STRAND|<br />4|1|APRIL BARRERA|1967-01-12|DOCTOR|0030000.00|<br />4|2|1311|MARMION PARK|<br />5|1|ALEEZA PLANT|1985-03-01|BACHELOR|0008000.00|</pre> | AWS geral | 

### Limpe o ambiente
<a name="clean-the-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| (Opcional) Prepare as variáveis e a pasta. | Se você perder a conexão com CloudShell, reconecte-se e digite o seguinte comando para alterar o diretório para a pasta de trabalho:<pre>cd workdir</pre>Certifique-se de que as variáveis de ambiente estejam definidas:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | AWS geral | 
| Remova a configuração de notificação para o bucket. | Na pasta de CloudShell trabalho, execute o seguinte comando para remover a configuração de notificação de eventos do Amazon S3:<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | AWS geral | 
| Exclua a função do Lambda. | Na pasta de CloudShell trabalho, digite o seguinte comando para excluir a função Lambda para o conversor EBCDIC:<pre>aws lambda delete-function \<br />--function-name E2A</pre> | AWS geral | 
| Exclua a política e o perfil do IAM. | Na pasta de CloudShell trabalho, digite o seguinte comando para remover a função e a política do conversor EBCDIC:<pre>aws iam delete-role-policy \<br />--role-name E2AConvLambdaRole \<br />--policy-name E2AConvLambdaPolicy<br /><br />aws iam delete-role \<br />--role-name E2AConvLambdaRole</pre> | AWS geral | 
| Exclua os arquivos gerados no bucket do Amazon S3. | Na pasta de CloudShell trabalho, insira o seguinte comando para excluir os arquivos gerados no bucket do Amazon S3:<pre>aws s3 rm s3://$bucket/layout --recursive<br />aws s3 rm s3://$bucket/input --recursive<br />aws s3 rm s3://$bucket/CLIENT.ASCII.txt</pre> | AWS geral | 
| Exclua a pasta de trabalho. | Na pasta de CloudShell trabalho, digite o seguinte comando para remover `workdir` e seu conteúdo:<pre>cd ..; rm -Rf workdir</pre> | AWS geral | 

## Recursos relacionados
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [Utilitários de dados de mainframe README](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) () GitHub
+ [O conjunto de caracteres EBCDIC](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (documentação da IBM)
+ [EBCDIC para ASCII](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii) (documentação da IBM)
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (documentação da IBM)
+ [Usando um gatilho do Amazon S3 para invocar uma função Lambda (documentação](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))AWS Lambda 

# Converta arquivos de dados de mainframe com layouts de registro complexos usando o Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

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

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Este padrão mostra como converter arquivos de dados de mainframe com dados não textuais e layouts de registro complexos da codificação de caracteres EBCDIC (Extended Binary Coded Decimal Interchange Code) para a codificação de caracteres ASCII (American Standard Code for Information Interchange) usando um arquivo de estrutura do Micro Focus. Para concluir a conversão do arquivo, você deve fazer o seguinte:

1. Prepare um único arquivo de origem que descreva todos os itens de dados e layouts de registro em seu ambiente de mainframe.

1. Crie um arquivo de estrutura que contenha o layout de registro dos dados usando o Micro Focus Data File Editor como parte do Micro Focus Classic Data File Tools ou Data File Tools. O arquivo de estrutura identifica os dados não textuais para que você possa converter corretamente seus arquivos de mainframe de EBCDIC para ASCII.

1. Teste o arquivo de estrutura usando o Classic Data File Tools ou Data File Tools.

## Pré-requisitos e limitações
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Micro Focus Enterprise Developer para Windows, disponível por meio da [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

**Versões do produto**
+ Micro Focus Enterprise Server 7.0 e mais recente

## Ferramentas
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-tools"></a>
+ O [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html) fornece o ambiente de execução para aplicativos criados com qualquer variante de ambiente de desenvolvimento integrado (IDE) do Enterprise Developer.
+ O [Classic Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) do Micro Focus ajuda você a converter, navegar, editar e criar arquivos de dados. O Classic Data File Tools inclui [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).
+ O [Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) do Micro Focus ajuda você a criar, editar e mover arquivos de dados. O Data File Tools inclui o [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 o [Data File Structure Command Line Utility](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

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

### Preparar o arquivo de origem
<a name="prepare-the-source-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Identifique os componentes de origem. | Identifique todos os layouts de registro possíveis para o arquivo, incluindo quaisquer redefinições que contenham dados não textuais.Se você tiver layouts que contenham redefinições, você deve reduzir esses layouts a layouts exclusivos que descrevam cada permutação possível da estrutura de dados. Normalmente, os layouts de registro de um arquivo de dados podem ser descritos pelos seguintes arquétipos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Para obter mais informações sobre a criação de layouts de registro nivelados para arquivos que contêm layouts de registro complexos, consulte [Redefinir a hospedagem de aplicativos EBCDIC em ambientes ASCII para migrações de mainframe](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html). | Desenvolvedor de aplicativos | 
| Identifique as condições do layout do registro. | Para arquivos com vários layouts de registro ou arquivos que contêm layouts complexos com uma cláusula REDEFINES, identifique os dados e as condições em um registro que você pode usar para definir qual layout usar durante a conversão. Recomendamos que você discuta essa tarefa com um especialista no assunto (SME - subject matter expert) que entenda os programas que processam esses arquivos.Por exemplo, um arquivo pode conter dois tipos de registro que contêm dados não textuais. Você pode inspecionar a fonte e possivelmente encontrar um código semelhante ao seguinte:<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>O código ajuda você a identificar o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Você pode documentar os valores usados por esse campo para associar os layouts de registro aos registros de dados corretos no arquivo. | Desenvolvedor de aplicativos | 
| Crie o arquivo de origem. | Se o arquivo estiver descrito em vários arquivos de origem ou se o layout do registro contiver dados não textuais subordinados a uma cláusula REDEFINES, crie um novo arquivo de origem que contenha os layouts do registro. O novo programa não precisa descrever o arquivo usando as instruções SELECT e FD. O programa pode simplesmente conter as descrições dos registros em 01 nível no Working-Storage.Você pode criar um arquivo de origem para cada arquivo de dados ou criar um arquivo de origem mestre que descreva todos os arquivos de dados. | Desenvolvedor de aplicativos | 
| Compilar o arquivo de origem. | Compile o arquivo de origem para criar o dicionário de dados. Recomendamos que você compile o arquivo de origem usando o conjunto de caracteres EBCDIC. Se a diretiva IBMCOMP ou as diretivas ODOSLIDE estiverem sendo usadas, você também deverá usar essas diretivas no arquivo de origem.O IBMCOMP afeta o armazenamento de bytes dos campos COMP e o ODOSLIDE afeta o preenchimento nas estruturas OCCUS VARYING. Se essas diretivas forem definidas incorretamente, a ferramenta de conversão não lerá o registro de dados corretamente. Isso resulta em dados incorretos no arquivo convertido. | Desenvolvedor de aplicativos | 

### (Opção A) Crie o arquivo de estrutura usando o Classic Data File Tools
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie a ferramenta e carregue o dicionário. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 
| Crie o layout de registro padrão. | Use o layout de registro padrão para todos os registros que não correspondam a nenhum layout condicional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)O layout padrão aparece no painel **Layouts** e pode ser identificado pelo ícone de pasta vermelha. | Desenvolvedor de aplicativos | 
| Crie um layout de registro condicional. | Use o layout de registro condicional quando houver mais de um layout de registro em um arquivo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### (Opção B) Crie o arquivo de estrutura usando o Data File Tools
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie a ferramenta e carregue o dicionário. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 
| Crie o layout de registro padrão. | Use o layout de registro padrão para todos os registros que não correspondam a nenhum layout condicional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)O layout padrão aparece no painel **Layouts** e pode ser identificado pelo ícone azul “D”. | Desenvolvedor de aplicativos | 
| Crie um layout de registro condicional. | Use o layout de registro condicional quando houver mais de um layout de registro em um arquivo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### (Opção A) Teste o arquivo de estrutura usando o Classic Data File Tools
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste um arquivo de dados EBCDIC. | Confirme se você pode usar seu arquivo de estrutura para visualizar um arquivo de dados de teste EBCDIC corretamente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### (Opção B) Teste o arquivo de estrutura usando o Data File Tools
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste um arquivo de dados EBCDIC. | Confirme se você pode usar seu arquivo de estrutura para visualizar um arquivo de dados de teste EBCDIC corretamente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

### Teste a conversão do arquivo de dados
<a name="test-data-file-conversion"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a conversão de um arquivo EBCDIC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | Desenvolvedor de aplicativos | 

## Recursos relacionados
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-resources"></a>
+ [Micro Focus](https://www.microfocus.com/en-us/products/enterprise-suite/overview) (documentação da Micro Focus)
+ [Mainframe e código antigo](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (publicações do Blog da AWS)
+ [Recomendações da AWS](https://docs.aws.amazon.com/prescriptive-guidance/) (documentação da AWS)
+ [Documentação da AWS](https://docs.aws.amazon.com/index.html) (documentação da AWS)
+ [Referência geral da AWS](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (documentação da AWS)
+ [Glossário da AWS](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) (documentação da AWS)

# Implante um ambiente para aplicativos Blu Age conteinerizados usando o Terraform
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

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

A migração de workloads de mainframe legadas para arquiteturas de nuvem modernas pode eliminar os custos de manutenção de um mainframe — custos que só aumentam à medida que o ambiente envelhece. No entanto, migrar trabalhos de um mainframe pode representar desafios únicos. Os recursos internos podem não estar familiarizados com a lógica do trabalho, e o alto desempenho dos mainframes nessas tarefas especializadas pode ser difícil de replicar quando comparado ao padrão generalizado. CPUs Reescrever esses trabalhos pode ser uma grande tarefa e exigir um esforço significativo.

O Blu Ags converte as workloads antigas de mainframe em código Java moderno, que você pode então executar como um contêiner.

Esse padrão fornece um exemplo de arquitetura de tecnologia sem servidor para executar um aplicativo em contêiner que foi modernizado com a ferramenta Blu Age. Os arquivos HashiCorp Terraform incluídos criarão uma arquitetura segura para a orquestração de contêineres Blu Age, suportando tarefas em lote e serviços em tempo real.

Para obter mais informações sobre a modernização de suas workloads usando o Blu Age e os serviços da AWS, consulte estas publicações de Recomendações da AWS:
+ [Executando workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

[Para obter ajuda com o uso do Blu Age para modernizar suas workloads de mainframe, entre em contato com a equipe da Blu Age escolhendo Entre **em contato com nossos especialistas** no site da Blu Age.](https://www.bluage.com/) Para obter ajuda para migrar suas workloads modernizadas para a AWS, integrá-las aos serviços da AWS e colocá-las em produção, entre em contato com seu gerente de contas da AWS ou preencha o [formulário AWS Professional Services](https://pages.awscloud.com/AWS-Professional-Services.html).

## Pré-requisitos e limitações
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Pré-requisitos **
+ O exemplo do aplicativo Blu Age conteinerizado fornecido pelo padrão [Workloads do mainframe Containerize que foram modernizadas pelo Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html). O aplicativo de amostra fornece a lógica para lidar com o processamento de entrada e saída para o aplicativo modernizado e pode se integrar a essa arquitetura.
+ O Terraform é necessário para implantar esses recursos.

**Limitações**
+ O Amazon Elastic Container Service (Amazon ECS) impõe limites aos recursos de tarefa que podem ser disponibilizados para o contêiner. Esses recursos incluem CPU, RAM e armazenamento. Por exemplo, ao usar o Amazon ECS com o AWS Fargate, os [limites de recursos da tarefa se aplicam](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Versões do produto**

Essa solução foi testada com as seguintes versões:
+ Terraform 1.3.6
+ Provedor Terraform AWS 4.46.0

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

**Pilha de tecnologia de origem**
+ Blu Age
+ Terraform

**Pilha de tecnologias de destino**
+ Amazon Aurora Edição Compatível com PostgreSQL
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ AWS Key Management Server (AWS KMS)
+ AWS Secrets Manager
+ Amazon Simple Notiﬁcation Service (Amazon SNS)
+ Amazon Simple Storage Service (Amazon S3)
+ AWS Step Functions
+ AWS Systems Manager

**Arquitetura de destino**

O diagrama a seguir mostra a arquitetura da solução.

![\[A descrição segue o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. A solução implanta os seguintes perfis do IAM:
   + Perfil da tarefa de lote
   + Perfil de execução de tarefas em lote
   + Perfil da tarefa de serviço
   + Perfil de execução da tarefa do serviço
   + Perfil dos Perfis da etapa
   + Perfil do AWS Backup
   + Perfil de monitoramento avançado do RDS.

   Os perfis estão em conformidade com os princípios de acesso com privilégio mínimo.

1. O Amazon ECR é usado para armazenar a imagem do contêiner que é orquestrada por esse padrão.

1. O AWS Systems Manager Parameter Store fornece dados de configuração sobre cada ambiente para a definição de tarefa do Amazon ECS em runtime.

1. O AWS Secrets Manager fornece dados de configuração confidenciais sobre o ambiente para a definição de tarefas do Amazon ECS em runtime. Os dados foram criptografados pelo AWS KMS.

1. Os módulos do Terraform criam definições de tarefas do Amazon ECS para todas as tarefas em tempo real e em lote.

1. O Amazon ECS executa uma tarefa em lote usando o AWS Fargate como mecanismo de computação. Essa é uma tarefa de curta duração, iniciada conforme exigido pelo AWS Step Functions.

1. Compatível com o Amazon Aurora PostgreSQL fornece um banco de dados para dar suporte ao aplicativo modernizado. Isso substitui bancos de dados de mainframe, como IBM Db2 ou IBM IMS DB.

1. O Amazon ECS executa um serviço de longa duração para fornecer uma workload modernizada em tempo real. Esses aplicativos sem estado são executados permanentemente com contêineres espalhados pelas zonas de disponibilidade.

1. Um Network Load Balancer é usado para conceder acesso à workload em tempo real. O Network Load Balancer é compatível com protocolos anteriores, como o IBM CICS. Como alternativa, você pode usar um Application Load Balancer para workloads baseadas em HTTP.

1. O Amazon S3 fornece armazenamento de objetos para entradas e saídas de trabalhos. O contêiner deve lidar com as operações de pull e push no Amazon S3 para preparar o diretório de trabalho para o aplicativo Blu Age.

1. O serviço AWS Step Functions é usado para orquestrar a execução das tarefas do Amazon ECS para processar workloads em lote.

1. Os tópicos do SNS para cada workload em lote são usados para integrar o aplicativo modernizado a outros sistemas, como e-mail, ou para iniciar ações adicionais, como entregar objetos de saída do Amazon S3 para o FTP.

**nota**  
Por padrão, a solução não tem acesso à internet. Esse padrão supõe que a nuvem privada virtual (VPC) será conectada a outras redes usando um serviço como o [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/). Dessa forma, vários endpoints da VPC de interface são implantados para conceder acesso aos serviços da AWS usados pela solução. Para ativar o acesso direto à Internet, você pode usar o botão no módulo Terraform para substituir os endpoints da VPC por um gateway da Internet e os recursos associados.

**Automação e escala**

O uso de recursos de tecnologia sem servidor em todo esse padrão ajuda a garantir que, ao escalar, haja poucos limites na escala desse design. Isso reduz as *preocupações ruidosas dos vizinhos*, como a competição por recursos computacionais que podem existir no mainframe original. As tarefas em lote podem ser programadas para serem executadas simultaneamente, conforme necessário.

Os contêineres individuais são limitados pelos tamanhos máximos suportados pelo Fargate. Para obter mais informações, consulte a seção [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) na documentação do Amazon ECS.

Para [escalar cargas de trabalho em tempo real horizontalmente](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), você pode adicionar contêineres.

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

**Serviços da AWS**
+ O [Amazon Aurora Edição Compatível com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) é um mecanismo de banco de dados relacional totalmente gerenciado e compatível com ACID que ajuda você a configurar, operar e escalar implantações do PostgreSQL.
+ O [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) é um serviço totalmente gerenciado que ajuda você a centralizar e automatizar a proteção de dados na nuvem e no local. Serviços da AWS
+ O [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
+ O [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) é um serviço de gerenciamento de contêineres escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.
+ [O AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos, controlando quem está autenticado e autorizado a usá-los.
+ O [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ajuda você a criar e controlar chaves criptográficas para proteger seus dados.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda você a substituir credenciais codificadas em seu código, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo programaticamente.
+ O [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [O AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) é um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.
+ O [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) oferece armazenamento hierárquico seguro para o gerenciamento de dados de configuração e gerenciamento de segredos.

**Outros serviços**
+ O [HashiCorp Terraform](https://www.terraform.io/docs) é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código. Esse padrão usa o Terraform para criar a arquitetura de amostra.

**Repositório de código**

O código-fonte desse padrão está disponível no repositório 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).

## Práticas recomendadas
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Para ambientes de teste, use atributos como a opção `forceDate` de configurar o aplicativo modernizado para gerar resultados de teste consistentes, sempre executando por um período de tempo conhecido.
+ Ajuste cada tarefa individualmente para consumir a quantidade ideal de recursos. Você pode usar o [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) para obter orientação sobre possíveis gargalos.

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

### Prepare o ambiente para implantação
<a name="prepare-the-environment-for-deployment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o código-fonte da solução. | Clone o código da solução do [GitHub projeto](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform). | DevOps engenheiro | 
| Inicialize o ambiente implantando recursos para armazenar o estado do Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps engenheiro | 

### Implante a infraestrutura da solução
<a name="deploy-the-solution-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise e atualize a configuração do Terraform. | No diretório raiz, abra o arquivo `main.tf,`, revise o conteúdo e considere fazer as seguintes atualizações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps engenheiro | 
| Implantar o arquivo Terraform. | No seu terminal, executar o `terraform apply` comando para implantar todos os recursos. Revise as alterações geradas pelo Terraform e digite **sim** para iniciar a construção.Observe que a implantação dessa infraestrutura pode levar mais de 15 minutos. | DevOps engenheiro | 

### (Opcional) Implante uma aplicação conteinerizada Blu Age válida
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie a imagem do contêiner do Blu Age para o Amazon ECR. | Envie o contêiner para o repositório do Amazon ECR que você criou no épico anterior. Para obter instruções, consulte a [Documentação do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).Anote o URI da imagem do contêiner. | DevOps engenheiro | 
| Atualize o Terraform para referenciar a imagem do contêiner Blu Age. | Atualize o arquivo `main.tf`**** para referenciar a imagem do contêiner que você carregou. | DevOps engenheiro | 
| Reimplante o arquivo Terraform. | No seu terminal, executar `terraform apply` para implantar todos os recursos. Analise as atualizações sugeridas pelo Terraform e, em seguida, insira **sim** para continuar com a implantação. | DevOps engenheiro | 

## Recursos relacionados
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Blu Age](https://www.bluage.com/)
+ [Como executar workloads modernizadas de mainframe Blu Age em uma infraestrutura AWS de tecnologia sem servidor](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerize workloads de mainframe que foram modernizadas pela Blu Age](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

# Gere insights de z/OS dados do Db2 usando o AWS Mainframe Modernization Amazon Q no 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*

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

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se sua organização está hospedando dados essenciais para os negócios em um ambiente de mainframe IBM Db2, obter insights desses dados é crucial para impulsionar o crescimento e a inovação. Ao desbloquear dados do mainframe, você pode criar inteligência de negócios de maneira mais rápida, segura e escalável para acelerar a tomada de decisões, o crescimento e a inovação orientados por dados na nuvem da Amazon Web Services (AWS).

Esse padrão apresenta uma solução para gerar insights de negócios e criar narrativas compartilháveis a partir de dados de mainframe no IBM Db2 for tables. z/OS As alterações nos dados do mainframe são transmitidas para o tópico do [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) usando a [replicação de dados do AWS Mainframe Modernization com o Precisely](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html). Usando a [ingestão de streaming do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html), os dados de tópicos do Amazon MSK são armazenados em data warehouses do [Amazon Redshift sem servidor](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) para analytics no Amazon QuickSight.

Depois que os dados estiverem disponíveis no QuickSight, você poderá usar prompts em linguagem natural com o [Amazon Q no QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) para criar resumos dos dados, fazer perguntas e gerar narrativas analíticas. Você não precisa escrever consultas SQL ou aprender uma ferramenta de business intelligence (BI).

**Contexto de negócios**

Este padrão apresenta uma solução para casos de uso de data analytics de mainframe e insights de dados. Usando o padrão, você cria um painel de elementos visuais para os dados da sua empresa. Para demonstrar a solução, este padrão usa uma empresa da área da saúde que fornece planos médicos, odontológicos e oftalmológicos para seus membros nos EUA. Neste exemplo, as informações demográficas e do plano dos membros são armazenadas no IBM Db2 para tabelas de z/OS dados. O painel visual mostra o seguinte:
+ Distribuição de membros por região
+ Distribuição de membros por gênero
+ Distribuição de membros por idade
+ Distribuição de membros por tipo de plano
+ Membros que não concluíram a imunização preventiva

Para exemplos de distribuição de membros por região e membros que não concluíram a imunização preventiva, consulte a seção Informações adicionais.

Depois de criar o painel, você gera uma narrativa analítica que explica os insights da análise anterior. A narrativa analítica fornece recomendações para aumentar o número de membros que concluíram as imunizações preventivas.

## Pré-requisitos e limitações
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS. Essa solução foi criada e testada no Amazon Linux 2 no Amazon Elastic Compute Cloud (Amazon EC2).
+ Uma nuvem privada virtual (VPC) com uma sub-rede que pode ser acessada pelo sistema de mainframe.
+ Um banco de dados de mainframe com dados de negócios. Para ver os dados de exemplo usados para criar e testar essa solução, consulte a seção *Anexos*.
+ Captura de dados de alteração (CDC) ativada nas tabelas do Db2 z/OS . Para habilitar o CDC no Db2 z/OS, consulte a [documentação da IBM](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes).
+ Conecte o CDC com precisão para z/OS instalação no z/OS sistema que hospeda os bancos de dados de origem. O CDC Preciously Connect para z/OS imagem é fornecido como um arquivo zip no [AWS Mainframe Modernization - Data Replication for IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) Amazon Machine Image (AMI). Para instalar o Preciously Connect CDC z/OS no mainframe, consulte a documentação de [instalação do Precisely](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS) Connect.

**Limitações**
+ Os dados do seu mainframe Db2 devem estar em um tipo de dados compatível com o Precisely Connect CDC. Para obter uma lista dos tipos de dados compatíveis, consulte a [documentação do Precisely Connect CDC](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Data-replication-overview/Supported-source-data-types).
+ Seus dados no Amazon MSK devem estar em um tipo de dados compatível com o Amazon Redshift. Para obter uma lista dos tipos de dados compatíveis, consulte a [documentação do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ O Amazon Redshift tem comportamentos e limites de tamanho diferentes para diferentes tipos de dados. Para obter mais informações, consulte a [documentação do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ Os dados quase em tempo real no QuickSight dependem do intervalo de atualização definido para o banco de dados do Amazon Redshift.
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). No momento, o Amazon Q no QuickSight não está disponível em todas as regiões que oferecem suporte ao QuickSight. Para endpoints específicos, consulte a página [Cotas e endpoints de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

**Versões do produto**
+ AWS Mainframe Modernization Replicação de dados com a versão 4.1.44 do Precision
+ Python versão 3.6 ou posterior
+ Apache Kafka versão 3.5.1****

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

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para gerar insights de negócios com base em dados de mainframe usando o [AWS Mainframe Modernization replicação de dados com o Precisely](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) e o Amazon Q no QuickSight.

![\[Processo de sete etapas do z/OS mainframe à Amazon. QuickSight\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O Precisely Log Reader Agent lê dados dos registros do Db2 e grava os dados em um armazenamento temporário em um sistema de arquivos OMVS no mainframe.

1. O Publisher Agent lê os logs brutos do Db2 do armazenamento temporário.

1. O daemon do controlador on-premises autentica, autoriza, monitora e gerencia as operações.

1. O Apply Agent é implantado na Amazon EC2 usando a AMI pré-configurada. Ele se conecta ao Publisher Agent por meio do daemon do controlador usando TCP/IP. O Apply Agent envia dados para o Amazon MSK usando vários trabalhadores para obter alto throughput.

1. Os trabalhadores gravam os dados no tópico do Amazon MSK no formato JSON. Como destino intermediário para as mensagens replicadas, o Amazon MSK fornece recursos de failover automatizados e altamente disponíveis.

1. O recurso de ingestão de streaming do Amazon Redshift fornece ingestão de dados com baixa latência e alta velocidade do Amazon MSK para um banco de dados do Amazon Redshift sem servidor. Um procedimento armazenado no Amazon Redshift realiza a reconciliação dos dados de alteração do mainframe (insert/update/deletes) nas tabelas do Amazon Redshift. Essas tabelas do Amazon Redshift servem como fonte de data analytics para o QuickSight.

1. Os usuários acessam os dados no QuickSight para obter analytics e insights. Você pode usar o Amazon Q no QuickSight para interagir com os dados usando prompts em linguagem natural.

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

**Serviços da AWS**
+ [O Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical ou na horizontal.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) ajuda você a criar e controlar chaves criptográficas para ajudar a proteger seus dados.
+ O [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) é um serviço totalmente gerenciado que ajuda você a criar e executar aplicações que usam o Apache Kafka para processar dados em streaming.
+ O [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) é um serviço de business intelligence (BI) em escala de nuvem que ajuda você a visualizar, analisar e relatar dados em um único painel. Este padrão usa os recursos generativos de BI do Amazon Q no QuickSight.
+ O [Amazon Redshift sem servidor](https://aws.amazon.com/redshift/redshift-serverless/) é uma opção com tecnologia sem servidor do Amazon Redshift que torna mais eficiente executar e escalar analytics em segundos, sem a necessidade de configurar e gerenciar a infraestrutura de data warehouse.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda a substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação.

**Outras ferramentas**
+ O [Precisely Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) coleta e integra dados de sistemas legados em plataformas de dados e na nuvem.

**Repositório de código**

O código desse padrão está disponível no repositório GitHub [Mainframe\$1 DataInsights \$1change\$1data\$1reconciliation](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition). O código é um procedimento armazenado no Amazon Redshift. Esse procedimento armazenado reconcilia as alterações de dados do mainframe (inserções, atualizações e exclusões) do Amazon MSK com as tabelas do Amazon Redshift. Essas tabelas do Amazon Redshift servem como fonte de data analytics para o QuickSight.

## Práticas recomendadas
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Siga as [práticas recomendadas](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html) ao configurar seu cluster do Amazon MSK.
+ Siga as [práticas recomendadas de análise de dados](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations) do Amazon Redshift para melhorar a performance.
+ Ao criar as funções AWS Identity and Access Management (IAM) para a configuração do Preciously, siga o princípio do privilégio mínimo e conceda as permissões mínimas necessárias para realizar uma tarefa. Para obter mais informações, consulte [Concessão de privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [Práticas recomendadas de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) na documentação do IAM.

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

### Configure a replicação AWS Mainframe Modernization de dados com o Precisely on Amazon EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure um grupo de segurança. | Para se conectar ao daemon do controlador e ao cluster Amazon MSK, [crie um grupo de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) para a instância. EC2 Adicione as seguintes regras de entrada e saída:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Anote o nome do grupo de segurança. Você precisará referenciar o nome ao iniciar a EC2 instância e configurar o cluster Amazon MSK. | DevOps engenheiro, AWS DevOps | 
| Crie uma política do IAM e um perfil do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps engenheiro, administrador de sistemas da AWS | 
| Provisione uma EC2 instância. | Para provisionar uma EC2 instância para executar o Preciously CDC e conectar-se ao Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador e DevOps engenheiro da AWS | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o cluster do Amazon MSK. | Para criar um cluster do Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Um cluster provisionado típico pode demorar até 15 minutos para ser criado. Depois que o cluster for criado, seu status mudará de **Criando** para **Ativo**. | AWS DevOps, administrador de nuvem | 
| Configure a SASL/SCRAM autenticação. | Para configurar a SASL/SCRAM autenticação para um cluster Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquiteto de nuvem | 
| Crie o tópico do Amazon MSK. | Para criar o tópico do Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de nuvem | 

### Configure o mecanismo de aplicação precisa na Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure os scripts do Precisely para replicar as alterações nos dados. | Para configurar os scripts do Precisely Connect CDC para replicar dados alterados do mainframe para o tópico do Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Para obter exemplos de arquivos .ddl, consulte a seção [Informações adicionais](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional). | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Gere a chave de ACL da rede. | Para gerar a chave da lista de controle de acesso à rede (ACL da rede), faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquiteto de nuvem, AWS DevOps | 

### Preparar o ambiente de origem do mainframe
<a name="prepare-the-mainframe-source-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure os padrões na tela do ISPF. | Para definir as configurações padrão no Interactive System Productivity Facility (ISPF), siga as instruções na [documentação do Precisely](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS/Start-ISPF-Panel-Interface). | Administrador de sistema de mainframe | 
| Configure o daemon do controlador. | Para configurar o daemon do controlador, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Configure o publicador. | Para configurar o publicador, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Atualize o arquivo de configuração do daemon. | Para atualizar os detalhes do publicador no arquivo de configuração do daemon do controlador, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Crie o trabalho para iniciar o daemon do controlador. | Para criar o trabalho, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Gere o arquivo JCL do publicador de captura. | Para gerar o arquivo JCL do publicador de captura, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Verifique e atualize o CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Administrador de sistema de mainframe | 
| Envie os arquivos JCL. | Envie os seguintes arquivos JCL que você configurou nas etapas anteriores:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Depois de enviar os arquivos JCL, você pode iniciar o Apply Engine em Precisly na EC2 instância. | Administrador de sistema de mainframe | 

### Executar e validar o CDC
<a name="run-and-validate-cdc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie o Apply Engine e valide o CDC. | Para iniciar o Apply Engine na EC2 instância e validar o CDC, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Arquiteto de nuvem, desenvolvedor de aplicativos | 
| Valide os registros no tópico do Amazon MSK. | Para ler a mensagem do tópico do Kafka, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Desenvolvedor de aplicativos, arquiteto de nuvem | 

### Armazene dados de alteração do mainframe em um data warehouse do Amazon Redshift sem servidor
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Amazon Redshift sem servidor. | Para criar um data warehouse do Amazon Redshift sem servidor, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html).No painel do Amazon Redshift sem servidor, verifique se o namespace e o grupo de trabalho foram criados e estão disponíveis. Para esse exemplo de padrão, o processo pode levar de dois a cinco minutos. | Engenheiro de dados | 
| Configure o perfil do IAM e a política de confiança necessárias para a ingestão de streaming. | Para configurar a ingestão de streaming Amazon Redshift sem servidor pelo Amazon MSK, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de dados | 
| Conecte o Amazon Redshift sem servidor ao Amazon MSK. | Para conectar ao tópico do Amazon MSK, crie um esquema externo no Amazon Redshift sem servidor. No Editor de Consultas V2 do Amazon Redshift, execute o seguinte comando SQL, substituindo `'iam_role_arn'` pelo perfil que você criou anteriormente e substituindo `'MSK_cluster_arn`' pelo ARN do seu 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> | Engenheiro de migração | 
| Crie uma visão materializada. | Para consumir os dados do tópico do Amazon MSK no Amazon Redshift sem servidor, crie uma visão materializada. No Editor de Consultas V2 do Amazon Redshift, execute os comandos SQL a seguir, substituindo `<MSK_Topic_name>` pelo nome do tópico do 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> | Engenheiro de migração | 
| Crie tabelas de destino no Amazon Redshift. | As tabelas do Amazon Redshift fornecem a entrada para o QuickSight. Este padrão usa as tabelas `member_dtls` e `member_plans`, que correspondem às tabelas Db2 de origem no mainframe.Para criar as duas tabelas no Amazon Redshift, execute os seguintes comandos SQL no Editor de Consultas V2 do Amazon Redshift:<pre>-- Table 1: members_dtls<br />CREATE TABLE members_dtls (<br /> memberid INT ENCODE AZ64,<br /> member_name VARCHAR(100) ENCODE ZSTD,<br /> member_type VARCHAR(50) ENCODE ZSTD,<br /> age INT ENCODE AZ64,<br /> gender CHAR(1) ENCODE BYTEDICT,<br /> email VARCHAR(100) ENCODE ZSTD,<br /> region VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;<br /><br />-- Table 2: member_plans<br />CREATE TABLE member_plans (<br /> memberid INT ENCODE AZ64,<br /> medical_plan CHAR(1) ENCODE BYTEDICT,<br /> dental_plan CHAR(1) ENCODE BYTEDICT,<br /> vision_plan CHAR(1) ENCODE BYTEDICT,<br /> preventive_immunization VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;</pre> | Engenheiro de migração | 
| Crie um procedimento armazenado no Amazon Redshift. | Este padrão usa um procedimento armazenado para sincronizar dados de alteração (`INSERT`, `UPDATE`, `DELETE`) do mainframe de origem com a tabela do data warehouse de destino do Amazon Redshift para analytics no QuickSight.Para criar o procedimento armazenado no Amazon Redshift, use o editor de consultas v2 para executar o código do procedimento armazenado que está no repositório. GitHub  | Engenheiro de migração | 
| Leia por meio da visão materializada de streaming e carregue nas tabelas de destino. | O procedimento armazenado lê as alterações de dados da visão materializada de streaming e carrega as alterações de dados nas tabelas de destino. Para executar o procedimento armazenado, use o seguinte comando:<pre>call SP_Members_Load();</pre>Você pode usar EventBridge a [Amazon](https://aws.amazon.com/eventbridge/) para programar os trabalhos em seu armazém de dados do Amazon Redshift para chamar esse procedimento armazenado com base em seus requisitos de latência de dados. EventBridge executa trabalhos em intervalos fixos. Para monitorar se a chamada anterior para o procedimento foi concluída, talvez seja necessário usar um mecanismo como uma máquina de estado do [AWS Step Functions](https://aws.amazon.com/step-functions/). Para obter mais informações, consulte os seguintes recursos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Outra opção é usar o Editor de Consultas V2 do Amazon Redshift para programar a atualização. Para obter mais informações, consulte [Consultas programadas com o Editor de Consultas v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Engenheiro de migração | 

### Conectar o QuickSight aos dados no Amazon Redshift
<a name="connect-quick-sight-to-data-in-rs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o QuickSight. | Para configurar o QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Engenheiro de migração | 
| Configure uma conexão segura entre o QuickSight e o Amazon Redshift. | Para configurar uma conexão segura entre o QuickSight e o Amazon Redshift, faça o seguinte[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Crie um conjunto de dados para o QuickSight. | Para criar um conjunto de dados para o QuickSight do Amazon Redshift, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Junte os conjuntos de dados. | Para criar analytics no QuickSight, junte as duas tabelas seguindo as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join).No painel **Configuração de junção**, escolha **Esquerda** para **Tipo de junção**. Em **Juntar cláusulas**, use `memberid from member_plans = memberid from members_details`. | Engenheiro de migração | 

### Obter insights de negócios com base nos dados do mainframe usando o Amazon Q no QuickSight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Amazon Q no QuickSight. | Para configurar o recurso de BI generativo do Amazon Q no QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html). | Engenheiro de migração | 
| Analise os dados do mainframe e crie um painel visual. | Para analisar e visualizar seus dados no QuickSight, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Quando terminar, você poderá publicar seu painel para compartilhar com outras pessoas em sua organização. Para ver exemplos, consulte *Painel visual do mainframe* na seção [Informações adicionais](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). | Engenheiro de migração | 

### Criar uma narrativa analítica com o Amazon Q no QuickSight com base em dados de mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma narrativa analítica. | Crie uma narrativa analítica para explicar os insights da análise anterior e gere uma recomendação para aumentar a imunização preventiva dos membros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Veja a narrativa analítica gerada. | Para ver a narrativa analítica gerada, escolha essa narrativa na página **Narrativas analíticas**. | Engenheiro de migração | 
| Edite uma narrativa analítica gerada. | Para alterar a formatação, o layout ou os elementos visuais em uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Engenheiro de migração | 
| Compartilhe uma narrativa analítica. | Para compartilhar uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Engenheiro de migração | 

## Solução de problemas
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Para a criação do conjunto de dados do QuickSight para o Amazon Redshift, `Validate Connection` falhou. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| A tentativa de iniciar o mecanismo de aplicação na EC2 instância retorna o seguinte erro:`-bash: sqdeng: command not found` | Exporte o caminho de instalação `sqdata` executando o seguinte comando:<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| A tentativa de iniciar o Apply Engine retorna um dos seguintes erros de conexão:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Verifique o spool do mainframe para garantir que os trabalhos do daemon do controlador estejam em execução. | 

## Recursos relacionados
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Gere insights usando o AWS Mainframe Modernization Amazon Q no 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) (padrão)
+ [Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (demonstração)
+ [AWS Mainframe Modernization - Replicação de dados para IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Ingestão de streaming do Amazon Redshift para uma visão materializada](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## Mais informações
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**Exemplos de arquivos .ddl**

*members\$1details.ddl*

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

*member\$1plans.ddl*

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

**Exemplo de arquivo .sqd**

Substitua** **`<kafka topic name>` pelo nome do tópico do 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;
```

**Painel visual do mainframe**

O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta de análise `show member distribution by region`*.*

![\[O nordeste e o sudoeste têm oito membros, o sudoeste tem cinco membros, o centro-oeste tem quatro membros.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta `show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Sudeste mostra seis, sudoeste mostra cinco e centro-oeste mostra quatro.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Saída de narrativas analíticas**

As capturas de tela a seguir mostram seções da narrativa analítica criada pelo Amazon Q no QuickSight para o 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`.

Na introdução, a narrativa analítica recomenda escolher a região com mais membros para obter o maior impacto dos esforços de imunização.

![\[Tela de introdução para análise com base na geografia, demografia e idade da base de membros.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


A narrativa analítica fornece uma análise do número de membros das quatro regiões. As regiões nordeste, sudoeste e sudeste têm o maior número de membros.

![\[As regiões nordeste e sudoeste têm oito membros, o sudeste tem seis membros e o centro-oeste tem quatro membros.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


A narrativa analítica apresenta uma análise dos membros por idade.

![\[Gráfico mostrando que a base de membros se inclina para adultos mais jovens e de meia idade.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


A narrativa analítica se concentra nos esforços de imunização no centro-oeste.

![\[Recomendação para campanha de divulgação pessoal e desafios regionais.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Continuação da análise da narrativa analítica, com resultados e conclusão previstos.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Gere insights de dados usando o AWS Mainframe Modernization Amazon Q no 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*

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

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Se sua organização está hospedando dados essenciais para os negócios em um ambiente de mainframe, obter insights desses dados é crucial para impulsionar o crescimento e a inovação. Ao desbloquear dados do mainframe, você pode criar inteligência de negócios de maneira mais rápida, segura e escalável para acelerar a tomada de decisões, o crescimento e a inovação orientados por dados na nuvem da Amazon Web Services (AWS).

Este padrão apresenta uma solução para gerar insights de negócios e criar narrativas compartilháveis com base em dados de mainframe usando a [transferência de arquivos do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) com o BMC e o [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) no QuickSight. Os conjuntos de dados de mainframe são transferidos para o [Amazon Simple Storage Service (Amazon S3) usando AWS Mainframe Modernization a](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) transferência de arquivos com a BMC. Uma AWS Lambda função formata e prepara o arquivo de dados do mainframe para carregamento no Quick Sight.

Depois que os dados estiverem disponíveis no QuickSight, você poderá usar prompts em linguagem natural com o [Amazon Q no QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) para criar resumos dos dados, fazer perguntas e gerar narrativas analíticas. Você não precisa escrever consultas SQL ou aprender uma ferramenta de business intelligence (BI).

**Contexto de negócios**

Este padrão apresenta uma solução para casos de uso de data analytics de mainframe e insights de dados. Usando o padrão, você cria um painel de elementos visuais para os dados da sua empresa. Para demonstrar a solução, este padrão usa uma empresa da área da saúde que fornece planos médicos, odontológicos e oftalmológicos para seus membros nos EUA. Neste exemplo, as informações demográficas e do plano dos membros são armazenadas nos conjuntos de dados do mainframe. O painel visual mostra o seguinte:
+ Distribuição de membros por região
+ Distribuição de membros por gênero
+ Distribuição de membros por idade
+ Distribuição de membros por tipo de plano
+ Membros que não concluíram a imunização preventiva

Depois de criar o painel, você gera uma narrativa analítica que explica os insights da análise anterior. A narrativa analítica fornece recomendações para aumentar o número de membros que concluíram as imunizações preventivas.

## Pré-requisitos e limitações
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Conjuntos de dados de mainframe com dados de negócios
+ Acesso para instalar um agente de transferência de arquivos no mainframe

**Limitações**
+ Seu arquivo de dados de mainframe deve estar em um dos formatos de arquivo compatíveis com o QuickSight. Para obter uma lista dos formatos de arquivo compatíveis, consulte [Supported data sources](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Este padrão usa uma função do Lambda para converter o arquivo de mainframe em um formato compatível com o QuickSight.

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

O diagrama a seguir mostra uma arquitetura para gerar insights de negócios a partir de dados de mainframe usando a transferência de AWS Mainframe Modernization arquivos com o BMC e o Amazon Q no Quick Sight.

![\[A descrição do diagrama de arquitetura segue o diagrama.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um conjunto de dados de mainframe contendo dados comerciais é transferido para o Amazon S3 AWS Mainframe Modernization usando a transferência de arquivos com a BMC.

1. A função do Lambda converte o arquivo que está no bucket do S3 de destino file-transfer para o formato de valores separados por vírgula (CSV).

1. A função do Lambda envia o arquivo convertido para o bucket do S3 do conjunto de dados de origem.

1. Os dados no arquivo são ingeridos pelo QuickSight.

1. Os usuários acessam os dados no QuickSight. Você pode usar o Amazon Q no QuickSight para interagir com os dados usando prompts em linguagem natural.

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

**Serviços da AWS**
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ AWS Mainframe Modernization a [transferência de arquivos com a BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) converte e transfere conjuntos de dados de mainframe para o Amazon S3 para casos de uso de modernização, migração e aumento de mainframe.
+ O [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) é um serviço de BI em escala de nuvem que ajuda você a visualizar, analisar e relatar dados em um único painel. Este padrão usa os recursos generativos de BI do [Amazon Q no QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-quicksight-q.html).
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

## Práticas recomendadas
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ Ao criar as funções AWS Identity and Access Management (IAM) para transferência de AWS Mainframe Modernization arquivos com o BMC e a função Lambda, siga o princípio [do](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) privilégio mínimo.
+ Certifique-se de que seu conjunto de dados de origem tenha [tipos de dados compatíveis](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) com o QuickSight. Se o conjunto de dados de origem contiver tipos de dados não compatíveis, converta-os em tipos de dados compatíveis. Para obter informações sobre tipos de dados de mainframe não compatíveis e como convertê-los em tipos de dados compatíveis com o Amazon Q no QuickSight, consulte a seção [Recursos relacionados](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

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

### Configure a transferência AWS Mainframe Modernization de arquivos com o BMC
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o agente de transferência de arquivos. | Para instalar o agente de transferência de AWS Mainframe Modernization arquivos, siga as instruções na [AWS documentação](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html). | Administrador de sistema de mainframe | 
| Crie um bucket do S3 para a transferência de arquivos do mainframe. | [Crie um bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para armazenar o arquivo de saída da transferência de AWS Mainframe Modernization arquivos com o BMC. No diagrama da arquitetura, esse é o bucket de destino file-transfer. | Engenheiro de migração | 
| Crie um endpoint de transferência de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Especialista no AWS Mainframe Modernization | 

### Converter a extensão do nome do arquivo de mainframe para integração com o QuickSight
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | [Crie um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para a função do Lambda para copiar o arquivo de mainframe convertido do bucket de origem para o bucket de destino final. | Engenheiro de migração | 
| Crie uma função do Lambda. | Para criar uma função do Lambda que altere a extensão do arquivo e copie o arquivo do mainframe para o bucket de destino, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Crie um gatilho do Amazon S3 para invocar uma função do Lambda. | Para configurar um gatilho que invoque a função do Lambda, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Para obter mais informações, consulte [Tutorial: Como usar um trigger do Amazon S3 para chamar uma função Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Líder de migração | 
| Adicione permissões do IAM para a função do Lambda. | As permissões do IAM são necessárias para que a função do Lambda acesse os buckets do S3 de destino file-transfer e do conjunto de dados de origem. Atualize a política associada ao perfil de execução da função do Lambda concedendo as permissões `s3:GetObject` e `s3:DeleteObject`** **autorizando** **o bucket do S3 de destino file-transfer e acesso `s3:PutObject` para o bucket do S3 do conjunto de dados de origem.Para obter mais informações, consulte a seção [Criação de uma política de permissões](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy)** **no *Tutorial: como usar um acionador do Amazon S3 para invocar uma função do Lambda*. | Líder de migração | 

### Definir uma tarefa de transferência de dados de mainframe
<a name="define-a-mainframe-data-transfer-task"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tarefa de transferência para copiar o arquivo do mainframe para o bucket do S3. | Para criar uma tarefa de transferência de arquivos de mainframe, siga as instruções na [documentação do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html).**Especifique a codificação da **página de código-fonte** como **IBM1047** e a codificação da **página de código de destino** como UTF-8.** | Engenheiro de migração | 
| Verifique a tarefa de transferência. | Para verificar se a transferência de dados foi bem-sucedida, siga as instruções na [documentação do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console). Confirme se o arquivo do mainframe está no bucket do S3 de destino file-transfer. | Líder de migração | 
| Verifique a função de cópia do Lambda. | Verifique se a função do Lambda foi iniciada e se o arquivo foi copiado com uma extensão.csv para o bucket do S3 do conjunto de dados de origem.O arquivo.csv criado pela função do Lambda é o arquivo de dados de entrada para o QuickSight. Por dados de exemplo, consulte o arquivo `Sample-data-member-healthcare-APG` na seção [Anexos](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68). | Líder de migração | 

### Conectar o QuickSight aos dados do mainframe
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o QuickSight. | Para configurar o QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html). | Líder de migração | 
| Crie um conjunto de dados para o QuickSight. | Para criar um conjunto de dados para o QuickSight, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html). O arquivo de dados de entrada é o arquivo de mainframe convertido que foi criado quando você definiu a tarefa de transferência de dados de mainframe. | Líder de migração | 

### Obter insights de negócios com base nos dados do mainframe usando o Amazon Q no QuickSight
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Amazon Q no QuickSight. | Esse recurso requer a Enterprise Edition. Para configurar o Amazon Q no QuickSight, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Líder de migração | 
| Analise os dados do mainframe e crie um painel visual. | Para analisar e visualizar seus dados no QuickSight, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Quando terminar, você poderá publicar seu painel para compartilhar com outras pessoas em sua organização. Para ver exemplos, consulte *Painel visual do mainframe* na seção [Informações adicionais](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Engenheiro de migração | 

### Criar uma narrativa analítica com o Amazon Q no QuickSight com base nos dados do mainframe
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma narrativa analítica. | Crie uma narrativa analítica para explicar os insights da análise anterior e gere uma recomendação para aumentar a imunização preventiva dos membros:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Engenheiro de migração | 
| Veja a narrativa analítica gerada. | Para ver a narrativa analítica gerada, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html). | Líder de migração | 
| Edite uma narrativa analítica gerada. | Para alterar a formatação, o layout ou os elementos visuais em uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html). | Líder de migração | 
| Compartilhe uma narrativa analítica. | Para compartilhar uma narrativa analítica, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html). | Engenheiro de migração | 

## Solução de problemas
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Não foi possível descobrir os arquivos de mainframe ou os conjuntos de dados inseridos nos **critérios de pesquisa de conjuntos de dados** para **Criar tarefa de transferência** na transferência de AWS Mainframe Modernization arquivos com BMC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

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

Para converter tipos de dados de mainframe, como [PACKED-DECIMAL (COMP-3)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) ou [BINARY (COMP ou COMP-4)](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-binary-comp-comp-4), em um [tipo de dados](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) compatível com o QuickSight, consulte os seguintes padrões:
+ [Converta e descompacte dados EBCDIC em 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)
+ [Converta arquivos de mainframe do formato EBCDIC para o formato ASCII delimitado por caracteres no Amazon S3 usando 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)

## Mais informações
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional"></a>

**S3 .py CopyLambda**

O código Python a seguir foi gerado usando um prompt com o Amazon Q em um 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'
}
```

**Painel visual do mainframe**

O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta de análise `show member distribution by region`*.*

![\[Gráfico mostrando o número de membros para sudoeste, centro-oeste, nordeste e sudeste.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


O elemento visual de dados a seguir foi criado pelo Amazon Q no QuickSight para a pergunta `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/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Saída de narrativas analíticas**

As capturas de tela a seguir mostram seções da narrativa analítica criada pelo Amazon Q no QuickSight para o 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.`

Na introdução, a narrativa analítica recomenda escolher a região com mais membros para obter o maior impacto dos esforços de imunização.

![\[Página de introdução para narrativa analítica com foco nas taxas de conclusão da imunização.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


A narrativa analítica fornece uma análise do número de membros das três principais regiões e nomeia o sudoeste como a principal região para se concentrar nos esforços de imunização.

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


**nota**  
As regiões sudoeste e nordeste têm, cada uma, oito membros. No entanto, o sudoeste tem mais membros que não estão totalmente vacinados, por isso tem mais potencial para se beneficiar de iniciativas para aumentar as taxas de imunização.

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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Implemente a autenticação baseada no Microsoft Entra ID em um aplicativo de AWS mainframe modernizado da Blue Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani e Rimpy Tewani, Amazon Web Services*

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

**nota**  
AWS Mainframe Modernization O serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Os aplicativos de mainframe que são modernizados usando padrões de refatoração, como os do [AWS Mainframe Modernization Refactor com AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), exigem uma integração cuidadosa dos mecanismos de autenticação na nova arquitetura do aplicativo. Essa integração geralmente é tratada como uma atividade de pós-modernização. A tarefa pode ser complexa e geralmente envolve a migração ou a externalização dos sistemas de autenticação existentes para se alinharem aos padrões de segurança modernos e às práticas nativas da nuvem. Os desenvolvedores precisam considerar como implementar a autenticação de forma eficaz enquanto trabalham dentro das restrições do ambiente de runtime e das bibliotecas da aplicação modernizada. Após a modernização, AWS fornece maneiras de facilitar a integração do código moderno do AWS Blu Age com sistemas de gerenciamento de identidade e acesso, como o [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) [e o Microsoft](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) Entra ID (anteriormente conhecido como Azure AD).

Este padrão explica como implementar um mecanismo de autenticação em sua aplicação modernizada quando o provedor de autenticação for o Microsoft Entra ID, sem gastar tempo em pesquisas e testes. O padrão fornece:
+ Bibliotecas do Angular relevantes e testadas em campo da Microsoft Authentication Library (MSAL) e outras documentações do Microsoft Entra ID que são essenciais para a implementação da autenticação. 
+ Configurações necessárias no AWS Blu Age Runtime para habilitar o Spring Security usando OAuth 2.0.
+ Uma biblioteca que captura as identidades dos usuários autenticados e as passa para o Blu Age Runtime. AWS 
+ Medidas de segurança que recomendamos implementar.
+ Dicas de solução de problemas comuns com a configuração do Microsoft Entra ID.

**nota**  
Esse padrão usa a biblioteca de OAuth extensões AWS Blu Age, que é fornecida aos clientes como parte de seu contrato de [serviços AWS profissionais](https://aws.amazon.com/professional-services/). Essa biblioteca não faz parte do AWS Blu Age Runtime.

## Pré-requisitos e limitações
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Pré-requisitos **
+ Um aplicativo modernizado que foi produzido pelas ferramentas de refatoração de modernização de mainframe da AWS Blu Age. Esse padrão é usado [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)como exemplo de aplicativo de mainframe de código aberto.
+ A biblioteca de OAuth extensões AWS Blu Age, que é fornecida pela equipe da AWS Blu Age durante sua interação com os [AWS Serviços Profissionais](https://aws.amazon.com/professional-services/).
+ Um ativo Conta da AWS para implantar e testar o aplicativo modernizado.
+ Familiaridade com os arquivos de configuração do AWS Blu Age e os fundamentos do Microsoft Entra ID.

**Limitações**
+ Esse padrão abrange a autenticação OAuth 2.0 e os fluxos básicos de autorização baseados em tokens. Cenários avançados de autorização e mecanismos minuciosos de controle de acesso não estão no escopo.
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

**Versões do produto**

Este padrão foi desenvolvido usando:
+ AWS Blu Age Runtime versão 4.1.0 (o padrão também funciona com versões posteriores que são compatíveis com versões anteriores)
+ Biblioteca MSAL versão 3.0.23
+ Java Development Kit (JDK) versão 17
+ Angular versão 16.1

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

**Pilha de tecnologia de origem**

Em ambientes típicos de mainframe, a autenticação é implementada por meio de perfis de usuário. Esses perfis identificam os usuários do sistema, definem quem pode fazer login e especificam quais funções os usuários podem executar nos recursos do sistema. Os perfis de usuário são gerenciados por agentes de segurança ou administradores de segurança.

**Pilha de tecnologias de destino**
+ Microsoft Entra ID
+ Backend modernizado baseado em Java Spring Boot
+ AWS Tempo de execução do Blu Age
+ Spring Security com OAuth 2.0
+ Aplicação de página única (SPA) do Angular

**Arquitetura de destino**

AWS O tempo de execução do Blu Age oferece suporte OAuth à autenticação baseada em 2.0 por padrão, então o padrão usa esse padrão para proteger o back-end. APIs

O diagrama a seguir ilustra o fluxo do processo.

**nota**  
O diagrama inclui o Amazon Aurora como exemplo de modernização do banco de dados, embora o Aurora não esteja incluído nas etapas deste padrão.

![\[Fluxo do processo de autenticação baseada no Entra ID para uma aplicação do AWS Blu Age.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


em que:

1. Um usuário tenta se autenticar com o Microsoft Entra ID.

1. O Microsoft Entra ID retorna tokens de atualização, acesso e ID que a aplicação usa em chamadas subsequentes.

1. O interceptor MSAL inclui o token de acesso no `Authorization` cabeçalho de uma solicitação HTTPS para chamar o AWS Blu Age Runtime.

1. A `extension-oauth` biblioteca AWS Blu Age extrai as informações do usuário do cabeçalho usando um arquivo de configuração do AWS Blu Age Runtime (`application-main.yml`) e coloca essas informações em um `SharedContext` objeto para que a lógica de negócios possa consumi-las.
**nota**  
`SharedContext`é um componente de tempo de execução fornecido pela AWS Blu Age que gerencia o contexto do aplicativo e as informações de estado em todo o aplicativo modernizado. Para obter mais informações sobre os componentes e atualizações do AWS Blu Age Runtime, consulte as [notas de lançamento do AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) na AWS Mainframe Modernization documentação. Para obter mais informações sobre o `application-main.yml` arquivo, consulte [Configurar a configuração do AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) na AWS Mainframe Modernization documentação.

1. O AWS Blu Age Runtime verifica se o token está presente. 

   1. Se o token estiver presente, ele verifica a validade do token comunicando-se com o Microsoft Entra ID. 

   1. Se o token não estiver presente, o AWS Blu Age Runtime retornará um erro com o código de status HTTP 403.

1. Se o token for válido, o AWS Blue Age Runtime permite que a lógica de negócios continue. Se o token for inválido, o AWS Blu Age Runtime retornará um erro com o código de status HTTP 403.

**OAuth Fluxo de trabalho 2.0**

Para obter um diagrama de alto nível do fluxo de trabalho OAuth 2.0, consulte a [documentação do Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

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

**Serviços da AWS**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornece ferramentas e recursos para ajudá-lo a planejar e implementar a migração e a modernização de mainframes para ambientes de tempo de execução AWS gerenciados. Você pode usar os recursos de refatoração desse serviço, fornecidos pela AWS Blu Age, para converter e modernizar seus aplicativos de mainframe antigos.

**nota**  
AWS Mainframe Modernization O serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Repositório de código**

O CardDemo aplicativo foi atualizado para demonstrar a integração com o Microsoft Entra ID. Você pode acessar o código do [GitHub repositório para esse padrão](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app).

**Configuração de backend**

Esse padrão requer alterações no arquivo de `application-main.yml`**** configuração para habilitar o Spring Security usando OAuth 2.0 no aplicativo de back-end.  Este é um exemplo de arquivo `.yml`:

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

**AWS Biblioteca de filtros de OAuth extensão Blu Age**

A biblioteca de OAuth extensões do AWS Blu Age é fornecida pela equipe do AWS Blu Age durante seu envolvimento com os [AWS Serviços Profissionais](https://aws.amazon.com/professional-services/).

Essa biblioteca lê a configuração `claim.claims` no arquivo `application-main.yml` mostrado no bloco de código anterior. Essa configuração é uma lista. Cada item na lista fornece dois valores: `claimName` e `claimMapValue`. `claimName` representa um nome de chave em um JSON Web Token (JWT) enviado pelo frontend e `claimMapValue` é o nome da chave em `SharedContext`. Por exemplo, se você quiser capturar o ID do usuário no backend, defina `claimName` com o nome da chave no JWT que contém o `userId` que é fornecido pelo Microsoft Entra ID, e defina `claimMapValue` com o nome da chave para buscar o ID do usuário no código do backend.

Por exemplo, se você configurar `UserId` em `claimMapValue`, poderá usar o seguinte código para extrair o ID do usuário:

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

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

Na implementação deste padrão, leve em consideração as seguintes considerações de segurança importantes.

**Importante**  
Este padrão fornece uma base para a integração da autenticação. Recomendamos que você implemente medidas de segurança além das discutidas nesta seção com base nos requisitos de sua empresa antes de implantá-las na produção.
+ **AWS segurança de configuração.**Mova valores de configuração confidenciais de `application-main.yml` para AWS Secrets Manager. Por exemplo, configure as seguintes propriedades usando o Secrets Manager:

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

  Para obter mais informações sobre como você pode usar o Secrets Manager para configurar os parâmetros do AWS Blu Age, consulte [segredos do AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html) na AWS Mainframe Modernization documentação.
+ **Proteção do ambiente de runtime.** Configure o ambiente de aplicativos modernizado com controles AWS de segurança adequados:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Registro na Amazon.** Considere adicionar o arquivo `logback-spring.xml to src/main/resources`:

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

  Para obter informações sobre como ativar o rastreamento com CloudWatch, consulte [Habilitar rastreamento para registrar a correlação](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html) na CloudWatch documentação.
+ **Configuração e tratamento de tokens.** Configure a vida útil dos tokens no Microsoft Entra ID para se alinhar aos seus requisitos de segurança. Configure os tokens de acesso para expirar em uma hora e os tokens de atualização para expirar em 24 horas. Na configuração do AWS Blu Age Runtime (`application-main.yml`), certifique-se de que a validação do JWT esteja configurada corretamente com o URI exato do emissor e os valores de público do registro do aplicativo Entra ID.

  Quando um token expira e é atualizado:

  1. O interceptor de erros da aplicação Angular trata a resposta 401 obtendo um novo token por meio do MSAL.

  1. O novo token é enviado com a solicitação subsequente.

  1. O OAuth filtro do AWS Blu Age Runtime valida o novo token e é atualizado automaticamente `SharedContext` com as informações atuais do usuário. Isso garante que a lógica de negócios continue a ter acesso ao contexto de usuário válido por meio de chamadas `SharedContext.get().getValue()`.

  Para obter mais informações sobre os componentes do AWS Blu Age Runtime e suas atualizações, consulte as notas de [lançamento do AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Segurança do AWS Blu Age Runtime.** A `oauth2-ext` biblioteca fornecida pelo AWS Blu Age deve ser colocada no local correto do diretório compartilhado (`{app-server-home}/shared/`) com as permissões de arquivo adequadas. Verifique se a biblioteca extrai com êxito as informações do usuário JWTs verificando a população de `SharedContext` objetos em seus registros.
+ **Configuração específica de declarações.** Em `application-main.yml`, defina explicitamente as declarações que você precisa do Microsoft Entra ID. Por exemplo, para capturar o e-mail e os perfis dos usuários, especifique:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Tratamento de erros.** Adicione tratamento de erros para solucionar falhas de autenticação em sua aplicação Angular; por exemplo:

  ```
  @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);
        })
      );
    }
  }
  ```
+ **Configuração do tempo limite de sessões.** Defina as configurações de tempo limite da sessão no AWS Blu Age Runtime e no Microsoft Entra ID. Por exemplo, adicione o seguinte código ao arquivo `application-main.yml`:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Você deve implementar o MsalGuard recurso em todas as rotas protegidas para impedir o acesso não autorizado. Por exemplo:

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

  As rotas que não têm MsalGuard proteção estarão acessíveis sem autenticação, potencialmente expondo funcionalidades confidenciais. Certifique-se de que todas as rotas que exigem autenticação incluam os protetores em suas configurações.

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

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure uma conta do Microsoft Azure para criar um Entra ID. | Para obter opções e instruções, consulte o [site do Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Desenvolvedor de aplicativos | 
| Configure um Microsoft Entra ID em sua aplicação. | Para saber como adicionar a autenticação Microsoft Entra ID B2C (Azure AD B2C) ao seu SPA Angular, consulte a [documentação da Microsoft](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components). Especificamente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desenvolvedor de aplicativos | 

### Clone o repositório e implante seu código AWS Blu Age
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o GitHub repositório para obter o código Angular necessário para autenticação. | Execute o comando a seguir para clonar o [GitHub repositório](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) fornecido com esse padrão em seu diretório de trabalho atual local:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Desenvolvedor de aplicativos | 
| Implante o código modernizado do AWS Blu Age em um servidor Tomcat para implementar a autenticação. | Para configurar o ambiente local que inclui o Tomcat e o servidor de desenvolvimento Angular, siga as etapas de instalação fornecidas pela equipe da AWS Blu Age como parte do engajamento do cliente com os AWS Serviços Profissionais. | Desenvolvedor de aplicativos | 

### Compilar a solução de autenticação
<a name="build-the-authentication-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Habilite a segurança do AWS Blu Age Runtime para proteger os endpoints da API REST do AWS Blu Age. | Configure o `application-main.yml` arquivo que o AWS Blu Age Runtime usa da seguinte maneira. Para ver um exemplo desse arquivo, consulte a seção [Repositório de código](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) anterior neste padrão.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desenvolvedor de aplicativos | 
| Incorpore o código de exemplo do seu ambiente local à sua base de código Angular modernizada do Blu Age. | Para obter informações sobre como incorporar o exemplo em sua base de código Angular modernizada do AWS Blu Age, consulte a seção [Repositório de código](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) anteriormente neste padrão. | Desenvolvedor de aplicativos | 
| Coloque a biblioteca `oauth2-ext` no diretório compartilhado. | Coloque a biblioteca `oauth2-ext` no diretório** **compartilhado do servidor de aplicações para que sua aplicação modernizada do** **AWS Blu Age possa usá-la**. **Execute os seguintes comandos :<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Desenvolvedor de aplicativos | 

### Implantar a solução de autenticação
<a name="deploy-the-authentication-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante a aplicação de frontend. | Execute os seguintes comandos para iniciar a aplicação de frontend localmente:<pre>npm install <br />ng serve --ssl<br />npm start</pre>Adicionar o sinalizador `--ssl` ao comando `ng serve` garante que o servidor de desenvolvimento use HTTPS, que é mais seguro do que outros protocolos e fornece uma simulação melhor de um ambiente de produção. | Desenvolvedor de aplicativos | 
| Inicie a aplicação de backend. | Inicie o servidor Tomcat no Eclipse. | Desenvolvedor de aplicativos | 

### Teste a aplicação
<a name="test-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a funcionalidade de login. | Acesse a aplicação implantada localmente em `http://localhost:4200` para verificar se os usuários devem confirmar sua identidade.O HTTP é usado aqui para fins de demonstração. Em um ambiente de produção ou outro ambiente acessível ao público, você deve usar HTTPS para fins de segurança. Mesmo para desenvolvimento local, sugerimos que você configure o HTTPS sempre que possível.O prompt de login da Microsoft deve aparecer e os usuários configurados no Microsoft Entra ID devem ter permissão para acessar a aplicação. | Desenvolvedor de aplicativos | 
| Teste o cabeçalho de autorização na solicitação. | As etapas a seguir usam o [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)aplicativo como exemplo. As etapas de teste para outras aplicações modernas podem variar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desenvolvedor de aplicativos | 
| Teste a funcionalidade de logout. | Escolha **Sair** para fazer logout e tente acessar a aplicação novamente. Isso deve apresentar um novo prompt de login. | Desenvolvedor de aplicativos | 

## Solução de problemas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O token emitido pelo Microsoft Entra ID não é compatível com a segurança do Spring Boot OAuth 2.0. | Para obter uma solução para o problema, consulte [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) no OAuth blog. | 
| Perguntas gerais relacionadas a tokens. | Para decodificar e visualizar o conteúdo de um token JWT, use o site [https://jwt.io/](https://jwt.io/). | 

## Recursos relacionados
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Para obter informações sobre como refatorar seu aplicativo usando o AWS Blu Age, consulte a documentação.AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Para entender como o OAuth 2.0 funciona, consulte o [site OAuth 2.0](https://oauth.net/2/).
+ Para obter uma visão geral da Microsoft Authentication Library (MSAL), consulte a [documentação do Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Para obter informações sobre perfis de usuário em um sistema AS/400, consulte o [tutorial do IBM i (AS400)](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ [Para o fluxo de autenticação OAuth 2.0 e OpenID Connect (OIDC) na plataforma de identidade da Microsoft, consulte a documentação do Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)

# Integre o controlador universal Stonebranch com o AWS Mainframe Modernization
<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*

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

Observação: o AWS Mainframe Modernization serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Esse padrão explica como integrar a [orquestração da workload Centro de Automação Universal do Stonebranch (UAC)](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) com o [serviço do Amazon Web Services (AWS) Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/). O serviço do AWS Mainframe Modernization migra e moderniza aplicações de mainframe para a Nuvem AWS. Ele oferece dois padrões: [Redefinição de Plataforma do AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) com Micro Focus com tecnologia empresarial e [Refatoração do AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) com o AWS Blu Age.  

O Stonebranch UAC é uma plataforma de automação e orquestração de TI em tempo real. O UAC foi projetado para automatizar e orquestrar trabalhos, atividades e fluxos de trabalho em sistemas de TI híbridos, de on-premises até a AWS. Clientes corporativos que usam sistemas de mainframe estão migrando para infraestruturas e aplicações modernizadas centradas na nuvem. As ferramentas e os serviços profissionais da Stonebranch facilitam a migração dos agendadores e recursos de automação existentes para a Nuvem AWS.

Ao migrar ou modernizar seus programas de mainframe para a Nuvem AWS usando o Serviço do AWS Mainframe Modernization, você pode usar essa integração para automatizar o agendamento em lotes, aumentar a agilidade, melhorar a manutenção e diminuir os custos.

Este padrão fornece instruções para integrar o [Agendador Stonebranch](https://www.stonebranch.com/) com aplicações de mainframe migradas para o runtime do Serviço do AWS Mainframe Modernization Micro Focus Enterprise. Esse padrão é para arquitetos de soluções, desenvolvedores, consultores, especialistas em migração e outros que trabalham em migrações, modernizações, operações ou. DevOps

**Resultados direcionados**

Esse padrão se concentra em fornecer os seguintes resultados desejados:
+ A capacidade de programar, automatizar e executar trabalhos em lote de mainframe executados no Serviço do AWS Mainframe Modernization (runtime do Microfocus) do Controlador Universal Stonebranch.
+ Monitore os processos em lote aplicativo a partir do controlador universal Stonebranch.
+ Start/Restart/Rerun/Stopprocessos em lote automática ou manualmente a partir do controlador universal Stonebranch.
+ Recupere os resultados dos processos em lote do AWS Mainframe Modernization.
+ Capture os CloudWatch registros [da AWS](https://aws.amazon.com/cloudwatch/) dos trabalhos em lote no Stonebranch Universal Controller.

## Pré-requisitos e limitações
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma aplicação Micro Focus [Bankdemo](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) com arquivos Job Control Language (JCL) e um processo em lote implantado em um ambiente do serviço do AWS Mainframe Modernization (runtime do Micro Focus)
+ Conhecimento básico de como compilar e implantar um aplicativo de mainframe executado no Micro Focus [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Conhecimento básico do Controlador universal Stonebranch
+ Licença experimental do Stonebranch (entre em contato com a [Stonebranch](https://www.stonebranch.com/))
+ Instâncias Windows ou Linux Amazon Elastic Compute Cloud (Amazon EC2) (por exemplo, xlarge) com um mínimo de quatro núcleos, 8 GB de memória e 2 GB de espaço em disco
+ Apache Tomcat versão 8.5.x ou 9.0.x
+ Ambiente de Execução Java (JRE) Oracle ou OpenJDK versão 8 ou 11
+ [Amazon Aurora Edição Compatível com MySQL](https://aws.amazon.com/rds/aurora/)
+ Bucket do [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) para repositório de exportação
+ [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) para conexões do agente Stonebranch Universal Message Service (OMS) para alta disponibilidade (HA)
+ Arquivos de instalação do controlador universal Stonebranch 7.2 Agente universal 7.2
+ [Modelo de agendamento de tarefas](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) do AWS Mainframe Modernization (última versão lançado do arquivo .zip)

**Limitações**
+ O produto e a solução foram testados e a compatibilidade foi validada somente com o OpenJDK 8 e 11.
+ O modelo [aws-mainframe-modernization-stonebranchde agendamento de tarefas de integração](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) funcionará somente com o serviço AWS Mainframe Modernization.
+ Esse modelo de agendamento de tarefas funcionará somente em uma edição Unix, Linux ou Windows dos agentes Stonebranch.
+ Alguns serviços da AWS não estão disponíveis em todas as regiões da AWS. Para conferir a disponibilidade de uma região, consulte [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte a página [Cotas e endpoints de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

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

**Arquitetura de estado final**

O diagrama a seguir mostra um exemplo de ambiente AWS necessário para esse piloto.

![\[Interação do Stonebranch UAC com o ambiente do AWS Mainframe Modernization.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. O Centro de Automação Universal (UAC) do Stonebranch inclui dois componentes principais: controlador universal e agentes universais. O Stonebranch OMS é usado como um barramento de mensagens entre o controlador e os agentes individuais.

1. O banco de dados do Stonebranch UAC é usado pelo controlador universal. O banco de dados pode ser compatível com MySQL, Microsoft SQL Server, Oracle ou Aurora MySQL.

1. Serviço de modernização de mainframe da AWS — ambiente de execução da Micro Focus com o [BankDemo aplicativo](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/) implantado. Os arquivos do BankDemo aplicativo serão armazenados em um bucket do S3. Este bucket também contém os arquivos JCL do mainframe.

1. O Stonebranch UAC pode executar as seguintes funções para a execução em lote:

   1. Inicie um trabalho em lotes usando o nome do arquivo JCL que existe no bucket do S3 vinculado ao Serviço do AWS Mainframe Modernization.

   1. Obtenha o status da execução do trabalho em lotes.

   1. Aguarde até que a execução do trabalho em lotes seja concluída.

   1. Busque os logs da execução do trabalho em lotes.

   1. Execute novamente os trabalhos em lotes com falha.

   1. Cancele o trabalho em lote enquanto o trabalho está em execução.

1. O Stonebranch UAC pode executar as seguintes funções para o aplicativo:

   1. Iniciar a replicação

   1. Obter status da aplicação

   1. Aguarde até que o aplicativo seja iniciado ou interrompido

   1. Interromper a aplicação

   1. Obter logs de operação do aplicativo

**Conversão de trabalhos do Stonebranch**

O diagrama a seguir representa o processo de conversão de trabalhos do Stonebranch durante a jornada de modernização. Ele descreve como as programações de trabalho e as definições de tarefas são convertidas em um formato compatível que pode executar tarefas em lote do AWS Mainframe Modernization.

![\[Processo do mainframe para a conversão em agendador de tarefas no Amazon EC2 com arquivos JCL no Amazon S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Para o processo de conversão, as definições de trabalho são exportadas do sistema de mainframe existente.

1. Os arquivos JCL podem ser carregados no bucket do S3 para o aplicativo de modernização de mainframe para que esses arquivos JCL possam ser implantados pelo serviço do AWS Mainframe Modernization.

1. A ferramenta de conversão converte as definições de trabalho exportadas em tarefas do UAC.

1. Depois que todas as definições de tarefas e programações de trabalho forem criadas, esses objetos serão importados para o Controlador Universal. As tarefas convertidas então executam os processos no Serviço do AWS Mainframe Modernization em vez de executá-los no mainframe.

**Arquitetura Stonebranch UAC**

O diagrama de arquitetura a seguir representa um active-active-passive modelo de controlador universal de alta disponibilidade (HA). O Stonebranch UAC é implantado em várias zonas de disponibilidade para fornecer alta disponibilidade e apoiar a recuperação de desastres (DR).

![\[Ambiente Multi-AZ com DR e controladores, Amazon EFS, Aurora e um bucket do S3 para backups.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Controlador universal*

Dois servidores Linux são provisionados como controladores universais. Ambos se conectam ao mesmo endpoint do banco de dados. Cada servidor abriga um aplicativo Universal Controller e o OMS. A versão mais recente do Controlador Universal é usada no momento em que é provisionada.

Os Controladores Universais são implantados no aplicativo web Tomcat como o documento ROOT e são servidos na porta 80. Essa implantação facilita a configuração do balanceador de carga de frontend.

O HTTP sobre TLS ou HTTPS está habilitado usando o certificado curinga Stonebranch (por exemplo, `https://customer.stonebranch.cloud`). Isso protege a comunicação entre o navegador e o aplicativo.

*OMS*

Um agente universal e o OMS (Opswise Message Service) residem em cada servidor do controlador universal. Todos os agentes universais implantados do lado do cliente são configurados para se conectarem a ambos os serviços OMS. O OMS atua como um serviço de mensagens comum entre os agentes universais e o controlador universal.

O Amazon EFS monta um diretório de spool em cada servidor. O OMS usa esse diretório de spool compartilhado para manter as informações de conexão e tarefas dos controladores e agentes. O OMS funciona em um modo de alta disponibilidade. Se o OMS ativo cair, o OMS passivo terá acesso a todos os dados e retomará as operações ativas automaticamente. Os agentes universais detectam essa alteração e se conectam automaticamente ao novo OMS ativo.

*Banco de dados*

O Amazon Relational Database Service (Amazon RDS) hospeda o banco de dados UAC, com o Amazon Aurora MySQL, compatível com Amazon Aurora MySQL como seu mecanismo. O Amazon RDS ajuda a gerenciar e oferecer backups programados em intervalos regulares. As duas instâncias do controlador universal se conectam ao mesmo endpoint do banco de dados.

*Load balancer*

Um Application Load Balancer é configurado para cada instância. O balanceador de carga direciona o tráfego para o controlador ativo a qualquer momento. Os nomes de domínio da sua instância apontam para os respectivos endpoints do balanceador de carga.

*URLs*

Cada uma de suas instâncias tem um URL, conforme mostrado no exemplo a seguir.


| 
| 
| Environment | Instância | 
| --- |--- |
| **Produção** | `customer.stonebranch.cloud` | 
| **Desenvolvimento (não produção)** | `customerdev.stonebranch.cloud` | 
| **Teste (não produção)** | `customertest.stonebranch.cloud` | 

**nota**  
  Os nomes das instâncias de não produção podem ser definidos com base nas suas necessidades.

*Alta disponibilidade*

Alta disponibilidade (HA) é a capacidade de um sistema operar continuamente sem falhas por um determinado período de tempo. Essas falhas incluem, mas não estão limitadas a, armazenamento, atrasos na resposta de comunicação do servidor causados por problemas de CPU ou memória e conectividade da rede.

Para atender aos requisitos de HA:
+ Todas as instâncias, bancos de dados e outras configurações do EC2 são espelhadas em duas zonas de disponibilidade separadas na mesma região da AWS.
+ O controlador é provisionado por meio de uma Imagem de máquina da Amazon (AMI) em dois servidores Linux nas duas zonas de disponibilidade. Por exemplo, se você estiver provisionado na região europeia eu-west-1, você tem um controlador universal na zona de disponibilidade eu-west-1a e na zona de disponibilidade eu-west-1c.
+ Nenhum trabalho pode ser executado diretamente nos servidores de aplicativos e nenhum dado pode ser armazenado nesses servidores.
+ O Application Load Balancer executa verificações de integridade em cada controlador universal para identificar o ativo e direcionar o tráfego para ele. Caso um servidor tenha problemas, o balanceador de carga automaticamente promove o controlador universal passivo para um estado ativo. O balanceador de carga então identifica a nova instância ativa do controlador universal a partir das verificações de integridade e começa a direcionar o tráfego. O failover ocorre em quatro minutos sem perda de trabalhos, e o URL do frontend permanece o mesmo.
+ O serviço de banco de dados do Aurora compatível com MySQL armazena dados do controlador universal. Para ambientes de produção, um cluster de banco de dados é criado com duas instâncias de banco de dados em duas zonas de disponibilidade diferentes em uma única região da AWS. Ambos os controladores universais usam uma interface de Conectividade do banco de dados Java (JDBC) que aponta para um único endpoint do cluster do banco de dados. Caso uma instância de banco de dados tenha problemas, o endpoint do cluster do banco de dados aponta dinamicamente para a instância íntegra. Nenhuma intervenção manual é necessária.

*Backup e limpeza*

O controlador universal Stonebranch está configurado para fazer backup e limpar dados antigos seguindo a programação mostrada na tabela.


| 
| 
| Tipo | Agendamento | 
| --- |--- |
| **Atividades** | 7 dias | 
| **Auditoria** | 90 dias | 
| **Histórico** | 60 dias | 

Os dados de backup anteriores às datas mostradas são exportados para o formato.xml e armazenados no sistema de arquivos. Após a conclusão do processo de backup, os dados mais antigos são removidos do banco de dados e arquivados em um bucket S3 por até um ano para instâncias de produção.

Você pode ajustar essa programação na interface do seu controlador universal. No entanto, aumentar esses prazos pode causar maior tempo de inatividade durante a manutenção.

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

**Serviços da AWS**
+ O [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) é um serviço nativo de nuvem da plataforma AWS que ajuda a modernizar aplicações de mainframe para ambientes de runtime gerenciados da AWS. Ele fornece ferramentas e recursos para ajudar você a planejar e implementar a migração e a modernização.
+ O [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) oferece volumes de armazenamento em bloco para usar com instâncias do Amazon EC2.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) ajuda você a criar e configurar sistemas de arquivos compartilhados na Nuvem AWS.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS. Esse padrão usa Amazon Aurora Edição compatível com MySQL.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ O [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribui o tráfego de entrada de aplicativos ou de rede em vários destinos. Por exemplo, você pode distribuir o tráfego entre instâncias do Amazon EC2, contêineres e endereços IP em uma ou mais zonas de disponibilidade. Este padrão usa um Application Load Balancer.

**Stonebranch**
+ O [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) é um sistema de produtos de automação de workload empresarial. Esse padrão usa os seguintes componentes do UAC:
  + O [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), um aplicativo web Java executado em um contêiner web Tomcat, é a solução corporativa de agendamento de tarefas e agente de automação de workload do Universal Automation Center. O controlador apresenta uma interface de usuário para criar, monitorar e configurar as informações do controlador; manipula a lógica de agendamento; processa todas as mensagens de e para os Universal Agents; e sincroniza grande parte da operação de alta disponibilidade do Universal Automation Center.
  + O [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) é um agente de agendamento independente do fornecedor que colabora com o agendador de trabalhos existente em todas as principais plataformas de computação, tanto legadas quanto distribuídas. Todos os agendadores executados em z/Series, i/Series Unix, Linux ou Windows são compatíveis.
+ O [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) é um agente de agendamento independente do fornecedor que colabora com o agendador de trabalhos existente em todas as principais plataformas de computação, tanto legadas quanto distribuídas. Todos os agendadores executados em z/Series, i/Series Unix, Linux ou Windows são compatíveis.
+ [ aws-mainframe-modernization-stonebranchIntegração com o Stonebranch O AWS Mainframe Modernization Universal](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) Extension é o modelo de integração para executar, monitorar e executar novamente trabalhos em lote na plataforma AWS Mainframe Modernization.

**Código**

O código desse padrão está disponível no GitHub repositório [aws-mainframe-modernization-stonebranch-integration](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/).

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

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe os arquivos de instalação. | Baixe a instalação dos servidores Stonebranch. Para obter os arquivos de instalação, entre em contato com a Stonebranch. | Arquiteto de nuvem | 
| Inicie a instância do EC2. | Você precisará de cerca de 3 GB de espaço extra para as instalações do Universal Controller e do Universal Agent. Portanto, forneça pelo menos 30 GB de espaço em disco para a instância.Adicione a porta 8080 ao grupo de segurança para que ela fique acessível. | Arquiteto de nuvem | 
| Verifique os pré-requisitos. | Antes da instalação, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de nuvem, administrador Linux | 
| Instale o Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Arquiteto de nuvem, administrador Linux | 
| Instale o Universal Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador de nuvem, administrador Linux | 
| Adicione o OMS ao Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Importe o AWS Mainframe Modernization Universal Extension e crie uma tarefa
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Importar modelo de integração. | Para essa etapa, você precisa do [AWS Mainframe Modernization Universal Extension](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases). Verifique se a versão mais recente do arquivo .zip foi baixada.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)Depois que o modelo de integração for importado, você verá as **Tarefas do AWS Mainframe Modernization** em **Serviços disponíveis**. | Administrador do Universal Controller | 
| Ative credenciais resolvíveis. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Inicie a tarefa. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Teste ao iniciar um trabalho em lote
<a name="test-starting-a-batch-job"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma tarefa para o trabalho em lotes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Inicie a tarefa. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Crie um fluxo de trabalho para várias tarefas
<a name="create-a-workflow-for-multiple-tasks"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Copie as tarefas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Tarefas de atualização. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Crie um fluxo de trabalho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 
| Confira o status do fluxo de trabalho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Solucione problemas de trabalhos em lotes com falha e execute novamente
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Corrija a tarefa com falha e execute novamente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Crie tarefas para iniciar o aplicativo e interromper o aplicativo
<a name="create-start-application-and-stop-application-tasks"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a ação Iniciar aplicativo. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Administrador do Universal Controller | 

### Crie uma tarefa de execução de Cancelar lote
<a name="create-a-cancel-batch-execution-task"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a ação Cancelar lote. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Recursos relacionados
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Controlador universal](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Universal Agent](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [Configurações do LDAP](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [Autenticação única SAML](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Ferramenta de conversão Xpress](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Mais informações
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Ícones no editor de fluxo de trabalho**

![\[Tarefa RUNHELLO na parte superior, FOOBAR no meio e as tarefas restantes no terceiro nível.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Todas as tarefas conectadas**

![\[O RUNHELLO se conecta ao FOOBAR, que se conecta às três tarefas restantes.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**Status do fluxo de trabalho**

![\[A tarefa FOOBAR falha e as três tarefas restantes ficam aguardando.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Migre e replique arquivos VSAM para o Amazon RDS ou o Amazon MSK usando o Connect da Precisely
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna e Boopatia GOPALSAMY, Amazon Web Services*

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

Esse padrão mostra como migrar e replicar arquivos do Método de acesso ao armazenamento virtual (VSAM - Virtual Storage Access Method) de um mainframe para um ambiente de destino na Nuvem AWS usando o [Connect](https://www.precisely.com/product/precisely-connect/connect) da Precisely. Os ambientes de destino abrangidos por este padrão incluem o Amazon Relational Database Service (Amazon RDS) e o Amazon Managed Streaming for Apache Kafka (Amazon MSK). O Connect usa a [captura de dados de alteração (CDC - change data capture)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect) para monitorar continuamente as atualizações dos seus arquivos VSAM de origem e, em seguida, transferir essas atualizações para um ou mais dos seus ambientes de destino da AWS. Você pode usar esse padrão para atender às suas metas de modernização de aplicativos ou análise de dados. Por exemplo, você pode usar o Connect para migrar seus arquivos do aplicativo VSAM para a Nuvem AWS com baixa latência ou migrar seus dados do VSAM para um data warehouse ou data lake da AWS para análises que possam tolerar latências de sincronização maiores do que as necessárias para a modernização do aplicativo.

## Pré-requisitos e limitações
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Pré-requisitos **
+ [IBM z/OS V2R1](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument) ou posterior
+ [Servidor de transações CICS para z/OS (CICS TS) V5.1 ou posterior (captura de dados 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) ou superior
+ Conformidade com os [requisitos de segurança do 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) (por exemplo, autorização do APF para SQData carregar bibliotecas)
+ Logs de recuperação do VSAM ativados
+ (Opcional) [Versão de recuperação do CICS VSAM (CICS VR - CICS VSAM Recovery Version)](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr) para capturar automaticamente os registros do CDC
+ Uma conta AWS ativa
+ Uma [nuvem privada virtual (VPC) da Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) com uma sub-rede acessível por sua plataforma legada
+ Uma licença VSAM Connect da Precisely

**Limitações**
+ O Connect não oferece suporte à criação automática de tabelas de destino com base nos esquemas ou copybooks do VSAM de origem. Você deve definir a estrutura da tabela de destino pela primeira vez.
+ Para destinos sem streaming, como o Amazon RDS, você deve especificar a fonte de conversão para o mapeamento de destino no script de configuração do Apply Engine.
+ As funções de registro, monitoramento e alerta são implementadas APIs e exigem que componentes externos (como a Amazon CloudWatch) estejam totalmente operacionais.

**Versões do produto**
+ SQData 40134 para z/OS
+ SQData 4.0.43 para o Amazon Linux Amazon Machine Image (AMI) na Amazon Elastic Compute Cloud (Amazon) EC2

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

**Pilha de tecnologia de origem**
+ Job Control Language (JCL - Linguagem de controle de trabalho)
+ Shell z/OS Unix e Interactive System Productivity Facility (ISPF - Facilidade de produtividade do sistema interativo)
+ Utilitários VSAM (IDCAMS)

**Pilha de tecnologias de destino**
+ Amazon EC2
+ Amazon MSK
+ Amazon RDS
+ Amazon VPC

**Arquitetura de destino**

*Migração de arquivos VSAM para o Amazon RDS*

O diagrama a seguir mostra como migrar arquivos VSAM para um banco de dados relacional, como o Amazon RDS, em tempo real ou quase em tempo real usando o CDC agent/publisher no ambiente de origem (mainframe local) e o [Apply Engine no](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) ambiente de destino (Nuvem AWS).

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


O diagrama mostra o seguinte fluxo de trabalho em lote:

1. O Connect captura as alterações em um arquivo comparando os arquivos VSAM dos arquivos de backup para identificar as alterações e, em seguida, envia as alterações para o fluxo de registros.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas a um mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O mecanismo de aplicação no ambiente de destino recebe as alterações do agente do Publisher e as aplica a um banco de dados relacional ou não relacional.

O diagrama mostra o seguinte fluxo de trabalho on-line:

1. O Connect captura as alterações no arquivo on-line usando uma replicação de log e, em seguida, transmite as alterações capturadas para um logstream.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O mecanismo de aplicação no ambiente de destino recebe as alterações do agente do Publisher e as aplica a um banco de dados relacional ou não relacional.

*Migração de arquivos VSAM para o Amazon MSK*

O diagrama a seguir mostra como transmitir estruturas de dados VSAM de um mainframe para o Amazon MSK no modo de alto desempenho e gerar automaticamente conversões de esquema JSON ou AVRO que se integram ao Amazon MSK.

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


O diagrama mostra o seguinte fluxo de trabalho em lote:

1. O Connect captura as alterações em um arquivo usando o CICS VR ou comparando arquivos VSAM de arquivos de backup para identificar alterações. As alterações capturadas são enviadas para o fluxo de registros.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O Replicator Engine que está operando no modo de processamento paralelo divide os dados em uma unidade de cache de trabalho.

1. Os segmentos de trabalho capturam os dados do cache.

1. Os dados são publicados nos tópicos do Amazon MSK a partir dos segmentos de trabalho.

1. [Os usuários aplicam alterações do Amazon MSK a destinos como Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) ou Amazon Service usando conectores OpenSearch .](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

O diagrama mostra o seguinte fluxo de trabalho on-line:

1. As alterações no arquivo on-line são capturadas usando uma replicação de log. As alterações capturadas são transmitidas para o logstream.

1. O publicador consome dados do fluxo de log do sistema.

1. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

1. O Replicator Engine que está operando no modo de processamento paralelo divide os dados em uma unidade de cache de trabalho.

1. Os segmentos de trabalho capturam os dados do cache.

1. Os dados são publicados nos tópicos do Amazon MSK a partir dos segmentos de trabalho.

1. [Os usuários aplicam alterações do Amazon MSK a destinos como DynamoDB, Amazon S3 ou Service usando conectores OpenSearch .](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Ferramentas
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ O [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) é um serviço totalmente gerenciado que ajuda você a criar e executar aplicações que usam o Apache Kafka para processar dados em streaming.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.

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

### Prepare o ambiente de origem (mainframe)
<a name="prepare-the-source-environment-mainframe"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Configure o diretório zFS. | Para configurar um diretório zFS, siga as instruções dos [diretórios de variáveis do zFS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS/zFS-variable-directories) na documentação do Precisely.As configurações do daemon e do Capture/Publisher agente do controlador são armazenadas no sistema de arquivos do z/OS UNIX Systems Services (conhecido como zFS). Os agentes Controller Daemon, Capture, Storage e Publisher exigem uma estrutura de diretórios zFS predefinida para armazenar um pequeno número de arquivos. | Desenvolvedor/administrador de mainframe IBM | 
| Configure TCP/IP portas. | Para configurar TCP/IP portas, siga as instruções das portas [TCP/IP na documentação do Precisely](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX/Prerequisites-for-UNIX/Security-authorization-requirements-for-UNIX/TCP/IP-ports).O Controller Daemon requer TCP/IP portas nos sistemas de origem. As portas são referenciadas pelos mecanismos nos sistemas de destino (onde os dados de alteração capturados são processados). | Desenvolvedor/administrador de mainframe IBM | 
| Crie um z/OS logstream. | Para criar um [fluxo de registros do z/OS](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), siga as instruções de [Criar fluxos de registros do z/OS sistema](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) na documentação Precisely.O Connect usa o logstream para capturar e transmitir dados entre o ambiente de origem e o ambiente de destino durante a migração.Para ver um exemplo de JCL que cria um z/OS LogStream, consulte [Criar LogStreams z/OS do sistema na documentação](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) Precisely. | Desenvolvedor de mainframe da IBM | 
| Identifique e autorize IDs usuários do zFS e tarefas iniciadas. | Use o RACF para conceder acesso ao sistema de arquivos OMVS zFS. Para ver um exemplo de JCL, consulte [Identificar e autorizar o usuário do ZFS e a tarefa iniciada IDs na documentação](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) do Precisely. | Desenvolvedor/administrador de mainframe IBM | 
| Gere chaves z/OS públicas/privadas e o arquivo de chave autorizado. | Execute o JCL para gerar o par de chaves. Para obter um exemplo, consulte *Exemplo de par de chaves* na seção *Informações adicionais* desse padrão.Para obter instruções, consulte [Gerar chaves z/OS públicas e privadas e arquivo de chave autorizado](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) na documentação do Precisely. | Desenvolvedor/administrador de mainframe IBM | 
| Ative o CICS VSAM Log Replicate e anexe-o ao fluxo de logs. | Execute o seguinte 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> | Desenvolvedor/administrador de mainframe IBM | 
| Ative o log de recuperação de arquivos VSAM por meio de um FCT. | Modifique a Tabela de controle de arquivos (FCT - File Control Table) para refletir as seguintes alterações de parâmetros:<pre> Configure FCT Parms<br />   CEDA ALT FILE(name) GROUP(groupname)<br />   DSNAME(data set name)<br />   RECOVERY(NONE|BACKOUTONLY|ALL)<br />   FWDRECOVLOG(NO|1–99)<br />   BACKUPTYPE(STATIC|DYNAMIC)<br />   RECOVERY PARAMETERS<br />   RECOVery : None | Backoutonly | All<br />   Fwdrecovlog : No | 1-99<br />   BAckuptype : Static | Dynamic</pre> | Desenvolvedor/administrador de mainframe IBM | 
| Configure o CDCz Log para o agente do Publisher. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Ative o Daemon do controlador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Ative o publicador. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 
| Ative o fluxo de registro. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor/administrador de mainframe IBM | 

### Preparar o ambiente de destino (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale com precisão em uma EC2 instância. | Para instalar o Connect from Precisely no Amazon Linux AMI para Amazon EC2, siga as instruções de [Install Connect CDC (SQData) no UNIX na documentação](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX) do Precisely. | AWS geral | 
|  TCP/IP Portas abertas. | Para modificar o grupo de segurança para incluir as portas do Controller Daemon para acesso de entrada e saída, siga as instruções do [TCP/IP](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Change-data-capture/Transient-storage-and-publishing/TCP/IP) na documentação do Precisely. | AWS geral | 
| Crie diretórios de arquivos. | Para criar diretórios de arquivos, siga as instruções de [Preparar o ambiente de aplicação de destino](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-targets/Kafka/Prepare-target-apply-environment) na documentação do Precisely. | AWS geral | 
| Crie o arquivo de configuração do Apply Engine. | Crie o arquivo de configuração do Apply Engine no diretório de trabalho do Apply Engine. O exemplo de arquivo de configuração a seguir mostra o Apache Kafka como destino:<pre>builtin.features=SASL_SCRAM<br />  security.protocol=SASL_SSL<br />  sasl.mechanism=SCRAM-SHA-512<br />  sasl.username=<br />  sasl.password=<br />  metadata.broker.list=</pre>Para obter mais informações, consulte [Segurança](https://kafka.apache.org/documentation/#security) na documentação do Apache Kafka. | AWS geral | 
| Crie scripts para o processamento do Apply Engine. | Crie os scripts para que o Apply Engine processe os dados de origem e replique os dados de origem para o destino. Para obter mais informações, consulte [Criar um script de mecanismo de aplicação](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) na documentação do Precisely. | AWS geral | 
| Execute os scripts. | Use os comandos `SQDPARSE` e `SQDENG` para executar o script. Para obter mais informações, consulte [Analisar um script para ZoS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Parse-a-script/Parse-a-script-for-zOS) na documentação do Precisely. | AWS geral | 

### Valide o ambiente
<a name="validate-the-environment"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide a lista de arquivos VSAM e tabelas de destino para processamento de CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS geral, Mainframe | 
| Verifique se o SQData produto Connect CDC está vinculado. | Execute um trabalho de teste e verifique se o código de retorno desse trabalho é 0 (bem-sucedido).As mensagens de status do Connect CDC SQData Apply Engine devem mostrar mensagens de conexão ativas. | AWS geral, Mainframe | 

### Execute e valide casos de teste (Batch)
<a name="run-and-validate-test-cases-batch"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute o trabalho em lotes no mainframe. | Execute o trabalho de aplicação em lote usando um JCL modificado. Inclua etapas na JCL modificada que façam o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS geral, Mainframe | 
| Verifique o fluxo de logs. | Verifique o fluxo de registros para confirmar que você pode ver os dados de alteração do trabalho em lote concluído do mainframe. | AWS geral, Mainframe | 
| Valide as contagens das alterações do delta de origem e da tabela de destino. | Para confirmar se os registros foram contabilizados, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | AWS geral, Mainframe | 

### Execute e valide casos de teste (on-line)
<a name="run-and-validate-test-cases-online"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute a transação on-line em uma região do CICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Desenvolvedor de mainframe da IBM | 
| Verifique o fluxo de logs. | Confirme se o fluxo de registros está preenchido com alterações específicas no nível do registro. | Desenvolvedor do AWS Mainframe | 
| Valide a contagem no banco de dados de destino. | Monitore o mecanismo de aplicação para obter contagens de níveis recordes. | Precisely, Linux | 
| Valide as contagens de registros e os registros de dados no banco de dados de destino. | Consulte o banco de dados de destino para validar as contagens de registros e os registros de dados. | AWS geral | 

## Recursos relacionados
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/VSAM-z/OS) (documentação do Precisely)
+ [Aplique o mecanismo](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) (documentação do Precisely)
+ [Mecanismo replicador](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (documentação do Precisely)
+ [O fluxo de logs](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (documentação da IBM)

## Mais informações
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-additional"></a>

**Exemplo do arquivo de configuração**

Este é um exemplo de arquivo de configuração para um fluxo de logs em que o ambiente de origem é um mainframe e o ambiente de destino é o 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;
```

**Exemplo de par de chaves**

Este é um exemplo de como executar o JCL para gerar o par de chaves:

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

# Modernize o aplicativo de CardDemo mainframe usando AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

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

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

O [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html) foi projetado para acelerar a modernização das aplicações de mainframe. Ele usa IA generativa para agilizar o processo de modernização do mainframe. Ele automatiza tarefas complexas, como: análise de código legado, documentação de mainframe, extração de regras de negócios, decomposição de aplicações monolíticas em domínio comercial e refatoração de código. Ele acelera os projetos de modernização automatizando tarefas complexas, como análise de aplicações e planejamento da sequência de migração. Ao decompor aplicativos monolíticos, sequencia de AWS Transform forma inteligente a transformação do aplicativo de mainframe, o que ajuda você a transformar as funções de negócios em paralelo. AWS Transform pode acelerar a tomada de decisões e aprimorar a agilidade operacional e a eficiência da migração.

Esse padrão oferece step-by-step instruções para ajudá-lo a testar os recursos de modernização do mainframe AWS Transform usando [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), que é um exemplo de aplicativo de mainframe de código aberto.

## Pré-requisitos e limitações
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Centro de Identidade do AWS IAM, [habilitado](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Permissões](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform) que permitem que os administradores habilitem AWS Transform
+ [Permissões](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector) que permitem que os administradores aceitem solicitações de conexão do Amazon Simple Storage Service (Amazon S3) para o aplicativo web AWS Transform 

**Limitações**
+ AWS Transform está disponível apenas em alguns Regiões da AWS. Para obter uma lista completa das regiões aceitar, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform suporta análise de código, geração de documentos, extração de regras de negócios, decomposição e refatoração da Common Business-Oriented Language (COBOL) para Java. Para obter mais informações, consulte [Capabilities and key features](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) e [Supported file types for transformation of mainframe applications](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files).
+ Há uma cota de serviço para recursos de transformação de mainframe no AWS Transform. Para mais informações, consulte [Cotas para o AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para colaborar em um espaço de trabalho compartilhado, todos os usuários devem ser usuários registrados da mesma instância associada à sua instância do aplicativo AWS Transform web. Centro de Identidade do AWS IAM 
+ O bucket do Amazon S3 AWS Transform deve estar na mesma região Conta da AWS .

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

O diagrama a seguir mostra a arquitetura que é configurada neste padrão.

![\[Usar o AWS Transform para modernizar uma aplicação de mainframe que é armazenada em um bucket do Amazon S3.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. AWS Transform usa um conector para acessar o aplicativo de CardDemo mainframe, que é armazenado em um bucket do Amazon S3.

1. AWS Transform usa Centro de Identidade do AWS IAM para gerenciar o acesso e a autenticação do usuário. O sistema implementa várias camadas de controles de segurança para autenticação, autorização, criptografia e gerenciamento de acesso para ajudar a proteger códigos e artefatos durante o processamento. Os usuários interagem com o AWS Transform agente por meio de uma interface de bate-papo. Você pode fornecer instruções ao agente de IA para tarefas específicas em inglês. Para obter mais informações, consulte [Human in the loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl) na AWS Transform documentação.

1. O agente de IA interpreta as instruções do usuário, cria um plano de trabalho, divide o trabalho em tarefas executáveis e o executa de forma autônoma. Os usuários podem revisar e aprovar a transformação. As tarefas de transformação incluem o seguinte:
   + **Análise de código** — AWS Transform analisa o código em cada arquivo para obter detalhes como nome do arquivo, tipo de arquivo, linhas de código e seus caminhos. O agente analisa o código-fonte, executa classificações, cria mapeamentos de dependências e identifica quaisquer artefatos ausentes. Ele também identifica componentes duplicados.
   + **Geração de documentos** — AWS Transform gera documentação para o aplicativo de mainframe. Ao analisar o código, ele pode criar automaticamente uma documentação detalhada dos programas de aplicações, incluindo descrições da lógica de negócios, fluxos, integrações e dependências presentes em seus sistemas legados.
   + **Extração da lógica de negócios** — AWS Transform analisa os programas COBOL para documentar sua lógica de negócios principal, para ajudá-lo a entender a lógica comercial fundamental.
   + **Decomposição de código** — AWS Transform decompõe o código em domínios que respondem pelas dependências entre programas e componentes. O agrupamento de arquivos e programas relacionados no mesmo domínio melhora a organização e ajuda a preservar a estrutura lógica da aplicação ao dividi-la em componentes menores.
   + **Planejamento da onda de migração** — Com base nos domínios que você criou durante a fase de decomposição, AWS Transform gera um plano de onda de migração com a ordem de modernização recomendada.
   + **Refatoração de código — AWS Transform refatora** o código em todos os arquivos de domínio ou em arquivos de domínio selecionados em código Java. O objetivo dessa etapa é preservar a lógica comercial essencial da aplicação e, ao mesmo tempo, refatorá-la em uma aplicação Java modernizada e otimizada para a nuvem.

1. AWS Transform armazena o código refatorado, os documentos gerados, os artefatos associados e as bibliotecas de tempo de execução em seu bucket do Amazon S3. Você pode fazer o seguinte:
   + Acesse a pasta de runtime no bucket do Amazon S3.
   + Crie e implante o aplicativo seguindo a seção [Criar e implantar seu aplicativo modernizado após a refatoração](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) na documentação. AWS Transform 
   + Por meio da interface de bate-papo, solicite e baixe uma amostra AWS CloudFormation ou modelo do Hashicorp Terraform. AWS Cloud Development Kit (AWS CDK) Esses modelos podem ajudá-lo a implantar os AWS recursos necessários para dar suporte ao aplicativo refatorado.
   + Use o [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) para melhorar a qualidade do código refatorado usando modelos de linguagem grandes (). LLMs O mecanismo de refatoração preserva a equivalência funcional do COBOL enquanto o transforma em código Java. O Reforge é uma etapa opcional que está disponível após a transformação. Essa etapa é usada LLMs para reestruturar o código para que se pareça muito com o Java nativo, o que pode melhorar a legibilidade e a capacidade de manutenção. O Reforge também adiciona comentários legíveis para ajudar você a entender o código e implementa padrões de codificação modernos e práticas recomendadas.

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

**Serviços da AWS**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)usa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware 
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) aos seus Contas da AWS aplicativos e à nuvem.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

**Repositório de código**

Você pode usar o aplicativo de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código aberto como um aplicativo de exemplo para começar a modernizar o mainframe.

## Práticas recomendadas
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Comece pequeno** — comece com um código pequeno e menos complexo (15.000 a 20.000 linhas de código) para entender como AWS Transform analisa e transforma aplicativos de mainframe.
+ **Combine com a experiência humana** — Use AWS Transform como um acelerador enquanto aplica a experiência humana para obter os melhores resultados.
+ **Revise e teste minuciosamente**: sempre revise cuidadosamente o código transformado e execute testes abrangentes para validar a equivalência funcional após a transformação.
+ **Forneça feedback** — Para fornecer feedback e sugestões de melhoria, use o botão **Enviar feedback** no Console de gerenciamento da AWS ou crie um caso com [AWS Support](https://support.console.aws.amazon.com/). Para obter mais informações, consulte [Criar um caso de suporte](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Sua opinião é valiosa para aprimoramentos de serviços e desenvolvimento futuro.

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

### Preparar a aplicação de mainframe
<a name="prepare-the-mainframe-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket. | Crie um bucket do Amazon S3 na mesma Conta da AWS região em que AWS Transform está habilitado. Você usa esse bucket para armazenar o código do aplicativo de mainframe e AWS Transform usa esse bucket para armazenar os documentos gerados, o código refatorado e outros arquivos associados à transformação. Para obter instruções, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na documentação do Amazon S3. | AWS geral | 
| Prepare a amostra da aplicação de mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Desenvolvedor de aplicativos, DevOps engenheiro | 

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


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Adicione usuários ao Centro de Identidade do IAM. | Adicione seus usuários em potencial ao Centro de Identidade do IAM. Siga as instruções em [Adicionar usuários no IAM Identity Center](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users) na AWS Transform documentação. | Administrador da AWS | 
| Habilite AWS Transform e adicione usuários. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Administrador da AWS | 
| Configure o acesso do usuário ao aplicativo AWS Transform web. | Cada usuário deve aceitar o convite para acessar o aplicativo AWS Transform web. Siga as instruções em [Aceitar o convite](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Faça login no aplicativo AWS Transform web. | Siga as instruções em [Fazer login em AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Configure um espaço de trabalho. | Configure um espaço de trabalho onde os usuários possam colaborar no aplicativo AWS Transform web. Siga as instruções em [Iniciar seu projeto](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow) na AWS Transform documentação. | Administrador da AWS | 

### Transformar a aplicação de mainframe
<a name="transform-the-mainframe-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um trabalho de transformação. | Crie um trabalho de transformação para modernizar o aplicativo de CardDemo mainframe. Para obter instruções, consulte [Criar e iniciar um trabalho](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job) na AWS Transform documentação. Quando você for solicitado a definir os objetivos na interface de AWS Transform bate-papo, escolha **Executar modernização do mainframe (IBM z/OS to AWS)** e, em seguida, escolha **Analisar código, Gerar documentação técnica, Lógica de negócios, Decompor código, Planejar sequência de migração e Transformar** código em Java. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Configure o conector. | Estabeleça um conector para o bucket do Amazon S3 que contém o aplicativo de CardDemo mainframe. Esse conector permite AWS Transform acessar recursos no bucket e executar funções de transformação consecutivas. Para obter instruções, consulte [Configurar um conector](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) na AWS Transform documentação. | Administrador da AWS | 
| Realizar a análise do código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Análise de código](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Gere documentação técnica. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Gerar documentação técnica](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Extraia a lógica de negócios. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Extrair lógica de negócios](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Decomponha o código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações sobre decomposição e sementes, consulte [Decomposição](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Planejar as ondas de migração. | Planeje as ondas de migração para o CardDemo aplicativo. Siga as instruções em [Planejamento de ondas de migração](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) na AWS Transform documentação para revisar e editar o plano de ondas. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Refatore o código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| (Opcional) Use o Reforge para melhorar o código Java. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Simplifique a implantação. | AWS Transform pode fornecer modelos de infraestrutura como código (IaC) para CloudFormation AWS CDK, ou Terraform. Esses modelos ajudam você a implantar componentes principais, incluindo recursos de computação, banco de dados, armazenamento e segurança.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Para obter mais informações, consulte [Recursos de implantação](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment) na AWS Transform documentação. | Desenvolvedor do aplicativo, proprietário do aplicativo | 

## Solução de problemas
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Você não consegue visualizar o código-fonte ou o documento gerado no aplicativo AWS Transform web. | Adicione uma política à permissão do CORS para que o bucket do Amazon S3 AWS Transform permita como origem. Para obter mais informações, consulte as [permissões CORS do bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) na AWS Transform documentação. | 

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

**AWS documentação**
+ [Transformação de aplicativos de mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform documentação)

**Outros AWS recursos**
+ [Acelere sua jornada de modernização do mainframe usando agentes de IA com AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/) (AWS postagem no blog)
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [Centro de Identidade do AWS IAM FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Vídeos e tutoriais**
+ [Introdução ao 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 — Modernize aplicativos de mainframe com mais rapidez usando](https://www.youtube.com/watch?v=pSi0XtYfY4o) o Amazon Q Developer () YouTube
+ [AWS re:Invent 2024 - Automatizando a migração e a modernização para acelerar a transformação](https://www.youtube.com/watch?v=9FjxnEoH5wg) () YouTube
+ [AWS re:Invent 2024 - A Toyota impulsiona a inovação e aprimora a eficiência operacional](https://www.youtube.com/watch?v=_NXc1MJenw4) com a geração AI () YouTube

**nota**  
AWS Transform era conhecido anteriormente como *Amazon Q Developer transform for mainframe*.

# Modernize e implante aplicativos de mainframe usando o 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*

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

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)pode acelerar a modernização em grande escala do.NET, mainframe e cargas de trabalho. VMware Ele implanta agentes de IA especializados que automatizam tarefas complexas, como avaliações, análise de código, refatoração, decomposição, mapeamento de dependências, validação e planejamento de transformação. [Esse padrão demonstra como usá-lo para AWS Transform modernizar um aplicativo de mainframe e depois implantá-lo na AWS infraestrutura usando o Hashicorp Terraform.](https://developer.hashicorp.com/terraform/intro) Essas step-by-step instruções ajudam você a transformar [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), que é um exemplo de aplicativo de mainframe de código aberto, de COBOL em um aplicativo Java moderno.

## Pré-requisitos e limitações
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Permissões administrativas para criar AWS recursos e implantar aplicativos
+ Terraform versão 1.5.7 ou posterior, [configurado](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Provedor para Terraform, configurado](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ Centro de Identidade do AWS IAM, [habilitado](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [habilitado](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Um usuário, [integrado a um AWS Transform espaço de](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) trabalho com uma função de colaborador que pode executar trabalhos de transformação

**Limitações**
+ AWS Transform está disponível apenas em alguns Regiões da AWS. Para obter uma lista completa das regiões aceitar, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Há uma cota de serviço para recursos de transformação de mainframe no AWS Transform. Para mais informações, consulte [Cotas para o AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para colaborar em um espaço de trabalho compartilhado, todos os usuários devem ser usuários registrados da Centro de Identidade do AWS IAM mesma instância associada à sua instância do aplicativo AWS Transform web.
+ O bucket AWS Transform do Amazon Simple Storage Service (Amazon S3) deve estar na mesma região Conta da AWS .

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

O diagrama a seguir mostra a end-to-end modernização do aplicativo legado e a implantação no Nuvem AWS. As credenciais do aplicativo e do banco de dados são AWS Secrets Manager armazenadas e a Amazon CloudWatch fornece recursos de monitoramento e registro.

![\[O AWS Transform moderniza uma aplicação de mainframe e uma implantação por meio do Terraform.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Por meio de Centro de Identidade do AWS IAM, o usuário se autentica e acessa AWS Transform no. Conta da AWS

1. O usuário carrega o código do mainframe COBOL no bucket do Amazon S3 e inicia a transformação no AWS Transform.

1. AWS Transform moderniza o código COBOL em código Java nativo da nuvem e armazena o código modernizado no bucket do Amazon S3.

1. O Terraform cria a AWS infraestrutura para implantar o aplicativo modernizado, incluindo um Application Load Balancer, uma instância do Amazon Elastic Compute Cloud (Amazon EC2) e o banco de dados Amazon Relational Database Service (Amazon RDS). O Terraform implanta o código modernizado na instância do Amazon EC2.

1. Os arquivos VSAM são enviados para o Amazon EC2 e migrados do Amazon EC2 para o banco de dados do Amazon RDS.

## Ferramentas
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Serviços da AWS**
+ O [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) oferece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente. Neste padrão, as instâncias do cluster de failover do SQL Server são instaladas nas instâncias do Amazon EC2.
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) aos seus Contas da AWS aplicativos e à nuvem.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda a substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)usa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware 

**Outras ferramentas**
+ O [Apache Maven](https://maven.apache.org/) é uma ferramenta de gerenciamento de projetos e automação de criação de software de código aberto para projetos Java.
+ O [Apache Tomcat](https://tomcat.apache.org/) é um contêiner Servlet de código aberto e servidor web para código Java.
+ O [HashiCorp Terraform](https://www.terraform.io/docs) é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código.
+ O [Spring Boot](https://spring.io/projects/spring-boot) é um framework de código aberto baseado no Spring Framework em Java.

**Repositório de código**

O código desse padrão está disponível no repositório GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Esse padrão usa o aplicativo de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código aberto como um aplicativo de amostra.

## Práticas recomendadas
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Atribuir a propriedade total do código e dos recursos destinados para migração.
+ Desenvolver e testar uma prova de conceito antes de escalar para uma migração completa.
+ Garantir o comprometimento de todas as partes interessadas.
+ Estabelecer canais de comunicação claros.
+ Definir e documentar os requisitos de produto mínimo viável (MVP).
+ Estabelecer critérios claros de sucesso.

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

### Preparar e fazer o upload do código da aplicação de mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket. | Crie um bucket do Amazon S3 na mesma Conta da AWS região em que AWS Transform está habilitado. Você usa esse bucket para armazenar o código, os dados e os scripts adicionais do aplicativo de mainframe necessários para criar e executar o aplicativo. AWS Transform usa esse bucket para armazenar o código refatorado e outros arquivos associados à transformação. Para obter instruções, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na documentação do Amazon S3. | AWS geral, administrador da AWS | 
| Defina as permissões de CORS para o bucket. | Ao configurar seu bucket para AWS Transform acesso, você precisa configurar o compartilhamento de recursos de origem cruzada (CORS) para o bucket. Se isso não estiver configurado corretamente, talvez você não consiga usar as funcionalidades de visualização em linha ou comparação de arquivos do AWS Transform. Para obter instruções sobre como configurar o CORS para um bucket, consulte [Usar o compartilhamento de recursos de origem cruzada](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) no bucket do Amazon S3. Para a política, consulte as [permissões CORS do bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) na AWS Transform documentação. | AWS geral, administrador da AWS | 
| Prepare o exemplo de código da aplicação de mainframe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS geral, desenvolvedor de aplicativos | 

### Transformar a aplicação de mainframe
<a name="transform-the-mainframe-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS Transform trabalho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Configure um conector. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Transforme o código. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor do aplicativo, proprietário do aplicativo | 

### Implantar a infraestrutura por meio do Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualize os modelos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)Para ambientes de produção ou semelhantes aos de produção, configure componentes de segurança adicionais. Por exemplo, habilite [AWS WAF protections for your Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS geral, administrador da AWS | 
| Implantar a infraestrutura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Instalar e configurar o Apache Tomcat na instância do Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o software necessário. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Verifique a instalação de softwares. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 

### Compilar e empacotar o código da aplicação modernizada
<a name="compile-and-package-the-modernized-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça o download e extraia o código gerado. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Crie uma aplicação modernizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 

### Migrar o bancos de dados
<a name="migrate-the-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o banco de dados e os esquemas JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Valide a criação de banco de dados. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Migre dados para o banco de dados JICS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 

### Instalar a aplicação modernizada
<a name="install-the-modernized-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a aplicação modernizada na instância do Amazon EC2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Reinicie o servidor Tomcat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Migre o conjunto de dados do VSAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de migração | 
| Atualize os parâmetros nos scripts do Groovy. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos | 

### Teste a aplicação
<a name="test-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a aplicação modernizada. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de testes | 
| Verifique os scripts em lote. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Desenvolvedor de aplicativos, engenheiro de testes | 

### Limpeza
<a name="clean-up"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar para excluir a infraestrutura. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS geral | 
| Exclua a infraestrutura. | Essas etapas excluirão permanentemente seus recursos. Certifique-se de ter feito backup de todos os dados importantes antes de continuar.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | AWS geral | 

## Solução de problemas
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Autenticação do Terraform | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Erros relacionados ao Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| O nome do URL não está carregando | Certifique-se de que o grupo de segurança do Application Load Balancer tenha seu endereço IP na regra de entrada como fonte. | 
| Problema de autenticação no log do Tomcat | Confirme se a senha secreta do banco de dados AWS Secrets Manager e a senha em **server.xml** coincidem. | 

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

**AWS Orientação prescritiva**
+ [Modernize o aplicativo de CardDemo mainframe usando o AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentação de serviço**
+ [AWS Console de administração Blusam Blue Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Requisitos de configuração de infraestrutura para o AWS Blu Age Runtime (não gerenciado)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Integração do AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernização de aplicativos de mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configurar o AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS postagens no blog**
+ [Acelere sua jornada de modernização do mainframe usando agentes de IA com AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernize o gerenciamento de saída do mainframe AWS usando o Rocket Enterprise Server e o 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 e Shoup Inc*

## Resumo
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

Ao modernizar seu gerenciamento de produção de mainframe, você pode obter economia de custos, reduzir a dívida técnica de manter sistemas legados e melhorar a resiliência e a agilidade por meio de tecnologias nativas em nuvem da Amazon Web DevOps Services (AWS). Esse padrão mostra como modernizar suas workloads de gerenciamento de saída de mainframe essenciais para os negócios na Nuvem AWS. O padrão usa o [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) como tempo de execução para um aplicativo de mainframe modernizado, com a Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) como servidor de impressão e o PageCenter LRS X como servidor de arquivamento. O LRS PageCenter X fornece soluções de gerenciamento de resultados para visualização, indexação, pesquisa, arquivamento e proteção do acesso aos resultados comerciais.

O padrão é baseado na abordagem de modernização do mainframe de [redefinir a plataforma](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Os aplicativos de mainframe são migrados pela [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) na Amazon Elastic Compute Cloud (Amazon). EC2 As cargas de trabalho de gerenciamento de saída do mainframe são migradas para a Amazon EC2, e um banco de dados de mainframe, como o IBM Db2 for), funciona com o AWS z/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS Directory Service for Microsoft Active Directory para autenticação e autorização do fluxo de trabalho de gerenciamento de saída.

## Pré-requisitos e limitações
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma workload de gerenciamento de saída de mainframe.
+ Conhecimento básico de como reconstruir e fornecer uma aplicação de mainframe executado no Rocket Enterprise Server. Para obter mais informações, consulte a planilha de dados do [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) na documentação do Rocket Software.
+ Conhecimento básico das soluções e conceitos de impressão em nuvem da LRS. Para obter mais informações, consulte *Modernização de saída* na documentação do LRS.
+ Software e licença do Rocket Enterprise Server. Para obter mais informações, consulte [Rocket Software](https://www.rocketsoftware.com/products/enterprise-suite/request-contact).
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISSoftware e licenças do LRS. Para obter mais informações, [entre em contato com LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Você deve fornecer os nomes de host das EC2 instâncias em que os produtos LRS serão instalados.


| 
| 
| Observação: para obter mais informações sobre considerações de configuração para workloads de gerenciamento de saída de mainframe, consulte *Considerações* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) deste padrão. | 
| --- |

**Versões do produto**
+ [Rocket Enterprise Server 10.0](https://www.rocketsoftware.com/products/enterprise-suite/enterprise-test-server)
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/modernization-products/)
+ [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) V1R3 ou posterior

## Arquitetura
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Pilha de tecnologia de origem**
+ Sistema operacional: IBM z/OS
+ Linguagem de programação: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Banco de dados: IBM Db2 for z/OS, banco de dados IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Segurança — Instalação de Controle de Acesso a Recursos (RACF), CA Top Secret para z/OS e Instalação de Controle de Acesso 2 () ACF2
+ Soluções de impressão e arquivamento — produtos de z/OS saída e impressão de mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA Deliver) e soluções de arquivamento (CA Deliver, ASG Mobius ou CA Bundle)

**Arquitetura de origem**

O diagrama a seguir mostra uma arquitetura típica do estado atual para uma workload de gerenciamento de saída de mainframe.

![\[Processo de saída do mainframe em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os usuários realizam transações comerciais em um sistema de engajamento (SoE) construído em um aplicativo IBM CICS escrito em COBOL.

1. O SoE invoca o serviço de mainframe, que registra os dados da transação comercial em um banco de dados system-of-records (SoR), como o IBM Db2 for z/OS.

1. O SoR persiste os dados comerciais do SoE.

1. O agendador de trabalhos em lotes inicia um trabalho em lotes para gerar a saída de impressão.

1. O trabalho em lotes extrai dados do banco de dados. Ele formata os dados de acordo com os requisitos comerciais e, em seguida, gera resultados comerciais, como extratos de cobrança, carteiras de identidade ou extratos de empréstimos. Por fim, o trabalho em lotes encaminha a saída para o gerenciamento de saída para formatação, publicação e armazenamento da saída com base nos requisitos comerciais.

1. O gerenciamento de saída recebe a saída do trabalho em lotes. O gerenciamento de saída indexa, organiza e publica a saída em um destino específico no sistema de gerenciamento de saída, como as soluções LRS PageCenter X (conforme demonstrado nesse padrão) ou o CA View.

1. Os usuários podem visualizar, pesquisar e recuperar a saída.

**Pilha de tecnologias de destino**
+ Sistema operacional — Windows Server em execução na Amazon EC2
+ Computação — Amazon EC2
+ Armazenamento — Amazon Elastic Block Store (Amazon EBS) e FSx Amazon para Windows File Server
+ Linguagem de programação: COBOL, JCL e CICS
+ Banco de dados: Amazon RDS
+ Segurança: AWS Managed Microsoft AD
+ Impressão e arquivamento — solução de impressão LRS (VPSX) e arquivamento (PageCenterX) na AWS
+ Ambiente runtime de mainframe: Rocket Enterprise Server

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para uma workload de gerenciamento de saída de mainframe que é implantada na Nuvem AWS.

![\[Arquitetura de destino para gerenciamento de aplicações e resultados em lote em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O agendador de trabalhos em lotes inicia um trabalho em lotes para criar resultados, como extratos de cobrança, cartões de identificação ou extratos de empréstimos.

1. O trabalho em lote do mainframe ([reformulado para a Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) usa o tempo de execução do Rocket Enterprise Server para extrair dados do banco de dados do aplicativo, aplicar lógica de negócios aos dados e formatar os dados. Em seguida, ele envia os dados para um destino de saída usando o [módulo de saída da impressora Rocket Software](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html) (documentação da OpenText Micro Focus).

1. O banco de dados do aplicativo (um SoR executado no Amazon RDS) persiste os dados para a saída de impressão.

1. A solução de VPSX/MFI impressão LRS é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon EBS. O LRS VPSX/MFI usa o agente TCP/IP-based LRS/Queue de transmissão para coletar dados de saída por meio da API JES Print Exit da Rocket Software.

   O LRS VPSX/MFI faz o pré-processamento de dados, como a tradução de EBCDIC para ASCII. Ele também executa tarefas mais complexas, incluindo a conversão de fluxos de dados exclusivos do mainframe, como IBM Advanced Function Presentation (AFP) e Xerox Line Conditioned Data Stream (LCDS), em fluxos de dados de visualização e impressão mais comuns, como Printer Command Language (PCL) e PDF.

   Durante a janela de manutenção do LRS PageCenter X, o LRS VPSX/MFI persiste na fila de saída e serve como backup para a fila de saída. O LRS VPSX/MFI conecta e envia a saída para o LRS PageCenter X usando o LRS/Queue protocolo. LRS/Queue realiza uma troca de prontidão e conclusão dos trabalhos para ajudar a garantir que a transferência de dados ocorra.

   **Observações:**

   Para obter mais informações sobre dados de impressão transmitidos do Rocket Software Print Exit LRS/Queue e mecanismos de lote de mainframe VPSX/MFI suportados pelo LRS, consulte *Captura de dados de impressão* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

   O LRS VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) desse padrão.

1. A solução de gerenciamento de saída LRS PageCenter X é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon FSx for Windows File Server. O LRS PageCenter X fornece um sistema central de gerenciamento de relatórios de todos os arquivos importados para o LRS PageCenter X junto com todos os usuários capazes de acessar os arquivos. Os usuários podem visualizar o conteúdo específico do arquivo ou realizar pesquisas em vários arquivos para verificar os critérios correspondentes.

   O LRS/NetX componente é um servidor de aplicativos web de vários segmentos que fornece um ambiente de execução comum para o aplicativo LRS PageCenter X e outros aplicativos LRS. O componente LRS/Web Connect é instalado em seu servidor web e fornece um conector do servidor web para o servidor de aplicativos LRS/NetX web.

1. O LRS PageCenter X fornece armazenamento para objetos do sistema de arquivos. Os dados operacionais do LRS PageCenter X são armazenados no Amazon FSx for Windows File Server.

1. A autenticação e autorização do gerenciamento de saída são realizadas pelo AWS Managed Microsoft AD com LRS/DIS.

**nota**  
A solução de destino normalmente não exige alterações na aplicação para acomodar linguagens de formatação de mainframe, como IBM AFP ou Xerox LCDS.

**Arquitetura de infraestrutura da AWS**

O diagrama a seguir mostra uma arquitetura de infraestrutura da AWS altamente disponível e segura para uma workload de gerenciamento de saída de mainframe.

![\[Infraestrutura AWS Multi-AZ com um fluxo de trabalho em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O agendador de lotes inicia o processo em lote e é implantado na Amazon EC2 em várias [zonas de disponibilidade](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para alta disponibilidade (HA).
**nota**  
Este padrão não abrange a implementação do agendador de lotes. Para obter mais informações sobre implementação, consulte a documentação do fornecedor de software para o agendador.

1. O trabalho em lote do mainframe (escrito em uma linguagem de programação como JCL ou COBOL) usa a lógica comercial principal para processar e gerar resultados impressos, como extratos de cobrança, cartões de identificação e extratos de empréstimos. O trabalho em lote é implantado na Amazon EC2 em duas zonas de disponibilidade para HA. Ele usa a API de saída de impressão da Rocket Software para rotear a saída de impressão para o LRS VPSX/MFI para pré-processamento de dados.

1. O servidor de VPSX/MFI impressão LRS é implantado na Amazon EC2 em duas zonas de disponibilidade para HA (par redundante ativo em espera). Ele usa o [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) como um armazenamento de dados operacional. O Network Load Balancer executa uma verificação de integridade nas instâncias do VPSX/MFI EC2 LRS. Se uma instância ativa não estiver íntegra, o balanceador de carga encaminha o tráfego para instâncias standby a quente na outra zona de disponibilidade. As solicitações de impressão persistem no LRS Job Queue localmente em cada uma das instâncias. EC2 Em caso de falha, uma instância com falha deve ser reiniciada antes que os serviços do LRS possam retomar o processamento da solicitação de impressão.
**nota**  
O LRS também VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) desse padrão.

1. O gerenciamento de saída do LRS PageCenter X é implantado na Amazon EC2 em duas zonas de disponibilidade para HA (par redundante ativo em espera). Ele usa o [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) como um armazenamento de dados operacional. Se uma instância ativa não estiver íntegra, o balanceador de carga executará uma verificação de integridade nas instâncias do LRS PageCenter X e encaminhará o tráfego para EC2 instâncias em espera na outra zona de disponibilidade.

1. Um [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornece um nome DNS para integrar o servidor LRS com o LRS VPSX/MFI X. PageCenter
**nota**  
O LRS PageCenter X oferece suporte a um balanceador de carga de camada 4.

1. O LRS PageCenter X usa o Amazon FSx for Windows File Server como um armazenamento de dados operacional implantado em duas zonas de disponibilidade para HA. O LRS PageCenter X compreende somente os arquivos que estão no compartilhamento de arquivos, não em um banco de dados externo.

1. [O AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) é usado com o AWS LRS/DIS para realizar a autenticação e autorização do fluxo de trabalho de gerenciamento de saída. Para obter mais informações, consulte *Autenticação e autorização de saída de impressão* na seção [Informações adicionais](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

## Ferramentas
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-tools"></a>

**Serviços da AWS**
+ O [AWS Directory Service para Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) permite que cargas de trabalho com reconhecimento de diretório e recursos da AWS usem o Microsoft Active Directory na Nuvem AWS.
+ [O Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias do Amazon Elastic Compute Cloud (Amazon). EC2
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ O [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribui o tráfego de entrada de aplicativos ou de rede em vários destinos. Por exemplo, você pode distribuir o tráfego entre EC2 instâncias, contêineres e endereços IP da Amazon em uma ou mais zonas de disponibilidade. Esse padrão usa um Network Load Balancer.
+  FSxA [Amazon](https://docs.aws.amazon.com/fsx/?id=docs_gateway) fornece sistemas de arquivos que suportam protocolos de conectividade padrão do setor e oferecem alta disponibilidade e replicação em todas as regiões da AWS. Esse padrão usa o Amazon FSx para Windows File Server.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.

**Outras ferramentas**
+ O software [LRS PageCenter X](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) fornece uma solução escalável de gerenciamento de conteúdo de documentos e relatórios que ajuda os usuários a obter o máximo valor das informações por meio de indexação automatizada, criptografia e recursos avançados de pesquisa.
+ O [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), desenvolvido em conjunto pela LRS e pela Rocket Software, captura a saída de um spool JES da Rocket Software e a entrega de forma confiável a um destino de impressão especificado.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queuepara coletar ou capturar dados de impressão por meio da interface de programação JES Print Exit da Rocket Software.
+ O LRS Directory Integration Server (LRS/DIS) é usado para autenticação e autorização durante o fluxo de trabalho de impressão.
+ O [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) é um ambiente de implantação de aplicações para aplicações de mainframe. Ele fornece o ambiente de runtime para aplicações de mainframe que são migrados ou criados usando qualquer versão do Rocket Enterprise Developer.

## Épicos
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Configurar o runtime do Rocket e implantar uma aplicação em lote de mainframe
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o runtime e implante um aplicativo de demonstração. | [Para configurar o Rocket Enterprise Server na Amazon EC2 e implantar o aplicativo de BankDemo demonstração da Rocket Software, siga as instruções no guia do usuário do AWS Mainframe Modernization.](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html)O BankDemo aplicativo é um aplicativo em lote de mainframe que cria e, em seguida, inicia a saída de impressão. | Arquiteto de nuvem | 

### Configurar um servidor de impressão LRS na Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância EC2 do Amazon Windows. | Para iniciar uma instância EC2 do Amazon Windows, siga as instruções em [Iniciar uma EC2 instância da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) na EC2 documentação da Amazon. Use o mesmo nome de host que você usou para sua licença de produto LRS.Sua instância deve atender aos seguintes requisitos de hardware e software para LRS VPSX/MFI:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS VPSX/MFI na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | O LRS/DIS produto geralmente está incluído na instalação do LRS VPSX. No entanto, se LRS/DIS não foi instalado junto com o LRS VPSX, use as seguintes etapas para instalá-lo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um grupo de destino. | Crie um grupo de destino seguindo as instruções em [Criar um grupo de destino para o Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Ao criar o grupo de destino, registre a VPSX/MFI EC2 instância do LRS como destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Para criar o Network Load Balancer, siga as instruções na [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html). Seu Network Load Balancer roteia o tráfego do Rocket Enterprise Server para a instância do LRS. VPSX/MFI EC2 Ao criar o Network Load Balancer, escolha os seguintes valores na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Integre o Rocket Enterprise Server com um LRS LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Rocket Enterprise Server para LRS/Queue integração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure o Rocket Enterprise Server para integração com o LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar a fila de impressão e os usuários de impressão
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Associe o módulo Rocket Software Print Exit ao processo de execução do servidor da impressora em lote Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie uma fila de saída de impressão no LRS VPSX/MFI e integre-a ao LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie um usuário de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar um servidor LRS PageCenter X na Amazon EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância EC2 do Amazon Windows. | Execute uma instância EC2 do Amazon Windows seguindo as instruções da [Etapa 1: Inicie uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) na EC2 documentação da Amazon. Use o mesmo nome de host que você usou para sua licença de produto LRS.Sua instância deve atender aos seguintes requisitos de hardware e software para o LRS PageCenter X:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS PageCenter X na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | O LRS/DIS produto geralmente está incluído na instalação do LRS VPSX. No entanto, se LRS/DIS não foi instalado junto com o LRS VPSX, use as seguintes etapas para instalá-lo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um grupo de destino. | Crie um grupo de destino seguindo as instruções em [Criar um grupo de destino para o Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html). Ao criar o grupo de destino, registre a EC2 instância do LRS PageCenter X como destino:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Para criar o Network Load Balancer, siga as instruções na [documentação do Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html). Seu Network Load Balancer roteia o tráfego do LRS VPSX/MFI para a instância do LRS X. PageCenter EC2 Ao criar o Network Load Balancer, escolha os seguintes valores na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar recursos de gerenciamento de saída no LRS X PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Ative a função Importar no LRS X. PageCenter | Você pode usar a função LRS PageCenter X Import para reconhecer as saídas que chegam ao LRS PageCenter X por critérios como Job name ou Form ID. Em seguida, você pode rotear as saídas para pastas específicas no PageCenter LRS X.Para habilitar a função de importação, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure a política de retenção de documentos. | O LRS PageCenter X usa uma política de retenção de documentos para decidir por quanto tempo manter um documento no PageCenter LRS X.Para configurar a política de retenção de documentos, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie uma regra para rotear o documento de saída para uma pasta específica no LRS PageCenter X. | No LRS PageCenter X, o **Destino** determina o caminho da pasta para onde a saída será enviada quando esse destino for chamado pela Definição de **Relatório**. Neste exemplo, crie uma pasta com base na pasta **ID do formulário** na definição do relatório e salve a saída nessa pasta.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Criar uma definição de relatório. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configurar autenticação e autorização para gerenciamento de saída
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um domínio AWS Managed Microsoft AD com usuários e grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Associe as EC2 instâncias a um domínio do AWS Managed Microsoft AD. | Associe as EC2 instâncias LRS VPSX/MFI e LRS PageCenter X ao seu domínio AWS Managed Microsoft AD [automaticamente](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentação do AWS Knowledge Center) ou [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentação do AWS Directory Service). | Arquiteto de nuvem | 
| Configure e integre LRS/DIS com o AWS Managed Microsoft AD para a EC2 instância LRS PageCenter X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure um grupo de importação para importar a saída do LRS VPSX para o LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Adicione um regra de segurança ao grupo de importação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Crie um usuário no LRS PageCenter X para realizar a importação de saída do LRS VPSX/MFI.  | Quando você cria um usuário no LRS PageCenter X para realizar a importação de saída, o nome de usuário deve ser o mesmo que o **ID VPSX** da fila de saída de impressão no LRS VPSX/MFI. Neste exemplo, o ID do VPSX é. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Adicione o usuário do LRS PageCenter X Import ao grupo Somente importação. | Para fornecer a permissão necessária para a importação de documentos do LRS VPSX para o LRS PageCenter X, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 
| Configure LRS/DIS com o AWS Managed Microsoft AD para a VPSX/MFI EC2 instância LRS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Configure o Amazon FSx para Windows File Server como o armazenamento de dados operacional para o LRS X PageCenter
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um sistema de arquivos para o LRS X. PageCenter | Para usar o Amazon FSx para Windows File Server como um armazenamento de dados operacional para o LRS PageCenter X em um ambiente Multi-AZ, siga as instruções na [Etapa 1: Crie seu sistema de arquivos](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Arquiteto de nuvem | 
| Mapeie o compartilhamento de arquivos para a EC2 instância do LRS PageCenter X. | Para mapear o compartilhamento de arquivos criado na etapa anterior para a EC2 instância do LRS PageCenter X, siga as instruções na [Etapa 2: Mapear seu compartilhamento de arquivos para uma EC2 instância executando o Windows Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Arquiteto de nuvem | 
| Mapeie o Diretório de Controle e o Diretório de Pastas Mestras do LRS PageCenter X para a unidade de compartilhamento FSx de rede da Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Arquiteto de nuvem | 

### Teste um fluxo de trabalho de gerenciamento de saída
<a name="test-an-output-management-workflow"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie uma solicitação de impressão em lote a partir do aplicativo Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Engenheiro de testes | 
| Verifique a saída de impressão no LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Engenheiro de testes | 

## Recursos relacionados
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-resources"></a>
+ [LRS](https://www.lrsoutputmanagement.com/products/modernization-products)
+ [Fluxo de dados de apresentação de funções avançadas](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentação da IBM)
+ [Fluxo de dados condicionado por linha (LCDS)](https://www.compart.com/en/lcds) (documentação do Compart)
+ [Capacitando workloads de mainframe corporativo na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (publicação no blog)
+ [Modernize suas workloads de impressão on-line de mainframe na AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) (Recomendações da AWS)
+ [Modernize suas workloads de impressão em lote de mainframe na AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) (Recomendações da AWS)

## Mais informações
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Considerações**

Durante sua jornada de modernização, você pode considerar uma grande variedade de configurações para processos on-line e em lote de mainframe e a saída que eles geram. A plataforma de mainframe foi personalizada por cada cliente e fornecedor que a utiliza com requisitos específicos que afetam diretamente a impressão. Por exemplo, sua plataforma atual pode incorporar o fluxo de dados IBM AFP ou o Xerox LCDS ao fluxo de trabalho atual. Além disso, os [caracteres de controle do carro do mainframe](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) e as [palavras de comando do canal](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) podem afetar a aparência da página impressa e podem precisar de tratamento especial. Como parte do processo de planejamento da modernização, recomendamos que você avalie e compreenda as configurações em seu ambiente de impressão específico.  

**Captura de dados de impressão**

O Rocket Software Print Exit passa as informações necessárias para que o LRS processe VPSX/MFI com eficácia o arquivo spool. As informações consistem em campos passados nos blocos de controle relevantes, como:
+ JOBNAME (NOME DA FUNÇÃO)
+ PROPRIETÁRIO (ID DO USUÁRIO)
+ DESTINATION (DESTINO)
+ FORMULÁRIO
+ FILENAME (NOME DO ARQUIVO)
+ WRITER (GRAVADOR)

O LRS VPSX/MFI suporta os seguintes mecanismos de lote de mainframe para capturar dados do Rocket Enterprise Server:
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL DD/OUTPUT SYSOUT padrão.
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL CA-SPOOL SUBSYS DD padrão.
+ IMS/COBOL print/spoolprocessamento usando a interface CBLTDLI. Para obter uma lista completa dos métodos suportados e exemplos de programação, consulte a documentação do LRS incluída na licença do produto.

**Verificações de integridade da frota de impressoras**

O LRS VPSX/MFI (LRS LoadX) pode realizar verificações detalhadas de integridade, incluindo gerenciamento de dispositivos e otimização operacional. O gerenciamento de dispositivos pode detectar falhas em um dispositivo de impressora e encaminhar a solicitação de impressão para uma impressora saudável. Para obter mais informações sobre verificações de integridade detalhadas para frotas de impressoras, consulte a documentação do LRS incluída na licença do produto.

**Autorização e autenticação de impressão **

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/DIStambém pode aplicar controles de segurança de impressão em nível granular nos seguintes casos de uso:
+ Gerencie quem pode navegar pelo trabalho da impressora.
+ Gerencie o nível de navegação dos trabalhos de outros usuários.
+ Gerencie tarefas operacionais—por exemplo, segurança em nível de comando, como suspender ou liberar, eliminar, modificar, copiar e redirecionar. A segurança pode ser configurada pela ID do usuário ou pelo grupo, semelhante a um grupo de segurança do Active Directory ou um grupo LDAP.

## Anexos
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernize as cargas de trabalho de impressão em lote do mainframe AWS usando o Rocket Enterprise Server e o 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 e Shoup Inc*

## Resumo
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Esse padrão mostra como modernizar suas cargas de trabalho de impressão em lote de mainframe essenciais para os negócios na nuvem da Amazon Web Services (AWS) usando o Rocket Enterprise Server como tempo de execução para um aplicativo de mainframe modernizado e o LRS VPSX/MFI (Micro Focus Interface) como servidor de impressão. O padrão é baseado na abordagem de modernização do mainframe de [redefinir a plataforma](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Nessa abordagem, você migra seus trabalhos em lote de mainframe para o Amazon Elastic Compute Cloud (Amazon EC2) e migra seu banco de dados de mainframe, como IBM ( DB2 forz/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS), integrado ao AWS Managed Microsoft AD. Ao modernizar suas cargas de trabalho de impressão em lote, você pode reduzir os custos de infraestrutura de TI, mitigar a dívida técnica de manter sistemas legados, remover silos de dados, aumentar a agilidade e a eficiência com um DevOps modelo e aproveitar os recursos sob demanda e a automação na nuvem da AWS.

## Pré-requisitos e limitações
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma workload de gerenciamento de impressão ou saída de mainframe
+ Conhecimento básico de como reconstruir e fornecer uma aplicação de mainframe executado no Rocket Enterprise Server (para obter mais informações, consulte a planilha de dados do [Rocket Enterprise Server](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) na documentação da Rocket.)
+ Conhecimento básico das soluções e conceitos de [impressão em nuvem da LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/).
+ Software e licença do Rocket Enterprise Server (Para obter mais informações, entre em contato com a [equipe de vendas da Rocket](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact).)
+ VPSX/MFI, LRS/Queue, and LRS/DISSoftware e licenças do LRS (para obter mais informações, entre em contato com a equipe de vendas do [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**nota**  
Para obter mais informações sobre considerações de configuração para workloads de impressão em lote de mainframe, consulte *Considerações* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) deste padrão.

**Versões do produto**
+ [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 (atualização do produto 7)
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) ou superior

## Arquitetura
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pilha de tecnologia de origem**
+ Sistema operacional: IBM z/OS
+ Linguagem de programação: Common Business-Oriented Language (COBOL), Job Control Language (JCL) e Customer Information Control System (CICS)
+ Banco de dados — IBM DB2 for z/OS and Virtual Storage Access Method (VSAM)
+ Segurança — Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gerenciamento de impressão e saída — produtos de z/OS impressão em mainframe IBM (IBM Tivoli Output Manager for z/OS, LRS e CA View)

**Pilha de tecnologias de destino**
+ Sistema operacional — Microsoft Windows Server em execução na Amazon EC2
+ Computação — Amazon EC2
+ Linguagem de programação: COBOL, JCL e CICS
+ Banco de dados: Amazon RDS
+ Segurança: AWS Managed Microsoft AD
+ Gerenciamento de impressão e produção: solução de impressão LRS na AWS
+ Ambiente runtime de mainframe: Rocket Enterprise Server

**Arquitetura de origem **

O diagrama a seguir mostra uma arquitetura típica do estado atual para uma workload de impressão em lote de mainframe:

![\[Do usuário ao serviço de mainframe, Db2 for z/OS, agendador de tarefas, trabalho em lotes e saída em seis etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os usuários realizam transações comerciais em um sistema de engajamento (SoE) construído em um aplicativo IBM CICS escrito em COBOL.

1. O SoE invoca o serviço de mainframe, que registra os dados da transação comercial em um banco de dados system-of-records (SoR), como o IBM for z/OS. DB2 

1. O SoR persiste os dados comerciais do SoE.

1. O agendador de trabalhos em lotes inicia um trabalho em lotes para gerar a saída de impressão.

1. O trabalho em lotes extrai dados do banco de dados, formata os dados de acordo com os requisitos comerciais e, em seguida, gera resultados comerciais, como extratos de cobrança, cartões de identificação ou extratos de empréstimos. Por fim, o trabalho em lotes direciona a saída para o gerenciamento da saída de impressão para processamento e entrega da saída, com base nos requisitos comerciais. 

1. O gerenciamento da saída de impressão recebe a saída de impressão do trabalho em lote e, em seguida, entrega essa saída para um destino específico, como e-mail, um compartilhamento de arquivos que usa FTP seguro, uma impressora física que usa soluções de impressão LRS (conforme demonstrado nesse padrão) ou IBM Tivoli.

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para uma workload de impressão em lote de mainframe que é implantada na nuvem AWS:

![\[Aplicação em lote na AWS com agendador, Rocket Enterprise Server e banco de dados em quatro etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O programador de trabalhos em lotes inicia um trabalho em lotes para criar resultados de impressão, como extratos de cobrança, cartões de identificação ou extratos de empréstimos.

1. O trabalho em lote do mainframe ([reformatado para a Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) usa o tempo de execução do Rocket Enterprise Server para extrair dados do banco de dados do aplicativo, aplicar lógica comercial aos dados, formatar os dados e, em seguida, enviar os dados para um destino de impressão usando o [Rocket Software Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (documentação da Micro Focus).

1. O banco de dados do aplicativo (um SoR executado no Amazon RDS) persiste os dados para a saída de impressão.

1. A solução de VPSX/MFI impressão LRS é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon Elastic Block Store (Amazon EBS). O LRS VPSX/MFI usa o agente TCP/IP-based LRS/Queue de transmissão para coletar dados de impressão por meio da API de saída de impressão JES da Rocket Software e entregar os dados a um destino de impressora especificado.

**nota**  
A solução de destino normalmente não exige alterações na aplicação para acomodar linguagens de formatação de mainframe, como IBM Advanced Function Presentation (AFP) ou Xerox Line Condition Data Stream (LCDS). Para obter mais informações sobre como usar o Rocket Software para a migração e a modernização de aplicações de mainframe na AWS, consulte a publicação no blog [Empowering Enterprise Mainframe Workloads on AWS with Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**Arquitetura de infraestrutura da AWS**

O diagrama a seguir mostra uma arquitetura de infraestrutura da AWS altamente disponível e segura para uma workload de impressão em lote de mainframe:

![\[Implantação Multi-AZ na AWS com componentes Rocket Software e LRS em sete etapas.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O agendador de lotes inicia o processo em lote e é implantado na Amazon EC2 em várias [zonas de disponibilidade](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) para alta disponibilidade (HA). 
**nota**  
Este padrão não abrange a implementação do agendador de lotes. Para obter mais informações sobre implementação, consulte a documentação do fornecedor de software para o agendador.

1. O trabalho em lote do mainframe (escrito em uma linguagem de programação como JCL ou COBOL) usa a lógica comercial principal para processar e gerar resultados impressos, como extratos de cobrança, cartões de identificação e extratos de empréstimos. O trabalho é implantado na Amazon em duas EC2 zonas de disponibilidade para HA e usa o Rocket Software Print Exit para encaminhar a saída de impressão para o LRS VPSX/MFI para impressão do usuário final.

1. O LRS VPSX/MFI usa um 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 comando. Os comandos são então executados usando uma função integrada padrão da Rocket Software. 
**nota**  
Para obter mais informações sobre dados de impressão transmitidos do Rocket Software Print Exit LRS/Queue e mecanismos de lote de mainframe VPSX/MFI suportados pelo LRS, consulte *Captura de dados de impressão* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) desse padrão.

1. 
**nota**  
Um [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornece um nome DNS para integrar o Rocket Enterprise Server ao 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 roteia o tráfego para os alvos registrados que estão íntegros.

1. 
**nota**  
O servidor de VPSX/MFI impressão LRS é implantado na Amazon EC2 em duas zonas de disponibilidade para HA e usa o [Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) como um armazenamento de dados operacional. O LRS VPSX/MFI suporta os modos de serviço ativo-ativo e ativo-passivo. Essa arquitetura usa vários AZs em um par ativo-passivo como espera ativa e ativa. O Network Load Balancer executa uma verificação de integridade nas VPSX/MFI EC2 instâncias do LRS e encaminha o tráfego para instâncias de espera ativa na outra AZ se uma instância ativa estiver em um estado não íntegro. As solicitações de impressão persistem no LRS Job Queue localmente em cada uma das instâncias. EC2 Em caso de recuperação, uma instância com falha precisa ser reiniciada para que os serviços do LRS retomem o processamento da solicitação de impressão. : O LRS também VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) desse padrão.

1. [O AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) se integra LRS/DIS para realizar a autenticação e autorização do fluxo de trabalho de impressão. Para obter mais informações, consulte *Autenticação e autorização de impressão* na seção [Informações adicionais](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) desse padrão.

1. O LRS VPSX/MFI usa o Amazon EBS para armazenamento em blocos. Você pode fazer backup de dados do Amazon EBS de EC2 instâncias ativas para o Amazon S3 point-in-time como snapshots e restaurá-los em volumes do EBS em espera ativa. Para automatizar a criação, retenção e exclusão de snapshots de volume do Amazon EBS, você pode usar o [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) para definir a frequência dos snapshots automatizados e restaurá-los com base em seus [requisitos de RTO/RPO](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).

## Ferramentas
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Serviços da AWS**
+ [O Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias. EC2 Os volumes do EBS se comportam como dispositivos de bloco brutos e não formatados. É possível montar esses volumes como dispositivos em suas instâncias.
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornece capacidade de computação escalável na Nuvem AWS. Você pode usar EC2 a Amazon para lançar quantos servidores virtuais precisar e pode expandir ou aumentar a escala.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) é um serviço web que facilita a configuração, operação e dimensionamento de um banco de dados relacional na Nuvem AWS. Ele fornece capacidade econômica e redimensionável para um banco de dados relacional e gerencia tarefas comuns de administração de banco de dados.
+ O [AWS Directory Service para Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), também conhecido como AWS Managed Microsoft AD, permite que workloads com reconhecimento de diretório e recursos da AWS usem o Microsoft Active Directory na Nuvem AWS.

**Outras ferramentas**
+ O [LRS VPSX/MFI (Interface do Micro Focus)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), desenvolvido em conjunto pela LRS e pela Rocket Software, captura a saída de um spool JES do Rocket Enterprise Server e a entrega de forma confiável a um destino de impressão especificado.
+ O LRS Directory Information Server (LRS/DIS) é usado para autenticação e autorização durante o fluxo de trabalho de impressão.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIpara coletar ou capturar dados de impressão por meio da interface de programação JES Print Exit da Rocket Software.
+ O [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) é um ambiente de implantação de aplicações para aplicações de mainframe. Ele fornece o ambiente de execução para aplicações de mainframe que são migradas ou criadas usando qualquer versão do Rocket Software Enterprise Developer.

## Épicos
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configure o Rocket Enterprise Server na Amazon EC2 e implante um aplicativo em lote de mainframe
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Rocket Enterprise Server e implante uma aplicação de demonstração. | Configure o Rocket Enterprise Server na Amazon e EC2, em seguida, implante o aplicativo de BankDemo demonstração do Rocket Software na Amazon. EC2O BankDemo aplicativo é um aplicativo em lote de mainframe que cria e, em seguida, inicia a saída de impressão. | Arquiteto de nuvem | 

### Configure um servidor de impressão LRS na Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha uma licença de produto LRS para impressão. | Para obter uma licença de produto LRS para o LRSVPSX/MFI, LRS/Queue, and LRS/DIS, entre em contato com a equipe de gerenciamento de [saída do LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Você deve fornecer os nomes de host das EC2 instâncias em que os produtos LRS serão instalados. | Crie um lead | 
| Crie uma instância EC2 do Amazon Windows para instalar o LRS VPSX/MFI. | Execute uma instância EC2 do Amazon Windows seguindo as instruções em [Iniciar uma EC2 instância da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) na EC2 documentação da Amazon. Sua instância deve atender aos seguintes requisitos de hardware e software para LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.Ao criar sua instância do Windows, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS VPSX/MFI na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Crie um grupo-alvo e registre o LRS VPSX/MFI EC2 como alvo. | Crie um grupo de destino seguindo as instruções de [Criar um grupo de destino para seu Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) na documentação do Elastic Load Balancing.Ao criar o grupo de destino, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Siga as instruções de [Criar um Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) na documentação do Elastic Load Balancing. Seu Network Load Balancer direciona o tráfego do Rocket Enterprise Server para o LRS. VPSX/MFI EC2Ao criar o Network Load Balancer, faça o seguinte na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Integre o Rocket Enterprise Server com LRS e LRS/Queue VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Rocket Enterprise Server para LRS/Queue integração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Atualmente, o LRS suporta um limite máximo de 50 caracteres para nomes DNS, mas isso está sujeito a alterações no futuro. Se seu nome DNS for maior que 50, você poderá usar o endereço IP do Network Load Balancer como alternativa. | Arquiteto de nuvem | 
| Configure o Rocket Enterprise Server para integração com o LRS. VPSX/MFI  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configurar impressoras e usuários de impressão no Rocket Enterprise Server e no LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Associe o módulo Rocket Software Print Exit ao processo de execução do servidor da impressora em lote Rocket Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Para obter mais informações sobre configuração, consulte [Usando a saída](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) na documentação da Micro Focus. | Arquiteto de nuvem | 
| Adicione uma impressora no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Crie um usuário de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configurar autorização e autenticação de impressão
<a name="set-up-print-authentication-and-authorization"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um domínio AWS Managed Microsoft AD com usuários e grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Associe o LRS VPSX/MFI EC2 a um domínio Microsoft AD gerenciado pela AWS. | Associe o LRS VPSX/MFI EC2 ao seu domínio AWS Managed Microsoft AD [automaticamente](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (documentação do AWS Knowledge Center) ou [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (documentação do AWS Directory Service). | Arquiteto de nuvem | 
| Configure e integre LRS/DIS com o AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Teste um fluxo de trabalho de impressão
<a name="test-a-print-workflow"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie uma solicitação de impressão em lote a partir do aplicativo Rocket Software BankDemo . | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Engenheiro de testes | 
| Verifique a saída de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Agora você pode ver a saída impressa de um extrato de conta com colunas para o **Número da conta.**, **Descrição**, **Data**, **Valor** e **Saldo**. Para ver um exemplo, consulte o anexo **batch\$1print\$1output** desse padrão. | Engenheiro de testes | 

## Recursos relacionados
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernização da saída do LRS](https://www.lrsoutputmanagement.com/) (documentação do LRS)
+ [ANSI e controles de transporte de máquinas](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentação da IBM)
+ [Palavras de comando do canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) (documentação da IBM)
+ [Capacitando workloads de mainframe corporativo na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (blog da rede de parceiros da AWS)
+ [Crie um PAC do Micro Focus Enterprise Server com o Amazon EC2 Auto Scaling e o 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) (documentação do AWS Prescriptive Guidance)
+ [Fluxo de dados de apresentação de funções avançadas (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentação da IBM)
+ [Fluxo de dados condicionado por linha (LCDS)](https://www.compart.com/en/lcds) (documentação do Compart)

## Mais informações
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerações**

Durante sua jornada de modernização, você pode considerar uma grande variedade de configurações tanto para os processos em lote do mainframe quanto para a saída que eles geram. A plataforma de mainframe foi personalizada por cada cliente e fornecedor que a utiliza com requisitos específicos que afetam diretamente a impressão. Por exemplo, sua plataforma atual pode incorporar o IBM Advanced Function Presentation (AFP) ou o Xerox Line Condition Data Stream (LCDS) ao fluxo de trabalho atual. Além disso, os [caracteres de controle do carro do mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e as [palavras de comando do canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) podem afetar a aparência da página impressa e podem precisar de tratamento especial. Como parte do processo de planejamento da modernização, recomendamos que você avalie e compreenda as configurações em seu ambiente de impressão específico.

**Captura de dados de impressão**

O Rocket Software Print Exit passa as informações necessárias para permitir que o LRS processe VPSX/MFI com eficácia o arquivo spool. As informações consistem em campos passados nos blocos de controle relevantes, como:
+ JOBNAME (NOME DA FUNÇÃO)
+ PROPRIETÁRIO (ID DO USUÁRIO)
+ DESTINATION (DESTINO)
+ FORMULÁRIO
+ FILENAME (NOME DO ARQUIVO)
+ WRITER (GRAVADOR)

O LRS VPSX/MFI suporta os seguintes mecanismos de lote de mainframe para capturar dados do Rocket Enterprise Server.
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL SYSOUT padrão DD/OUTPUT 
+  print/spool Processamento BATCH COBOL usando instruções z/OS JCL CA-SPOOL SUBSYS DD padrão
+ IMS/COBOL print/spoolprocessamento usando a interface CBLTDLI (para obter uma lista completa dos métodos suportados e exemplos de programação, consulte a documentação do LRS incluída na licença do produto.)

**Verificações de integridade da frota de impressoras**

O LRS VPSX/MFI (LRS LoadX) pode realizar verificações detalhadas de integridade, incluindo gerenciamento de dispositivos e otimização operacional. O gerenciamento de dispositivos pode detectar falhas em um dispositivo de impressora e encaminhar a solicitação de impressão para uma impressora saudável. Para obter mais informações sobre verificações de integridade detalhadas para frotas de impressoras, consulte a documentação do LRS que está incluída na sua licença de produto.

**Autorização e autenticação de impressão **

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/DIStambém pode aplicar controles de segurança de impressão em nível granular nos seguintes casos de uso:
+ Gerencie quem pode navegar pelo trabalho da impressora.
+ Gerencie o nível de navegação dos trabalhos de outros usuários.
+ Gerencie tarefas operacionais. Por exemplo, segurança em nível de comando, como suspender/liberar, limpar, modificar, copiar e redirecionar. A segurança pode ser configurada pelo ID do usuário ou pelo grupo (semelhante ao grupo AD ou grupo LDAP).** **

## Anexos
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Modernização do mainframe: DevOps iniciada AWS com o Rocket Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Resumo
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Desafios do cliente**

Organizações que executam aplicativos principais em hardware de mainframe geralmente enfrentam alguns desafios quando o hardware precisa ser expandido para atender às demandas das inovações digitais. Esses desafios incluem as seguintes restrições. 
+ Os ambientes de desenvolvimento e teste de mainframe não conseguem escalar devido à inflexibilidade dos componentes de hardware do mainframe e ao alto custo da mudança.
+ O desenvolvimento de mainframe está enfrentando escassez de habilidades, porque os novos desenvolvedores não estão familiarizados e não estão interessados nas ferramentas tradicionais de desenvolvimento de mainframe. Tecnologias modernas, como contêineres, pipelines de integration/continuous entrega contínua (CI/CD) e estruturas de teste modernas, não estão disponíveis no desenvolvimento de mainframe.

**Resultados do padrão**

Para enfrentar esses desafios, a Amazon Web Services (AWS) e a Rocket Software Micro Focus, uma parceira AWS Partner Network (APN), colaboraram para criar esse padrão. A solução foi projetada para ajudar você a alcançar os seguintes resultados.
+ Produtividade aprimorada do desenvolvedor Os desenvolvedores podem receber novas instâncias de desenvolvimento de mainframe em minutos.
+ Uso do Nuvem AWS para criar novos ambientes de teste de mainframe com capacidade praticamente ilimitada.
+ Provisionamento rápido da nova infraestrutura de mainframe CI/CD . O provisionamento AWS pode ser concluído em uma hora usando e. AWS CloudFormation AWS Systems Manager
+ Uso nativo de AWS DevOps ferramentas para desenvolvimento de mainframe, incluindo, AWS CodeBuild, AWS CodeCommit AWS CodePipeline AWS CodeDeploy, e Amazon Elastic Container Registry (Amazon ECR).
+ Transforme o desenvolvimento tradicional em cascata em desenvolvimento ágil em projetos de mainframe.

**Resumo das tecnologias**

Nesse padrão, a pilha de destino contém os seguintes componentes.


| 
| 
| Componentes lógicos | Soluções de implementação | Description | 
| --- |--- |--- |
| Repositórios de código-fonte |  AccuRev Servidor Rocket Software CodeCommit, Amazon ECR  | Gerenciamento de código-fonte: a solução usa dois tipos de código-fonte: Código-fonte do mainframe, por exemplo, COBOL e JCL. AWS modelos de infraestrutura e scripts de automação Ambos os tipos de código-fonte precisam de controle de versão, mas são gerenciados de forma diferente SCMs. O código-fonte implantado no mainframe ou nos servidores corporativos da Rocket Software é gerenciado no Rocket Software Micro Focus Server. AccuRev AWS modelos e scripts de automação são gerenciados em CodeCommit. O Amazon ECR é usado para os repositórios de imagem do Docker.  | 
| Instâncias de desenvolvedores corporativos | Amazon Elastic Compute Cloud (Amazon EC2), desenvolvedor corporativo da Rocket Software para Eclipse | Os desenvolvedores de mainframe podem desenvolver código na Amazon EC2 usando o Rocket Software Enterprise Developer for Eclipse. Isso elimina a necessidade de depender do hardware do mainframe para escrever e testar o código.  | 
| Gerenciamento de licenças do Rocket Software Enterprise Suite | Rocket Software Enterprise Suite License Manager | Para gerenciamento e governança centralizados de licenças do Rocket Software Enterprise Suite, a solução usa o Rocket Software Enterprise Suite License Manager para hospedar a licença necessária. | 
| Pipelines de CI/CD | CodePipeline,, CodeBuild CodeDeploy, Rocket Software Enterprise Developer em um contêiner, Rocket Software Enterprise Test Server em um contêiner, Rocket Software Micro Focus Enterprise Server | As equipes de desenvolvimento de mainframe precisam de CI/CD pipelines para realizar compilação de código, testes de integração e testes de regressão. Em AWS, CodePipeline e CodeBuild pode trabalhar com o Rocket Software Enterprise Developer e o Enterprise Test Server em um contêiner nativamente. | 

## Pré-requisitos e limitações
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Pré-requisitos **


| 
| 
| Name (Nome) | Description | 
| --- |--- |
| py3270 | py3270 é uma interface Python para x3270, um emulador de terminal IBM 3270. Ele fornece uma API para um subprocesso x3270 ou s3270. | 
| x3270 | O x3270 é um emulador de terminal IBM 3270 para o X Window System e Windows.  Isso pode ser usado pelo desenvolvedor para teste de unidade localmente. | 
| Robot-Framework-Mainframe-3270-Biblioteca | O Mainframe3270 é uma biblioteca para Robot Framework baseada no projeto py3270. | 
| Rocket Software Verastream | O Rocket Software Verastream é uma plataforma de integração que permite testar ativos de mainframe da mesma forma que aplicações móveis, aplicações web e serviços web SOA são testados. | 
| Instalador e licença do Rocket Software Unified Functional Testing (UFT) | O Rocket Software Unified Functional Testing é um software que fornece automação de testes funcionais e de regressão para aplicações e ambientes de software. | 
| Instalador e licença do Rocket Software Enterprise Server | O Enterprise Server fornece o ambiente de runtime para aplicativos de mainframe. | 
| Instalador e licença do Rocket Software Enterprise Test Server | O Rocket Software Enterprise Test Server é um ambiente de teste de aplicações de mainframe IBM. | 
|  AccuRev Instalador e licença do Rocket Software para servidor e instalador e licença da Rocket Software Micro Focus AccuRev para sistemas operacionais Windows e Linux  | AccuRev fornece gerenciamento de código-fonte (SCM). O AccuRev sistema foi projetado para ser usado por uma equipe de pessoas que estão desenvolvendo um conjunto de arquivos. | 
| Instalador, patch e licença do Rocket Software Enterprise Developer for Eclipse | O Enterprise Developer fornece ao desenvolvedor de mainframe uma plataforma para desenvolver e manter os principais aplicativos on-line e em lote do mainframe. | 

**Limitações**
+ A criação de uma imagem do Windows Docker não é suportada no CodeBuild. Esse [problema relatado](https://github.com/docker-library/docker/issues/49) precisa do suporte das equipes do Windows Kernel/HCS e do Docker. A solução alternativa é criar um runbook de criação de imagem do Docker usando o Systems Manager. Este padrão usa a solução alternativa para criar imagens de contêiner do Rocket Software Enterprise Developer for Eclipse e do Rocket Software Micro Focus Enterprise Test Server. 
+ A conectividade de nuvem privada virtual (VPC) ainda não CodeBuild é suportada no Windows, portanto, o padrão não usa o Rocket Software License Manager para gerenciar licenças nos contêineres OpenText Rocket Software Enterprise Developer e Rocket Software Enterprise Test Server.

**Versões do produto**
+ Rocket Software Enterprise Developer 5.5 ou posterior
+ Rocket Software Enterprise Test Server 5.5 ou posterior
+ Rocket Software Enterprise Server 5.5 ou posterior
+ Rocket Software AccuRev 7.x ou posterior
+ Imagem base do Windows Docker para Rocket Software Enterprise Developer e Enterprise Test Server: **microsoft/dotnet-framework-4.7.2-runtime**
+ **Imagem base do Linux Docker para AccuRev cliente: amazonlinux:2**

## Arquitetura
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Ambiente de mainframe**

No desenvolvimento convencional de mainframe, os desenvolvedores precisam usar hardware de mainframe para desenvolver e testar programas. Eles enfrentam limitações de capacidade, por exemplo, milhões de instruções por segundo (MIPS) restritos para o dev/test ambiente, e precisam confiar nas ferramentas que estão disponíveis nos computadores mainframe.

Em muitas organizações, o desenvolvimento de mainframe segue a metodologia de desenvolvimento em cascata, com equipes confiando em ciclos longos para lançar mudanças. Esses ciclos de lançamento geralmente são mais longos do que o desenvolvimento de produtos digitais.   

O diagrama a seguir mostra vários projetos de mainframe compartilhando hardware de mainframe para seu desenvolvimento. No hardware de mainframe, é caro escalar um ambiente de desenvolvimento e teste para mais projetos.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*Arquitetura do AWS*****

Este padrão estende o desenvolvimento do mainframe para a Nuvem AWS. Primeiro, ele usa o AccuRev SCM para hospedar o código-fonte do mainframe. AWS Em seguida, ele disponibiliza o Enterprise Developer e o Enterprise Test Server para criar e testar o código do mainframe na AWS. 

As seções a seguir descrevem os três componentes principais do padrão.

**1. SCM **

Em AWS, o padrão é usado AccuRev para criar um conjunto de espaços de trabalho e controle de versão do SCM para o código-fonte do mainframe. Sua arquitetura baseada em fluxo permite o desenvolvimento paralelo de mainframe para várias equipes. Para mesclar uma alteração, AccuRev usa o conceito de promoção. Para adicionar essa alteração a outros espaços de trabalho, AccuRev use o conceito de atualização.

No nível do projeto, cada equipe pode criar um ou mais fluxos AccuRev para monitorar as mudanças no nível do projeto. Eles são chamados de fluxos de projeto. Esses fluxos de projeto são herdados do mesmo fluxo principal. O fluxo principal é usado para mesclar as alterações de diferentes fluxos do projeto.

Cada fluxo de projeto pode promover código para AccuRev, e um gatilho de publicação de promoção é configurado para iniciar o pipeline de AWS CI/CD. A compilação bem-sucedida de uma alteração na reprodução do projeto pode ser promovida para seu fluxo principal para mais testes de regressão.  

Normalmente, o fluxo principal é chamado de fluxo de integração do sistema. Quando há uma promoção de um fluxo de projeto para um fluxo de integração de sistema, um gatilho de pós-promoção inicia outro CI/CD pipeline para executar testes de regressão.

Além do código de mainframe, esse padrão inclui AWS CloudFormation modelos, documentos do Systems Manager Automation e scripts. Seguindo as infrastructure-as-code melhores práticas, eles são controlados por versão em. CodeCommit 

Se você precisar sincronizar o código do mainframe com um ambiente de mainframe para implantação, a Rocket Software fornece a solução Enterprise Sync, que sincroniza o código do SCM com o AccuRev SCM do mainframe.

**2. Ambientes de teste e desenvolvimento**

Em uma grande organização, escalar mais de cem ou até mais de mil desenvolvedores de mainframe é um desafio. Para resolver essa restrição, o padrão usa instâncias EC2 do Amazon Windows para desenvolvimento. Nas instâncias, as ferramentas Enterprise Developer for Eclipse estão instaladas. O desenvolvedor pode realizar todos os testes e depuração do código do mainframe localmente na instância. 

AWS Systems Manager Os documentos State Manager e Automation são usados para automatizar o provisionamento da instância do desenvolvedor. O tempo médio para criar uma instância de desenvolvedor é de 15 minutos. O software e as configurações a seguir estão preparados:
+ AccuRev Cliente Windows para verificar e enviar o código-fonte AccuRev
+ Ferramenta Enterprise Developers for Eclipse, para escrever, testar e depurar código de mainframe localmente
+ Estruturas de teste de código aberto Estrutura de teste de desenvolvimento orientado a comportamento (BDD) Python Behave, py3270 e o emulador x3270 para criar scripts para testar aplicativos
+ Uma ferramenta de desenvolvedor do Docker para criar a imagem do Enterprise Test Server Docker e testar o aplicativo no contêiner do Enterprise Test Server Docker 

No ciclo de desenvolvimento, os desenvolvedores usam a EC2 instância para desenvolver e testar o código do mainframe localmente. Quando as alterações locais são testadas com sucesso, os desenvolvedores promovem a alteração no AccuRev servidor.  

**3. CI/CD oleodutos**

No padrão, os CI/CD pipelines são usados para testes de integração e testes de regressão antes da implantação no ambiente de produção. 

Conforme explicado na seção SCM, AccuRev usa dois tipos de fluxos: um fluxo de projeto e um fluxo de integração. Cada fluxo é conectado a CI/CD oleodutos. Para realizar a integração entre o AccuRev servidor e AWS CodePipeline, o padrão usa o script de AccuRev pós-promoção para criar um evento para iniciar o CI/CD.

Por exemplo, quando um desenvolvedor promove uma alteração em um stream de projeto em AccuRev, ele inicia um script de pós-promoção para ser executado no AccuRev Server. Em seguida, o script carrega os metadados da alteração em um bucket do Amazon Simple Storage Service (Amazon S3) para criar um evento do Amazon S3. Esse evento iniciará um pipeline CodePipeline configurado para ser executado. 

O mesmo mecanismo de iniciação de eventos é usado para o fluxo de integração e seus pipelines associados. 

No CI/CD pipeline, CodePipeline use CodeBuild com o contêiner do cliente AccuRev Linux para verificar o código mais recente dos AccuRev fluxos. Em seguida, o pipeline começa CodeBuild a usar o contêiner Enterprise Developer Windows para compilar o código-fonte e a usar o contêiner Enterprise Test Server Windows CodeBuild para testar aplicativos de mainframe.

Os CI/CD pipelines são criados usando CloudFormation modelos e o blueprint será usado para novos projetos. Ao usar os modelos, leva menos de uma hora para que um projeto crie um novo CI/CD pipeline AWS.

Para escalar sua capacidade de teste de mainframe AWS, o padrão cria a suíte de DevOps testes da Rocket Software, o Verastream e o servidor UFT. Ao usar as DevOps ferramentas modernas, você pode executar quantos testes precisar. AWS 

Um exemplo de ambiente de desenvolvimento de mainframe com o Rocket Software ativado AWS é mostrado no diagrama a seguir.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Pilha de tecnologias de destino*

Esta seção fornece uma visão mais detalhada da arquitetura de cada componente no padrão.

**1. Repositório de código-fonte — SCM AccuRev **

AccuRev O SCM está configurado para gerenciar as versões do código-fonte do mainframe. Para alta disponibilidade, AccuRev suporta os modos primário e de réplica. Os operadores podem fazer o failover para a réplica ao realizar a manutenção no nó primário. 

Para acelerar a resposta do CI/CD pipeline, o padrão usa o Amazon CloudWatch Events para detectar alterações no código-fonte e iniciar o início do pipeline.

1. O pipeline é configurado para usar uma fonte do Amazon S3.

1. Uma regra de CloudWatch eventos é configurada para capturar eventos do S3 de um bucket do S3 de origem.

1. A regra de CloudWatch eventos define uma meta para o pipeline.

1. AccuRev O SCM está configurado para executar um script de pós-promoção localmente após a conclusão da promoção.

1. AccuRev O SCM gera um arquivo XML que contém os metadados da promoção, e o script carrega o arquivo XML no bucket do S3 de origem.

1. Após o upload, o bucket S3 de origem envia eventos que correspondam à regra de CloudWatch Eventos, e a regra de CloudWatch Eventos inicia a execução do pipeline. 

Quando o pipeline é executado, ele inicia um CodeBuild projeto para usar um contêiner de cliente AccuRev Linux para verificar o código de mainframe mais recente de um fluxo associado AccuRev .   

O diagrama a seguir mostra uma configuração de AccuRev servidor.

![\[Nuvem AWS diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Modelo de desenvolvedor corporativo** 

O padrão usa EC2 modelos da Amazon para simplificar a criação da instância do desenvolvedor. Ao usar o State Manager, ele pode aplicar configurações de software e licença às EC2 instâncias de forma consistente.

O EC2 modelo da Amazon se baseia em suas configurações de contexto de VPC e configurações de instância padrão e segue os requisitos de marcação corporativa. Ao usar um modelo, uma equipe pode criar suas próprias novas instâncias de desenvolvimento. 

Quando uma instância de desenvolvedor é iniciada, associando-se a tags, o Systems Manager usa o State Manager para aplicar a automação. A automação inclui as seguintes etapas gerais.

1. Instale o software Enterprise Developer e instale os patches.

1. Instale o AccuRev cliente para Windows.

1. Instale o script pré-configurado para que os desenvolvedores participem do AccuRev stream. Inicialize os workspaces do Eclipse.

1. Instale ferramentas de desenvolvimento, incluindo x3270, py3270 e Docker.

1. Defina as configurações de licença para apontar para um balanceador de carga do License Manager.

O diagrama a seguir mostra uma instância de desenvolvedor corporativo criada pelo EC2 modelo da Amazon, com software e configuração aplicados à instância pelo State Manager. As instâncias de desenvolvedores corporativos se conectam AWS License Manager para ativar suas licenças.

![\[Nuvem AWS diagram showing Enterprise Developer Instance setup with License Manager and Systems Manager components.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  Pipelines de CI/CD**

Conforme explicado na seção de AWS arquitetura, no padrão, há pipelines em nível de projeto e CI/CD pipelines de integração de sistemas. Cada equipe de projeto de mainframe cria um pipeline ou vários CI/CD pipelines para criar os programas que estão desenvolvendo em um projeto. Esses CI/CD pipelines de projeto verificam o código-fonte de um AccuRev fluxo associado. 

Em uma equipe de projeto, os desenvolvedores promovem seu código no AccuRev fluxo associado. Em seguida, a promoção inicia o pipeline do projeto para criar o código e executar testes de integração. 

Cada CI/CD pipeline de projeto usa CodeBuild projetos com a imagem Amazon ECR da ferramenta Enterprise Developer e a ferramenta Enterprise Test Server Amazon ECR image. 

CodePipeline e CodeBuild são usados para criar os CI/CD pipelines. Porque CodeBuild , sem taxas ou compromissos iniciais, você paga apenas pelo que usa. CodePipeline Em comparação com o hardware de mainframe, a AWS solução reduz consideravelmente o lead time de provisionamento de hardware e diminui o custo do seu ambiente de testes.

No desenvolvimento moderno, várias metodologias de teste são usadas. Por exemplo, desenvolvimento orientado a testes (TDD), BDD e Robot Framework. Com esse padrão, os desenvolvedores podem usar essas ferramentas modernas para testes de mainframe. Por exemplo, usando x3270, py3270 e a ferramenta de teste Behave python, você pode definir o comportamento de um aplicativo on-line. Você também pode usar a estrutura de robôs build mainframe 3270 nesses CI/CD pipelines.

O diagrama a seguir mostra o CI/CD pipeline do stream da equipe. 

![\[Nuvem AWS CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


O diagrama a seguir mostra o relatório de CI/CD teste do projeto produzido pelo CodePipeline Mainframe3270 Robot Framework.

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


O diagrama a seguir mostra o relatório de CI/CD teste do projeto produzido por 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/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Depois que os testes em nível de projeto são aprovados com sucesso, o código testado é promovido manualmente para o fluxo de integração no AccuRev SCM. Você pode automatizar essa etapa depois que as equipes confiarem na cobertura de testes do pipeline de projetos.

Quando o código é promovido, o CI/CD pipeline de integração do sistema verifica o código mesclado e executa testes de regressão. O código mesclado é promovido a partir de todos os fluxos paralelos do projeto.

Dependendo da precisão do ambiente de teste, os clientes podem ter mais CI/CD pipelines de integração de sistemas em um ambiente diferente, por exemplo, UAT, Pré-produção. 

No padrão, as ferramentas usadas no pipeline de integração do sistema são Enterprise Test Server, UFT Server e Verastream. Todas essas ferramentas podem ser implantadas no contêiner Docker e usadas com. CodeBuild

Depois de testar com sucesso os programas de mainframe, o artefato é armazenado, com controle de versão, em um bucket S3. 

O diagrama a seguir mostra um CI/CD pipeline de integração do sistema.

![\[CI/CD pipeline showing Serviços da AWS and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Depois que o artefato for testado com sucesso nos CI/CD pipelines de integração do sistema, ele poderá ser promovido para implantação em produção. 

Se você precisar implantar o código-fonte de volta no mainframe, a Rocket Software oferece a solução Enterprise Sync para sincronizar o código-fonte de AccuRev volta para o Mainframe Endeavour.

O diagrama a seguir mostra um CI/CD pipeline de produção implantando o artefato em servidores corporativos. Neste exemplo, CodeDeploy orquestra a implantação do artefato de mainframe testado no Enterprise Server.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Além do passo a passo da arquitetura do CI/CD pipeline, consulte a postagem do AWS DevOps blog [Automatize milhares de testes de mainframe AWS com o Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) para obter mais informações sobre como testar aplicativos de mainframe em e. CodeBuild CodePipeline (Micro Focus agora é Rocket Software.) Consulte a postagem do blog para obter as melhores práticas e detalhes sobre como fazer testes de mainframe em AWS.

## Ferramentas
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS ferramentas de automação**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Eventos da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)

**Ferramentas da Rocket Software**
+ [Rocket Enterprise Developer for Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Rocket Enterprise Test Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ETS-help/GUID-ECA56693-D9FE-4590-8798-133257BFEBE7.html)
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/es_60/) (implantação de produção)
+ [Software Rocket AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [Rocket Software Enterprise Suite License Manager](https://www.microfocus.com/documentation/slm/)
+ [Rocket Software Verastream Host Integrator](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Rocket Software UFT One](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Outras ferramentas**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Robot-Framework-Mainframe-3270-Biblioteca](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Épicos
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Crie a infraestrutura do AccuRev SCM
<a name="create-the-accurev-scm-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante um servidor AccuRev SCM primário usando CloudFormation. |  | AWS CloudFormation | 
| Crie o usuário AccuRev administrador. | Faça login no AccuRev SCM Server e execute o comando CLI para criar um usuário administrador. | AccuRev Administrador do servidor SCM | 
| Crie AccuRev streams. | Crie AccuRev fluxos que herdam dos fluxos superiores em sequência: produção, integração de sistemas, fluxos de equipe. | AccuRev Administrador do SCM | 
| Crie as contas de AccuRev login do desenvolvedor. | Use os comandos da CLI do AccuRev SCM para AccuRev criar contas de login de usuários para desenvolvedores de mainframe. | AccuRev Administrador do SCM | 

### Crie o modelo de EC2 lançamento da Amazon para desenvolvedores corporativos
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o modelo de EC2 lançamento da Amazon usando CloudFormation. | Use CloudFormation para implantar um modelo de EC2 lançamento da Amazon para instâncias do Enterprise Developer. O modelo inclui um documento de Automação do Systems Manager para a instância do Rocket Enterprise Developer. | AWS CloudFormation | 
| Crie a instância Enterprise Developer a partir do EC2 modelo da Amazon. |  | Login do console da AWS e habilidades para desenvolvedores de mainframe | 

### Criar a imagem do Docker da ferramenta Enterprise Developer
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a imagem do Docker da ferramenta Enterprise Developer. | Use o comando Docker e a ferramenta Dockerfile do Enterprise Developer para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR. | No console do Amazon ECR, crie o repositório para a imagem do Docker do Enterprise Developer. | Amazon ECR | 
| Envie a imagem do Docker da ferramenta do Enterprise Developer para o Amazon ECR. | Execute o comando Docker push para enviar a imagem do Docker da ferramenta Enterprise Developer e salvá-la no repositório Docker no Amazon ECR. | Docker | 

### Crie a imagem do Docker do Enterprise Test Server
<a name="create-the-enterprise-test-server-docker-image"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a imagem do Docker do Enterprise Test Server. | Use o comando Docker e o Dockerfile do Enterprise Test Server para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR. | No console do Amazon ECR, crie o repositório do Amazon ECR para a imagem do Docker do Enterprise Test Server. | Amazon ECR | 
| Envie a imagem do Docker do Enterprise Test Server para o Amazon ECR. | Execute o comando Docker push para enviar e salvar a imagem do Docker do Enterprise Test Server no Amazon ECR. | Docker | 

### Crie o CI/CD pipeline de stream da equipe
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o CodeCommit repositório. | No CodeCommit console, crie um repositório baseado em Git para infraestrutura e código. CloudFormation  | AWS CodeCommit | 
| Faça o upload do CloudFormation modelo e do código de automação no CodeCommit repositório. | Execute o comando push do Git para carregar o CloudFormation modelo e o código de automação no repositório. | Git | 
| Implante o CI/CD pipeline de stream de equipe usando CloudFormation. | Use o CloudFormation modelo preparado para implantar um CI/CD pipeline de fluxo de equipe. | AWS CloudFormation | 

### Crie o CI/CD pipeline de integração do sistema
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a imagem do Docker do UFT. | Use o comando Docker e o UFT Dockerfile para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR para a imagem do UFT. | No console do Amazon ECR, crie o repositório Docker para a imagem do UFT. | Amazon ECR | 
| Envie a imagem do Docker do UFT para o Amazon ECR. | Execute o comando Docker push para enviar e salvar a imagem do Docker do Enterprise Test Server no Amazon ECR. | Docker | 
| Crie a imagem do Docker do Verastream. | Use o comando Docker e o Verastream Dockerfile para criar a imagem do Docker. | Docker | 
| Crie o repositório Docker no Amazon ECR para a imagem Verastream. | No console do Amazon ECR, crie o repositório Docker para a imagem Verastream. | Amazon ECR | 
| Implante o CI/CD pipeline de integração do sistema usando CloudFormation. | Use o CloudFormation modelo preparado para implantar um CI/CD pipeline de integração do sistema. | AWS CloudFormation | 

### Crie um CI/CD pipeline de implantação de produção
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o Enterprise Server usando o AWS Quick Start. | Para implantar o Enterprise Server usando CloudFormation, inicie o Enterprise Server no AWS Quick Start. | AWS CloudFormation | 
| Implante um CI/CD pipeline de implantação de produção. | No CloudFormation console, use o CloudFormation modelo para implantar um CI/CD pipeline de implantação de produção. | AWS CloudFormation | 

## Recursos relacionados
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Referências**
+ [AWS DevOps Blog - Automatize milhares de testes de mainframe AWS com o Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) (a Micro Focus agora é Rocket Software).
+ [repositório py3270/py3270 GitHub ](https://github.com/py3270/py3270)
+ [Repositório de bibliotecas GitHub altran-pt-gdc/robot-framework-mainframe-3270](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [Bem-vindo ao Behave\$1](https://behave.readthedocs.io/en/latest/index.html)
+ [Blog de parceiros da APN: Tag: Micro Focus](https://aws.amazon.com/blogs/apn/tag/micro-focus/) (Micro Focus agora é Rocket Software.)
+ [Executar uma instância a partir de um modelo de execução](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**AWS Marketplace**
+ [Rocket Software UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Início rápido**
+ [Servidor Rocket Enterprise em AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernize as workloads de impressão on-line de mainframe na AWS usando o Micro Focus Enterprise Server e o 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 e Shoup Inc*

## Resumo
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Esse padrão mostra como modernizar suas cargas de trabalho de impressão on-line de mainframe essenciais para os negócios na nuvem da Amazon Web Services (AWS) usando o Micro Focus Enterprise Server como tempo de execução para um aplicativo de mainframe modernizado e o LRS VPSX/MFI (Micro Focus Interface) como servidor de impressão. O padrão é baseado na abordagem de modernização do mainframe de [redefinir a plataforma](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/). Nessa abordagem, você migra seu aplicativo on-line de mainframe para o Amazon Elastic Compute Cloud (Amazon EC2) e migra seu banco de dados de mainframe, como IBM (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/DISfor), integrado ao AWS Managed Microsoft AD DB2 para autenticação e autorização do fluxo de trabalho de impressão. Ao modernizar suas cargas de trabalho de impressão on-line, você pode reduzir os custos de infraestrutura de TI, mitigar a dívida técnica de manter sistemas legados, remover silos de dados, aumentar a agilidade e a eficiência com um DevOps modelo e aproveitar os recursos sob demanda e a automação na nuvem da AWS.

## Pré-requisitos e limitações
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma workload de gerenciamento de impressão ou saída on-line de mainframe
+ Conhecimento básico de como reconstruir e fornecer um aplicativo de mainframe executado no Micro Focus Enterprise Server (para obter mais informações, consulte a planilha de dados do [Enterprise Server](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) na documentação da Micro Focus.)
+ Conhecimento básico das soluções e conceitos de impressão em nuvem do LRS (para obter mais informações, consulte [Modernização de saída](https://www.lrsoutputmanagement.com/products/modernization-products) na documentação do LRS).
+ Software e licença do Micro Focus Enterprise Server (para obter mais informações, entre em contato com a [equipe de vendas da Micro Focus](https://www.microfocus.com/en-us/contact/contactme).)
+ VPSX/MFI, LRS/Queue, and LRS/DISSoftware e licenças do LRS (para obter mais informações, entre em contato com a equipe de vendas do [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**nota**  
Para obter mais informações sobre considerações de configuração para workloads de impressão on-line de mainframe, consulte *Considerações* na seção *Informações adicionais* deste padrão.

**Versões do produto**
+ [Micro Focus Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 8.0 ou posterior
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/modernization-products/) V1R3 ou superior

## Arquitetura
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Pilha de tecnologia de origem**
+ Sistema operacional: IBM z/OS
+ Linguagem de programação: Common Business-Oriented Language (COBOL) e Customer Information Control System (CICS) 
+ Banco de dados — IBM DB2 para z/OS IBM Information Management System (IMS) e Virtual Storage Access Method (VSAM)
+ Segurança — Resource Access Control Facility (RACF), CA Top Secret for z/OS e Access Control Facility 2 () ACF2
+ Gerenciamento de impressão e saída — produtos de z/OS impressão em mainframe IBM (IBM Infoprint Server for z/OS, LRS e CA View)

**Pilha de tecnologias de destino**
+ Sistema operacional — Microsoft Windows Server em execução na Amazon EC2
+ Computação — Amazon EC2
+ Linguagem de programação: COBOL e CICS
+ Banco de dados: Amazon RDS
+ Segurança: AWS Managed Microsoft AD
+ Gerenciamento de impressão e produção: solução de impressão LRS na AWS
+ Ambiente runtime de mainframe: Micro Focus Enterprise Server

**Arquitetura de origem**

O diagrama a seguir mostra uma arquitetura típica do estado atual para uma workload de impressão on-line de mainframe.

![\[Processo de seis etapas para produzir uma saída visível.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Os usuários realizam transações comerciais em um sistema de engajamento (SoE) construído em um aplicativo IBM CICS escrito em COBOL.

1. O SoE invoca o serviço de mainframe, que registra os dados da transação comercial em um banco de dados system-of-records (SoR), como o IBM for z/OS. DB2 

1. O SoR persiste os dados comerciais do SoE.

1. Um usuário inicia uma solicitação para gerar a saída de impressão do CICS SoE, que inicia um aplicativo de transação de impressão para processar a solicitação de impressão. 

1. O aplicativo de transação de impressão (como um programa CICS e COBOL) extrai dados do banco de dados, formata os dados de acordo com os requisitos comerciais e gera resultados comerciais (dados de impressão), como extratos de cobrança, cartões de identificação ou extratos de empréstimos. Em seguida, o aplicativo envia uma solicitação de impressão usando o Método de Acesso às Telecomunicações Virtuais (VTAM). Um servidor de z/OS impressão (como o IBM Infoprint Server) usa NetSpool ou um componente VTAM similar para interceptar as solicitações de impressão e, em seguida, cria conjuntos de dados de saída de impressão no spool do JES usando os parâmetros de saída do JES. Os parâmetros de saída do JES especificam as informações de roteamento que o servidor de impressão usa para transmitir a saída para uma impressora de rede específica. O termo *VTAM* se refere ao elemento de serviços z/OS Communications Server e System Network Architecture (SNA) do z/OS.

1. O componente de transmissão de saída de impressão transmite os conjuntos de dados de impressão de saída do spool JES para impressoras remotas ou servidores de impressão, como LRS (conforme demonstrado nesse padrão), IBM Infoprint Server ou destinos de e-mail.

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura para uma workload de impressão on-line de mainframe que é implantada na nuvem AWS:

![\[Processo de quatro etapas, desde o início da solicitação de impressão até o processamento na AWS e a impressão no LRS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um usuário inicia uma solicitação de impressão a partir de uma interface de usuário on-line (CICS) para criar resultados impressos, como extratos de cobrança, cartões de identificação ou extratos de empréstimos.

1. O aplicativo on-line de mainframe ([reformulado para Amazon EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) usa o tempo de execução do Micro Focus Enterprise Server para extrair dados do banco de dados do aplicativo, aplicar lógica comercial aos dados, formatar os dados e, em seguida, enviar os dados para um destino de impressão usando o [Micro Focus CICS Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (DFHUPRNT). 

1. O banco de dados do aplicativo (um SoR executado no Amazon RDS) persiste os dados para a saída de impressão.

1. A solução de VPSX/MFI impressão LRS é implantada na Amazon EC2 e seus dados operacionais são armazenados no Amazon Elastic Block Store (Amazon EBS). O LRS VPSX/MFI usa um nome de TCP/IP-based LRS/Queue transmission agent to collect print data through the Micro Focus CICS Print Exit API (DFHUPRNT) and deliver the data to a specified printer destination. The original TERMID (TERM) that’s used in the modernized CICS application is used as the VPSX/MFI fila. 

**nota**  
A solução de destino normalmente não exige alterações na aplicação para acomodar linguagens de formatação de mainframe, como IBM Advanced Function Presentation (AFP) ou Xerox Line Condition Data Stream (LCDS). Para obter mais informações sobre o uso da Micro Focus para migração e modernização de aplicativos de mainframe na AWS, consulte [Capacitando workloads de mainframe corporativas na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) na documentação da AWS.

**Arquitetura de infraestrutura da AWS**

O diagrama a seguir mostra uma arquitetura de infraestrutura da AWS altamente disponível e segura para uma workload de impressão on-line de mainframe:

![\[Duas zonas de disponibilidade com o servidor Micro Focus Enterprise ligado EC2, Amazon RDS e impressão LRS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O aplicativo on-line do mainframe (escrito em uma linguagem de programação como CICS ou COBOL) usa a lógica comercial principal para processar e gerar resultados impressos, como extratos de cobrança, cartões de identificação e extratos de empréstimos. O aplicativo on-line é implantado na Amazon EC2 em duas [zonas de disponibilidade](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (AZ) para alta disponibilidade (HA) e usa o Micro Focus CICS Print Exit para encaminhar a saída de impressão para o LRS VPSX/MFI para impressão do usuário final.

1. O LRS VPSX/MFI usa um 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 comando. 
**nota**  
Para obter mais informações sobre vários métodos de programação de aplicações CICS para impressão e como eles são aceitos no servidor Micro Focus Enterprise e no LRS VPSX/MFI, consulte *Captura de dados de impressão* na seção *Informações adicionais* deste padrão.

1. 
**nota**  
Um [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) fornece um nome DNS para integrar o Micro Focus Enterprise Server com o 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 encaminha o tráfego para os destinos registrados que estão íntegros.

1. O servidor de VPSX/MFI impressão LRS é implantado na Amazon EC2 em duas zonas de disponibilidade para HA e usa o [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) como um armazenamento de dados operacional. O LRS VPSX/MFI suporta os modos de serviço ativo-ativo e ativo-passivo. Essa arquitetura usa várias zonas de disponibilidade em um par ativo-passivo como um standby a quente ativo. O Network Load Balancer executa uma verificação de integridade nas VPSX/MFI EC2 instâncias do LRS e encaminha o tráfego para instâncias em espera ativa em outra zona de disponibilidade se uma instância ativa estiver em um estado não íntegro. As solicitações de impressão persistem no LRS Job Queue localmente em cada uma das instâncias. EC2 Em caso de recuperação, uma instância com falha precisa ser reiniciada para que os serviços do LRS retomem o processamento da solicitação de impressão. 
**nota**  
O LRS também VPSX/MFI pode realizar verificações de saúde no nível da frota de impressoras. Para obter mais informações, consulte *Verificações de integridade da frota de impressoras* na seção *Informações adicionais* desse padrão.

1. [O AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) se integra LRS/DIS para realizar a autenticação e autorização do fluxo de trabalho de impressão. Para obter mais informações, consulte *Autenticação e autorização de impressão* na seção *Informações adicionais* desse padrão.

1. O LRS VPSX/MFI usa o Amazon EBS para armazenamento em blocos. Você pode fazer backup de dados do Amazon EBS de EC2 instâncias ativas para o Amazon S3 point-in-time como snapshots e restaurá-los em volumes do EBS em espera ativa. Para automatizar a criação, retenção e exclusão de snapshots de volume do Amazon EBS, você pode usar o [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) para definir a frequência dos snapshots automatizados e restaurá-los com base em seus [requisitos de RTO/RPO](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).

## Ferramentas
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**Serviços da AWS**
+ [O Amazon Elastic Block Store (Amazon EBS) fornece volumes de armazenamento em nível de bloco para uso com instâncias da Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html). EC2 Os volumes do EBS se comportam como dispositivos de bloco brutos e não formatados. É possível montar esses volumes como dispositivos em suas instâncias.
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.
+ O [AWS Directory Service for Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), também conhecido como AWS Managed Microsoft Active Directory, permite que suas workloads e recursos da AWS com reconhecimento de diretório usem o Active Directory gerenciado na AWS.

**Outras ferramentas**
+ O [LRS VPSX/MFI (Interface do Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), desenvolvido em conjunto pela LRS e pela Micro Focus, captura a saída de um spool JES do Micro Focus Enterprise Server e a entrega de forma confiável a um destino de impressão especificado.
+ O LRS Directory Information Server (LRS/DIS) é usado para autenticação e autorização durante o fluxo de trabalho de impressão.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, para coletar ou capturar dados de impressão por meio da interface de programação online Print Exit da Micro Focus.
+ O [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) é um ambiente de implantação de aplicativos para aplicativos de mainframe Ele fornece o ambiente de execução para aplicativos de mainframe que são migrados ou criados usando qualquer versão do Micro Focus Enterprise Developer.

## Épicos
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Configure o Micro Focus Enterprise Server na Amazon EC2 e implante um aplicativo on-line de mainframe
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Micro Focus Enterprise Server e implante um aplicativo on-line de demonstração. | Configure o Micro Focus Enterprise Server na Amazon e EC2, em seguida, implante o aplicativo Micro Focus Account Demo ([ACCT Demo) na Amazon EC2 seguindo as instruções do Tutorial: CICS Support](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) na documentação da Micro Focus.O aplicativo ACCT Demo é um aplicativo on-line de mainframe (CICS) que cria e inicia a saída de impressão. | Arquiteto de nuvem | 

### Configure um servidor de impressão LRS na Amazon EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha uma licença de produto LRS para impressão. | Para obter uma licença de produto LRS para o LRSVPSX/MFI, LRS/Queue, and LRS/DIS, entre em contato com a equipe de gerenciamento de [saída do LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Você deve fornecer os nomes de host das EC2 instâncias em que os produtos LRS serão instalados. | Crie um lead | 
| Crie uma instância EC2 do Amazon Windows para instalar o LRS VPSX/MFI. | Execute uma instância EC2 do Amazon Windows seguindo as instruções da [Etapa 1: Inicie uma instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) na EC2 documentação da Amazon. Sua instância deve atender aos seguintes requisitos de hardware e software para LRS VPSX/MFI:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Os requisitos anteriores de hardware e software são destinados a uma pequena frota de impressoras (cerca de 500 a 1.000). Para obter todos os requisitos, consulte seus contatos do LRS e da AWS.Ao criar sua instância do Windows, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS VPSX/MFI na EC2 instância. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Instale o LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Crie um grupo-alvo e registre o LRS VPSX/MFI EC2 como alvo. | Crie um grupo de destino seguindo as instruções de [Criar um grupo de destino para seu Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) na documentação do Elastic Load Balancing.Ao criar o grupo de destino, faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Criar um Network Load Balancer. | Siga as instruções de [Criar um Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) na documentação do Elastic Load Balancing. Seu Network Load Balancer direciona o tráfego do Micro Focus Enterprise Server para o LRS. VPSX/MFI EC2Ao criar o Network Load Balancer, faça o seguinte na página **Receptores e roteamento**:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Integre o Micro Focus Enterprise Server com LRS VPSX/MFI e LRS/Queue
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o Micro Focus Enterprise Server para LRS/Queue integração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Disponibilize o CICS Print Exit (DFHUPRNT) para a inicialização do Micro Focus Enterprise Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Verifique se o Micro Focus Enterprise Server detectou a saída de impressão do CICS (DFHUPRNT)**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Defina a ID do terminal da impressora CICS (TERMIDs) como Micro Focus Enterprise Server. | **Habilite a impressão 3270 no Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Defina o terminal da impressora CICS no Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configure impressoras e usuários de impressão no Micro Focus Enterprise Server e no LRS VPSX/MFI
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma fila de impressão no LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)A fila de impressão deve ser equivalente à impressão TERMIDs criada no Micro Focus Enterprise Server. | Arquiteto de nuvem | 
| Crie um usuário de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Configurar autorização e autenticação de impressão
<a name="set-up-print-authentication-and-authorization"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um domínio AWS Managed Microsoft AD com usuários e grupos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 
| Associe o LRS VPSX/MFI EC2 a um domínio Microsoft AD gerenciado pela AWS. | Associe o LRS VPSX/MFI EC2 ao seu domínio AWS Managed Microsoft AD [automaticamente](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (documentação do AWS Knowledge Center) ou [manualmente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (documentação do AWS Directory Service). | Arquiteto de nuvem | 
| Configure e integre LRS/DIS com o AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Arquiteto de nuvem | 

### Teste um fluxo de trabalho de impressão on-line
<a name="test-an-online-print-workflow"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie uma solicitação de impressão on-line a partir da aplicação Micro Focus ACCT de demonstração. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)A mensagem “Solicitação de impressão agendada” é exibida na parte inferior da tela. Isso confirma que uma solicitação de impressão on-line foi gerada a partir do aplicativo ACCT Demo e enviada ao LRS VPS/MFI para processamento de impressão.  | Arquiteto de nuvem | 
| Verifique a saída de impressão no LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Agora você pode ver a saída impressa de um extrato de conta com colunas para Número da Conta, SOBRENOME, PRIMEIRO, ENDEREÇO, TELEFONE, Nº. Cartões emitidos, Data de emissão, Valor e Saldo.Para ver um exemplo, consulte o anexo **online\$1print\$1output** desse padrão. | Engenheiro de testes | 

## Recursos relacionados
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernização da saída do LRS](https://www.lrsoutputmanagement.com/products/modernization-products) (documentação do LRS)
+ [Conceitos de rede VTAM](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts) (documentação da IBM)
+ [Resumo dos tipos de unidades lógicas (LU)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (documentação da IBM)
+ [ANSI e controles de transporte de máquinas](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (documentação da IBM)
+ [Capacitando workloads de mainframe corporativo na AWS com a Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (blog da rede de parceiros da AWS)
+ [Crie um PAC do Micro Focus Enterprise Server com o Amazon EC2 Auto Scaling e o 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) (documentação do AWS Prescriptive Guidance)
+ [Fluxo de dados de apresentação de funções avançadas (AFP)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (documentação da IBM)
+ [Fluxo de dados condicionado por linha (LCDS)](https://www.compart.com/en/lcds) (documentação do Compart)

## Mais informações
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Considerações**

Durante sua jornada de modernização, você pode considerar uma grande variedade de configurações para os processos on-line do mainframe e a saída que eles geram. A plataforma de mainframe foi personalizada por cada cliente e fornecedor que a utiliza com requisitos específicos que afetam diretamente a impressão. Por exemplo, sua plataforma atual pode incorporar o IBM Advanced Function Presentation (AFP) ou o Xerox Line Condition Data Stream (LCDS) ao fluxo de trabalho atual. Além disso, os [caracteres de controle do carro do mainframe](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) e as [palavras de comando do canal](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) podem afetar a aparência da página impressa e podem precisar de tratamento especial. Como parte do processo de planejamento da modernização, recomendamos que você avalie e compreenda as configurações em seu ambiente de impressão específico.

**Captura de dados de impressão**

Esta seção resume os métodos de programação de aplicativos CICS que você pode usar em um ambiente de mainframe IBM para impressão. VPSX/MFI Os componentes do LRS fornecem técnicas para permitir que os mesmos programas aplicativos criem dados da mesma forma. A tabela a seguir descreve como cada método de programação de aplicativo é suportado em um aplicativo CICS modernizado executado na AWS e no Micro Focus Enterprise Server com um servidor de impressão LRS VPSX/MFI .


| 
| 
| Método | Description | Suporte para o método em um ambiente modernizado | 
| --- |--- |--- |
| EXEC CICS ENVIA TEXTO... ou EXEC CICS ENVIAR MAPA..  | Esses métodos CICS e VTAM são responsáveis por criar e fornecer fluxos de dados de impressão 3270/SCS para LUTYPE0 e dispositivos de impressão. LUTYPE1 LUTYPE3  | Uma interface de programa de aplicativo (API) do Micro Focus online Print Exit (DFHUPRNT) permite que os dados de impressão sejam processados VPSX/MFI quando os fluxos de dados de impressão 3270/SCS são criados usando qualquer um desses métodos.  | 
| EXEC CICS ENVIA TEXTO... ou EXEC CICS ENVIAR MAPA.. (com software de mainframe IBM de terceiros) | Os métodos CICS e VTAM são responsáveis por criar e fornecer fluxos de dados de impressão 3270/SCS para LUTYPE0 e dispositivos de impressão. LUTYPE1 LUTYPE3 Produtos de software de terceiros interceptam os dados de impressão, convertem os dados em dados de formato de impressão padrão com um caractere de ASA/MCH controle e colocam os dados no spool JES para serem processados por sistemas de impressão baseados em mainframe que usam o JES.  | Uma API de saída de impressão on-line da Micro Focus (DFHUPRNT) permite que os dados de impressão sejam processados VPSX/MFI quando os fluxos de dados de impressão 3270/SCS são criados usando qualquer um desses métodos.  | 
| EXEC CICS SPOOLOPEN  | Esse método é usado pelos programas de aplicação do CICS para gravar dados diretamente no spool do JES. Os dados então ficam disponíveis para serem processados por sistemas de impressão baseados em mainframe que usam o JES.  | O Micro Focus Enterprise Server transfere os dados para o spool do Enterprise Server, onde eles podem ser processados pelo VPSX/MFI Batch Print Exit (LRSPRTE6), que transfere os dados para o VPSX.  | 
| DRS/API | Uma interface programática fornecida pelo LRS é usada para gravar dados de impressão no JES.  | O VPSX/MFI fornece uma interface de substituição que transfere os dados de impressão diretamente para o VPSX.  | 

**Verificações de integridade da frota de impressoras**

O LRS VPSX/MFI (LRS LoadX) pode realizar verificações detalhadas de integridade, incluindo gerenciamento de dispositivos e otimização operacional. O gerenciamento de dispositivos pode detectar falhas em um dispositivo de impressora e encaminhar a solicitação de impressão para uma impressora saudável. Para obter mais informações sobre verificações de integridade detalhadas para frotas de impressoras, consulte a documentação do LRS que está incluída na sua licença de produto.

**Autorização e autenticação de impressão **

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/DIStambém pode aplicar controles de segurança de impressão em nível granular nos seguintes casos de uso:
+ Gerencie quem pode navegar pelo trabalho da impressora.
+ Gerencie o nível de navegação dos trabalhos de outros usuários.
+ Gerencie tarefas operacionais. Por exemplo, segurança em nível de comando, como suspender/liberar, limpar, modificar, copiar e redirecionar. A segurança pode ser configurada pelo ID do usuário ou pelo grupo (semelhante ao grupo AD ou grupo LDAP).

## Anexos
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Mova arquivos de mainframe diretamente para o Amazon S3 usando o Transfer Family
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Resumo
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Como parte da jornada de modernização, você pode enfrentar o desafio de transferir arquivos entre seus servidores on-premises e a nuvem da Amazon Web Services (AWS). Transferir dados de mainframes pode ser um desafio complexo porque os mainframes normalmente não conseguem acessar armazenamentos modernos de dados, como o Amazon Simple Storage Service (Amazon S3), o Amazon Elastic Block Store (Amazon EBS) ou o Amazon Elastic File System (Amazon EFS).

Muitos clientes usam recursos intermediários de preparação, como servidores Linux, Unix ou Windows on-premises, para transferir arquivos para a Nuvem AWS. Você pode evitar esse método indireto usando o AWS Transfer Family com o Secure Shell (SSH) Protocolo de Transferência de Arquivos (SFTP) para carregar arquivos de mainframe diretamente no Amazon S3.

## Pré-requisitos e limitações
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma nuvem privada virtual (VPC) com uma sub-rede acessível por sua plataforma legada
+ Um endpoint do Transfer Family para sua VPC
+ Arquivos do Mainframe Virtual Storage Access Method (VSAM) convertidos em [arquivos sequenciais de tamanho fixo](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) (documentação da IBM)

**Limitações**
+ O SFTP transfere arquivos no modo binário por definição, ou seja, os arquivos são enviados para o Amazon S3 com a codificação EBCDIC preservada. Se seu arquivo não contiver dados binários ou compactados, você poderá usar o [subcomando **sftp **ascii](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) (documentação da IBM) para converter seus arquivos em texto durante a transferência.
+ Você deve [descompactar arquivos de mainframe](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b) (Recomendações da AWS) que contenham conteúdo compactado e binário para usar esses arquivos em seu ambiente de destino.
+ Os objetos do Amazon S3 podem variar em tamanho: de um mínimo de 0 byte a um máximo de 5 TB. Para obter mais informações sobre os recursos do Amazon S3, consulte Amazon [S3](https://aws.amazon.com/s3/faqs/?nc1=h_ls). FAQs

## Arquitetura
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Pilha de tecnologia de origem**
+ Job Control Language (JCL)
+ Shell z/OS Unix e ISPF
+ SFTP
+ VSAM e arquivos simples

**Pilha de tecnologias de destino**
+  Transfer Family
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)

**Arquitetura de destino**

O diagrama a seguir mostra uma arquitetura de referência para usar o Transfer Family com SFTP para carregar arquivos de mainframe diretamente em um bucket do S3.

![\[Uso do Transfer Family com SFTP para fazer o upload de arquivos de mainframe diretamente para um bucket do S3\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Use uma tarefa de JCL para transferir seus arquivos de mainframe do mainframe herdado para a Nuvem AWS por meio do Direct Connect.

1. O Direct Connect permite que seu tráfego de rede permaneça na rede global da AWS e ignore a Internet pública. O Direct Connect também aumenta a velocidade da rede, começando em 50 Mbps e escalando até 100 Gbps.

1. O endpoint da VPC permite conexões entre os recursos da sua VPC e os serviços compatíveis sem usar a Internet pública. O acesso ao Transfer Family e ao Amazon S3 alcança alta disponibilidade por meio de interfaces de rede elástica localizadas em duas sub-redes privadas e zonas de disponibilidade.

1. O Transfer Family autentica os usuários e usa o SFTP para receber seus arquivos do ambiente herdado e movê-los para um bucket do S3.

**Automação e escala**

Depois que o serviço Transfer Family estiver em vigor, você poderá transferir um número ilimitado de arquivos do mainframe para o Amazon S3 usando uma tarefa de JCL como cliente SFTP. Você também pode automatizar a transferência de arquivos usando um agendador de tarefas em lote de mainframe para executar tarefas de SFTP quando for o momento de transferir os arquivos de mainframe.

## Ferramentas
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-tools"></a>
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ A [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ajuda a iniciar recursos da AWS em uma rede virtual definida por você. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.
+ [O AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) permite que você escale com segurança suas transferências recorrentes de business-to-business arquivos para o Amazon S3 e o Amazon EFS usando os protocolos SFTP, FTPS e FTP.

## Épicos
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Criar o bucket do S3 e a política de acesso
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar o bucket do S3. | [Crie um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) para hospedar os arquivos que você transfere do seu ambiente herdado. | AWS geral | 
| Criar uma política e um perfil do IAM. | O Transfer Family usa seu perfil do AWS Identity and Access Management (IAM) para conceder acesso ao bucket do S3 criado anteriormente.Crie um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) que inclua a seguinte [política do 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>É obrigatório selecionar o caso de uso Transfer ao configurar o perfil do IAM. | AWS geral | 

### Definir o serviço de transferência
<a name="define-the-transfer-service"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o servidor SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Para obter mais informações sobre como configurar um servidor SFTP, consulte [Create an SFTP-enabled server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) (guia do usuário do AWS Transfer Family). | AWS geral | 
| Obtenha o endereço do servidor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS geral | 
| Crie o par de chaves do cliente SFTP. | Crie um par de chaves SSH para o [Microsoft Windows](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#windows-ssh) ou [macOS/Linux/UNIX](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#macOS-linux-unix-ssh). | AWS geral, SSH | 
| Crie o servidor SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS geral | 

### Transferir o arquivo do mainframe
<a name="transfer-the-mainframe-file"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Envie a chave privada SSH para o mainframe. | Use SFTP ou SCP para enviar a chave privada SSH para o ambiente herdado.Exemplo de SFTP:<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>Exemplos de SCP:<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>Em seguida, armazene a chave SSH no sistema de arquivos z/OS Unix com o nome de usuário que posteriormente executará o trabalho em lote de transferência de arquivos (por exemplo,`/u/CONTROLM`). Para obter mais informações sobre o shell z/OS Unix, consulte [Uma introdução aos z/OS shells (documentação da](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) IBM). | Mainframe, shell z/OS Unix, FTP, SCP | 
| Crie o cliente JCL SFTP. | Como os mainframes não têm um cliente SFTP nativo, você deve usar o utilitário BPXBATCH para executar o cliente SFTP a partir do shell Unix. z/OS No editor ISPF, crie o cliente JCL SFTP. Por exemplo:<pre>//JOBNAM JOB ...<br />//**********************************************************************<br />//SFTP EXEC PGM=BPXBATCH,REGION=0M <br />//STDPARM DD * <br />SH cp "//'MAINFRAME.FILE.NAME'" filename.txt; <br />echo 'put filename.txt' > uplcmd; <br />sftp -b uplcmd -i ssh_private_key_file ssh_username@<transfer service ip or DNS>; <br />//SYSPRINT DD SYSOUT=* <br />//STDOUT DD SYSOUT=* <br />//STDENV DD * <br />//STDERR DD SYSOUT=*</pre>Para obter mais informações sobre como executar um comando no shell do z/OS Unix, consulte [O utilitário BPXBATCH](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) (documentação da IBM). Para obter mais informações sobre como criar ou editar tarefas de JCL no z/OS, consulte [O que é ISPF?](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) e [O editor ISPF](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor) (documentação da IBM). | JCL, mainframe, shell Unix z/OS  | 
| Execute o cliente JCL SFTP. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Para obter mais informações sobre como verificar a atividade de trabalhos em lote, consulte [z/OS SDSF User's Guide](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide) (documentação da IBM). | Mainframe, JCL, ISPF | 
| Validar a transferência de arquivos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | AWS geral | 
| Crie o cliente JCL SFTP. | Use o agendador de tarefas para acionar automaticamente o cliente JCL SFTP.Você pode usar agendadores de trabalhos de mainframe, como [Control-M da BMC](https://www.bmcsoftware.pt/it-solutions/control-m.html) ou [CA Workload Automation](https://www.broadcom.com/products/mainframe/workload-automation/ca7), para automatizar trabalhos em lote de transferência de arquivos com base no horário e em outras dependências de trabalhos em lote. | Agendador de tarefas | 

## Recursos relacionados
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [Como o AWS Transfer Family funciona](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html)

# Otimize o desempenho do seu aplicativo modernizado AWS Blu Age
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy e Himanshu Sah, Amazon Web Services*

## Resumo
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Os aplicativos de mainframe que são modernizados com o AWS Blu Age exigem testes de equivalência funcional e de desempenho antes de serem implantados na produção. Nos testes de performance, as aplicações modernizadas podem funcionar mais lentamente do que os sistemas legados, especialmente em trabalhos em lotes complexos. Essa disparidade existe porque as aplicações de mainframe são monolíticas, enquanto as aplicações modernas usam arquiteturas de várias camadas. Esse padrão apresenta técnicas de otimização para resolver essas lacunas de desempenho em aplicativos que são modernizados usando a [refatoração automatizada com o Blu Age. AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)

O padrão usa a estrutura de modernização AWS Blu Age com recursos nativos de Java e ajuste de banco de dados para identificar e resolver gargalos de desempenho. O padrão descreve como você pode usar a criação de perfil e o monitoramento para identificar problemas de desempenho com métricas como tempos de execução de SQL, utilização de memória e I/O padrões. Em seguida, explica como você pode aplicar otimizações direcionadas, incluindo reestruturação de consultas de banco de dados, armazenamento em cache e refinamento da lógica de negócios.

As melhorias nos tempos de processamento em lote e na utilização dos recursos do sistema ajudam você a igualar os níveis de performance do mainframe em seus sistemas modernizados. Essa abordagem mantém a equivalência funcional durante a transição para arquiteturas modernas baseadas em nuvem.

Para usar este padrão, configure seu sistema e identifique hotspots de performance seguindo as instruções na seção [Épicos](#optimize-performance-aws-blu-age-modernized-application-epics) e aplique as técnicas de otimização abordadas em detalhes na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture).

## Pré-requisitos e limitações
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Pré-requisitos **
+ Um aplicativo modernizado da AWS Blu Age
+ Uma [JProfiler licença](https://www.ej-technologies.com/store/jprofiler)
+ Privilégios administrativos para instalar o cliente do banco de dados e as ferramentas de criação de perfil
+ AWS Certificação Blu Age [Level 3](https://bluinsights.aws/certification/)
+ Compreensão de nível intermediário da estrutura AWS Blu Age, estrutura de código gerada e programação Java

**Limitações**

As seguintes capacidades e recursos de otimização estão fora do escopo desse padrão:
+ Otimização da latência de rede entre os níveis de aplicações
+ Otimizações em nível de infraestrutura por meio de tipos de instância do Amazon Elastic Compute Cloud (Amazon) e otimização de armazenamento EC2
+ Teste simultâneo de carga de usuário e teste de estresse

**Versões do produto**
+ JProfiler versão 13.0 ou posterior (recomendamos a versão mais recente)
+ pgAdmin versão 8.14 ou posterior

## Arquitetura
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Esse padrão configura um ambiente de criação de perfil para um aplicativo AWS Blu Age usando ferramentas como o JProfiler pGADmin. Ele suporta otimização por meio do DAOManager and SQLExecution Builder APIs fornecido pela AWS Blu Age.

O restante desta seção fornece informações detalhadas e exemplos para identificar hotspots de performance e estratégias de otimização para suas aplicações modernizadas. As etapas na seção [Épicos](#optimize-performance-aws-blu-age-modernized-application-epics) remetem a essas informações para obter mais orientações.

**Identificação de hotspots de performance em aplicações de mainframe modernizadas**

Em aplicações de mainframe modernizadas, os *hotspots de performance* são áreas específicas no código que causam lentidão ou ineficiências significativas. Esses hotspots geralmente são causados pelas diferenças arquitetônicas entre o mainframe e as aplicações modernizadas. Para identificar esses gargalos de desempenho e otimizar o desempenho do seu aplicativo modernizado, você pode usar três técnicas: registro em log de SQL, um `EXPLAIN` plano de consulta e análise. JProfiler 

*Técnica de identificação de hotspots: registro em log em SQL*

Os aplicativos Java modernos, incluindo aqueles que foram modernizados com o uso do AWS Blu Age, têm recursos integrados para registrar consultas SQL. Você pode habilitar registradores específicos em projetos do AWS Blu Age para rastrear e analisar as instruções SQL executadas pelo seu aplicativo. Essa técnica é particularmente útil para identificar padrões ineficientes de acesso ao banco de dados, como consultas individuais excessivas ou chamadas de banco de dados mal estruturadas, que podem ser otimizados por meio de lotes ou refinamento de consultas.

Para implementar o registro de SQL em seu aplicativo modernizado AWS Blu Age, defina o nível de registro `DEBUG` para instruções SQL no `application.properties` arquivo para capturar detalhes da execução da consulta:

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

Monitore consultas de alta frequência e de baixa performance usando os dados registrados para identificar alvos de otimização. Concentre-se nas consultas em processos em lote, pois elas geralmente têm o maior impacto na performance.

*Técnica de identificação de hotspots: plano de consulta EXPLAIN*

Esse método usa os recursos de planejamento de consultas dos sistemas de gerenciamento de banco de dados relacional. Você pode usar comandos como `EXPLAIN` no PostgreSQL ou no MySQL, ou `EXPLAIN PLAN` no Oracle, para examinar como seu banco de dados pretende executar uma determinada consulta. A saída desses comandos fornece informações valiosas sobre a estratégia de execução da consulta, incluindo se os índices serão usados ou se as varreduras completas da tabela serão realizadas. Essas informações são essenciais para otimizar a performance da consulta, especialmente nos casos em que a indexação adequada pode reduzir significativamente o tempo de execução.

Extraia as consultas SQL mais repetitivas dos registros da aplicação e analise o caminho de execução das consultas de baixa performance usando o comando `EXPLAIN` específico do seu banco de dados. Veja a seguir um exemplo para um banco de dados PostgreSQL.

Consulta:

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

Comando da `EXPLAIN`:

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Saída:

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

A saída `EXPLAIN` pode ser interpretada da seguinte forma:
+ Leia o plano `EXPLAIN` das operações mais internas às mais externas (de baixo para cima).
+ Procure os termos-chave. Por exemplo, `Seq Scan` indica a varredura completa da tabela e `Index Scan` mostra o uso do índice.
+ Verifique os valores de custo: o primeiro número é o custo inicial e o segundo número é o custo total.
+ Veja o valor `rows` do número estimado de linhas de saída.

Neste exemplo, o mecanismo de consulta usa uma varredura de índice para encontrar as linhas correspondentes e, em seguida, busca somente essas linhas (`Bitmap Heap Scan`). Isso é mais eficiente do que escanear a tabela inteira, apesar do custo mais alto do acesso individual às linhas.

As operações de varredura de tabela na saída de um plano `EXPLAIN` indicam um índice ausente. A otimização requer a criação de um índice apropriado.

*Técnica de identificação de pontos de acesso: análise JProfiler *

JProfiler é uma ferramenta abrangente de criação de perfil Java que ajuda você a resolver gargalos de desempenho identificando chamadas lentas de banco de dados e chamadas com uso intenso de CPU. Essa ferramenta é particularmente eficaz na identificação de consultas SQL lentas e no uso ineficiente da memória.

Exemplo de análise para consulta:

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

A visualização JProfiler Hot Spots fornece as seguintes informações:
+ Coluna **Tempo**
  + Mostra a duração total da execução (por exemplo, 329 segundos)
  + Exibe a porcentagem do tempo total de aplicação (por exemplo, 58,7%)
  + Ajuda a identificar as operações mais demoradas
+ Coluna **Tempo médio**
  + Mostra a duração por execução (por exemplo, 2.692 microssegundos)
  + Indica a performance individual da operação
  + Ajuda a identificar operações individuais lentas
+ Coluna **Eventos**
  + Mostra a contagem de execuções (por exemplo, 122.387 vezes)
  + Indica frequência de operação
  + Ajuda a identificar métodos chamados com frequência

Para os resultados do exemplo:
+ Alta frequência: 122.387 execuções indicam potencial de otimização
+ Preocupação com a performance: 2.692 microssegundos por tempo médio sugerem ineficiência
+ Impacto crítico: 58,7% do tempo total indica um grande gargalo

JProfiler pode analisar o comportamento do tempo de execução do seu aplicativo para revelar pontos de acesso que podem não ser aparentes por meio da análise estática de código ou do registro em SQL. Essas métricas ajudam você a identificar as operações que precisam de otimização e determinar a estratégia de otimização que seria mais eficaz. Para obter mais informações sobre JProfiler recursos, consulte a [JProfiler documentação](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Ao usar essas três técnicas (registro de SQL, `EXPLAIN` plano de consulta e JProfiler) em combinação, você pode obter uma visão holística das características de desempenho do seu aplicativo. Ao identificar e abordar os hotspots mais críticos de performance, você pode preencher a lacuna de performance entre sua aplicação de mainframe original e seu sistema modernizado baseado em nuvem.

Depois de identificar os hotspots de performance da sua aplicação, você pode aplicar estratégias de otimização, que são explicadas na próxima seção.

**Estratégias de otimização para modernização do mainframe**

Esta seção descreve as principais estratégias para otimizar aplicações que foram modernizadas por meio de sistemas de mainframe. Ele se concentra em três estratégias: usar as existentes APIs, implementar um cache eficaz e otimizar a lógica de negócios.

*Estratégia de otimização: usando a existente APIs*

AWS O Blu Age fornece várias interfaces DAO poderosas APIs que você pode usar para otimizar o desempenho. Duas interfaces principais — DAOManager e o SQLExecution Builder — oferecem recursos para aprimorar o desempenho do aplicativo.

**DAOManager**

DAOManager serve como interface principal para operações de banco de dados em aplicativos modernizados. Ela oferece vários métodos para aprimorar as operações no banco de dados e melhorar a performance da aplicação, principalmente para operações simples de criação, leitura, atualização e exclusão (CRUD) e processamento em lote.
+ **Use SetMaxResults.** Na DAOManager API, você pode usar o **SetMaxResults**método para especificar o número máximo de registros a serem recuperados em uma única operação de banco de dados. Por padrão, DAOManager recupera somente 10 registros por vez, o que pode levar a várias chamadas de banco de dados ao processar grandes conjuntos de dados. Use essa otimização quanda sua aplicação precisar processar um grande número de registros e estiver fazendo várias chamadas ao banco de dados para recuperá-los. Isso é particularmente útil em cenários de processamento em lote em que você está iterando em um grande conjunto de dados. No exemplo a seguir, o código à esquerda (antes da otimização) usa o valor padrão de recuperação de dados de dez registros. O código à direita (após a otimização) é configurado **setMaxResults**para recuperar 100.000 registros por vez.  
![\[Exemplo de uso SetMaxResults para evitar várias chamadas de banco de dados.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**nota**  
Escolha lotes maiores com cuidado e verifique o tamanho do objeto, pois essa otimização aumenta o espaço ocupado pela memória.
+ ** SetOnGreatorOrEqual Substitua por SetOnEqual.** Essa otimização envolve a alteração do método usado para definir a condição de recuperação de registros. O **SetOnGreatorOrEqual**método recupera registros maiores ou iguais a um valor especificado, enquanto **SetOnEqual**recupera somente registros que correspondam exatamente ao valor especificado.

  Use **SetOnEqual**conforme ilustrado no exemplo de código a seguir, quando você sabe que precisa de correspondências exatas e atualmente está usando o **SetOnGreatorOrEqual**método seguido por **readNextEqual()**. Essa otimização reduz a recuperação desnecessária de dados.  
![\[Exemplo de uso SetOnEqual para recuperar registros com base em uma correspondência exata.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Use operações de gravação e atualização em lote.** Você pode usar operações em lote para agrupar várias operações de gravação ou atualização em uma única transação de banco de dados. Isso reduz o número de chamadas ao banco de dados e pode melhorar significativamente a performance de operações que envolvem vários registros.

  No exemplo a seguir, o código à esquerda executa operações de gravação em um loop, o que diminui a performance da aplicação. Você pode otimizar esse código usando uma operação de gravação em lote: durante cada iteração do loop `WHILE`, você adiciona registros a um lote até que o tamanho do lote atinja um tamanho predeterminado de cem. Em seguida, você pode liberar o lote quando ele atingir o tamanho do lote predeterminado e, em seguida, liberar todos os registros restantes para o banco de dados. Isso é particularmente útil em cenários em que você processa grandes conjuntos de dados que exigem atualizações.  
![\[Exemplo de agrupamento de várias operações em uma única transação de banco de dados.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Adicione índices.** Adicionar índices é uma otimização em nível de banco de dados que pode melhorar significativamente a performance da consulta. Um índice permite que o banco de dados localize rapidamente linhas com um valor de coluna específico sem escanear a tabela inteira. Use a indexação em colunas que são frequentemente usadas em cláusulas `WHERE`, condições `JOIN` ou declarações `ORDER BY`. Isso é particularmente importante para tabelas grandes ou quando a recuperação rápida de dados é crucial.

**SQLExecutionConstrutor**

SQLExecutionO Builder é uma API flexível que você pode usar para controlar as consultas SQL que serão executadas, buscar somente determinadas colunas, usando e `INSERT` usando nomes `SELECT` de tabelas dinâmicas. No exemplo a seguir, o SQLExecutor Builder usa uma consulta personalizada que você define. 

![\[Exemplo de uso do SQLExecutor Builder com uma consulta personalizada.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Escolhendo entre um DAOManager e o SQLExecution Builder**

A escolha entre elas APIs depende do seu caso de uso específico:
+ Use DAOManager quando quiser que o AWS Blu Age Runtime gere as consultas SQL em vez de escrevê-las você mesmo.
+ Escolha o SQLExecution Builder quando precisar escrever consultas SQL para aproveitar os recursos específicos do banco de dados ou escrever consultas SQL ideais.

*Estratégia de otimização: armazenamento em cache*

Em aplicações modernizadas, a implementação de estratégias eficazes de armazenamento em cache pode reduzir significativamente as chamadas ao banco de dados e melhorar os tempos de resposta. Isso ajuda a preencher a lacuna de performance entre os ambientes de mainframe e nuvem.

Em aplicativos AWS Blu Age, implementações simples de cache usam estruturas de dados internas, como mapas de hash ou listas de matrizes, para que você não precise configurar uma solução de cache externa que exija custo e reestruturação de código. Essa abordagem é particularmente eficaz para dados que são acessados com frequência, mas alterados com pouca frequência. Ao implementar o armazenamento em cache, considere as restrições de memória e os padrões de atualização para garantir que os dados em cache permaneçam consistentes e forneçam benefícios reais de performance.

A chave para o sucesso do armazenamento em cache é identificar os dados certos para armazenar em cache. No exemplo a seguir, o código à esquerda sempre lê os dados da tabela, enquanto o código à direita lê os dados da tabela quando o mapa de hash local não tem um valor para uma determinada chave. `cacheMap` é um objeto de mapa de hash criado no contexto do programa e limpo no método de limpeza do contexto do programa.

Armazenamento em cache com DAOManager:

![\[Exemplo de otimizações de cache com. DAOManager\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Armazenamento em cache com o SQLExecution Builder:

![\[Exemplo de otimizações de cache com o Builder. SQLExecution\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Estratégia de otimização: otimização da lógica de negócios*

A otimização da lógica de negócios se concentra na reestruturação do código gerado automaticamente pelo AWS Blu Age para melhor se alinhar aos recursos da arquitetura moderna. Isso se torna necessário quando o código gerado mantém a mesma estrutura lógica do código antigo do mainframe, o que pode não ser ideal para sistemas modernos. O objetivo é melhorar a performance e, ao mesmo tempo, manter a equivalência funcional com a aplicação original.

Essa abordagem de otimização vai além de simples ajustes de API e estratégias de armazenamento em cache. Ela envolve mudanças na forma como a aplicação processa os dados e interage com o banco de dados. As otimizações comuns incluem evitar operações de leitura desnecessárias para atualizações simples, remover chamadas redundantes ao banco de dados e reestruturar os padrões de acesso aos dados para melhor se alinharem à arquitetura moderna de aplicações. Veja a seguir alguns exemplos:
+ **Atualizar dados diretamente no banco de dados. **Reestruture sua lógica de negócios usando atualizações diretas de SQL em vez de várias DAOManager operações com loops. Por exemplo, o código a seguir (lado esquerdo) faz várias chamadas ao banco de dados e usa memória excessiva. Especificamente, ele usa várias operações de leitura e gravação de banco de dados em loops, atualizações individuais em vez de processamento em lote e criação desnecessária de objetos para cada iteração.

  O código otimizado a seguir (lado direito) usa uma única operação de atualização do Direct SQL. Especificamente, ele usa uma única chamada de banco de dados em vez de várias chamadas e não exige loops porque todas as atualizações são tratadas em uma única instrução. Essa otimização proporciona melhor performance e utilização de recursos, além de reduzir a complexidade. Ele evita a injeção de SQL, fornece melhor armazenamento em cache do plano de consulta e ajuda a melhorar a segurança.  
![\[Reestruturando o código usando atualizações diretas de SQL em vez de DAOManager operações com loops.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**nota**  
Sempre use consultas parametrizadas para evitar a injeção de SQL e garantir o gerenciamento adequado das transações.
+ **Reduzir as chamadas redundantes do banco de dados.** Chamadas redundantes de banco de dados podem afetar significativamente a performance da aplicação, principalmente quando ocorrem dentro de loops. Uma técnica de otimização simples, mas eficaz, é evitar repetir a mesma consulta ao banco de dados várias vezes. A comparação de código a seguir demonstra como mover a chamada `retrieve()` do banco de dados para fora do loop evita a execução redundante de consultas idênticas, o que melhora a eficiência.  
![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Reduzir as chamadas do banco de dados usando a cláusula `JOIN`**** em SQL.** Implemente o SQLExecution Builder para minimizar as chamadas para o banco de dados. SQLExecutionO Builder fornece mais controle sobre a geração de SQL e é particularmente útil para consultas complexas que DAOManager não podem ser processadas com eficiência. Por exemplo, o código a seguir usa várias DAOManager chamadas:

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

  O código otimizado usa uma única chamada de banco de dados no 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);
  }
  ```

*Usar estratégias de otimização em conjunto*

Essas três estratégias funcionam sinergicamente: APIs fornecem as ferramentas para acesso eficiente aos dados, o armazenamento em cache reduz a necessidade de recuperação repetida de dados e a otimização da lógica de negócios garante que elas APIs sejam usadas da maneira mais eficaz possível. O monitoramento e o ajuste regulares dessas otimizações garantem melhorias contínuas na performance, mantendo a confiabilidade e a funcionalidade da aplicação modernizada. A chave para o sucesso está em entender quando e como aplicar cada estratégia com base nas características e nas metas de performance da sua aplicação.

## Ferramentas
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)é uma ferramenta de criação de perfil Java projetada para desenvolvedores e engenheiros de desempenho. Ele analisa aplicativos Java e ajuda a identificar gargalos de desempenho, vazamentos de memória e problemas de segmentação. JProfiler oferece perfis de CPU, memória e thread, bem como monitoramento de banco de dados e máquina virtual Java (JVM) para fornecer informações sobre o comportamento do aplicativo.
**nota**  
Como alternativa JProfiler, você pode usar o [Java VisualVM](https://visualvm.github.io/). Essa é uma ferramenta gratuita de criação de perfil e monitoramento de performance de código aberto para aplicações Java que oferece monitoramento em tempo real do uso da CPU, consumo de memória, gerenciamento de threads e estatísticas de coleta de resíduos. Como o Java VisualVM é uma ferramenta JDK integrada, ele é mais econômico do que para as necessidades básicas de criação de perfil. JProfiler 
+ O [pgAdmin](https://www.pgadmin.org/) é uma ferramenta de gerenciamento e desenvolvimento de código aberto para o PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados. Você pode usar o pgAdmin para realizar uma ampla variedade de tarefas, desde escrever consultas SQL simples até desenvolver bancos de dados complexos. Seus recursos incluem uma sintaxe destacando o editor SQL, um editor de código do lado do servidor, um agente de agendamento para tarefas SQL, shell e em lote e suporte para todos os recursos do PostgreSQL para usuários novatos e experientes do PostgreSQL.

## Práticas recomendadas
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Identificação de hotspots de performance:
+ Documente as métricas básicas de performance antes de iniciar as otimizações.
+ Estabeleça metas claras de melhoria de performance com base nos requisitos de negócios.
+ Ao fazer o benchmarking, desative o registro em log detalhado, pois isso pode afetar a performance.
+ Configure uma suíte de testes de performance e execute-a periodicamente.
+ Use a versão mais recente do pgAdmin. (As versões mais antigas não oferecem suporte ao plano de consulta `EXPLAIN`.)
+ Para fins de benchmarking, desconecte JProfiler após a conclusão das otimizações, pois isso aumenta a latência.
+ Para fins de benchmarking, certifique-se de executar o servidor no modo de inicialização em vez do modo de depuração, pois o modo de depuração aumenta a latência.

Estratégias de otimização:
+ Configure **SetMaxResults**valores no `application.yaml` arquivo para especificar lotes do tamanho certo de acordo com as especificações do sistema.
+ Configure **SetMaxResults**valores com base no volume de dados e nas restrições de memória.
+ **SetOnGreatorOrEqual**Mude para **SetOnEqual**somente quando ocorrerem chamadas subsequentes`.readNextEqual()`.
+ Nas operações de gravação ou atualização em lote, processe o último lote separadamente, pois ele pode ser menor que o tamanho do lote configurado e pode ser perdido pela operação de gravação ou atualização.

Armazenamento em cache:
+ Os campos que são introduzidos para armazenamento em cache em `processImpl`, que mudam a cada execução, devem sempre ser definidos no contexto de `processImpl`. Os campos também devem ser limpos usando o método `doReset()` ou `cleanUp()`.
+ Ao implementar o armazenamento em cache em memória, dimensione o cache corretamente. Caches muito grandes armazenados na memória podem consumir todos os recursos, o que pode afetar a performance geral da sua aplicação.

SQLExecutionConstrutor:
+ Para consultas que você planeja usar no SQLExecution Builder, use nomes de chave como`PROGRAMNAME_STATEMENTNUMBER`.
+ Ao usar o SQLExecution Builder, sempre verifique o `Sqlcod` campo. Esse campo contém um valor que especifica se a consulta foi executada corretamente ou se encontrou algum erro.
+ Use consultas parametrizadas para evitar a injeção de SQL.

Otimização da lógica de negócios:
+ Mantenha a equivalência funcional ao reestruturar o código e execute testes de regressão e comparação de bancos de dados para o subconjunto relevante de programas.
+ Mantenha snapshots de criação de perfil para comparação.

## Épicos
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Instalação JProfiler e pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale e configure JProfiler. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 
| Instale e configure o pGadmin. | Nesta etapa, você instala e configura um cliente de banco de dados para consultar seu banco de dados. Este padrão usa um banco de dados PostgreSQL e o pgAdmin como cliente de banco de dados. Se você estiver usando outro mecanismo de banco de dados, siga a documentação do cliente de banco de dados correspondente.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 

### Identificar hotspots
<a name="identify-hotspots"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Ative o registro de consultas SQL em seu aplicativo AWS Blu Age. | Ative os registradores para o registro de consultas SQL no `application.properties` arquivo do seu aplicativo AWS Blu Age, conforme explicado na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 
| Gere e analise planos de consulta `EXPLAIN` para identificar hotspots de performance do banco de dados. | Para obter detalhes, consulte a seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 
| Crie um JProfiler instantâneo para analisar um caso de teste de baixo desempenho. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 
| Analise o JProfiler instantâneo para identificar gargalos de desempenho. | Siga estas etapas para analisar o JProfiler instantâneo.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Para obter mais informações sobre o uso JProfiler, consulte a seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture) e a [JProfiler documentação](https://www.ej-technologies.com/jprofiler/docs). | Desenvolvedor de aplicativos | 

### Estabelecer uma linha de base
<a name="establish-a-baseline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Estabeleça uma linha de base de performance antes de implementar as otimizações. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | Desenvolvedor de aplicativos | 

### Aplicar as estratégias de otimização
<a name="apply-optimization-strategies"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Otimize as chamadas de leitura. | Otimize a recuperação de dados usando o DAOManager **SetMaxResults**método. Para obter mais informações sobre essa abordagem, consulte a seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos, DAOManager | 
| Refatore a lógica de negócios para evitar várias chamadas para o banco de dados. | Reduza as chamadas ao banco de dados usando uma cláusula `JOIN` SQL. Para obter detalhes e exemplos, consulte *Otimização da lógica de negócios* na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos, SQLExecution Construtor | 
| Refatore o código para usar o armazenamento em cache para reduzir a latência das chamadas de leitura. | Para obter informações sobre essa técnica, consulte *Armazenamento em cache* na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 
| Reescreva um código ineficiente que usa várias DAOManager operações para operações simples de atualização. | Para obter mais informações sobre a atualização de dados diretamente no banco de dados, consulte *Otimização da lógica de negócios* na seção [Arquitetura](#optimize-performance-aws-blu-age-modernized-application-architecture). | Desenvolvedor de aplicativos | 

### Testar as estratégias de otimização
<a name="test-optimization-strategies"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Valide cada alteração de otimização de forma iterativa, mantendo a equivalência funcional. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)O uso de métricas básicas como referência garante uma medição precisa do impacto de cada otimização, mantendo a confiabilidade do sistema. | Desenvolvedor de aplicativos | 

## Solução de problemas
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Ao executar a aplicação moderna, você vê uma exceção com o erro `Query_ID not found`. | Para resolver esse problema:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Você adicionou índices, mas nenhuma melhoria na performance. | Siga estas etapas para garantir que o mecanismo de consulta esteja usando o índice:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Você encontra uma out-of-memory exceção. | Verifique se o código libera a memória mantida pela estrutura de dados. | 
| As operações de gravação em lote resultam na falta de registros na tabela | Revise o código para garantir que uma operação de gravação adicional seja executada quando a contagem de lotes não for zero. | 
| O log do SQL não aparece nos logs da aplicação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Recursos relacionados
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Refatorando aplicativos automaticamente com o AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) *(Guia do usuário)AWS Mainframe Modernization *
+ [Documentação do pgAdmin](https://www.pgadmin.org/docs/)
+ [JProfiler documentação](https://www.ej-technologies.com/jprofiler/docs)

# Proteja e simplifique o acesso de usuários em um banco de dados de federação Db2 na AWS usando contextos confiáveis
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Resumo
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

Muitas empresas estão migrando suas workloads de mainframe antigas para a Amazon Web Services (AWS). Essa migração inclui a mudança do IBM Db2 para z/OS bancos de dados para o Db2 para Linux, Unix e Windows (LUW) na Amazon Elastic Compute Cloud (Amazon). EC2 Durante uma migração em fases do local para a AWS, talvez os usuários precisem acessar dados no IBM Db2 z/OS e no Db2 LUW na EC2 Amazon até que todos os aplicativos e bancos de dados sejam totalmente migrados para o Db2 LUW. Nesses cenários de acesso remoto a dados, a autenticação do usuário pode ser um desafio porque plataformas diferentes usam mecanismos de autenticação diferentes.

Esse padrão aborda como configurar um servidor de federação no Db2 para LUW com o Db2 z/OS como um banco de dados remoto. O padrão usa um contexto confiável para propagar a identidade de um usuário do Db2 LUW para o Db2 z/OS sem precisar se autenticar novamente no banco de dados remoto. Para obter mais informações sobre contextos confiáveis, consulte a seção [Informações adicionais](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional).

## Pré-requisitos e limitações
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma instância do Db2 em execução em uma instância da Amazon EC2 
+ Um Db2 remoto para z/OS banco de dados executado no local
+ A rede local conectada à AWS por meio do AWS [ Site-to-SiteVPN ou do AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect

## Arquitetura
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Arquitetura de destino**

![\[O mainframe local se conecta por meio do servidor Db2 local e da VPN ao Db2 DB on. EC2\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Ferramentas
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**Serviços da AWS**
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ [O AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ajuda você a transmitir tráfego entre instâncias que você executa na AWS e sua própria rede remota.

**Outras ferramentas**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) é o comando interface de linha de comandos (CLI) do Db2.

## Épicos
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Habilite a federação no banco de dados Db2 LUW executado na AWS
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Habilite a federação no DB2 LUW DB. | Para habilitar a federação no DB2 LUW, execute o comando a seguir.<pre>update dbm cfg using federated YES</pre> | DBA | 
| Reinicie o banco de dados. | Para reiniciar o banco de dados, execute o seguinte comando:<pre>db2stop force;<br />db2start;</pre> | DBA | 

### Catalogue o banco de dados remoto
<a name="catalog-the-remote-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Catalogue o z/OS subsistema remoto do Db2. | Para catalogar o z/OS banco de dados Db2 remoto no Db2 LUW executado na AWS, use o seguinte exemplo de comando.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| Catalogue o banco de dados remoto | Para excluir um banco de dados remoto, use o seguinte comando de exemplo.<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### Crie a definição de servidor remoto
<a name="create-the-remote-server-definition"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Colete as credenciais do usuário para o banco de dados Db2 z/OS remoto. | Antes de prosseguir com as próximas etapas, reúna as seguintes informações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| Crie o encapsulamento do DRDA. | Para criar o encapsulamento do DRDA, execute o seguinte comando.<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| Crie a definição do servidor. | Para criar a definição do servidor, execute o comando de exemplo a seguir.<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>Nessa definição, `FED_PROXY_USER` especifica o usuário proxy que será usado para estabelecer conexões confiáveis com o banco de dados Db2 z/OS . O ID de usuário e a senha de autorização são necessários somente para criar o objeto de servidor remoto no banco de dados Db2 LUW. Eles não serão usados posteriormente durante o runtime. | DBA | 

### Crie mapeamentos de usuários
<a name="create-user-mappings"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um mapeamento de usuário para o usuário proxy. | Para criar um mapeamento de usuário para o usuário do proxy, execute o comando a seguir.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| Crie mapeamentos de usuário para cada usuário no Db2 LUW. | Crie mapeamentos de usuário para todos os usuários no banco de dados Db2 LUW na AWS que precisam acessar dados remotos por meio do usuário proxy. Para criar os mapeamentos de usuário, execute o seguinte comando.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>A declaração especifica que um usuário no Db2 LUW (`PERSON1`) pode estabelecer uma conexão confiável com o banco de dados Db2 z/OS remoto (). `USE_TRUSTED_CONTEXT 'Y'` Depois que a conexão é estabelecida por meio do usuário proxy, o usuário pode acessar os dados usando o ID de z/OS usuário do Db2 (`REMOTE_AUTHID 'USERZID'`). | DBA | 

### Crie o objeto de contexto confiável
<a name="create-the-trusted-context-object"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o objeto de contexto confiável. | Para criar o objeto de contexto confiável no z/OS banco de dados Db2 remoto, use o comando de exemplo a seguir.<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>Nessa definição, `CTX_LUW_ZOS` é um nome arbitrário para o objeto de contexto confiável. O objeto contém o ID do usuário do proxy e o endereço IP do servidor do qual a conexão confiável deve se originar. Neste exemplo, o servidor é o banco de dados Db2 LUW na AWS. Você pode usar o nome do domínio em vez do endereço IP. A cláusula `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` indica que a troca da ID de usuário em uma conexão confiável é permitida para cada ID de usuário. Não é necessário fornecer uma senha. | DBA | 

## Recursos relacionados
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [IBM Resource Access Control Facility (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [Federação IBM Db2 LUW](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Contextos confiáveis](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Mais informações
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Contextos confiáveis do Db2**

Um contexto confiável é um objeto de banco de dados Db2 que define uma relação de confiança entre um servidor federado e um servidor de banco de dados remoto. Para definir um relacionamento confiável, o contexto confiável especifica atributos de confiança. Existem três tipos de atributos de confiança:
+ A ID de autorização do sistema que faz a solicitação inicial de conexão com o banco de dados
+ O endereço IP ou nome de domínio a partir do qual a conexão é feita
+ A configuração de criptografia para comunicações de dados entre o servidor do banco de dados e o cliente do banco de dados

Uma conexão confiável é estabelecida quando todos os atributos de uma solicitação de conexão correspondem aos atributos especificados em qualquer objeto de contexto confiável definido no servidor. Existem dois tipos de conexões confiáveis: implícitas e explícitas. Depois que uma conexão confiável implícita é estabelecida, o usuário herda uma função que não está disponível para ele fora do escopo dessa definição de conexão confiável. Depois que uma conexão confiável explícita é estabelecida, os usuários podem ser ativados na mesma conexão física, com ou sem autenticação. Além disso, os usuários do Db2 podem receber funções que especificam privilégios que devem ser usados somente na conexão confiável. Esse padrão usa uma conexão confiável explícita.

*Contexto confiável nesse padrão*

Após a conclusão do padrão, PERSON1 no Db2, o LUW acessa os dados remotos do Db2 usando um contexto z/OS confiável federado. A conexão para PERSON1 é estabelecida por meio de um usuário proxy se a conexão for originada do endereço IP ou nome de domínio especificado na definição de contexto confiável. Depois que a conexão é estabelecida, o ID de z/OS usuário PERSON1 do Db2 correspondente é trocado sem reautenticação, e o usuário pode acessar os dados ou objetos com base nos privilégios do Db2 configurados para esse usuário.

*Benefícios dos contextos federados confiáveis*
+ Essa abordagem mantém o princípio do privilégio mínimo ao eliminar o uso de um ID de usuário ou ID de aplicativo comum que precisaria de um superconjunto de todos os privilégios exigidos por todos os usuários.
+ A identidade real do usuário que realiza a transação no banco de dados federado e remoto é sempre conhecida e pode ser auditada.
+ O desempenho melhora porque a conexão física está sendo reutilizada entre os usuários sem a necessidade de reautenticação do servidor federado.

# Transfira z/OS dados do Db2 em grande escala para o Amazon S3 em arquivos 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*

## Resumo
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Um mainframe ainda é um sistema de registro em muitas empresas que contém uma grande quantidade de dados, incluindo entidades de dados mestres com registros de transações comerciais atuais e históricas. Geralmente é isolado e não é facilmente acessado pelos sistemas distribuídos dentro da mesma empresa. Com o surgimento da tecnologia de nuvem e a democratização de big data, as empresas estão interessadas em usar os insights ocultos nos dados do mainframe para desenvolver novos recursos de negócios.

Com esse objetivo, as empresas estão procurando abrir seus dados Db2 de mainframe em seu ambiente de nuvem da Amazon Web Services (AWS). Os motivos comerciais são diversos e os métodos de transferência variam de caso a caso. Talvez você prefira conectar seu aplicativo diretamente ao mainframe ou talvez prefira replicar seus dados quase em tempo real. Se o caso de uso for alimentar um data warehouse ou um data lake, ter uma up-to-date cópia não é mais uma preocupação, e o procedimento descrito nesse padrão pode ser suficiente, especialmente se você quiser evitar custos de licenciamento de produtos de terceiros. Outro caso de uso pode ser a transferência de dados do mainframe para um projeto de migração. Em um cenário de migração, os dados são necessários para realizar o teste de equivalência funcional. A abordagem descrita nesta postagem é uma forma econômica de transferir os dados do Db2 para o ambiente de Nuvem AWS.

Como o Amazon Simple Storage Service (Amazon S3) é um dos serviços mais integrados da AWS, você pode acessar os dados de lá e coletar insights diretamente usando outros serviços da AWS, como Amazon Athena, funções do AWS Lambda ou Amazon. QuickSight Você também pode carregar os dados no Amazon Aurora ou no Amazon DynamoDB usando o AWS Glue ou o AWS Database Migration Service (AWS DMS). Com esse objetivo em mente, isso descreve como descarregar dados do Db2 em arquivos CSV no formato ASCII no mainframe e transferir os arquivos para o Amazon S3.

Para esse fim, [scripts de mainframe](https://github.com/aws-samples/unloaddb2-samples) foram desenvolvidos para ajudar a gerar linguagens de controle de tarefas (JCLs) para descarregar e transferir quantas tabelas do Db2 forem necessárias.

## Pré-requisitos e limitações
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Pré-requisitos **
+ Um usuário do sistema z/OS operacional IBM com autorização para executar scripts Restructured Extended Executor (REXX) e JCL.
+ Acesso ao z/OS Unix System Services (USS) para gerar chaves públicas e privadas SSH (Secure Shell).
+ Um bucket do S3 gravável. Para obter mais informações, consulte [Criar um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) na documentação do Amazon S3.
+ Um servidor habilitado para o AWS Transfer Family SSH File Transfer Protocol (SFTP) usando o **serviço gerenciado** como provedor de identidade e o Amazon S3 como serviço de armazenamento da AWS. Para obter mais informações, consulte [Criar um servidor habilitado para SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) na documentação do AWS Transfer Family.

**Limitações**
+ Essa abordagem não é adequada para sincronização de dados quase em tempo real ou em tempo real.
+ Os dados só podem ser movidos do Db2 z/OS para o Amazon S3, e não o contrário.

## Arquitetura
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Pilha de tecnologia de origem**
+ Mainframe executando Db2 em z/OS

**Pilha de tecnologias de destino**
+ AWS Transfer Family
+ Amazon S3
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ banco de dados de origem

**Arquitetura de origem e destino**

O diagrama a seguir mostra o processo de geração, extração e transferência de z/OS dados do Db2 no formato ASCII CSV para um bucket S3.

![\[Data flow from corporate data center to Nuvem AWS, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Uma lista de tabelas é selecionada para migração de dados do catálogo do Db2.

1. A lista é usada para impulsionar a geração de trabalhos de descarga com as colunas numéricas e de dados no formato externo.

1. Em seguida, os dados são transferidos para o Amazon S3 usando o AWS Transfer Family.

1. Uma tarefa de extração, transformação e carregamento (ETL) do AWS Glue pode transformar os dados e carregá-los em um bucket processado no formato especificado, ou o AWS Glue pode alimentar os dados diretamente no banco de dados.

1. O Amazon Athena e o Amazon QuickSight podem ser usados para consultar e renderizar os dados para impulsionar a análise.

O diagrama a seguir mostra um fluxo lógico de todo o processo.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. O primeiro JCL, chamado TABNAME, usará o utilitário DSNTIAUL do Db2 para extrair e gerar a lista de tabelas que você planeja descarregar do Db2. Para escolher suas tabelas, você deve adaptar manualmente a entrada SQL para selecionar e adicionar critérios de filtro para incluir um ou mais esquemas do Db2.

1. O segundo JCL, chamado REXXEXEC, usará o esqueleto JCL e o programa REXX fornecido para processar a lista de tabelas criada pelo JCL TABNAME e gerar um JCL por nome de tabela. Cada JCL conterá uma etapa para descarregar a tabela e outra etapa para enviar o arquivo para o bucket do S3 usando o protocolo SFTP.

1. A última etapa consiste em executar o JCL para descarregar a tabela e transferir o arquivo para a AWS. Todo o processo pode ser automatizado usando um programador on-premises ou na AWS.

## Ferramentas
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Serviços da AWS**
+ O [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) é um serviço de consultas interativas que permite analisar dados diretamente no Amazon Simple Storage Service (Amazon S3) usando SQL padrão.
+ O [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) é um mecanismo de banco de dados relacional totalmente gerenciado criado para a nuvem e compatível com o MySQL e o PostgreSQL.
+ O [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) é um serviço de extração, transformação e carregamento (ETL) totalmente gerenciado. Ele ajuda você a categorizar de forma confiável, limpar, enriquecer e mover dados de forma confiável entre armazenamento de dados e fluxos de dados.
+  QuickSightA [Amazon](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) é um serviço de inteligência de negócios (BI) em escala de nuvem que ajuda você a visualizar, analisar e relatar seus dados em um único painel.
+ O [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) é um serviço de data warehouse em escala de petabytes gerenciado na Nuvem AWS.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ O [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) é um serviço de transferência seguro que permite transferir arquivos para dentro e para fora de serviços de armazenamento da AWS.

**Ferramentas de mainframe**
+ O [SSH File Transfer Protocol (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) é um protocolo seguro de transferência de arquivos que permite o login remoto e a transferência de arquivos entre servidores. O SSH fornece segurança criptografando todo o tráfego.
+ O [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) é um programa de exemplo fornecido pela IBM para descarregar dados.
+ O [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) é um programa de utilitários em lote fornecido pela IBM para descarregar dados com opções diferentes do DSNTIAUL.
+ O [z/OS OpenSSH é uma porta de SSH](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) de software de código aberto executada no Unix System Service sob a rede do sistema operacional IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Ele fornece vários utilitários, incluindo ssh-keygen.
+ O script [REXX (Restructured Extended Executor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) é usado para automatizar a geração de JCL com as etapas Db2 Unload e SFTP.

**Código **

O código desse padrão está disponível no repositório GitHub [unloaddb2](https://github.com/aws-samples/unloaddb2-samples).

## Práticas recomendadas
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Para o primeiro descarregamento, o gerado JCLs deve descarregar todos os dados da tabela.

Após o primeiro descarregamento completo, execute descargas incrementais para obter melhor desempenho e economia de custos. Atualize a consulta SQL no conjunto de modelos da JCL para acomodar quaisquer alterações no processo de descarga.

Você pode converter o esquema manualmente ou usando um script no Lambda com o Db2 SYSPUNCH como entrada. Para um processo industrial, a [AWS Schema Conversion Tool (SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html)) é a opção preferida.

Por fim, use um programador baseado em mainframe ou um programador na AWS com um agente no mainframe para ajudar a gerenciar e automatizar todo o processo.

## Épicos
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Configurar o bucket do S3
<a name="set-up-the-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | Para obter instruções, consulte [Criar seu primeiro bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | AWS geral | 

### Configurar o servidor Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um servidor habilitado para SFTP. | Para abrir e criar um servidor SFTP no [console do AWS Transfer Family](https://console.aws.amazon.com/transfer/), faça o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | AWS geral | 
| Criar um perfil do IAM para o Transfer Family. | Para criar um perfil do AWS Identity and Access Management (IAM) para que a Transfer Family acesse o Amazon S3, siga as instruções em [Criar um perfil e uma política do IAM](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Administrador da AWS | 
| Adicionar um usuário gerenciado por serviços do Amazon S3. | Para adicionar o usuário gerenciado pelo serviço Amazon S3, siga as instruções na [Documentação da AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user) e use seu ID do usuário do mainframe. | AWS geral | 

### Proteger o protocolo de comunicação
<a name="secure-the-communication-protocol"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a chave SSH. | No ambiente do USS do mainframe, execute o comando a seguir.<pre>ssh-keygen -t rsa</pre>Quando for solicitada uma frase secreta, mantenha-a vazia. | Desenvolvedor de mainframe | 
| Fornecer os níveis de autorização corretos para a pasta SSH e os arquivos-chave. | Por padrão, as chaves pública e privada serão armazenadas no diretório do usuário `/u/home/username/.ssh`.Você deve dar a autorização 644 para os arquivos de chave e 700 para a pasta.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Desenvolvedor de mainframe | 
| Copiar o conteúdo da chave pública para seu usuário gerenciado pelo serviço Amazon S3. | Para copiar o conteúdo da chave pública gerada pelo USS, abra o console do [AWS Transfer Family](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Desenvolvedor de mainframe | 

### Gere o JCLs
<a name="generate-the-jcls"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gerar a lista de tabelas do Db2 dentro do escopo. | Forneça o SQL de entrada para criar uma lista das tabelas que têm como escopo a migração de dados. Essa etapa exige que você especifique os critérios de seleção consultando a tabela do catálogo Db2 SYSIBM.SYSTABLES, usando uma cláusula WHERE do SQL. Os filtros podem ser personalizados para incluir um esquema específico ou nomes de tabelas que comecem com um prefixo específico ou com base em um timestamp para descarga incremental. A saída é capturada em um conjunto de dados sequencial físico (PS) no mainframe. Esse conjunto de dados funcionará como entrada para a próxima fase da geração do JCL.Antes de usar o JCL TABNAME (você pode renomeá-lo se necessário), faça as seguintes alterações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Trabalho de extração da lista de tabelas do 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> | Desenvolvedor de mainframe | 
| Modificar os modelos da JCL. | Os modelos JCL fornecidos com esse padrão contêm um cartão de trabalho genérico e nomes de bibliotecas. No entanto, a maioria dos sites de mainframe terá seus próprios padrões de nomenclatura para nomes do conjunto de dados, nomes de bibliotecas e cartões de trabalho. Por exemplo, uma classe de trabalho específica pode ser necessária para executar trabalhos do Db2. O Job Entry Subsytem é implementado JES2 e JES3 pode impor mudanças adicionais. As bibliotecas de carga padrão podem ter um primeiro qualificador diferente de `SYS1`, que é o padrão da IBM. Portanto, personalize os modelos de acordo com os padrões específicos do seu site antes de executá-los.Faça as seguintes alterações no esqueleto JCL UNLDSKEL:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Esqueleto JCL de descarga e SFTP**<pre>//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, <br />//         TIME=1440,NOTIFY=&USRPFX<br />//* DELETE DATASETS<br />//STEP01   EXEC PGM=IEFBR14<br />//DD01     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//DD02     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//*<br />//* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO<br />//*<br />//UNLD01   EXEC PGM=DSNUTILB,REGION=0M,<br />// PARM='<DSN>,UNLOAD'<br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//SYSPRINT DD  SYSOUT=*<br />//UTPRINT  DD  SYSOUT=*<br />//SYSOUT   DD  SYSOUT=*<br />//SYSPUN01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(1,1),RLSE),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//SYSREC01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(10,50),RLSE),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//SYSPRINT DD SYSOUT=*<br />//SYSIN    DD *<br />  UNLOAD<br />  DELIMITED COLDEL ','<br />  FROM TABLE &TABNAME<br />  UNLDDN SYSREC01<br />  PUNCHDDN SYSPUN01<br />  SHRLEVEL CHANGE ISOLATION UR;<br /> /*<br />//*<br />//* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL<br />//*<br />//SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M<br />//STDPARM DD *<br /> SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE;<br /> rm &TABNAME..csv;<br /> //SYSPRINT DD SYSOUT=*<br /> //STDOUT DD SYSOUT=*<br /> //STDENV DD *<br /> //STDERR DD SYSOUT=*                                                </pre>  | Desenvolvedor de mainframe | 
| Gerar o JCL de descarga em massa. | Essa etapa envolve a execução de um script REXX em um ambiente ISPF usando JCL. Forneça a lista de tabelas dentro do escopo criadas na primeira etapa como entrada para a geração de JCL em massa em relação ao nome `TABLIST DD`. O JCL gerará um novo JCL por nome de tabela em um conjunto de dados particionado especificado pelo usuário em relação ao nome `ISPFILE DD`. Aloque essa biblioteca com antecedência. Cada novo JCL terá duas etapas: uma etapa para descarregar a tabela Db2 em um arquivo e uma etapa para enviar o arquivo para o bucket do S3.Faça as seguintes alterações no JCL REXXEXEC (você pode alterar o nome):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Trabalho de geração de JCL em 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>Antes de usar o script REXX, faça as seguintes alterações:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Script ZSTEPS REXX**<pre>/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */<br />/* 10/27/2021 - added new parms to accommodate ftp */<br />Trace "o" <br />    parse arg usrpfx ftpuser ftpsite<br />    Say "Start"<br />    Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite<br />    Say "Reading table name list"<br />    "EXECIO * DISKR TABLIST (STEM LINE. FINIS"<br />    DO I = 1 TO LINE.0<br />      Say I<br />      suffix = I<br />      Say LINE.i<br />      Parse var LINE.i schema table rest<br />      tabname = schema !! "." !! table<br />      Say tabname<br />      tempjob= "LOD" !! RIGHT("0000" !! i, 5) <br />      jobname=tempjob<br />      Say tempjob<br />      ADDRESS ISPEXEC "FTOPEN "<br />      ADDRESS ISPEXEC "FTINCL UNLDSKEL"<br />      /* member will be saved in ISPDSN library allocated in JCL */<br />      ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")"<br />    END<br /><br />    ADDRESS TSO "FREE F(TABLIST) "<br />    ADDRESS TSO "FREE F(ISPFILE) "<br /><br />exit 0</pre> | Desenvolvedor de mainframe | 

### Execute o JCLs
<a name="run-the-jcls"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Executar a etapa Db2 Unload. | Após a geração do JCL, você terá JCLs quantas tabelas precisarem ser descarregadas.Esse histórico usa um exemplo gerado pela JCL para explicar a estrutura e as etapas mais importantes.Não é necessária nenhuma ação de sua parte. As informações a seguir são destinadas somente para referência. Se sua intenção é enviar o JCLs que você gerou na etapa anterior, vá para *Enviar a LODnnnnn JCLs* tarefa.Ao descarregar dados do Db2 usando um JCL com o utilitário DSNUTILB Db2 fornecido pela IBM, você deve garantir que os dados descarregados não contêm dados numéricos compactados. Para fazer isso, use o parâmetro DSNUTILB `DELIMITED`.O parâmetro `DELIMITED` tem suporte para o descarregamento dos dados no formato CSV adicionando um caractere como delimitador e aspas duplas ao campo de texto, removendo o preenchimento na coluna VARCHAR e convertendo todos os campos numéricos em FORMATO EXTERNO, incluindo os campos de DATA.O exemplo a seguir mostra a aparência da etapa de descarga no JCL gerado, usando o caractere de vírgula como delimitador.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Desenvolvedor de mainframe, engenheiro de sistemas | 
| Executar a etapa SFTP. | Para usar o protocolo SFTP de um JCL, use o utilitário BPXBATCH. O utilitário SFTP não pode acessar os conjuntos de dados MVS diretamente. Você pode usar o comando copy (`cp`) para copiar o arquivo sequencial `&USRPFX..DB2.UNLOAD.&JOBNAME` para o diretório USS, onde ele se torna `&TABNAME..csv`.Execute o comando `sftp` usando a chave privada (`id_rsa`) e usando o ID de usuário do RACF como nome de usuário para se conectar ao endereço IP do 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> | Desenvolvedor de mainframe, engenheiro de sistemas | 
| Envie LODnnnnn JCLs o. | O JCL anterior gerou todas as tabelas LODnnnnn JCL que precisam ser descarregadas, transformadas em CSV e transferidas para o bucket do S3.Execute o `submit` comando em todos os JCLs que foram gerados. | Desenvolvedor de mainframe, engenheiro de sistemas | 

## Recursos relacionados
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Para obter mais informações sobre as diferentes ferramentas e soluções usadas neste documento, consulte o seguinte:
+ [Guia do usuário do z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS — Exemplos de instruções de controle UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS — Descarregando arquivos delimitados](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family – Criar um servidor habilitado para SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family – Trabalhar com usuários gerenciados por serviços](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Mais informações
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Depois de ter seus dados do Db2 no Amazon S3, você tem várias maneiras de desenvolver novos insights. Como o Amazon S3 se integra aos serviços de análise de dados da AWS, você pode consumir ou expor livremente esses dados no lado distribuído. Por exemplo, você pode fazer o seguinte:
+ Crie um [data lake no Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) e extraia informações valiosas usando query-in-place ferramentas de análise e aprendizado de máquina sem mover os dados.
+ Inicie uma [função do Lambda](https://aws.amazon.com/lambda/) configurando um fluxo de trabalho de processamento pós upload integrado ao AWS Transfer Family.
+ Desenvolva novos microsserviços para acessar os dados no Amazon S3 ou [em um banco de dados totalmente gerenciado](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) usando o [AWS Glue](https://aws.amazon.com/glue/), que é um serviço de integração de dados de tecnologia sem servidor que facilita a descoberta, preparação e combinação de dados para análise, machine learning e desenvolvimento de aplicativos.

Em um caso de uso de migração, como você pode transferir qualquer dado do mainframe para o S3, você pode fazer o seguinte:
+ Retire a infraestrutura física e crie uma estratégia de arquivamento de dados econômica com o Amazon S3 Glacier e o S3 Glacier Deep Archive. 
+ crie soluções de backup e restauração escaláveis, duráveis e seguras com o Amazon S3 e outros serviços da AWS, como o S3 Glacier e o Amazon Elastic File System (Amazon EFS), para aumentar ou substituir os recursos on-premises existentes.

# Transforme o Easytrieve em linguagens modernas usando linguagens personalizadas AWS Transform
<a name="transform-easytrieve-modern-languages"></a>

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

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

[Esse padrão fornece orientação prescritiva para uma transformação mais rápida e de menor risco das cargas de trabalho do mainframe Broadcom [Easytrieve Report](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) Generator (EZT) usando transformação personalizada.AWS Transform](https://aws.amazon.com/transform/custom/) language-to-language Ele aborda os desafios de modernizar cargas de trabalho EZT de mainframe proprietárias e de nicho que são comumente usadas para processamento de dados em lote e geração de relatórios. O padrão substitui abordagens de migração caras, demoradas e propensas a erros, que dependem de ferramentas proprietárias e da rara experiência em mainframe, por uma solução automatizada de IA agente na qual você cria. AWS Transform

Esse padrão fornece uma definição de transformação personalizada pronta para uso para a transformação EZT. A definição usa várias entradas de transformação:
+ [Regras de negócios do EZT extraídas usando AWS Transform para mainframe](https://aws.amazon.com/transform/mainframe/)
+ Documentação de referência de programação do EZT
+ Código-fonte do EZT
+ Conjuntos de dados de entrada e saída do mainframe

AWS Transform custom usa essas entradas para gerar aplicativos funcionalmente equivalentes em linguagens de destino modernas, como Java ou Python.

O processo de transformação usa recursos inteligentes de execução de testes, depuração automatizada e correção iterativa para validar a equivalência funcional em relação às saídas esperadas. Ele também oferece suporte ao aprendizado contínuo, permitindo que a definição de transformação personalizada melhore a precisão e a consistência em transformações sucessivas. Usando esse padrão, as organizações podem reduzir o esforço e o risco de migração, lidar com a dívida técnica do mainframe de nicho e modernizar as cargas de trabalho do EZT AWS para melhorar a agilidade, a confiabilidade, a segurança e a inovação.

## Pré-requisitos e limitações
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Pré-requisitos **
+ Uma AWS conta ativa 
+ Uma carga de trabalho EZT de mainframe com dados de entrada e saída 

**Limitações**

*Limitações do escopo*
+ **Suporte de linguagem** — Somente a transformação de EZT para Java é suportada para esse padrão de transformação específico. 
+ **Fora do escopo** — A transformação de outras linguagens de programação de mainframe requer uma nova definição de transformação AWS Transform personalizada em customizada.

*Limitações do processo*
+ **Dependência de validação** — Sem dados de saída de linha de base, a transformação não pode ser validada. 
+ **Lógica proprietária** — utilitários altamente específicos e desenvolvidos de forma personalizada exigem documentação adicional do usuário e materiais de referência para serem interpretados corretamente pelo agente de IA.

*Limitações técnicas*
+ **Limites de serviço** — Para limites e cotas de serviço AWS Transform personalizados, consulte o [Guia AWS Transform do usuário - Cotas](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) e a [referência AWS geral - Transformar](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html) cotas.

**Versões do produto**
+ AWS Transform CLI — Versão mais recente
+ Node.js — versão 20 ou posterior
+ Git — Versão mais recente
+ Ambiente de destino
  + Java — versão 17 ou posterior
  + Spring Boot — a versão 3.x é o principal alvo para aplicativos refatorados
  + Maven — versão 3.6 ou posterior

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

**Pilha de tecnologia de origem**
+ **Sistema operacional** — IBM z/OS
+ **Linguagem de programação** — Easytrieve, Job control language (JCL)
+ **Banco de dados** — IBM DB2 for z/OS, Virtual Storage Access Method (VSAM), arquivos simples de mainframe

**Pilha de tecnologias de destino**
+ **Sistema operacional** — Amazon Linux
+ **Computação** — Amazon Elastic Compute Cloud (Amazon EC2)
+ **Linguagem de programação** — Java
+ **Banco de dados** Amazon Relational Database Service (Amazon RDS)

**Arquitetura de destino**

![\[diagrama de arquitetura de destino para usar o AWS Transform personalizado para transformar o EZT em código moderno.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Fluxo de trabalho**

Essa solução usa um padrão de transformação de language-to-language migração AWS Transform personalizado para modernizar os aplicativos Easytrieve (EZT) de mainframe para Java por meio de um fluxo de trabalho automatizado de quatro etapas.

*Etapa 1 — Forneça seu código legado AWS Transform para o Mainframe, que:*
+ Analisa o código
+ Extrai a lógica de negócios de alto nível
+ Extrai a lógica comercial detalhada.

*Passo 2 — Crie uma pasta com as entradas necessárias:*
+ Regras de negócios do EZT extraídas usando AWS Transform para mainframe 
+ Documentação de referência de programação do EZT 
+ Código-fonte do EZT
+ Conjuntos de dados de entrada e saída do mainframe

*Etapa 3 — Criar e executar uma definição de transformação personalizada*

1. Use a AWS Transform CLI para descrever os objetivos de transformação em linguagem natural. AWS Transform O custom analisa os guias de programação BRE, código-fonte e EZT para gerar uma definição de transformação personalizada para análise e aprovação do desenvolvedor.

1. Em seguida, invoque a AWS Transform CLI com o código-fonte do projeto. AWS Transform custom cria planos de transformação, converte EZT em Java após aprovação, gera arquivos de suporte, cria o JAR executável e valida os critérios de saída.

1. Use o agente de validação para testar a equivalência funcional em relação à saída do mainframe. O Self-Debugger Agent corrige problemas de forma autônoma. Os resultados finais incluem código Java validado e relatórios de validação de HTML.

**Automação e escala**
+ Arquitetura de execução multimodo de IA agente — a AWS Transform personalização aproveita a IA agente com 3 modos de execução (conversacional, interativo e automação total) para automatizar tarefas complexas de transformação, incluindo análise de código, refatoração, planejamento e teste de transformação.
+ Sistema de feedback de aprendizado adaptável — A plataforma implementa mecanismos de aprendizado contínuo por meio de análise de amostras de código, análise de documentação e integração de feedback do desenvolvedor com definições de transformação versionadas.
+ Arquitetura simultânea de processamento de aplicativos — O sistema permite a execução paralela distribuída de várias operações de transformação de aplicativos simultaneamente em uma infraestrutura escalável.

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

**Serviços da AWS  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) é um serviço de IA agente usado para transformar aplicativos EZT legados em linguagens de programação modernas. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)usa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware 
+ [AWS Transform for mainframe é usado para](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) analisar aplicativos EZT legados para extrair lógica de negócios incorporada e gerar documentação abrangente de regras de negócios, incluindo resumos lógicos, definições de acrônimos e bases de conhecimento estruturadas. Eles servem como dados de entrada AWS Transform personalizados. 
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados. O Amazon S3 serve como o principal serviço de armazenamento AWS Transform personalizado para armazenar definições de transformação, repositórios de código e resultados de processamento. 
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los. O IAM fornece a estrutura de segurança para gerenciamento AWS Transform personalizado de permissões e controle de acesso para operações de transformação.

**Outras ferramentas**
+ AWS Transform A [CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) é a interface de linha de comando AWS Transform personalizada, permitindo que os desenvolvedores definam, executem e gerenciem transformações de código personalizadas por meio de conversas em linguagem natural e modos de execução automatizados. AWS Transform custom suporta sessões interativas (atx custom def exec) e transformações autônomas para modernização escalável de bases de código.
+ Sistema de controle de versão [Git](https://git-scm.com/doc) usado para proteção de filiais, rastreamento de alterações e recursos de reversão durante a aplicação automática de correção. 
+ [Java](https://www.java.com/en/) é a linguagem de programação e o ambiente de desenvolvimento usados nesse padrão. 

**Repositório de código**

O código desse padrão está disponível em [Easytrieve to Modern Languages Transformation with AWS Transform](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) Custom on. GitHub

## Práticas recomendadas
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Estabeleça uma estrutura de projeto padronizada — Crie uma estrutura de quatro pastas (código-fonte, bre-doc, dados de entrada, dados de saída), valide a integridade e documente o conteúdo antes da transformação.
+ Use arquivos de linha de base para validação — Use arquivos de entrada de linha de base de produção, faça byte-by-byte comparação com a saída de linha de base, aceite tolerância zero para desvios.
+ Use todos os documentos de referência disponíveis — Para aumentar a precisão da transformação, forneça todos os documentos de referência disponíveis, como requisitos de negócios e listas de verificação de codificação.
+ Forneça informações para a melhoria da qualidade — a AWS Transform personalização extrai automaticamente os aprendizados das execuções de transformação (feedback do desenvolvedor, problemas de código) e cria itens de conhecimento para eles. Após cada transformação bem-sucedida, revise os itens de conhecimento e aprove aquele que você gostaria que fosse usado em futuras execuções. Isso melhora a qualidade das transformações futuras.

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

### Gere um extrato de regras de negócios (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure AWS Transform para mainframe. | Configure o ambiente e as permissões necessárias AWS Identity and Access Management (IAM) para dar suporte aos fluxos de trabalho de modernização do mainframe. Para obter mais informações, consulte [Transformação de aplicativos de mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) na AWS documentação. | Desenvolvedor de aplicativos | 
| Gere documentação do Business Rule Extract (BRE). | Extraia a lógica de negócios do código EZT ou COBOL de origem para gerar documentação funcional. Para obter instruções sobre como iniciar o processo de extração e revisar a saída, consulte [Extrair lógica de negócios](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic) na AWS Transform documentação. | Desenvolvedor de aplicativos | 

### Configurar AWS Transform personalizado
<a name="set-up-trn-custom"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Provisione a infraestrutura para AWS Transform fins personalizados. | Implante a infraestrutura pronta para produção necessária para hospedar um ambiente de transformação seguro. Isso inclui uma instância privada do Amazon EC2 configurada com as ferramentas necessárias, as permissões do IAM e as configurações de rede para converter o código do Easytrieve. Para provisionar o ambiente usando infraestrutura como código (IaC), siga as instruções de implantação no repositório [Easytrieve to Modern Languages Transformation](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) with Custom. AWS Transform GitHub  | Desenvolvedor de aplicações e administrador da AWS | 
| Prepare os materiais de entrada para transformação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 

###  Crie uma definição de transformação personalizada
<a name="create-a-custom-transformation-definition"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a definição de transformação. | Siga estas etapas para criar a definição de transformação personalizada para a transformação EZT em Java com validação funcional.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 
| Publique a definição de transformação. | Depois de analisar e validar a definição de transformação, você pode publicá-la no registro AWS Transform personalizado com um prompt de linguagem natural, fornecendo um nome de definição, como *EasyTrieve-to-Java-Migration*. | Desenvolvedor de aplicativos | 

### Prepare os dados básicos para validação.
<a name="prepare-baseline-data-for-validation"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise o resumo da validação da transformação. | Antes de executar a transformação AWS Transform personalizada, verifique se a `input-data` pasta contém os arquivos de dados necessários capturados antes da execução do trabalho em lotes do mainframe. Após a execução do trabalho em lote do mainframe, certifique-se de que a `output-data` pasta capture os arquivos resultantes. Todos os arquivos estão no formato Sequential/Text/DB 2 usando a codificação EBCDIC com base nos requisitos de execução.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 
| Execute o trabalho de transformação personalizado. | Execute o comando AWS Transform CLI, escolhendo a opção não interativa ou interativa:<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 valida automaticamente por meio de build/test comandos durante a execução da transformação. | Desenvolvedor de aplicativos | 

### Valide e entregue o código testado
<a name="validate-and-deliver-tested-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Revise o resumo da validação da transformação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | Desenvolvedor de aplicativos | 
| Acesse relatórios de validação. | Insira estes comandos para revisar os artefatos de validação detalhados:<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> | Desenvolvedor de aplicativos | 
| Habilite itens de conhecimento para aprendizado contínuo. | Melhore a precisão da transformação futura promovendo itens de conhecimento sugeridos para sua configuração persistente. Depois de uma transformação, o agente armazena padrões identificados e regras de mapeamento em seu diretório de sessão local. Para revisar e aplicar esses itens aprendidos, execute estes comandos na sua instância do 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> | Desenvolvedor de aplicativos | 

## Solução de problemas
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| *Configuração do caminho de entrada e saída*Os arquivos de entrada não estão sendo lidos ou os arquivos de saída não estão sendo gravados corretamente.  | Especifique o caminho completo do diretório em que os arquivos de entrada são armazenados e indique claramente o local em que a saída deve ser gravada. Certifique-se de que as permissões de acesso adequadas estejam configuradas para esses diretórios. As melhores práticas incluem usar caminhos absolutos em vez de caminhos relativos para evitar ambigüidade e verificar se todos os caminhos especificados existem com as permissões apropriadas read/write .  | 
| *Retomando as execuções interrompidas*A execução foi interrompida ou precisa ser continuada de onde foi interrompida | Você pode retomar a execução de onde parou fornecendo o ID da conversa no comando da CLI.Encontre o ID da conversa nos registros da sua tentativa de execução anterior.   | 
| *Resolvendo restrições de memória*Ocorre um erro de falta de memória durante a execução. | Você pode pedir AWS Transform para compartilhar o tamanho atual da JVM na memória e, em seguida, aumentar a alocação de memória com base nessas informações. Esse ajuste ajuda a acomodar maiores requisitos de processamento.Considere dividir trabalhos grandes em lotes menores se as restrições de memória persistirem após os ajustes.  | 
| *Abordando discrepâncias no arquivo de saída*Os arquivos de saída não correspondem às expectativas e AWS Transform indicam que nenhuma alteração adicional é possível. | Forneça feedback específico e motivos técnicos explicando por que a saída atual está incorreta. Inclua documentação técnica ou comercial adicional para atender às suas necessidades. Esse contexto detalhado ajuda a AWS Transform corrigir o código para gerar os arquivos de saída adequados. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Recursos relacionados
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform documentação personalizada](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Gerador de relatórios Easytrieve 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)

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

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)

# Mais padrões
<a name="mainframe-more-patterns-pattern-list"></a>

**Topics**
+ [Implemente as automações de segurança para a AWS WAF solução usando o Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Replique bancos de dados de mainframe para AWS usando o Precisely Connect](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)