APPROFONDIMENTO ICT Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Approfondimento L implementazione del sito: piattaforme tecnologiche e linguaggi ORGANISMO BILATERALE PER LA FORMAZIONE IN CAMPANIA
Opzioni tecniche di base L impegno richiesto per la realizzazione di un sito web dipende innanzitutto dagli obiettivi funzionali che si vogliono attribuire allo stesso. Con il termine sito si fa, infatti, riferimento ad una molteplicità di realtà che svolgono funzioni molto diverse e che implicano una complessità realizzativi molto differenziata. Si va dalle pagine che rappresentano in maniera sintetica le caratteristiche di un azienda (il classico sito vetrina ) a strutture molto articolate, che diventano veri e propri centri per l erogazione di servizi virtuali, come un negozio di commercio elettronico o un sito di internet banking, un portale, o addirittura un marketplace, dove converge la domanda e l offerta di numerose imprese. In ragione delle diverse condizioni di complessità si giustifica l ampia varietà di soluzioni informatiche che vengono impegnate e la grande variabilità di costi connessi alla fase di realizzazione tecnica del sito, che va da poche centinaia di euro fino ad arrivare a alcuni milioni. Per offrire una prima linea guida di orientamento nell ambito della giungla di possibilità esistenti, è opportuno proporre una prima tassonomia che distingue fra: A. Siti statici. Svolgono normalmente una funzione di presentazione istituzionale di un organizzazione o di un iniziativa e sono anche noti come siti vetrina, termine che vuole enfatizzare l obiettivo primario che è quello di esibire dei contenuti. Una volta pubblicati, rimangono uguali a sé stessi, salvo interventi di aggiornamento e modifica periodici, che devono essere effettuati da tecnici, in quanto non sono presenti sistemi per l alimentazione automatica dei contenuti. Sono realizzati in HTML, con l ausilio di tecnologie finalizzate a rendere più vivace la presentazione. B. Siti dinamici. Sono siti che prevedono la disponibilità di applicativi software, che svolgono funzioni dinamiche: non si limitano, quindi, a presentare staticamente sul web contenuto predefiniti ma offrono la possibilità di consultare contenuti attinti da un database collegato al sito ed alimentato da un attività costante di caricamento dei dati o di svolgere determinate attività interagendo, attraverso il web, con sistemi informatici per l erogazione di servizi informativi, commerciali e transazionali. È possibile proporre una sottoarticolazione di massima di questa categoria: b1. siti di contenuto. Il sito è alimentato da un CMS (content management system), ovvero da una piattaforma software che consente di inserire nuove pagine e nuovi contenuti nelle pagine esistenti attraverso un cruscotto web user friendly; b2. siti di commercio elettronico. Il sito ospita un catalogo di prodotti, che gli utenti possono acquistare attraverso una procedura che può o meno concludersi con una transazione elettronica; b3. altri siti applicativi. Il sito svolge funzioni diverse da quelle commerciali, generalmente finalizzate all erogazione di informazioni articolate ricavabili tramite la consultazione di procedure interattive o offre servizi complessi in ambienti controllati che rendono virtuali processi gestiti tradizionalmente in un contesto fisico (si pensi all internet banking). Sito statico: sviluppo in html La prima e più diffusa tipologia di presenza internet è proprio quella dei siti statici, molto frequenti soprattutto fra le PMI, che non vedono in web come uno spazio di sviluppo strategico su cui far convergere importanti flussi informativi ed operativi ma semplicemente 2
come un ulteriore canale di comunicazione istituzionale. Si fa, quindi, spesso ricorso a soluzioni accessibili sul piano economico, rivolgendosi a strutture locali che con una base di competenze limitate sono, comunque, in grado di realizzare siti statici dignitosi. Per la realizzazione di un sito statico si fa ricorso generalmente al linguaggio HTML, ovvero al linguaggio di impaginazione presente fin dalle origini, che attraverso l utilizzo di pochi semplici comandi (TAG) definisce la struttura e le caratteristiche formali delle pagine da rappresentare. È importante precisare che l HTML non può essere definito un linguaggio di programmazione (in quanto non definisce procedure operative che l eleaboratore elettronico dovrà eseguire), ma più propriamente come un sistema di markup (contrassegno), in quanto è un formato di dati che consente lo scambio di informazioni attraverso il World Wide Web. I tag HTML sono semplicemente dei marcatori che comunicano al browser alcune informazioni di formattazione, da utilizzare per comporre ed organizzare i contenuti all interno di una pagina. Se la progettazione del sito è stata svolta con efficacia, quindi, in fase di sviluppo si deve solo prestare attenzione alla correttezza della procedura di compilazione del codice HTML, verificando, in particolare, che siano rispettati gli standard del W3C per garantire corrette condizioni di visibilità e di funzionalità al sito. A fronte del forte utilizzo del web come luogo di comunicazione commerciale, il linguaggio HTML è stato arricchito di tag e di funzionalità che, se hanno il pregio di arricchire le modalità di presentazione della pagina, hanno il difetto di limitare la competibilità del codice con browser differenti. Esistono, poi, alcuni linguaggi che consentono di animare la pagina HTML con l inserimento di oggetti grafici in movimento. I principali sono: Flash: un software che permette di realizzare animazioni per il web e non solo: i filmati prodotti con Flash sono grafici e animazioni composti principalmente da grafici vettoriali, e possono contenere audio e grafici bitmap importati. Javascript: linguaggio di scripting sviluppato dalla Netscape Communications. come estensione del linguaggio HTML, consente di creare pagine Web contententi elementi che rispondono ad eventi-utente ed eseguire calcoli e operazioni client-side (sulla macchina dell utente). Microsoft ha sviluppato un linguaggio simile a JavaScript chiamato JScript, il quale però ha delle caratteristiche compatibili solo con il browser Internet Explorer. Sito dinamico: la scelta di fondo Ben più complesse sono le scelte progettuali da effettuare per la realizzazione di un sito dinamico, che deve essere spesso concepito come il risultato un vero e proprio processo di sviluppo informatico, sottoposto alle logiche dell ingegneria del software. In tal senso, è possibile distinguere un opzione di fondo che occorre determinare quando si intende realizzare un sito dinamico: scegliere una piattaforma software esistente da implementare o sviluppare un progetto ad hoc, capace di far fronte alle esigenze specifiche del caso. È una scelta analoga a quella che si compie nel campo della moda fra l acquisto di un abito preconfezionato e la realizzazione di un abito su misura ed i criteri da adottare sono in larga parte simili. 1. Il ricorso ad una piattaforma standard (come l acquisto di un abito preconfezionato), infatti, consente un evidente economia di costi, in quanto riduce al minimo gli oneri di sviluppo: si tratterà solo di configurare la piattaforma nel modo più coerente con le proprie esigenze e di adattarla all interfaccia che si è scelta per il sito: qualcosa di molto simile ai ritocchi di sartoria da apportare all abito preconfezionato per renderlo più 3
vestibile, che non implica interventi strutturali di sostanza. 2. Lo sviluppo di un progetto ad hoc ha l indubbio valore di consentire la realizzazione di una soluzione che risponda in maniera specifica alle esigenze del singolo cliente e consente di ottimizzare le prestazioni del sito. Come un abito su misura veste a perfezione (sempre che il sarto sia bravo nel prendere le misure e nel realizzare il prodotto), ma ha un costo molto elevato. Normalmente questo approccio si giustifica quando il cliente ha esigenze molto particolari, che non trovano una risposta adeguata fra le soluzioni già presenti sul mercato e quando il valore generato dall applicativo da sviluppare e tale da giustificare un investimento rilevante. In realtà, le due ipotesi rappresentare costituiscono gli estremi di un continuum, che raramente corrispondono a soluzioni adottabili allo stato puro. Molto più spesso e molto più facilmente si ricorre ad una soluzione intermedia, che prevede l adozione di una o più piattaforme software che vengono integrate al servizio delle funzionalità nel sito da realizzare mediante un classico intervento di system integration, che prevede anche lo sviluppo di funzioni applicative non presenti nei prodotti originali ma utili ai fini dei processi da gestire. In questa prospettiva, una decisione molto importante è proprio quella relativa alla scelta delle piattaforme software di base: una scelta che si deve necessariamente basare su valutazioni molto puntuali che tengano conto di complesse verifiche del rapporto costi-benefici. Ultimamente in queste analisi stanno assumento un peso sempre maggiore le soluzioni open source L opportunità Open Source Open source si può tradurre letteralmente come "codice aperto" e identifica tutti i software che non sono coperti dal copyright di case produttrici, ma sono disponibili per essere utilizzati e modificati liberamente da parte di qualsiasi utente. È un modello di sviluppo che rivoluziona le logiche proprietarie su cui si è fondata per anni l attività di realizzazione di programmi informatici e propone un nuovo paradigma basato sulla"apertura" e sulla condivisione delle esperienze nel mondo dell'information Technology Il fenomeno è nato nel 1991 su iniziativa di Linus Torvald, uno studente dell'università di Helsinki, il quale per progettare un sistema operativo alternativo a quelli delle multinazionali ebbe l'idea di pubblicare il suo lavoro su internet e di dichiararlo disponibile a qualsiasi modifica, integrazione o suggerimento volto a completarlo o migliorarlo. In questo modo nacque il primo sistema operativo libero, Linux, che in pochi anni è riuscito ad aggregare una comunità di programmatori localizzati in tutto il mondo, disponibili a dedicare una quota rilevante del proprio tempo per garantire lo sviluppo e il miglioramento progressivo del sistema. La caratteristica essenziale di Linux è nell'apertura del codice sorgente ovvero nella possibilità da parte di chiunque di intervenire sul software per modificarlo in funzione di specifiche esigenze operative. Questo modello è stato adottato da molti programmatori per lanciare progetti destinati a piattaforme operative, comprese molte di quelle utilizzate per la realizzazione di siti Internet dinamici. Così, oggi è possibile trovare decine, centinaia e a volte persino migliaia di soluzioni preconfezionate open source che possono essere prese a riferimento per i progetti di sviluppo rivolti al web, come, ad esempio, sistemi di content management o moduli di commercio elettronico. I molti casi conviene adottare queste soluzioni per alcuni importanti motivi: 1. Basso costo iniziale. L'adozione dell'open source porta normalmente ad un risparmio iniziale in termini di costi per licenza e di aggiornamento, anche se si deve considerare che in 4
molti casi a questo può corrisponedere un più elevato costo di gestione. 2. Indipendenza dai fornitori. Il software non è di proprietà del fornitore, il quale ha solo il compito di ingegnerizzare un programma che qualsiasi altro fornitore potrebbe modificare: questa condizione lascia sempre aperta la porta per una modifica del partner tecnico senza dover subire i vincoli di lock in che scattano automaticamente nel caso di piattaforme proprietarie. 3. Flessibilità. La presenza di un codice sorgente aperto permette di potere apportare sul software libero modifiche a secondo delle singole necessità, con grande semplicità e anche ricorrendo a fornitori diversi e complementari, i quali possono fare riferimento ad un patrimonio di competenze condiviso (appunto, il codice aperto). I linguaggi di scripting peri siti dinamici Nei siti dinamici il contenuto delle pagine web è, in tutto o in parte, generato sul momento dal server e può essere quindi diversa ogni volta che viene richiamata (proprio per questo i siti sono definiti dinamici ). Per ottenere questo risultato non si utilizza direttamente il linguaggio HTML, ma si ricorre a dei linguaggi di programmazione (i linguaggi di scripting) che presidiano alla creazione della pagina nel momento in cui questa viene visitata, anche interagendo con i visitatori, e possono variare l'output HTML successivo dopo calcoli eseguiti con apposite strutture messe a disposizione dal linguaggio di scripting che si usa. La scelta dei linguaggi di scripting su cui basare il sito può avere un effetto rilevante sui costi e sulle potenzialità di evoluzione, per cui è importante anche per i non addetti ai lavori avere un idea delle caratteristiche delle principali soluzioni esistenti sul mercato. I principali linguaggi dinamici attualmente utilizzati sul web sono: ASP (Active Server Pages). Il linguaggio proprietario di Microsoft è stato derivato da Visual Basic ed è preferibile (quando non indispensabile) utilizzarlo in combinazione con altri software della casa madre (SQLServer, Access e Internet Information Server). È un linguaggio molto diffuso e relativamente economico: è facile trovare sviluppatori esperti e comporta limitati costi di mantenimento rispetto ad altre scelte ben più onerose sia come requisiti hardware che software. Il più grosso limite di ASP è, alla stessa maniera, la quasi totale dipendenza dalla piattaforma Micorsoft, meno stabile di altre. ASP è, quindi, adatto ad applicazioni semplici e con un limitato numero di accessi concorrenti. JSP (Java Server Pages). La potenza di JSP e' data soprattutto dal fatto che si tratta di Java. Con gli ultimi rilasci la Java Virtual Machine e' sempre più stabile e performante e, inoltre, le librerie della distribuzione sono sempre più complete. Poter sfruttare Java significa avere a disposizione tutto questo e, nonostante sia necessaria una progettazione più accurata ripetto ad ASP, si possono ottenere applicazioni stabili e facilmente manutenibili. PHP (Hypertext Pre-processor). PHP e' l'ultimo nato di questi linguaggi di scripting e per alcuni motivi è anche il migliore, infatti risulta il piu' performante da numerosi benchmarks pubblicati sulla rete. PHP e' gratuito e nasce da un'iniziativa di Apache. E' possibile trovare molti esempi di applicazioni che lo rendono estremamente facile e di veloce utilizzo. PHP si sposa con la maggior parte dei sofware open source e gira su tutte le piattaforme piùconosciute. Cold Fusion. Il linguaggio ColdFusion è un linguaggio di scripting fortemente orientato all'accesso ai database. Molto apprezzato nello sviluppo di applicazioni enterprise, non ha goduto di grande supporto dagli sviluppatori poiché l'interprete lato server non è gratuito come per i linguaggi più diffusi. 5
I requisiti del progetto Al di là delle diverse opzioni tecnologiche da definire nella fase di progettazione ed implementazione è importante che il progetto soddisfi una serie di condizioni che contribuiscono a caratterizzare la qualità del sistema. Le principali condizioni da soddisfare sono: Rispondenza ai requisiti. Prima di tutto un sito Internet deve svolgere le funzioni per cui è stato pensato: la tecnologia non deve garantire eccellenza oggettiva ma deve rispondere con efficacia ed efficienza ad una serie di requisiti, che devono essere fissati con grande chiarezza all inizio del processo e verificati puntualmente al termine, Scalabilità. Il sistema deve poter evolvere in potenza in maniera semplice e naturale, possibilmente aggiungendo o sostituendo un componente hardware (processore, memoria, capacità disco) senza che sia necessaria una riprogettazione. È la caratteristica che permette ad un'impresa di acquisire un sistema sapendo che potrà aumentarne le prestazioni, al limite senza spegnerlo, se vi è necessità. Quindi, un'applicazione è scalabile se sa sfruttare i miglioramenti apportati dai nuovi materiali. Interoperabilità. In una rete dobve sempre più spesso applicazioni diverse si trovano ad interagire è fondamentale che i prodotti software e hardware installati su più computer di produttori diversi possano comunicare tra loro semplicemente ed automaticamente. Vi e' interoperabilità tra i programmi quando questi possono condividere gli stessi dati: in fase di progettazione, occorre tenere conto sia delle esigenze di interoperabilità note (scambi di dati ed interazioni con altri software conosciuti) sia di quelle che potrebbero intervenire in un periodo futuro. Manutenibilità. Questa caratteristica implica il poter intervenire successivamente al rilascio di un prodotto software e apportare modifiche o correzioni. Un software è detto manutenibile quando questi interventi possono essere fatti facilmente. Nonostante gli sforzi dei programmatori, infatti, non è pensabile che un prodotto software di grandi dimensioni sia messo in commercio senza difetti (bugs). Spesso i primi utenti di un prodotto software compiono, loro malgrado, un attività di verifica sul prodotto stesso. Sicurezza. Il software è sicuro quando protegge l'accesso ad informazioni private protette, impedendo accessi non autorizzati, sia di natura involontaria, che di natura dolosa. E' una categoria particolare di software robusto. 6