Millennium Bug -...

4
Millennium Bug: poco tempo per correre ai ripari Affrontare Y2K sembra semplice: basta portare le codifiche degli anni da due a quattro cifre. Ma questa procedura richiede più tempo di quanto ne resti a disposizione di Peter de Jager PICCOLA RASSEGNA DEGLI ERRORI DI FINE MILLENNIO La compagnia di assicurazioni Unum Life ha cancellato 700 record da un database che registra lo stato delle licenze degli agenti perché un computer ha erroneamente interpretato 00 come 1900. Man/ Bandar, centenaria, ha ricevuto il modulo d'iscrizione alla scuola materna di Winona, nel Minnesota. Nel 1993,/a Boeing riscontrò errori in un sistema che trattava ordinazioni con tempi di consegna di sette anni. Dulcis in fundo, appena un paio di mesi fai! test disposto sul depuratore di San Fernando, a Los Angeles, per mettere alla prova i sistemi di emergenza in vista del temuto black-out del 31 dicembre, si è concluso con un disastro: una parte della città è stata sommersa dall'acqua putrida delle fognature. U naspiegazione delle radici psicologi- che da cui è nato il problema infor- matico dell'anno 2000 si può sco- vare in un posto sorprendente: Alice nel Pae- se delle meraviglie di Lewis Carroll. Nel fa- mosissimo classico per bambini, il Cappel- laio matto domanda: «Il tuo orologio segna anche l'anno?» e Alice replica: «Naturalmen- te no, perché l'anno rimane lo stesso così a lungo...». Molte sono le ragioni per cui i programma- tori, me compreso, scelsero di rappresentare gli anni utilizzando solo due cifre, 55 per il 1955 e 23/10/76 per il 23 ottobre 1976, per esempio. Pochi decenni fa lo «spazio» digitale scarseggiava: la memoria dei computer era costosa e le schede perforate erano larghe so- lo 80 colonne. Si sosteneva anche che le abbreviazioni consentivano di ridurre il tempo di immissio- ne dei dati da tastiera. Naturalmente ciò era favorito dall'assenza di standard, e molti di noi credevano (sbagliando) che il software che stavamo scrivendo avrebbe smesso di es- sere usato molto prima del nuovo millennio. Grazie alla semplice inerzia e a una logica si- mile a quella dei personaggi di Carroll (per- ché registrare più di due cifre se il secolo ri- mane lo stesso così a lungo?), questa abitudi- ne è continuata anche quando era ormai pas- sato il tempo in cui la memoria dei computer e il vincolo degli alti costi legittimavano una simile scelta. Qual è il risultato? I computer ora sono pieni di rappresentazioni di date spaventosa- mente ambigue. Detto semplicemente: come può una macchina digitale sapere se 00 signi- fica 1900 oppure 2000? Questa confusione ha già comportato svariati problemi. Fin dal 1993, la Boeing segnalò errori in una propria applicazione che trattava ordinazioni con tempi di consegna di sette anni. Un sistema della Amway Corporation, multinazionale produttrice di saponi e altri articoli per l'igie- ne personale, respinse prodotti che per errore erano stati considerati vecchi di un secolo. E alcuni registratori di cassa computerizzati so- no andati in tilt quando i clienti hanno cerca- to di utilizzare carte di credito con data di scadenza 00. In realtà, secondo uno studio condotto un anno fa su varie aziende, più del 40 per cento delle organizzazioni ha già avu- to qualche tipo di inconveniente legato al- l'anno 2000 o, per usare una sigla ormai di- venuta famosa, al Y2K. Il cuore del problema Y2K Ma che cosa, esattamente, sta causando questi problemi? Un esempio eloquente è quello dei risparmi versati su un deposito nel 1999 e ritirati nel 2000. Se il programma presso la banca calcola gli interessi maturati cominciando a sottrarre 99 da 00, il compu- ter crederà che il denaro sia stato depositato per 99 anni! Si consideri un trabocchetto più subdolo: una compagnia di assicurazioni che deve pe- riodicamente cercare le polizze rimaste Matti- ve per almeno cinque anni in modo da cancel- larle dal proprio database. Per individuare le polizze inattive, la compagnia lancia un'appli- cazione basata su una data memorizzata co- me ULTIMO-ACCESSO, che contiene la registra- zione delle date più recenti in cui i clienti han- no compiuto una qualsiasi transazione. Quando il programma prende in esame il valore di ULTIMO-ACCESSO, aggiunge cinque alle due cifre dell'anno. Se il risultato è mino- re dell'anno in corso, cancella il record. Di conseguenza, se ULTIMO-ACCESSO vale 93, 93 + 5 <99, e la polizza viene correttamente con- siderata inattiva. Tuttavia, se ULTIMO-ACCES- SO vale 96, si verifica un errore. Se la codifica è a due cifre e tutto ciò che eccede viene tron- cato, 96 + 5 diventa 01, che è minore di 99. Il risultato sarà un errato annullamento della polizza. (Nella realtà non vengono in genere utilizzati programmi così scadenti come quel- li dell'esempio; eppure anomalie di questo ti- po si sono verificate.) In altre situazioni, un errore Y2K potrebbe letteralmente avere conseguenze fatali. Ricor- rendo a un programma che calcola il dosag- gio di certi farmaci, un medico potrebbe digi- tare «16-03-00» per indicare la data di nasci- ta di un bambino. Il computer potrebbe scambiarlo per in paziente centenario e con- sigliare un dosaggio ottimale per un anziano, ma mortale per un neonato. Questo, dunque, è il cuore del problema dell'anno 2000. Si sono memorizzati gli anni in modo ambiguo, e la confusione sta prefigu- rando un disastro. Molte organizzazioni han- no semplicemente sostituito i programmi er- rati con nuovo software 2000-compatibile. Per gli embedded system (sistemi incorporati all'interno di altri sistemi; si veda la finestra a pagina 65), questa è stata spesso la sola op- zione praticabile. Ma la sostituzione della mi- riade di programmi in uso sarebbe troppo co- stosa e richiederebbe troppo tempo. Le azien- de stanno quindi tentando di correggerli. Ma che cos'è una data? Quando si divenne consapevoli di Y2K, la prima soluzione ipotizzata fu quella apparen- temente più semplice e definitiva: se abbiamo tolto due cifre alle date, semplicemente rimet- tiamole. Lasciando da parte per un istante la complessità richiesta nella modifica dei te- rabyte di dati memorizzati nei sistemi di una multinazionale, questa soluzione solleva una questione apparentemente banale, eppure fondamentale: che cos'è una data? Dopo tut- to, prima di poter aggiungere due cifre alla codifica di ogni anno, occorre trovare le date. 60 61 LE SCIENZE 372/ agosto 1999 LE SCIENZE 372/ ag osto 1999

Transcript of Millennium Bug -...

Page 1: Millennium Bug - download.kataweb.itdownload.kataweb.it/mediaweb/pdf/espresso/scienze/1999_372_4.pdf · della Amway Corporation, multinazionale produttrice di saponi e altri articoli

Millennium Bug:poco tempoper correre ai ripariAffrontare Y2K sembra semplice: basta portarele codifiche degli anni da due a quattro cifre.Ma questa procedura richiede più tempodi quanto ne resti a disposizione

di Peter de Jager

PICCOLA RASSEGNADEGLI ERRORIDI FINE MILLENNIO

La compagniadi assicurazioni Unum Lifeha cancellato 700 recordda un databaseche registra lo statodelle licenze degli agentiperché un computerha erroneamenteinterpretato 00 come 1900.

Man/ Bandar, centenaria,ha ricevuto il modulod'iscrizione alla scuolamaterna di Winona,nel Minnesota.

Nel 1993,/a Boeingriscontrò erroriin un sistema che trattavaordinazioni con tempidi consegna di sette anni.

Dulcis in fundo, appena unpaio di mesi fai! testdisposto sul depuratoredi San Fernando,a Los Angeles, per metterealla prova i sistemidi emergenza in vistadel temuto black-outdel 31 dicembre, si èconcluso con un disastro:una parte della città è statasommersa dall'acquaputrida delle fognature.

U

naspiegazione delle radici psicologi-che da cui è nato il problema infor-matico dell'anno 2000 si può sco-

vare in un posto sorprendente: Alice nel Pae-se delle meraviglie di Lewis Carroll. Nel fa-mosissimo classico per bambini, il Cappel-laio matto domanda: «Il tuo orologio segnaanche l'anno?» e Alice replica: «Naturalmen-te no, perché l'anno rimane lo stesso così alungo...».

Molte sono le ragioni per cui i programma-tori, me compreso, scelsero di rappresentaregli anni utilizzando solo due cifre, 55 per il1955 e 23/10/76 per il 23 ottobre 1976, peresempio. Pochi decenni fa lo «spazio» digitalescarseggiava: la memoria dei computer eracostosa e le schede perforate erano larghe so-lo 80 colonne.

Si sosteneva anche che le abbreviazioniconsentivano di ridurre il tempo di immissio-ne dei dati da tastiera. Naturalmente ciò erafavorito dall'assenza di standard, e molti dinoi credevano (sbagliando) che il softwareche stavamo scrivendo avrebbe smesso di es-sere usato molto prima del nuovo millennio.Grazie alla semplice inerzia e a una logica si-mile a quella dei personaggi di Carroll (per-ché registrare più di due cifre se il secolo ri-mane lo stesso così a lungo?), questa abitudi-ne è continuata anche quando era ormai pas-sato il tempo in cui la memoria dei computere il vincolo degli alti costi legittimavano unasimile scelta.

Qual è il risultato? I computer ora sonopieni di rappresentazioni di date spaventosa-mente ambigue. Detto semplicemente: comepuò una macchina digitale sapere se 00 signi-fica 1900 oppure 2000? Questa confusioneha già comportato svariati problemi. Fin dal

1993, la Boeing segnalò errori in una propriaapplicazione che trattava ordinazioni contempi di consegna di sette anni. Un sistemadella Amway Corporation, multinazionaleproduttrice di saponi e altri articoli per l'igie-ne personale, respinse prodotti che per erroreerano stati considerati vecchi di un secolo. Ealcuni registratori di cassa computerizzati so-no andati in tilt quando i clienti hanno cerca-to di utilizzare carte di credito con data discadenza 00. In realtà, secondo uno studiocondotto un anno fa su varie aziende, più del40 per cento delle organizzazioni ha già avu-to qualche tipo di inconveniente legato al-l'anno 2000 o, per usare una sigla ormai di-venuta famosa, al Y2K.

Il cuore del problema Y2KMa che cosa, esattamente, sta causando

questi problemi? Un esempio eloquente èquello dei risparmi versati su un deposito nel1999 e ritirati nel 2000. Se il programmapresso la banca calcola gli interessi maturaticominciando a sottrarre 99 da 00, il compu-ter crederà che il denaro sia stato depositatoper 99 anni!

Si consideri un trabocchetto più subdolo:una compagnia di assicurazioni che deve pe-riodicamente cercare le polizze rimaste Matti-ve per almeno cinque anni in modo da cancel-larle dal proprio database. Per individuare lepolizze inattive, la compagnia lancia un'appli-cazione basata su una data memorizzata co-me ULTIMO-ACCESSO, che contiene la registra-zione delle date più recenti in cui i clienti han-no compiuto una qualsiasi transazione.

Quando il programma prende in esame ilvalore di ULTIMO-ACCESSO, aggiunge cinque

alle due cifre dell'anno. Se il risultato è mino-re dell'anno in corso, cancella il record. Diconseguenza, se ULTIMO-ACCESSO vale 93, 93+ 5 <99, e la polizza viene correttamente con-siderata inattiva. Tuttavia, se ULTIMO-ACCES-SO vale 96, si verifica un errore. Se la codificaè a due cifre e tutto ciò che eccede viene tron-cato, 96 + 5 diventa 01, che è minore di 99. Ilrisultato sarà un errato annullamento dellapolizza. (Nella realtà non vengono in genereutilizzati programmi così scadenti come quel-li dell'esempio; eppure anomalie di questo ti-po si sono verificate.)

In altre situazioni, un errore Y2K potrebbeletteralmente avere conseguenze fatali. Ricor-rendo a un programma che calcola il dosag-gio di certi farmaci, un medico potrebbe digi-tare «16-03-00» per indicare la data di nasci-ta di un bambino. Il computer potrebbescambiarlo per in paziente centenario e con-sigliare un dosaggio ottimale per un anziano,ma mortale per un neonato.

Questo, dunque, è il cuore del problemadell'anno 2000. Si sono memorizzati gli anniin modo ambiguo, e la confusione sta prefigu-rando un disastro. Molte organizzazioni han-no semplicemente sostituito i programmi er-rati con nuovo software 2000-compatibile.Per gli embedded system (sistemi incorporatiall'interno di altri sistemi; si veda la finestra apagina 65), questa è stata spesso la sola op-zione praticabile. Ma la sostituzione della mi-riade di programmi in uso sarebbe troppo co-stosa e richiederebbe troppo tempo. Le azien-de stanno quindi tentando di correggerli.

Ma che cos'è una data?

Quando si divenne consapevoli di Y2K, laprima soluzione ipotizzata fu quella apparen-temente più semplice e definitiva: se abbiamotolto due cifre alle date, semplicemente rimet-tiamole. Lasciando da parte per un istante lacomplessità richiesta nella modifica dei te-rabyte di dati memorizzati nei sistemi di unamultinazionale, questa soluzione solleva unaquestione apparentemente banale, eppurefondamentale: che cos'è una data? Dopo tut-to, prima di poter aggiungere due cifre allacodifica di ogni anno, occorre trovare le date.

60 61LE SCIENZE 372/ agosto 1999 LE SCIENZE 372/ ag osto 1999

Page 2: Millennium Bug - download.kataweb.itdownload.kataweb.it/mediaweb/pdf/espresso/scienze/1999_372_4.pdf · della Amway Corporation, multinazionale produttrice di saponi e altri articoli

I programmatori sono stati molto impegnati a risolvere i problemi Y2K.Nella sede della società di Charlotte, nel North Carolina, uno staff di oltre250 tecnici della Alydaar Software controlla milioni di linee di codice ognimese. Gran parte di questo lavoro è svolta per aziende comprese tra le 500che compaiono nella classifica di «Fortune».

be non essere compilabile correttamente nelnuovo modulo oggetto, a meno di effettuareulteriori modifiche.

A peggiorare le cose è il fatto che molteaziende hanno perso parte dei loro codici sor-gente. Benché la quantità di software man-cante sia solitamente inferiore al 3 o 4 percento, persino questa esigua quantità può es-sere estremamente problematica, poiché i pro-grammatori non possono modificare diretta-mente un modulo oggetto. Essi devono ricrea-re il codice sorgente, o riscrivendolo da capo(compito difficile, dato che spesso manca an-che la documentazione di programma) oppu-re ricavandolo dallo stesso modulo oggetto(processo che è stato paragonato a quello dirisalire a un maiale partendo dalle salsicce).

Una volta corretto e ricompilato, il codicesorgente deve anche essere sottoposto a unafase di test. Poiché revisioni del software intro-ducono quasi sempre nuovi errori, la verificadei programmi modificati costituisce la parteprincipale di qualunque progetto anno-2000.

Nei primi anni novanta molti esperti soste-nevano che l'espansione delle date sarebbestato il modo migliore per affrontare Y2K.Ma l'imprevista necessità di dover ricompila-re ogni programma che richiama una data inun qualsiasi file, anche quando l'applicazio-ne non effettua calcoli sulle date, ha reso que-sto metodo troppo lento e dispendioso per la

Y2K IN TRIBUNALE

Dopo che alcuniregistratori di cassaal Produce Palacedi Warren, nel Michigan,sono andati ripetutamentein tilt quando i clientiusavano carte di creditocon data di scadenza 00,TEC America, l'aziendaproduttrice delleapparecchiature, è statacitata in giudizio.

Secondo stime pubblicatealla fine di giugnodal «Wall Street Journal»,le spese sostenutedalle assicurazioni per farfronte alle cause legateal Millennium Bug sarannocomprese tra 15 e 35miliardi di dollari.

"

Sembra che i tecnicisiano finalmenteriusciti a trovareuna soluzione

universaleal Mfilennium

eiliefee

aA

"La cattiva notizia è che il Mi I lennium Bug farà tornaretutti i computer al 1900. La buona notizia è che avremo

un altro secolo per risolvere il problema!"

o

oo

o

Anno 2000. Diversi livelli per lo stesso problema

o

ue sera sera, whatever will be<<L2 will be...» cantava Doris Daynegli anni cinquanta. Un atteggiamen-to altrettanto fatalista sembra prevale-re tra coloro che avranno a che fare conil Millennium Bug: in pratica, tutti noi.

In realtà le grandi organizzazioni,aziende e pubbliche amministrazioni, sisono rese conto dell'entità del problemae hanno mobilitato enormi risorse. Lepiccole aziende hanno invece sottovalu-tato il problema, benché siano le piùvulnerabili, dipendendo spesso da po-chi fornitori o clienti. Si teme un effettodomino: problemi di liquidità potrebbe-ro derivare da mancati pagamenti, lega-ti a ritardi nelle forniture, generati maga-ri da un piccolo problema in un'applica-zione informatica che gestisce le ordina-zioni.., piccolo problema che potrebbemettere in pericolo la sopravvivenzastessa di alcune imprese.

La rete di connessioni su cui sifonda una società complessa e-spone aziende e privati cittadinialla possibilità di inconvenientipiù o meno gravi. Di fatto nessu-no è veramente in grado di coglie-re tutte queste interrelazioni. Così,indecisi se prestare ascolto ai cata-strofisti o agli ottimisti, spesso ci siabbandona al fatalismo.

Un altro fattore concorre all'e-lusività del problema: il baco puòtrovarsi da qualche parte dentro ichip incorporati nelle più svariateapparecchiature di uso corrente.Ma, nonostante la familiarità cheabbiamo con questi oggetti, ri-sulta spesso difficile rendersi con-to di quel che sta dietro di essi.

I PC sono un esempio di comel'informazione sia strutturata a li-velli differenti. Il trattamento delledate, di per sé banale, diventa dif-ficile da ricostruire, ed eventual-mente modificare, proprio in ra-gione dei molti livelli di cui occor-re tenere conto. Il primo livello è costi-tuito dalle interfacce con cui i sistemiinformatici si collegano tra loro e con ilmondo esterno. Principale responsabiledei rischi di propagazione dei problemi,è la ragione per cui anche un sistema2000-compatibile può risentire delleanomalie di sistemi collegati. In questoambito, le aziende si sono attrezzate ri-chiedendo a clienti e fornitori certifica-zioni di conformità, proteggendosi dadisservizi con clausole contrattuali e pre-parando piani per gestire le emergenze.

Scendendo di un livello, troviamo idati. Gli archivi dei calcolatori conten-gono spesso date in formato inadegua-to, tipicamente con l'anno codificatocon due cifre. Per essere sicuri di nonavere problemi bisognerebbe aggior-nare gli archivi. Esistono programmiche, in automatico, individuano le datee, in alcuni casi, ne correggono il forma-to. Ma i dati possono essere immagazzi-nati in decine di modalità diverse, condiversi strumenti; così occorrono inter-venti differenziati. Un software che la-vora su documenti Word non sarà pro-babilmente in grado di intervenire suun foglio Excel o su un database Access.

Del resto, modificare contenuto eformato dei dati può addirittura peg-giorare la situazione, se non si intervie-ne anche sui programmi applicativi. È aquesto livello che il problema è stato

affrontato in modo più esteso, e l'iden-tificazione dei programmi non compa-tibili, la loro sostituzione o la riscritturadi parte del codice hanno rappresenta-to un affare per molte società di consu-lenza e di sviluppo di software. Quasisempre studiati per essere il più possi-bile user-friendly, i programmi applica-tivi mascherano molto bene la lorocomplessità ma, per poter funzionare,richiedono l'esistenza di un altro stratodi software: il sistema operativo.

Questo è un insieme strutturato di

programmi che gestiscono le risorse diun sistema informatico e presiedono al-l'esecuzione del software applicativo. Isistemi operativi hanno un orologio in-terno contenente data e ora; ed è pro-prio la data di sistema a essere usata damolte applicazioni. Se i sistemi operativioggi in commercio sono tutti 2000-compatibili, molti computer vecchi matuttora in uso non sono aggiornati e inalcuni casi non è disponibile softwarecorrettivo. Occorre, in quésti casi, carica-re nuove versioni del sistema operativo.

Ma il sistema operativo è pur sempresoftware: come può disporre di un oro-logio? Ancora una volta bisogna scen-dere di un livello e arrivare al firmware.Data e ora sono fornite dal BIOS: pro-grammi cablati nella memoria a solalettura (ROM), che fanno da cerniera trail nucleo del sistema operativo (kernel)

e l'hardware e che gestisconooperazioni come l'autotest almomento dell'accensione.

Il guaio è che molti BIOS nonsono aggiornati e hanno compor-tamenti bizzarri: alcuni passeran-no dal 1999 al 1900, altri torne-ranno al 1994, altri ancora, in unfuturo un po' più lontano, dopo il2049 ripartiranno dal 1900.

Infine, il livello più basso chedobbiamo raggiungere è l'hard-ware. È qui che troviamo gli oro-logi veri e propri: gli RTC (Real Ti-me Clock), orologi in tempo realeche sono situati sulla scheda ma-dre e funzionano anche a compu-ter spento. Purtroppo l'RTC nongestisce il secolo; in realtà è stataprevista un'area apposita (century

byte), che però dovrebbe essereattivata dai programmatori delBIOS, che nella maggior parte deicasi non se ne sono preoccupati.

Capita quindi che vengano tut-tora venduti PC non compatibilicon il cambio di millennio. Esisto-

no però programmi in grado di verifica-re se orologio, BIOS e sistema operativosono aggiornati e, in caso contrario, di ri-solvere l'inconveniente, per esempio fil-trando le richieste di data effettuate aivari livelli e restituendole nel formatoopportuno: non è quasi mai necessariosostituire il PC. Bisogna però attivarsi:nonostante costituisca un problemacomplesso, al Millennium Bug si può so-pravvivere senza troppi danni. A patto,s'intende, di affrontarlo seriamente.

RENATO ToRLASCHI

Va ricordato che i computer non sanno checosa rappresentino i dati che elaborano. Sonogli esseri umani a dare un significato alleinformazioni fornite ai computer e alle rispo-ste ricevute. E i programmatori non seguo-no regole o standard quando creano nomiche identificano date. Per esempio, le datepossono avere etichette oscure come SNARKWUMPUS così come, in seguito a scelte più ov-vie, BIRTH-DATE oppure DT-INIZIO.

Non ci si può neppure affidare interamenteall'informazione numerica stessa. Un approc-cio è stato quello di esaminare tutti i dati perestrarre le colonne con numeri compresi tra 1e 12, tra 1 e 31 e tra O e 99, assumendo chequest'ultima informazione indicasse gli anni.Benché giustificata, questa ipotesi non è sem-pre corretta. I dati con valori compresi tra O e99 potrebbero rappresentare percentuali diuna certa quantità, senza contare che spessoanni a due cifre sono nascosti all'interno di al-tri dati, per esempio all'interno di un lungonumero di serie.

Sono stati sviluppati strumenti automaticiper individuare date. Alcuni prodotti fra i piùsofisticati sono in grado di effettuare ragiona-menti deduttivi e di raggiungere risultati sor-prendenti. Tuttavia nessuno strumento puòsvolgere queste operazioni senza un marginedi errore. Trovare le date è solo il primo pas-so. Uno dei problemi collegati alla ricodificadegli anni a quattro cifre è che i programma-tori dovrebbero ridisegnare il tracciato di cer-te stampe, documenti e videate per far postoalle cifre aggiunte. Una complicazione piùgrave è che anche le applicazioni software chefanno riferimento alle date espanse dovrebbe-ro essere modificate.

Si consideri il database del personale diun'azienda in cui i nomi dei dipendenti sianomemorizzati dalla colonna 1 alla colonna 30,le date di nascita dalla 31 alla 36, gli stipendidalla 37 alla 42 e così via. Se la data di nasci-ta è espansa per poter registrare l'anno suquattro cifre, lo stipendio dovrà essere regi-strato due posizioni più a destra; con il risul-tato che ogni programma che accede a quel-l'informazione dovrà essere modificato perottenere i dati dalle posizioni corrette.

Tipicamente, queste modifiche sono fattesul «codice sorgente» (o «source»), che i pro-grammatori scrivono utilizzando linguaggicome COBOL e C. Il software è quindi conver-tito in una forma - chiamata modulo oggettoo «bado - che il computer può comprendere.La traduzione è effettuata da un programmadenominato compilatore. I problemi possonosorgere quando i compilatori sono continua-mente aggiornati. In certi casi, tecniche diprogrammazione accettate da una versioneprecedente del compilatore possono diventarenon più valide, in modo molto simile a quan-to avviene a documenti creati con la versione3 di un programma di word processing e ri-fiutati dalla versione 5 dello stesso prodotto.Di conseguenza, il vecchio codice sorgente re-centemente corretto per trattare Y2K potreb-

62

LE SCIENZE 372/ agosto 1999

LE SCIENZE 372/ agosto 1999

63

Page 3: Millennium Bug - download.kataweb.itdownload.kataweb.it/mediaweb/pdf/espresso/scienze/1999_372_4.pdf · della Amway Corporation, multinazionale produttrice di saponi e altri articoli

IIIII11111111111111111111

Problemi nascosti ovunque

All'interno di un sistema medico utilizzato per trattamentiradiologici, si trovano chip che hanno il compito di assi-

curare il corretto dosaggio per i pazienti. Ma siccome i calcolisono effettuati su due cifre, l'apparecchiatura non sarà in gra-do di calcolare l'esatto andamento del decadimento radioatti-vo del campione utilizzato dal secolo corrente al prossimo.Fortunatamente, l'azienda produttrice si è già accorta del pro-blema, ha contattato i clienti e ritirato il prodotto.

Senza dubbio, gli aspetti più pericolosi di Y2K sono proprioi chip preprogrammati che sono stati inseriti in una grande va-rietà di apparecchiature elettroniche, compresi macchinari in-dustriali, dispositivi di controllo, semafori, allarmi per sistemi disicurezza, strumenti di navigazione, e innumerevoli prodotti diampio utilizzo (i cosiddetti «consumer») come automobili, oro-logi, videoregistratori e forni a microonde. Questi sistemi in-corporati (o «embedded system» ) si trovano dappertutto: infabbriche, centrali nucleari, sistemi di trattamento delle acque,ospedali, uffici e abitazioni. Il Gartner Group, una società diconsulenza di Stamford, nel Connecticut, stima che nel mon-do ne esistano dai 32 ai 40 miliardi.

Naturalmente, la maggior parte di questi sistemi non dipen-de dalla data e quindi non sarà colpita da Y2K. Di quelli che uti-lizzano date, solo una frazione esi-gua presenterà malfunzionamenti.Tuttavia anche questa piccola per-centuale è causa di preoccupazioni.Benché nessuno ne conosca con cer-tezza il numero esatto, la Gartner ri-tiene che si tratti di milioni di sistemi.

Una così grande incertezza derivadal fatto che spesso è estremamentedifficile per chiunque - anche per in-gegneri di grande esperienza - deter-minare come uno specifico embed-ded system possa sbagliare. Spessorisultano dipendere dal calcolo delladata anche sistemi che a prima vistasembravano indipendenti. Si pensi aun'apparecchiatura che smetta difunzionare il 1° gennaio 2000 perchéun sistema di sicurezza ritiene chel'ultima ispezione sia avvenuta un se-colo prima. Un problema ancor piùinsidioso potrebbe presentarsi nelcaso di un sistema di controllo chesmisti avvertimenti di emergenza or-

dinandoli per data: messaggi urgenti rischierebbero di finirefuori dalle schermate, e di essere quindi ignorati, perché le da-te, visualizzate come 00, sembrerebbero meno recenti deimessaggi datati 99.

Anomalie Y2K possono manifestarsi nelle situazioni più im-pensate. I vigili del fuoco di Baton Rouge, in Louisiana, han-no dovuto far esaminare i loro veicoli per assicurarsi che imeccanismi di controllo del pompaggio dell'acqua non ri-chiedessero modifiche per Y2K. Fortunatamente non sono

state necessarie.I personal computer sono tra i prodotti che, con maggiore

probabilità, richiederanno una correzione di problemi «em-bedded». La maggior parte dei PC acquistati prima del 1996non ha una conoscenza intrinseca del cambio di secolo: il 10gennaio 2000, molti convertiranno automaticamente la lorodata di sistema in 1980. Ma sono disponibili software di corre-zione per tamponare queste falle.

Purtroppo altre difficoltà non sono così semplici da affron-tare. Molte aziende produttrici di embedded system non sonopiù in attività, oppure i progettisti dei sistemi difettosi se ne so-no andati e la documentazione manca o è incompleta. Inoltrealcuni sistemi sono stati installati in luoghi poco accessibili, co-

me le piattaforme petrolifere.Una soluzione comunemente a-

dottata consiste nel sostituire a unoa uno i chip anomali, compresi gliorologi in tempo reale (RTC - Real Ti-me Clock - che misurano il tempomediante oscillatori a cristallo) e mi-croprocessori e controllori (che for-niscono istruzioni a una apparec-chiatura perché compia certe azio-ni). Il processo può consistere sem-

plicemente nel togliere alcune par-

ti dalla scheda di circuito stampatoe nell'inserire le nuove contenentiil software modificato opportuna-mente per Y2K. Spesso, tuttavia, l'in-tera scheda deve essere sostituita -soluzione evidentemente costosama necessaria in certi casi, peresempio quando l'apparecchiaturarischia di sbagliare il calcolo del do-saggio delle radiazioni a cui sotto-porre un paziente.

PETER DE jAGER

Nel luglio dello scorso anno Kenneth W. Kizer,della Veterans Health Administration, ha affer-mato al Congresso statunitense che alcune ap-parecchiature mediche, defibrillatori compre-si, potrebbero non funzionare correttamente acausa di problemi Y2K nei loro chip.

Spese per Y2K sostenute da alcune società

Numerodi sistemi

critici

CIBC BANK IN CANADA

GTE

BANKAMERICA

CITICORP

GENERAL MOTORS

INTERNAL REVENUE SERVICE

ALTRE DATESIGNIFICATIVE

22 agosto 1999:il Global PositioningSystem (o GPS - il sistemaportatile in gradodi ricevere i segnali inviatisulla Terra da satellitiin orbita geostazionariain modo da poter esserelocalizzato, N.d.t.), dopo1023 settimane,si riposizioneràsulla settimana 0.

19 gennaio 2038:nei sistemi Unixsi verificherà un roll overdella data, poiché sarannotrascorsi 23 ' secondi dal 1°gennaio 1970, momentodel loro avvio.

6 febbraio 2040:i computer Macintosh piùvecchi potranno tornareindietro di 232 secondi,al 1 0 gennaio 1904.

SSASocial SecurityAdministrationFEMAFederal EmergencyManagement AgencyTreasuryDepartment of TreasuryDODDepartment of DefenseJusticeDepartment of JusticeNASANational Aeronautics andSpace Administration

(MILIONI DI DOLLARI)

200 400 600 800 1,000

maggior parte delle aziende. Naturalmentel'espansione a quattro cifre condurrebbe, inoccasione del passaggio dall'anno 9999 al-l'anno 10 000, al problema Y10K, ma questosarà argomento di un altro articolo...

Windowing: una soluzioneUna soluzione alternativa è insegnare ai

computer che 00 significa 2000. I program-matori hanno esteso questa semplice idea finoa una strategia, chiamata «windowing», con-sistente nel separare gli anni da 00 a 99 in duegruppi rispetto a un numero accuratamentescelto, detto base (45, per esempio). Gli annia due cifre maggiori o uguali alla base sonoconsiderati del secolo corrente (68 diventa1968). Gli altri si considerano appartenenti alXXI secolo (13 diventa 2013).

Utilizzando questo criterio, un program-matore può scavare in un codice sorgente, in-dividuare i riferimenti a date e modificare op-portunamente i calcoli effettuati su di esse.Siccome la codifica a due cifre degli anni nonrichiede di essere alterata (soltanto i calcoliche coinvolgono le date sono variati situandogli anni nei secoli appropriati), la tecnica diwindowing comporta meno lavoro rispettoall'espansione delle date ed è attualmente lapiù usata per ovviare al Y2K.

Anche il windowing, tuttavia, presenta al-cuni inconvenienti. Ovviamente non è in gra-do di trattare dati che spazino su periodi supe-riori al secolo, come date di nascita o contrattid'affitto a lungo termine. Inoltre pone proble-mi allorché le informazioni devono essere tra-sferite tra sistemi che usino basi diverse.

Per esempio, una base 25 potrebbe essereappropriata per un programma che gestiscefatture di una società fondata nel 1928. Maun'altra applicazione che effettui proiezionidi vendite a lungo termine per la stessa azien-da potrebbe richiedere una base 70. Il pro-blema si pone quando i dati devono passareda un sistema all'altro: l'anno 2031 potrebbediventare 1931 o meno, generando confusio-ne nei calcoli.

A complicare le cose, i programmatori han-no spesso usato finestre variabili (si parla di«windowing mobile»), in cui la base cambianel tempo. Questa strategia ha un senso percerti tipi di programmi: per esempio quelli chegestiscono mutui trentennali. Per applicazionidi questo tipo, la base potrebbe essere postauguale a 40 anni successivi all'anno corrente.Ovviamente risulta cruciale tenere traccia del-la base variabile per evitare conflitti con altrisistemi. Inoltre i programmatori devono ren-dersi conto che rappresentare l'anno 1968 inun programma con base 70 richiederà ulterio-ri aggiustamenti al software.

Variare le dateIn un'altra strategia per Y2K, si ricorre,

con astuzia, all'aritmetica di base. Si consideriil calcolo 00 — 99 = — 99. Se l'operazione in-tende rappresentare 2000 — 1999, allora il ri-sultato — 99 è ovviamente sbagliato. Ma sipuò notare che 00 — 99 è equivalente a (00 +5) — (99 + 5). Se questa espressione è calcolatasu due cifre, diventa 5 — 4 = 1. Sommando 5sia a 00 sia a 99, si sono ricondotte le date almedesimo secolo, cosicché il calcolo 2000 —1999 ha potuto fornire il risultato correttousando solo due cifre.

Ma le date sono più che semplici numeri. Il1 0 gennaio del 2000 è un sabato; il 1° gennaiodel 2005 no. Quindi la tecnica di sommare 5a tutti gli anni non funziona nel caso dei pro-grammi che richiedono di distinguere i giornidella settimana. Anche in questo caso, nontutto è perduto. Sostanzialmente esistono duecicli per controllare i giorni della settimana:un ciclo di sette per i diversi giorni e uno diquattro per gli anni bisestili. Moltiplicando idue ci si riconduce a un ciclo complessivo di28 anni. 11 1 0 gennaio del 2000 sarà sabatoproprio come lo è stato il 10 gennaio del 1972e come lo sarà il 10 gennaio del 2028. Sfrut-tando questa regolarità, la tecnica di «in-capsulamento» aggiunge 28 agli anni a duecifre prima di effettuare ulteriori calcoli. Unavolta completati questi calcoli, dalle date sisottrae 28.

Benché l'incapsulamento possa essere usatoper evitare molti problemi Y2K, la tecnica di-venta pesante per elaborazioni complesse. Unesempio è dato da un'applicazione che vengaeseguita in parallelo con altri programmi: du-rante la propria elaborazione, all'applicazionepuò essere necessario inviare informazioni adaltri sistemi che a loro volta manipolano ledate con criteri propri; i risultati poi potreb-

bero essere combinati e ricombinati in mo-menti diversi. I programmatori si troverebbe-ro in difficoltà a determinare e manteneretraccia dei punti di programma in cui aggiun-gere e sottrarre 28.

Oltretutto, l'incapsulamento non funzio-na quando le date sono «sommerse» in altreinformazioni in cui determinate cifre servonoper processi di validazione. Supponiamo che7289-47-99-5 sia il numero di codice di unprodotto, in cui 99 rappresenta l'anno di sca-denza e l'ultima cifra, 5, sia usata per verifica-re la correttezza dell'intera sequenza. In que-sto esempio, il 5 è ottenuto sommando 7289,

47 e 99 e prendendo l'ultima cifra del risulta-to della somma, 7435. I cosiddetti check-digit

sono usati spesso per validare carte di credito,codici a barre e codici fiscali. Ovviamente ag-giungere con disinvoltura 28 all'anno a duecifre dovrebbe comportare una modifica an-che al check-digit.

Le tre tecniche - espansione della data, win-dowing e incapsulamento - sono state finoraimpiegate nel 95 per cento dei casi di modifi-che al software esistente per il problema Y2K.Molte grandi aziende che possiedono sistemiinformatici comprendenti migliaia di pro-grammi hanno adottato una procedura mista.

Y2K IN GIAPPONE

Il Giappone è statocriticato per non essersitroppo impegnatoriguardo al Y2K. Maun suo vantaggio derivadal fatto che molte aziendehanno adottatoun sistema alternativoper codificare gli anni:il Calendario imperiale,nel quale il 1999è Heisei 11.

Quanto è preparato il Governo degli Stati Uniti?

308 93% 99%

49 69% 82%

323 45% 61%

2,965 42% 54%

207 31% 31%

158 63% 74%

Sistemimodificati adagosto 1998

Sistemimodificati amarzo 1999

Anno stimatodi modifica

di tutti i sistemi

1999

2000

2001

2030+

2000

1999

64

LE SCIENZE 372/ agosto 1999

LE SCIENZE 372/ agosto 1999

65

Page 4: Millennium Bug - download.kataweb.itdownload.kataweb.it/mediaweb/pdf/espresso/scienze/1999_372_4.pdf · della Amway Corporation, multinazionale produttrice di saponi e altri articoli

Nel mese di gennaio, Franco Bassani-

ni, sottosegretario alla Presidenzadel Consiglio, ammetteva che «l'Italia èin grave ritardo, ed è necessario accele-rare i tempi». Parlava di MillenniumBug, in una delle poche dichiarazionifatte dagli esponenti politici nostranisull'argomento. L'opinione sembra con-divisa da molti osservatori, che attribui-scono il ritardo all'impegno profuso loscorso anno da aziende e istituzioni peradattare le applicazioni software allagestione dell'Euro. Sotto molti aspetti, iprogetti Euro e Anno2000 sono simili:entrambi hanno scadenze improroga-bili ed entrambi comportano un'analisia tappeto del software per individuaree correggere: in un caso importi e valu-te, nell'altro le date. Anche gli strumen-ti utilizzati per effettuare le analisi diimpatto automatiche sono quasi sem-

Il Millennium Bug in Italia

PROBLEMIDI LIQUIDITÀ

Prevedendo che moltiaccumuleranno denarocontante, i/ Federa!Reserve Boardsta pianificandodi aggiungere 50 miliardidi dollari alla normaleemissione di denaro.

Sono disponibili strumenti per automatizzarel'applicazione delle tre soluzioni, ma nessunodi essi è esente da errori.

Sembra assurdo, ma un fattore che ostaco-la pesantemente le attività di modifica derivadal fatto che parte del software tiene già con-to del cambio di secolo. Alcuni programma-tori avevano provveduto a utilizzare proprischemi di windowing o di incapsulamentoprima che si diffondesse la consapevolezza diY2K. Ma queste precauzioni a volte sono sta-te adottate solo per alcune parti di un pro-gramma, mentre altre devono ancora esserecorrette. Attuare ulteriori modifiche a questosoftware può portare a una confusione digita-le, con windowing multipli con basi diverseoppure combinazioni di windowing e inca-psulamento sugli stessi dati.

Individuare se un'applicazione software siastata precedentemente modificata può esseredifficile, specialmente se il codice è mal scrittoe scarsamente documentato. Nella mia espe-rienza di programmatore, mi è capitato disforzarmi per ore per cercare di capire la fun-zione di piccole parti di software (anche sol-tanto 10 o 15 linee di codice). E il ricorso aprocedure automatiche espone al pericolodell'applicazione cieca di soluzioni predeter-minate senza una reale comprensione dellafunzione del codice utilizzato.

Sono poi possibili ulteriori pasticci. Un'a-bitudine diffusa tra i programmatori è quelladi assegnare a date o anni vicini a 2000 signi-ficati speciali. In patticolare, 9999 o sem-plicemente 99 sono stati usati per contrasse-gnare la fine di un file o per identificare unrecord che deve essere cancellato o archivia-to. Quella pratica adesso genera confusione,

Le piccole imprese, invece, risultereb-bero largamente inconsapevoli, o alme-no indifferenti, dei pericoli del Bug e,sottovalutando il problema, finisconoper costituire il segmento industrialemaggiormente a rischio.

Hal, un'azienda informatica milanesemolto attiva su questo tema, ha effet-tuato, in collaborazione con l'Universitàcommerciale Luigi Bocconi, un'analisidettagliata sulle imprese di medie di-mensioni (nel 1994 in Italia, secondofonti INPS, le industrie private con unnumero di addetti compreso tra i 99 e i499 erano 7301). Pur rilevando un diffu-so impegno nell'affrontare il problema,l'indagine registra parecchi ritardi, tantoche si prevede che il 20 per cento dellemedie imprese non sarà compatibile adicembre 1999.

RENATO TORLASCHI

non solo perché le due quantità potrebberolegittimamente significare, rispettivamente, 9settembre 1999 e l'anno 1999, ma anche per-ché un'applicazione che gestisce le venditepotrebbe richiedere che venga digitato 99nello spazio riservato all'anno nel caso in cuisi voglia annullare l'ordine corrispondente. Ilprogramma dovrà essere riscritto in modoche questa richiesta sia effettuata in manieradiversa.

Un'altra complicazione riguarda gli annibisestili. Dato che la Terra impiega un po'meno di 365,25 giorni a compiere la sua orbi-ta intorno al Sole (un valore più preciso è365,242199), gli anni bisestili non seguonoesattamente un ciclo di quattro anni. Così glianni di fine secolo - come 1700 e 1800- in ge-nere non sono bisestili, ma fanno eccezionequelli divisibili per 400. Quindi ci sarà un 29febbraio nel 2000 (anche se non c'è stato nel1900), che confonderà ulteriormente i com-puter che non siano stati opportunamenteprogrammati.

Un disastro digitale?Tutti i fattori esaminati, uniti a numerosi

altri, hanno portato a una diffusa incertezza ead animate controversie intorno a Y2K. Aun'estremità dello spettro, alcuni esprimonoopinioni stupidamente catastrofiste: «C'è lapossibilità che non potremo mai più disporredella corrente elettrica...» (espressione real-mente utilizzata da un oratore in un recenteconvegno sull'anno 2000). All'altro estremoc'è un disinformato ottimismo: «Y2K è avve-nimento di un giorno. Ogni problema sarà ri-solto nel giro di un fine settimana».

Secondo me, entrambe le posizioni sono u-gualmente ingenue. I primi ignorano la capa-cità della nostra società di affrontare le sfide.L'idea che si possa perdere per sempre la no-zione di come produrre elettricità non meritanemmeno di essere discussa. In realtà, impie-gando le risorse necessarie, molte organizza-zioni (come le istituzioni finanziarie) hannofatto grandi passi avanti nella soluzione delproblema Y2K. La scorsa estate Wall Streetsimulò gli scambi di titoli che verranno effet-tuati il 3 gennaio 2000, e riscontrò solo ano-malie di poco conto legate al cambio di data.Ulteriori test sono stati pianificati per l'annoin corso.

D'altro canto, coloro che sottovalutano ilproblema Y2K ignorano la vulnerabilità tec-nologica della società moderna, fondata susistemi complessi e interconnessi. In partico-lare, singole anomalie locali possono esten-dersi rapidamente attraverso un sistema, conrisultati disastrosi. Lo scorso anno GalaxyIV, solo uno dei numerosi satelliti impiegatiper le comunicazioni, ha avuto un problema,e milioni di cercapersone si sono spenti im-provvisamente. Ad Auckland, in Nuova Ze-landa, un singolo cavo danneggiato sovrac-caricò l'intero sistema e provocò un black--out durato sei settimane.

Questi eventi sono accaduti senza che nes-suno se li aspettasse. Il caso Y2K è diverso:è stato previsto. In tutto il mondo informati-ci professionisti stanno modificando granparte del software esistente. Alla banca cana-dese CIBC 1000 persone lavorano al proget-to con un budget di circa 120 milioni di dol-lari. La AT&T ha già speso più di 500 milio-ni, la Citicorp investirà 650 milioni e l'Inter-nal Revenue Service spenderà circa un miliar-do di dollari.

Si tratta di sforzi enormi ma, se abbiamoimparato qualcosa sui grandi progetti softwa-re, è che in molti casi i tempi pianificati nonvengono rispettati, e i progetti realizzati neitempi previsti di rado funzionano perfetta-

Il conto finanziario per Y2K negli Stati Uniti

Caso ottimale Caso previsto Caso peggiore

Applicazioni softwarecon problemi Y2K

10 milioni 12 milioni 15 milioni

Percentuale di problemi Y2Kche non saranno risolti in tempo

5% 15% 25%

Avarie a infrastrutturedovute a Y2K*

Centrali elettriche 5% 15% 75%

Sistemi di trasporto 5% 12% 50%

Sistemi di telefonia 5% 15% 65%

*Percentuale di nuclei domestici coinvolti

mente. Trascurare questo fatto significa di-menticare le lezioni delle batoste informatichedel passato, compresi i fiaschi dei computeralle Olimpiadi di Atlanta e all'aeroporto in-ternazionale di Denver. Le installazioni di si-stemi informatici complessi che sono risultateprive di errori sono davvero rare. La preoccu-pante peculiarità dei progetti Y2K è che la da-ta di completamento non può essere rinviata.

Detto questo - e considerando anche altrifattori, come l'entità del lavoro già completa-to, i piani di emergenza predisposti e gli im-pegni che molte persone dovranno assumersiall'avvicinarsi del cambio di secolo - ritengoche verranno registrate gravi anomalie, chedureranno circa un mese. Problemi aggiunti-vi, di gravità variabile, dalla seccatura a guaipiù seri, continueranno a mani-festarsi per tutto il corso dell'an-no 2000. La previsione può sem-brare ottimistica; essa presup-pone che verrà fatto quanto ne-cessario a minimizzare il nume-ro di singoli eventi di errore chepotranno verificarsi. Il che ri-chiederà, nel poco tempo che ri-mane a disposizione, uno sforzosenza precedenti nella storia deicomputer.

ULRICH WILLIAM M. e HAYES IAN S., The Year 2000 Soft-ware Crisis: Challenge of the Century, Prentice Hall, 1997.

DE JAGER PETER e BERGEON RICHARD, Countdown Y2K:Business Survival Planning [or the Year 2000, John Wiley& Sons, 1998.

RUBIN HOWARD e ROBBINS BRIAN, Evaluating Success ofa Y2000 Project, Information Economics Press, 1998.

SCOTT MICHAEL D. e REID WARREN S., Year 2000 Compu-ter Crisis: Law, Business, Technology, Glasser Legal-Works, 1998.

JONES CAPERS, The Year 2000 Software Problem: Quan-tifying the Costs and Assessing the Consequences, Addi-son-Wesley, 1998.

In italiano è disponibile:CRAIG LYNN e KUSMIRAK MIKE, Millennium Bug, Apo-

geo, Milano 1999.Per ulteriori informazioni su Y2K, si veda il sito Internet

dell'autore: www.year2000.com

pre gli stessi e molte aziende hanno or-mai acquisito le competenze e l'espe-rienza necessaria per pianificare i lavoricon la massima sicurezza.

Senza dubbio questo vale per le gran-di imprese, che risultano molto impe-gnate nella lotta al Millennium Bug. Unaconferma giunge da una ricerca condot-ta sul mondo aziendale italiano dall'as-sociazione Osservatorio 2000 (www.os-servatorio2000.com ), che stima in 120miliardi di lire l'impegno finanziario del-l'ENI sul fronte Y2K, mentre FIAT e Tele-com avrebbero stanziato, rispettiva-mente, cifre superiori ai 160 e ai 300 mi-liardi. Ma l'impegno delle grandi azien-de su questo fronte è stato senz'altro sti-molato dall'intervento della Consob,che ha richiesto a tutti i gruppi quotatialla Borsa di Milano ampie garanzie dicompatibilità con il problema Y2K.

PETER DE JAGER, esperto informatico, è attualmentemembro della task force predisposta dal Governo ingleseper Y2K. Nel 1996 fu convocato presso il Comitato scienti-fico della Camera dei Deputati degli Stati Uniti, dopo lapubblicazione del suo saggio Doomsday 2000 (dooms-day significa «giorno del giudizio», N.d.t.), pubblicato su«Computerworld», un settimanale di informatica ed econo-mia, nel quale metteva in guardia mondo industriale e mon-do politico riguardo ai rischi del computer bug del 2000. Èco-autore di Managing 00: Surviving the Year 2000 Com-puting Crisis (John Wiley & Sons, 1997) e di CountdownY2K: Business Survival Planning for the Year 2000 (JohnWiley & Sons, 1998). Accusato un tempo dai critici di esse-

re preda delle paure tipiche dei tecnofobi, oggi è considera-to un moderato, soprattutto a fronte di cassandre che han-no prefigurato la fine del mondo a causa di Y2K. Comun-que, de Jager intende trascorrere la notte di Capodanno inun pub di Doolin, in Irlanda, dove vive sua madre.

66 67LE SCIENZE 372/ agosto 1999 LE SCIENZE 372/ agosto 1999