Condividi tramite


Rehosting di IMS DC e IMS DB in Azure usando Raincode IMSql

Set di scalabilità di macchine virtuali di Azure
App per la logica di azure
Istanza gestita di SQL di Azure
Rete virtuale di Azure
Azure ExpressRoute

Questa architettura descrive come implementare un carico di lavoro dell'applicazione mainframe IMS (Information Management System) in Azure usando IMSql di Raincode. La migrazione di un'applicazione di database IMS (DB) a una soluzione nativa del cloud è più complessa rispetto alla migrazione di un'applicazione di database relazionale. Questo articolo descrive come eseguire facilmente il rehosting di un carico di lavoro IMS mainframe con funzionalità e funzionalità IMS critiche in Azure. Non è necessario tradurre o modificare l'applicazione esistente.

Architettura del carico di lavoro IMS DB/DC, prima della migrazione

Diagramma che illustra l'architettura del carico di lavoro DB/DC IMS pre-migrazione.

Flusso di dati

Il flusso di dati seguente corrisponde al diagramma precedente:

  1. Gli utenti si connettono al mainframe tramite il protocollo di controllo della trasmissione o il protocollo Internet utilizzando protocolli mainframe standard come TN3270 e HTTPS.
  2. I gestori transazioni interagiscono con gli utenti e richiamano l'applicazione per soddisfare le richieste degli utenti.
  3. Nella parte anteriore del livello dell'applicazione, gli utenti interagiscono con le schermate IMS o con le pagine Web.
  4. Il codice dell'applicazione utilizza le funzionalità di archiviazione del livello dati back-end (gerarchico) del database IMS.
  5. Tutte le operazioni di Big Data offline vengono eseguite tramite processi batch.
  6. Oltre all'elaborazione delle transazioni, altri servizi forniscono autenticazione, sicurezza, gestione, monitoraggio e reportistica. Questi servizi interagiscono con tutti gli altri servizi del sistema.

Architettura IMSql in Azure

Diagramma che mostra l'architettura IMSql in Azure.

Scaricare un file di Visio di questa architettura.

Flusso di lavoro

Il flusso di lavoro seguente corrisponde al diagramma precedente:

  1. Server terminal IMSql

    Tradizionalmente, gli utenti on-premise accedono all'interfaccia mainframe z/OS tramite un terminale IBM in-house o tramite un software di emulazione terminale. Un'applicazione che dispone di una rete geograficamente dispersa con migliaia di utenti può connettersi ai mainframe tramite qualsiasi forma di terminale. Quando un'applicazione IMS Data Communications (DC) viene riallocata nel sistema distribuito basato su cloud, è necessario ospitare centralmente l'applicazione e la risorsa e pubblicarle per i dispositivi client remoti. È possibile usare i server terminal IMSql per ospitare e pubblicare l'applicazione e la risorsa in Azure.

  2. Gestore di servizi SQL Server

    Nel mainframe, IMS DC orchestra il livello di comunicazione tra i terminali utente e i programmi applicativi trasmettendo ed elaborando i messaggi in una regione di controllo. Dopo il rehost, Service Broker di SQL Server orchestra questo livello di comunicazione asincrona. Service Broker consente la comunicazione tramite il framework di recapito dei messaggi e la scalabilità orizzontale dei messaggi per separare i server di elaborazione, gli utenti correnti e l'elaborazione delle transazioni.

  3. Server di elaborazione IMSql

    Il server di elaborazione esegue il codice ricompilato da Raincode per i programmi IMS in .NET Framework o .NET Core. Contiene l'infrastruttura sottostante che consente ai programmi ricompilati di essere eseguiti in modo efficace con l'equivalenza funzionale corretta. Il server di elaborazione IMSql è in grado di generare query dinamiche e chiamare stored procedure in SQL Server che vengono create durante la ricompilazione delle chiamate DL/I (Data Language/One).

  4. SQL Server come archivio dati gerarchico

    I dati vengono memorizzati come dati gerarchici in IMS. IMSql utilizza lo stesso modello in SQL Server. Questo modello consente a IMSql di sfruttare le elevate prestazioni dei database relazionali e di implementare logicamente i segmenti gerarchici di IMS. Consente inoltre al sistema di scalare in modo indipendente con i segmenti. I dati del segmento vengono memorizzati in formato EBCDIC non elaborato, quindi non è necessario convertirli per l'applicazione. Usando la piattaforma SQL distribuita come servizio (PaaS), IMSql può sfruttare le funzionalità di disponibilità elevata e ripristino di emergenza sottostanti fornite da Azure.

  5. API di chiamata DL/I

    L'API IMSql garantisce che le chiamate DL/I IMS COB (Common Business-Oriented Language) vengano tradotte in query SQL equivalenti. Quindi recupera i dati e li restituisce al programma applicativo nel formato previsto. IMSql tiene traccia anche della posizione del programma sul record della tabella per eseguire le operazioni di creazione, lettura, aggiornamento ed eliminazione, come il database gerarchico. IMSql è in grado di creare stored procedure in SQL Server durante la compilazione per rispondere alle chiamate DL/I che richiedono prestazioni elevate.

  6. Codice pioggia JCL

    Il linguaggio JCL (Job Control Language) Raincode è un interprete compatibile con z/OS JCL. L'interprete JCL Raincode semplifica il più possibile la transizione dall'intricata logica di business incorporata in JCL alle piattaforme Azure e .NET Core. Raincode JCL è progettato per eseguire il codice compilato dai compilatori Raincode COBOL, Programming Language One (PL/I) e ASM370. Può facilmente eseguire passaggi scritti nella maggior parte delle lingue. È possibile configurarlo e ottimizzarlo implementando il codice scritto dall'utente, in modo da poterlo adattare alle proprie esigenze di pianificazione batch.

  7. Visualizzazione dati IMSql

    IMSql definisce viste SQL relazionali basate su copybook o layout di record, in modo che sia possibile accedere ai segmenti IMS tramite istruzioni SQL semplici da qualsiasi servizio Azure e da nuove applicazioni. Le viste IMSql sono anche scrivibili, quindi le applicazioni moderne possono interagire con IMS in entrambi i modi tramite SQL Server.

Migrazione dei dati tramite IMSql

Diagramma che mostra la migrazione dei dati tramite IMSql.

Migrazione di oggetti DB

  • La descrizione del database IMS DB (DBD) originale viene estratta e trasferita dal mainframe. IMSql usa le informazioni DBD per produrre script SQL per generare un database di destinazione e tabelle in Azure SQL.

  • Ogni segmento in un DBD IMS viene convertito come tabella in Azure.

  • Le tabelle sono costituite da un campo chiave, campi di ricerca e i dati completi del segmento IMS rappresentati in EBCDIC.

  • La struttura ad albero dei segmenti IMS viene mantenuta con la relazione di chiave primaria ed esterna nelle tabelle SQL di Azure.

Caricamento iniziale dei dati

  • I dati dal database IMS vengono estratti tramite un processo mainframe e utilità di download comunemente disponibili come DFSRRC00 e DFSURGL0.

  • È possibile trasferire i file binari estratti in Azure usando i connettori di Azure Data Factory come FTP (File Transfer Protocol) e SFTP (Secure File Transfer Protocol) e una soluzione basata su Java che viene eseguita nei servizi del sottosistema Unix.

  • IMSql dispone di un'utilità di caricamento incorporata per completare i caricamenti iniziali dei dati. Questo strumento utilizza l'utilità BCP (Bulk Copy Program) di SQL Server. Garantisce che bcp venga eseguito e che l'integrità referenziale richiesta tra le tabelle corrisponda alla struttura gerarchica prevista.

  • Questa migrazione risolve un caricamento di dati una tantum dal database IMS. Non affronta la coesistenza e la sincronizzazione dei dati associati.

Flusso di dati per la migrazione

Il flusso di dati seguente corrisponde al diagramma precedente:

  1. L'archivio dati non relazionale mainframe (IMS DB) è costituito da due componenti: il DBD e i dati del segmento effettivo.

  2. Le utility IBM estraggono e scaricano le informazioni del DB IMS.

  3. Il file DBD e i file di dati binari corrispondenti vengono generati separatamente.

  4. Inserimento dati:

    1. Il connettore FTP di Azure Data Factory copia i set di dati IMS mainframe nell'archiviazione dati di Azure.
    2. I file di dati IMS mainframe vengono copiati in Archiviazione BLOB di Azure tramite SFTP.
    3. JCL mainframe viene utilizzato per eseguire una soluzione Java personalizzata che sposta i dati tra il sistema mainframe e l'archiviazione BLOB SFTP.
  5. Utilizzando il file DBD, IMSql crea il database e le tabelle di destinazione mantenendo l'integrità referenziale necessaria.

  6. Dopo la creazione degli oggetti dati, IMSql carica i dati nella tabella corrispondente in ordine sequenziale.

  7. Tutti i dati IMS migrati sono ospitati in Istanza gestita di SQL di Azure.

  8. Il DB dell'applicazione è costituito dai dati grezzi del segmento per l'elaborazione IMS online e batch.

  9. Le viste di lettura e scrittura IMS sono costituite da dati di segmento che si espandono in base al layout del copybook.

Migrazione dei dati DB IMS utilizzando Raincode zBridge

Raincode zBridge facilita l'accesso ai dati non relazionali mainframe in Azure, inclusi i dati provenienti da segmenti IMS/DB. Questi dati diventano disponibili nei database SQL di Azure per applicazioni distribuite, creazione di report e scopi analitici.

I file di dati del segmento IMS vengono importati in zBridge con un copybook COBOL corrispondente o un PL/I incluso. I dati vengono visualizzati come righe SQL che convertono i tipi numerici mainframe in tipi SQL e convertono le stringhe in ASCII, se necessario. zBridge supporta anche strutture di dati complesse.

Componenti

Questa architettura è costituita dai servizi cloud di Azure seguenti. Le sezioni seguenti descrivono questi servizi e i relativi ruoli.

  • App per la logica di Azure è una piattaforma cloud in cui è possibile creare rapidamente potenti soluzioni di integrazione. Gli utenti mainframe hanno familiarità con i terminali 3270 e la connettività locale. Possono utilizzare il connettore IBM 3270 di Logic Apps per accedere ed eseguire le app mainframe IBM. Nel sistema migrato interagiscono con le applicazioni Azure tramite la rete Internet pubblica o una connessione privata implementata tramite Azure ExpressRoute. L'ID Microsoft Entra fornisce l'autenticazione.

  • Azure Rete virtuale è il blocco predefinito fondamentale per la rete privata in Azure. La rete virtuale consente una comunicazione più sicura tra molti tipi di risorse di Azure, ad esempio le macchine virtuali di Azure, e con Internet e le reti locali. La rete virtuale è simile a una rete tradizionale gestita nel proprio data center, ma offre i vantaggi dell'infrastruttura di Azure, ad esempio la scalabilità, la disponibilità e l'isolamento.

  • ExpressRoute estende le reti locali in Microsoft Cloud tramite una connessione privata facilitata da un provider di connettività. È possibile usare ExpressRoute per stabilire connessioni ai servizi cloud Microsoft come Azure e Microsoft 365.

  • I set di scalabilità di macchine virtuali di Azure offrono una scalabilità automatizzata e con bilanciamento del carico delle macchine virtuali che semplifica la gestione delle applicazioni e aumenta la disponibilità.

  • Istanza gestita di SQL fa parte del portfolio di servizi SQL di Azure. Si tratta di un'istanza SQL gestita, più sicura e up-todata nel cloud.

  • Microsoft Entra ID è un servizio di gestione delle identità e degli accessi aziendali basato sul cloud. L'accesso Single Sign-On e l'autenticazione a più fattori di Microsoft Entra consentono agli utenti di accedere alle risorse, contribuendo al contempo alla protezione dagli attacchi alla sicurezza informatica.

Le alternative

  • È possibile usare SQL Server in una macchina virtuale di Azure come alternativa a Istanza gestita di SQL. È consigliabile Istanza gestita di SQL in questa architettura a causa di vantaggi come la disponibilità elevata, l'integrazione senza problemi con vari servizi di Azure e la gestione delle patch di sicurezza e della manutenzione sottostanti.

  • È possibile usare un'architettura a macchina virtuale singola di Azure come alternativa a set di scalabilità di macchine virtuali. È possibile usare singole macchine virtuali per carichi di lavoro con esigenze di carico e prestazioni costanti e senza necessità di ridimensionamento. Questa architettura usa set di scalabilità di macchine virtuali per gestire i carichi di lavoro IMS tipici.

Dettagli dello scenario

I sistemi OLTP (Online Transaction Processing) mainframe possono elaborare milioni di transazioni per un gran numero di utenti. IBM IMS è un solido gestore di transazioni mainframe classico che le aziende utilizzano per l'elaborazione delle transazioni online. Ha due componenti principali: il componente IMS DC e il componente DBMS IMS DB gerarchico sottostante.

IMSql consente di ospitare carichi di lavoro basati su IMS in Azure o implementazioni distribuite locali basate su SQL Server. IMSql offre una soluzione olistica per l'esecuzione di un carico di lavoro IMS, inclusi i componenti dell'app, dei dati e del middleware. Può inserire le strutture di dati gerarchiche (database IMS) in un modello di dati relazionale in SQL Server, SQL Server in Macchine virtuali di Azure e Istanza gestita di SQL. Dispone di API integrate per le chiamate DL/I del programma applicativo IMS ed estende il livello di dati oltre il carico di lavoro gerarchico alle app native del cloud utilizzate per i dati relazionali.

Questa soluzione offre i seguenti vantaggi:

  • Modernizza l'infrastruttura e riduce i costi elevati, le limitazioni e la rigidità associati ai carichi di lavoro IMS mainframe monolitici.

  • Riduce il debito tecnico implementando soluzioni cloud-native e DevOps.

  • Invia i dati del database IMS alle applicazioni basate su cloud che non utilizzano un mainframe, comprese le applicazioni di intelligenza artificiale e analisi.

Casi d'uso potenziali

Questa soluzione potrebbe essere utile per:

  • Settori bancario, finanziario, assicurativo, governativo e della vendita al dettaglio che utilizzano Mainframe IMS. Molte di queste organizzazioni eseguono le applicazioni OLTP e batch primarie su IMS DB/DC.

  • Clienti mainframe IBM zSeries che devono migrare applicazioni mission-critical. Questi clienti vogliono mantenere la continuità con altre applicazioni locali ed evitare gli effetti di una riqualificazione completa.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che è possibile usare per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Well-Architected Framework.

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni assunti dai clienti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'affidabilità.

  • È possibile distribuire questa architettura OLTP in più aree e incorporare un livello di dati di replica geografica.

  • I servizi di database di Azure supportano la ridondanza della zona e possono eseguire il failover in un nodo secondario durante le interruzioni o per abilitare le attività di manutenzione.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'uso improprio dei dati e dei sistemi preziosi. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per la sicurezza.

  • ExpressRoute offre una connessione privata ed efficiente ad Azure dall'ambiente locale.

  • È possibile usare l'ID Microsoft Entra per autenticare le risorse di Azure. È possibile utilizzare il controllo degli accessi in base al ruolo per gestire le autorizzazioni.

  • Questa soluzione usa un gruppo di sicurezza di rete di Azure per gestire il traffico da e verso le risorse di Azure. Per altre informazioni, vedere Gruppi di sicurezza di rete.

  • Queste opzioni di sicurezza sono disponibili nei servizi di database di Azure:

    • Crittografia dei dati a riposo
    • Mascheratura dinamica dei dati
    • Dati Always Encrypted

Per indicazioni generali su come progettare soluzioni di dati altamente sicure, vedere Sicurezza per il motore di database di SQL Server e il database SQL di Azure.

Ottimizzazione dei costi

L'ottimizzazione dei costi è incentrata sui modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'ottimizzazione dei costi.

  • I set di scalabilità di macchine virtuali ottimizzano i costi riducendo al minimo il numero di istanze hardware non necessarie che eseguono l'applicazione quando la domanda è bassa.

  • Istanza gestita di SQL offre diversi piani tariffari, ad esempio utilizzo generico e business critical, per ottimizzare i costi in base all'utilizzo e alla criticità aziendale.

  • Le prenotazioni di Azure e il piano di risparmio di Azure per il calcolo con un contratto di uno o tre anni offrono risparmi significativi rispetto ai prezzi con pagamento in base al consumo. In molti casi, è possibile ridurre ulteriormente i costi implementando la flessibilità delle dimensioni delle istanze riservate.

  • Il vantaggio Azure Hybrid è un vantaggio di licenza che consente di ridurre significativamente i costi di esecuzione dei carichi di lavoro nel cloud. dal momento che consente di usare le licenze di Windows Server e SQL Server locali abilitate per Software Assurance in Azure.

Per stimare il costo di implementazione di questa soluzione, usare il calcolatore dei prezzi di Azure. Ecco una stima basata sui componenti di questa soluzione, su una scala ragionevole.

Efficienza delle prestazioni

L'efficienza delle prestazioni si riferisce alla capacità del carico di lavoro di ridimensionarsi per soddisfare in modo efficiente le esigenze degli utenti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'efficienza delle prestazioni.

  • I set di scalabilità di macchine virtuali garantiscono la disponibilità di un numero sufficiente di macchine virtuali per soddisfare le esigenze di elaborazione batch e online cruciali.

  • L'archiviazione BLOB è un sistema scalabile per l'archiviazione di backup, dati di archiviazione, file di dati secondari e altri oggetti digitali non strutturati.

  • Ottimizzazione guidata Motore di database analizza i database e fornisce suggerimenti che è possibile utilizzare per ottimizzare le prestazioni delle query. È possibile utilizzare Ottimizzazione guidata Motore di database per selezionare e creare un set ottimale di indici, viste indicizzate o partizioni di tabella.

  • La scalabilità è una delle caratteristiche più importanti del PaaS. Consente di aggiungere dinamicamente risorse al servizio quando necessario. È possibile usare il database SQL per modificare facilmente le risorse, ad esempio la potenza della CPU, la memoria, la velocità effettiva di input/output e l'archiviazione, allocate ai database. È possibile utilizzare Istanza gestita di SQL per aggiungere dinamicamente risorse al database con tempi di inattività minimi.

  • In-Memory OLTP è una tecnologia disponibile in SQL Server e nel database SQL per ottimizzare le prestazioni dell'elaborazione delle transazioni, l'inserimento dei dati, il caricamento dei dati e gli scenari di dati temporanei.

Contributori

Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.

Autori principali:

Altri collaboratori:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Per altre informazioni, contattare Azure Data Engineering - Mainframe Modernization.

Vedere l'architettura complementare:

Altre risorse correlate: