Caratteristiche e funzionamento dei Legacy system e Applicazioni Legacy

Caratteristiche e funzionamento dei Legacy system e Applicazioni Legacy

Si definisce Legacy system un sistema informativo di valore ereditato dal passato. I concetti fondamentali sono appunto “di valore” (cioè critico per il business dell’organizzazione) e “ereditato dal passato” (generalmente 5 anni o più, ma comunque già operativo nel momento in cui lo si prende in considerazione).

Altre definizioni di sistema legacy sono le seguenti:

  1. “Grandi sistemi software con cui non si vorrebbe avere a che fare ma che sono vitali per l’organizzazione”,
  2. “Ogni applicazione in produzione”
  3. “Ogni sistema informativo che resiste alle modifiche ed evoluzioni necessarie per tener dietro ai nuovi e mutevoli requisisti di business dell’organizzazione”.


Le caratteristiche fondamentali di un Legacy System sono:

  • È un sistema fondamentale per l’operatività dell’organizzazione; inoltre spesso è pesantemente utilizzato essendo mission-critical e dovendo quindi rimanere generalmente operativo al 100% e 24 ore su 24;
  • Su di esso l’organizzazione ha pesantemente investito nel corso degli anni, e quindi non può essere semplicemente accantonato così com’è;
  • È composto da moltissime righe di codice (anche centinaia di migliaia).
  • Spesso il suo primo nucleo risale ad oltre un decennio fa ed è quindi progettato secondo vecchie concezioni;
  • È scritto in linguaggio di vecchia generazione;
  • È supportato da un DBMS obsoleto (ad es. database IMS Information Management System di IBM), sempre che esista un DBMS e non si faccia ricorso al file system (file VSAM Virtual Sequential Access Method);
  • Le interfacce utente sono quelle a caratteri (terminali 3270 o 5250) e non grafiche,
  • Le applicazioni che lo compongono sono prevalentemente monolitiche, ognuna è stato progettata e realizzata indipendentemente dal resto e quindi il sistema presenta un’integrazione prevalentemente verticale. Strutturalmente tale software applicativo è tipicamente suddiviso in transazioni (una funzione utente scritta in COBOL) usabili contemporaneamente da più utenti;
  • Non è ben documentato ed è difficile da comprendere, in quanto, quasi sempre, la documentazione non è aggiornata con le modifiche che sono state via via apportate al software;
  • Il sistema può essere considerato come un repository di anni di esperienza e pratiche aziendali non esplicitamente documentate, ma presenti e “immerse” nel codice stesso del legacy;

Dal punto di vista del trattamento, le applicazioni Legacy possono essere classificate come:

  1. Altamente decomponibili, sono ben strutturati e presentano alcune caratteristiche fondamentali:
    1. I componenti applicativi sono separabili in logica di presentazione, logica applicativa e logica d’accesso ai dati, cioè il software è decomposto in tre livelli logici.
    2. I moduli applicativi sono indipendenti tra di loro (non ci sono interdipendenze gerarchiche).
    3. I moduli applicativi hanno interfacce ben definite con i servizi di database, quelli di presentazione e le altre applicazioni.
  2. Data decomponibili, sono sistemi cosiddetti “semistrutturati” con le seguenti caratteri stiche fondamentali:
    1. I componenti applicativi sono separabili in due livelli: i servizi d’accesso ai dati e quelli di presentazione e logica applicativa (fusi in un unico blocco).
    2. I moduli applicativi hanno interfacce ben definite verso le altre applicazioni. In questi sistemi è possibile accedere direttamente ai dati, ma non alla logica applicativa.
  3. Program decomponibili, sono anch’essi “semistrutturati” con le seguenti caratteri stiche:
    1. I componenti applicativi sono separabili in due livelli: i servizi di presentazione e quelli d’accesso ai dati e logica applicativa (fusi in un unico blocco).
    2. I moduli applicativi hanno interfacce ben definite verso le altre applicazioni.
      In questi sistemi non è possibile accedere direttamente ai dati, ma è necessario invocare delle funzioni predefinite (tipicamente una transazione). In questa categoria rientrano la maggior parte delle applicazioni legacy.
  4. Monolitici (non strutturati), sono sistemi in cui tutti i componenti appaiono come un unico blocco in cui tutti i tre livelli logici sono fusi insieme. Generalmente a questi sistemi si può accedere solo attraverso l’invocazione da terminale.

Molte applicazioni in realtà hanno un’architettura che è una combinazione di queste quattro. Dal punto di vista della facilità di trattamento, i Legacy System possono essere distinti in:

  • Ostili: sono quelli che non permettono la possibilità di interfacciamento con l’esterno.
  • Trattabili: l’interfacciamento con altri sistemi risulta possibile con un certo sforzo di programmazione e tecnologie ad hoc.
  • Amichevoli: l’interfacciamento con l’esterno è facilmente attuabile.

È evidente che i sistemi del primo tipo sono amichevoli, quelli Data/Program decomponibili risultano trattabili, mentre quelli dell’ultimo tipo rimangono ostili.

Le diverse categorie di Legacy System
Le diverse categorie di Legacy System

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *