Hospedar novamente um banco de dados IMS e comunicações de dados do IMS no Azure usando o IMSql do Raincode

Conjuntos de Dimensionamento de Máquinas Virtuais do Microsoft Azure
Aplicativos Lógicos do Azure
Instância Gerenciada do Azure SQL
Rede Virtual do Azure
Azure ExpressRoute

Ideias de soluções

Este artigo descreve uma ideia de solução. Seu arquiteto de nuvem pode usar essa orientação para ajudar a visualizar os principais componentes para uma implementação típica dessa arquitetura. Use este artigo como ponto de partida para projetar uma solução bem arquitetada que se alinhe aos requisitos específicos da sua carga de trabalho.

Essa arquitetura descreve como implementar uma carga de trabalho de aplicativo de mainframe do IMS (Sistema de Gerenciamento de Informações) no Azure usando o IMSql do Raincode. É mais complexo migrar um aplicativo de Banco de Dados IMS (BD) para uma solução nativa de nuvem do que migrar um aplicativo de banco de dados relacional. Este artigo descreve como migrar para o Azure uma carga de trabalho de IMS em mainframe que possui funcionalidades e capacidades críticas do IMS. Você não precisa converter ou modificar o aplicativo existente.

Arquitetura da carga de trabalho de IMS DB e IMS Data Communications antes da migração

Diagrama que mostra a arquitetura da carga de trabalho de comunicações de dados e do IMS DB antes da migração.

Fluxo de dados

O fluxo de dados a seguir corresponde ao diagrama anterior:

  1. Os usuários se conectam ao mainframe por TCP/IP usando protocolos de mainframe padrão, como TN3270 e HTTPS.

  2. Os gerenciadores de transações interagem com os usuários e invocam o aplicativo para atender às solicitações do usuário.

  3. Os usuários interagem com telas IMS ou páginas da Web no front-end da camada de aplicativo.

  4. O código do aplicativo usa os recursos de armazenamento da camada de dados de back-end do IMS DB hierárquico.

  5. Trabalhos em lote executam operações offline de Big Data.

  6. Juntamente com o processamento de transações, outros serviços fornecem autenticação, segurança, gerenciamento, monitoramento e relatórios. Esses serviços interagem com outros serviços do sistema.

Arquitetura IMSql no Azure

Diagrama que mostra a arquitetura IMSql no Azure.

Baixe um arquivo do Visio dessa arquitetura.

Workflow

O fluxo de dados a seguir corresponde ao diagrama anterior:

  1. Servidor de terminal IMSql

    Tradicionalmente, os usuários locais acessam a interface do mainframe z/OS usando um terminal interno da IBM ou usando um software de emulação de terminal. Um aplicativo que tem uma rede geograficamente dispersa com milhares de usuários se conecta ao mainframe usando um terminal. Se você hospedar novamente um aplicativo de COMUNICAÇÕES de Dados do IMS (DC) em um sistema baseado em nuvem distribuída, precisará hospedar centralmente o aplicativo e o recurso e publicá-los para os dispositivos cliente remotos. Para hospedar e publicar o aplicativo e o recurso no Azure, use servidores de terminal IMSql.

  2. Agente de serviços do SQL Server

    No mainframe, o IMS DC transmite e processa mensagens em uma região de controle para orquestrar a camada de comunicação entre terminais de usuário e programas de aplicativo. Após a nova hospedagem, o agente de serviços do SQL Server orquestra essa camada de comunicação assíncrona. Esse agente de serviços dá suporte à comunicação por meio de sua estrutura de entrega de mensagens e dimensiona mensagens para servidores de processamento separados, usuários atuais e seu processamento de transações.

  3. Servidor de processamento IMSql

    O servidor de processamento executa o código recompilado do Raincode para programas IMS no .NET Framework ou .NET. O servidor contém a infraestrutura subjacente para que os programas recompilados sejam executados efetivamente e com equivalência funcional correta. O servidor de processamento IMSql pode gerar consultas dinâmicas e chamar procedimentos armazenados no SQL Server que são criados durante a recompilação de chamadas Data Language/One (DL/I).

  4. SQL Server como um armazenamento de dados hierárquico

    Os dados são armazenados hierarquicamente no IMS. O IMSql usa o mesmo modelo no SQL Server. Esse modelo usa bancos de dados relacionais de alto desempenho para implementar logicamente segmentos hierárquicos do IMS. O modelo dá suporte a dimensionamento independente com segmentos. Os dados do segmento são armazenados em formato EBCDIC bruto para que não exijam conversão para o aplicativo. Usando a PaaS (plataforma SQL como serviço), o IMSql pode aproveitar os recursos subjacentes de alta disponibilidade e recuperação de desastre que o Azure fornece.

  5. API de chamada DL/I

    A API IMSql converte chamadas de DL/I do COBOL IMS para consultas SQL equivalentes. A API busca dados e os retorna para o programa de aplicativo no formato esperado. O IMSql acompanha a posição do programa no registro da tabela para executar operações de criação, leitura, atualização e exclusão, como o banco de dados hierárquico. Para responder a chamadas de DL/I com uso intensivo de desempenho, o IMSql pode criar procedimentos armazenados em SQL Server durante a compilação.

  6. Raincode JCL

    A linguagem de controle de tarefas (JCL) da Raincode é um interpretador compatível com a JCL do z/OS. O Raincode JCL suaviza a transição da lógica de negócios intrincada inserida em JCL para plataformas de Azure e .NET. A JCL do Raincode executa o código compilado pelos compiladores RAINcode COBOL, PL/I e ASM370. A JCL do Raincode executa etapas escritas na maioria dos idiomas. Implemente o código escrito pelo usuário para configurá-lo e adaptá-lo para o agendamento em lote sob medida.

  7. Visualização de dados IMSql

    O IMSql define visões relacionais em SQL com base em copybooks ou layouts de registro, para que os serviços do Azure e novos aplicativos possam acessar segmentos do IMS usando instruções SQL padrão. As visões IMSql permitem gravação, de modo que aplicativos modernos podem tanto ler quanto gravar no IMS via SQL Server.

Migração de dados via IMSql

Diagrama que mostra a migração de dados via IMSql.

Migração de objeto de banco de dados

  • O IMSql extrai e transfere a DBD (descrição do banco de dados IMS) original do mainframe. O IMSql usa informações de DBD para produzir scripts SQL para gerar um banco de dados de destino e tabelas em SQL do Azure.

  • Cada segmento em um DBD IMS é convertido como uma tabela no Azure.

  • As tabelas incluem um campo de chave, campos de pesquisa e dados do segmento IMS representados no EBCDIC.

  • As tabelas do SQL do Azure mantêm a estrutura em árvore de segmentos do IMS e os relacionamentos de chaves primárias e externas.

Carregamento inicial de dados

  • Dados do IMS DB são extraídos por meio de um trabalho do mainframe e de utilitários de download, como DFSRRC00 e DFSURGL0.

  • Você pode transferir arquivos binários extraídos para Azure usando conectores Azure Data Factory, como FTP e SFTP (Secure FTP) e uma solução baseada em Java que é executada nos Serviços de Subsistema Unix.

  • O IMSql tem um utilitário de carregamento integrado para concluir os carregamentos de dados iniciais. Essa ferramenta usa o utilitário bcp (programa de cópia em massa) do SQL Server. A ferramenta garante que o bcp seja executado e verifique se a integridade referencial entre as tabelas corresponde à estrutura hierárquica esperada.

  • Essa migração aborda um carregamento único de dados do banco de dados IMS, mas não aborda a coexistência e a respectiva sincronização de dados.

Fluxo de dados

O fluxo de dados a seguir corresponde ao diagrama anterior:

  1. O BD IMS contém o DBD e os dados do segmento.

  2. Os utilitários da IBM extraem e descarregam informações do banco de dados IMS.

  3. O arquivo DBD e os arquivos de dados binários correspondentes são gerados separadamente.

  4. As etapas a seguir descrevem o processo de ingestão de dados:

    1. O conector FTP do Azure Data Factory copia conjuntos de dados IMS de mainframe para o armazenamento de dados do Azure.

    2. Os arquivos de dados IMS de mainframe são copiados para o Armazenamento de Blobs do Azure por meio do SFTP.

    3. O Mainframe JCL executa uma solução de Java personalizada que move dados entre o sistema de mainframe e o Armazenamento de Blobs SFTP.

  5. O IMSql cria o banco de dados e as tabelas de destino e mantém a integridade referencial usando o arquivo DBD.

  6. O IMSql carrega os objetos de dados criados para as tabelas correspondentes em ordem sequencial.

  7. O Instância Gerenciada de SQL do Azure hospeda dados IMS migrados.

  8. O banco de dados da aplicação contém os dados brutos de segmento utilizados para o processamento online do IMS e o processamento em lote.

  9. As exibições de leitura e gravação do IMS contêm dados de segmento que são expandidos com base no layout de copybook.

Migrar dados do IMS DB usando o Raincode zBridge

Raincode zBridge facilita o acesso a dados não relacionais de mainframe no Azure, incluindo dados de segmentos do IMS DB. Você pode acessar esses dados em bancos de dados SQL do Azure para aplicativos distribuídos e para fins de relatórios e analíticos.

Importe arquivos de dados de segmento do IMS para o zBridge usando um copybook COBOL compatível ou um arquivo de inclusão PL/I. Os dados são exibidos como linhas SQL que convertem tipos numéricos de mainframe em tipos SQL e convertem cadeias de caracteres em ASCII, se necessário. O zBridge também suporta estruturas de dados complexas.

Componentes

  • Aplicativos Lógicos do Azure é uma plataforma de nuvem para soluções de integração avançadas. Os usuários de mainframe familiarizados com terminais 3270 e conectividade local podem usar o conector IBM 3270 connector do Logic Apps para acessar e executar aplicativos de mainframe da IBM. Nessa arquitetura, os Aplicativos Lógicos dão suporte à interação de mainframe com aplicativos Azure migrados usando a Internet pública ou uma conexão Azure ExpressRoute privada que usa Microsoft Entra ID para autenticação.

  • Os Conjuntos de Dimensionamento de Máquinas Virtuais do Azure são um serviço de computação que fornece dimensionamento automatizado e com balanceamento de carga de máquina virtual (VM) que simplifica o gerenciamento de aplicativos e aumenta a disponibilidade. Nessa arquitetura, Conjuntos de Dimensionamento de Máquinas Virtuais fornece VMs suficientes para as necessidades críticas de processamento online e em lote da carga de trabalho IMSql.

  • Rede Virtual do Azure dá suporte à comunicação segura entre Azure recursos, como VMs Azure e com a Internet e redes locais. Rede Virtual é como uma rede tradicional que você opera no seu próprio datacenter, mas fornece a escala, a disponibilidade e o isolamento da infraestrutura do Azure. Nessa arquitetura, Rede Virtual fornece uma base de rede segura para uma comunicação eficaz entre componentes IMSql.

  • O ExpressRoute é um serviço de conectividade que estende suas redes locais para o Microsoft Cloud por meio de uma conexão privada facilitada por um provedor de conectividade. Você pode usar o ExpressRoute para estabelecer conexões com serviços de nuvem da Microsoft, como Azure e Microsoft 365. Nessa arquitetura, o ExpressRoute fornece conectividade segura e de alta largura de banda entre ambientes de mainframe locais e os aplicativos IMS migrados que são executados no Azure.

  • O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso corporativo baseado em nuvem. Nessa arquitetura, Microsoft Entra ID protege contra ataques de segurança cibernética e fornece logon único e autenticação multifator para ajudar os usuários a entrar e acessar recursos.

  • Instância Gerenciada de SQL fornece uma instância de SQL Server totalmente gerenciada no Azure. Nessa arquitetura, Instância Gerenciada de SQL fornece a plataforma de banco de dados relacional para estruturas de dados IMS DB hierárquicas convertidas com alta disponibilidade e integração de serviço Azure.

Alternativas

  • Você pode usar SQL Server em uma VM Azure em vez de Instância Gerenciada de SQL. Recomendamos Instância Gerenciada de SQL devido à sua alta disponibilidade, integração com serviços de Azure e gerenciamento de patches de segurança e manutenção.

  • Você pode usar uma arquitetura Azure de VM única em vez de Conjuntos de Dimensionamento de Máquinas Virtuais. Considere VMs simples para cargas de trabalho que têm demandas constantes de carga e desempenho e não exigem dimensionamento. Essa arquitetura usa Conjuntos de Dimensionamento de Máquinas Virtuais para processar cargas de trabalho IMS típicas.

Detalhes do cenário

Os sistemas OLTP (processamento de transações online) do Mainframe podem processar milhões de transações para muitos usuários. IBM IMS é um gerenciador de transações de mainframe clássico para OLTP. O IBM IMS compreende o IMS DC, o gerenciador de transações e o BD IMS, o DBMS (sistema de gerenciamento de banco de dados hierárquico) subjacente.

O IMSql fornece hospedagem de cargas de trabalho baseadas em IMS no Azure e em implementações distribuídas baseadas em SQL Server, no ambiente local. O IMSql fornece uma solução holística para cargas de trabalho IMS, incluindo os componentes de aplicativo, dados e middleware. O IMSql pode ingerir estruturas de dados IMS DB hierárquicas em um modelo de dados relacional em SQL Server, SQL Server em Máquinas Virtuais do Azure e Instância Gerenciada de SQL. Ele tem APIs internas para chamadas DL/I do programa de aplicativos IMS e estende a camada de dados além de cargas de trabalho hierárquicas para aplicativos nativos de nuvem para dados relacionais.

Esta solução:

  • Moderniza a infraestrutura e reduz os elevados custos, as limitações e a inflexibilidade das cargas de trabalho monolíticas de IMS em mainframe.

  • Implementa soluções nativas de nuvem e DevOps para reduzir a dívida técnica.

  • Envia dados do IMS DB para aplicativos baseados em nuvem que não usam mainframes, incluindo aplicativos de IA e análise.

Possíveis casos de uso

Essa solução pode ser útil para:

  • Setores bancário, financeiro, de seguros, governamental e de varejo que usam o Mainframe IMS. Muitas dessas organizações executam seus principais aplicativos OLTP e em lotes no IMS DB e no IMS DC.

  • Clientes de mainframe ibm zSeries que precisam migrar aplicativos comercialmente críticos. Esses clientes geralmente desejam manter a continuidade com outros aplicativos locais e evitar os efeitos de um redesenvolvimento completo.

Contribuidores

A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.

Autores principais:

Para ver perfis não públicos no LinkedIn, entre no LinkedIn.

Próximas etapas