Relazione per il riconoscimento dell'attività lavorativa Diego Cimarosa Corso di Laurea in Scienze di Internet Matricola 0900025311 Attualmente sono dipendente a tempo indeterminato presso l’Università di Bologna ed inquadrato come “Collaboratore di Elaborazione Dati” presso il Dipartimento di Statistica “Paolo Fortunati” in Via Belle Arti 41 Bologna. Le mie esperienze lavorative in ambito I.T. iniziano nel 1982 e cercherò di riassumerle, partendo dalla più recente e secondo le linee guida del “Modello di Relazione Attività Lavorativa”. Questo documento è disponibile anche in formato elettronico agli indirizzi: http://www.diegocimarosa.it/Docs/relazione_tirocinio.pdf http://137.204.109.4:8080/diego/Tirocinio/relazione_tirocinio.pdf 1 di 31 Indice Curriculum vitae riassuntivo ................................................................... 4 Università di Bologna ............................................................................... 5 Dati essenziali..................................................................................................................................5 Attività svolte ...................................................................................................................................5 Relazione .........................................................................................................................................6 Introduzione .................................................................................................................................6 Documenti....................................................................................................................................6 Rete del Dipartimento ..................................................................................................................8 Altre attività .................................................................................................................................8 Tecnologie utilizzate ....................................................................................................................8 Università di Parma ................................................................................ 10 Dati essenziali................................................................................................................................10 Attività svolte .................................................................................................................................10 Relazione .......................................................................................................................................10 Introduzione ...............................................................................................................................10 Documenti..................................................................................................................................11 Altre attività ...............................................................................................................................11 Tecnologie utilizzate ..................................................................................................................11 Elsag Bailey S.p.A. .................................................................................. 12 Dati essenziali................................................................................................................................12 Attività svolte .................................................................................................................................12 Relazione .......................................................................................................................................12 Sistema Informativo Elsag .........................................................................................................12 PtPostel ......................................................................................................................................13 PtFax ..........................................................................................................................................15 Corsi effettuati in Elsag/IBM.....................................................................................................15 Riferimenti.....................................................................................................................................17 Seiaf S.p.A................................................................................................ 18 Dati essenziali................................................................................................................................18 Attività svolte .................................................................................................................................18 Relazione .......................................................................................................................................18 Introduzione ...............................................................................................................................18 Principali progetti.......................................................................................................................19 Tecnologie utilizzate ..................................................................................................................25 Riferimenti.....................................................................................................................................25 Morteo Soprefin S.p.A. ........................................................................... 27 Dati essenziali................................................................................................................................27 Attività svolte .................................................................................................................................27 Relazione .......................................................................................................................................27 Introduzione ...............................................................................................................................27 Attività svolte.............................................................................................................................27 Tecnologie utilizzate ..................................................................................................................28 Riferimenti.....................................................................................................................................28 Firenze...................................................................................................... 29 Dati essenziali................................................................................................................................29 Attività svolte .................................................................................................................................29 Relazione .......................................................................................................................................29 2 di 31 Riferimenti.....................................................................................................................................31 3 di 31 Curriculum vitae riassuntivo Informazioni personali Istruzione Esperienza professionale Conoscenze informatiche Lingue straniere Hobbies Stato civile: Separato Telefono – Casa: 051.6920603 Nazionalità: Italiana Ufficio: 051.209822 Data di nascita: 29/07/1959 Cell. : 331.4230912 Luogo di nascita: Genova E-mail : [email protected] Web: http://www.diegocimarosa.it/ Domicilio: Via Caduti di Cefalonia 57 40054 Budrio (BO) Diploma di “Perito Elettrotecnico” conseguito nel 1978/79 presso l’I.T.I.S. “G. Giorgi” di Genova con votazione finale di 48/60 Corsi triennali inglese presso “British School of Genoa” (1976/79) Corsi inglese interni Elsag Bailey S.p.A. Genova Corsi professionali presso IBM Italia e Digital (Programmazione C, OOP, Gestione DB) Iscritto al III° anno del Corso di Laurea in “Scienze di Internet” presso l’Università di Bologna Dal 1/12/2003 presso il Dipartimento di Scienze Statistiche – Università di Bologna come “Collaboratore di Elaborazione Dati”. Assistenza HW/SW a Docenti e Personale facoltà. Supporto gestione rete e servers Dipartimento Dal 16/10/1998 al 30/11/2003 presso la Facoltà di Giurisprudenza dell’Università di Parma come “Collaboratore di Elaborazione Dati”. Gestione Laboratorio di Informatica per Studenti, Assitenza HW/SW a Docenti e Personale facoltà, corsi Informatica per studenti, gestione server web ed iscrizione esami Dal 1995 al 15/10/1998 presso Elsag Bailey S.p.A. come analistaprogrammatore. Sviluppo e gestione SW PTPostel e PTFax su sistemi Digital per Poste Italiane. Assistenza all’Hot Line. Sviluppo SW per procedure interne Elsag su mainframe Siemens/BS2000 Dal 1990 al 1995 preso S.E.I.A.F. S.p.A. analista-programmatore. Sviluppo procedure interne IBM Italia e consulenze esterne su Gestione Produzione (COPICS/IBM). Principali clienti: Merloni Elettrodomestici, ILVA Dal 1987 al 1990 presso Morteo Soprefin S.p.A. Genova come programmatore. Sviluppo SW per procedure interne in ambiente IBM 4381 Dal 1983 al 1987 presso Studio Ballotta Firenze come programmatore. Sviluppo SW per clienti in ambiente IBM/8100 Sistemi Operativi: MS-DOS, Windows, Linux, Vax/VMS, CMS, DPPX, TSO, MVS, CICS, DB2 Linguaggi: COBOL, C, SQL, Perl, PHP, Visual Basic, Access, C++, Jscript, VBScript, Assembler (in ordine di esperienza) HW: PC, Reti Ethernet Buona conoscenza Inglese per corsi privati ed esperienze lavorative Lettura, trekking, subacquea, hw,sw 4 di 31 Università di Bologna Dati essenziali In servizio presso il Dipartimento di Scienze Statistiche “Paolo Fortunati” – Via Belle Arti 41, Bologna in qualità di “Collaboratore di Elaborazione Dati” dal 1/12/2003. Referenti: o Prof.ssa Rosella Rettaroli (Direttore Dipartimento) +39 051 20 9 8243 [email protected] o Sig. Roberto Sgarbi: Responsabile Laboratorio Informatica del Dipartimento +39 051 20 9 8231 [email protected] Attività svolte Il mio compito principale nel Dipartimento di Statistica è l’assistenza informatica ai docenti, ricercatori e personale tecnico ed amministrativo, riassumibile in: Installazione di nuovi PC con configurazioni di rete nel dominio personale.unibo.it Installazione e configurazione software per uso “office” (Microsoft Office, Open Office, famiglia prodotti Adobe) e per uso statistico/matematico (R, Stata, SPPS, Matlab, Mathematica ecc.) Gestione software per accounting stampanti Manutenzione hw e sw: sostituzione schede e componenti PC per guasti e/o upgrades, antivirus ecc. Interventi sui server web, file server, backup dati, Terminal Server di Dipartimento quando necessario Assistenza utenti per risoluzione problematiche legate ad uso avanzato di pacchetti software es.: macro per elaborazioni particolari in Excel, Access, Photoshop, configurazione librerie per sviluppo in Fortran, C Sviluppo piccole applicazioni per problematiche gestionali interne al Dipartimento (es. Reclami utenti Biblioteca, automatizzazione stampa modulo prestiti con macro di tastiera) Sviluppo semplici siti web per incontri e convegni organizzati dal Dipartimento (http://www2.stat.unibo.it/moda2010/, http://nuke.stat.unibo.it/moda9/, http://www2.stat.unibo.it/reclami/reclami.asp) Installazione apparecchiature per conferenze e presentazioni Preparazione preventivi per acquisti HW e SW Documentazione tecnica 5 di 31 Relazione Introduzione Al Dipartimento di Statistica afferiscono circa 80 persone fra Docenti, Ricercatori, Dottorandi e Personale Tecnico Amministrativo molte delle quali hanno in dotazione, oltre la postazione fissa, uno o più portatili perciò il totale dei PC collegati e gestiti è di circa 130/140 macchine ai quali si aggiungono le 12 stampanti dipartimentali. Compito del Laboratorio Informatico è garantire agli utenti i servizi specificati nel documento pubblicato all’indirizzo: http://www2.stat.unibo.it/qualita/MQ55All02Rev00_CartaServiziLabis.pdf Fra i quali: a) servizi informatici di interesse comune b) servizi rivolti alle unità operative c) servizi informatici individuali d) consulenza e formazione Il mio compito è quello di soddisfare i punti b), c) e d) ed in caso di necessità anche il punto a). In modo più semplice, mi occupo prevalentemente dei servizi “lato client” ed occasionalmente dei servizi “lato server” gestiti in maniera più massiccia da miei colleghi. Documenti Il Dipartimento nel suo complesso persegue da anni una “politica di qualità”; infatti, la Biblioteca ha ottenuto la certificazione di qualità “UNI EN ISO 9001:2000 da Det Norske Veritas” già nel 2004 ed il resto delle strutture (Laboratorio di Informatica compreso) nel 2007. I documenti più importanti sono disponibili sul sito ufficiale del Dipartimento, http://www.stat.unibo.it/ScienzeStatistiche/default.htm, nel riquadro “Servizi”, voce “Carta dei Servizi” ed in particolare la carta dei servizi del Laboratorio è disponibile nella pagina citata sopra. Per auto-monitorarci e fornire gli opportuni indicatori di qualità, ci siamo dotati di un semplice ma efficace strumento di rilevazione degli interventi svolti, in sostanza un piccolo applicativo basato su MS-Access di cui riporto un screen-shot esplicativo. 6 di 31 7 di 31 Rete del Dipartimento Ho preparato questo schema tre anni fa per cui adesso risulta un po’ obsoleto in quanto alcuni server sono stati “pensionati”. Aspettiamo i fondi per virtualizzare il tutto su piattaforma Dell e software Xen Open Source. Schema logico funzionale – Rete Dipartimento di Statistica 137.204.109.2 137.204.95.203 Ostia (WEB) MAGENTA (E-mail Webmail) 137.204.109.1 137.204.95.205 ELBA (File Server Home Utenti Domain Controller) CHIANTI (Printer server Printing Accounting SQL File Server) SAMBUCA (DNS) 137.204.109.200 DMZ4 INSIDE CANNE (Web DNS SMTP) 137.204.95.200 137.204.109.254 GALAGA’ (Banche dati) PC Docenti e personale PIX Firewall 137.204.95.204 SERIES 137.204. .254 CISCO PIX119 FIREWALL DMZ1 137.204.95.150 ALMANET AP3 137.204.119.1 Dottorandi 137.204.119.254 PIX Firewall DMZ3 BAROLOCUBE (File Server Home Utenti Domain Controller) 119 Via Zamboni 18 68 Palazzo Bianconcini SE RIES PIX 515 137.204.95.129 PIX Firewall SE RIES Net PC Biblioteca GOITO (Terminal Server DHCP) AP1 137.204.95.152 AP2 PIX 515 137.204.95.151 Master Altre attività Fra le varie attività da me svolte in Dipartimento riporto anche quelle di realizzazione di alcuni semplici siti web per attività istituzionali: http://www2.stat.unibo.it/moda2010/ http://nuke.stat.unibo.it/moda9 http://www2.stat.unibo.it/reclami/reclami.asp Sito web personale: http://www.diegocimarosa.it Sporadicamente sono coinvolto in attività “accessorie” quali la modifica/creazione di grafica per varie esigenze ed altro (disassembler di moduli JAR usati per la stampa etichette dei libri in prestito, modifica di shape files, ecc. …) Tecnologie utilizzate L’infrastruttura del Dipartimento è in lento ma continuo movimento: per esempio, nel 2006 abbiamo dismesso il servizio di posta interna gestito su server Linux Open Suse in quanto con gli 8 di 31 strumenti open-source allora disponibili non siamo stati in grado di risolvere efficacemente il problema dello spam. Ho curato in prima persona la migrazione verso il sistema di posta di Ateneo riconfigurando tutti i client e recuperando quando possibile i vecchi messaggi e, per molti docenti, i relativi e preziosissimi allegati. Ultimamente, dopo accurato studio sui costi-benefici, abbiamo deciso di abbandonare il dominio STATISTICA ed abbiamo migrato tutti i client sul dominio PERSONALE (non sempre in modo indolore!). All’atto pratico, questa migrazione, effettuata anche con la collaborazione del Cesia, ha comportato la riconfigurazione di ogni singolo client e la modifica dei permessi di ogni oggetto tramite tools di conversione. Da qualche mese abbiamo iniziato un progetto per la virtualizzazione di quasi tutti i servizi rimasti: Web Server, File Server, Printer Server, Backup Server attualmente gestiti in ambito Windows 2003 Server, ma, come accennato prima siamo ancora in attesa di fondi. Per le varie attività in cui sono coinvolto ho utilizzato ed utilizzo varie tecnologie e strumenti software: Microsoft Windows Server 2003, DevStudio 2005 e 2008, Sql Server, IIS 6, Office 2003/2007 Linux (Red Hat/OpenSuse) Apache, Perl 9 di 31 Università di Parma Dati essenziali In servizio presso la Presidenza della Facoltà di Giurisprudenza dell’Università di Parma – Via Università 12 Parma, dal 16/10/1998 al 30/11/2003 Referenti: o Posso indicare la Dott.ssa Ceccato, responsabile della Biblioteca Centrale di Giurisprudenza 0521/034599 e-mail: [email protected] in quanto non conosco il Preside ed il Segretario attuali Attività svolte Gestione Laboratorio di Informatica per Studenti Tesisti Assistenza HW/SE al personale di Facoltà Gestione server Web Biblioteca e Laboratorio Gestione prenotazione liste esami Gestione banche dati giuridiche Corsi di Informatica per studenti Relazione Introduzione Non posso descrivere in dettaglio 5 anni di attività ma riassumendo posso scrivere di aver avuto il privilegio e senza falsa modestia, il merito, di aver contribuito in modo sostanziale all’alfabetizzazione informatica della Facoltà. All’epoca, sto parlando del 1998, l’I.T. era ben diversa da quella attuale. Il Web era per molti una parola sconosciuta, Microsoft, reduce dal clamoroso successo di Windows 95 aveva appena rilasciato Windows 98 che, notoriamente, non è stato un sistema operativo “robusto”. Se non vado errato, Windows NT Server 4.0 costava, nel 1998, circa 4 milioni di Lire che confrontati con i circa 2 milioni di un PC Acer con 128Mb RAM e 4.3 Gb, all’avanguardia per quell’epoca1, era assolutamente improponibile per le finanze della Facoltà. Per sopperire a questa mancanza installai un server Linux Red Hat iniziando a fornire servizi di rete quali FTP, HTTP, GOPHER ed autenticazione client Windows 98 attraverso Samba. I siti Web si scrivevano all’epoca con Vi e ricordo con piacere alcune corrispondenze tecniche proprio con gli autori di questo eccezionale software di condivisione2. Era normale poi ricompilare il kernel Linux almeno due/tre volte al mese per tenerlo aggiornato … e funzionante! Un altro servizio web da me curato, in collaborazione con un docente di Informatica, è stata la prenotazione esami; applicazione web scritta in Perl. 1 2 Che tenerezza … ! http://lists.samba.org/archive/samba-docs/2002-May/000184.html 10 di 31 Ho tenuto alcuni corsi di informatica rivolti agli studenti laureandi visto che molti di loro hanno utilizzato per la prima volta un pc nel laboratorio che gestivo. Successivamente ho usato la rete dei 27 PC come piattaforma di banche dati giuridiche superando non poche problematiche relative agli aggiornamenti ed alla condivisione. Dal 2002 questo servizio era diventato ingestibile e fortunatamente riuscii a convincere i responsabili della struttura ad attivare un servizio centralizzato basato su piattaforma Citrix Metaframe. Nel poco tempo disponibile riuscivo anche ad “assistere” il personale docente ed amministrativo (circa un centinaio in totale). L’assistenza variava dall’installazione di nuovi pc alla scrittura di software per l’estrapolazione di dati dalle banche dati giuridiche o di software per l’inventario e gli acquisti della Biblioteca più, ovviamente, tutte le problematiche nell’uso comune di un sistema operativo, ripeto, instabile come Windows 98. Documenti Allego fotocopie di fogli di servizio rilasciati dalla Presidenza della Facoltà di Giurisprudenza e dal Responsabile della Biblioteca Centrale della Facoltà di Giurisprudenza dell’Università di Parma Altre attività Riporto in questo paragrafo un corso da me tenuto relativo alla “Sicurezza Informatica” per conto IPSOA e Regione Emilia Romagna nel quadro di un corso di 800 ore per la formazione professionale di giovani disoccupati ed alcune consulenze in ambito bancario su mainframe IBM per l’azienda di servizi Cedacri Nord di Parma. Tecnologie utilizzate Come riportato sopra le principali tecnologie da me utilizzate in questo periodo sono state: Windows 98, Citrix Metaframe Linux Red Hat, Apache, Perl, MySql e, come consulente esterno: IBM MVS, DB2/CICS, Cobol 11 di 31 Elsag Bailey S.p.A. Era una società del gruppo Finmeccanica, oggi Elsag Datamat. Storicamente ha rappresentato, sin dal 1905, una tassello fondamentale dell’industria genovese e quindi con il gruppo Ansaldo, di quella italiana. Dati essenziali In servizio in qualità di analista-programmatore dal 1995 al 15/10/1998 Referenti: le uniche persone che conoscevo di cui ho ritrovato traccia sono: o Dott. Giuseep Saracini – Referente Elsag Datamat per il Settore Informatica [email protected] tel. +39 348 3675317 (Genova) o Dott. Franco Cavagnaro – Direttore Strategie e Sviluppo Tecnologie Elsag Datamat http://it.linkedin.com/pub/franco-cavagnaro/8/7a7/a52 Attività svolte Sviluppo sw per contabilità e gestione magazzini Elsag su sistema Siemens-Fujitsu BS2000/OSD con database Cognos/SESAM Sviluppo sw per contabilità, fatturazione, clienti PtPostel, PtFax su sistemi Vax/Vms Gestione rete PtFax su sistemi Unix distribuiti Relazione In Elsag S.p.A. ero un programmatore-analista ed ho, nel primo anno, sviluppato software per il Sistema Informativo della società che utilizzava all’epoca un mainframe Siemens con S.O. BS2000. In pratica un “clone” del mainframe ES/9000 di IBM. Sistema Informativo Elsag La particolarità di questo sistema era il database COGNOS/SESAM di tipo reticolare che univa le funzionalità dei due maggiori database utilizzati allora sui mainframes IBM: il DL/1 di tipo gerarchico ed il DB2 di tipo relazionale. All’epoca la società aveva vari settori di produzione: dal militare (sistemi di puntamento arma, guida elettro-meccanica missili, radar) al postale (smistamento automatico corrispondenza, riconoscimento ottico indirizzi) passando per la componentistica navale ed altro. Il tutto faceva riferimento alla Distinta Base (fondamentale nel settore manifatturiero) ed alla sua gestione in quanto perno sul quale ruotava la progettazione, la produzione, l’assemblaggio, la vendita e la contabilità. Nel corso degli anni e di varie ristrutturazioni aziendali con acquisizioni, fusioni e rimescolamenti contabili, si era creata una situazione ingestibile; in sostanza i magazzinieri non sapevano più come e su quali commesse attribuire i vari assemblati e le linee di produzione su quali commesse “caricare” le lavorazioni. Su richiesta del Direttore dei Sistemi Informativi ho effettuato una revisione completa delle codifiche di alcuni milioni di pezzi ridisegnando una bella fetta dello schema del database e scrivendo exnovo diversi e complicati programmi. Ricordo con sgomento la prima volta che vidi lo schema generale del database: sembrava quello di una centrale nucleare. Ogni singolo rettangolino di 2x3 cm rappresentava una struttura dati attinente a qualche funzionalità del Sistema ed il tutto si sviluppava su un foglio di 2 metri per 1.50 circa … Quel Sistema Informativo aveva avuto, ovviamente una storia assai travagliata: in origine era un COPICS/IBM su architettura gerarchica e riscritto da consociate americane in visione reticolare. La riconversione che ho effettuato portò 12 di 31 come “effetto secondario” un recupero contabile di più di 300milioni di lire dell’epoca per via di ammortamenti fiscali altrimenti impossibili da fare manualmente. L’”effetto primario” è stato quello di permettere ai magazzinieri di eseguire i corretti abbinamenti fra i pezzi e le commesse … PtPostel Finita questa faticosa riconversione sono passato al reparto PtPostel e successivamente a PtFax. Uno dei primi problemi che mi furono sottoposti era legato alla lentezza delle operazioni legate alla fatturazione del servizio che riassumo qui in poche righe: Le Poste e le Ferrovie sono senza alcun dubbio la spina dorsale di un paese moderno. Se ricordiamo la situazione italiana degli anni ’80 e ’90 non credo che possiamo gioire molto. Per sopperire al caso creatosi in seguito a scioperi del personale e ad arretratezza tecnologica le Poste Italiane iniziano intorno al 1970 un percorso di ammodernamento con l’introduzione del CAP e via via con apparati elettro-meccanici ed elettronici per la gestione della corrispondenza.Oltre ad Olivetti, un altro attore principale fu, e continua ad esserlo, il gruppo Ansaldo che demandò ad Elsag la risoluzione del problema. Con l’introduzione nel 1975 del microprocessore MOS 6502 fu possibile per i tecnici Elsag ed Ansaldo sviluppare un sistema di riconoscimento della scrittura manuale basato sull’uso in parallelo di questi micro. Questo portò alla meccanizzazione postale riassumibile nella sigla CMP: Centro di Meccanizzazione Postale. A Bologna Corticella ce ne è uno dei più grandi di Italia dopo quello di Roma Fiumicino. Un CMP è essenzialmente un capannone di alcune centinaia di metri con un lungo nastro trasportatore sul quale viene riversata la corrispondenza raccolta da Poste Italiane. Per mezzo di svariati meccanismi le buste, cartoline ed altro vengono raddrizzate e fatte scorrere ad alta velocità sotto una serie di lettori ottici gestiti dai micro-processori ricordati poco sopra. Il software riesce in tempo reale a decodificare il CAP letto dalla corrispondenza ed a comandare l’apertura di un sacco postale per la raccolta e la distribuzione finale all’ufficio di competenza. Il tutto avviene con una percentuale di successo prossima al 100% per gli stampanti e con un errore del 3 per 10000 per la scrittura manuale. Tutti gli apparati, elettrici, elettronici e software sono stati sviluppati e realizzati nello stabilmento di Genova-Sestri Ponente anche in collaborazione con l’Università di Genova. In seguito al successo tecnologico e commerciale di questi sistemi e l’avvento di sistemi di elaborazione via via più economici (almeno per le imprese), il Dott. Cavagnaro propose l’idea di un sistema di raccolta dati e stampa della corrispondenza riservato a grossi enti ed aziende. Il segmento di mercato individuato fu quello della stampa di fatture per servizi domestici, conti bancari ecc. In sostanza, enti quali Enel, enti comunali per la fornitura di gas o acqua, consegnavano ai centri di raccolta i nastri contenenti i dati di fatturazione dei loro clienti e nei centri di stampa sorti a corollario dei CMP venivano stampate ed imbustate le fatture poi inoltrate nel centro di smistamento. Anche questa fu un’innovazione che ebbe molto successo e che portò nel corso degli anni ’80 e ’90 alla creazione di una rete di raccolta e stampa piuttosto articolata sul territorio nazionale. 13 di 31 Nel 1993 il sistema PtPostel contava più di 20.000 grandi clienti, utilizzatori del servizio di Posta Massiva ed alcune migliaia di “piccoli” clienti. Ogni mese venivano complessivamente stampate decine di milioni di fatture, lettere, opuscoli e quant’altro, tutto inoltrato al CMP di competenza. Ovviamente, tutto questo traffico doveva essere contabilizzato prima di generare forti introiti per la società e qui entro in “scena” io. All’epoca, in ambito informatico, i PC erano abbastanza diffusi ma non come oggi essenzialmente per i costi elevati e le scarse capacità elaborative. In ambito professionale c’erano tre grosse realtà che si parlavano poco e male: il mondo Unix con le WorkStation scientifiche, il mondo IBM con i mainframes “per i conti” ed il mondo Vax per i processi industriali. Per cultura, tradizione, storia e formazione tecnica, in Elsag erano predominanti i sistemi Vax e su questa piattaforma, Digital VAX/6000 fu sviluppato, con un linguaggio assolutamente innovativo per l’epoca, il PowerHouse, il sistema di contabilizzazione del servizio PtPostel. Fui chiamato a risolvere un “piccolo” problema di prestazioni: la procedura di fatturazione durava “mediamente” 8/9 … giorni con punte di 14 !!!! Considerando che per esigenze contabili era necessario fare un “giro” di prova sulla base del quale i contabili effettuavano dei campionamenti verificando manualmente alcune fatture si capisce che un intoppo poteva portare ad una mancata fatturazione mensile con serie ripercussioni contabili [scenario già occorso in passato]. Dopo pochi giorni di auto-istruzione sull’RMS, il file system del Vax/VMS, scoprii che il problema poteva essere dovuto al fattore di riempimento del blocco dati nella definizione dei dataset in quanto, per default, prevedeva l’utilizzo del 100% dello spazio. Se questi dati fossero stati dei semplici files sequenziali questo non avrebbe avuto alcuna influenza ma essendo indicizzati ebbe una clamorosa ripercussione in fase di elaborazione della fatture in quanto ogni nuova chiave, per essere “sistemata” nella giusta sequenza comportava la riscrittura di moltissimi blocchi. In sostanza, i vantaggi dell’indicizzazione dei dati venivano annullati dal costo di creazione di una struttura totalmente sbilanciata con costi computazionali dell’ordine di O n 2 anziché del voluto O log n . Dopo aver scaricato i dati, ridefinito i datasets, e ricaricato i dati [e col terrore negli occhi da parte dei miei superiori … ] rilanciai l’applicazione, che stava frullando da 14 giorni e dopo 2h e 40’ consegnai ai contabili il tabulato delle fatture … non male per aver modificato una riga di codice nella definizione dei dati! Nei successivi sei mesi, oltre ad implementare numerose altre funzionalità al sistema contabile “giocai” con l’RMS ed il tempo finale scese ad 1h e 40’. Forse fu per questo che il mio “capetto” di allora se la prese male tanto che fui costretto dopo poco tempo a cambiare reparto … A distanza di anni, ripensando ai quei fatti continuo a sostenere che un sistema come il Vax/6000 non era progettato per la gestione dati; un IBM/3090 “medio” dell’epoca non avrebbe impiegato più di qualche decina di millisecondi di CPU con un tempo complessivo, in funzione del carico batch, di al massimo 3-4 minuti; tempi che mi aspetterei da un moderno e potente pc multicore attuale. 14 di 31 PtFax Come riportato sopra, dopo poco tempo cambiai reparto e mi occupai della gestione del nascente servizio PtFax. In sostanza, gli abbonati al servizio, aventi l’esigenza di inviare un alto numero di fax a clienti od altri utenti, chiamavano uno dei 18 centri di distribuzione (in pratica uno per regione – all’epoca c’era ancora la teleselezione Telecom) in cui un risponditore automatico, previa verifica dei codici di accesso, richiedeva il codice della lista di distribuzione precedentemente inviata e quindi il fax da abbinare. Il sistema, hw & sw, acquistato dalla Marconi International americana richiese diverso tempo per la messa a punto con l’intervento dei tecnici americani ed inglesi per la riconversione della gestione dei segnali telefonici. Alcuni segnali infatti non erano interamente compatibili con lo standard Telecom. Sono stato circa due mesi al CMP di Roma Fiumicino per aiutare i tecnici Marconi per l’installazione di tutto il sw di gestione della rete e di contabilizzazione. Il software acquistato, scritto in C, era senza codice sorgente ed ogni modifica richiesta per adattarlo ai nostri sistemi contabili aveva costi esorbitanti. Dopo aver “scoperto” il linguaggio Perl mi accorsi e riuscii con alcuni scripts a ricreare tutti i dati necessari alla contabilizzazione semplicemente esaminando il file di log prodotto in real-time dal sistema Marconi. Il mio compito principale era però di tipo sistemistico: dovevo far funzionare la rete dei 18 nodi Unix e monitorare lo stato di lavorazione dei fax. In quest’ottica ero anche il supporto tecnico dell’HotLine telefonica attivata per il supporto utenti PtFax., che, per mia fortuna, non ha mai avuto un successo esplosivo (circa 8000 clienti al suo massimo splendore). Il problema tecnico era il sostanziale sottodimensionamento delle apparecchiature: era stato sviluppato per le esigenze interne di inoltro fax di Marconi International che aveva alcune decine di sedi sparse per il mondo. Si cercava di farlo funzionare per un volume di traffico di 3 ordini di grandezza superiori. Capitò che, senza nemmeno avvertire, Microsoft Italia schedulò un invio di circa 15000 fax pubblicitari a potenziali clienti per una convention. Non si trattò più di “amministrazione di sistemi Unix” ma di un vero e proprio incontro di catch per far funzionare il tutto. Infatti, per essere remunerativo, l’inoltro dei fax su linea Telecom doveva avvenire in ambito urbano per evitare la tariffazione a tempo interurbana e costosa dell’epoca. Adesso è comune scaricare una foto di 1Mb da un sito internet ma nel 1993 non era così. Il Web era uscito dai laboratori del Cern solo due anni prima e le aziende, fra le quali Elsag, usavano reti affittate per la trasmissione dati quali ITAPAC. Ricordo che quella rete, per gli utenti “normali” non superava i 2400 baud e per quelli “professionali” i 9600 baud corrispondenti ai 57.5 Kb/sec massimi delle comunicazioni su rete telefonica pubblica. Considerando che il sistema Marconi prevedeva l’inoltro con uucp si può capire le nottate passate in ufficio a far funzionare il tutto … Corsi effettuati in Elsag/IBM La società, abituata da sempre ad una visione internazionali “obbligava” 3 i suoi dipendenti a seguire corsi di mantenimento e perfezionamento; personalmente ho partecipato ai seguenti : 3 Lingua inglese: come corso scolastico annuale, durata 3 anni Progettazione Data Base DB2: presso IBM Vimercate, durata 40 ore Progettazione Data Base RMS: sede Elsag tenuto da Digital Italia durata 40 ore Pena la fustigazione in sala mensa … 15 di 31 Progettazione OOP: sede Elsag tenuto da IBM, durata 40 ore Linguaggio C: presso IBM Vimercate, durata 40 ore 16 di 31 Riferimenti http://www.elsagdatamat.com/Home.htm http://it.wikipedia.org/wiki/Elsag http://archiviostorico.corriere.it/1992/marzo/31/ELSAG_BAILEY_1991_crescita_co_0_920331187 7.shtml http://en.wikipedia.org/wiki/BS2000 http://ts.fujitsu.com/products/bs2000/index.html http://en.wikipedia.org/wiki/VAX http://en.wikipedia.org/wiki/PowerHouse_(programming_language) http://de.wikipedia.org/wiki/SESAM http://it.wikipedia.org/wiki/Distinta_base http://www.fredrickgroup.com/s1/dbgo1mst.htm http://it.wikipedia.org/wiki/Centro_di_Meccanizzazione_Postale http://it.wikipedia.org/wiki/MOS_6502 http://en.wikipedia.org/wiki/VAX_6000 http://it.wikipedia.org/wiki/ITAPAC http://it.wikipedia.org/wiki/Baud http://it.wikipedia.org/wiki/UUCP 17 di 31 Seiaf S.p.A. Società fondata nel 1984 come partnership fra Elsag ed IBM Italia mirata all’automazione di fabbrica: Sistemi Elettronici ed Informatici per l’Automazione di Fabbrica Dati essenziali Dal 1990 al 1995 come analista-programmatore Referenti: nessuno; società sciolta (Potrei indicare l’Ing. Alberto Lina all’epoca amministratore delegato di SEIAF, col quale ebbi uno “scambio di vedute” piuttosto burrascoso durante un periodo di cassa integrazione di metà del personale per questione legate alla gestione dell’unico progetto [descritto più avanti] che creava flusso di cassa per la società ma onestamente non penso che si possa ricordare di me) Attività svolte Programmazione in Pl/1, DB2 in ambiente IBM MVS/TSO per sviluppo procedure interne IBM/Italia Consulenze esterne come analista-programmatore in ambito “gestione produzione” per grandi aziende italiane su piattaforme IBM ES/9000 MVS/TSO Relazione Introduzione La società nacque sulla base di previsioni di sviluppo economico a mio giudizio errate tant’è che dopo 11 anni il consorzio fu sciolto. Le cause, a mio avviso, furono queste: Differente “visione” del business: modello americano incompatibile con la visione “genovese” Tecnologia carente: IBM voleva affermare il suo Token Ring che fallì in una “prova” per noi fondamentale: la Pirelli England affidò a SEIAF il compito di automatizzare completamente una fabbrica di cavi in fibra ottica che doveva sorgere a nord di Londra. Quando il sistema fu pronto ed installato in fabbrica funzionava fino a 100/110 bobinatrici collegate poi diventava instabile ed inaffidabile. IBM mandò per mesi alcuni fra i suoi tecnici migliori che non riuscirono a risolvere il problema perchè, a detta dei “nostri” era dovuto a “manchevolezze intrinseche nel protocollo Token Ring”. Iniziò una disputa ed un rimpallo di responsabilità che allontanò sempre più l’obiettivo di automazione, core business, della società (nel frattempo Pirelli England affidò ad un società americana la reimplementazione del sistema, questa volta con Ethernet …) Questo portò ad un “cambio di rotta” e per far quadrare i bilanci il core business si spostò sempre di più in ambito “commerciale” pur restando nel confine del software legato alla produzione industriale. 18 di 31 Principali progetti Riporto qui sinteticamente i progetti ai quali ho partecipato Controllo qualità schede memoria mainframe – IBM IBM Semea costruiva le schede di memoria utilizzando vari stabilimenti sparsi in Europa ma non si era ancora dotata di un sistema centralizzato di monitoraggio. Su specifiche dettagliate sviluppammo un sistema di analisi e tracciabilità difetti di ogni singolo componente che raccoglieva dati dalle varie fonti coinvolti. Il tutto fu sviluppato secondo i rigorosissimi standards interni di progettazione, sviluppo, test e documentazione di IBM utilizzando il linguaggio PL/1 ed il supporto del monitor ISPF/TSO sotto MVS con database DB2. La logica di sviluppo adottata si potrebbe definire di “micro moduli”: non si dovevano superare le 100 righe di codice per realizzare una particolare funzione in modo da minimizzare la possibilità di errore nel singolo modulo. Era comune all’epoca, in ambito IBM, sostenere che un “programmatore esperto” non poteva rilasciare più di 40 linee di codice, esenti da errore, al giorno. Se ricordo bene, il progetto consegnato, superava le 200.000 righe per 4 programmatori ed un anno di lavoro. La parte “difficile” era legata essenzialmente all’ambiente di sviluppo: in remoto su un server emulato su connessione dial-up a 9600 baud. Il risultato era che col terminale 3270, ogni volta che si premeva “Enter” per la scrittura, modifica, esecuzione di un programma, si aspettava, orologio alla mano, 15 minuti per la risposta. Traducendo: era vietato sbagliare! La fase di debug e test fu però molto, molto istruttiva: Tecnici IBM, appositamente preparati, esaminavano il codice riga per riga, facendo le pulci ad ogni singola variabile o system call ed ogni volta che firmavano il tabulato per approvazione era un “olà!”. Una particolarità tecnica legata allo sviluppo, ed in particolare alle query in linguaggio SQL, fu quella dell’impossibilità di utilizzare l’SQL-Optimizer semplicemente perché ci fu bloccata con opportune policies l’accesso dai nostri terminali. Considerando che il sistema doveva elaborare i dati prodotti da macchine che testavano ogni singolo componente il volume totale delle righe nella tabella principale superava abbondantemente il centinaio di milioni. Per specifiche “contrattuali” era richiesto un tempo di risposta “massimo” inferiore ai 3 secondi per ogni funzionalità implementata. Ricordo che, svariate volte, durante lo sviluppo, per una query non perfetta, il terminale si inchiodava, cioè il sistema centrale declassava automaticamente alla priorità minima le query che superavano una quota prefissata di tempo e/o spazio temporaneo per cui in pratica l’interrogazione non finiva più e non restava altro da fare che chiamare il sistemista di Vimercate per farci stoppare il task e ripartire dopo verifiche e correzioni. Quando però il sistema fu installato su un server di test con i dati “reali” superò senza problemi le prove di performance richieste. 19 di 31 Recupero Crediti Clienti IBM Italia Dopo questo primo progetto, rilasciato con anticipo sulla data di “cut-over”4 ce ne fu affidato uno decisamente più “critico”: recupero crediti clienti. A livello contabile si dovevano incrociare i dati di vendita, dei magazzini, della fatturazione ecc. … il tutto per “scovare” i clienti che pagavano in ritardo o che non pagavano affato i canoni di affitto software, hardware e/o servizi. L’ambiente era lo stesso del precedente progetto ma con una mole di dati decisamente maggiore: per provare alcune funzionalità avevo popolato con 20.000 righe alcune tabelle contabili non potendo immaginare che nell’ambiente di produzione si parlava di più di 200.000.000 di movimenti contabili … In questo progetto era preponderante l’elaborazione batch dei dati rispetto alle interrogazioni on-line.. La parte più importante della procedura consisteva nel scaricare su file sequenziali le varie tabelle del database e tramite programmi di “bilanciamento” scrivere in output le nuove versioni dei files dai quali poi alla fine si sarebbe ricreato il nuovo database la cui struttura era ottimizzata e pensata essenzialmente per interrogazioni on-line. Questo richiedeva l’uso di numerose fasi di sort prima di ogni “bilanciamento”. Nei nostri test, una chiusura contabile durava circa 20 minuti con nostra grande soddisfazione. Quando andai al centro di calcolo IBM di Vimercate per l’installazione sui server di produzione ebbi però una sorpresa: il sistemista mi permise di accedere ad una console per il lancio del job per cui, dopo aver modificato la JCL per adattarla ai nuovi volumi lanciai il task con un tasto “Enter” grosso il triplo di uno normale … Sentii solo un beep e non successe nient’altro; fui sorpreso … come sarebbe a dire? Dopo tre mesi di test non funziona nulla? Secondo invio e secondo beep … terzo invio e terzo beep! Incominciai a sudare freddo … vedevo naufragare nel nulla il lavoro di un anno! Poi il sistemista mi chiese: perché hai lanciato tre volte il task? Hai riempito la coda di SYSOUT, guarda il log! Il beep era durato un battito di ciglia, ed in quella frazione di secondo il 3090 aveva schedulato il mio job insieme a qualche centinaio di altri, aveva eseguito la catena di 30 programmi inframmezzati da una decina di sort; il risultato finale, che avevo scritto per controllo, riportava sul log: “letti 220.milioni e spiccioli di records, scritti 220.milioni e spiccioli di records … controllo OK”. Ammetto di essermi sentito come il bambino che vede per la prima volta ET … Il sistemista mi stese con questa uscita: “Eh sì … 40 millisecondi di elapsed-time … un po’ lento oggi … sai … cosa ci vuoi fare, ci sono quasi 11.000 terminali collegati … “ SENZA PAROLE … 4 Secondo specifiche contrattuali, non erano previste penali nel ritardo di consegna. Semplicemente non era ammissibile alcun ritardo in quanto il pagamento del progetto era “dopo accettazione”. 20 di 31 Mi fu chiaro in un istante il paragone fra il motoscafo e la nave da crociera: forse, per brevi tratti il motoscafo è più veloce della nave; peccato però che non possa trasportare migliaia di passeggeri su e giù per i sette mari … In quest’ottica vorrei aggiungere che il Job Control Language è propedeutico a qualunque mansione in ambito informatico, nel senso che se uno riesce a “sopravvivere” ad esso può affrontare tranquillamente qualunque altro sistema, linguaggio, tecnologia informatica di sorta. Perché affermo questo? Perché, essendo un linguaggio progettato negli anni ’60 è “affilato e tagliente” che di più non si può. In pratica ha solo delle macro di definizione dei dati e poche altre cose ancora. Peccato che queste macro accettano un’enormità di parametri in funzione dei devices che devono collegare. Riporto a titolo esemplificativo una JCL di esempio: /PDSCRTJ4 JOB SIMOTIME,ACCOUNT,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1 //* ******************************************************************* //* This program is provided by: * //* SimoTime Enterprises, LLC * //* (C) Copyright 1987-2010 All Rights Reserved * //* * //* Web Site URL: http://www.simotime.com * //* e-mail: [email protected] * //* ******************************************************************* //* //* Subject: Define a PDS using the IEFBR14 with a DD Statement //* Author: SimoTime Enterprises //* Date: January 1,1998 //* //* The JCL member executes the instream PROC called PDSCRTP3 and //* passes a fully qualified data set name (DSN) via the symbolic name //* called DSNAME and referenced in the PROC as &DSNAME. //* //********************************************************************* //* The instream PROC for creating a PDS. The Data Set Name (&DSNAME) //* is provided by the job step that calls the PROC. //* //PDSCRTP3 PROC //PDSCRTS1 EXEC PGM=IEFBR14 //TEMPLIB1 DD DISP=(NEW,CATLG),DSN=&DSNAME, // STORCLAS=MFI, // SPACE=(TRK,(45,15,50)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PO) // PEND //* //* ******************************************************************* //* Step 1 of 3 Create a PDS using SET and EXEC //* // SET DSNAME=SIMOTIME.DEMO.TEMP01 //STEPJ41 EXEC PDSCRTP3 //* //* ******************************************************************* //* Step 2 of 3 Create a PDS using EXEC and DSNAME substitution //* //STEPJ42 EXEC PDSCRTP3,DSNAME=SIMOTIME.DEMO.TEMP02 //* //* ******************************************************************* //* Step 3 of 3 Create a PDS using EXEC and DSNAME substitution 21 di 31 //* //STEPJ43 //* EXEC PDSCRTP3,DSNAME=SIMOTIME.DEMO.TEMP03 Quando un task di chiusura contabile prevede una cinquantina di programmi in PL/1 per essere eseguito e deve essere a prova di errore, cioè in grado ripartire in modo automatico, a prescindere da “qualunque” errore possa capitare, la JCL risultante è a sua volta un programma più complicato dei programmi stessi! Infatti, nei grossi centri di calcolo, la preparazione dei task è compito di specialisti … ma noi non eravamo un “grosso” centro di calcolo … Un altro aspetto è quello di dover conoscere a fondo l’ambiente in cui operi: nel senso che per eseguire un programma che, ad esempio, legge un file con tipi records diversi ed in base al tipo record scrive altrettanti files, bisogna definire nella JCL una scheda per ogni file specificando l’organizzazione, le estensioni, se contiguo o meno, il numero di tracce del disco, la dimensione del settore, il numero di testine di lettura, ecc. ecc. ecc. … La cosa, secondo me, molto buffa è che quando ci si collega oggi ad un “moderno” sito web di una banca, assicurazione, forse prenotazione voli o quant’altro, dietro molto spesso ci può essere ancora questo mondo anni ’60 che, come questo schema del 2009, estratto dalla pagina dei seminari del sito web del corso di Laurea Specialistica in Ingegneria Informatica e dell’Automazione dell’Università di Ferrara http://www.unife.it/ing/ls.infoauto/sistemiinformativi/seminari, ci ricorda: 22 di 31 Il relatore, l’Ing. David Pilati, di Intesa Sanpaolo, pone al centro della figura un oggetto che è praticamente sconosciuto alla maggioranza degli studenti di informatica e scienze collegate e/o annesse. A mio modesto parere è una manchevolezza formativa. Certamente, nel corso degli anni, i mainframes con i condizionatori sul tetto per raffreddare i moduli di memoria sono andati in pensione sostituiti da macchine più maneggevoli e diventa difficile pensare alla potenza elaborativa di cui oggi sono capaci “armadi” come questo. Non ci starebbe bene nel laboratorio di Mura Anteo Zamboni? Ho l’idea che costi meno e sia più affidabile del cluster di 100.000 o più PC che usa Google, ma, ovviamente, meno divertente di un Pinguino tuttofare. Consulenze esterne Buona parte della mia permanenza in Seiaf riguardò poi l’attività di consulenza per importanti aziende italiane, fra le quali. Acciaieria Ilva di Genova e Gruppo Merloni Elettrodomestici presso le quali sviluppai, analizzando le richieste dei clienti, vari moduli integrativi ai sistemi di gestione della produzione COPICS già installati ed operativi. Fu interessante scoprire quanto è complessa la tecnologia di produzione dell’acciaio per cui, ad esempio, una singola bramma, dalla cui successiva lavorazione a freddo si ottiene, per esempio, la portiera di una BMW piuttosto che il parafango di una Punto, sia definita da più di 600 parametri tecnici, ognuno dei quali incideva, per tempi, metodi, attrezzaggio ecc. ecc. nel costo finale di vendita. Avendo sviluppato materialmente buona parte della procedura di Gestioni Ordini in ambito relazionale (database DB2), gestita fin al quel momento su un sistema Univac del 1962 (!!!) 5 fui non poco sorpreso nel scoprire che dagli stabilimenti di Genova, Taranto e Piombino uscivano rotoli di lamiera destinate alle 5 Quando si dice dei genovesi … prima di buttare via qualcosa ! Fu il secondo computer italiano, primo per scopi commerciali e credo 4° o 5° in Europa …archittettura a 36 bit! All’inizio per memorizzare i dati (pochi Kbytes) utilizzava dei cilindri ricoperti di materiale magnetico. Spero che l’abbiano conservato per sistemarlo in un museo 23 di 31 fabbriche Mercedes, BMW, Fiat ecc. ecc. e che l’acciaio prodotto, a detta dei clienti tedeschi era il migliore possibile. La Fiat, ovviamente, richiedeva prodotti più economici … Tecnicamente fu interessante anche il porting dell’applicazione in sé stesso: dal mondo Univac con bytes a 9 bits (word di 36 bits) al mondo IBM la conversione dati non fu semplice. Il database in sé, la cui struttura fu progettata dai tecnici IBM, non era particolarmente complesso (meno di un centinaio di tabelle) ma la riconversione dei dati con scrittura e rilettura su nastri di formato diverso e con alfabeti diversi lo fu eccome! Anche il software che sviluppai per l’on-line, non era proprio una bazzecola: per questioni di performance le tabelle principali non avevano una struttura “orizzontale” nel senso che per identificare una bramma (e tutti gli altri prodotti di altoforno) la tupla dei dati non era formata dalle 600 e più colonne in quanto sarebbe stato altamente inefficiente pensare alla struttura “massima” di produzione perché, per molte lavorazioni, bastavano 100/200 attributi. Perciò le tabelle furono definite “in verticale”, ovvero con tuple di 6/7 colonne contenenti la chiave di accesso, il codice dell’attributo ed i parametri numerici essenziali. Se questa scelta semplificò notevolmente la lettura/scrittura dei dati pose non pochi problemi di tipo prestazionale; ogni “videata” di un ordine cliente, per essere presentata, richiedeva la lettura di migliaia di records dal database con queries notevolmente complesse. Ricordo, con estremo piacere, di essere stato “affiancato” da un tecnico IBM particolarmente esperto dell’ottimizzazione delle queries stesse; l’ing. Pacifico. La particolarità di questa persona era il fatto di essere un non vedente. Ora, immagino che pochi abbiano pratica di sviluppo in COBOL/CICS/DB2; in questo contesto è normale che un programma sia composto da 2/3000 o più righe di codice, vuoi per la complessità intrinseca della funzione, vuoi per la complessità dei dati che deve trattare, vuoi, soprattutto, per la prolissità intrinseca del COBOL. L’ing. Pacifico, come ripeto, non vedente dalla nascita, era in grado in pratica di memorizzare un codice del genere e di indicare, dopo che qualcuno gli avesse riportato i codici di ABEND ed altre informazioni e con pochissimi errori, la riga esatta che aveva generato l’errore 6. dell’informatica. 6 ABnormal END of program: il famigerato “ABEND ASRA in XXXX …”. Il task viene abortito con un messaggio a console che indica, al 99,99% un errore di un istruzione “MOVE” di un dato non numerico in un campo numerico. 24 di 31 Aveva però un grosso difetto: era milanista! Mi permetto di scherzarci su, ma, a distanza di anni, non ho mai conosciuto nessuno con una tale capacità di memoria. Il suo grave handicap svaniva dopo pochi minuti dalla sua conoscenza e le sue spiegazioni sulla gestione interna del CICS e del DB2 erano un vero spettacolo. A tal proposito mi voglio soffermare un attimo sugli aspetti di documentazione di un S.O.; oggi ad esempio, se Windows termina in modo anomalo “sputa” (non sempre …!) una schermata blu con una serie di codici esadecimali che dovrebbero aiutare i tecnici a capire cosa è successo. Mi son fatto l’idea che nessuno al mondo li conosce in dettaglio, nemmeno Bill Gates … scavando con Google si riesce a volte a trovare qualche informazione di seconda o terza mano su un certo errore comune ma niente di più. Nel mondo IBM la musica è diversa: buona parte della libreria tecnica alle spalle di una postazione di lavoro, è piena di manuali di errori e di procedure per la loro risoluzione. Basta solo avere la pazienza di stampare il dump della memoria (un 200 pagine di quei fogli con i bordi traforati ai lati, con righe azzurrine e bianche, 132 colonne …) e seguendo le istruzioni della manualistica, si risale, decodificando i vari indirizzi delle aree di memoria occupate all’istante dell’errore, alla riga del programma sorgente che ha provocato l’errore stesso. Un’altra tecnica di debug che utilizzavo spesso nei programmi batch, era quella più semplice di “infarcire” il codice con istruzioni di output dei valori delle variabili; ma se il mio programma doveva utilizzare moduli già scritti da altri, ed era comune avere “catene” di 30, 40 o più moduli in cascata, questa tecnica non era percorribile. Non restava altro che munirsi di un termos di caffè ed analizzare le 200 pagine del dump … Altrettanto interessante fu lo sviluppo di applicazioni sw, sempre legati a Gestione Ordini e Magazzino, per conto della Merloni Elettrodomestici. In particolare, la prezzatura dei prodotti in base alla distinta di produzione ed alla marca finale e l’ottimizzazione dell’attrezzaggio per alcune lavorazioni. La fase finale di montaggio di una lavatrice, frigorifero od altro elettrodomestico “bianco” consiste infatti nelle “rifiniture” quali il top, le targhette con la marca e l’inserimento dei pomelli/pulsanti di comando. Impressionante vedere tramite query sul database, che i prezzi variavano anche del 30-40% in base alla targhetta appiccicata: AEG, Indesit, Candy ecc. ecc. … Tecnologie utilizzate Essendo una società legata a filo doppio ad IBM, era logico e naturale che le tecnologie fossero IBM; quindi: MVS, VSE, VM per i sistemi operativi TSO, CICS, CMS per i monitor degli stessi ISPF, JCL, Rexx per i linguaggi di controllo PL/1, COBOL per i linguaggi applicativi VSAM, ISAM, OSAM, QSAM, DB2, Dl/1 per la gestione dati Riferimenti http://ricerca.repubblica.it/repubblica/archivio/repubblica/1985/10/01/accordo-ibm-elsagnasce-la-seiaf.html http://en.wikipedia.org/wiki/Pl/1 25 di 31 http://en.wikipedia.org/wiki/ISPF http://en.wikipedia.org/wiki/Time_Sharing_Option http://en.wikipedia.org/wiki/MVS http://it.wikipedia.org/wiki/Job_Control_Language http://en.wikipedia.org/wiki/IBM_System_z http://it.wikipedia.org/wiki/UNIVAC_I http://en.wikipedia.org/wiki/UNIVAC_1100/2200_series http://it.wikipedia.org/wiki/ISAM http://it.wikipedia.org/wiki/OSAM http://it.wikipedia.org/wiki/VSAM http://it.wikipedia.org/wiki/DB2 http://it.wikipedia.org/wiki/Alberto_Lina 26 di 31 Morteo Soprefin S.p.A. Era una società del gruppo I.R.I con sede in Genova che si occupava di metallurgia leggera. Dagli stabilimenti di Pozzolo Formigaro e di Sessa Aurunca uscivano prodotti quali: Containers: semplici ed “attrezzati” (frigoriferi, case mobili) Travature per capannoni industriali, tetti Guard-rails Cassonetti immondizia Progettazione varia in ambito metallurgico/civile Dati essenziali Dal 1987 al 1990 come analista-programmatore in ambiente IBM VM/4381/DL-1 Referenti: nessuno; società sciolta Attività svolte Programmazione in COBOL/CICS/DL-1/VSAM per sviluppo procedure interne Relazione Introduzione La società produceva i suoi manufatti solo su commessa cliente e di conseguenza tutto il Sistema Informativo ruotava sul concetto di “commessa”. Al centro di calcolo presso il quale lavoravo, nel centro di Genova, erano collegati circa 230 terminali, una ventina di stampanti, unità nastro ed altre periferiche suddivise fra i due stabilimenti, la sede centrale di Genova ed alcuni importanti cantieri del nord Italia. Il software per la gestione delle commesse era il COPICS IBM, standard industriale per quell’epoca, con database gerarchico DL/1. Attività svolte Il mio compito era quello di sviluppare nuovi programmi soprattutto per le esigenze della contabilità e del magazzino, in quanto nel “pacchetto” IBM acquistato non erano presenti questi moduli. Rammento che all’epoca, il software per i mainframes non era acquistabile ma si pagava annualmente un canone (salatissimo) di utilizzo. Era logico, da un punto di vista economico, affittare solo i moduli essenziali per la gestione della produzione ed automatizzare nel tempo i vari uffici amministrativi e contabili con procedure ad hoc. Ricordo di aver visto una fattura di un upgrade del sistema centrale da 8 a 16 MegaBytes di memoria (Mb, NON Gb) per un importo di 8.000.000 di lire dell’epoca. Il tecnico IBM che montò la scheda sembrava un marziano: tappeto antistatico a terra, tuta di non so quale materiale riflettente, casco con visiera, guantoni collegati con un cavo di rame da ½ pollice alla massa: insomma più o meno come in “2001 – Odissea nello spazio”, il capolavoro di Kubrick. Pochi giorni fa ho letto di un chip Kingston da 24 GIGA bytes a meno di 1000€ . Oltre alla procedura Ordini Cliente, sviluppai completamente anche le Bolle di Consegna permettendo una drastica riduzione dei tempi di attesa degli autotrasportatori dal momento di carico al magazzino all’uscita dallo stabilimento. Era prassi all’epoca che il capo-piazzale dovesse 27 di 31 interrogare via terminale numerosi archivi fra loro non collegati, scartabellare su voluminosi tomi con i codici dei prodotti riportando e ricalcolando i prezzi a suo tempo trasmessi via fax dagli uffici centrali per produrre manualmente la bolla di accompagnamento merci. Un altro progetto nel quale fui coinvolto fu quello di ricreare la distinta base, partendo dall’analisi dei disegni tecnici in Autocad. A raccontarlo adesso mi sembra fantascienza … : I pochi e costosi PC dell’epoca erano utilizzati solo per scopi realmente importanti: su un PC 386 fu installata una versione di Autocad che permise ai progettisti un notevole salto qualitativo. Il problema gestionale era però quello di creare o ricreare la distinta base del prodotto partendo dal disegno. Si può facilmente intuire che per un prodotto semplice quale un cassonetto dell’immondizia composto da poche parti non si abbiano grossi problemi, ma con una casa mobile con centinaia se non migliaia di componenti? D’altro canto se era possibile con il LISP estrarre il codice dell’oggetto grafico dal file DWG, come inviarlo al mainframe? All’epoca, far “parlare” un PC con la rete SNA non era impresa da poco. IBM rilasciò solo nel 1983 (in USA …) un’utility chiamata IND$FILE dal funzionamento un po’ troppo macchinoso e comunque, ammesso e non concesso che il trasferimento dei dati dal PC al mainframe avesse avuto successo, sarebbe rimasto il problema di caricare gli archivi; cosa che, tenendo conto della complessità, dei vincoli e dei controlli necessari sconsigliava la scrittura di nuovi programmi. Mi venne l’idea di utilizzare la scheda IRMA/3270 usata per l’emulazione del terminale sul PC scrivendo delle routines in assembler e BASIC che simulavano il lavoro dell’operatore: con il LISP estraevo i dati da Autocad, con il Basic preparavo un buffer di dati che simulava la memoria video del terminale, con l’assembler lo caricavo nella memoria della scheda ed infine pilotando le opportune porte di I/O della scheda simulavo la pressione del tasto “Enter”. Il tutto per ogni oggetto grafico presente nel disegno originale. Utilizzavo cioè i programmi on-line già sviluppati per la gestione della distinta base facendo fare alla scheda di emulazione il lavoro ripetitivo di data-entry. Assolutamente divertente! Tecnologie utilizzate Anche in questa azienda il sistema centrale era IBM ma ebbi modo anche di “giocare” con il PC/DOS: VM/CMS e PC/DOS come sistemi operativi CICS come monitor VSAM, ISAM, Dl/1 come database COBOL, Basic, Assembler/370 (per le maschere video), Assembler/386 come linguaggi di programmazione Riferimenti http://gsf-soft.com/Documents/IND$FILE.shtml http://en.wikipedia.org/wiki/Irma_board http://en.wikipedia.org/wiki/Lisp http://en.wikipedia.org/wiki/Autocad 28 di 31 http://cicswiki.org/cicswiki1/index.php?title=History Firenze Come riportato nel curriculum vitae riassuntivo, dal 1983 al 1987 lavorai presso lo studio Dr. Ballotta a Firenze come programmatore per sviluppo SW per clienti in ambiente IBM/8100, Dati essenziali Era un piccolo studio professionale di 6 persone il cui fondatore aveva ottenuto un’importante commessa per consulenza software per le aziende manifatturiere del Gruppo Lanerossi, all’epoca il più importante gruppo tessile italiano entrato nell’orbita del Gruppo Eni.. Attività svolte Sviluppo applicazioni in COBOL in ambiente IBM 8100/DTMS Sviluppo applicazioni in RPG in ambiente IBM S/34, 36, 38 Sviluppo applicazioni in Gwbasic/Clipper in ambiente PC/DOS Relazione Approdai a Firenze, presso lo studio Ballotta, in seguito al mio desiderio di imparare il più possibile nell’ambito informatico. A Genova avevo frequentato un corso di programmazione in Basic su un Olivetti M-24 tenuto da una società di Firenze, se non ricordo male: IDS. Il corso, privato e piuttosto caro, non fu all’altezza delle mie aspettative, tant’è che, con altri ragazzi, ci rivolgemmo ad un avvocato per sollecitare la revisione e l’approfondimento “professionale” come promesso. Il corso fu esteso gratuitamente di altri 4 mesi e soprattutto fu cambiato l’istruttore. Nel 1982 non esistevano scuole “ufficiali” di informatica, non c’erano corsi universitari o quant’altro. Non è difficile immaginare perché: un PC IBM/XT costava nel 1983 più di una Fiat Uno e i mainframe si vedevano solo nei films di fantascienza. Così, tramite quella società di Firenze, inoltrai una domanda al Dr. Ballotta che acconsentì ad un periodo di addestramento di due o tre mesi a titolo gratuito. I tre mesi diventarono quattro anni a partita IVA … Incomincia, poco alla volta, ad entrare nelle problematiche delle grandi aziende, e realizzai (onestamente non so con quale qualità …) diversi programmi per i vari settori produttivi ed amministrativi: Contabilità, Magazzino, Paghe.Produzione. Per le aziende Lanerossi, completai con gli altri ragazzi dello studio, un software, denominato “Taylor” che permetteva l’ottimizzazione del “lancio in produzione”, cioè dell’accorpamento e taglio del cosiddetto “materasso”. Le sartorie industriali, infatti, lavorando su commessa, cercano di concentrare le fasi di taglio delle stoffe per la produzione di abiti nel più breve periodo possibile per poi cucire e completare gli abiti nei mesi successivi. Per ottimizzare i tempi usano dei tavoloni larghi una decina di metri e lunghi 20/30 sui quali stendono i vari rotoli delle stoffe. Qui iniziano i 29 di 31 problemi in quanto i vari tipi di cardatura e rifinitura della stoffe implicavano una maggiore o minore propensione al taglio; poi, con stoffe a quadretti, righe ecc. il posizionamento delle maschere per il taglio7 era un’operazione estremamente complessa. Il software da noi sviluppato aiutava gli operatori in questa delicata fase: dal reparto progettazione arrivava alla produzione un file con dati dei i poligoni relativi alle singole pezze che avrebbero formato l’abito e, dopo varie ore di elaborazione, produceva un tabulato a mo’ di griglia riportando per ogni cella il codice identificativo della pezza da tagliare alla quale era associata la propria maschera di taglio. Successivamente al taglio, il software procedeva alla creazione delle etichette per ogni singola pezza per permetterne poi il riassemblaggio in un prodotto finito tenendo conto dei tempi di lavorazione che andavano conteggiati e calcolati come costi. Tutti questi dati, ai quali venivano aggiunte le rilevazioni dei tempi di lavorazione, finivano per alimentare archivi che a loro volta erano la base per la contabilità industriale ed altre procedure. Esclusa la procedura di paghe e stipendi, che fu sviluppata da altre ditte e da noi solo personalizzata, gestivamo in pratica l’intera attività di un gruppo che aveva all’epoca più di 8000 dipendenti sparsi su una ventina di stabilimenti con varie competenze e specializzazioni in Italia. Mi ricordo, ad esempio, che dallo stabilimento di Maratea uscivano le divise per i dipendenti delle Ferrovie dello Stato, a detta di sarti espertissimi, di eccezionale qualità così come erano di alta qualità gli abiti a marchio “Lebole” prodotti a Filottrano (AN) ed altri. Fra i vari programmi che sviluppai, ce ne erano diversi per la prezzatura e gli ordini di vendita: verificai in un negozio di Genova che un abito da uomo classico, uscito dalla fabbrica a 87.000 Lire veniva proposto al prezzo di 380.000. Decisi che era meglio acquistare allo spaccio aziendale a 60.000 lire …! Oltre a questa attività preminente per la Lanerossi, mi capitò di installare da zero alcuni sistemi IBM S/36 con lo “standard” gestionale dell’epoca: ACG - Applicazioni Contabili Gestionali scritte in RPG, linguaggio che non riuscii mai a “digerire” completamente in quanto legato ad un posizionamento rigido e molto schematico soprattutto per la parte di stampa (nasce infatti su sistemi a schede perforate essenzialmente per la reportistica: Report Program Generator). Rammento che all’epoca, questo tipo di mini-computer era quello più diffuso in Italia con più di 40.000 installazioni nelle varie versioni S/34, S/36 e S/38. L’IBM all’epoca proponeva questi tre sistemi alle aziende manifatturiere in funzione del numero di utilizzatori e volume presunto dei dati fornendo in “bundle” le ACG per la gestione aziendale. In 7 Non esisteva ancora il taglio completamente automatico: gli operatori dovevano dapprima sistemare maschere in cartone sulla pila delle stoffe, contornarlo con il gesso e poi procedere al taglio vero e proprio 30 di 31 effetti non erano obbligatorie ma nessuno si azzardava a non acquisitarle in quanto in pratica era l’unico ERP allora disponibile per quella classe di hardware. Il “pacchetto” ACG completo superava abbondantemente i 2000 programmi suddivisi in vari moduli corrispondenti ai vari settori aziendali. IBM demandava ai business-partner il compito di personalizzazione e manutenzione dei moduli stessi. La cosa più difficile che ricordo era quella di far capire ai clienti che metà del costo di un progetto (almeno!) era legato alla progettazione, test e documentazione del software prodotto; semplicemente nessuno o quasi voleva pagare per cose che ritenevano “costi aggiuntivi”. Riferimenti http://www.marzotto.it/filati_lanerossi.html http://it.wikipedia.org/wiki/Lanerossi http://it.wikipedia.org/wiki/Eni#I_salvataggi:_Pignone_Lanerossi_e_Sir http://en.wikipedia.org/wiki/IBM_8100 http://en.wikipedia.org/wiki/IBM_System/36 http://www.acginfo.it/ http://it.wikipedia.org/wiki/RPG_(linguaggio_di_programmazione) http://en.wikipedia.org/wiki/IBM_System/34 http://en.wikipedia.org/wiki/S/36 http://en.wikipedia.org/wiki/S/38 31 di 31