Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ideias de soluções
Este artigo descreve uma ideia de solução. O seu arquiteto de nuvem pode usar estas diretrizes para ajudar a visualizar os componentes principais de uma implementação típica desta arquitetura. Use este artigo como ponto de partida para conceber uma solução bem arquitetada que se alinhe com os requisitos específicos da sua carga de trabalho.
Esta arquitetura descreve como implementar uma carga de trabalho de uma aplicação mainframe do Sistema de Gestão de Informação (IMS) no Azure utilizando o Raincode IMSql. É mais complexo migrar uma aplicação de base de dados IMS (DB) para uma solução cloud-native do que migrar uma aplicação de base de dados relacional. Este artigo descreve como rehospedar uma carga de trabalho IMS de mainframe que tenha funcionalidades e capacidades IMS críticas para o Azure. Você não precisa traduzir ou modificar seu aplicativo existente.
Arquitetura pré-migração das cargas de trabalho do IMS DB e do IMS Data Communications
Fluxo de dados
O seguinte fluxo de dados corresponde ao diagrama anterior:
Os utilizadores ligam-se ao mainframe via TCP/IP usando protocolos mainframe padrão como TN3270 e HTTPS.
Os gerentes de transações interagem com os usuários e invocam o aplicativo para satisfazer as solicitações dos usuários.
Os utilizadores interagem com ecrãs IMS ou páginas web na interface da camada de aplicação.
O código da aplicação utiliza as capacidades de armazenamento da camada de dados de back-end do IMS DB hierárquico.
Os trabalhos em lote realizam operações de big data offline.
Juntamente com o processamento de transações, outros serviços fornecem autenticação, segurança, gerenciamento, monitoramento e relatórios. Estes serviços interagem com outros serviços do sistema.
Arquitetura IMSql no Azure
Descarregue um ficheiro Visio desta arquitetura.
Workflow
O fluxo de trabalho a seguir corresponde ao diagrama anterior:
Servidor de terminal IMSql
Tradicionalmente, os utilizadores locais acedem à interface mainframe z/OS usando um terminal interno da IBM ou utilizando software de emulação de terminal. Uma aplicação com uma rede geograficamente dispersa com milhares de utilizadores liga-se ao mainframe através de um terminal. Se realojar uma aplicação IMS Data Communications (DC) num sistema distribuído baseado na cloud, precisa de alojar centralmente a aplicação e o recurso e publicá-los para os dispositivos clientes remotos. Para alojar e publicar a aplicação e o recurso no Azure, utilize servidores de terminal IMSql.
Agente de serviço do SQL Server
No mainframe, o IMS DC transmite e processa mensagens numa região de controlo para orquestrar a camada de comunicação entre terminais de utilizador e programas de aplicação. Após o rehost, o agente de serviço do SQL Server orquestra essa camada de comunicação assíncrona. Este mediador de serviços suporta a comunicação através da sua estrutura de entrega de mensagens e distribui as mensagens em escala por servidores de processamento separados, utilizadores ativos e respetivo processamento de transações.
Servidor de processamento IMSql
O servidor de processamento executa código recompilado por Raincode para programas IMS em .NET Framework ou .NET. O servidor contém a infraestrutura subjacente para que os programas recompilados corram eficazmente e com a correta equivalência funcional. 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).
SQL Server como um armazenamento de dados hierárquico
Os dados são armazenados hierárquicamente no IMS. O IMSql usa o mesmo modelo no SQL Server. Este modelo utiliza bases de dados relacionais de alto desempenho para implementar logicamente segmentos hierárquicos a partir do IMS. O modelo suporta escalonamento independente com segmentos. Os dados de segmento são armazenados em formato bruto EBCDIC para que não exija conversão para a aplicação. Ao usar a plataforma SQL como serviço (PaaS), o IMSql pode aproveitar os recursos subjacentes de alta disponibilidade e recuperação de desastres que o Azure oferece.
API de chamada DL/I
A API IMSql traduz chamadas COBOL IMS DL/I em consultas SQL equivalentes. A API recolhe dados e devolve-os ao programa de aplicação no formato esperado. O IMSql acompanha a posição do programa no registo da tabela para realizar operações de criação, leitura, atualização e eliminação, tal como a base de dados hierárquica. Para responder a chamadas DL/I intensivas em desempenho, o IMSql pode criar procedimentos armazenados no SQL Server durante a compilação.
Raincode JCL
Raincode Job Control Language (JCL) é um interpretador compatível com JCL no z/OS. O Raincode JCL suaviza a transição da complexa lógica de negócio embutida no JCL para as plataformas Azure e .NET. Raincode JCL executa código compilado pelos compiladores Raincode COBOL, PL/I e ASM370. O Raincode JCL executa passos escritos na maioria das linguagens. Implemente código escrito pelo utilizador para configurar e adaptar o sistema a um agendamento personalizado de lotes.
Visualização de dados IMSql
O IMSql define vistas SQL relacionais com base em copybooks ou layouts de registos, para que os serviços do Azure e novas aplicações possam aceder a segmentos IMS usando instruções SQL simples. As vistas IMSql são graváveis, pelo que aplicações modernas podem tanto ler como escrever no IMS via SQL Server.
Migração de dados via IMSql
Migração de objetos na base de dados
O IMSql extrai e transfere a descrição original da base de dados IMS (DBD) do mainframe. O IMSql utiliza informação DBD para produzir scripts SQL que geram uma base de dados alvo e tabelas no SQL do Azure.
Cada segmento em um DBD IMS é traduzido como uma tabela no Azure.
As tabelas incluem um campo-chave, campos de pesquisa e dados de segmentos IMS representados em EBCDIC.
As tabelas SQL do Azure mantêm a estrutura de árvore segmentada IMS e as relações de chave primária e estrangeira.
Carga inicial de dados
Os dados da base de dados IMS são extraídos através de um job de mainframe e de utilitários de download como o DFSRRC00 e o DFSURGL0.
Pode transferir ficheiros binários extraídos para o Azure usando conectores do Azure Data Factory, como FTP e Secure FTP (SFTP), e uma solução baseada em Java que corre em Unix Subsystem Services.
O IMSql tem um utilitário de carga integrado para completar as cargas de dados iniciais. Essa ferramenta usa o utilitário de programa de cópia em massa (bcp) do SQL Server. A ferramenta assegura que o bcp é executado e verifica se a integridade referencial entre as tabelas corresponde à estrutura hierárquica esperada.
Esta migração aborda uma carga de dados única da base de dados IMS, mas não aborda a coexistência e a sincronização de dados associada.
Fluxo de dados
O seguinte fluxo de dados corresponde ao diagrama anterior:
A IMS DB contém o DBD e os dados do segmento.
As utilidades da IBM extraem e descarregam a informação da base de dados IMS.
O arquivo DBD e os arquivos de dados binários correspondentes são gerados separadamente.
Os passos seguintes descrevem o processo de ingestão de dados:
O conector FTP do Azure Data Factory copia conjuntos de dados IMS de mainframe para o armazenamento de dados do Azure.
Os arquivos de dados IMS de mainframe são copiados para o Armazenamento de Blobs do Azure via SFTP.
O Mainframe JCL executa uma solução Java personalizada que move dados entre o sistema mainframe e o SFTP Armazenamento de Blobs.
O IMSql cria a base de dados de destino e as tabelas, mantendo a integridade referencial, utilizando o ficheiro DBD.
O IMSql carrega os objetos de dados criados para as tabelas correspondentes por ordem sequencial.
Azure SQL Managed Instance hospeda dados IMS migrados.
A base de dados da aplicação contém os dados brutos dos segmentos usados para o processamento IMS online e processamento em lote.
As visualizações de leitura e de escrita do IMS contêm dados de segmento que se expandem com base na estrutura do copybook.
Migrar dados de banco de dados IMS usando o Raincode zBridge
O Raincode zBridge facilita o acesso a dados não relacionais do mainframe no Azure, incluindo dados de segmentos da base de dados IMS. Pode aceder a estes dados em bases de dados SQL do Azure para aplicações distribuídas e para fins de relatórios e análise.
Importar ficheiros de dados de segmentos IMS para o zBridge utilizando um copybook de COBOL correspondente ou um ficheiro include de PL/I correspondente. Os dados aparecem como linhas SQL que convertem tipos numéricos de mainframe em tipos SQL e que convertem strings em ASCII, se necessário. O zBridge também suporta estruturas de dados complexas.
Componentes
Azure Logic Apps é uma plataforma cloud para soluções de integração poderosas. Utilizadores de mainframe familiarizados com terminais 3270 e conectividade local podem usar o conector IBM 3270 Logic Apps para aceder e executar aplicações mainframe IBM. Nesta arquitetura, o Logic Apps suporta a interação mainframe com aplicações Azure migradas, utilizando quer a internet pública, quer uma ligação privada Azure ExpressRoute que utiliza o Microsoft Entra ID para autenticação.
Os Conjuntos de Dimensionamento de Máquina Virtual do Azure são um serviço de computação que fornece dimensionamento de máquina virtual (VM) automatizado e com balanceamento de carga que simplifica o gerenciamento de aplicativos e aumenta a disponibilidade. Nesta arquitetura, o 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.
O Rede Virtual do Azure suporta comunicação segura entre recursos do Azure, como VMs do Azure, e com a internet e redes locais. A Rede Virtual é como uma rede tradicional que se opera no seu próprio datacenter, mas oferece a escala, disponibilidade e isolamento da infraestrutura do Azure. Nesta arquitetura, a 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 as suas redes locais para a Microsoft Cloud através de uma ligação privada facilitada por um fornecedor de conectividade. Você pode usar a Rota Expressa para estabelecer conexões com serviços do Microsoft Cloud, como o Azure e o 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 acesso e identidade empresarial baseado em nuvem. Nesta arquitetura, o Microsoft Entra ID protege contra ataques de cibersegurança e fornece login único e autenticação multifator para ajudar os utilizadores a iniciar sessão e aceder a recursos.
O SQL Managed Instance fornece uma instância totalmente gerida do SQL Server no Azure. Nesta arquitetura, o SQL Managed Instance fornece a plataforma de base de dados relacional para estruturas de dados IMS hierárquicas convertidas com alta disponibilidade e integração com serviços Azure.
Alternativas
Pode usar o SQL Server numa VM do Azure em vez do SQL Managed Instance. Recomendamos o SQL Managed Instance devido à sua elevada disponibilidade, integração com os serviços do Azure e gestão de patches de segurança e manutenção.
Pode usar uma arquitetura Azure single-VM em vez de Conjuntos de Dimensionamento de Máquinas Virtuais. Considere VMs individuais para cargas de trabalho que têm exigências constantes de carga e desempenho e que não exigem escalabilidade. Essa arquitetura usa conjuntos de escala de máquina virtual para lidar com cargas de trabalho IMS típicas.
Detalhes do cenário
Os sistemas de processamento de transações online (OLTP) de mainframe podem processar milhões de transações para muitos utilizadores. O IBM IMS é um gestor clássico de transações de mainframe para OLTP. O IMS MM compreende o IMS DC, o gestor de transações, e o IMS DB, o sistema de gestão hierárquica de bases de dados (SGBD) subjacente.
O IMSql fornece alojamento de cargas de trabalho baseadas em IMS no Azure e implementações on-premises, baseadas em SQL Server, distribuídas. O IMSql fornece uma solução holística para cargas de trabalho IMS, incluindo os componentes da aplicação, dados e middleware. O IMSql pode ingerir estruturas de dados hierárquicas IMS DB num modelo relacional de dados no SQL Server, SQL Server nas Máquinas Virtuais do Azure e SQL Managed Instance. Inclui APIs integradas para chamadas DL/I de programas de aplicação IMS e estende a camada de dados para além das cargas de trabalho hierárquicas, abrangendo aplicações cloud-native para dados relacionais.
Esta solução:
Moderniza a infraestrutura e reduz os elevados custos, limitações e inflexibilidade das cargas de trabalho IMS monolíticas em mainframes.
Implementa soluções cloud-native e DevOps para reduzir a dívida técnica.
Envia dados IMS DB para aplicações baseadas na cloud que não usam mainframes, incluindo aplicações de IA e análise.
Potenciais casos de utilização
Esta solução pode ser útil para:
Setores bancários, financeiros, de seguros, governamentais e de varejo que usam o Mainframe IMS. Muitas destas organizações executam as suas principais aplicações OLTP e em lote no IMS DB e IMS DC.
Clientes de mainframe IBM zSeries que precisam migrar aplicações críticas para o negócio. Estes clientes querem frequentemente manter a continuidade com outras aplicações on-premises e evitar os efeitos de uma requalificação completa.
Contribuidores
A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.
Principais autores:
- Nithish Aruldoss | Arquiteto de Engenharia
- Ametista Salomão | Arquiteto de Engenharia Sénior
Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.
Próximos passos
- Copiar arquivos do mainframe para o Azure Data Factory usando o conector FTP
- Transferir arquivos de mainframe para o armazenamento de Blob usando SFTP
- O que é Rede Virtual?
- O que é a Rota Expressa?
- Documentação do Microsoft Fabric