L’AS400 (poi I series, System I, infine I) da pochi mesi ha compiuto trent’anni, dato che l’hanno presentato il 21 giugno del 1988 (chissà se il fatto che fosse il solstizio d’estate è una pura coincidenza, oppure è stata una scelta oculata degli astrologi dell’IBM, i cui colleghi nell’antichità consigliavano ai condottieri il giorno favorevole per dare battaglia al nemico).

Per un calcolatore è un tempo inconcepibile, di gran lunga il più esteso della storia dell’informatica.

Le macchine della concorrenza che circolavano in quegli anni adesso si stanno disfacendo nelle discariche, oppure, se va bene, prendono la polvere in un museo del modernariato. Nessun modello ha avuto un’evoluzione minimamente paragonabile all’AS400.

Se poi facciamo “macchina indietro” e ci poniamo nel 1988, i calcolatori nati trent’anni prima (nel 1958) erano tutta un’altra cosa, occupavano un appartamento, si programmavano con linguaggi incomprensibili, in dialogo diretto con l’hardware.

Ma quali sono le cause di questa incredibile longevità, e dell’attuale stato di salute che non pare indicare segni di decrepitezza?

Naturalmente sono riconosciute da tutti le qualità di affidabilità e robustezza dell’AS400 (sia come hardware sia come sistema operativo), ma il fattore vincente è stata l’idea guida di realizzare moduli indipendenti e interfacce stabili fra software applicativo, software di base ed hardware. Ogni strato parla con gli altri in modo prefissato e stabile.

Ciò ha permesso un’evoluzione senza traumi: man mano veniva sostituito un “pezzo” di hardware o di software in modo indolore, rispettando le convenzioni di dialogo con l’esterno.

Di questa possibilità è stato fatto un uso incessante, rinnovando ed estendendo con continuità l’hardware e il software, in modo che il sistema fosse in grado di recepire i miglioramenti tecnologi e di adeguarsi alle novità del mondo esterno.

Da parte nostra, quali vantaggi ci ha dato l’utilizzo di questa piattaforma per realizzare i nostri prodotti?

Innanzitutto l’affidabilità di un sistema è un requisito essenziale anche in ambito puramente gestionale. Attualmente, con l’utilizzo invasivo di applicazioni MES e, più in generale, IOT, abbiamo oltrepassato il confine con le applicazioni critiche, e quindi l’affidabilità risulta ancor più necessaria.

Abbiamo inoltre approfittato pesantemente dell’incremento di prestazioni, ottenuto con nuove generazioni di processori sempre più veloci. Il passaggio più significativo è stata la sostituzione dei processori dalla tecnologia CISC a quella RISC, molto più prestanti, effettuato a metà degli anni Novanta, ed eseguito in modo indolore, senza alcuna modifica al software applicativo (il sistema riconosceva gli oggetti non aggiornati e li riadeguava automaticamente al primo utilizzo).

Una nostra applicazione, su una macchina di trent’anni fa, avrebbe tempi di esecuzione improponibili.

È il solito gioco: il sistema diventa più veloce e noi ne approfittiamo. Il risultato è, oltre al risparmio di tempo, l’implementazione di funzioni che in precedenza sarebbero risultate improponibili.

Un esempio classico è l’MRP, la pianificazione materiali, che, nello scorso millennio era solitamente una procedura notturna (non che durasse tutta la notte, ma talvolta poco ci mancava). Ora, in situazioni normali, ha una durata di qualche minuto. Naturalmente l’appetito vien mangiando, e quindi i suoi tempi si sono di nuovo (non di molto) allungati, perché abbiamo iniziato a fargli svolgere algoritmi che prima non avremmo neanche osato pensare.

Altrettanto naturalmente abbiamo approfittato della continua evoluzione e dell’arricchimento degli strumenti messi a disposizione, e della sua sempre più ampia apertura versi il resto del mondo.

Di frequente si rivolgeva all’AS400 l’accusa di essere un sistema serio ma chiuso e riservato, poco incline al dialogo. Oggi a nessuno viene più in mente di formulare questa critica: nella nostra sede di Erbusco l’apertura del cancello d’ingresso viene eseguita essenzialmente dal sistema centrale, acquisendo da una telecamera la targa dell’automezzo in entrata, confrontandola con le informazioni in suo possesso (targa riconosciuta e appartenente a un soggetto autorizzato) e, se passati i controlli, comandando l’apertura del cancello.

C’è inoltre una caratteristica “filosofica” che abbiamo totalmente fatto nostra: la scomposizione dei processi in sottoprocessi, e dei sottoprocessi in sottosottoprecessi fino ad arrivare al quark (che per ora pare sia indivisibile, stiamo aspettando notizie dalle stringhe).

Di questo comandamento abbiamo fatto un uso ossessivo, fin dai tempi in cui muovevamo i primi passi nella realizzazione del nostro software applicativo. Ci ha permesso di migliorare ed estendere sia i nostri strumenti di base, sia i nostri prodotti, modificando solo lo stretto necessario, senza introdurre ogni volta sconvolgimenti epocali. C’è sempre (per non essere troppo superbi diciamo che ci dovrebbe essere) un solo “pezzo di software” che esegue uno specifico compito, e che dialoga in modo prefissato con il resto del mondo. In questo modo si può modificare il suo comportamento interno senza toccare nient’altro.

L’esempio di massima scomposizione si è verificato nell’introduzione della grafica, prima Client-Server e successivamente web, mobile e smartphone. È stato, e continua ad essere, un lavoro di grande impegno, ma il motore sottostante non è stato cambiato di una virgola.

Ritornando all’esempio dell’MRP, l’algoritmo di calcolo è rimasto lo stesso, dato che è stata nostra cura di renderlo cieco (oltre che modulare). I miglioramenti sono indipendenti dall’ambiente grafico in cui viene eseguito e, inversamente, i miglioramenti all’ambiente grafico sono a loro volta indipendenti dal mondo sottostante, e recepiti dalle funzioni che li utilizzano.

In parole povere, questo significa ragionare per oggetti e per scomposizione di processi. L’AS400 lo sta facendo da trent’anni, noi da qualcheduno (non troppi) di meno, e, visto il suo ottimo stato di salute, confidiamo che anche il nostro non sia troppo malandato.

Paradossalmente questa lezione ci porterà a diventare, in futuro, indipendenti dalla piattaforma, dato che c’è soltanto uno strato sottilissimo che colloquia con lei, e tutto il resto, al di sopra, ne risulta indipendente.

L’AS400, come ultimo insegnamento, ci ha mostrato il modo di superarlo.

A chi è rimasta la voglia di immergersi un po’ nell’ambiente di quegli anni (praticamente nel paleozoico) , può leggere questo articolo pubblicato nel sito di FAQ400:

https://www.faq400.com/2018/06/02/la-nascita-di-as400-un-racconto-di-guido-galdini/