La modernizzazione COBOL si riferisce al processo di aggiornamento o trasformazione delle applicazioni COBOL, che tipicamente sono considerate sistemi legacy ma rimangono vitali per le operazioni aziendali. Il processo di modernizzazione delle applicazioni include l'adozione delle più recenti pratiche di sviluppo software, la riscrittura del codice COBOL in linguaggi di programmazione più moderni o la migrazione verso piattaforme più recenti.
Modernizzare i sistemi COBOL può aiutare a preservare la logica e la funzionalità aziendale mission-critical, migliorando la manutenibilità, migliorando l'interoperabilità con l'attuale complesso ambiente ibrido, aumentando la scalabilità e riducendo i costi operativi.
La modernizzazione del COBOL implica molto più che la semplice traduzione del codice COBOL in un linguaggio di programmazione più recente. Il sistema mainframe o la piattaforma distribuita in cui quel codice risiede e che esegue, oltre allo stack tecnologico con cui interagisce, devono essere attentamente considerati. Si tratta di un lavoro di ingegneria a livello di sistema che incorpora non solo la traduzione del codice, ma anche l'integrazione delle applicazioni, la riprogettazione dell'architettura dei dati, la sostituzione del tempo di esecuzione, l'integrità e la sicurezza dell'elaborazione delle transazioni, tra gli altri fattori.
Il common business-oriented language, o COBOL, è uno dei linguaggi più utilizzati per la programmazione dei mainframe. È progettato specificamente per esigenze di trattamento dei dati aziendali.
La prima versione di COBOL è stata lanciata nel 1960. Decenni dopo, è ancora presente in circa 250 miliardi di righe di codice utilizzate in produzione in settori diversi come i servizi finanziari, il governo, la logistica, la produzione e il retail.1 E con i sistemi mainframe che continuano a essere un pilastro per le aziende di tutto il mondo, il COBOL rimane rilevante.
Le applicazioni basate su COBOL sono note per le eccezionali funzionalità di gestione dei dati, per l'elaborazione dei file e per l'affidabilità e la stabilità delle prestazioni. Tuttavia, le aziende potrebbero prendere in considerazione applicazioni modernizzate per aumentare l'interoperabilità tra sistemi e fonti di dati, mantenere gli standard per i requisiti normativi o di conformità e garantire il successo a lungo termine con le risorse esistenti. Se gestito con una visione strategica, il processo di modernizzazione può offrire l'opportunità di rivedere codice e sistemi, fornire spiegazioni per il codice esistente, convalidare i requisiti e determinare workflow efficienti per il futuro.
Conformità e sicurezza
Interoperabilità
Manutenibilità
Il codice legacy di COBOL potrebbe non rispettare i controlli e le politiche attuali sulla privacy dei dati o non essere regolarmente distribuito con le ultime patch di sicurezza. Questo lo rende vulnerabile agli attacchi informatici e alle violazioni dei dati. Essendo più vecchi, questi sistemi potrebbero non essere in grado di tenere il passo con i sofisticati requisiti alla base delle normative in continua evoluzione.
Integrare applicazioni COBOL obsolete con infrastrutture contemporanee può essere un'impresa complessa. Questa mancanza di interoperabilità può rallentare l'innovazione e la crescita del business, portando le aziende a rimanere indietro rispetto alla concorrenza.
Le codebase COBOL possono risultare prolisse e ingombranti, con una documentazione del codice insufficiente o obsoleta. I componenti strettamente accoppiati rendono difficile il debug, mentre l'aggiunta di nuove caratteristiche o l'aggiornamento delle caratteristiche esistenti può risultare difficile. Di conseguenza, spesso ostacolano l'efficienza e la produttività dei team che lavorano con questi sistemi e si occupano della manutenzione.
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
Dopo aver intrapreso il percorso di modernizzazione COBOL, le aziende possono seguire una o più di queste strade:
Incapsulamento
Applicazione delle pratiche DevOps
Refactoring del codice
Questo approccio di modernizzazione converte i programmi COBOL monolitici in microservizi modulari. Le funzioni aziendali vengono incapsulate come microservizi e poi esposte come application programming interface (API).
L'incapsulamento permette una modernizzazione rapida poiché non richiede di cambiare il sistema COBOL sottostante. Di conseguenza, riduce le interruzioni integrandosi con architetture e workflow cloud-native.
Le organizzazioni possono configurare una pipeline di integrazione continua/distribuzione continua (CI/CD) per i programmi COBOL. La pipeline CI/CD comprende test e distribuzione automatizzati e repository centrali gestiti da sistemi di controllo delle versioni. Lavora inoltre a stretto contatto con l'incapsulamento, implementando i microservizi in ambienti containerizzati.
Questo workflow DevOps semplifica la distribuzione e la consegna delle applicazioni COBOL. Le aziende possono ridurre i cicli produttivi e velocizzare il rilascio di nuove caratteristiche ai clienti.
La migrazione è un'altra strategia per modernizzare i sistemi COBOL legacy. Generalmente comporta lo spostamento di alcuni workload mainframe su piattaforme di cloud computing come Amazon AWS o Microsoft Azure.
Questo processo di modernizzazione del mainframe richiede in genere alcune modifiche, come cambiare l'accesso ai dati, installare middleware o ricompilare applicazioni COBOL per eseguirle nei nuovi ambienti. I provider possono offrire anche servizi di modernizzazione per supportare il rehosting o il replatforming dei workload e fornire strumenti per il monitoraggio delle prestazioni e della sicurezza in tempo reale.
Il refactoring del codice ristruttura i programmi COBOL a livello di codice sorgente. Il suo obiettivo è ridurre il debito tecnico che spesso accompagna il codice legacy, che deve essere "ripagato" nel tempo attraverso una manutenzione continua. Le organizzazioni possono scegliere di ottimizzare il codice COBOL esistente o di trasformarlo in un linguaggio di codifica più recente come C#, Java o .NET.
L'ottimizzazione inizia con l'analisi del codice e un piano dettagliato per gestire le inefficienze, ridurre le dipendenze ed eliminare le ridondanze. Il piano può includere la standardizzazione delle strutture dati definite all'interno dei copybook, lo sviluppo di un design più modulare e la semplificazione della logica aziendale complessa.
La trasformazione di vaste codebase COBOL in un altro linguaggio di programmazione può richiedere molto tempo. Invece di una riscrittura manuale completa, i team di sviluppo possono utilizzare l'automazione (inclusi gli strumenti di conversione o traduzione di codice basati su AI) per risparmiare tempo e minimizzare lo sforzo di modernizzazione richiesto.
I progetti di modernizzazione tendono a essere imprese enormi e impegnative. Ecco alcuni consigli per un percorso più agevole:
Valutare e pianificare
Iniziare in piccolo
Scalare gradualmente
Eseguire test e documentare
Valutare le codebase COBOL è un primo passo fondamentale per verificare lo stato del codice e la sua complessità, individuare aree in cui la modernizzazione può avere un impatto significativo e determinare il miglior approccio da adottare. I team devono quindi creare un piano che delinei il processo di modernizzazione, inclusi ambito e tempistiche.
Iniziare in piccolo aiuta a gestire i rischi delle iniziative di modernizzazione. Ad esempio, le aziende possono inizialmente affrontare semplici attività di ottimizzazione o refactoring o cominciare a incapsulare o migrare funzioni aziendali minori. In questo modo, i componenti critici rimangono in funzione riducendo al minimo i tempi di inattività e limitando gli effetti di eventuali problemi che dovessero presentarsi.
Le organizzazioni possono poi espandersi verso moduli più cruciali dei sistemi COBOL, applicando le lezioni apprese dalle precedenti iterazioni. Questo permette loro di modernizzare applicazioni legacy a un ritmo costante e sostenibile e fornisce l'esperienza necessaria per gestire trasformazioni più complesse.
È necessario condurre test approfonditi per convalidare le caratteristiche e le funzionalità e assicurarsi che il sistema modernizzato continui a funzionare come previsto. Inoltre, qualsiasi modifica deve essere documentata, che si tratti di nuovo codice o configurazioni, definizioni API o workflow DevOps.
L'intelligenza artificiale può integrare il processo di modernizzazione del COBOL. Gli strumenti di AI generativa in particolare, si basano su modelli linguistici di grandi dimensioni (LLM) che sono stati addestrati o ottimizzati su linguaggi di programmazione come il COBOL, consentendo loro di analizzare il codice dei mainframe.
Tuttavia, l'AI non elimina la necessità dei mainframe, anzi la aumenta ulteriormente. Sebbene l'AI acceleri la modernizzazione del COBOL e colmi le lacune di competenze con il pensionamento degli sviluppatori COBOL, i mainframe rimangono essenziali come piattaforme che dimostrano affidabilità, scalabilità e resilienza transazionale nonostante tutti i miglioramenti apportati dall'AI. Le scelte strategiche fatte nell'approccio alla modernizzazione possono determinare la fluidità del processo e il successo dei programmi.
Ecco alcune attività di modernizzazione in cui AI può aiutare:
Comprensione e spiegazione del codice
Generazione e refactoring del codice
Conversione e ottimizzazione del codice
Generazione di test e documentazione del codice
La piattaforma di applicazione di Swimm, ad esempio, combina l'analisi statica con l'LLM per estrarre le Business Rules e identificare dipendenze e flussi variabili per ogni elemento negli schermi utente COBOL. Nel frattempo, IBM® watsonx Code Assistant for Z impiega agenti AI per comprendere e creare spiegazioni in linguaggio naturale del codice mainframe e della documentazione tecnica.
Alcune app supportate dall'AI dispongono di interfacce chatbot per generare nuovo codice basato su prompt in linguaggio naturale. Altri si fondono con gli IDE (ambienti di sviluppo integrati) per produrre suggerimenti di codice inline in tempo reale. IBM watsonx Code Assistant for Z va oltre, ristrutturando automaticamente le applicazioni COBOL in servizi aziendali modulari.
I sistemi multi-agente, come quello sviluppato da Persistent Systems, utilizzano più Agenti AI per trasformare il codice COBOL in un linguaggio di programmazione moderno come Java. Un agente di codifica si occupa della traduzione, mentre un agente di revisione controlla il codice convertito per individuare errori od opportunità di ottimizzazione e perfezionamento.
Gli strumenti basati su AI possono generare automaticamente dei test per confrontare l'equivalenza semantica del nuovo codice con il codice COBOL originale. Possono anche produrre commenti in linea per documentare le funzioni di determinati frammenti di codice.
Come per qualsiasi applicazione di AI, i team devono comunque esercitarsi con cautela, verificando l'accuratezza degli output e testando qualsiasi codice generato o correzioni o modifiche suggerite.
IBM zSystems è una famiglia hardware z/Architecture moderno che utilizza i software z/OS, Linux, z/VSE, z/TPF, z/VM e zSystems.
Costruiti per gestire workload mission-critical mantenendo la sicurezza, l'affidabilità e il controllo dell'intera infrastruttura IT.
Accelera la trasformazione digitale modernizzando le tue applicazioni mainframe con IBM.
1. Special Report: COBOL Survey Results Prove Pervasiveness, Value and a Bright Future, TechChannel, 11 ottobre 2021