Software Open Source nella Pubblica Amministrazione: un Caso di
Transcript
Software Open Source nella Pubblica Amministrazione: un Caso di
Software Open Source nella Pubblica Amministrazione: un Caso di Studio Adriano Di Pasquale, Daniele Zippo, Cesare Di Francesco Istituto Zooprofilattico Sperimentale dell'Abruzzo e del Molise "Giuseppe Caporale", Teramo, Italy, http://www.izs.it Sommario Il Software Open Source e il modello di sviluppo ad esso associato, è uno dei fenomeni della tecnologia dell’informazione più rilevanti degli ultimi anni. Da più parti ne viene promosso l’utilizzo nel settore pubblico. Il presente lavoro riporta l’esperienza di utilizzo in una Pubblica Amministrazione: l’Istituto Zooprofilattico Sperimentale dell'Abruzzo e del Molise "Giuseppe Caporale". Si evidenzia come, negli anni, abbia avuto un aspetto rilevante sia negli usi interni che nei progetti esterni dell’Istituto, garantendo il contenimento dei costi, la scalabilità dei servizi in base alle necessità e, nell’ambito dei progetti internazionali dell’ente, la possibilità di fornire servizi informatici anche in paesi in via di sviluppo. Inoltre, l’esperienza acquisita dal personale interno ha consentito la realizzazione del sistema WebWrapper che fornisce servizi di sicurezza e di “single sign on” a generiche applicazione web, evitando l’acquisizione di soluzioni commerciali analoghe con costi estremamente elevati. Nell’esperienza maturata in Istituto si è evidenziato uno dei maggiori vantaggi del Software Open Source: la spinta al suo utilizzo favorisce uno spostamento dei costi del software dall’acquisto di licenze alla formazione del personale, favorendone la crescita professionale. Introduzione Da tempo uno dei fenomeni più significativi nell'ambito della tecnologia dell'informazione è quello che va sotto il nome di Software Open Source (OSS: open source software): qualsiasi sistema di gestione delle informazioni e delle comunicazioni che consente la disponibilità del codice sorgente. Ad esso sono legati la Free Software Foundation (FSF) [1] e la Open Source Initiative (OSI) [2]. I due movimenti che ne sono derivati, quello del software libero e quello del codice a sorgente aperto, condividono entrambe l’idea guida della disponibilità completa e senza limitazioni dei sorgenti, sebbene si diversificano in alcuni aspetti filosofici e di principio [3] [4]. L’avvento del OSS ha creato anche un nuovo modello di sviluppo software, basato sui contributi di migliaia di programmatori che lavorano scambiandosi idee e file attraverso Internet, e giungono in assenza di autorità centrale a realizzare programmi complessi. Tale modello, denominato bazar, si contrappone al modello tradizionale di costruzione della cattedrale [5]. La rilevanza internazionale assunta dal fenomeno ha indotto diversi studi critici sul OSS al fine di consentire una corretta valutazione delle possibilità d’utilizzo nelle aziende ed in particolare nella Pubblica Amministrazione (PA). Approfondimenti possono essere trovati in [6][7][8][9]. In Italia, l'utilizzo di software opensource nella PA è in particolare motivato dalle seguenti indicazioni, dove si promuove l’utilizzo di standard aperti e sistemi informatici interoperabili: • Commissione Europea: Decisione 2004/387/ce: erogazione interoperabile di servizi di governo elettronico alle Pubbliche Amministrazione, alle imprese e ai cittadini. • Ministero per l‘Innovazione e le Tecnologie: Direttiva 19 dicembre 2003: Sviluppo ed utilizzazione dei programmi informatici da parte delle Pubbliche Amministrazione. In attuazione di tale direttiva, il Centro nazionale per l’informatica nella pubblica 1 amministrazione (DigitPA, ex CNIPA) ha costituito “l'Osservatorio Open Source”, in linea dal 2006 all’indirizzo http://www.osspa.cnipa.it/. L’osservatorio si occupa del coordinamento delle "best practice" e della conoscenza in materia di OSS nella PA. In particolare, il DigitPA individua una serie di vantaggi nella distribuzione ed evoluzione del software open source: • contenimento dei prezzi, • trasparenza e sicurezza, • non dipendenza da un unico fornitore, • elevata riusabilità, • accessibilità per le piccole realtà di sviluppo. Inoltre, in alcuni casi, rispetto ad equivalenti software commerciali, si ha: • qualità paragonabile o superiore, • diffusione maggiore (ad esempio il Web server Apache). L’Istituto Zooprofilattico Sperimentale dell'Abruzzo e del Molise "Giuseppe Caporale" (da ora in avanti semplicemente Istituto) è stata una delle prime PA ad avvicinarsi al movimento open source. Storicamente, i primi utilizzi di software open source risalgono a metà degli anni 90, in largo anticipo rispetto alla direttiva ministeriale del 2003. Per fare alcuni esempi, fin da subito è stato adottato il server web Apache1 per il sito istituzionale e Sendmail come server di posta; entrambi su sistema operativo GNU Linux. In seguito altri OSS sono stati utilizzati come firewall e come server proxy per la navigazione web. L’attenzione al software open source rimane alta ancora oggi. Da qualche anno si utilizza XEN come strumento di virtualizzazione dei server, Heartbeat come cluster per l'alta affidabilità, Alfresco per la gestione documentale dei progetti. Si sta effettuando il passaggio a Zimbra come gestione della posta elettronica istituzionale. L'esperienza estremamente positiva, fatta con i prodotti utilizzati, ha spinto l'introduzione del software open source anche nell'area di sviluppo del software cosiddetto “custom”, ovvero personalizzato per le esigenze istituzionali. Fin dal 2000, il framework di sviluppo Apache/Perl è stato infatti affiancato ad altri prodotti proprietari utilizzati da tempo. Ad oggi gli applicativi web si basano prevalentemente sulla piattaforma J2EE e gli sviluppatori utilizzano come strumenti di lavoro quotidiano Eclipse, Tomcat, Jasper Reports e librerie Java aperte quali Struts e Ibatis. Per il controllo di versione del codice sorgente è utilizzato Subversion. E' importante precisare che non sempre viene adottato un software open source per le necessità dell’Istituto. Ad esempio Oracle2 è sempre rimasto l'RDBMS di riferimento negli sviluppi più critici, in quanto utilizzato fin dalla versione 6. Il personale interno ha oramai una lunga esperienza sia dal punto di vista di sviluppo che di manutenzione. Il costo del passaggio ad un prodotto OSS equivalente è valutato molto più alto del risparmio in termini di licenze. In generale, nella scelta di un OSS vengono valutati vantaggi/svantaggi derivanti dalla sostituzione di un software proprietario già in uso in Istituto, tenendo presente i punti menzionati da DigitPA e le seguenti caratteristiche: 1 I riferimenti ai software opensource utilizzati in Istituto sono riportati in Tabella 1 2 http://www.oracle.com 2 • • • software open source derivante da progetti di provata qualità, attivi e con supporto, costo basso di introduzione nell'infrastruttura di sviluppo o sistemistica, basso impatto sulle conoscenze pregresse del personale. Un caso di particolare rilevanza è il sistema software sviluppato completamente all'Istituto utilizzando OSS denominato "WebWrapper". Esso realizza un’infrastruttura di servizi comuni per generiche applicazioni web tra i quali la pubblicazione in rete, la gestione dell'accesso e della sicurezza. Il nome deriva dal fatto che una richiesta web viene intercettata e impacchettata in una nuova richiesta, aggiungendo i servizi richiesti, prima di essere passata alle applicazioni web vere e proprie. Il sistema è parte integrante dell'architettura delle applicazioni critiche realizzate in Istituto e in tal senso, rappresenta un caso di successo di utilizzo di software open source nella PA, in quanto utilizzato in sistemi reali e non a scopo sperimentale. Nella prossime sezioni viene descritta l'architettura base delle applicazioni più importanti realizzate in Istituto, con particolare attenzione al sistema WebWrapper e ai vantaggi di averlo realizzato con OSS. Prodotti Server Apache: http://www.apache.org Sendmail: GNU Linux: http://www.linux.org Xen: Heartbeat: http://www.linux-ha.org Alfresco: Zimbra: http://www.zimbra.com Perl: Umn Mapserver: http://mapserver.org Tomcat: Librerie di sviluppo Java Struts: http://struts.apache.org Ibatis: Librerie di sviluppo Javascript Openlayers: http://openlayers.org Jquery: http://www.sendmail.org http://www.xen.org http://www.alfresco.com http://www.perl.org http://tomcat.apache.org http://ibatis.apache.org http://jquery.com Tabella 1 Riferimenti ai principali software open source utilizzati in Istituto Open source nei sistemi informativi realizzati in Istituto Per progetti esterni e per necessità interne, all'Istituto sono state realizzati software di varia natura. Dal punto di vista tecnologico, vi sono applicazioni di tipo client/server, per palmare, web e web-gis [13][14]. Applicazioni WEB Particolarmente importanti sono le applicazioni web e web-gis realizzate dall’Istituto per conto del Ministero della Salute, tra cui spicca la Banca Dati Nazionale delle Anagrafi Zootecniche (BDN), utilizzata a livello nazionale da circa 9000 utenti fra veterinari, allevatori e responsabili di macelli e che presenta un carico di oltre 20000 transazioni di aggiornamento quotidiane [10]. La Figura 1 riporta l'architettura di base seguita dall’Istituto per lo sviluppo di una generica applicazione web e degli OSS utilizzati nei vari livelli: 3 • nel livello dati viene comunemente utilizzato Oracle RDBMS con la componente Locator come motore spaziale, utilizzata quest'ultima prevalentemente per applicazioni web-gis [11][12]. • nel livello applicazione vengono utilizzati prevalentemente Apache Tomcat come Web container per le applicazioni J2EE e Apache/Perl per le applicazioni basate sul linguaggio Perl. Per le applicazioni web-gis, Umn Mapserver viene utilizzato come motore di rendering di immagini geografiche. • nel livello presentazione, ovvero il browser dell’utente, sono adottate una serie di librerie Javascript aperte, tra cui Jquery e Openlayers. Quest'ultima in particolare consente una interazione dinamica con le mappe, in particolare utilizzando come fonte dati le mappe messe a disposizione dal servizio remoto di Google Maps. Browser con Jquery, Openlayers Livello presentazione Livello applicazione Perl (Apache) J2EE (Tomcat) Google Maps UMN Mapserver Strumenti Open Source Strumenti Commerciali. Livello dati ORACLE Oracle Locator Risorse esterne all’IZSAM. Figura 1: Architettura di una generica applicazione web e web-gis. Il sistema WebWrapper Una generica applicazione web o web-gis deve garantire una serie di servizi di base, tra cui la gestione della sicurezza attraverso l'utilizzo del protocollo HTTPS ed eventualmente dell'autenticazione "forte" con la richiesta di inserimento di “smart-card” da parte degli utenti. Il sistema WebWrapper è stato progettato per aggiungere questi servizi ad una generica applicazione, indipendentemente da come è stata sviluppata. Storicamente il sistema è nato nel 2002 a supporto dei sistemi di sicurezza richiesti per la BDN. La Figura 2 mostra l'architettura del sistema WebWrapper: un server “bilanciatore” smista con algoritmo “round-robin” le richieste web su dei server “distributori”. Su questi ultimi è installato Apache con moduli Perl e configurato come reverse proxy. Una richiesta web viene intercettata ed elaborata, verificando i requisiti di sicurezza, prima di distribuirla ai server applicativi veri e propri. Tipicamente in questa fase una richiesta in protocollo HTTPS viene tradotta in protocollo HTTP. Disaccoppiare la gestione della sicurezza del sito dalla parte applicativa ha una serie di vantaggi: 4 • • facilita gli sviluppatori degli applicativi che possono concentrarsi esclusivamente sui requisiti utente, bilancia il carico di trasformazione di una richiesta HTTPS in HTTP, notoriamente piuttosto pesante. Internet HTTPS Bilanciatore (Linux 2CPU) HTTPS Distributore (Linux 2CPU) Distributore (Linux 2CPU) Distributore (Linux 2CPU) HTTP App server (4CPU) App server (4CPU) Figura 2: Architettura sistema WebWrapper Discussione Vantaggi dell’utilizzo di software open source I vantaggi principali di aver utilizzato software open source per gli applicativi web e per il sistema WebWrapper sono indicati di seguito. Risparmio economico L’utilizzo di software open source ha consentito e consente un risparmio economico notevole in termini di licenze software necessarie per i sistemi informativi dell’Istituto. Scalabilità Crescita del sistema in base alle necessità. A fronte di attività applicative specifiche, in BDN è stato necessario affrontare più volte situazioni di carico particolarmente intenso. In questi contesti, l’architettura di Figura 2 è stata aumentata con un server per la parte applicativa e un distributore del sistema WebWrapper. Terminato il periodo intenso si è ripristinata la situazione iniziale, in quanto pienamente sufficiente a gestire il carico ordinario. Crescita rapida L'assenza di costi di licenza software consente una scalabiltà “rapida”. Se l'hardware è disponibile, è possibile aumentare rapidamente server applicativi e distributori nelle situazioni in cui si presenti un aumento di carico non previsto, o applicazioni da realizzare in tempi stretti. In tal caso, il costo dell’aumento delle risorse è dato solo dall'hardware. Al contrario, nel caso di utilizzo di sistemi proprietari, il precedente costo cresce a causa delle licenze software, le quali notoriamente dipendono dalla quantità di hardware 5 utilizzato. Dalla nostra esperienza questo può essere anche quattro volte superiore rispetto a quello del solo hardware. La scelta strategica dell’Istituto è stata di investire in anticipo su un parco hardware adeguato a coprire le variazioni nel carico e nel numero di applicazioni e, dove possibile, utilizzare software senza costi di licenze. Investire in anticipo sulle licenze software sarebbe complicato da giustificare. Si prenda come esempio una situazione, verificatasi più volte in BDN, con un forte aumento del carico lavorativo limitato ad un periodo di tempo. Una volta ripristinata la situazione di normalità, è abbastanza semplice riconvertire un server ad altre attività, in particolar modo utilizzando sistemi di virtualizzazione: il server virtuale non più necessario può essere spento, liberando risorse che saranno utilizzate da altre macchine virtuali. Al contrario, le licenze software aggiuntive rimangono un costo non recuperabile. Budget limitati L'assenza di costi di licenza ha consentito di poter fornire personalizzazioni dei sistemi informativi della BDN in contesti con budget limitati: in particolare in Serbia ed Eritrea. Una personalizzazione del SILAB (Sistema Informativo dei Laboratori) è stato fornito in Namibia. Tutti contesti in cui costi pesanti di licenze software avrebbero bloccato il progetto in partenza. Il controllo del codice: un vantaggio aggiuntivo Un altro fattore determinante è stato mantenere il controllo del codice. E' ben noto che ciò consente di personalizzare i sistemi software in base alle proprie necessità. In particolare, nel sistema WebWrapper, rimanere aggiornati sulla tecnologia e sulle possibilità offerte dai software open source, ha consentito l'estensione del sistema nell’arco degli anni aggiungendo importanti funzionalità: Mapping degli applicativi: questa funzionalità consente di dare all'utente una visione omogenea di un applicativo web, mascherando il fatto che esso è composto di moduli interni separati. In base a delle direttive, le richieste web che arrivano ad un’applicazione vengono smistati a webserver interni differenti. Un tipico mapping è il seguente: • • https://www.izs.it/reports/ https://www.izs.it/gis/ -> http://SERVER_1:8080/reports/ -> http://SERVER_2:9090/gis/ Le direttive indicano che le richieste al sito www.izs.it con prefisso “/reports/” saranno gestite dal servizio web presente alla porta 8080 del server SERVER_1. Analogamente per le richieste con prefisso “/gis/”. Il mapping consente di creare applicazioni web coerenti utilizzando moduli separati realizzati con tecnologie diverse, quali moduli di reportistica, gestionali e gis. E’ stato di fondamentale importanza nel pubblicare applicativi web aggregando sottoapplicazioni realizzate in tempi diversi, molto spesso realizzate con tecnologie diverse e per forza di cose installate su server separati. In tal caso, il mapping ha favorito il riuso di applicazioni realizzate in passato evitando costose riconversioni. 6 Single Sign On: questa funzionalità consente di utilizzare applicazioni web differenti avendo un unico punto di autenticazione. Una volta autenticati in un applicazione portale, non verranno più chieste le credenziali per l'accesso alle altre applicazioni configurate. Questa funzionalità è stata pesantemente utilizzata nella realizzazione del portale che pubblica tutte le differenti anagrafi zootecniche della BDN. Ad oggi, esistono diverse WebWrapper. Tipicamente hardware che di software) diverse decine di migliaia di soluzioni che realizzano le funzionalità presenti nel sistema sono fornite come “appliance” (soluzioni composte sia di e hanno anche in questo caso dei costi sempre nell'ordine di euro. Conclusioni Come caso di studio in una Pubblica Amministrazione, si è presentata la panoramica del Software Open Source utilizzato all’interno dell’Istituto sia per gli scopi interni che per i progetti nazionali e internazionali. In particolare è stato presentato un caso di successo di applicazione software realizzata internamente all’ente con strumenti open source ed utilizzata in progetti critici. In tale contesto, si sono evidenziati i benefici previsti dal DigitPA. Ad essere più precisi, due caratteristiche proprie del software open source determinano vantaggi diversi: non si hanno costi di licenza e il formato dei dati è necessariamente aperto. Dal punto di vista delle licenze si evidenzia: • • • contenimento dei costi, elevata scalabilità con possibilità di aumento e riduzione di risorse senza spese inutili, facilità di applicazione a progetti con budget limitato, tipico dei paesi in via di sviluppo. Dal punto di vista del formato aperto dei dati si hanno i seguenti vantaggi: • • indipendenza da fornitori di software, elevata personalizzazione in base alle necessità. Come noto l’utilizzo di software commerciale non è gratuito. Vi è da un lato il costo di licenza iniziale e poi quello di manutenzione e aggiornamento. Il costo di manutenzione è presente anche nell’utilizzo di software open source, ma in questo caso può essere scelto fra due diverse possibilità: come servizi di supporto da pagare ad aziende esterne, oppure come formazione del personale interno. Ovvero, al contrario del software commerciale, vi è la possibilità di scegliere. In base all’esperienza dell’Istituto, tale costo è da valutare come un’opportunità: laddove ve ne sia la possibilità, invece che acquistare licenze software si può pensare di investire nella crescita professionale del personale su software open source di provata qualità. Questo garantisce un risparmio nel progetto corrente e, ancora più importante, un ritorno di conoscenza nei progetti futuri. 7 In definitiva, il modello di sviluppo open source promuove lo spostamento dei costi dalle licenze alla formazione del personale, ovvero da una situazione di dipendenza che il fornitore opera sul cliente ad una di indipendenza e crescita culturale. Riferimenti [1]. Free Software Foundation http://www.fsf.org. [2]. Open Surce Iniziative http://www.opensource.org. [3]. Meo A., Berra A., 2001, Informatica solidale. Bollati Boringhieri [4]. Meo A., 2002, Software libero e Open Source, Mondo Digitale, Anno I, n. 2, 2002, p.3-17. [5]. Raymond E., 2001, The Cathedral and the Bazaar. Paperback edition. [6]. Fuggetta A., 2003, Open source software: an evaluation. Journal of Systems and Software, Vol. 66, Issue 1, 2003, p. 1-90. [7]. European Commission - DG Enterprise, 2001, Study into the use of Open Source Software in the Public Sector An IDA Study - Interchange of Data between Administrations, June 2001. [8]. International Institute of Infonomics University of Maastricht, Berlecon Research GmbH Berlin, 2002, FLOSS (Free/Libre and Open Source Software: Survey and Study). June 2002. [9]. UK Government, 2004, Open Source Software - USE Within UK Government,V.2, http://www.cabinetoffice.gov.uk/media/253410/oss_policy_version2.pdf [10]. A. Di Pasquale, E. Isocrono, L. Possenti, M. Cianella, C. Di Francesco, R. Lelli, V. Caporale, 2007, The Italian Database for Animal Identification: a Real Life Interoperability System among Public Administrations, In Proceedings of International Symposium on Management, Engineering and Informatics (MEI) 2007, IIIS(International Institute of Informatics and Systemics) [11]. A. Di Pasquale, E. Isocrono, L. Possenti, C. Di Francesco, W. Di Donato, G. Fiore, J. Hofherr, F. Natale, F. Bonavitacola, 2009, Monitoraggio del benessere animale e della tracciabilità del bestiame durante il trasporto, Veterinaria Italiana, 45(4), 567586. [12]. Savini L., Weiss C., Colangeli P., Conte A., Ippoliti C., Lelli R., Santucci U., 2007. A Web-based geographic information system for the management of animal disease epidemics. Veterinaria Italiana 43 (3), 761 – 772. [13]. L. Possenti, A. Di Pasquale, E. Isocrono, W. Di Donato, A. D'Angelo, C. Di Francesco, V. Caporale, 2006, Multichannel Access to the National Database for Animal Identification, In Proceedings of International Conference on Cybernetics and Information Technologies, Systems and Applications (CITSA) 2006, IIIS(International Institute of Informatics and Systemics) 8 [14]. C. Batini, M. Comerio, F. De Paoli, C. Di Francesco, A. Di Pasquale, S. Grega, 2004, A service re-design methodology for multi-channel adaptation, In Proceedings of International Conference On Service Oriented Computing (ICSOC) 2004: pp. 11-20, ACM. 9