Modernizzare le applicazioni COBOL anche quando si è persa la conoscenza

ott 6, 2023 | Application Modernization Modernizzare le applicazioni COBOL anche quando si è persa la conoscenza

Le applicazioni legacy in COBOL sono ancora diffusamente usate nelle organizzazioni pubbliche e private di tutto il mondo, in particolare nel settore bancario e governativo. 

Il COBOL è stato inizialmente sviluppato nel 1959 come linguaggio di programmazione funzionante quasi esclusivamente su grandi computer mainframe. Comunemente usato per l’elaborazione basata sulle transazioni, continua ad alimentare molti sistemi finanziari e amministrativi utilizzati dalle banche e dal settore pubblico.  

Con riferimento solo al settore bancario: circa il 43% dei sistemi bancari sono scritti in COBOL, circa l’80% delle transazioni di persona avvengono utilizzando il linguaggio COBOL; circa il 95% delle operazioni ATM si basano su codice COBOL. (http://fingfx.thomsonreuters.com/gfx/rngs/USA-BANKS-COBOL/010040KH18J/index.html

La capacità del COBOL di elaborare grandi moli di dati e di eseguire task business-critical in maniera efficiente ha permesso alle applicazioni sviluppate in tale linguaggio di arrivare fino ai nostri giorni. Non si può dire altrettanto delle competenze in questo linguaggio che stanno via via esaurendosi ed è sempre più difficile trovare esperti che possano gestire la manutenzione di questo tipo di applicazioni nonostante esse costituiscono ancora una componente strategica in molti sistemi. 

Le nuove sfide della digitalizzazione fanno si che molte amministrazioni pubbliche e private si trovino nella necessità di dover modernizzare rapidamente le proprie applicazioni legacy. La trasformazione digitale è un processo da accelerare e le applicazioni legacy non possono costituire un ostacolo.  

La strategia non può essere solo quella di operare da subito una completa sostituzione di queste applicazioni, perché oltre ad essere di sicuro un approccio anti economico potrebbe mettere a rischio i dati e i processi delle organizzazioni stesse. La modernizzazione delle applicazioni dovrebbe invece avvenire con modalità diverse e in maniera graduale. In sintesi, modernizzare le applicazioni legacy significa scegliere tra riprogettare, ricostruire o sostituire le applicazioni “storiche”. 

D’altra parte, la crisi delle competenze non riguarda esclusivamente la capacità di programmare in COBOL ma anche e soprattutto la conoscenza delle applicazioni legacy sviluppate originariamente decenni fa a cui si sono aggiunte stratificazioni di modifiche e di cui si è persa documentazione. 

Vediamo quali sono i passi fondamentali per modernizzare un’applicazione COBOL: 

  • Valutare l'architettura: prima di iniziare qualsiasi processo di modernizzazione, è importante valutare l'architettura esistente dell'applicazione COBOL, identificare le aree che richiedono miglioramenti e definire gli obiettivi della modernizzazione.
  • Decomporre il codice: l'applicazione COBOL potrebbe essere un unico monolite, quindi una delle prime cose da fare è decomporre il codice in moduli più piccoli e ben strutturati. Ciò semplificherà il processo di modernizzazione e consentirà di riusare i moduli esistenti. 
  • Aggiornare l'interfaccia utente: Se l'applicazione COBOL ha un'interfaccia utente obsoleta, è possibile considerare l'aggiornamento all'utilizzo di tecnologie web o grafiche più moderne. Ciò può comportare la trasformazione dell'interfaccia utente esistente o l'integrazione con nuove tecnologie come Angular o React.
  • Integrare con servizi esterni: Se l'applicazione COBOL deve interagire con altri sistemi o servizi esterni, è possibile considerare l'aggiornamento delle interfacce di integrazione utilizzando tecnologie come RESTful API o servizi web SOAP.
  • Migrazione verso una piattaforma moderna: In alcuni casi, potrebbe essere vantaggioso migrare l'applicazione COBOL su una piattaforma moderna. Ciò potrebbe includere l'utilizzo di un ambiente di esecuzione COBOL più recente o la trasposizione del codice in un linguaggio più moderno come Java o C#. Tuttavia, questa è una decisione che richiede un'attenta valutazione dei costi, dei benefici e dei rischi associati 

Ovviamente prima di intraprendere qualsiasi tipo di modernizzazione è importante avere una visione dettagliata della struttura del codice e delle dipendenze. In questa fase è opportuno disporre di un analizzatore di software come CAST Imaging che con la sua Software Intelligence permette di esplorare l’architettura esistente in modo dettagliato e completo e di comprendere le interazioni e le dipendenze tra i componenti. 

Attraverso il reverse engineering di CAST Imaging è possibile: 

  • Visualizzare i Layers e le loro interazioni
    CAST Imaging: visaulizzazione dei Layer e le loro interazioni
  •  Verificare se l’accesso alle tabelle avviene direttamente dai programmi o tramite procedure  CAST Imaging: verifica accesso alle tabelle
  •  Identificare le dipendenze del database

CAST Imaging: identificazione delle dipendenze del database

Inoltre, è possibile approfondire la ricerca per vedere le colonne delle tabelle, le proprietà degli oggetti del database o il codice sorgente. 

  • Esplorare in maniera completa le transazioni end-to-end dell'applicazione, dal punto di ingresso al punto di arrivo, per determinare gli effetti delle modifiche da apportare 

    CAST Imaging: esplorazioni delle transazioni end-to-end

 Si può navigare in dettaglio per vedere tutti gli oggetti associati alla transazione selezionata. 

  • Isolare i componenti fortemente accoppiati nonché individuare i candidati ai microservizi per progettare un refactoring graduale dell’applicazione monolitica  
    CAST Imaging: individuazione dei componenti fortemente accoppiati

Per ulteriori informazioni su come velocizzare il processo di modernizzazione e refactoring e su tutto ciò che offre la soluzione CAST Imaging consultare https://www.castsoftware.it/imaging dove è possibile scaricare le seguenti guide pratiche: