4Alla fine dell’attività di perforazione i pacchi di schede erano suddivisi in gruppi omogenei per
l’elaborazione. Ovviamente i dati non erano in nessun ordine particolare, poiché i documenti dai quali erano
estratti erano caricati nell’ordine temporale in cui arrivavano; se i programmi di elaborazione richiedevano di
dover ricevere i dati in un qualche ordine particolare era quindi necessario effettuare un’operazione di
riordino degli stessi. Tutte le schede perforate destinate all’elaborazione dovevano quindi essere portate alle
macchine selezionatrici: queste macchine aveva una tramoggia di alimentazione e una serie di caselle di uscita,
in modo da inviare la scheda alla casella corrispondente ad una delle 12 perforazioni possibili oppure
all’apposita casella di scarto in caso di assenza di perforazioni.
Per riordinare le schede era quindi necessario decidere la colonna sulla quale ordinare ed eseguire la
selezione, e se era necessario riordinare su un’altra colonna, per ognuno dei 13 pacchi si doveva eseguire il
riordino sulla colonna successiva e così via. Tenendo conto che le schede spesso non erano in ottime
condizioni, c’era sempre la possibilità che la macchina s’inceppasse distruggendo una o più schede: in questo
caso se possibile si doveva provvedere a far perforare nuovamente la scheda distrutta prima di continuare il
riordino.
Il pacco di schede, una volta pronto per l’elaborazione, era inviato al lettore di schede, insieme con il
pacco di schede che conteneva il programma da eseguire. Il programma da eseguire era codificato una riga di
istruzione per ogni scheda, con la numerazione delle righe in coda all’istruzione, e se disgraziatamente il pacco
di schede cadeva, occorreva rimetterlo in ordine nella selezionatrice.
Gli operatori provvedevano a preparare i lettori di schede carichi e finalmente s’iniziava l’elaborazione
vera e propria. I lettori rilevavano la codifica della scheda tramite dei contatti elettrici a spazzola che
attraversavano i buchi della perforazione senza fermare le schede in transito e viaggiavano a circa 500 schede il
minuto; i perforatori invece, dovendo effettuare la punzonatura e la stampa meccanicamente, erano costretti a
fermare per un attimo le schede sotto i punzoni per ogni colonna da codificare, producendo le schede a circa
160 colonne il secondo - in altre parole 120 schede il minuto salvo inceppamenti – ed infine le schede
andavano recuperate dalle macchine e riposte nei raccoglitori: solo allora era possibile iniziare una nuova
elaborazione.
Attorno al 1970, con l’introduzione dei lettori di nastri magnetici è iniziato il declino della perforazione
manuale delle schede: le stazioni di perforazione si erano trasformate da meccaniche in elettroniche e quindi
non producevano più fisicamente le schede perforate, ma l’immissione dei dati era effettuata tramite tastiera ed
un Visore a Led, permettendo quindi la correzione degli errori prima della conferma di invio in memoria. I
dati erano quindi scaricati su Nastro magnetico: un nastro conteneva circa due milioni di schede e se anche
cadeva non era necessario riordinare le schede! I modelli di punta scrivevano 6250 Byte per pollice di nastro a
1,2 Megabit il secondo e sfruttando gli algoritmi di riordino per fusione potevano ordinare i dati utilizzando
tre unità contemporaneamente.
5Nel caso degli Inventari Annuali per il Bilancio d’Esercizio il lasso di tempo tra preparazione, esecuzione,
recupero dei dati, caricamento, elaborazione, controllo e chiusura finale era praticamente di un Semestre!
S’iniziava con la stampa dei tabulati di Conta e con la perforazione delle schede con l’assortimento della
merce disponibile nei 300 Negozi della catena di vendita: i Tabulati di Conta erano suddivisi per Zone di
Magazzinaggio delle Merci e per tipologia delle stesse, mentre le schede portavano perforata e stampata
l’indicazione della “referenza” della merce, in pratica il codice che ne descrive Reparto (es. Tessile), Linea (es.
Pantaloni Uomo) e Codice (es. Gabardine Taglia 40) ed erano in media 20000 per negozio. Si arrivava a circa
sei milioni di schede da preparare: ad un tasso di 120 schede il minuto occorrevano 50000 minuti circa, in
altre parole circa 800 ore-macchina ininterrotte e quindi 100 giorni-macchina di lavorazione. S’iniziava quindi
ad Ottobre a produrre schede ed i dati non erano ovviamente aggiornati per il momento in cui, a fine
Gennaio dopo i saldi di Stagione, si sarebbe effettuata la Conta Inventariale: era quindi necessario stampare
anche un certo numero di schede numerate ma senza referenza per censire le merci di futuro assortimento. La
Conta era effettuata durante un Week-end di chiusura al pubblico, contando fisicamente tutte le merci presenti
sui banchi, nelle Riserve di Vendita e nel Magazzino e annerendo a matita le apposite caselle delle schede come
se fossero state punzonate. Gli errori erano sempre in agguato e la correzione della scheda con la gomma
lasciava un inevitabile alone, con il risultato il più delle volte di essere scartata dal lettore. In più il lettore di
schede ottico oltre alla perforazione doveva leggere la zona compilata a matita tramite dei foto-rivelatori,
riducendo quindi la velocità da 500 a 250 schede il minuto.
Il caricamento delle schede con i dati di Conta richiedeva quindi circa 50 giorni-macchina. A questi si
doveva aggiungere l’attività di controllo e validazione formale dei dati da parte dell’Ispettorato Aziendale: era
molto facile scrivere 11000 pezzi invece di 11, o viceversa, generando quindi valorizzazioni o svalorizzazioni
palesemente errate, che dovevano quindi essere confrontate a mano con i tabulati di Conta o addirittura
nuovamente richieste al Negozio per conferma. Si riusciva a terminare l’attività a fine Marzo se tutto filava
liscio.
Risulta evidente quinto lungo fosse il lasso di tempo che era necessario attendere dal momento in cui i
dati erano prodotti negli uffici al momento in cui le elaborazioni terminavano e producevano i risultati: la
pianificazione delle attività era calcolata in settimane o addirittura mesi!
L’introduzione dei dischi a cavallo del 1980 ha decretato il colpo di grazia alle schede e la struttura attuale
dei centri di calcolo informatici. I dati a lungo termine di conservazione erano comunque salvati in archivi su
nastro, ma potevano essere letti in breve tempo: in sostanza il tempo che occorreva ad un Operatore per
leggere la richiesta di montaggio del nastro sul Video di Consolle, andare in Nastroteca a cercare il nastro (i
nastri erano etichettati con una numerazione progressiva a bande colorate per facilitare la rilevazione di un
nastro eventualmente archiviato fuori sequenza nella rastrelliera della Nastroteca) e montarlo sull’unità.
6Verso il 1985 hanno fatto la comparsa le prime linee di trasmissione dati: tramite modem in banda base su
linea commutata s’iniziarono le trasmissioni a 1200 bit per secondo! Ciò permise di inviare e ricevere i dati
direttamente tra Calcolatori, anche se i tempi di trasmissione erano Biblici: 1200 bit per secondo significa 120
caratteri ovvero l’equivalente di una scheda perforata e mezza il secondo. Quindi le 20000 schede
dell’inventario avrebbero occupato la linea per 230 ore! In realtà si scelse di utilizzare la linea solo per
trasferire i dati serali di venduto, le richieste di Rifornimento Merce e le variazioni dei dati delle Merci.
Il caricamento di partenza dei dati e le variazioni sostanziose furono effettuate grazie all’invenzione dei
Floppy-Disk da 11 pollici. Si era quindi giunti ad avere i dati giornalieri, anche se riassunti per motivi di
lentezza delle linee. I dati di dettaglio arrivavano sì in ritardo via posta, però già in formato digitale su Floppy
e quindi rapidamente caricabili. Il grosso valore aggiunto era però dato dal fatto che il caricamento era
effettuato tramite dei terminali Video collegati al calcolatore del negozio e ciò permetteva una validazione
grossolana dei dati evitando errori madornali.
I tempi di Schedulazione erano ridotti al tempo tecnico di stampa dei tabulati di conta, che erano quindi
utilizzati per confrontare i valori stimati di giacenza con i valori contati; i dati erano inseriti in locale ed ivi
validati immediatamente, permettendo le verifiche del caso in locale. Lo scarico su Floppy-Disk, l’invio in
centrale ed il caricamento erano quindi molto veloci. Si era passati da sei mesi di pianificazione delle attività a
circa due mesi e quindi a dati più accurati.
Le metodolologie attuali prevedono Workstation con Basi di dati replicate nei Negozi, sincronizzate due
volte il giorno prima e dopo l’elaborazione notturna di consolidamento dei dati di venduto, l’utilizzo della
barriera casse continuamente sincronizzata con il Front-Office di gestione dei prezzi e dello Stock di
Magazzino grazie all’utilizzo dei lettori di codici a barre. I responsabili di Reparto dispongono di Terminali
per l’interrogazione dello stato degli Ordini e per l’adeguamento delle Rotture e delle Avarie. Se le procedure
di controllo sono correttamente applicate, lo Stock di Magazzino è continuamente aggiornato giorno per
giorno, permettendo di avere i dati Inventariali sincronizzati il giorno stesso dell’Inventario. I dati previsti di
Stock sono scaricati suddivisi per Area da Inventariare su apposite Pistole Ottiche dotate di Lettore di Codice a
Barre, Display e mini tastiera durante la giornata dell’Inventario: è sufficiente sparare sul codice della merce
per averne immediatamente la Giacenza previsto, eventualmente correggere e quindi confermare il dato.
Esaurita la Zona da Inventariare i dati sono immediatamente scaricati e sono caricati i dati per la nuova Zona.
L’inventario è eseguito tutto nella stessa giornata se la dimensione del Negozio lo consente, o comunque i
dati disponibili sono inviati la sera stessa in centrale via Linee di Telecomunicazione per la validazione. La
Pianificazione dell’attività di inventario è praticamente arrivata ad essere contenuta in una giornata!
L’esposizione precedente serviva a dare un’idea del lasso di tempo che era necessario attendere dal
momento in cui i dati erano prodotti negli uffici al momento in cui le elaborazioni terminavano e
producevano i risultati.
7
8ANALISI INFORMALE DELLE PRINCIPALI PROBLEMATICHE
L’evoluzione delle Reti di Telecomunicazioni ha reso possibile l’invio dei dati praticamente in tempo
reale da qualsiasi Sito Aziendale periferico a qualsiasi altro. Ciò permette, in linea di principio, di effettuare
elaborazioni sincronizzate e distribuite in modo automatico ed al momento più adatto, moltiplicando la
possibilità di elaborazione dei dati. “In linea di principio” deve essere intenso nel senso che la complessità del
Sistema che è creato dalle elaborazioni è tale da non permetterne il controllo manuale con la velocità e
l’affidabilità necessarie ad evitare qualsiasi errore operativo. Si rende quindi necessario un Sistema di
Schedulazione atto a modellare la Rete delle Elaborazioni.
Un esempio della complessità raggiungibile da una sola Schedulazione è evidenziata nelle pagine
seguenti: lo schema a blocchi in figura 1.1 delinea le relazioni di flusso macroscopiche tra le Sotto-
Schedulazioni appartenenti alla stessa Schedulazione e le altre Schedulazioni presenti.
Figura 1.1 – Schema a Blocchi Schedulazione Anagrafica
La Schedulazione visualizzata prosegue direttamente o indirettamente in altre Schedulazioni
susseguenti e si sincronizza con varie Schedulazioni parallele oltre a produrre archivi da trasmettere a sistemi
remoti, nei quali servono a sincronizzare altre Schedulazioni.
9Le Schedulazioni devono essere eseguite su Sistemi o su Gruppi di Sistemi ben determinati. Si rendono
quindi necessari dei meccanismi che permettano di indirizzare le Schedulazioni sul Sistema che le deve
eseguire, che permettano di definire le relazioni di precedenza tra le Schedulazioni e di sincronizzare invii e
ricezioni d’Archivi anche tra Sistemi Geograficamente Distribuiti.
Figura 1.2 – SottoSchedulazione A10001
10
Figura 1.3 – SottoSchedulazione a10002
Le Schedulazioni parallele, (come in Figura 1.3) possono portare ad un eccessivo carico d’Elaborazioni
sul Sistema sul quale devono essere eseguite se non si ha a disposizione un meccanismo di gestione del loro
accodamento, così come deve essere possibile la sequenzializzazione d’Elaborazioni mutuamente esclusive
provenienti da Schedulazioni indipendenti. Si rendono quindi necessari meccanismi che simulino la gestione
delle code sia parziali sia totali.
11
Figura 1.4 – SottoSchedulazioni A10003 e A10004
Nella maggior parte dei casi le Schedulazioni sono ripetute giornalmente ad orari prestabiliti, ma si
devono comportare in maniera differente secondo i Calendari che le pilotano, e devono quindi essere
condizionate al buon esito della stessa elaborazione precedente ed alla presenza o meno di particolari
Schedulazioni. E quindi necessario un meccanismo che tenga conto della storia del sistema e che abbia accesso
alla date e ora in tempo reale.
Le Schedulazioni devono poter essere interrotte ad orari prestabiliti nel caso si stiano protraendo troppo a
lungo: il concetto di “protrarsi troppo a lungo” è decisamente soggettivo se preso in senso assoluto, ma ha
ragione di essere in senso relativo. Ovvero: se una particolare Elaborazione produce le Bolle di carico per i
vagoni ferroviari ed il tempo tecnico per il carico degli stessi è di tre ore, l’elaborazione deve produrre i dati
almeno tre ore prima dell’orario di partenza del treno. In caso contrario il treno partirebbe senza le merci!
12
Quindi è ragionevole prevedere di poter mandare un messaggio di “terminazione pilotata” all’elaborazione
in corso ad un orario prestabilito. Deve essere previsto un meccanismo che permetta di definire un tempo
assoluto o relativo, trascorso il quale prendere i provvedimenti del caso nei riguardi dell’Elaborazione.
Esistono elaborazioni a richiesta che estraggono dati di controllo: un’errata specifica dell’insieme di dati
da estrarre può portare ad elaborazioni inutili, vuoi per la mole ingestibile dei dati restituiti che per il tempo
biblico di produzione degli stessi. Deve essere previsto un meccanismo che permetta di definire un tempo
medio di durata dell’elaborazione (eventualmente desumendolo direttamente dalle elaborazioni, oppure
prevedendolo dalle simulazioni eseguite in test), trascorso il quale prendere i provvedimenti del caso nei
riguardi dell’Elaborazione.
Alcune Elaborazione devono poter partire ad un certo orario limite, anche se le elaborazione precedenti
dalle quali dipendono non sono ancora terminate. Deve essere previsto un meccanismo che permetta di
definire un Orario Limite di attesa dell’elaborazione (eventualmente desumendolo direttamente dalle
elaborazioni, oppure prevedendolo dalle simulazioni eseguite in test), trascorso il quale far partire comunque
l’Elaborazione.
Le Elaborazioni possono terminare in errore, ed in tutti i sistemi è possibile controllare il “codice di
uscita” prodotto dal sistema operativo. Alcune Elaborazione sono considerate comunque a buon fine per
codici di errore in un determinato intervallo di valori. Deve comunque essere possibile il test del “codice di
uscita” in modo da continuare la sequenza di Schedulazione, attivare un’Elaborazione di correzione della
situazione anomala oppure interrompere la sequenza.