Marco De Marco Maddalena Sorrentino Francesco Virili
ORGANIZZAZIONI E CAMBIAMENTO TECNOLOGICO Spunti di riflessione
Indice INTRODUZIONE ...................................................................................................5 PRIMA PARTE ICT nelle organizzazioni: le pietre miliari ...............................................................7 1.
Anni '50 I sistemi elettromeccanici di elaborazione dati ....................................................................11
2.
Anni '60 II mainframe: l’architettura 360 ...........................................................................................17
3.
Anni '70 L’architettura 370, i DBMS, i minicomputer .......................................................................25
4.
Anni '80 I mainframe con RDBMS, le reti UNIX, i PC monoutente..................................................31
5.
1990 – 1996 Le reti di PC con interfaccia grafica, i sistemi client/server ..........................................35
6.
1997-2003 L’ascesa del Web, le architetture ibride, il multi-tier client/server...................................37
7.
Considerazioni di sintesi.....................................................................................................................41
SECONDA PARTE Prospettive teoriche............................................................................................. 45 1.
Macchine, organismi ed entità virtuali ...............................................................................................47
2.
La prospettiva evoluzionista ...............................................................................................................51
3.
Fordismo e post Fordismo ..................................................................................................................55
4.
Scelte organizzative e cambiamento tecnologico ...............................................................................61
5.
Socio-costruttivismo e tecnologia.......................................................................................................65
6.
Tecnologia come “testo”.....................................................................................................................71
7.
Fattori socioeconomici e tecnologia ...................................................................................................75
8.
Considerazioni di sintesi.....................................................................................................................81
CONCLUSIONI.................................................................................................... 87 1.
Analizziamo la tabella 1 .....................................................................................................................88
2.
Direzioni di indagine ..........................................................................................................................90
RIFERIMENTI BIBLIOGRAFICI ....................................................................................................92
3
Introduzione Qualcosa è cambiato. È innegabile, indipendentemente dai punti di vista, che negli ultimi cinquant’anni la forte evoluzione delle tecnologie dell’informazione e della comunicazione (Information and Communication Technologies, ICT) sia stata accompagnata da profonde trasformazioni che hanno interessato in maniera pervasiva ogni aspetto della nostra esistenza individuale e collettiva. Le organizzazioni non fanno eccezione: il cambiamento tecnologico caratterizza alcune delle più significative innovazioni avvenute negli ultimi decenni nelle strutture e nei processi organizzativi. Quale significato, quali modalità, quali effetti comporta il cambiamento tecnologico per le organizzazioni? Rispondere a questa domanda risulta tutt’altro che facile: il fenomeno è infatti molto più complesso e articolato di quanto sembri a prima vista. Le tecnologie si diffondono, vengono adottate e impiegate nelle organizzazioni in un modo spesso imprevisto; talvolta esse non determinano gli effetti attesi, mentre altre volte si accompagnano a effetti del tutto inaspettati. Ricordiamo soltanto alcuni esempi tra i più evidenti. Dopo decenni di studi sul modo più appropriato di sviluppare i sistemi informativi impiegati nelle organizzazioni, dopo aver assistito alla nascita di centinaia di metodologie diverse, ancora oggi siamo alla ricerca di un metodo capace di garantire che le applicazioni realizzate e messe in uso producano effettivamente i risultati auspicati in fase di progettazione. Gli sviluppi inattesi delle tecnologie sono testimoniati dalla storia di quasi tutte le innovazioni più importanti. Quando la IBM ha progettato e immesso sul mercato il primo personal computer, si attendeva che avrebbe avuto una diffusione limitatissima. Nessuno, a quell’epoca, poteva prevedere che nel giro di vent’anni il PC sarebbe entrato nelle case come strumento di comunicazione per l’accesso a Internet e che sarebbe stato presente in ogni tipo di organizzazione. La rete Internet deriva da ricerche svolte in ambito militare e nessuno avrebbe immaginato che sarebbe divenuta l’infrastruttura di comunicazione globale che è oggi. Il Web è nato per la realizzazione e gestione di pagine di testo multimediali collegate tra di loro (ipertesti). Oggi, sorprendentemente, le più recenti tecnologie Web trovano utilizzo crescente anche nello sviluppo di soluzioni gestionali per le aziende, come i software contabili. Dopo innumerevoli esperienze e studi in proposito, i fattori che determinano il successo dei progetti ICT restano talvolta sconosciuti: in alcune tipologie di applicazioni, i tassi di fallimento sono superiori al 50%. Identificare in maniera univoca le cause degli insuccessi è estremamente difficile e ogni progetto può rappresentare un caso a sé. Questo rende complesse e rischiose le decisioni dei manager sugli investimenti in campo tecnologico. Un altro esempio che illustra l’imprevedibilità e la complessità degli effetti derivanti dall’impiego dell’ICT nelle organizzazioni è il dilemma della valutazione economica dei sistemi informativi: nonostante i numerosi studi in proposito, risulta difficile stimare il valore economico delle risorse informatiche a disposizione (es. computer, reti, applicazioni software), perché non si può conoscere a priori la loro effettiva capacità di produrre reddito finché non vengono poste in uso. Ad esempio, un’identica soluzione tecnologica può essere
5
impiegata in due aziende diverse con effetti profondamente differenti su aspetti come l’organizzazione del lavoro, l’efficienza dei processi di produzione, la varietà e qualità dell’offerta, i rapporti con il mercato e la concorrenza. In tali condizioni, è pressoché impossibile riuscire ad isolare in maniera univoca il contributo dell’ICT alla generazione del reddito aziendale. Una serie di ricerche hanno mostrato come, inspiegabilmente, gli investimenti in ICT non sembrino determinare un aumento della produttività a livello macroeconomico,come invece sarebbe legittimo attendersi. Il “paradosso della produttività”, espressione coniata dal premio Nobel Robert Solow nel 1987, ha suscitato un acceso dibattito, ancora oggi in atto, che testimonia la complessità del rapporto tra ICT e sistema economico. Tornando alla domanda iniziale, possiamo soltanto rispondere che se le tecnologie trasformano le organizzazioni, questo avviene in modo tutt’altro che lineare e prevedibile. Non vi sono certezze sui processi di diffusione delle innovazioni; su come le tecnologie dell’informazione e della comunicazione influiscano sulla performance economica di un paese e neppure su quella di una singola organizzazione; su come debbano essere condotti i progetti di sviluppo dei sistemi informativi; sulle ragioni che determinano il successo o il fallimento degli investimenti ICT. Gli studi che hanno affrontato questi temi sono numerosi, complessi, spesso contraddittori, e si avvalgono di apporti teorici provenienti da aree disciplinari diverse. Di fronte alla ricchezza e alla varietà dei contributi da tenere in considerazione, lo studente potrebbe facilmente restare disorientato; d’altro canto, anche una raccolta antologica dei lavori più significativi, apparsi in epoche e contesti culturali diversi, risulterebbe fatalmente o troppo estesa oppure frammentaria e di difficile comprensione. Una soluzione alternativa, espressamente pensata per agevolare gli studenti e supportarne il lavoro, è quella di fornire loro una chiave di lettura semplificata che proponiamo in questa dispensa. La nostra proposta per leggere il rapporto tra organizzazioni e cambiamento tecnologico si sviluppa su due versanti. Innanzi tutto abbiamo considerato le tappe fondamentali dell’evoluzione tecnologica, con l’intento di individuare le “pietre miliari” dell’ICT, ossia i punti di svolta che hanno rappresentato un significativo passo avanti per le organizzazioni. Sull’altro versante, abbiamo richiamato sinteticamente alcune prospettive teoriche che hanno proposto un modo originale e influente di affrontare il tema. Il materiale è organizzato in due parti. Nella prima vengono individuate e illustrate le “pietre miliari”, attraverso una breve rassegna delle tecnologie dell’informazione e della comunicazione e delle loro applicazioni più significative. Nella seconda parte vengono esposte alcune prospettive teoriche che serviranno a interpretare in chiave organizzativa le "pietre miliari" ICT introdotte in precedenza, dando conto delle correnti di pensiero che hanno offerto alcuni degli apporti più rilevanti in materia. Il presente lavoro rappresenta un complemento ad un testo di informatica di base. Esso è pensato per gli studenti e intende fornire soltanto dei semplici spunti di riflessione su alcuni tratti e prospettive del pensiero organizzativo. Di conseguenza la bibliografia è stata sostanzialmente eliminata, mantenendo pochissimi riferimenti indispensabili ai lettori per la comprensione del testo. Gli studenti potranno trovare ulteriori integrazioni sul nostro tema utilizzando il “lenzuolo” (www.lenzuolo.net), che accoglie un elenco ragionato di alcune delle principali scuole del pensiero organizzativo, e prevede anche una sezione bibliografica.
6
PRIMA PARTE
ICT nelle organizzazioni: le pietre miliari In questa parte ci proponiamo di illustrare e discutere i concetti di base di alcune delle tecnologie dell'informazione e della comunicazione più significative. Abbiamo pensato di dare alla presentazione un taglio diverso dal solito: invece di fornire le definizioni e illustrare il funzionamento e le modalità di impiego delle varie tecnologie, osserveremo in chiave storica l'ICT "al lavoro" nelle organizzazioni, a partire dalle prime applicazioni fino ai giorni nostri. Cercheremo di capire quali innovazioni ICT hanno permesso alle organizzazioni di compiere significativi passi avanti rispetti al passato e perché, ponendo una particolare attenzione alle applicazioni “sul campo” e alle trasformazioni ad esse connesse. Non descriveremo direttamente le singole tecnologie, ma faremo di volta in volta riferimento al libro di testo1, rinviando il lettore alle definizioni, alle descrizioni, agli approfondimenti ivi presenti. I termini sottolineati e i riquadri esplicativi in fondo a ciascuna sezione sono stati previsti a tale scopo. Nel periodo di tumultuoso progresso tecnologico che va dall’inizio del secolo ai giorni nostri, abbiamo dunque tentato di individuare alcune tappe fondamentali, ciascuna delle quali costituisce, secondo noi, un significativo passo avanti rispetto alla precedente. La nostra valutazione è comunque opinabile e può essere messa in discussione, come effettivamente faremo nella parte finale del testo, dopo aver dedicato una sezione alla rassegna di alcuni studi sull’argomento che ci possono aiutare nell’analisi. In questa prima parte ci limitiamo intanto a osservare che la scelta delle “pietre miliari” è stata fatta tenendo in considerazione le indicazioni fornite da un certo numero di responsabili di sistemi informativi di grandi organizzazioni che hanno vissuto in prima persona la storia e l'evoluzione dell'informatica aziendale2. I criteri guida che abbiamo individuato in questo modo sono i seguenti: 1. efficacia: possibilità di disporre di applicazioni nuove, prima non realizzabili, per fare le cose meglio e in modo più appropriato;
1
Per la Facoltà di Scienze Politiche dell’Università Statale di Milano: Tecnologie dell’Informazione e della Comunicazione, di S.C. Sawyer e B.K. Williams, McGraw-Hill, Milano, 2002. 2
Abbiamo poi rielaborato e interpretato criticamente le indicazioni ricevute, giungendo a formulare, in via preliminare, un certo numero di criteri guida che ci aiutano a capire quanto importante possa essere una nuova tecnologia, se questa possa davvero considerarsi una “pietra miliare” per le organizzazioni. I pareri degli esperti ai quali va il nostro sentito ringraziamento - sono stati raccolti in due modi: inizialmente è stato sottoposto per posta elettronica un quesito aperto, che ci è servito a ottenere una prima visione d’insieme; in seguito, dopo un’analisi preliminare delle risposte ottenute, siamo ricorsi ad un’intervista non strutturata, con l’intento di approfondire i temi più significativi che erano stati evidenziati in precedenza.
7
2. efficienza: riduzione drastica dei costi a parità di risultato; 3. libertà sia in fase di scelta iniziale che di sostituzione delle tecnologie da parte dell’organizzazione utilizzatrice, ossia assenza di effetti di “lock-in3 tecnologico”. Ad esempio, l’adozione generalizzata di architetture “aperte” risponde a questo criterio; 4. empowerment dell'utente, il quale è potenzialmente in grado di operare in condizioni di maggiore autonomia; 5. facilità d’uso da parte dell’utilizzatore non esperto; 6. compatibilità, che assicura la salvaguardia degli investimenti e del patrimonio ICT preesistente anche in seguito all’adozione di innovazioni tecnologiche. Una innovazione tecnologica (ad esempio un nuovo software o dispositivo hardware) è compatibile con la tecnologia preesistente se la sostituisce mantenendone intatte le funzionalità (cioè ad esempio se è in grado di operare correttamente con tutte le altre componenti del sistema informativo di cui fa parte); 7. diffusione, cioè ampiezza della base installata, che è costituita dal numero di utenti che hanno adottato la tecnologia in oggetto. Secondo le indicazioni che abbiamo raccolto, una “pietra miliare” è tale se registra, rispetto alle tecnologie disponibili in precedenza, un apporto significativo in base a tutti i criteri sopra evidenziati4. Seguendo questi criteri abbiamo dunque costruito la tabella 1, nella quale le pietre miliari sono presentate e descritte sinteticamente. Nelle prossime sezioni esse verranno illustrate con maggiore dettaglio.
3
To lock in significa "chiudere dentro": spesso gli utenti restano ingabbiati, "chiusi dentro" nella tecnologia prescelta e utilizzata (per esempio il sistema operativo Windows di Microsoft), anche se si offrono loro delle alternative superiori per alcuni aspetti (come ad esempio il sistema operativo Mac OS di Apple), perché esistono dei costi di cambiamento (switching costs) e di coordinamento da sostenere in caso di rimpiazzo della vecchia tecnologia con la nuova. 4
Solitamente una “pietra miliare” è il risultato della combinazione di tecnologie/applicazioni “abilitanti” (enabling). Tale termine fa riferimento al ruolo imprescindibile da esse svolto (to enable significa infatti “rendere possibile”). La tastiera, ad esempio, ha costituito un significativo passo avanti quanto ad autonomia ed empowerment dell’utente, rispetto ai precedenti sistemi di immissione dei dati come le schede perforate. Essa però, da sola, non soddisfa tutti i criteri guida e pertanto non può essere considerata una pietra miliare.
8
Le applicazioni dell'ICT nelle organizzazioni (www.lenzuolo.net)
Periodo
Pietra miliare
ANNI '50
ANNI '60
Mainframe di prima generazione
Architetture tecnologiche dominanti
Tecnologie abilitanti
Sistemi elettromeccanici di elaborazione dati
Telaio Jacquard, Codifica binaria, schede perforate
Il computer moderno (macchina di Von Neumann); i relais; le valvole termoioniche; i transistor, il monitor, la tastiera, Architettura IBM S/360 le unità disco, il sistema Esecutive (Contabilità, operativo, i linguaggi di terza Paghe e stipendi, Primi generazione (Fortran, PL/1, sistemi di bancari di COBOL, …) sportello)
Architettura IBM S/370 MVS; Primi Minicomputer
ANNI '70
Applicazioni
Data Base Management Systems (DBMS) gerarchici (DL/1) e reticolari (IDMS); On Line Transaction Processing (OLTP): IMS, CICS
Obiettivi
Riduzione dei costi
Integrazione moderata di attività e processi interfunzionali
Mainframe di seconda generazione
Tabella 1: Le applicazioni dell'ICT nelle organizzazioni (www.lenzuolo.net)
segue
Periodo
ANNI '80
Pietra miliare
R
LAN Unix
Database relazionali, workstation/reti Unix e PC monoutente
Architetture tecnologiche dominanti
Tecnologie abilitanti
DBMS relazionali Oracle, DB2, Mainframe + RDBMS; Sybase, ecc.; tool di minicomputer; produttività indiv.: workstation e reti videoscrittura, fogli elettronici, UNIX; PC monoutente ecc.; reti Ethernet
SQL standard e sistemi di accesso ai database tipo ODBC; linguaggi di Windows; Reti di PC; Sistemi Client/Server programmazione ad interfaccia grafica tipo Visual Basic e linguaggi di quarta generazione
1990-1996
Applicazioni
Obiettivi
Integrazione delle applicazioni; estrazione ed analisi delle informazioni per supporto alle decisioni Gestionali/direzionali (interbancario, controllo di gestione, risk management, asset management, ecc.) Informatica diffusa nei processi di business; trasformazione e aumento dell’efficacia nei processi di business
Windows; LAN di PC; Client/Server
Internet e il Web; Intranet; sistemi multitier/client server; componenti software distribuiti via Web; sistemi wireless
1997-2003
linguaggi HTML e derivati; application server (es. CGI, ASP, CFM, PHP); web services; sistemi wireless
Di comunicazione e Informatizzazione e integrazione nel contesto integrazione globale; socio-economico di innovazione dei processi riferimento (Internet di business e dei banking, home banking, processi decisionali virtual banking, ecc.)
Internet; siti Web; Intranet; multi-tier client/server; Web Information Systems
Tabella 2: Le applicazioni dell'ICT nelle organizzazioni (www.lenzuolo.net)
1. Anni '50 I sistemi elettromeccanici di elaborazione dati
Immaginiamo di dover tenere la contabilità di una grande azienda, con migliaia di clienti, fornitori e documenti contabili, in modo completamente manuale: dovremmo dotarci di grandi schedari per ciascuna tipologia di documento (es. fatture attive, fatture passive, contabili bancarie, incassi, pagamenti, ecc.); dovremmo inoltre aggiornare manualmente un registro delle operazioni contabili compilando una nuova riga per ogni operazione (es. incassata fattura dal cliente Verdi SpA, per un importo di Euro 2540,20; versato importo di Euro 8.350,00 in banca Y, Conto Z; ecc.). Per ciascuna operazione dovremmo infine aggiornare la "scheda contabile" dei conti interessati, in modo da poterne sempre controllare il saldo. Per esempio l'incasso di una fattura di 1000,00 Euro emessa al cliente Rossi, con accredito sul conto Z della banca Y richiederà l'addebito di 1000,00 Euro nella sezione "Avere" della scheda del cliente Rossi e un pari accredito nella sezione "Dare" della scheda del conto corrente bancario. Se le schede vengono sempre tenute aggiornate, la formazione del bilancio dell'azienda può avvenire riportando in un tabulato a sezioni contrapposte tutti i saldi delle schede delle attività, delle passività, dei costi e dei ricavi. Tale sequenza di operazioni, che potrebbe sembrare apparentemente semplice, richiede un’incredibile quantità di trascrizioni, ricerche in schedari, controlli e correzioni che cresce esponenzialmente con le dimensioni dell'organizzazione fino a diventare davvero problematica: le grandi imprese, anche per la semplice tenuta delle contabilità clienti e fornitori, si sono dovute dotare di grandi archivi con schedari bene organizzati e rigorosamente ordinati e controllati, con procedure di aggiornamento delle schede molto rigorose e tante persone addette al ritrovamento, all'aggiornamento, alla verifica dei dati archiviati. Immaginate quanto complesso possa divenire questo sistema se lo estendiamo anche ad altre aree aziendali, come la gestione del personale (es. calcolo e liquidazione degli stipendi e dei contributi), la gestione dei magazzini e degli inventari (es. contabilità di magazzino), la produzione (es. distinte di produzione, lavorazione, ecc.), la gestione degli ordini di materie prime, la gestione degli ordini dai clienti, per non parlare del controllo di gestione, dei controlli di qualità, della sicurezza e di ogni altro settore oggetto di rilevazione e controllo. Tutte le funzioni, oggi, sono potenzialmente interessate dalle possibili applicazioni delle tecnologie dell'informazione. In passato ciò non era possibile, si utilizzavano archivi cartacei con procedure molto strutturate, con una organizzazione rigida, gerarchica e fortemente accentrata e un grado elevato di routinizzazione delle attività. Le macchine per la contabilità cosiddetta "a ricalco" hanno rappresentato un primo passo avanti per lo snellimento di alcune operazioni, riducendo fortemente
11
il numero di trascrizioni da effettuare per ogni evento: con un'unica scrittura, veniva effettuata sia l’annotazione sul libro giornale, che quelle di aggiornamento dei saldi delle schede contabili interessate. La tecnologia usata, quella del "ricalco", è basata sulla sovrapposizione dei documenti da compilare, opportunamente predisposti, sulla duplicazione - attraverso carta carbone o simili - della scrittura originaria, che viene così effettuata una sola volta. Tali sistemi, disponibili e utilizzati intorno agli anni '30-'40, hanno rappresentato un primo tentativo di snellimento e meccanizzazione del lavoro amministrativo. Negli anni '50 le prime "macchine" di elaborazione dati cominciano ad apparire: si tratta di sistemi elettromeccanici, non dotati di programmi residenti in memoria, ma programmati "in hardware" per svolgere funzioni molto specifiche, come quelle di ordinare schede perforate, effettuare ricerche di schede, produrre nuove schede, accedere agli archivi. Se Charles Babbage fosse stato ancora vivo, sarebbe probabilmente rimasto ammirato, ma anche deluso, dalle prestazioni di questi sistemi: egli, già nel 1835, aveva concepito il progetto della "macchina analitica" su cui investì tutte le sue energie e le sue sostanze. La macchina analitica non fu mai realizzata per intero, ma aveva potenzialmente capacità piuttosto avanzate. Le macchine elettromeccaniche degli anni '50 erano in grado di elaborare efficientemente grandi moli di dati, ma non potevano, come era nelle ambizioni di Babbage, essere programmate per qualsiasi tipo di elaborazione. La tecnologia delle parti meccaniche in movimento e dei sistemi elettrici di commutazione basati su relais era evidentemente troppo povera per poter realizzare una macchina di calcolo generica e programmabile. Tuttavia l'incremento di efficienza rispetto alle operazioni puramente manuali era enorme. Un esempio straordinario del salto di qualità ottenuto con le tecnologie elettromeccaniche è quello del censimento della popolazione negli Stati Uniti. Verso la fine del 1800 risultava sempre più difficile elaborare manualmente i risultati delle rilevazioni periodiche su base nazionale. Nel 1880 la popolazione era cresciuta da 40 a 50 milioni rispetto al censimento precedente (1870); ci vollero ben 8 anni per avere i risultati. Nel 1890 la popolazione ammontava a circa 63 milioni di unità e si temeva che non sarebbero bastati 14 anni per la conta e l’elaborazione manuale delle schede, che richiedevano l’impiego di vere e proprie montagne di carta. In quell’occasione fu impiegata per la prima volta la macchina ideata e brevettata da Herman Hollerith nel 1887. L’idea era nata ad Hollerith osservando i telai “Jacquard”, impiegati nella fabbrica di tessuti del cognato, che permettevano di impostare il tipo di lavorazione del tessuto mediante fori su delle apposite schede. Anche nei biglietti ferroviari del tempo si usava la perforazione per registrare alcune informazioni sul passeggero. Hollerith progettò e realizzò una sorta di telaio basato su un sistema di schede, con una scheda per ogni persona e un foro per ogni caratteristica della persona. Il censimento del 1890 fu effettuato con la macchina di Hollerith, con incredibili risultati: il primo conteggio della popolazione richiese soltanto 6 settimane! L’intera elaborazione, che comprendeva la redazione di oltre 10.000
12
pagine di rapporti, fu ultimata in circa due anni, laddove ne sarebbero occorsi 14 con il sistema manuale. Il risparmio stimato fu di oltre 5 milioni di dollari. Negli anni ’50, l'introduzione nelle grandi organizzazioni di macchine di elaborazione elettromeccaniche a schede perforate (derivate da quella di Hollerith) comportò la nascita dei primi centri di elaborazione dati (CED), unità autonome e separate dal resto dell'organizzazione sia dal punto di vista fisico che per il tipo di attività e competenze richieste. Procedure molto rigide regolavano sia l'immissione dei dati che la richiesta di elaborazioni, che avvenivano necessariamente in modalità batch. Questo significa che se, ad esempio occorreva registrare un incasso sulla scheda di un cliente, non era possibile ottenere l'aggiornamento immediato della scheda medesima: non esistevano tastiere né monitor e l'utente era costretto a scrivere manualmente l'operazione su di un modulo apposito, passare il modulo al reparto perforazione schede dove alcune operatrici si occupavano di trasferire i dati sulle schede perforate. Queste ultime venivano poi inviate al centro di calcolo che, dopo qualche tempo (di solito giorni) rendeva finalmente disponibili le schede aggiornate. Questi sistemi elettromeccanici non erano programmabili e non erano ancora dei calcolatori "general purpose" (ossia di impiego generico) del tipo della macchina analitica concepita da Babbage: dunque per avere una prima applicazione commerciale il progetto di Babbage dovette aspettare oltre un secolo ed anche essere notevolmente semplificato rispetto alle possibilità di applicazione originariamente concepite dall'autore. Le prime vere macchine elaboratrici programmabili "complete", nel senso concepito da Babbage (con alcuni ulteriori passi avanti), che ebbero un significativo impatto commerciale non apparvero sulla scena prima del 1964, ma in poco tempo apportarono una vera e propria rivoluzione nelle organizzazioni. È quello che vedremo nella prossima sezione.
Le tecnologie abilitanti: telaio Jacquard, codifica binaria, schede perforate
Il prototipo della prima "Difference Engine" alla quale Babbage lavorò febbrilmente dal 1821 al 1834, ma che non fu mai ultimato, pesava 3 tonnellate e aveva 4000 parti in movimento. Dopo il 1834 Babbage concepì qualcosa di ancora più ambizioso: quello della macchina analitica, che era il primo sistema di elaborazione general purpose: il progetto era di straordinaria complessità principalmente per un motivo: la tecnologia abilitante non era ancora pronta e quelle disponibili si rivelarono non adatte. Babbage fece uso di due tecnologie allora note: un sistema meccanico molto complesso, derivato da quello dei telai Jacquard, e le
13
schede perforate. I telai Jacquard sono stati al centro della rivoluzione industriale dell'inizio del XIX secolo, erano macchine con ingranaggi meccanici piuttosto elaborati che permettevano di automatizzare notevolmente i lavori di tessitura, riducendo drasticamente il numero di persone necessarie, tanto da provocare massicci licenziamenti e forti tensioni sul mercato del lavoro. Le schede perforate erano nate nel 1810 e furono introdotte da Babbage nella sua macchina con un'intuizione geniale. La macchina analitica "… poteva leggere due insiemi di schede perforate, dette schede operative.e schede variabili. Il primo insieme di schede definiva la serie di operazioni da eseguire, mentre il secondo insieme specificava gli indirizzi di memoria interna su cui operare; prese a coppie, due schede definivano quindi una istruzione analogamente ai moderni calcolatori elettronici; l'unica differenza sta nel fatto che la memoria di programma è costituita da schede perforate. […]. L'unità aritmetica […] avrebbe dovuto avere una velocità di calcolo di 1 secondo per addizioni e sottrazioni, 1 minuto per moltiplicazioni e divisioni. Gli aspetti programmativi della macchina analitica furono investigati principalmente da una collaboratrice di Babbage, la discepola di De Morgan, Ada Augusta Byron, contessa di Lovelace, figlia del noto poeta inglese. Ada Lovelace può essere considerata a buon diritto la prima studiosa di linguaggi e metodologie di programmazione: ella infatti ideò un linguaggio di tipo assemblativo per programmare la macchina, introdusse il concetto di ciclo ripetuto anche annidato e il concetto di variabile indice." (Cioffi 1993, pag. 1244). Le macchine elettromeccaniche che hanno avuto diffusione commerciale negli anni '50 fanno ancora sorprendentemente uso, dopo oltre un secolo, della tecnologia prevalentemente meccanica adottata da Babbage, con l'aggiunta dei commutatori a relais elettromeccanici (nati intorno al 1850), e delle schede perforate di nuova generazione, che intorno al 1880 furono standardizzate per la memorizzazione di dati numerici. Rileviamo qui anche i progressi che le tecniche di codifica numerica e la logica binaria (introdotta da George Boole nel 1847) che si rivelarono fondamentali non solo per questi sistemi, ma anche e soprattutto per i primi calcolatori elettronici che negli anni '50 erano in fase di avanzata sperimentazione e sviluppo. Notiamo dunque un fenomeno che incontreremo spesso nella nostra rassegna: le tecnologie abilitanti che vengono impiegate per le applicazioni commerciali risalgono di solito a molti anni prima. Perché nasca e si diffonda un'innovazione di significativo impatto organizzativo e commerciale è necessaria una combinazione di componenti che magari esistevano già da tempo, ma che fino a quel momento non avevano ancora trovato adeguata applicazione.
14
Concetti illustrati nel libro di testo Per capire il significato di alcuni dei concetti qui introdotti, potete fare riferimento alle seguenti sezioni del libro di testo: •
Analogico e digitale: sez. 5.1, pag. 209.
•
Il sistema binario e la codifica delle informazioni: sez. 4.1, pag. 150.
•
Che cosa è il software: cap. 1, pag. 12 e 18.
•
Programmazione: appendice A.2, pag. 309.
•
Linguaggi assemblativi: appendice A.3, pag. 312.
15
16
2. Anni '60 II mainframe: l’architettura 360
Potrà sembrare strano che aspettiamo fino al 1964 prima di prendere in considerazione, nella nostra rassegna, l'avvento di un computer, nel senso moderno del termine. Ricordiamo però che siamo interessati alle vere e proprie "pietre miliari" dal punto di vista delle applicazioni di business. Anche se, come è brevemente illustrato nel riquadro sulle tecnologie abilitanti, i primi computer erano stati ideati, realizzati e persino commercializzati già da diversi anni, soltanto con l'affermazione definitiva della famiglia di elaboratori IBM System 360, avvenuta appunto nel 1964, inizia la seconda fase di trasformazione che determina nella maggior parte delle grandi organizzazioni una serie di innovazioni radicali e diffuse. L'architettura 360 definisce il paradigma fondamentale dell'elaborazione basata su mainframe valido ancora oggi. Subito dopo la sua comparsa sul mercato, avvenuta nel 1964, questa famiglia di elaboratori, su cui l'IBM aveva investito 5 miliardi di dollari, ottiene un successo commerciale senza precedenti: nel giro di soli due anni gli ordini raggiungono il ritmo di 1000 sistemi al mese, un ammontare straordinario se si pensa che il famoso DEC PDP-1, commercializzato nel 1960, era stato prodotto in soli 50 esemplari, e anche il 1401, il primo elaboratore a transistor della precedente serie IBM con il quale la società aveva guadagnato nel 1961 una quota di mercato pari all'84%, era stato prodotto, in tutto il periodo di commercializzazione, in non più di 12.000 esemplari. La serie 360 rappresenta una vera e propria pietra miliare non solo per la sua diffusione, ma per tutta una serie di innovazioni tecnologiche fondamentali che essa impone a partire dalla sua affermazione. Anche se tali innovazioni erano già apparse in precedenza su altri sistemi di minore diffusione e impatto, nella serie 360 esse costituiscono, tutte insieme, quel particolare "cocktail" di innovazione che rappresenta un fondamentale passo avanti nella storia. La prima e più importante innovazione rispetto alle macchine elettromeccaniche (che il 360 eredita dai suoi predecessori, e in particolare dall'IBM 701, il primo computer elettronico di IBM, prodotto in 19 esemplari dal 1953 al 1957), è quella dalla struttura di computer "moderno" con programma residente in memoria (vedi riquadro, macchina di Von Neumann). Dal punto di vista pratico questo non significava ancora, per l'utente finale, che fosse possibile scrivere autonomamente le proprie applicazioni, ma il fatto che la macchina potesse, in teoria ed in pratica, far funzionare qualsiasi tipo di procedura senza dover essere modificata o ricablata (cioè senza dover aggiungere o togliere delle parti o cambiare i collegamenti elettrici interni) rappresenta l'avverarsi del sogno di Babbage e pone le basi per tutti i cambiamenti e le innovazioni che si sono successivamente verificati. I computer di oggi sono ancora, dal punto di vista
17
concettuale, delle macchine di Von Neumann con programma residente in memoria. Un'altra significativa innovazione è quella della presenza di un sistema operativo separato dalla macchina e commercializzato indipendentemente. Da questo momento in poi l'importanza del sistema operativo rispetto all'hardware risulterà elevata e crescente. Quello che comincia da subito, lentamente, a rivoluzionare le attività e le competenze nel CED è però la definitiva affermazione dei primi terminali interattivi con monitor e tastiera. Prima dell'introduzione dei terminali (vedi riquadro) nelle grandi organizzazioni un numero rilevante di persone si dedicavano alle attività di perforazione, controllo, selezione e ordinamento delle schede perforate, che erano l'unico modo di "comunicare" alla macchina i dati da elaborare e le operazioni richieste. Questo comportava che le operazioni fossero necessariamente limitate, rigidamente precostituite, routinarie e comportassero lunghi tempi di attesa dal momento in cui veniva sottoposta una transazione a quello in cui questa veniva effettivamente elaborata con l'emissione dei risultati e la loro registrazione. Tipicamente gli operatori della contabilità dovevano sottoporre dei moduli compilati a mano al reparto di perforazione delle schede; le schede perforate venivano poi passate al CED che "magicamente" le elaborava e otteneva nuove schede come risultato, ed eventualmente delle stampe. Il personale addetto alla perforazione delle schede (solitamente delle operatrici) era subordinato gerarchicamente ad un responsabile che aveva un potere assoluto di controllo e il tutto funzionava come una piccola catena di montaggio con sequenze di attività predeterminate in modo assolutamente rigido. La separazione tra i reparti amministrativi (gli utenti del sistema), quelli di immissione dei dati e il centro di elaborazione era totale, e gli utenti non avevano nessuna percezione né tantomeno alcun potere decisionale sul contenuto e le modalità delle elaborazioni effettuate, i cui dettagli rimanevano confinati nei ristretti ambiti del CED, assolutamente isolato e inaccessibile ai più. Questo tipo di organizzazione restava sostanzialmente inalterato con l'introduzione dei mainframe di prima generazione, ma l'introduzione dei terminali interattivi con monitor pose le basi per un cambiamento che avvenne gradualmente nel tempo. Inizialmente i terminali rimpiazzavano i perforatori di schede senza alcun cambiamento né nelle procedure né nell'organizzazione del lavoro: semplicemente le operatrici digitavano alla tastiera del terminale dei dati che prima venivano immessi attraverso il perforatore di schede. Gradualmente, però, i monitor e le tastiere cominciarono ad apparire sulle scrivanie degli utenti; i sistemi operativi vennero aggiornati e le applicazioni riscritte ed adattate in modo da permettere alcune interrogazioni non più in modalità "batch" (cioè ricalcando il ciclo immissione, invio del "job" all'elaboratore che lo mette in coda; attesa; elaborazione; recupero dei risultati; tipico dei sistemi basati su schede) ma in "tempo reale" (come avviene oggi: l'utente digita un comando alla tastiera e ottiene subito il risultato sullo schermo).
18
Un fenomenale impulso all'innovazione venne dunque proprio dalla combinazione della disponibilità di nuove periferiche per l'immissione e la visualizzazione dei dati (monitor e tastiere) e di nuovi sistemi operativi che permettevano la gestione di più terminali contemporaneamente (multiprogrammazione) e le elaborazioni in tempo reale che gradualmente affiancarono quelle in modalità differita. Il risultato fu che si avviò un processo, lento ma inesorabile, di graduale trasferimento dei terminali dal CED e dai centri di perforazione delle schede (che tenderanno nel tempo a snellirsi fino a sparire del tutto) alle scrivanie degli utenti, che cominciarono, gradualmente, ad avere un ruolo più diretto e una maggiore autonomia nelle elaborazioni. Con l'introduzione dei mainframe nei CED cominciano ad affermarsi le figure professionali dei sistemisti, degli analisti e dei programmatori, figure altamente specializzate che acquistano, man mano che si rendono disponibili sistemi operativi e linguaggi di programmazione, un potere sempre crescente che deriva loro dalla possibilità di poter creare delle nuove procedure e modificare quelle esistenti. È in questo periodo che nascono e si diffondono i linguaggi di terza generazione come Cobol e PL/1. In questa fase gli utenti sono completamente sottoposti all'autorità e alle decisioni prese in ambito CED e non hanno alcuna possibilità né velleità di scriversi autonomamente i programmi di cui potrebbero aver bisogno. Si innesca però un processo di graduale aumento della complessità delle attività svolte sia nel CED che da parte degli utenti (maggiore varietà e minore prevedibilità). Un processo che porterà in seguito a trasformazioni molto rilevanti. Le applicazioni tipiche di questi anni sono quelle di contabilità generale, di paghe e stipendi, e i primi sistemi di sportello nelle banche, caratterizzate da elaborazioni di grandi moli di dati effettuate in gran parte in modalità batch.
Le tecnologie abilitanti: il computer moderno (macchina di Von Neumann), i relais, le valvole termoioniche, i transistor, il monitor, la tastiera, le unità disco, il sistema operativo, i linguaggi di terza generazione
Come abbiamo già accennato, l'architettura del primo computer nel senso moderno del termine fu concepita diciotto anni prima dell'introduzione dell'IBM 360, ad opera di John Von Neumann. Egli la illustrò in un famoso progetto del 1946, concepito in pochi mesi (dopo anni di ricerche preliminari) assieme a Goldstine e Burks in un laboratorio nato nel 1945 grazie a una joint venture tra l'Institute of Advanced Studies dell'Università di Princeton, la Radio Corporation of America e vari organismi militari degli Stati Uniti: "Nel giugno 1946 era pronto un rapporto […] nel quale si esponeva quella che è nota come "l'architettura Von Neumann" che costituisce ancor oggi,
19
indipendentemente dai progressi tecnici, la struttura di base dei calcolatori. Si studiavano le condizioni di un'unità di memoria ideale, e si stabiliva una differenziazione tra livelli di memoria: la memoria primaria, implementata mediante il tubo Selectron realizzato dalla RCA, e le cui componenti erano organizzate in <
>; la memoria secondaria, che organizzava i dati che dovevano essere trasferiti alla memoria principale a mano a mano che si rendevano necessari, e che erano registrati su pellicole o nastri magnetici. Quindi si esaminava il funzionamento delle operazioni aritmetiche fondamentali: la rappresentazione dei numeri all'interno della macchina era binaria […]. Diversi aspetti erano lasciati da parte e molte idee erano esaminate in modo non definitivo, poiché era necessario attendere lo studio e la realizzazione di molti elementi tecnici" (Israel e Millan Gasca, 2002, pagg. 78-79). Ci vollero molti anni prima di poter realizzare in pratica questo progetto: il primo esemplare funzionante della "IAS machine" apparve solo nel 1952, e nel frattempo proprio in quel periodo venivano realizzati altri prototipi simili da gruppi di ricerca concorrenti. La IAS machine e i primi computer commerciali, come l'Univac I (vedi Fig. 1), nato nel 1951, prodotto negli Stati Uniti dalla Remington Rand, venduto in 46 esemplari a un milione di dollari ciascuno, e il Whirlwind (anch'esso nato nel 1951, progettato e costruito al MIT (Massachusetts Institute of Technology), utilizzavano le valvole termoioniche per i circuiti di memoria. Enormi ingombri, consumi elevati e altissime possibilità di guasti rendevano ingestibili questi primi computer. Ad esempio il Whirlwind aveva circa 5000 valvole e occupava un'area di 288 metri quadri. Per maggiori dettagli sulla storia di questi primi calcolatori potete far riferimento a (Cioffi 1993, pagg. 1246-50 e al prezioso e ricchissimo materiale pubblicato dal Computer History Museum: http://www.computinghistorymuseum.org/teaching/lectures/lectures.htm).
È interessante notare quali applicazioni commerciali ebbero i computer che apparvero sul mercato in questo periodo. Uno dei primi calcolatori in commercio fu l’IBM 701 (Fig. 2), prodotto in 19 esemplari tra il 1953 e il 1957; il primo 701 fu installato presso la sede centrale IBM a New York; tre andarono presso laboratori di ricerca atomica; 8 a società di progettazione aeronautica.; tre ad altri centri di ricerca; due ad agenzie governative statunitensi, compreso il primo computer installato presso il Ministero della Difesa; due alla Marina statunitense e l’ultimo 701 fu collocato all’inizio del 1955 presso il centro di ricerche meteorologiche americano. Il primo computer a programma registrato in memoria per applicazioni gestionali fu fortemente voluto e sostenuto dalla famiglia dei commercianti inglesi di the, i famosi Lyons. Dopo una visita all’Università
20
di Princeton, nel 1947 il consiglio di amministrazione dei Lyons autorizzò un cospicuo finanziamento all’Università di Cambridge per la realizzazione del primo computer commerciale da ufficio, che vedrà la luce nel 1951 e verrà chiamato LEO (Lyons Electronic Office), con un’applicazione pilota per la gestione del personale di panetteria. Il LEO II, che seguirà a breve (1954), fu adottato con successo non solo dai Lyons, ma da molte altre organizzazioni. Ecco un elenco delle prime installazioni:
Organizzazione
Sede
Data
1 J. Lyons & Co. Ltd.
Londra
Mag. 1957
2 W.D & H.O. Wills
Bristol
Set. 1958
3 Stewarts & Lloyds
Corby
Giu. 1958
4 Ford Motor Co. (ricambi)
Aveley
Dic. 1958
5 Leo Computers Ltd.
Londra
Lug. 1959
6 Ministry of Pensions
Newcastle
Nov. 1959
7 British Oxygen Co.
Edmonton
Feb. 1960
8 Standard Motor Co.
Coventry
Lug. 1960
9 Ilford Ltd.
Ilford
Nov. 1960
10 W.D. & H.O. Wills
Bristol
Apr. 1961
11 Ford Motor Co. (paghe)
Dagenham
Gen. 1961
Proprio nel 1951 William Shockley inventa il primo transistor a giunzione, un passo che diede il via alla cosiddetta tecnologia "allo stato solido", destinata a rivoluzionare in maniera radicale l'elettronica digitale. Per poter costruire una macchina di Von Neumann, i "mattoncini" che formano la memoria centrale e l'unità di elaborazione sono semplici interruttori comandati da impulsi elettrici. Nelle macchine elettromeccaniche questi interruttori erano realizzati con tecnologia elettromagnetica (relais) ingombrante, delicata e che assorbiva molta corrente. Questo poneva dei limiti fisici che rendevano praticamente impossibile la realizzazione di un elaboratore completo. Grazie alle valvole termoioniche questi limiti vennero per la prima volta superati: una valvola funziona come un relais, ma è più versatile (cioè permette di realizzare circuiti più complessi), assorbe meno corrente ed è meno soggetta a usura meccanica. I limiti delle valvole, ancora troppo ingombranti e ad elevato consumo, vennero rapidamente alla luce nei primi calcolatori e soltanto con i transistor e tutto lo sviluppo dell'elettronica "a stato solido", cioè basata sulle proprietà di piccole
21
piastrine di silicio sovrapposte, furono definitivamente superati avviando un processo di miniaturizzazione assolutamente straordinario che dura fino ai giorni nostri. La differenza fondamentale tra i "chip" di silicio e le valvole termoioniche è che non sono più necessari i bulbi di vetro sotto vuoto e i filamenti incandescenti delle valvole termoioniche, quindi è possibile costruire questi piccoli "interruttori" utilizzando piastrine sempre più piccole che consumano sempre meno corrente. Dato che la capacità di memoria centrale e la potenza di elaborazione di una macchina di Von Neumann dipendono direttamente dal numero di "interruttori" che vengono usati, è possibile immaginare perché il PC con cui è stato scritto questo testo sia enormemente più potente della IAS machine di Von Neumann: all'interno del nostro personale vi è un componente che si trova in ogni moderno personal computer, ossia l'unità di elaborazione centrale, un "mattoncino" abbastanza piccolo contenente oltre 10 milioni di "interruttori" di silicio, ciascuno delle dimensioni di circa 1/3 di milionesimo di millimetro quadrato(!); basti pensare invece che la IAS machine aveva in totale soltanto 2300 "interruttori" realizzati con valvole, ciascuna delle dimensioni di una piccola lampadina e immaginare che ingombro incredibile avrebbe avuto un'ipotetica macchina con 10 milioni di valvole (senza contare i milioni di valvole aggiuntive necessari per la memoria centrale…). Sarebbe stata assolutamente impossibile da costruire e da far funzionare. Il monitor e la tastiera, componenti essenziali per l'interazione dell'utente con la macchina, la cui disponibilità pose le basi per l'avvio di un graduale processo di "empowerment" degli utenti, apparvero per la prima volta su un elaboratore commerciale nel DEC PDP-1 (1960), un computer molto famoso, ancorché prodotto dalla Digital in soli 50 esemplari. Esso non richiedeva risorse e strutture importanti (nessun impianto di condizionamento, un solo operatore, elaborazione interattiva). Le possibilità di elaborazione interattiva sono confermate anche dal fatto che su questa piattaforma venne creato, nel 1962, il primo videogioco, SpaceWar!, nato presso il MIT (Massachusetts Institute of Technology). L'elaborazione interattiva e i computer ad uso di un utente singolo (i futuri minicomputer) sono destinati ad avere nel seguito forte valenza organizzativa. Le unità a disco nascono anch'esse qualche anno prima del 360: già il 13 settembre 1956 IBM presentò 305 RAMAC, il primo computer disk storage system, della capacità di 5 MB, su 50 dischi da 24 pollici di diametro. Nel 1962 nacquero i primi dischi rimovibili della capacità di 2 MB l'uno che possono contenere l'equivalente di 25.000 schede perforate. L'introduzione delle unità disco non fu solo importante per l'aumento della velocità, la riduzione dell'ingombro e dei costi rispetto alle schede perforate e alle unità nastro: con la disponibilità dei dischi
22
comincia a rendersi possibile l'accesso a più archivi da parte della stessa applicazione, con la conseguenza che nascono le prime applicazioni interfunzionali (es. integrazione di contabilità e archivio clienti). Il primo sistema operativo nacque nel 1956, per l'elaboratore IBM 704, ad opera di Bob Patrick (General Motors) e Owen Mock (North American Aviation). In quel periodo i sistemi operativi venivano realizzati e costruiti insieme all'hardware della macchina e non potevano essere separati da essa. In seguito, una delle grandi innovazioni dell'architettura 360 fu proprio quella di separare lo sviluppo e l'assistenza del sistema operativo, da quello dell'elaboratore, sia tecnicamente che commercialmente. Questo valorizzò il sistema operativo e ne permise una più rapida evoluzione. I linguaggi di terza generazione che trovarono pieno impiego nell'architettura 360, nascono anch'essi qualche anno prima: Il FORTRAN, per applicaziioni scientifiche, nel 1957. L'ALGOL (ALGOrithmic Language) nasce in tre versioni successive nel 1958, 1960, 1968. È considerato il padre dei linguaggi moderni di terza generazione, anche se non ha avuto una grande diffusione commerciale per la scarsa attenzione ottenuta dai vendor e per l'assenza di istruzioni di inputoutput standard. Praticamente tutti i linguaggi di programmazione moderni possono essere definiti "ALGOL-like" in quanto hanno ereditato da esso concetti fondamentali come la gerarchia degli ambienti e delle strutture di controllo. Uno dei principi fondamentali è quello dell'indipendenza dall'hardware. L'ALGOL è rimasto famoso non solo per i principi innovativi poi trasmessi ai successori, ma anche per essere il linguaggio di elezione per la descrizione degli algoritmi. A tal fine esso è divenuto uno standard universalmente accettato. Il COBOL nasce nel 1960 ad opera della Codasyl, Committee on Data Systems Languages, una commissione cui partecipavano il Pentagono e diverse case costruttrici. COBOL sta per Common Business Oriented Language: fu concepito per applicazioni commerciali, ma anche per fornire ai programmi la possibilità di funzionare su macchine diverse. Ebbe una grande diffusione ed è molto usato ancora oggi. Infine il BASIC nasce proprio nel 1964, come la famiglia IBM 360: è un linguaggio sviluppato originariamente per gli studenti del Dartmouth College, con l'intento di essere facilmente accessibile ai non esperti. L'uso congiunto di BASIC e dei terminali ha posto le premesse per far nascere una nuova modalità di elaborazione nei CED delle aziende, con maggiore libertà e "potere" per gli utenti che sono messi in grado - per la prima volta - di sviluppare direttamente proprie semplici applicazioni software.
23
Concetti illustrati nel libro di testo Per capire il significato di alcuni dei concetti qui introdotti potete fare riferimento alle seguenti sezioni del libro di testo:
24
•
Il computer moderno (macchina di Von Neumann), il monitor, la tastiera, le unità disco: capitolo 4.
•
Mainframe e tipi di computer: sez. 1.2, pagg. 9-11.
•
Miniaturizzazione: sez. 1.4, pagg. 20-21.
•
Il sistema operativo, sez. 3.2, pagg. 91-106.
•
I linguaggi di programmazione: appendice A.3, pagg. 310-312.
3. Anni '70 L’architettura 370, i DBMS, i minicomputer
Lo scenario tecnologico degli anni '70 è dominato dai mainframe che nel frattempo si sono ampiamente diffusi nelle organizzazioni medio-grandi e che sono giunti alla seconda generazione, rappresentata in modo paradigmatico dall'architettura IBM System 370. Essa rappresenta una sostanziale evoluzione sulla precedente per potenza di calcolo, capacità di memoria, costi e flessibilità operativa, e ha segnato la storia dell'informatica per i successivi 30 anni. Accanto a questa innovazione evolutiva, rileviamo però l'affermazione di almeno due tecnologie che rappresentano un radicale punto di svolta per le applicazioni aziendali: i sistemi di gestione delle basi dati e i primi "minicomputer". La prima applicazione software gestionale su larghissima scala, che faceva uso di archivi dati di enormi dimensioni, da aggiornare e consultare continuamente è probabilmente il famoso sistema SABRE sviluppato da IBM per American Airlines. Esso è stato rilasciato nella prima versione funzionante nel 1962 ed ha costituito, nella sua lunga storia che continua ancora oggi, un vero e proprio “motore di innovazione”: le soluzioni sperimentate su SABRE sono spesso state oggetto di imitazione e ampia diffusione nel settore del trasporto aereo e in tutti gli altri settori. SABRE, che è stato concepito fin dall’inizio con una gestione dei dati accentrata e integrata, ha permesso di costruire un sistema accessibile in maniera trasparente ed efficace, con una copertura territoriale molto ampia. Il sistema SABRE è stato nel tempo continuamente migliorato ed esteso, ed ha assunto un'importanza strategica così elevata e un contributo così determinante alla generazione dei profitti dell'azienda che quando fu deciso lo scorporo di questo importante asset da American Airlines, ad esso venne attribuito un valore pressoché equivalente al resto delle attività materiali della società, ivi compresa l'intera flotta di velivoli, tutti gli uffici e le attività finanziarie. Come è cambiato il modo di lavorare con SABRE e con le applicazioni simili che gli hanno fatto seguito in tutti i settori? I resoconti a cui facciamo riferimento sono tratti dal manoscritto non pubblicato IBM (1988) “TPF: IBM’s unknown operating system” e da un articolo di Leslie Goff su Computerworld (1999) “1960: Sabre takes off”. Entrambi i documenti sono reperibili su: www.blackbeard.com/tpf/index.html e www.cnn.com/TECH/computing/specials/flashback/. Prima dell’avvento dei mainframe, negli anni ’40, le prenotazioni aeree si gestivano in modo totalmente diverso. Ad esempio in American Airlines c’era un ufficio centrale con l’indice a schede dei posti disponibili, con una scheda cartacea per ogni aereo che doveva partire, che ospitava un segno per ogni posto occupato. Otto-dieci persone si occupavano di creare, ordinare, aggiornare, recuperare le schede. Ciascun addetto conosceva la capienza fisica di ognuno degli aerei ed era in grado di dire, contando i segni già presenti sulla scheda, quanti posti liberi erano rimasti e comunicare l’informazione per telefono agli agenti che la richiedevano. Tipicamente solo le agenzie maggiori si rivolgevano per telefono
25
direttamente alle compagnie aeree e tenevano nei loro uffici delle grandi lavagne, per consultare le quali spesso gli agenti dovevano ricorrere all’uso del binocolo. L’assenza di un marcatore rosso accanto alla sigla del volo significava che c’erano ancora posti disponibili. Per avere una prenotazione confermata agli uffici periferici occorrevano circa 3 ore, necessarie per accedere all’indice centrale comunicando attraverso una rete di telex e di operatori intermedi. Intorno al 1955 l’adozione dei primi sistemi elettromeccanici, che ospitavano l’informazione dei posti disponibili in memorie a tamburo di rapido accesso (in American Airlines il sistema si chiamava “Magnetronic Reservisor”) ridusse i tempi di accesso all’indice centrale a pochi secondi, ma la gestione dei dati anagrafici (nome e telefono del passeggero e simili) richiedeva la compilazione e la gestione di montagne di carta con tempi, costi e tassi di errore ancora elevatissimi, pari mediamente all’8%, un tasso comunque già molto ridotto rispetto a quello tipico dei processi interamente manuali. Data la mole di informazioni da trascrivere, per ciascun impiegato addetto al telefono era necessario che ce ne fosse un altro che si occupava delle trascrizioni e della gestione dei dati. Con il continuo aumento del volume di traffico, era chiaro che la soluzione non poteva essere quella di aumentare ulteriormente il numero di persone nel back-office. Era necessario un cambiamento radicale del modo di operare e, secondo quanto si tramanda, il processo fu innescato da un evento assolutamente casuale. In IBM e in American Airlines si racconta che un giorno il presidente di American Airlines, C.R. Smith, un personaggio molto noto nella storia industriale americana, si trovò a viaggiare in aereo tra Los Angeles e New York proprio accanto a un funzionario commerciale IBM, che aveva lo stesso suo cognome: Blair Smith. La coincidenza dei cognomi diede avvio ad una conversazione tra i due che, inevitabilmente, andò ben presto a incentrarsi sui problemi di gestione delle prenotazioni e su come i sistemi IBM potevano essere impiegati per risolverli. Era il 1954: dopo un mese American Airlines ricevette una proposta IBM per lo studio del problema; nel 1957 si raggiunse un primo accordo formale e nel 1959 fu lanciato il progetto “SABER” (Semi Automatic Business Environment Research) che fu successivamente rinominato SABRE. SABRE è stato, secondo un funzionario di American Airlines “the best damn research and development effort on the part of any company I’ve ever seen”. Si è trattato della creazione simultanea di una tecnologia e di un modo di operare radicalmente nuovi, che hanno posto le basi per successive innovazioni del calibro dell’architettura 360. Il primo rilascio di SABRE è avvenuto nel 1962, con un costo di 30 milioni di dollari. Al progetto avevano partecipato 75 esperti IBM e un team di alcune decine di impiegati American Airlines; ma si trattava solo del primo passo su una strada che è aperta ancora oggi. Cliff Taylor, il funzionario American Airlines che si occupò della prima selezione del team di progettisti di SABRE, racconta che non fu possibile assumere programmatori sul mercato, perché queste competenze non erano disponibili: egli fece ricorso a test attitudinali forniti da IBM e li sottopose ai 650 volontari che si proposero per partecipare al progetto. I prescelti furono poi avviati alla programmazione successivamente con un intenso programma di formazione. Il primo requisito per i
26
partecipanti fu dunque la piena comprensione dei processi di business; secondo Taylor: “Sabre was an ideal blending of an intelligent user community... [which] came in and learned to be computer people”. Il concetto di partecipazione attiva degli utenti allo sviluppo del sistema che veniva così messo in atto preconizzava, con forte anticipo, un’impostazione che verrà completamente “dimenticata” e poi nuovamente scoperta e divulgata soltanto dopo alcuni decenni. Ricordiamo qui alcune delle tappe fondamentali nella storia di SABRE: dopo il 1962 viene estesa la rete terminali collegati al sistema e viene completata la prima fase del progetto con un “cutover” definitivo nel 1964. A questo punto la rete di telecomunicazione si estende negli Stati Uniti da costa a costa e SABRE diviene il più grande sistema di elaborazione in tempo reale dopo quello governativo. Il tasso di errori sulle transazioni è stato ridotto dall’8% all’1% e, anche considerando i soli costi del personale, si realizzano risparmi superiori al 30%. Nel 1972 SABRE viene migrato sulla nuova architettura IBM 360 e collocato in un nuovo grande centro di elaborazione dati dell’American Airlines, costruito a Tulsa, in Oklahoma. Nel 1976 SABRE viene installato nella prima agenzia viaggi; dopo un anno, l’86% delle agenzie più importanti lo utilizzano. Nel 1978 SABRE ospita oltre un milione di tariffe. Nel 1984 SABRE è il primo sistema a permettere la ricerca del prezzo più conveniente. Nel 1988 salgono a 36 milioni le tariffe che possono essere combinate per ottenere oltre un miliardo di offerte. SABRE si è arricchito gradualmente di nuove funzionalità, tra cui il primo sistema automatizzato di yield management del settore. Una buona parte delle compagnie aeree lo ha adottato. In seguito, dopo lo scorporo da American Airlines, negli anni ‘90 e successivi SABRE si impone come leader in tutti i settori tariffari per i viaggi, completa lo sviluppo dei canali web e offre una serie di servizi ad alto valore aggiunto a compagnie aeree ed agenzie viaggi. Torniamo ora alle trasformazioni in corso negli anni ’70 con l’affermazione dei sistemi di gestione di basi di dati: nei centri di calcolo delle aziende, la graduale crescente importanza attribuita al patrimonio dati e ai sistemi automatici di gestione (DBMS, Data management systems) fa nascere le figure professionali dei gestori delle basi di dati, che lavorano a stretto contatto con i sistemisti e programmatori per la realizzazione e la manutenzione dei sistemi informativi. Contemporaneamente nascono e si diffondono i sistemi di gestione delle transazioni (On-Line Transaction Processing: es. CICS) che costituiscono un tassello importante di quel mosaico di hardware, sistema operativo, DBMS e software applicativo che permette di realizzare applicazioni transazionali di massa come SABRE e come i sistemi di filiale per le grandi banche. Parallelamente, le aziende medio/piccole cominciano a dotarsi di sistemi più snelli (come il DEC PDP-11/45) che richiedono investimenti più contenuti e hanno costi di gestione più ridotti. Il processo di miniaturizzazione spinta dei componenti rende possibile la realizzazione di macchine abbastanza compatte ed economiche da far nascere nuovi segmenti di mercato in forte espansione, in attesa del prossimo affermarsi dei personal computer.
27
Le tecnologie abilitanti: i Data Base Management Systems (DBMS), i DBMS gerarchici, reticolari e relazionali, i sistemi transazionali, il minicomputer Negli anni '50 e '60 le applicazioni aziendali erano scritte "su misura" per ciascuna specifica funzione, e poteva capitare che gli stessi dati (es. le anagrafiche dei clienti) fossero duplicati in archivi diversi gestiti da applicazioni diverse (es. la gestione degli ordini ai clienti e la gestione delle fatture). Se l'indirizzo di un cliente viene ospitato in due archivi diversi, oltre allo spreco di spazio (ridondanza), diviene difficile garantire la coerenza dei dati, cioè ad esempio che le modifiche effettuate in un archivio (indirizzi clienti-ordini) vengano riportate anche nell'altro (indirizzi clienti-fatture); di conseguenza l'interrogazione degli archivi può dare risultati difformi, rendendo difficile capire qual è il "vero" indirizzo del cliente (integrità semantica). Per questo motivo si cominciò a pensare di scrivere dei "superprogrammi", che inizialmente erano semplicemente delle estensioni dei linguaggi di programmazione, per assicurare una gestione unificata di tutti gli archivi dei dati. Le applicazioni, invece di avere ciascuna i propri archivi personalizzati, dovevano leggere e scrivere i propri dati in un unico "calderone" comune a tutte le altre applicazioni, in cui ogni dato elementare appariva una volta soltanto. Si pensò di costruire un dizionario dei dati che permettesse di conoscere esattamente la struttura e il contenuto di tutti gli archivi contenuti nel "calderone" e di usare delle istruzioni standard, uguali per tutte le applicazioni, per leggere e scrivere i dati in ciascuno degli archivi. Nascevano così i primi Sistemi di Gestione di Basi di Dati (Data Base Management Systems, DBMS, vedi libro di testo). I primi DBMS erano organizzati secondo un modello "gerarchico". Con un database gerarchico è possibile risalire facilmente alla casa editrice di un libro di cui si conosce il titolo, ma è difficile gestire le relazioni tra archivi diversi non collegati (es. selezionare dall'archivio libri, dall'archivio ordini e dall'archivio clienti la casa editrice dell'ultimo ordine del cliente X). I database reticolari sono nati per questo scopo, ma il vero passo avanti verrà dall'affermazione dei database relazionali, che vengono definiti concettualmente in questo periodo ma che si affermano a partire dagli anni '80 (vedi riquadro successivo). Parallelamente ai sistemi di gestione delle basi dati, in questo periodo cominciano a diffondersi i sistemi di gestione delle transazioni (On-Line Transaction Processing: es. CICS) che costituiscono un tassello importante dei primi grandi sistemi gestionali.
28
L'idea del "minicomputer", cioè di un sistema più economico e leggero di un mainframe, adatto ad essere impiegato anche in organizzazioni medio-piccole, è invece precedente e risale ai tempi del DEC PDP-1, introdotto nel 1960 ma commercializzato in pochissimi esemplari. Solo negli anni '70 si creano le condizioni per l'affermazione definitiva dei minicomputer: nel 1972 nasce ad esempio il DEC PDP 11/45, che fa uso di componenti interni basati su "chip" a circuiti integrati, e si presenta, con dimensioni e costi ridotti, come una possibile soluzione hardware per i piccoli utenti. Nasce un mercato in forte espansione, in cui competono, oltre a DEC e IBM, anche altri costruttori come Bull e Olivetti.
Concetti illustrati nel libro di testo Per capire il significato di alcuni dei concetti qui introdotti potete fare riferimento alle seguenti sezioni del libro di testo: •
Database grandi e piccoli: sez. 6.2, pagg. 246-7.
•
Gestione dei file: concetti base: sez. 6.3, pagg. 248-255.
•
Organizzazione dei database: sez. 6.4, pagg. 256-258.
29
30
4. Anni '80 I mainframe con RDBMS, le reti UNIX, i PC monoutente
Dal punto di vista delle applicazioni, gli anni '80 rappresentano un periodo molto particolare, che vede fiorire e svilupparsi una eterogeneità di sistemi e applicazioni che non aveva precedenti nella storia dell’informatica. In questi anni si registra la nascita e il boom internazionale dei computer ad uso personale (home computer e personal computer), a tassi di crescita assolutamente straordinari e inaspettati: nel 1977, ad esempio, viene introdotto dalla neonata Apple Computer Inc. il poi famosissimo Apple II, dotato di schermo a fosfori verdi, tastiera, floppy disk (opzionale!), di un semplice sistema operativo e del linguaggio Applesoft BASIC. I primissimi home computer potevano essere sprovvisti di monitor (si usava il televisore di casa) e di floppy disk (si usava un registratore a cassette audio per la copia dei programmi); ricordiamo la grande diffusione avuta dai Sinclair, dai Commodore delle serie VIC, dai Tandy Radio Shack TRS-80. Questi piccoli miracoli della tecnologia, che potevano eseguire semplici programmi con risorse hardware incredibilmente limitate (la memoria di un PC attuale corrisponde a circa 250.000 volte quella disponibile nel 1981 sul Sinclair ZX-81, che aveva 1 Kbyte di memoria RAM!) apparvero quasi improvvisamente sul mercato quando tre società, Intel, Motorola e Zilog, cominciarono a produrre e commercializzare su larga scala i primi microprocessori, cioè i primi chip a circuiti integrati che contenevano una semplice, ma completa, unità centrale di elaborazione (CPU) di tipo Von Neumann (vedi sezione 2). Il cuore di un computer di questa categoria era dunque racchiuso in un unico "chip", rendendo estremamente più semplice la progettazione e lo sviluppo di un piccolo sistema completo, tanto che, ad esempio, il primo Apple fu progettato e realizzato nel garage di casa da due studenti, utilizzando il microprocessore Motorola 6502 e una manciata di circuiti integrati digitali e di componenti elettronici. A che cosa servivano questi primi "home computer"? essenzialmente a divertirsi costruendo e facendo girare da soli i propri programmi scritti in BASIC o in Pascal. Le applicazioni più complesse dal punto di vista tecnico per gli home computer di allora (e spesso ancora sui PC di oggi) erano i videogiochi, che spesso richiedevano una profonda conoscenza del funzionamento della macchina, del suo microprocessore e del sistema operativo per poterne sfruttare appieno le limitate risorse di memoria e di potenza di elaborazione. Si diffonde straordinariamente in questo periodo la cultura "hacker": ad esempio Steve Wozniak (co-fondatore della Apple insieme a Steve Jobs) era uno di loro. Nel college a Berkeley realizzava e vendeva agli amici dei circuiti (le cosiddette "blue box", che furono diffusissime tra gli hacker per molti anni) per effettuare illegalmente chiamate telefoniche gratuite "ingannando" con segnali camuffati le centrali telefoniche.
31
La cultura hacker aveva già forti radici nel mondo universitario, dove il sistema operativo Unix, originariamente nato nel 1970 nei laboratori della Bell, si era gradualmente affermato ed ebbe proprio negli anni '80 una grande diffusione, insieme con il successo delle cosiddette workstations e delle reti locali. Il mondo Unix rappresentava l'anello di congiunzione tra il mondo dei mainframe delle grandi corporations, in cui prevaleva una concezione della tecnologia estremamente rigida e gerarchica, e il mondo dei ragazzini (e a volte dei loro papà) che giocavano con gli home computer. I giovani nelle università hanno avuto negli anni '80 il ruolo molto importante di attingere esperienze e competenze dai grandi sistemi e renderle accessibili e disponibili gratuitamente su piattaforme più flessibili, a cominciare dalle workstations (es. Sun, HP, Silicon Graphics, ecc.). Il sistema operativo Unix ebbe un enorme ruolo in questo senso: si trattava di un sistema "serio" che aveva molte delle capacità dei sistemi operativi "maggiori" concepiti per i mainframe, come ad esempio la possibilità di gestire tanti utenti su terminali diversi (multiprogrammazione), anche se inizialmente non era in grado di governare grandi basi di dati e sistemi transazionali. Unix era originariamente destinato al mondo delle applicazioni scientifiche (es. calcoli matematici e ingegneristici, analisi statistiche, simulazioni, ecc.) dove la capacità "locale" di calcolo era fondamentale. Il fatto di avere a disposizione nelle università tante workstation dotate di autonoma capacità di calcolo diede un naturale impulso alla diffusione e all'utilizzo di una nuova tecnologia allora emergente, quella delle reti di computer. La configurazione tipica di un centro di calcolo universitario era quella di un sistema informatico ibrido dove – accanto a un mainframe o a un supercomputer con tanti terminali - nascevano spontaneamente anche "grappoli" di workstation Unix collegate tra di loro, utilizzate per condividere archivi e periferiche e per compiti di comunicazione. Una parte delle innovazioni che sovvertiranno il nascente mondo dei PC nel decennio successivo vengono sperimentate nel mondo Unix in questo periodo: le reti Ethernet, ma anche i servizi di Internet. Negli anni '80 i servizi di trasferimento di file (ftp), quello di terminale remoto (telnet) e la posta elettronica (e-mail) erano già delle 'killer application'5 nel mondo Unix (tanto che molte versioni di Unix le incorporavano come servizio di sistema) quando ancora al boom globale di Internet mancava oltre un decennio. L'avvento del personal computer (introdotto nel 1981 da IBM) si inserisce in questo contesto come uno degli eventi chiave di questo periodo, che fu una mossa tanto innovativa e lungimirante quanto incredibilmente sottovalutata da parte della IBM stessa, che anche per questo alla fine del decennio cominciò ad entrare in crisi: "In soli due anni l'azienda passò da un profitto di 6 miliardi di dollari a una perdita secca di 5 miliardi di dollari. Le azioni IBM persero più di 75 miliardi di dollari in valore, una somma equivalente al PIL della Svezia. […] Più di 140.000 lavoratori della IBM persero il posto. Intere cittadine, germogliate grazie all'IBM,
5
Una killer application è un’applicazione che riscuote un tale successo tra gli utenti, da risultare determinante per l’affermazione della piattaforma tecnologica su cui opera. Ad esempio il foglio elettronico e i sistemi di video scrittura sono stati killer application per il personal computer.
32
videro le loro economie declinare. Nello stato di New York […], quando l'IBM annunciò i licenziamenti, gli amministratori locali chiesero che quel giorno i negozi di armi restassero chiusi. Le azioni di IBM precipitarono da 176 dollari a 40 dollari. […] Dopo una lunga carriera che l'aveva condotto al vertice di una delle aziende più grandi del mondo, il presidente dell'IBM, John Akers, si dimise con altri alti dirigenti sotto la spinta di forti pressioni. Quello stesso giorno, l'azienda fece tremare il mondo finanziario annunciando che, per la prima volta nella sua storia, avrebbe tagliato i suoi dividendi trimestrali da 1,21 a 0,54 dollari per azione" (Daft 2001, pag. 4). Anche se ovviamente le ragioni di questa crisi sono molteplici e complesse, secondo un'analisi ampiamente condivisibile esse sono strettamente collegate all'avvento del Personal Computer: "Il PC IBM fu un successo immediato per l'azienda, ma la guerra dei personal computer era già persa. Fu quello che l'azienda non fece, prima e dopo il lancio del PC, che causò in definitiva la sua rovina" (ibidem, pag. 5). L'IBM aveva previsto di vendere soltanto un migliaio di PC all'anno, mentre le vendite effettive raggiunsero rapidamente il milione di esemplari; inoltre la caratteristica architettura "aperta" che il PC IBM aveva adottato con una impostazione simile a quella dell’Apple II, definiva una serie di standard di mercato per la produzione e la messa in commercio di "schede di espansione" di ogni tipo che potevano essere inserite all'interno della macchina facendo uso degli appositi "slot" che sono presenti ancora oggi nei moderni personal computer. Ben presto apparvero i primi "PC-IBM compatibili", ad opera dapprima di Compaq e poi di una schiera di altri produttori (specie dell'estremo oriente), che spinsero i prezzi verso il basso, creando un mercato altamente concorrenziale ma anche in rapida crescita, che fece in pochi anni del PC un fenomeno globale, con significativi tassi di penetrazione in tutti i principali paesi occidentali, Italia compresa. Le cosiddette "killer applications" dei PC, cioè i programmi che ne determinarono in larga parte l'enorme successo, furono i cosiddetti "pacchetti di produttività personale", in particolare il software di videoscrittura (nato con il famoso "Wordstar" nel 1978), e i programmi di "foglio elettronico" (nati con l'altrettanto famoso "Visicalc" nel 1979). Per un certo periodo, all'inizio degli anni '80, queste killer applications furono disponibili sia sugli Apple II che sui primi PC, e non fu subito chiaro quale delle due piattaforme avrebbe definitivamente prevalso, anche se Apple sembrava più orientata ai mercati "home" e IBM ai mercati "corporate". Come oggi sappiamo, l'architettura IBM-compatibile è prevalsa su quella Apple. Le ragioni di questo successo sono molteplici, ma due fattori determinanti furono l'introduzione nel 1984 dell'Apple Macintosh, che aveva un'architettura "chiusa" che si contrapponeva a quella "aperta" del PC, e la nascita nel 1985 del primo ambiente operativo Microsoft Windows 1.0 che ambiva a portare il mouse e le icone "Macintosh-like" sui PC di tutto il mondo. E che ci sarebbe riuscito, nel corso degli anni '90, facendo leva proprio sull’enorme diffusione dei PC e sulla loro architettura aperta che si contrapponevano alla relativa scarsità di applicazioni e all’architettura "proprietaria" dei Macintosh, che trovarono un proprio spazio di mercato come sistemi di nicchia.
33
Intanto IBM continuava a detenere una netta supremazia nel mercato dei mainframe, imponendo l'architettura 370 e completando l'offerta corporate anche con i suoi minicomputer. Il DBMS di tipo relazionale si impone definitivamente in questo decennio e il linguaggio SQL si avvia a diventare lo strumento standard di interrogazione delle grandi basi di dati, che costituirà l'impalcatura delle successive pietre miliari degli anni '90: i sistemi client-server e i sistemi di accesso ai dati via Web. Queste innovazioni, insieme al diffondersi delle reti di PC e di Internet, avvieranno nelle imprese quella "rivoluzione copernicana", denominata "downsizing", tanto auspicata dal fondatore di Microsoft, Bill Gates. Il fenomeno del "downsizing", strettamente legato al miglioramento del rapporto prezzo/prestazioni dei sistemi di elaborazione, ha provocato una decisa e generalizzata migrazione degli utenti dal mondo dei grandi sistemi a quello dei piccoli sistemi. Nel giro di pochissimo tempo ciò ha finito per mettere in crisi i costruttori che avevano sottostimato la portata di questa inversione di tendenza.
Concetti illustrati nel libro di testo Per capire il significato di alcuni dei concetti qui introdotti potete fare riferimento alle seguenti sezioni del libro di testo:
34
•
Software applicativo: sez. 3.3-3.6, pagg. 106-123.
•
I database relazionali: sez. 6.4, pag. 257.
•
Le reti: sez. 5.4, pagg. 225-29.
5. 1990 – 1996 Le reti di PC con interfaccia grafica, i sistemi client/server
Negli anni '90 il meccanismo straordinario di aumento costante delle prestazioni e riduzione dei prezzi nel settore ICT (legge di Moore, dal nome del fondatore di Intel) ha reso disponibili sul mercato PC con potenze di elaborazione e capacità di memorizzazione impensabili soltanto pochi anni prima. Su queste macchine si è diffusa una nuova generazione di ambienti e sistemi operativi ad interfaccia grafica (Microsoft Windows) insieme a una nuova generazione di linguaggi di programmazione ad oggetti che hanno permesso lo sviluppo di applicazioni che facevano uso del mouse e delle icone, erano accattivanti, colorate e generalmente bene accette anche agli utenti meno esperti. I nuovi ambienti/sistemi operativi erano anche dotati di funzioni di networking che hanno notevolmente facilitato il processo di diffusione delle reti locali (LAN) di PC. In parallelo, lo sviluppo di strumenti standard per l'interrogazione dei database relazionali come ODBC (Open Data Base Connectivity) e la definitiva affermazione del linguaggio SQL hanno lanciato un "ponte" tra i grandi database relazionali e i PC, ponendo l'ultimo dei tasselli necessari per l'affermazione e le diffusione di una categoria di applicazioni denominate client/server. Queste ultime coniugano la facilità di utilizzo tipica delle interfacce grafiche in ambiente Windows con la robustezza, l'affidabilità e le performance di una gestione centralizzata del patrimonio dati effettuata su un DBMS relazionale, spesso ospitato su un server di grandi dimensioni. L'integrazione tra piccoli e grandi sistemi comincia a diventare realtà in questo periodo, anche se con forti limitazioni. Le applicazioni di analisi dei dati e di supporto alle decisioni si diffondono sempre di più anche grazie alla affermazione di DBMS relazionali su personal computer (Microsoft Access) in grado di interagire con i sistemi maggiori come Oracle e DB2.
Concetti illustrati nel libro di testo Per capire il significato di alcuni dei concetti qui introdotti potete fare riferimento alle seguenti sezioni del libro di testo: •
Linguaggi di programmazione visuale: appendice A.4, pag. 313.
35
36
6. 1997-2003 L’ascesa del Web, le architetture ibride, il multi-tier client/server
La fine degli anni '90 e l'inizio del nuovo millennio segnano il boom globale di Internet e del Web, nonché l'affermazione delle cosiddette Intranet nelle organizzazioni, che si impongono come infrastrutture standard a basso costo che rappresentano la chiave di volta per l'integrazione di sistemi eterogenei e la condivisione delle informazioni. Naturalmente, le tecnologie Internet sono nate molti anni prima, ed hanno una storia molto ricca e avvincente, come è possibile verificare dalle innumerevoli fonti disponibili, tra le quali citiamo ad esempio: - http://www.zakon.org/robert/internet/timeline/ (Internet timeline), - http://www.w3.org/History.html (breve storia del Web a cura del consorzio W3C), - http://www.isoc.org/internet/history/index.shtml (raccolta a cura della Internet Society).
Internet nasce alla fine degli anni ’60 introducendo una modalità completamente nuova di collegare computer in rete. Fino a quel momento le comunicazioni tra computer seguivano regole molto restrittive, e tipicamente la gestione del traffico dei dati era accentrata su un elaboratore adibito a compiti di smistamento, mentre la “strada” che i dati percorrevano da un computer all’altro era unica e prestabilita al momento della creazione della rete. Questo rendeva il sistema vulnerabile: per paralizzare il traffico bastava mettere fuori uso il “nodo” centrale o interrompere una delle linee di comunicazione. Una serie di ricerche sponsorizzate dalla DARPA (Defense Advanced Research Project Agency, ente di ricerca del Ministero della Difesa statunitense) permisero dunque di mettere a punto un nuovo tipo di modalità di trasmissione che rendeva le reti meno vulnerabili alle interruzioni di linee di trasmissione, mentre moltiplicava il numero di computer di gestione del traffico, in modo che la messa fuori uso di uno di essi non compromettesse l’intero sistema. Una rete, dunque, senza controllo accentrato e senza una definizione prestabilita dei percorsi di instradamento dei dati. L’idea alla base di queste reti “anarchiche” era molto semplice: i dati che viaggiavano sulla rete venivano frazionati in tanti “pacchetti” autonomi tra di loro che transitavano ciascuno seguendo un percorso indipendente da quello degli altri; una volta giunti a destinazione i pacchetti venivano rimessi insieme per ricostituire i dati di partenza. L’insieme di regole che governano questa nuova modalità di trasmissione venne chiamato “TCP/IP” ed è illustrato nel riquadro sottostante. Il vantaggio principale di queste nuove reti si è rivelato non tanto la loro invulnerabilità, quanto la versatilità: senza dover sottostare a troppe regole era possibile far viaggiare dati, sotto forma di pacchetti, da una rete all’altra, anche se
37
queste erano originariamente molto diverse tra loro, purché adottassero le poche, semplici regole del TCP/IP. Il TCP/IP si è poi rivelato una formidabile base di partenza per lo sviluppo del World Wide Web, che ha reso Internet un fenomeno globale (gli utenti web sono oltre 600 milioni nel mondo) e che sta trasformando profondamente anche il modo di operare in azienda. Si è infatti scoperto in questi ultimi anni che diventa possibile condividere facilmente documenti e informazioni “pubblicandole” come pagine Web su Internet o sulla rete privata aziendale, purché questa adotti le regole del TCP/IP (in tal caso la rete privata aziendale viene chiamata “rete intranet”). Con il tempo, si è verificato un fatto assolutamente stupefacente: sono stati ideati nuovi tipi di pagine web (pagine di accesso ai dati e simili, vedi riquadro) che permettono sempre di più di ripensare e riscrivere le applicazioni aziendali come se si trattasse di un sito web, schiudendo agli sviluppatori di sistemi informativi possibilità straordinarie e originariamente non immaginate dai primi progettisti di Internet e dal “padre” del web, Tim Berners-Lee. Un saggio di Peter Keen (studioso e consulente molto noto, una delle voci più autorevoli del settore fin dagli anni ‘70: www.peterkeen.com) illustra e analizza questo effetto rivoluzionario delle Intranet e del web: "Le Intranet usano la tecnologia Internet per affrontare alcuni tra i problemi più annosi e complessi nell'utilizzo dei computer in azienda: •
Reach: chi può accedere ai servizi e alle risorse informative dell'azienda;
•
Range: quali informazioni e servizi possono essere automaticamente messi a disposizione e integrati tra loro;
•
Ease of use and training: quanto risulta naturale e immediato l'utilizzo dei menù e delle opzioni di un sistema" (vedi: http://www.peterkeen.com/emgec3.htm).
Peter Keen spiega come la necessità di rendere disponibili a tutti (reach), di integrare fra loro (range) e di rendere facili da usare (ease of use) le applicazioni abbia inutilmente spinto le organizzazioni a investire grandi risorse in tecnologie costose e complesse come EDI, con scarsi risultati. Le tecnologie Web, che sono nate per la gestione degli ipertesti e dei siti Web, si sono invece rivelate molto efficaci per lo sviluppo di una nuova generazione di applicazioni aziendali, in cui è possibile accedere ai dati collocati in un DBMS relazionale centrale attraverso la classica interfaccia del "browser" Internet (multi-tier client/server, vedi riquadro). Questo tipo di applicazioni permette di integrare sistemi eterogenei in tempi brevi e a costi inferiori di interi ordini di grandezza (da 10 a anche 100 volte). Keen fa l'esempio di una società di telecomunicazioni che ha sviluppato un sistema integrato a tecnologia Web in pochi mesi investendo alcune migliaia di dollari, a fronte di un progetto iniziale di alcuni anni che comportava un impegno di oltre 100 milioni di dollari con le tecnologie tradizionali. Un secondo esempio fornito da Keen è quello di una multinazionale farmaceutica che ha sviluppato un sistema informativo integrato a tecnologia Web utilizzando due persone per tre mesi, a fronte di un preventivo iniziale di oltre 200 milioni di dollari se avesse impiegato le tecnologie tradizionali.
38
Come canale di comunicazione, la pervasività e la diffusione globale di Internet ha determinato il boom delle applicazioni di e-business, che, dopo un periodo di euforia iniziale e una successiva battuta d'arresto, potrebbe ricevere nuovo impulso dalla diffusione delle tecnologie wireless (senza fili) e dei portable devices transazionali (cellulari di nuova generazione).
Le tecnologie abilitanti: TCP/IP, linguaggio HTML e derivati, application server e tecniche di accesso ai dati
I due protocolli TCP (Transmission Control Protocol) e IP (Internet Protocol) costituiscono la caratteristica più importante di Internet. Un protocollo di rete è un insieme di regole per la comunicazione. Il protocollo TCP, in particolare, specifica in che modo i dati da trasmettere devono essere suddivisi in tanti piccoli "pacchetti" che vengono inviati singolarmente (anche seguendo strade diverse) e ricomposti nuovamente a destinazione (secondo le regole del TCP) in modo da ricostruire i dati originari. La funzione principale del protocollo IP, invece, è quella di fornire le regole per l'indirizzamento dei pacchetti, che vengono "marchiati" con identificatori di provenienza e di destinazione; l'identificatore di provenienza si chiama "l'indirizzo IP del mittente" e quello di destinazione "l'indirizzo IP del ricevente". Un pacchetto che viaggia dal computer di provenienza a quello di destinazione viene inviato da un nodo all'altro del sistema di reti interconnesse: quando un computer che si trova lungo il percorso (cioè un nodo di rete, detto router) riceve un pacchetto, ne esamina la destinazione e decide a quale computer inoltrarlo per instradarlo verso la meta finale. Se vediamo indicati insieme i protocolli TCP/IP è perché sono quasi sempre usati in abbinamento. Il TCP suddivide i pacchetti, li numera e li invia con le corrette intestazioni IP in modo che la versione remota del TCP possa ricomporli nuovamente. Poiché le informazioni vengono divise in pacchetti e non inviate come "flusso" di dati, è molto probabile che un pacchetto inviato successivamente possa arrivare prima di quelli che lo precedono; oppure un pacchetto potrebbe perdersi per strada e non arrivare affatto a causa di un malfunzionamento dell'hardware del computer o di un bug nel software. TCP tiene traccia di tutti questi elementi ed effettua diverse richieste (inviando messaggi al computer sorgente) per riassemblare il flusso originario di informazioni nell'ordine completo e corretto ma, quasi sempre, questo accade così velocemente che l'utente medio non se ne accorge.
39
Mentre Internet/Intranet sono caratterizzate dall’utilizzo dei protocolli TCP/IP, il Web è caratterizzato dall’utilizzo di un linguaggio (HTML ) e di un protocollo (HTTP). HTML e HTTP furono inizialmente concepiti da Tim Berners-Lee per la creazione di ipertesti distribuiti, cioè di insiemi di pagine collegate tra di loro attraverso dei “link”. Il linguaggio HTML descrive il contenuto della pagina web da visualizzare. I comandi HTTP servono a far comunicare tra loro il programma che visualizza la pagina (web browser) e il computer che la pubblica (web server). Puntando su un “link” con il mouse vengono inviati una serie di comandi HTTP al computer che pubblica la pagina (il web server) il quale cerca la nuova pagina indicata dall’indirizzo (URL) presente nel link, e la invia al programma di visualizzazione (web browser); il browser interpreta le istruzioni HTML che descrivono il contenuto della pagina e infine la visualizza sul vostro schermo. Le tecnologie abilitanti cosiddette di "accesso ai dati" via Web sono delle evoluzioni delle pagine web tradizionali che, pur funzionando in modo diverso, condividono una comune logica di fondo. Alcune delle più note tecniche di accesso ai dati sono, ad esempio, le pagine CGI, ASP, PHP, CFM. La logica sottostante è quella di utilizzare un "application server" tra il browser dell'utente che invia le interrogazioni agli archivi dati e il DBMS relazionale. L'application server interpreta la pagina Web che contiene i dati dell'interrogazione, genera le opportune istruzioni di SQL, le invia al DBMS, ottiene i risultati, costruisce la pagina Web di output e la invia al server Web che la restituisce, in modo trasparente, all'utente. Dal momento che viene aggiunto lo "strato" (tier) dell'application server alla classica architettura client/server, questa variante viene denominata multi-tier client/server. Cfr: http://www.zdnet.com/pcmag/features/webdatabase/sb1.htm.
Concetti illustrati nel libro di testo Per capire il significato di alcuni dei concetti qui introdotti potete fare riferimento alle seguenti sezioni del libro di testo:
40
•
Internet e il World Wide Web: capitolo 2.
•
Reti intranet: sez. 5.4, pagg. 229-30.
•
Il Web e il suo funzionamento: sez. 2.4, pagg. 54-56.
•
Programmazione per Internet: appendice A.5, pagg. 314-317.
7. Considerazioni di sintesi
Torniamo ora alla tabella 1 riportata nelle prime pagine del testo. Forse, dopo questa panoramica, siamo in grado di osservarla con occhi diversi: le “pietre miliari” dell’Information and Communication Technology che abbiamo individuato rappresentano qualcosa di più di una semplice classificazione storica (peraltro del tutto opinabile, come vedremo nel finale). Esse, piuttosto, testimoniano come nel tempo le organizzazioni abbiano radicalmente cambiato il proprio modo di operare, facendo registrare salti in avanti assolutamente straordinari. Menzioniamo solo alcune delle storie citate in precedenza: i risultati stupefacenti della macchina di Hollerith utilizzata in occasione del censimento americano del 1890; la rivoluzione apportata in American Airlines da SABRE negli anni ’60; la grande forza di innovazione tecnologica di IBM che ha affermato nel mondo il “sistema tolemaico” dell’architettura 360 e 370 e ha saputo poi superare il terremoto creato negli anni ’80 dalla nuova “concezione copernicana” diffusasi con il personal computer; la straordinaria forza di “distruzione creativa” dimostrata dalle tecnologie Internet, specialmente con l’avvento del web, che in pochi anni non solo ha raggiunto oltre 600 milioni di persone nel mondo configurandosi come un nuovo potente canale di distribuzione e interazione, ma ha cominciato a trasformare il modo di sviluppare i sistemi informativi e le applicazioni aziendali. Queste poche storie che abbiamo selezionato sono significative, ma necessariamente incomplete e riduttive: esiste un numero enorme di esperienze aziendali, di casi di successo o di insuccesso che testimoniano quanto forte sia stato lo sviluppo dell’ICT per le organizzazioni. Da Charles Babbage a oggi sono trascorsi meno di due secoli. Probabilmente, neppure Babbage stesso avrebbe potuto immaginare quanto sarebbe stato difficile e complesso realizzare il suo sogno, e nemmeno quale straordinaria forza di cambiamento e di innovazione esso avrebbe portato con sé. In questa prima parte ci siamo dunque interessati a quando e come l’ICT ha contribuito a cambiare le organizzazioni. Nella seconda parte, invece, affronteremo un tema molto più impegnativo, che riguarda il perché l’ICT trasforma le organizzazioni. Ci porremo domande come: Che cosa è la tecnologia? Come e perché nascono le nuove tecnologie? Perché alcune di esse vengono adottate nelle organizzazioni e nella società? Con quali effetti? Sono le nuove tecnologie a stimolare l’innovazione nel modo di operare o avviene il contrario? Nell’ultimo secolo molti studiosi si sono posti queste domande e hanno fornito le loro risposte. Nelle pagine che seguono proveremo a passarle in rassegna.
41
42
Fig. 1. L'elaboratore Univac I
Fig. 2. L'elaboratore IBM 701, presso il Ministero della Difesa statunitense (fonte:IEEE-CS timeline)
43
44