Università Politecnica delle Marche Dipartimento di Ingegneria Informatica, Gestionale e dell’Automazione Corso di Laurea in Ingegneria Informatica e dell’Automazione Progettazione e realizzazione di un portale per la gestione di vetrine aziendali Relatore: Candidato: Prof. Alessandro Cucchiarelli Massimo Lupi Anno accademico 2004/2005 INDICE 1. INTRODUZIONE 2. PANORAMICA ATTUALE SU INTERNET 2.1 L’E-COMMERCE E LA PUBBLICITÀ ON-LINE 2.2 I PORTALI 2.2.1 DEFINIZIONE E TIPOLOGIA DEI PORTALI 2.2.2 STRUTTURA E CARATTERISTICA DEI PORTALI 2.2.3 SCOPO DEI PORTALI 2.2.4 VALENZA ECONOMICA DEI PORTALI 2.2.5 IL RUOLO STRATEGICO DELL’INTERFACCIA 2.2.6 I MAGGIORI PORTALI ITALIANI 2.2.7 CONSIDERAZIONI FINALI 2.3 LE TECNOLOGIE PIÙ UTILIZZATE 2.3.1 HTML E JAVASCRIPT 2.3.2 PHP 2.3.3 MYSQL 2.4 UNO SGUARDO AL FUTURO: INTERNET 2 3. PROGETTAZIONE E REALIZZAZIONE DEL PORTALE 3.1 INTRODUZIONE 3.2 LE SPECIFICHE 3.3 LA PROGETTAZIONE 3.3.1 IL DATABASE 3.3.2 ALCUNE QUERY 3.3.3 GLI STRUMENTI UTILIZZATI 3.4 LA REALIZZAZIONE 3.4.1 LA HOMEPAGE 3.4.2 IL MOTORE DI RICERCA INTERNO 3.4.3 L’AREA UTENTE 3.4.4 LA GESTIONE DEI BANNER 3.4.5 LE VETRINE DELLE OFFERTE E DELL’USATO 3.4.6 L’AREA AMMINISTRATORE 3.5 LA FASE DI TEST 3.6 LA PUBBLICAZIONE 4. CONCLUSIONI 4.1 PUBBLICITÀ DEL PORTALE 4.2 CONSIDERAZIONI FINALI 5. ALLEGATI 5.1 LE SCHERMATE PRINCIPALI DEL PORTALE 6. BIBLIOGRAFIA 7. GLOSSARIO 3 4 4 6 8 10 13 14 16 19 22 24 25 30 33 39 42 42 43 47 47 51 57 58 59 61 64 69 70 73 78 79 80 80 83 85 85 96 98 -2- Se avessi creato il Web inc. avrei solo dato vita ad un nuovo standard e la diffusione universale del WWW non si sarebbe mai verificata. Perché esista qualcosa come il Web è necessario che tutto il sistema si basi su standard aperti, pubblici. Tim Berners-Lee 1. INTRODUZIONE Il lavoro che mi appresto a svolgere è, come ben si evince dal titolo dell’elaborato, di descrivere lo studio preliminare che viene fatto per realizzare un portale web, nello specifico un sito per la gestione delle vetrine aziendali, e di descrivere come queste conoscenze siano poi tradotte in qualcosa di concreto. Nella prima parte della tesi, che potremmo definire come introduttiva al progetto, sarà descritta la situazione attuale di internet e del commercio elettronico. Saranno presentati i portali, che, come verrà meglio spiegato più avanti, non sono altro che dei siti internet che offrono all’utente risorse e criteri di navigazione, fungendo da punto di accesso privilegiato della rete e che hanno come scopo principale quello di far guadagnare il più possibile i loro proprietari, iniziando da una definizione più accurata fino ad arrivare ad illustrare in dettaglio le ragioni per cui essi vengono creati. Verranno presentate le tecnologie più utilizzate nella realizzazione degli stessi, e sarà brevemente accennata l’evoluzione che è in atto nella rete globale. Nella seconda parte sarà presentato in ogni dettaglio il progetto, con un’accurata descrizione delle specifiche e di come sono state messe in atto, fino ad arrivare alla pubblicazione on-line del lavoro terminato. La terza parte conterrà le conclusioni a cui arriveremo grazie a questo progetto, seguita da una galleria di schermate prese a progetto ultimato, una bibliografia dei libri e siti consultati per redigere questo elaborato ed un glossario dei termini più difficili. -3- Negli affari non ci sono amici, soltanto soci. Alexandre Dumas – Il conte di Montecristo 2. PANORAMICA ATTUALE SU INTERNET 2.1 L’E-COMMERCE E LA PUBBLICITÀ ON-LINE Prima della proliferazione di internet se volevo comprare un libro, un disco, un capo di abbigliamento non avevo alternative, prendere la macchina e girare per i negozi fino a quando non lo avessi trovato. Ora non è più così perché la rete ci offre il più vasto mercato globale mai esistito, ho a disposizione un’ampia gamma di cataloghi contenenti così tanti articoli, sia nuovi che usati, che è praticamente impossibile non trovare ciò che si cerca e le modalità di acquisto sono molto semplici e i prezzi sono abbastanza contenuti. Naturalmente gli acquisti via rete rappresentano l’alternativa solo per alcune categorie di merce, ma, in alcuni settori, la comodità rappresentata per l’utente è indubbia. Qualunque transazione economica è una transazione informativa perché presuppone l’acquisto e lo scambio di informazioni, in questo scenario internet si è trovato ad essere il mezzo più adatto per ospitarle visto che è uno strumento estremamente efficiente per la trasmissione e la condivisione a distanza di grandi quantità di informazione. Riflettendo sulle transazioni commerciali esistenti ci accorgiamo che possiamo dividerle in due grandi categorie: quelle che possono integralmente risolversi in uno scambio di informazioni e quelle che richiedono sia uno scambio di informazioni sia uno scambio di oggetti fisici. Nel primo caso internet può costituire il vero e proprio spazio della transazione, come avviene nel caso dell’internet banking o del trading on line: se desidero consultare un estratto conto, acquistare delle azioni, posso farlo semplicemente spostando informazione, senza che un reale spostamento di oggetti fisici avvenga in quel momento. Ma anche nel secondo caso internet può avere una parte molto importante fornendo lo spazio nella quale avviene lo scambio di informazione che accompagna la transazione fisica. La discussione del prezzo, la decisione delle modalità di pagamento e di come scambiarsi la merce sono tutte operazioni possibili attraverso la rete, mentre il trasferimento fisico del bene acquistato dovrà avvenire ovviamente, -4- per usare la fortunata metafora di Nicholas Negroponte, nel mondo degli atomi e non in quella dei bit. Se pensiamo ad una qualsiasi transazione economica che avviene nella rete possiamo pensare che i protagonisti sono tre: chi compra, chi vende e il servizio o portale che li mette in contatto. A meno che non si tratti esclusivamente di una transazione informativa internet è di fatto lo strumento che mette in contatto i due soggetti interessati, rappresentando così solamente un canale comunicativo. Ma se così fosse sarebbe impossibile che i portali possano pensare a guadagni astronomici come compenso per i servizi offerti, non sarebbe molto più logico dello sperare che un’azienda telefonica possa arricchirsi mettendo una “tassa” specifica su ogni affare concluso per telefono. Fortunatamente per le previsioni economiche del settore i servizi in rete non offrono solamente un canale di comunicazione ma offrono anche un servizio dotato di valore aggiunto specificatamente informativo, come ad esempio la ricerca delle migliori ditte per il prodotto di cui necessitiamo e i feedback lasciati dagli utenti che già hanno avuto transazioni con le ditte in questione. Il valore di questi servizi è difficile da stabilire, sia perché lo sviluppo e la diffusione sono ancora in uno stato embrionale, sia perché è sicuramente più facile dare valore ad un bene fisico che non ad un bene puramente informativo. Ma è sicuramente in quest’ambito che i servizi di intermediazione offerti dalla rete dovranno muoversi se vorranno soddisfare almeno in parte le aspettative di tutti coloro che hanno investito parecchio denaro nella aziende del settore. Ed è per questo che l’utente finale, a cui la rete fornisce alta libertà di movimento e un abbattimento deciso dei costi di intermediazione tradizionalmente associati al settore della vendita, può permettersi di pagare una quota di ricarico sulla intermediazione offerta dalla rete ed è sempre lui il destinatario naturale delle campagne pubblicitarie in rete, una delle poche fonti di ricavo in un mondo, quello di internet, le cui molte promesse di redditività sono state raramente mantenute. -5- Ma la questione è raccogliere i particolari. Dammi i tuoi particolari e, senza spostarmi dalla poltrona, ti darò l’eccellente parere di un esperto. Ma correre qua e là, interrogare la polizia ferroviaria,stendermi per terra con una lente… non è il mio métier. No, sei tu quello che può chiarire la faccenda. Conan Doyle – L’ultimo saluto di Sherlock Holmes 2.2 I PORTALI Il termine portale è ormai divenuto di uso comune per tutti coloro che fanno uso abituale della rete, e tutti i maggiori protagonisti italiani delle telecomunicazioni, dei media e della tecnologia tendono ormai a definire il proprio sito come un portale. Le origini del termine portale risale al 1997 quando ai primi protagonisti dell’allora nascente Web economy si poneva un interrogativo di non facile soluzione, come sfruttare quel caotico mondo che è internet. Compresero subito che il modello di business da seguire fosse un modello già ampliamente affermato nel mondo dei mass media: il modello pubblicitario, offrire qualsiasi tipo di servizio gratuitamente, finanziandosi con gli introiti derivanti dagli spazi pubblicitari offerti. L’idea era in astratto molto semplice, creare un sito che attirasse quotidianamente milioni di visitatori e inserirvi dei messaggi pubblicitari il cui valore sarebbe stato tanto più elevato quanto più numerosi sarebbero stati i visitatori. Fu allora che si pose il problema su cosa inserire in questo portale per attrarre il maggior numero di utenti possibile, e si trattava di un problema non indifferente vista la sterminata mole di informazioni e servizi già presenti nella rete. Già in Uno dei motori di ricerca più usati al Mondo. quegli anni era ben noto che i siti che riscuotevano maggiori visite erano i siti che permettevano di cercare e organizzare le informazioni presenti all’interno della rete. Il web, infatti, è uno strumento informativo non strutturato, se non caotico: è vero che al suo interno c’è di tutto, ma è altrettanto vero che trovare ciò che ci interessa è un’impresa molto complicata. Oltre a questi, un altro genere di siti molto visitato erano i siti dei provider, ovvero dei fornitori di accesso alla rete. Offrendo all’utente una connessione, in genere gratuita, facevano scaricare un programma che configurava il loro browser a puntare automaticamente al loro sito ogni qual volta si connettevano, ottenendo così una gran mole di traffico automatico, in più offrendo servizi come la posta via web, accesso a -6- banche dati o altro, si assicuravano che gli utenti visitassero il proprio sito con un certa frequenza. La posta via web offerta da Libero Una terza tipologia di siti web che riscuoteva parecchio successo era i siti che fornivano informazioni giornalistiche e notiziari, sia di carattere generale, sia su temi e argomenti più specifici. Sebbene questi servizi offerti a pagamento non avevano praticamente riscosso successo, attiravano parecchio l’attenzione dell’utente quando erano gratuiti soprattutto se realizzati da fonti considerati attendibili, come le testate giornalistiche tradizionali o della stampa e della televisione. Infine, un gran numero di contatti era realizzato da quei siti facente parte delle cosiddette “comunità virtuali”, ovvero quei siti che offrivano tutti quegli strumenti come chat, newsgroup, forum, mailing list e pubblicazione di pagine personali riuscendo, oltre ad ottenere migliaia di visitatori, a creare un rapporto stabile e duraturo con essi. Il sito di informazioni per antonomasia:il sito dell’ANSA -7- Il modello editoriale del portale ha origine proprio da tutto questo, sia dal punto di vista storico sia dal punto di vista strutturale. Infatti, posti di fronte all’esigenza di creare un prodotto editoriale on-line che riuscisse ad attirare il maggior numero di utenti per un periodo duraturo e continuato, e che dunque potesse essere appetibile per il mercato pubblicitario, alcuni La schermata di una chat dei pionieri economici della rete pensarono di integrare in un unico sito le funzioni di motore di ricerca, sito di informazione e contenuti, comunità virtuale e sito di servizi avanzati, affiancandovi un servizio di accesso alla rete. Un tale prodotto editoriale sarebbe diventato un punto di accesso preferenziale e un punto di riferimento costante per gli utenti del web durante le loro navigazioni: un portale, appunto. I primi a muoversi in questa direzione furono i motori di ricerca che già disponevano dell’elemento principale di un portale, e che già godevano di un alto livello di traffico. Ma ben presto sull’arena dei portali si affacciarono altri soggetti, dai provider di accesso alle grandi aziende dell’industria informatica e dei media. 2.2.1 DEFINIZIONE E TIPOLOGIA DEI PORTALI Tutto quello che è stato introdotto nel paragrafo precedente ci permette, finalmente, di dare una definizione di portale. Possiamo dire che un portale è un prodotto editoriale on-line che svolge la funzione di punto privilegiato di accesso al Web per gli utenti e che fornisce loro risorse informative, servizi di comunicazione personale, e strumenti con cui localizzare e raggiungere i contenuti e i servizi on-line di cui hanno comunemente bisogno. Ma è stata proprio la larga diffusione a creare sia un arricchimento che una diversificazione dal modello originale ed oggi, sotto questo nome, si raccolgono una vasta tipologia di siti e servizi on-line, le cui caratteristiche sono a volte completamente differenti dalla definizione data in precedenza. L’unico punto fermo è che il portale, più che da un certo genere di contenuti o di un campo di interessi -8- circoscritto e riconoscibile, viene definito soprattutto dal suo obiettivo primario: diventare il punto di partenza di ogni navigazione, offrendo, più che informazioni su un argomento specifico, tutta una serie di servizi costantemente aggiornati che siano interessanti per la più vasta gamma di utenti possibili. Tutto quello che è stato detto finora, però, non riguarda tutti i portali, ma solo quelli orizzontali. Esistono anche una miriade di portali verticali, che hanno comunque funzioni e struttura molto simile a quelli orizzontali, ma sono completamente differenti. I portali orizzontali sono stati creati per qualsiasi utente riportando notizie di tipo generalista, presentando strumenti di ricerca, servizi e contenuti ad ampio spettro tematico. Per citarne qualcuno, in Italia i più famosi sono Virgilio, Tiscali, Supereva, Libero, ecc… Questi grandi portali all’inizio avevano la maggior parte dei loro servizi costituiti da risorse distribuite sulla rete, risorse che mettevano a disposizione tramite una serie di finestre che richiamavano il sito sul quale si affacciavano, ma l’obbiettivo di aumentare il tempo di stazionamento dell’utente all’interno delle loro pagine li ha portati a diventare direttamente loro i fornitori di contenuti, in modo da poter anche aumentare le pagine e di conseguenza gli spazi pubblicitari. Ed è per questo che i grandi portali orizzontali sono diventati vere e proprie città virtuali che forniscono all’utente tutto ciò di cui ha bisogno piuttosto che fornirgli immediati punti di accesso a risorse esterne. Per contro i portali verticali, o portali tematici, invece di essere aperti a 360 gradi su tutto lo scibile, focalizzano l’offerta su settori specifici, inseguendo i territori più disparati: sport, cinema, informatica, commercio, ecc. e rivolti ad un ben determinato tipo di utente. In questi ultimi anni si sono diffusi sempre di più, perché essendo indirizzati ad un’utenza fortemente caratterizzata conoscono con precisione gli stili di vita e i bisogni che necessitano coloro che lo utilizzeranno. Anche se bisogna stare attenti a tutti quei siti che si definiscono portali, ma in verità sono solo pagine tematiche che non presentano nessuna delle caratteristiche che un portale deve avere. -9- 2.2.2 STRUTTURA E CARATTERISTICA DEI PORTALI Il numero di portali che si contendono l’attenzione degli utenti di internet è vasto, e analizzandone la complessa architettura organizzativa si possono evidenziare degli elementi ricorrenti. Tali elementi sono: • strumenti di ricerca • canali • risorse di contenuto e attualità informativa • servizi orientati al consumatore • strumenti di comunicazione e utilità personale • sistemi di accesso multicanale • sistemi di personalizzazione. Gli strumenti di ricerca sono la parte principale di ogni portale, sia orizzontale che verticale. Possono essere divisi in due categorie: motore di ricerca e cataloghi sistematici. I primi permettono una ricerca su tutto il web per una parola o una combinazione di parole inserite in un apposito campo, restituendo un elenco dei siti che la contengono, con tutti i vantaggi e gli svantaggi che un sistema completamente automatizzato può comportare, mentre i secondi lavorano su una sezione molto più ristretta di siti ma la valutazione della pertinenza o meno di una determinata informazione non sarà più meccanica, bensì il risultato di una decisione umana. Le directory di Libero I canali sono delle strutture intermedie tra le tradizionali directory e i contenuti veri e propri. Ogni portale ne adotta una propria articolazione tematica e vi inserisce elementi e contenuti diversi per questo possono essere considerati come guide ragionate dedicate ad ambiti tematici differenti (come lavoro, moda, sport, cinema, - 10 - televisione, ecc.) che associano una selezione di siti e risorse esterne a recensioni, notizie e articoli di approfondimento. I canali di Libero Le risorse di contenuto e attualità informativa possono essere a loro volta divise nelle seguenti tipologie: • notizie giornalistiche • contenuti verticali • intrattenimento • informazioni di servizio. Le notizie giornalistiche sono in genere tratte dai siti dei quotidiani in rete e in un portale orizzontale sono, in genere, divise allo stesso modo in cui vengono adottate dalle testate (attualità, cronaca, politica, esteri, economia e finanza, sport). Vengono aggiornate continuamente ed in genere è presente anche una finestra che riporta le notizie dell’ultima ora. I contenuti verticali sono le notizie riguardanti precise tematiche, più o meno approfondite, da portale a portale. I temi sono vastissimi: musica, sport, cinema, arte, ecc. Nella categoria dedicata all’intrattenimento, troviamo tutte quelle applicazioni interattive spesso usate per proporre giochi on-line oppure quegli elementi dal contenuto multimediale basati su tecnologie di streaming video e audio come Web radio, videoclip, trailer cinematografici e tantissimi altri. Infine, nelle informazioni di servizio, rientrano La web radio di RDS - 11 - tutte quelle risorse ibride tra i contenuti veri e propri e i servizi come le previsioni meteorologiche, l’oroscopo o gli annunci su manifestazioni e eventi culturali che si svolgono nella città di residenza degli utenti, la programmazione cinematografica e televisiva, ecc. I servizi orientati al consumatore sono tutti quegli strumenti di utilità specificatamente rivolti all’utente-consumatore. I principali sono i servizi di ecommerce, ma rientrano, sempre in questa categoria, anche i servizi di fornitura di accesso alla rete. Gli strumenti di comunicazione e utilità personale sono tutti quei servizi che permettono all’utente di comunicare in maniera sincrona o asincrona con altri utenti interni ed esterni al portale. Rientrano in questa categoria le caselle di posta elettronica, sia consultabili attraverso i tradizionali client autonomi (Outlook, Eudora, Mozilla, ecc.) sia attraverso i webmail, che permettono di Modulo per inviare SMS dal sito della Vodafone accedere alla posta direttamente dal web, lo spazio gratuito per la pubblicazioni di siti personali, servizi di annunci personali e invio di cartoline, forum e gruppi di discussione sia pubblici che privati, strumenti di interazione in tempo reale come le chat, i software di instant messaging e in alcuni casi i sistemi di videoconferenza e strumenti per inviare SMS e MMS tramite il web. I sistemi di accesso multicanale sono quei sistemi che permettono la distribuzione di contenuti digitali per più piattaforme di accesso, come telefoni cellulari, grazie alla tecnologia WAP o semplici pagine html visualizzabili dai telefonini GPRS o UMTS. Con la diffusione delle tecnologie su fibra ottica e wireless questi elementi assumeranno, in un portale, importanza sempre maggiore. I sistemi di personalizzazione sono uno degli aspetti più importanti di un portale orizzontale perché dopo aver effettuato una registrazione, in genere gratuita, permettono di personalizzare l’interfaccia del portale definendo quali sono i servizi di maggior interesse. Si va da una semplice personalizzazione di servizi fino al - 12 - controllo dei contenuti e del layout e della grafica della pagina. Naturalmente questa flessibilità presenta un costo rappresentato dalle informazioni personali date al proprietario del portale sia esplicitamente, all’atto della registrazione, sia implicitamente, mediante l’analisi del comportamento dell’utente all’interno del portale, dunque, è sempre bene leggere con attenzione le norme di tutela della privacy adottate dal sito in cui ci registriamo per essere consci dell’uso che potrebbero fare dei nostri dati. Tutto questo vale, naturalmente, per i portali generalisti. Diverso è il caso dei portali verticali, dove la differenziazione di offerti e contenuti possono variare anche in maniera radicale, a seconda dei temi di cui il portale si occupa. 2.2.3 SCOPO DEI PORTALI Ogni portale ha lo scopo di comunicarci qualcosa e, come ogni discorso ha le sue regole per avere un senso compiuto, anche la costruzione di un sito web deve seguire certe regole per poter raggiungere le sue funzioni. Per poter analizzare queste regole, dobbiamo in primis capire che gli scopi che regolano la progettazione e la costruzione di un portale sono duplici: vuole sì comunicare dei contenuti, ma ciò che più gli interessa è catturare l’attenzione dell’utente per il tempo più lungo possibile, convogliandolo verso destinazioni specifiche, quelle che possono essere, direttamente o indirettamente, valorizzate dal punto di vista economico. Ed è per questo che la scelta dei contenuti e la loro disposizione sono determinati con molta attenzione. In secondo luogo, anche se internet e l’ipertesto sono un genere di comunicazione aperta, il portale cerca, in ogni modo, di tenere un discorso chiuso in se stesso. Poiché l’obiettivo di chi costruisce i portali è mantenere il controllo sull’attenzione degli utenti, i collegamenti realizzati verso risorse interne del portale (o quelle ad esso collegate da accordi commerciali) sono in numero prevalente e maggiormente evidenziati rispetto ai collegamenti esterni. E’ inutile affermare che la struttura ipertestuale del web permette completa autonomia all’utente poiché può scegliere se e quali collegamenti seguire, se si pensa che i collegamenti sono stati in ogni caso previsti da chi ha progettato la pagina web ed è molto semplice evidenziarne alcuni e rendere meno fruibili gli altri. - 13 - Un altro esempio sono le sezioni del portale chiamate directory e i canali, che dovrebbero essere uno strumento di accesso esaustivo e neutrale all’universo informativo del web, mentre sono, in realtà, il frutto di una scelta ben studiata in precedenza rispecchiando una visione della rete che non è assolutamente oggettiva. Tutto questo, e tutto quello di cui si potrebbe ancora parlare, serve a sottolineare come le scelte comunicative di un portale sono ampliamente basate su strategie di marketing, atte a far guadagnare il più possibile i creatori del portale. 2.2.4 VALENZA ECONOMICA DEI PORTALI Appurato che lo scopo principale dei portali è di far guadagnare i creatori il più possibile, analizziamo ora quali sono i modi in cui questo avviene. Il modello di business maggiormente diffuso nel web, almeno fino ad oggi, è quello della vendita di spazi pubblicitari e della fidelizzazione di un gruppo di utenti più vasto possibile. Tra tutti i metodi conosciuti di pubblicità on-line il più diffuso è, sicuramente, Esempio di finestra di pop-up il classico banner che non è altro che un’immagine fissa, o in movimento, collocata in punti strategici della pagina web e collegata direttamente al sito dell’azienda inserzionista. Oltre a questo esistono vari tipi di pubblicità invasiva come pagine o finestre di pop-up che vengono aperte automaticamente quando l’utente seleziona un link, prima di arrivare alla vera destinazione del link stesso. La valutazione di tutti questi tipi di pubblicità avviene in molti modi, quella più diffusa si basa sul numero di esposizioni (exposure) del banner, cioè dal numero di volte che la pagina contenente la pubblicità viene scaricata dall’utente. Tuttavia l’efficacia di questo metodo di valutazione è parecchio discutibile perché a differenza dello spettatore televisivo, l’utente di un sito web ha un ruolo molto attivo e opera una forte selezione delle informazioni veicolate da una schermata. Secondo alcune ricerche la maggior parte degli utenti è solita concentrarsi direttamente sulle informazioni che gli interessano, ed è attratta più dal testo che dalle immagini. Naturalmente l’efficacia di un banner è tanto maggiore quanto ciò che reclamizza è - 14 - vicino al contesto in cui è presentato, ad esempio, la pubblicità di un libro attrae sicuramente più attenzione all’interno di una pagina culturale che all’interno di una pagina di sport. Banner pubblicitari nella homepage di Tiscali Un altro metodo di valutazione di queste forme di pubblicità, è la cosiddetta clickthrough che consiste nel calcolare il numero di volte che un banner viene effettivamente cliccato dall’utente per accedere al sito dell’inserzionista. Esistono anche altre tecniche basate sull’effettiva transazione commerciale da parte di un utente che arriva ad un sito tramite il banner. Nonostante si sia cercato in tutti i modi di aumentare l’efficacia operativa dei banner e di sperimentare nuovi servizi di vendita degli spazi, il clima di entusiasmo iniziale della pubblicità nel web si è sempre più raffreddato, rimanendo comunque uno degli elementi fondamentali dell’economia della rete. Questo raffreddamento ha spinto i portali a buttarsi su un altro tipo di business: il commercio elettronico, una frontiera a cui tutti guardano con molta fiducia. Per questo la maggior parte dei portali, si è dotata di servizi di e-commerce, sviluppati internamente o in accordo con altri siti specializzati. L’unione di contenuti, servizi, e distribuzione potrebbe rivelarsi una carta vincente: un qualsiasi utente che sta navigando in un canale dedicato ai viaggi può facilmente essere invogliato all’acquisto di una vacanza in qualche esotica isola tropicale, magari a prezzi scontati perché utente registrato del portale. Un’altra fonte di reddito per i portali consiste nella vendita di servizi e contenuti ad alto valore aggiunto. Se è vero che il tentativo di vendere contenuti informativi da parte di testate giornalistiche, solo qualche anno fa, si è rivelato completamente fallimentare, è anche vero che gli unici esempi di successo sono stati quelli in cui si - 15 - vendevano contenuti altamente qualificati e rivolti a fasce di utenza ben definite. E la sempre più larga diffusione di internet a larga banda permetterà di fornire contenuti audio e soprattutto video di altissima qualità, permettendo la nascita di un mercato in grado di generare utili. E se tutto questo porterà ad una inevitabile diminuzione dei portali orizzontali, poiché l’offerta in questo settore è sovrabbondante e il sempre maggior grado di conoscenza della rete da parte degli utenti renderà alcuni dei loro servizi obsoleti, avremo sicuramente una maggiore diffusione di quei portali verticali che saranno in grado di offrire contenuti e risorse di alto livello qualitativo e sapranno collocarsi con sufficiente rapidità e intelligenza nel mercato dei nuovi servizi di rete possibili grazie alle connessioni a larga banda. Quando le persone hanno dei problemi a usare un’interfaccia, non è perchè sono stupide. E’ perchè l’interfaccia è troppo difficile. Jakob Nielsen 2.2.5 IL RUOLO STRATEGICO DELL’INTERFACCIA Per un portale è relativamente facile raggiungere un elevato numero di accessi con una massiccia campagna pubblicitaria. Se l’utente, però, dopo aver dato uno sguardo alla homepage, torna indietro deluso perché non riesce a trovare ciò che cerca o ha problemi ad utilizzare il sito, non è assolutamente un successo. L’unico criterio reale per la valutazione di un sito web è il traffico generato dagli utenti che, dopo aver visitato il sito una prima volta, tornano successivamente generando una comunità virtuale di appassionati. Ed è per questo motivo che l’attenzione verso l’usabilità dell’interfaccia è cresciuta drasticamente negli ultimi anni: solo se l’utente vive un’esperienza positiva alla sua prima visita ritornerà e genererà un valore. Per far sì che tutto questo si verifichi è bene seguire dieci piccole regole al momento della realizzazione di un’interfaccia: 1. Spiegare chiaramente e semplicemente di cosa tratta il sito. Spesso non basta uno slogan accattivante. Non bisogna avere paura di essere troppo didascalici nello spiegare ad un visitatore a cosa serve il nostro sito web. Chiarezza e semplicità prima di tutto. 2. Raggruppare tutte le informazioni in aree distinte. Un sito tratta in genere molti argomenti e molti sviluppatori temono di sovraccaricare l’utente con - 16 - una massa di informazioni che confondano e distraggano dallo scopo principale del sito. E’ bene sapere che invece dare tante informazioni è sempre la cosa migliore. Buona regola è scrivere tanto e bene e soprattutto di raccogliere queste informazioni in aree ben distinte, per quanto comunicanti. 3. Andare dritto al cuore. Allo stesso tempo, molti nuovi utenti possono non essere interessati affatto ad approfondire le informazioni che il sito offre e questo per i motivi più diversi. Un utente affezionato sa già dove andare e cosa fare, quindi non deve essere obbligato ad attraversare le zone informative per i nuovi utenti. In sostanza, bisogna far sì che il sito soddisfi sia chi ha bisogno di leggere e di approfondire prima di agire sia chi non ne ha bisogno. 4. Inserire link brevi, chiari e standard. Quando un utente cerca rapidamente ciò che più lo interessa all’interno del sito, non deve essere distratto da link “anomali”. Per quanto il web sia ancora giovanissimo rispetto ad altri media, possiamo già parlare di un glossario standard: l’immagine del carrello per l’acquisto on-line, la busta o la scritta “contatti” o “scrivici” per ottenere ulteriori informazioni, ecc., sono entrati, ormai, nella semantica di tutti i navigatori, anche i meno esperti. Cercare di allontanarsi da questi standard è molto rischioso e di fatto non porta nessun vantaggio, se non una fittizia originalità. 5. Deep link = good link. Appurato che la homepage è importantissima per un sito, ciò non toglie che spesso sia conveniente indicizzare direttamente le pagine interne. E’ stato calcolato che il 27% dei mancati acquisti (o meglio, di potenziali clienti che non diventano clienti reali) è dovuto alla difficoltà di arrivare alla pagina desiderata dalla homepage. 6. Inserire la possibilità di ricerca veloce all’interno del sito. Per quanto un sito sia ben strutturato, è evidente che, nel caso in cui gli argomenti trattati siano molti, risulta spesso difficile trovare quello che si desidera. E’ quindi sempre consigliabile l’inserimento di un motore di ricerca interno, che sia accessibile da qualsiasi pagina del sito: una classica mascherina di ricerca dove sia possibile inserire parole da cercare, anche in combinazione. Consigliabile è anche l’inserimento di una maschera per la ricerca nel web. E’ - 17 - ingenuo pensare che l’utente esca dal sito più facilmente se gli viene offerto un link o una finestra sul web. E’ inoltre ormai dimostrato che chi esce da un sito lo fa per rivolgersi ad un motore di ricerca. Il meccanismo è semplice: non ho trovato quello che cercavo, oppure l’ho trovato ed ora desidero cercare altre cose, quindi mi rivolgo ad un motore di ricerca. Inserire un motore di ricerca nel proprio sito significa offrire un servizio in più, un servizio utile e sempre apprezzato. 7. Aumentare la fidelizzazione con i link verso l’esterno. Sembrerebbe paradossale ma, i link ai siti esterni, sono sempre una buona cosa e per due motivi: in primis, un link ad un sito utile aumenta l’interesse verso il sito che lo mette a disposizione. Inoltre i link esterni significano sempre un guadagno. Spesso si può essere pagati per portare traffico ad altri siti, ma ancora più spesso si può fare scambio di visibilità: io ti presto i “miei” utenti e tu i “tuoi”. Scambiare i propri utenti con gli altri significa inserirsi in un circolo virtuoso. 8. Mostrare clienti soddisfatti. Per quanto questo appartenga più ai siti di shopping on-line, esso può essere esteso anche ad altre tipologie di sito. La questione è semplice: se nessuno che conosciamo ci ha mai consigliato il sito che stiamo visitando è evidente che un qualche influsso positivo può derivare dalla testimonianza di chi è rimasto soddisfatto e lo dichiara apertamente, esponendosi in prima persona (come singolo o, meglio ancora, come rappresentante di una società rispettata). Il sistema funziona, sempre. 9. Tenere un legame costante con il passato prossimo. Molto spesso apriamo l’homepage di un sito che conosciamo, cercando quell’informazione o quel link che adesso non vediamo più. Certo, nel caso sia presente un motore di ricerca interno possiamo usare quello, ma la cosa migliore è quella di inserire una sezione, ben visibile, dei link e delle informazioni recentemente tolte dalla posizione predominante nella homepage e adesso inserite all’interno del sito. Questo legame col passato recente aumenta senza dubbio la navigabilità del sito. 10. Ricordare che non è bello ciò che è bello, ma ciò che funziona. Nonostante spesso i grafici siano frustati per questo, è vero il fatto che spesso una bella - 18 - immagine, una scritta multicolore, ecc., non sono l’ideale per rendere un sito navigabile. Il testo deve essere semplice per quanto non trascurato nella sua realizzazione. Un sito deve essere ben curato graficamente ma la semplicità è sempre la carta vincente. Inoltre, l’eccessivo utilizzo di immagini non permette la distribuzione di una grande quantità di link e riferimenti in homepage e pagine interne. 2.2.6 I MAGGIORI PORTALI ITALIANI Dopo aver teorizzato intorno al fenomeno portale, focalizziamo la nostra attenzione sui più importanti portali italiani. La scelta di limitarci ad un campo “locale” dipende da tre considerazioni: la vasta offerta globale non ci permetterebbe di prenderne in considerazione tutti i più importanti; gli utenti utilizzano maggiormente risorse collegate al proprio ambito linguistico e geografico; ed infine la maggior parte dei più diffusi portali mondiali hanno sviluppato delle versioni localizzate rivolte a singoli mercati nazionali (basti pensare alle versioni italiane di MSN, Yahoo!, ecc.). Per i portali specificatamente italiani, la loro storia (con poche eccezioni tra le quali spicca Virgilio) è legata strettamente al fenomeno dell’offerta di accesso gratuito residenziale alla rete a partire dal 1998. Chiunque ricorderà Tiscali, il primo in assoluto, seguito da Tin e Infostrada, e poi dalle maggiori società di telecomunicazioni come Wind, Dada e British Telecom e gruppi editoriali come l’Espresso-la Repubblica, Mediaset, la Stampa/Fiat. La scelta di fornire i servizi di accesso in forma gratuita ha spostato l’onere di produrre valore sui rispettivi portali, stimolandone sia lo sviluppo qualitativo che quantitativo. Per quanto riguarda il numero di utenti raccolti, esiste una società denominata Audiweb, nata con lo scopo di fornire informazioni “super partes” al mercato, di carattere qualitativo e quantitativo, che attraverso opportuni strumenti di rilevazione, sui siti internet che aderiscono all’iniziativa, calcola mensilmente il numero dei visitatori e le pagine aperte rilevate sul sito di ogni singolo editore, secondo parametri omogenei e concordanti e mette a disposizione di chiunque ne sia interessato i risultati sul proprio sito web. - 19 - Vediamo, a titolo di esempio, i dati riferiti ai maggiori portali italiani nel mese di Maggio 2005. Pagine viste Visite Tempo medio per pagina (min.) Durata visita (min.) RedSheriff 17.292.986 982.434.533 83.818.166 00:40 07:53 virgilio.it RedSheriff 15.904.697 781.770.291 79.293.677 00:51 08:19 tiscali.it RedSheriff 7.779.795 264.613.257 26.920.718 00:59 09:54 repubblica.it RedSheriff 4.141.874 179.398.030 24.570.526 01:45 12:42 corriere.it RedSheriff 3.484.128 117.523.335 14.809.629 1:13 9:35 gazzetta.it RedSheriff 2.758.199 74.673.771 11.109.597 1:24 9:22 Dada supereva.com RedSheriff 4.644.473 166.345.732 10.110.178 0:33 8:54 Kataweb kataweb.it RedSheriff 3.137.196 68.860.762 8.963.124 00:57 07:03 Property Dominio Wind libero.it Telecom Italia Tiscali S.p.A. Kataweb RCS Media Group RCS Media Group Sistema di misurazione Server Browser Browser * unici GLOSSARIO: Browser unici è il numero di browser diversi che, nel mese di maggio, hanno effettuato una o più visite al sito. Con pagine viste si intende una richiesta esplicita, fatta da un utente, depurata dalle attività di robot, spider, ecc., e da eventuali codici di errore. Il tag di misurazione deve essere posizionato alla fine della pagina in modo da considerare solo quella interamente scaricata e vista dall’utente. Le visite sono le richieste consecutive fatte dallo stesso visitatore all’interno del sito con un tempo limite di inattività di 30min. Dopo si considera come se fosse una seconda visita. Non devono essere considerate le attività di robot e spider. Tempo medio per pagina è il tempo in minuti e secondi trascorsi nelle pagine. Durata della visita è il tempo in minuti e secondi trascorso nel sito. Dal grafico si evince che il sito maggiormente visitato è Libero con oltre 80 milioni di visite mensili, seguito a ruota da Virgilio e, più in lontananza da Tiscali con “solo” 26 milioni di utenti. Ciò ci sottolinea come i portali più importanti sono quelli che offrono il servizio gratuito di connessione alla rete e la possibilità di accedere alla propria posta da web, insieme all’immancabile motore di ricerca. - 20 - Libero è il portale del gruppo Wind che, dopo l’acquisizione di Infostrada, ha deciso di riunire sotto questo marchio il più importante dei portali storici italiani, Italia on Line, il suo portale Inwind.it, e l’omonimo servizio di accesso alla rete Libero. Offre una vastissima gamma di servizi che riscontrano sempre di più il favore del pubblico rendendolo il portale più visitato, i principali sono: • il motore di ricerca di pagine web, immagini, audio, video, gruppi, blog, news, prodotti e directory; • l’accesso ad internet gratuito e il servizio di posta da web; • la community con chat, newsgroup, forum, mailing list, ecc.; • i canali di informazione tematica; • i servizi di invio SMS e MMS ai telefonini e molto altro ancora. L’interfaccia del portale è ben disegnata ed intuitiva, permettendo all’utente di trovare subito ciò di cui è interessato. Virgilio è un portale sviluppatosi dal primo servizio di ricerca di alto livello qualitativo in Italia, senza trasformarsi direttamente in un provider. Nato nel 1996, ha consolidato la propria struttura attraverso un paziente lavoro di accentramento di contenuti e servizi. Il cuore di questo portale è il servizio di directory, completamente gestita da una redazione “umana” che scandaglia giornalmente il web alla ricerca di siti interessanti, a cui si affianca una serie di canali tematici ben strutturati. Bisogna sottolineare che Virgilio offre le due maggiori comunità virtuali italiane: Atlantide, che offre numerosi strumenti per la comunicazione personale (basti pensare a C6) e Xoom che ospita migliaia di pagine web personali. Tiscali è stato uno dei primi veri portali. E’ nato nel 1998 ed è rimasto il punto di riferimento più importante per i navigatori abbonati allo storico servizio di connessione gratuita per parecchi anni. Ha una struttura basata su un portale principale e una serie di siti satellite-tematici, tra cui uno dedicato ai naviganti più giovani. Il portale principale ha una struttura simile a quella di un magazine, basata su canali tematici in cui prevalgono contenuti redazionali. Offre alcuni servizi veramente originali nel panorama dei portali italiani tra cui spicca Voispring, il primo servizio di telefonia gratuito da internet che permette di effettuare telefonate - 21 - dal proprio computer connesso ad un qualsiasi numero di telefonia fissa italiano e Willage, un progetto che permette a chiunque di aprire un sito per poter commercializzare i propri prodotti. L’interfaccia di Virgilio L’interfaccia di Libero L’interfaccia di Tiscali 2.2.7 CONSIDERAZIONI FINALI Il fenomeno dei portali rappresenta sicuramente uno dei nodi chiave dei cambiamenti avvenuti ad internet negli ultimi anni e che ne ha facilitato la diffusione. Nati quasi tutti come strumento di accesso, collegati spesso a strumenti di ricerca dell’informazione nella rete, i portali si sono progressivamente espansi e diversificati, sino a divenire delle vere e proprie isole di salvataggio all’interno del caotico mare del web. Isole con architetture informative complesse ed organizzate, che si oppongono alla caotica disorganizzazione della rete. Questi prodotti editoriali hanno cercato di venire incontro ad una esigenza nata spontaneamente negli utenti della rete man mano che il loro numero cresceva: mettere ordine dove regnava il disordine, selezionare e gerarchizzare dove prevaleva la reticolarità e l’orizzontalità, valutare e qualificare dove trionfava l’indistinzione. In - 22 - questo modo, i portali hanno arricchito e nel contempo semplificato l’esperienza della navigazione in rete, soprattutto per gli utenti alle prime armi. Ma c’è un rovescio della medaglia. Perché reticolarità e orizzontalità, se da una parte rendono complessa la navigazione nella rete, dall’altra ne rappresentano la ricchezza. La diffusione del modello portale rischia dunque di snaturare quel processo di comunicazione paritario che è nato grazie ad internet, non a caso il loro modello proviene da quello dei mass-media tradizionali, primo fra tutti la televisione. Ciò non significa che l’internet dei portali debba trasformarsi in un’addobbata vetrina dietro la quale trovare pochi fornitori di contenuti a fronte di uno sterminato numero di fruitori-clienti più o meno passivi. Apertura, interattività e reticolarità sono tratti intrinseci della rete difficilmente sopprimibili su vasta scala. Tuttavia è necessario educare gli utenti, soprattutto i nuovi, a misurarsi con l’apertura, a sfruttare appieno l’interattività, a orientarsi nella reticolarità, mantenendo, per usare una metafora, l’abitudine di navigare in mare aperto, senza accontentarsi di navigare in vicinanza delle coste. E dunque, se è vero che i portali possono essere strumenti utilissimi, essi vanno scelti ed utilizzati in modo consapevole, valutandone criticamente i contenuti e sfruttando al massimo le componenti interattive e di personalizzazione. Ma, soprattutto, non debbono divenire gli unici componenti nell’orizzonte dell’esperienza di rete degli utenti. Si tratta di fonti di informazione organizzate e di facile accesso, ma parziali e raramente neutrali, peraltro spesso organizzati in base a più o meno espliciti interessi commerciali. La vera ricchezza di internet sta nella moltitudine di contenuti distribuiti nella rete, contenuti che provengono da moltissime emittenti e che esprimono molteplici punti di vista. - 23 - La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta. Isaac Asimov 2.3 LE TECNOLOGIE PIÙ UTILIZZATE Dopo aver capito cosa siano e a cosa servano i portali possiamo finalmente decidere di realizzare il nostro. Una buona conoscenza dei linguaggi di programmazione è necessaria, ma quali sono quelli di cui non possiamo fare a meno? Per rispondere a questa domanda dobbiamo prima vedere quali sono i vari tipi di linguaggi esistenti e sostanzialmente, possiamo vedere che si dividono in tre grandi gruppi: • compilati; • semicompilati; • interpretati. Se escludiamo il primo caso, che raccoglie tutti quei linguaggi in cui il codice sorgente viene trasformato dal compilatore in un eseguibile a livello macchina, perché dipendente dalla piattaforma nel quale viene compilato e di conseguenza funziona solo nello stesso ambiente, ed anche il secondo perché richiede un livello avanzate di conoscenze non necessarie per creare un portale, possiamo vedere che tutti i linguaggi di cui necessitiamo rientrano nella terza categoria. In questo caso, il codice sorgente è proposto in chiaro, senza alcun tipo di codifica: sta al browser lato client o al server (a seconda del tipo di linguaggio) interpretarlo ed eseguire le istruzioni in esso contenute. Il più conosciuto è sicuramente l’Html, che in verità non è un linguaggio di programmazione vero e proprio ma serve a definire il contenuto logico del documento e, tranne per i form, è essenzialmente un linguaggio statico, non ha, cioè, né strutture decisionali né elementi in grado di interagire con l’utente. Ad esso si affiancano una vasta gamma di linguaggi che permettono di ottenere contenuti dinamici all’interno delle pagine web, primo fra tutti il Javascript, considerato come il complemento dell’Html. E’ relativamente semplice, perché si basa su un numero ristretto di oggetti di programmazione, tuttavia il suo utilizzo potrebbe risultare non indicato per lo svolgimento di operazioni complesse. In questo caso dobbiamo rivolgerci a linguaggi più complessi che, però, ci permettono di svolgere molte più operazioni. - 24 - Fino a metà degli anni 90 la maggior parte del web era composta da pagine statiche, ma già in quegli anni si incominciava a sentire l’esigenza di rendere dinamici i contenuti, cioè di far sì che la stessa pagina fosse in grado di produrre contenuti diversi, personalizzati in base alle preferenze degli utenti, oppure estratti da una base di dati in continua evoluzione. Fu così che nel 1994 nacque PHP, per facilitare ai programmatori l’amministrazione delle homepage personali. Purtroppo tutto questo si è rivelato subito insufficiente: il Php era ottimo per realizzare pagine dinamiche, ma non offriva nessuna possibilità di memorizzare i dati. La soluzione era quindi quella di utilizzare parallelamente un linguaggio di programmazione e un database. Per questo il Php si è evoluto permettendo l’iterazione con il database MySql, creando un’accoppiata che, al giorno d’oggi, è una delle più diffuse in rete in quanto è formata da un linguaggio solido e gratuito, capace di sopportare grandi carichi di lavoro, e un database dalle notevoli qualità tecniche. Questi sono i linguaggi sufficienti a permetterci di creare un portale di altissima qualità e tutti possono essere utilizzati senza il bisogno di acquistare licenze o programmi dedicati. Non ho mai previsto che il codice sorgente di HTML fosse visibile agli utenti. Un browser/editor avrebbe fatto vedere o editare all'utente soltanto il linguaggio di una pagina di ipertesto, come se stesse usando un word processor. Per me, e credevo anche per gli altri, l'idea di chiedere al pubblico di battere a mano le parentesi era inaccettabile quanto chiedere a qualcuno di scrivere un documento in Microsoft Word stendendo il formato in codice binario. Ma la leggibilità dell'HTML si rivelò una manna inaspettata. Con mia grande sorpresa molte persone si familiarizzarono alla svelta con i tag, e iniziarono a scrivere direttamente propri documenti in HTML. Tim Berners-Lee – L’architettura del nuovo Web. 2.3.1 HTML E JAVASCRIPT Come già sottolineato in precedenza l’Html permette di indicare come i vari elementi vengono disposti all’interno di una pagina web, infatti un file html non è nient’altro che un file di testo contenente delle indicazioni sul colore delle scritte, sulla posizione delle immagini all’interno della pagina, su come far scorrere il testo, e altre cose di questo genere. Ma per funzionare correttamente ha bisogno di un programma che lo interpreti e lo visualizzi in forma di ipertesto: il browser. - 25 - Il browser svolge principalmente due compiti: • scarica i vari files che si trovano su un computer remoto (il server) e che fanno riferimento ad un certo indirizzo; • legge i documenti scritti in Html e, a seconda delle indicazioni ivi contenute, visualizza la pagina. E’ importante, per un webmaster, acquisire sin dall’inizio una mentalità multibrowser, perché non è necessario conoscere nei minimi dettagli il codice Html, quanto piuttosto sapere come questo codice verrà visualizzato sul computer dell’utente: infatti uno dei lavori più difficili è quello di riuscire a far visualizzare correttamente il proprio sito con i browser e le piattaforme più svariate. Html è l’acronimo di Hyper-Text Markup Language (linguaggio di contrassegno per gli ipertesti), non è un linguaggio di programmazione, bensì un linguaggio di contrassegno (o di “marcatura”) composto da istruzioni che permettono di decidere le caratteristiche di visualizzazione di un documento e ne guidano la composizione sullo schermo. Ciò sta a significare che l’Html non ha meccanismi che permettono di prendere decisioni, né è in grado di compiere iterazioni, né ha altri costrutti propri della programmazione. Ed è per questo che, nonostante abbia una propria sintassi, non presuppone la logica ferrea e inoppugnabile dei linguaggi di programmazione: se ci dimentichiamo di chiudere un tag, non verranno prodotti messaggi di errore, se non rispettiamo la sintassi probabilmente non otterremo la visualizzazione della pagina come desideriamo, ma nient’altro. Tutti i tag Html sono facilmente riconoscibili, sono sempre racchiusi tra i segni di minore e maggiore (< e >), e presentano sempre un comando di apertura (come <HTML>) e quasi sempre uno di chiusura (</HTML>) contrassegnato dalla presenza del carattere /. Esempio di pagina scritta in HTML - 26 - Il linguaggio Html fu sviluppato da Tim Berners-Lee al CERN di Ginevra nel 1989 ed è di pubblico dominio, ovvero nessuna organizzazione o persona ne ha un interesse proprietario. La sintassi è stabilita dal World Wide Web Consortium (W3C) ed è basato su di un altro linguaggio avente scopi più generici: lo Standard Generalized Markup Language (SGML). Negli anni l’Html ha subito continue revisioni e miglioramenti, che sono stati indicati secondo la classica numerazione usata per descrivere la versione dei softwares. L’ultima versione rilasciata è la 4.01 del 24 Dicembre 1999, da allora, da parte del W3C non è stata manifestata alcuna intenzione di apportare ulteriori modifiche all’Html visto che verrà presto sostituito dai nuovi linguaggi XHTML e XML. A questo punto chiunque potrebbe chiedersi quali vantaggi ci siano a studiare ed utilizzare un vecchio linguaggio invece dei nuovi, le motivazioni principali sono tre: • di fatto l’Html verrà utilizzato ancora per diversi anni come linguaggio principe delle pagine web; • alcuni concetti dell’Xhtml richiedono già una certa comprensione dei problemi che si acquisisce solamente con l’esperienza che può dare realizzare pagine in Html; • chi conosce l’Xhtml non può non conoscere l’Html e passare dal secondo al primo non è molto complicato. Un ulteriore ed importante caratteristica dell’Html è che è stato concepito per definire il contenuto logico e non l’aspetto finale del documento. I dispositivi che possono accedere a questi documenti sono molteplici e non sempre sono dotati di potenti capacità grafiche, proprio per questo gli sviluppatori hanno optato per un linguaggio che descrivesse dal punto di vista logico, piuttosto che grafico, il contenuto dei documenti. Questo significa che non esiste alcuna garanzia che uno stesso documento venga visualizzato in ugual modo su due dispositivi diversi. Se da una parte questo ha imposto in passato dei forti limiti agli sviluppatori di pagine web, ha dall’altro garantito la massima diffusione di internet. Nel giugno 1995 la Netscape Communications Corporation implementò nella versione beta del loro browser Netscape Navigator 2.0 il linguaggio Javascript. Tale linguaggio apportò un notevole cambiamento alle pagine html, per cui alcuni effetti, che erano realizzabili soltanto con l’interfaccia CGI, diventarono più facili da - 27 - eseguire e la “dinamicità” dei siti web smise di limitarsi solamente alle gif animate. Il Javascript, a differenza dell’Html, è un vero e proprio linguaggio di programmazione orientato a oggetti con una sintassi basata sul concetto di parole chiave riservate, che rendono quasi impossibile espandere il linguaggio. Chi già conosce linguaggi di programmazione simili, come il C o il Java, non troverà difficoltà ad imparare ad utilizzarlo, ma anche chi ci si avvicina per la prima volta, visto la sua semplicità sintattica e la sua maneggevolezza, lo padroneggerà in pochissimo tempo. Tuttavia ciò può rappresentare un’arma a doppio taglio perché la semplicità si basa anche su una disponibilità limitata di oggetti per cui alcuni procedimenti, all’apparenza molto semplici, richiedono script abbastanza complessi. Per capire come questo linguaggio funziona bisogna innanzitutto ricordare che è un linguaggio interpretato e ciò porta sia dei vantaggi ma anche degli svantaggi nei confronti dei linguaggi compilati, che possono essere riassunti nei seguenti cinque punti: • il linguaggio interpretato è più sicuro ed affidabile perché in chiaro e da interpretare, quindi può essere filtrato prima di essere eseguito, per questo motivo nel Javascript la sicurezza è pressoché totale; • gli script hanno limitate capacità, per ragioni di sicurezza, per cui non è possibile fare tutto con Javascript, ma occorre abbinarlo ad altri linguaggi evoluti, magari più sicuri, come Java, e tale limitazione è ancora più evidente se si desidera operare sulla memoria del computer; • il codice è visibile e può essere letto da chiunque anche se tutelato dalle leggi sul copyright, ma questo è il prezzo da pagare da chi vuole utilizzare il web e ne permette una maggiore diffusione e utilizzo anche a chi non lo conosce a fondo; • il codice è eseguito dal client perciò il server non è sollecitato più del dovuto, mentre uno script eseguito dal server potrebbe sottoporre ad una dura sollecitazione i server di capacità limitata interrogati da parecchi utenti contemporaneamente; • il codice dello script deve essere scaricato completamente prima di poter essere eseguito e questo è uno svantaggio per cui se i dati che uno script - 28 - utilizza sono tantissimi dobbiamo aspettare che li finisca a scaricare tutti prima che inizi a funzionare. Capito questo, vediamo cosa è possibile fare con il linguaggio Javascript in una pagina web: • sostituire delle immagini; • aprire nuove finestre secondare; • effettuare dei controlli sui form, per verificare l’input degli utenti; • eseguire azioni a tempo; • aggiungere effetti grafici dinamici come oggetti che si muovono in giro per la pagina, menù a discesa o a tendina; • e molto altro ancora. Tutto questo fa sì che ormai qualunque pagina web che si rispetti contenga almeno un po’ di Javascript che viene scritto direttamente all’interno di una pagina html all’interno del tag <SCRIPT>. Esempio di Javascript all’interno di una pagina web… …e risultato ottenuto cliccando con il tasto destro del mouse Per completezza, e per concludere questa breve panoramica, bisogna sottolineare che Javascript può essere utilizzato anche come linguaggio lato server: in questo caso svolgerà funzioni analoghe a quelle che normalmente vengono effettuate da Php, che vedremo nel prossimo paragrafo. In ogni caso l’utilizzo lato server di Javascript è un caso veramente sporadico che non necessita ulteriori approfondimenti. - 29 - 2.3.2 PHP Al giorno d’oggi moltissime attività desiderano creare la propria pagina web per farsi pubblicità sul World Wide Web. Come già sottolineato in precedenza, una buona conoscenza dell’Html e del Javascript è indispensabile, ma gli utenti adesso vogliono creare dei siti web migliori, non necessariamente nell’aspetto grafico, ma piuttosto nel renderli dinamici. Ma cosa vuol dire con precisione “dinamico”? Ad esempio, vuol dire essere in grado di rispondere a una richiesta del browser, o a qualcuno che scrive tramite Web, oppure far sì che gli utenti possano inserire qualcosa nel registro dei visitatori, o mantenere delle informazioni sul server che possano essere recuperate dagli utenti: l’elenco è praticamente senza fine. Per essere in grado di creare queste pagine web dinamiche, è necessario un linguaggio di programmazione che possa creare ed elaborare le pagine stesse. Ci sono molti linguaggi di questo tipo sul mercato, ma alcuni di essi offrono un’iniziale curva di apprendimento ripida, ovvero sono difficili da imparare a meno che non si abbiano già delle esperienze di programmazione. Tutto questo, però, è ormai cambiato, vista la disponibilità di un nuovo linguaggio di programmazione web chiamato PHP specificatamente creato per il Web, anche se può essere utilizzato per altri scopi, che permette agli utenti di creare delle buone pagine web dinamiche ed è facile da apprendere e utilizzare. Il Php è nato nel 1994, ad opera di Rasmus Lerdof, come una serie di macro la cui funzione era quella di facilitare ai programmatori l’amministrazione delle home page personali: da qui trae origine il suo nome, che allora significava appunto Personal Home Page. Essendo un progetto di tipo open source (cioè “codice aperto”, quindi disponibile e modificabile da tutti), ben presto si formò una ricca comunità di sviluppatori che portò alla creazione di PHP3: la versione del linguaggio che diede il via alla crescita esponenziale della sua popolarità. Tale popolarità era dovuta anche alla forte integrazione con il Web Server Apache (il più diffuso in rete), e con il database MySql. Tale combinazione di prodotti, integralmente ispirata alla filosofia del free software, cioè da poterli utilizzare privatamente o su siti web commerciali senza dover pagare alcunché, diventò ben presto vincente in un mondo in continua evoluzione come quello di internet. - 30 - Alla fine del 1998 erano circa 250.000 i server web che supportavano il Php: un anno dopo superavano il milione. I 2 milioni furono toccati in aprile del 2000, e alla fine dello stesso anno erano addirittura 4.800.000. Il 2000 è stato sicuramente l’anno di maggior crescita del Php, coincisa anche con il rilascio della versione 4.0.0, con un nuovo motore molto più veloce del precedente ed una lunga serie di nuove funzioni, fra cui quelle importantissime per la gestione delle sessioni. La crescita del Php prosegue, tutt’oggi, senza sosta. Oggi Php è conosciuto come Hypertext Processor, ed è un linguaggio completo di scripting, sofisticato e flessibile, che può girare praticamente su qualsiasi server web, su qualsiasi sistema operativo e consente di interagire praticamente con qualsiasi tipo di database. Ed è per questo che può essere utilizzato per i più svariati tipi di progetti, dalla semplice home page dinamica fino al grande portale o al sito di e-commerce. Dopo questa breve descrizione storica, cerchiamo di definire con maggiore precisione cosa sia il Php. Una possibile definizione è: PHP è un linguaggio di scripting server side HTML embedded. Ad una prima lettura può sembrare una frase dal significato astruso, ma così non è. Adesso cercherò di spiegarla nel dettaglio. PHP è un linguaggio di scripting server side. A differenza dei linguaggi eseguiti lato client, come Javascript, Php viene eseguito sul server, richiamando il modulo apposito che farà da interprete. Il funzionamento è questo: quando un browser effettua una richiesta per una pagina contenente del codice Php (riconoscibile dall’estensione del file che deve essere .php) il codice viene interpretato dal modulo Apache apposito ed eseguito, producendo come risultato del codice Html. Dopo l’esecuzione, quindi, la pagina non conterrà più codice Php, ma solo codice Html. A questo punto la pagina è pronta per essere spedita al browser. Quindi l’utente vede solo il codice Html, e non ha accesso al codice Php che ha generato la pagina. Tutto ciò è riassunto nello schema presente nella pagina successiva. HTML embedded. Tradotto letteralmente significa “incastonato” perché le istruzioni Php vengono inserite direttamente all’interno delle pagine contenente il codice Html. I tag che lo delimitano sono <?php (o <?) e ?>. - 31 - Iterazione client-server con codice Php Riassumendo Php è un linguaggio che serve, almeno nel web, a produrre codice Html a seconda di varie condizioni, ma quali sono i suoi utilizzi principali? L’utilizzo maggiore che se ne fa riguarda i form presenti all’interno delle pagine web. Questi offrono un modo per chiedere informazioni agli utenti (tramite il browser) con un procedimento bidirezionale. Un form può consistere di molti elementi e questo permette agli utenti di inserire del testo e selezionare elementi di menù e opzioni. Una volta che l’utente ha effettuato la selezione, può inviare il form, affinché venga elaborato, a uno script php che gestirà le informazioni in arrivo, le quali vengono raccolte sul web server stesso. Una volta sul server lo script elabora le informazioni e invia i risultati, o altre informazioni, al browser dell’utente, affinché questi li veda. Rientrano in questo campo la gestione di aree riservate all’interno del sito ad utenti registrati, la possibilità di permettere di gestire piccole parti di sito direttamente all’utente, la realizzazione di motori di ricerca e molto altro ancora. Esempio di codice PHP,… - 32 - …risultato visualizzato… …e codice HTML della pagina 2.3.3 MYSQL Oggigiorno la maggior parte delle pagine web che visitiamo non sono documenti statici, ma vengono creati dinamicamente quando noi li richiamiamo e le informazioni che contengono sono estratte da un database. Cerchiamo innanzitutto di capire cosa si intende con la parola database, che spesso in italiano viene tradotta come “base di dati”. Un database è, nella sua forma più semplice, un contenitore di dati organizzati e correlati gestito da un software specifico, il DBMS (DataBase Menagement System, Sistema di Gestione di DataBase). Un DBMS è sostanzialmente uno strato software che si frappone fra l’utente e i dati veri e propri. Grazie a questo strato intermedio l’utente e le applicazioni non accedono ai dati così come sono memorizzati effettivamente, cioè alla loro rappresentazione fisica, ma ne vedono solamente una rappresentazione logica. Ciò permette un elevato grado di indipendenza fra le applicazioni e la memorizzazione fisica dei dati. Questa rappresentazione logica viene chiamata “schema del database” ed è la caratteristica principale secondo cui i DBMS vengono solitamente classificati. Nel corso degli anni sono stati adottati numerosi modelli per i dati, a fronte dei quali esistono vari tipi di database. I tipi più comuni sono: • Database gerarchici: i dati vengono organizzati in insiemi legati fra loro da relazioni di “possesso”, in cui un insieme di dati può possedere altri insiemi di dati, ma un insieme può appartenere solo ad un altro insieme. La struttura risultante è un albero di insiemi di dati. • Database reticolati: il modello reticolare è molto simile a quello gerarchico, ed infatti nasce come estensione di quest’ultimo. Anche in questo modello insiemi di dati sono legati da relazioni di possesso, ma ogni insieme di dati - 33 - può appartenere a uno o più insiemi. La struttura risultante è una rete di insiemi di dati. • Database relazionali: i database appartenenti a questa categoria si basano sul modello relazionale la cui struttura principale è la relazione, cioè una tabella bidimensionale composta da righe e colonne. Ciascuna riga, che in terminologia relazionale viene chiamata tupla, rappresenta un'entità che noi vogliamo memorizzare nel database. Le caratteristiche di ciascuna entità sono definite invece dalle colonne delle relazioni, che vengono chiamate attributi. Entità con caratteristiche comuni, cioè descritti dallo stesso insieme di attributi, faranno parte della stessa relazione. • Database ad oggetti: lo schema di un database ad oggetti è rappresentato da un insieme di classi, che definiscono le caratteristiche ed il comportamento degli oggetti che popoleranno il database. La principale differenza con i modelli esaminati finora è la non passività dei dati. Infatti con un database tradizionale (intendendo con questo termine qualunque database non ad oggetti) le operazioni che devono essere effettuate sui dati vengono demandate alle applicazioni che li utilizzano. Con un database ad oggetti, al contrario, gli oggetti memorizzati nel database contengono sia i dati che le operazioni possibili su tali dati. In un certo senso potremmo pensare agli oggetti come a dati a cui è stata fatta una iniezione di intelligenza, che gli permette di sapere come comportarsi, senza doversi appoggiare ad applicazioni esterne. I primi due tipi di database, quelli gerarchici e reticolari, quasi appartengono ormai alla storia dell’informatica. La maggior parte di quelli attualmente più utilizzati appartiene alla categoria dei database relazionali. I motivi di questo successo (anche commerciale) vanno ricercati nella rigorosità matematica e nella potenzialità espressiva del modello relazionale su cui si basano, nella sua semplicità di utilizzo e, ultima ma non meno importante, nella disponibilità di un linguaggio di interrogazione standard, l'SQL, che, almeno potenzialmente, permette di sviluppare applicazioni indipendenti dal particolare DBMS relazionale utilizzato. - 34 - I database ad oggetti sono la nuova frontiera nella ricerca sui database, infatti le loro caratteristiche di estendibilità, derivanti dalla possibilità di definire nuovi tipi di dati e comportamenti, li rendono particolarmente appetibili per tutte quelle applicazioni che richiedono dati complessi, come ad esempio immagini e suoni. Purtroppo la mancanza di un modello per gli oggetti universalmente accettato e la non disponibilità di un linguaggio di interrogazione standard fanno sì che ogni produttore implementi la propria visione specifica, di solito assolutamente incompatibile con tutte le altre. Le caratteristiche dei DBMS e delle basi di dati devono essere: 1. Le basi di dati possono essere grandi, nel senso che possono avere anche dimensione enormi (migliaia di miliardi di byte) e comunque in generale dimensioni molto maggiori della memoria centrale disponibile. Di conseguenza, i DBMS devono prevedere una gestione dei dati in memoria secondaria. 2. Le basi di dati sono condivise, nel senso che applicazioni e utenti diversi debbono poter accedere, secondo opportune modalità, a dati comuni. E’ importante notare che in questo modo si riduce la ridondanza dei dati, poiché si evitano ripetizioni, e conseguentemente si riduce anche la possibilità di inconsistenze: se esistono varie copie degli stessi dati, è possibile che esse, in qualche momento, non siano uguali; viceversa, se ogni dato è memorizzato sul calcolatore in modo univoco, non è possibile correre in disallineamenti. Per garantire l’accesso condiviso ai dati da parte di molti utenti che operano contemporaneamente, il DBMS dispone di un meccanismo apposito, detto controllo di concorrenza. 3. Le basi di dati sono persistenti, cioè hanno un tempo di vita che non è limitato a quello delle singole esecuzioni dei programmi che le utilizzano. 4. I DBMS garantiscono l’affidabilità, cioè la capacità del sistema di conservare sostanzialmente intatto il contenuto della base di dati in caso di malfunzionamenti hardware o software. A questo scopo i DBMS forniscono specifiche funzionalità di salvataggio e ripristino. 5. I DBMS garantiscono la privatezza dei dati. Ciascun utente, riconosciuto in base ad un nome d’utente che è specificato all’atto di interagire con il DBMS, - 35 - viene abilitato a svolgere solo determinate azioni sui dati, attraverso meccanismi di autorizzazione. 6. I DBMS devono essere efficienti intendendo con ciò la capacità di svolgere le operazioni utilizzando un insieme di risorse (spazio e tempo) che sia accettabile per gli utenti. Questa caratteristica dipende dalle tecniche utilizzate nell’implementazione del DBMS e dalla bontà della realizzazione della base di dati da parte dei suoi progettisti. 7. Ai DBMS è richiesta anche l’efficacia intendendo la capacità della base di dati di rendere produttive, in ogni senso, le attività dei suoi utenti. Grazie a queste caratteristiche le applicazioni che vengono sviluppate possono contare su una sorgente dati sicura, affidabile e generalmente scalabile. Tali proprietà sono auspicabili per applicazioni che usano la rete Internet come infrastruttura e che hanno quindi evidenti problemi di sicurezza e scalabilità. I motivi del successo dei database relazionali sono essenzialmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare e manipolare i dati, 2. si basano su un modello, quello relazionale, con solide basi teoriche. Il modello relazionale e' stato proposto originariamente da E.F. Codd in un ormai famoso articolo del 1970. Grazie alla sua coerenza ed usabilità, il modello è diventato negli anni 80 quello più utilizzato per la produzione di DBMS. Il modello relazionale si basa su due concetti, relazione e tabella, di natura diversa ma facilmente riconducibili l’uno all’altro. La nozione di relazione proviene dalla matematica, in particolare dalla teoria degli insiemi, mentre il concetto di tabella è semplice ed intuitivo. La presenza contemporanea di questi due concetti, l’uno formare e l’altro intuitivo, è responsabile del grande successo ottenuto dal modello relazionale. Infatti, le tabelle risultano naturali e comprensibili anche per gli utenti finali, d’altra parte, la disponibilità di una formalizzazione semplice e precisa ha permesso anche uno sviluppo teorico a supporto del modello con risultati di interesse concreto. Tra tutti i database di tipo relazionale esistenti uno dei migliori è sicuramente MySql perché oltre ad essere un’applicazione server robusta è completamente gratuita ed open source. La maggior parte dei siti web di e-commerce scelgono MySql, oltre per le caratteristiche già citate, per la sua velocità. MySql può gestire un numero di - 36 - accessi al database illimitato e il numero degli utenti che si collegano al database è limitato solo dalle caratteristiche della macchina sulla quale è in esecuzione. Esempio interfaccia database MySql con phpMyAdmin Una volta scelto il database per il nostro sito, in base alle caratteristiche che deve avere, possiamo tornare al linguaggio Php e vedere che l’impiego più importante si ottiene nel campo delle interrogazioni di database presenti sul server, perché permette di interfacciarsi con tantissimi database, tra cui il “nostro” MySql. L’utilizzo dei comandi per la connessione al database prescinde dalla conoscenza dei database stessi. Per questo per poterlo utilizzare bisogna avere una buona conoscenza della base di dati MySql e del linguaggio SQL (Structured Query Language) che ci permette di recuperare le informazioni di cui necessitiamo. Il Php ci mette a disposizione moltissime funzioni per interagire con il database e rendere così il nostro sito web “vivo”. - 37 - Esempio di codice Php contenente MySql nella ricerca di tutte le aziende per una categoria, ipotizziamo che il codice passato sia 5, ovvero”Computer e Accessori”… …la tabella dove il codice va a prendere i dati con evidenziato le ditte di categoria 5… …e il risultato finale. - 38 - Non penso mai al futuro. Arriva così presto. Albert Einstein – intervista, dicembre 1930 2.4 UNO SGUARDO AL FUTURO: INTERNET 2 Se scrivere la storia di una tecnologia è di per sé un’impresa gravosa, predirne il futuro è un esercizio intellettuale poco saggio, ancorché assai diffuso. Per questo cercherò di limitarmi a descrivere un processo di innovazione, in parte già avviato, che a breve termine introdurrà alcune importanti novità nell’architettura di internet e nelle sue potenzialità. Tale processo, ancora una volta, trova origine principalmente in ambito statunitense ed è stato battezzato come: Internet 2. Internet 2 è un progetto cooperativo, nato nel 1996, che coinvolge attualmente oltre 200 istituzioni accademiche, diverse grandi aziende del settore informatico e delle telecomunicazioni e istituti federali. Obiettivo generale del progetto è lo sviluppo delle tecnologie hardware e software della rete al fine di rendere possibile la sperimentazione di servizi di rete avanzati (come il lavoro collaborativo, i laboratori virtuali, le biblioteche digitali, video on demand, ambienti virtuali condivisi) e come è già avvenuto per Arpanet prima, e Internet poi, le università serviranno da luoghi deputati alla sperimentazione di tutte quelle tecnologie che dovranno in seguito essere distribuite su scala mondiale. Dal punto di vista delle infrastrutture è stato avviato il progetto di una rete a banda larghissima, la rete del progetto Abilene, la cui spina dorsale opera oggi ad una velocità di 10Gigabit al secondo e permette alle reti universitarie ad essa collegate di raggiungere una velocità di 100Megabit al secondo. La progettazione di questa rete ha sottolineato come per lo sviluppo di servizi avanzati non sia sufficiente il solo potenziamento delle linee e delle strutture hardware della rete, ma serve anche una profonda ristrutturazione nell’architettura dei protocolli. - 39 - La rete Abilene Ed è in questo ambito che sono stati individuati diversi settori di intervento. Il primo riguarda la messa a punto operativa di una nuova versione del protocollo IP, battezzata IP version 6 (Ipv6), che risolve il problema del limitato spazio di indirizzamento del vecchio Ipv4 usando uno schema a 128 bit rispetto agli attuali 32. Ma per renderlo effettivamente funzionante saranno necessari notevoli cambiamenti nei sistemi di instradamento dei dati e nei software di gestione dei router, che dovranno essere in grado di aggiornarsi autonomamente. Il secondo importante obiettivo è indicato con la sigla QoS (Quality of Service) e sta ad indicare l’imponente obiettivo di sviluppare una serie di protocolli per allocare in modo dinamico ed intelligente la banda passante disponibile, in modo tale da poterne riservare una quota garantita ai servizi a pagamento e lasciarne il rimanente agli altri. Differenze di velocità tra i vari tipi di connessione - 40 - Sebbene questo progetto rappresenti l’“internet del futuro”, dagli studenti dei campus universitari americani è visto come un ritorno all’origine del cyberspazio, quando si aveva un territorio vergine che i fan dello scambio di file peer-to-peer potevano sfruttare liberamente. E infatti la community che è nata intorno allo sviluppo di Internet 2, si configura come una vera e propria comunità di file sharing in cui viaggi di tutto, musica, software e film scambiati ad una velocità incredibile. Naturalmente questo eldorado dello scambio di file è tenuto sotto stretto controllo dai colossi dell’industria dell’entertainment che stanno studiando il fenomeno e le possibili contromosse. Ovviamente non è possibile considerare questi risultati come dati definitivi poiché le incognite economiche, tecniche, politiche che si legano a progetti di questa portata non sono, allo stato attuale delle cose, valutabili. Ma almeno negli Stati Uniti, la volontà di potenziare le risorse telematiche, che hanno avuto un ruolo strategico nel rafforzare negli ultimi anni la superiorità tecnologica del paese, è indubbia. Per ora una sola cosa è certa: la rete si trasformerà, anche profondamente, cambiando servizi e tecnologie, ma non scomparirà. Alla continua crescita del numero degli utenti continuerà a corrispondere un potenziamento delle linee e dei protocolli di comunicazione. - 41 - Il progetto non è forse il tè, il caffè, l’oppio, l’hashish della vita? Non è forse il sostituto, il surrogato, la caparra della realtà? Giovanni Papini – Il tragico quotidiano 3. PROGETTAZIONE E REALIZZAZIONE DEL PORTALE 3.1 INTRODUZIONE Il progetto consiste nel realizzare un portale di tipo verticale con lo scopo di fornire servizi e annunci commerciali, mettendo in mostra le aziende che offrono i più svariati beni e servizi a chi è interessato. Sarà un punto di accesso privilegiato della rete perché tutti coloro interessati alle attività commerciali presenti nelle Marche e in Abruzzo lo potranno prendere come punto di riferimento, offrirà più motori di ricerca, sia esterni sul web tramite una piccola interfaccia che rimanda ai più grandi come Google, Virgilio, Yahoo, ecc., sia interno al portale permettendo la ricerca di un singolo bene o servizio, o di una specifica ditta tramite una ricerca per categoria commerciale, denominazione dell’azienda, provincia o città. Presenterà servizi di intrattenimento di tipo editoriale come una barra sempre aggiornata collegata alle notizie dell’ultima ora dell’Ansa, una piccola finestra contenente le notizie meteo regionali, la possibilità di ascoltare in ogni momento un giornale radio e in più permetterà la possibilità di accedere a tantissimi altri servizi, come Faq, newsletter e servizi webmail. Si potrà utilizzarlo per registrarsi gratuitamente inserendo i dati principali della propria attività e di accedere ogni qual volta si vuole ai propri dati personali in modo da poterli modificare e tenere costantemente aggiornati. In più, ai membri dello staff tecnico del portale, sarà possibile visualizzare i dati degli utenti ed eventualmente aggiungere loro permessi più ampi previo pagamento, modificarli o cancellarli. Comprenderà delle vetrine di annunci commerciali che permetteranno di acquistare uno spazio per inserire il proprio, che sarà poi possibile modificare da un’area apposita. Sarà possibile, per un’azienda che vuole farsi pubblicità, acquistare uno spazio per il proprio banner pubblicitario che verrà visualizzato, insieme agli altri, in un ordine casuale ogni qual volta la pagina viene aperta. Sarà possibile controllare la propria posta online, se si dispone di un account con Virtuacom, scaricare i programmi necessari per una buona navigazione in rete, contattare gli amministratori del portale e valutare il portale stesso. E molto altro ancora. - 42 - Per la realizzazione di questo portale avrò bisogno di tutte quelle conoscenze acquisite durante i corsi universitari di “Linguaggi e Programmazione Web” per la realizzazione delle pagine in Html, Javascript e Php, di “Sistemi Informativi e Basi di Dati” per la realizzazione del database in MySql su cui si appoggerà tutto il funzionamento del portale e di “Informatica Multimediale” per gli elementi di grafica dinamica e accattivante fatti in Flash e per la realizzazione di un’interfaccia completa ma facile da utilizzare, più un bagaglio personale derivato da un uso amatoriale, ma massiccio di tutti gli strumenti di cui necessiterò. La nostra vita si consuma nella cura dei particolari… Semplificare, semplificare. Henry David Thoureau - Walden 3.2 LE SPECIFICHE L’assegnazione delle specifiche del progetto è stata svolta in due tempi. All’inizio del lavoro sono state decise le caratteristiche principali che il portale doveva avere, descritte in linea di massima. Successivamente, durante la realizzazione, queste caratteristiche, sono state precisate per mezzo di dati specifici, con chiarezza e abbondanza di particolari. Le specifiche iniziali erano: • progettazione, realizzazione e gestione del sito web con progettazione grafica ed utilizzo di programmazione dinamica (Javascript, Applet Java, Active x, Flash Shockwave, …); • realizzazione e gestione di aree riservate per accessi personalizzati, autoiscrizioni ed autoinserimenti, aggiornamento di abbonati ed aziende, aree spot, ecc.; • realizzazione e gestione di un’area di link utili suddivisa per categorie; • realizzazione e gestione di link evoluti a servizio tipo Meteo e Viabilità con aggiornamento dei dati automatico da parte di ns. server per una più rapida consultazione; • motore di ricerca interno per categorie, nome e provincia; • motore di ricerca esterno sul web; - 43 - • servizi dinamici al pubblico, info, notizie, Faq, newsletter, collegamento ai servizi webmail di Virtuacom. Per far sì che il sito avesse queste caratteristiche è stato deciso di suddividere gli utenti che lo utilizzeranno in tre livelli: • nel primo, gratuito, è possibile inserire solamente la denominazione sociale, l’indirizzo e il telefono; • nel secondo, a pagamento, è possibile inserire anche un logo, l’indirizzo della proprio pagina web, il proprio indirizzo e-mail ed una breve descrizione della ditta; • nel terzo, ad un prezzo più alto del secondo, sarà possibile avere una propria piccola pagina dinamica, all’interno del portale, dove inserire fino ad un massimo di 2 fotografie e una descrizione estesa della propria attività e verrà attivata la possibilità ad un ospite del sito di inviarsi alla propria e-mail il biglietto da visita della ditta. Il motore di ricerca interno al portale dovrà permettere la ricerca tramite categoria, nome, città, provincia e parole chiave, sia con un solo campo, che per affinamenti successivi e le vetrine visualizzate dovranno essere ordinate in modo che siano prima visibili i dati degli utenti di terzo livello, poi di quelli di secondo ed infine degli utenti non paganti. Ogni nuovo utente che si registra al portale dovrà inserire obbligatoriamente la denominazione sociale, il numero di telefono, almeno una categoria ed un indirizzo e-mail valido. Per questo motivo in ogni form presente all’interno del sito sarà effettuato un controllo sull’indirizzo e-mail. Al momento della registrazione la password inserita sarà memorizzata criptata all’interno del database e deve essere possibile richiederla in caso di perdita. In più, per chi è interessato, deve essere possibile richiedere informazioni riguardo le altre modalità di inserimento e il relativo listino prezzi. Terminata la registrazione l’utente riceverà una conferma dei dati per e-mail ed anche i gestori del sito ne riceveranno una che segnalerà l’iscrizione di un nuovo utente con tutti i dati inseriti, lo stesso avviene in caso di modifica dei propri dati. Ogni e-mail inviata ai clienti conterrà un’informativa sulla privacy ed il trattamento dei dati personali. - 44 - Per gli utenti a pagamento, ogni immagine inserita dovrà avere una dimensione prefissata (145x80 pixel, max 64Kb i loghi e 300x225, 400x300, 500x375 pixel, max 500Kb le foto) e dovrà essere presente un controllo che permetta di non memorizzare i dati in caso di misure non conformi. La descrizione estesa dell’attività non potrà superare gli 850 caratteri e uno script segnalerà i caratteri rimanenti. Le pagine vetrina offerte e vetrina usato dovranno contenere tutti le inserzioni con un’immagine (max 150x150 pixel), una descrizione (max 300 caratteri), il valore del bene, il nome, la mail e il telefono (non obbligatorio) dell’inserzionista. Gli utenti che comprano lo spazio per l’inserzione lo acquistano per un determinato periodo di tempo (1-3-6-12 mesi) e la pagina deve automaticamente cancellare quelle scadute. Gli utenti registrati al portale (a pagamento) hanno uno spazio inserzione gratuito (uno per ogni pagina) gestibile dalla loro area personale. Gli altri devono registrarsi e dopo aver pagato ricevono una password che permette loro di gestire lo spazio che hanno acquistato in un’area apposita. In quest’area sarà possibile modificare tutti i dati all’infuori del prezzo. Ogni modifica o inserimento sarà segnalato per e-mail ai gestori del portale. Dovrà essere inoltre possibile cancellare l’inserzione prima della naturale scadenza. Nella homepage dovrà essere visibile l’indirizzo IP di chi si collega al portale e si dovrà poter accedere all’informativa sulla privacy e ai termini di utilizzo del portale. Il sito dovrà presentare un area denominata “staff” dove sarà possibile, ad utenti autenticati, gestire l’intero portale, permettendogli di visualizzare un elenco dei clienti con tutti i dati e i livelli, con la possibilità di incrementarli o diminuirli. Deve essere possibile inserire, modificare o cancellare le categorie commerciali presenti all’interno del sito web, inserire i banner presenti nelle pagine relative alle varie categorie con la possibilità di scegliere un ordine di visualizzazione, in caso non venga scelto nessun ordinamento i banner verranno visualizzati in maniera casuale. Si potrà anche visualizzare e modificare i dati degli inserzionisti, attivare lo spazio a coloro che lo acquistano, inserire, visualizzare, modificare o cancellare le inserzioni in corso, ripristinare o eliminare definitivamente quelle scadute. - 45 - L’interfaccia del portale, per quanto riguarda il layout grafico, dovrà assomigliare, il più fedelmente possibile, all’immagine seguente. Queste sono, all’incirca, la maggior parte delle specifiche datemi durante lo sviluppo di VirtuaPoint. Poiché questo portale si propone di essere un punto di riferimento per le Marche e l’Abruzzo, dovrà essere sempre aggiornato, e, col tempo, vi saranno aggiunti sempre più servizi utili. Per questo potranno esserci delle incongruenze tra ciò che è scritto in questa sede e quello che sarà visibile online, ma lo schema di base sarà sempre riconducibile a quello descritto. - 46 - 3.3 LA PROGETTAZIONE Per realizzare il sito in Php e creare il database in MySql ho adottato la strategia inside-out che consiste nell’individuare inizialmente solo alcuni dei concetti importanti e poi procedere, a partire da questi, a “macchia d’olio”. Si rappresentano cioè prima le idee concettualmente più vicine ai concetti iniziali, per poi muoversi verso quelli più lontani attraverso una navigazione tra le specifiche. Questa strategia presenta il vantaggio di non richiedere passi d’integrazione. D’altro canto è necessario, di volta in volta, esaminare tutte le specifiche per individuare concetti non ancora rappresentati e descriverli nel dettaglio. 3.3.1 IL DATABASE Il database, a differenza dell’interfaccia dove mi sono stati posti dei vincoli grafici, ho potuto realizzarlo come meglio credevo. Per questo ho iniziato dalla progettazione concettuale, che ha lo scopo di rappresentare le specifiche informali della realtà di interesse in termini di una descrizione formale e completa, ma indipendente da come verrà poi rappresentata all’interno della base di dati, con una raccolta e analisi dei requisiti che il portale, e di conseguenza il database, deve avere, leggendo e rileggendo le specifiche, con particolare attenzione a quelle che riguardavano la struttura del database. Il primo problema che mi si è posto è stata la progettazione e diversificazione dell’utente. Per ogni utente del sito, da quello che usufruisce dei servizi gratuiti a quello a pagamento, compreso i membri dello staff, verranno registrati il proprio username identificativo, la propria password (criptata insieme all’username secondo l’algoritmo MD5), l’e-mail con cui si registra e i gradi di accesso nella tabella utenti e gli sarà assegnato un codice numerico che lo identificherà all’interno del database. Questo codice diventerà la chiave primaria (esterna) delle tre tabelle che memorizzano i dati del cliente a seconda del livello di accesso che possiede, in modo che, se presente nella tabella corrispondente, indicherà che l’utente può usufruire di questo tipo di servizio. Quando una persona si registra on-line gli verrà assegnato d’ufficio il primo livello, per poter poi essere aumentato solamente da un membro dello staff. Le tabelle riguardanti i tre livelli si chiameranno rispettivamente liv1, liv2 e liv3. La prima conterrà tutti i dati anagrafici - 47 - del cliente e le categorie di appartenenza (fino ad un massimo di tre), nella seconda verranno memorizzati gli indirizzi web e e-mail dell’utente, più il logo e una breve descrizione dell’attività e, infine, nell’ultima verrà memorizzata la descrizione completa dell’attività e le foto da inserire nella pagina personale all’interno del portale. Realizzata una visione d’insieme di come verranno memorizzati gli utenti all’interno del database ho iniziato a progettare le parti dinamiche del sito, come il menù di sinistra contenente tutte le categorie commerciali presenti nel database. Per questo menù ho semplicemente predisposto una tabella chiamata categorie contenente la denominazione di ognuna con un codice ad essa associato. Questo codice servirà, poi, ad identificare tutti gli utenti che ne fanno parte. Per gli amministratori del portale, nella sezione a loro dedicata, sarà sempre possibile vedere tutte le categorie, modificarle, cancellarle o aggiungerne delle altre. Per rendere possibile, oltre alla ricerca per categorie, anche quella per parole chiave (come, ad esempio, prodotti o tipologia di servizi forniti) ho creato un’altra tabella, chiamata pcutenti (ParoleChiaviUTENTI), dove vengono memorizzate, all’atto dell’iscrizione tutte le definizioni che un utente intende associare alla propria ditta. Questa tabella conterrà un record per ogni parola chiave ed ogni ditta potrà averne fino ad un massimo di venti. Anche i banner, come i loghi e le foto, verranno memorizzati all’interno del database in una tabella chiamata banner_cat che, oltre a contenere l’immagine, ne memorizza l’url del proprietario e la posizione in cui va visualizzato. Se la posizione non è presente verrà visualizzato in una posizione random (casuale). Per gestire le inserzioni nel sito, sia di oggetti nuovi che usati, ho creato due tabelle con gli stessi campi, chiamate inserzione_offerte e inserzione_usato. In queste tabelle viene salvata l’immagine dell’oggetto in vendita, la descrizione, il nome del venditore, la mail, il telefono, la data dell’inserimento, la data di scadenza, la durata, il valore del bene, la password dell’inserzione e il codice dell’inserzionista. Questo codice può corrispondere sia ad un utente di secondo o terzo livello, che hanno entrambi un’inserzione gratuita in tutte e due le vetrine, sia ad un utente che ha acquistato lo spazio per una sola inserzione. I dati di questi utenti, quando si registrano per la prima volta, vengono memorizzati nella tabella inserzionista che - 48 - contiene: nome, cognome, azienda, città, indirizzo, e-mail, telefono, username e il codice che lo identifica univocamente. Terminata la progettazione concettuale, sono passato alla rappresentazione logica, che consiste nel tradurre lo schema concettuale nel modello di rappresentazione dei dati adottato dal sistema di gestione di base di dati a disposizione, nel mio caso di MySql. Questo modello, che prende il nome di modello logico dei dati, è di seguito riportato. Schema Entità – Relazione Dizionario dei dati - 49 - NOTE • Le tabelle Liv1, Liv2, Liv3 sono identificate esternamente dal campo codice della tabella Utenti. • Il campo ditta della tabella Pcutenti è referenziato al codice di Liv1. • I campi cat1, cat2 e cat3 di Liv1 sono referenziati al codice di Categorie, come il campo categoria di Banner_cat. • Il campo codiceut di Inserzione_offerte e Inserzione_usato è referenziato al codice di Utenti, mentre il campo codiceins è referenziato al campo codice di Inserzionista. • Il campo tipo di Utenti indica il livello degli utenti, differenziato in questo modo: o Amministratore, 0. o Iscrizione gratuita, 1. o Inserimento base, 2. o Inserimento full, 3. • Il campo ordine di Banner_cat serve per dare un ordinamento alla visualizzazione dei banner pubblicitari all’interno della pagina. Se di valore NULL vengono visualizzati con un ordine casuale. • I campi codiceut e codiceins di Inserzione_offerte e Inserzione_usato servono a distinguere a chi appartiene l’inserzione, se è presente il primo è di un utente registrato a pagamento al portale, se è presente il secondo è di un’inserzionista che ha acquistato lo spazio, se entrambi assenti è stata inserita da un amministratore del portale. Il campo pres indica se l’inserzione è visibile o no ai visitatori, permettendo la cancellazione logica, prima di quella fisica. Il campo durata serve, al momento dell’acquisto di uno spazio, a memorizzare la durata da sommare per calcolare la scadenza quando lo spazio verrà attivato. Come ultima fase, ho completato lo schema logico con la specifica dei parametri fisici di memorizzazione dei dati, ottenendo così lo schema relazionale. Ogni nome a sinistra rappresenta una tabella con tutti i campi tra parentesi e quello sottolineato è la chiave primaria. - 50 - Utenti ( codice , user, pass, mail_reg, tipo) Liv1 ( codice , denominazione, indirizzo, citta, prov, tel, fax, cat1, cat2, cat3) Liv2 ( codice , web, mail, logo, tipofile, datt) Liv3 ( codice , foto1, foto1tipo, foto2, foto2tipo, descrizione) Categorie ( cod , denominazione) Pcutenti ( codice , parola, ditta) Banner_cat ( codice , banner, tipofile, categoria, ordine, url) Inserzionista ( codice , user, citta, indirizzo, tel, nome, cognome, ditta, mail) Inserzione_offerte ( cod , immagine, tipofile, descrizione, nomeven, mailven, telven, datains, durata, scadenza, password, codiceut, codiceins, valore, pres) Inserzione_usato ( cod , immagine, tipofile, descrizione, nomeven, mailven, telven, datains, durata, scadenza, password, codiceut, codiceins, valore, pres) U U U U U U U U U U U U U U U U U U U U Adesso è possibile implementare la base di dati in MySql, scegliendo per i vari campi il tipo di dato più adatto. Il database sul Web Server Apache 3.3.2 ALCUNE QUERY Una volta realizzato e implementato sul server, siamo finalmente in grado di utilizzare il nostro database. Durante l’utilizzo del portale, sia nostro che da parte dei visitatori, non sarà l’utente direttamente ad interrogare la base di dati, bensì saranno le pagine del portale scritte in linguaggio Php che, a seconda delle scelte di coloro che lo stanno utilizzando, lo interrogherà tramite delle query già memorizzate all’interno delle pagine. - 51 - Onde spiegare il funzionamento del database, inserisco di seguito tre delle moltissime query che verranno inserite all’interno del portale, con i relativi risultati. 1) Ricerca per parola chiave, nome, città e provincia. Su questa query si basa tutto il funzionamento del motore di ricerca interno al portale. Come richiesto dalle specifiche, deve essere possibile cercare un’azienda in base ad una parola chiave (che verrà confrontata con quelle inserite dalle ditte registrate), in base al nome, in base alla città e in base alla provincia. Naturalmente deve essere possibile sia inserire un solo campo che tutti contemporaneamente, oppure con affinamenti successivi. Ipotizziamo di inserire le seguenti parole nel menù di ricerca: Cosa cerchi? internet nome: virtuacom città: san benedetto prov: AP La query risultante sarà: Le cose da notare in questa query sono: 1. la parola chiave ricercata viene troncata dell’ultima lettera in modo da non avere problemi per incompatibilità tra singolare-plurale (es. se cerchiamo ristoranti o ristorante il risultato sarà lo stesso indipendentemente da come verrà salvata la parola dalla ditta al momento della registrazione); 2. la parola chiave viene cercata anche nel nome delle categorie (es. se io inserisco il mio ristorante nella categoria Ristoranti e Pub, potrei non pensare ad inserire la parola chiave ristorante, facendo sì che una ricerca per questa - 52 - parola non visualizzi tra i risultati la mia ditta, mentre con questo accorgimento si evita questa incongruenza); 3. la seconda parte della clausola “where” (quella esterna alle parentesi tonde) è presente solamente se vengono inseriti i rispettivi campi; 4. l’ordinamento serve per visualizzare prima le ditte di terzo livello, poi di secondo e per ultimo gli utenti registrati gratuitamente; 5. il risultato della query è il codice delle ditte e i rispettivi gradi di accesso. Desidero sottolineare che se la ricerca viene effettuata per uno o più campi che non siano la parola chiave, la query risultante è composta solo da alcune righe della precedente e per questo non riportata. Il risultato dell’esecuzione di questa query sul nostro database è che, passato alla pagina di visualizzazione delle ditte, produrrà il risultato visualizzato nella seguente immagine. 2) Visualizzazione casuale o ordinata dei banner all’interno delle categorie. Questa seconda specifica prevede due casi: la visualizzazione casuale dei banner e quella preordinata. Per questo motivo ho dovuto realizzare due query, la prima che preleva i banner, per la categoria selezionata, secondo l’ordine prestabilito, la seconda che invece li preleva in ordine casuale. In questo modo riesco a coprire tutti i casi possibili, ovvero un completo ordinamento, un parziale ordinamento e nessun ordinamento. Una volta prelevati i dati questi vengono visualizzati. Le due query sono (ipotizzando che la categoria sia la numero tre): - 53 - Query che preleva i banner preordinati con l’ordine prestabilito Query che preleva i banner non ordinati in ordine casuale Se ipotizziamo che nella nostra categoria i banner 1 e 4 vengono visualizzati rispettivamente al primo e al secondo posto, mentre il 2 e il 3 vengono visualizzati casualmente i risultati delle due query saranno: Risultato della prima query Risultato della seconda query Che produrrà una visualizzazione nella nostra pagina con il seguente ordine: ferramenta (codice 1), agenzia investigativa (codice 4), lampadine (codice 3), Buffetti (codice 2), come si può vedere nella schermata sottostante. - 54 - Un eventuale reload della pagina potrà solamente cambiare l’ordine dei banner casuali, mentre quelli preordinati verranno sempre visualizzati nel posto assegnatogli. 3) Area amministratore: visualizzazione dei clienti di livello 1, livello 2 e livello 3. Nell’area riservata agli amministratori del portale, deve essere possibile visualizzare tutti i dati degli utenti registrati e, per far sì che non si crei un’eccessiva sovrabbondanza visiva dei dati quando gli utenti inizieranno ad essere parecchi, ho deciso di dividere la visualizzazione in base ai livelli di accesso. Poiché la pagina che li visualizzerà sarà sempre la stessa dovrà essere la query a cambiare in base al collegamento con la quale caricheremo questa pagina. Per questo ho dovuto preparare tre query, ognuna che visualizza solo gli utenti del relativo livello. In questa query si deve notare il “left join” presente tra la tabella liv1 e le altre, questo serve ad inserire tra i risultati solamente le righe presenti nella tabella che compare a sinistra del comando, per le quali non esiste una corrispondente riga nella tabella di destra. In questo modo il campo codice della tabella liv2 risulterà di valore NULL (ovvero non presente) e, con il controllo presente nella clausola “where” sul suddetto campo, ci permette di escludere dal risultato tutte quelle ditte che sono di livello superiore al primo. Il procedimento logico della seconda query è identico a quella precedente, con l’unica differenza che, in questo caso, il controllo viene effettuato sul campo codice della tabella liv3. - 55 - Nella terza query, invece, ho utilizzato il “right join” che ha un comportamento speculare rispetto al “left join” in modo da escludere direttamente tutti quegli utenti che sono presenti nelle tabelle liv1 e liv2, ma non sono presenti nella tabella liv3. L’ultima query che intendo citare fa sempre parte della visualizzazione dei clienti ed è quella per la ricerca per nome. Questa può essere utile nel caso sia presente una gran mole di dati e l’amministratore è alla ricerca di uno specifico cliente di cui conosce la denominazione sociale. In questo caso non deve far altro che inserire il nome nel menù di ricerca e cliccare sull’apposito bottone. Ipotizzando che l’amministratore stia cercando la ditta “virtuacom” la query è la seguente: Ciò produrrà il seguente risultato nella pagina dell’amministratore: Queste sono solamente alcune delle tantissime query che verranno utilizzate all’interno del portale. A queste di selezione se ne affiancheranno molte altre dello stesso tipo, ma anche di manipolazione dei dati, come inserimento, cancellazione e modifica. In questa breve panoramica ho preferito inserire solamente query di selezione perché sono quelle che creano risultati più visibili dal punto di vista grafico, poiché prendono i dati all’interno del database e li visualizzano nel browser. - 56 - 3.3.3 STRUMENTI UTILIZZATI Gli strumenti utilizzati per realizzare il portale sono: Adobe Illustrator CS - Adobe Illustrator CS consente di concretizzare qualsiasi idea in modo rapido ed efficiente. Converte istantaneamente bitmap in immagini vettoriali e lavora con tecniche di pittura intuitive. Permette di risparmiare tempo grazie a palette intelligenti e aree di lavoro ottimizzate. Inoltre, la perfetta integrazione con altre applicazioni consente di realizzare grafica accattivante per la stampa, la visualizzazione su schermo, il Web e i dispositivi mobili. Adobe Photoshop CS - Adobe Photoshop CS è un programma all'avanguardia della gamma Photoshop per l'elaborazione digitale a livello professionale delle immagini che offre innovativi strumenti creativi, flessibilità senza precedenti e funzioni più efficienti per la modifica, l'elaborazione e la gestione dei file. Easyphp 1.8 - EasyPHP è un pacchetto software completo che permette di sfruttare tutto il potere e la flessibilità offerti dal linguaggio dinamico PHP integrandolo efficacemente con l'uso di database. Il pacchetto include Apache server, MySQL database e il supporto completo di PHP come strumento di sviluppo semplice per i siti web o le applicazioni. FlaX - FlaX crea effetti di testo per Macromedia Flash in tempo reale. Con un’interfaccia intuitiva ha ormai raggiunto lo standard del Flash negli effetti di testo. Macromedia Dreamweaver MX - Dreamweaver MX è la scelta dei professionisti del settore per la creazione di siti Web ed applicazioni. Prevede una potente combinazione di strumenti di layout visivo, funzioni di sviluppo di applicazioni e supporto per la modifica del codice. Con funzioni sicure per design ed integrazione basati su CSS, Dreamweaver consente a designer e sviluppatori di creare e gestire con facilità qualsiasi sito Web . T T Macromedia Flash MX - Macromedia Flash MX consente a designer e sviluppatori di integrare video, testo, audio e grafica in esperienze adeguate e dinamiche, che garantiscono risultati migliori per marketing e presentazioni interattivi, e-learning ed interfacce utente applicative. Flash è la piattaforma software più diffusa nel mondo, usata da oltre un milione di professionisti del settore, disponibile ad oltre il 97% dei desktop con accesso a Internet nel mondo, oltre che ad una vasta gamma di periferiche. Notepad++ - Notepad++ e' un editor di sorgente gratuito, in ambiente MS Windows, che supporta diversi linguaggi di programmazione. Il progetto, basato sul componente editor Scintilla (un componente editor molto potente) e scritto in C++ facendo uso esclusivamente delle api win32 (quindi senza impiegare MFC, il che assicura una piu' alta velocita' di esecuzione e una minore dimensione del programma), e' distribuito secondo la Licenza GPL . Webmin 1.121 – Webmin è un’interfaccia web per l’amministrazione di sistemi Unix. Basta usare un qualunque browser che supporta tabelle e form (e Java per il modulo File Manager) per gestire account, Apache, DNS, trasferimento di file e altro ancora. Webmin consiste in un semplice server web, e un numero di programmi CGI che riescono a modificare direttamente file di sistema come /etc/inetd.conf e /etc/passwd. Il server web e i programmi CGI sono scritti in Perl versione 5. - 57 - Dimidium farci qui coepit habet. (Cominciare è già metà dell’opera.) Orazio - Epistole, I, 2, 40 3.4 LA REALIZZAZIONE Prima di iniziare a descrivere come le idee precedentemente riportate sono diventate il portale vero e proprio ci tengo a sottolineare che le immagini presenti in questa parte dell’elaborato possono differire dalle schermate finali perché prese in corso d’opera. La prima cosa da fare, quando si realizza un sito web, è di organizzare la memorizzazione fisica del sito. Ho creato una cartella principale denominata virtuapoint con lo scopo di contenere tutti i files riguardanti il portale. Questa cartella principale presenta varie sottocartelle come è intuitivo comprendere dal diagramma sottostante. virtuapoint css flash images banner_home include cornici La struttura del portale La cartella css contiene i vari fogli di stile presenti nel sito, in altre parole i file con estensione css. I fogli di stile sono la principale innovazione introdotta con la versione 4 del linguaggio Html e permettono di dare coesione e coerenza all’aspetto definitivo di una pagina sul browser. Attraverso il ricorso ai file css è possibile semplificare di molto il lavoro di editing di una pagina web, eliminando molte ripetizioni di comandi. Sono molto facili da creare e da usare per determinare la formattazione delle pagine, le dimensioni, il colore e i font utilizzati per i caratteri di testo e dei titoli, creare rientri all’inizio dei paragrafi, giustificare il testo, variarne la spaziatura e via dicendo, esattamente come quando si lavora a un testo all’interno di un programma di videoscrittura. - 58 - Nella cartella flash ho inserito tutti i file creati con il programma omonimo o quelli creati con il programma FlaX. Questi file non sono altro che semplici animazioni dal sicuro impatto grafico create con lo scopo di attirare l’attenzione dell’utente su determinati parti dello schermo. La cartella include presenta al suo interno dei file con estensione php contenente parte di codice ripetitivo che deve essere inserito in più pagine del portale. In questo modo è possibile richiamarlo con una semplice linea di codice senza doverlo ogni volta riscrivere tutto. In più se deve essere modificato basta cambiarlo una sola volta nel file “linkato” invece di doverlo andare a modificare in ogni pagina dove, altrimenti, dovrebbe essere stato scritto il codice. L’ultima cartella, images, contiene tutte le immagini presenti nel sito. Le due sottocartelle banner_home e cornici contengono rispettivamente i banner pubblicitari presenti nella homepage del portale e le cornici dei menù. Una volta deciso come il sito sarà memorizzato possiamo dividere, leggendo attentamente tutte le specifiche forniteci, il lavoro da fare in sei macrosezioni: 1. homepage; 2. motore di ricerca interno; 3. area utente; 4. gestione dei banner; 5. vetrine offerte e usato; 6. area amministratore. Prima di iniziare ho studiato le pagine del portale già realizzate come esempio e non funzionanti: l’index, ovvero la prima pagina, e la pagina ristoranti_e_pub cioè la visualizzazione di una ricerca per categoria. Il mio compito è di rendere il portale un sito dinamico appoggiato ad un database che sia possibile modificare agli amministratori del sito direttamente on-line e, per le rispettive parti, anche ai clienti dello stesso. 3.4.1 LA HOMEPAGE Nell’index, una delle prime parti da rendere dinamiche era il menù presente nella parte sinistra dell’interfaccia contenente un elenco di tutte le categorie presenti nel portale. Con un breve codice ho eliminato l’elenco statico delle categorie, che - 59 - sarebbe dovuto essere cambiato ogni qual volta se ne modificava anche solo una, facendo si che sia il server stesso ad interrogare il database prendendo tutte le categorie presenti al suo interno in quel momento e elencandole con lo stesso layout grafico precedente. In più questo menù, a differenza del precedente, fa riferimento sempre alla stessa pagina web passandogli, per ogni categoria, un parametro diverso che permetterà alla pagina successiva di riconoscere quale categoria l’utente intende visualizzare. Questo ha permesso di risparmiare oltre venti pagine web statiche, una per ogni categoria presente nel menù. Sempre in questa pagina ho eliminato il vecchio e invadente ticker di news riguardanti il mondo dell’informatica dalla parte centrale dello schermo e l’ho sostituito con un più gradevole script di forma allungata che richiama una pagina del sito Quotidiano.net contenente notizie di attualità sempre aggiornate e l’ho posizionato sotto il menù sottostante il logo in alto a sinistra. Lo script di News del portale VirtuaPoint Un piccolo menù nella parte destra dell’interfaccia è stato inserito per permettere a tutti i clienti Virtuacom, che hanno un indirizzo e-mail con loro, di controllare la loro posta direttamente dal web tramite il servizio webmail. Dopo aver inserito lo username e la password viene aperta una nuova finestra con la casella di posta Il menù per la posta dell’utente. Da questa pagina principale è possibile accedere a tutte le altre aree del sito, tra cui le pagine: cercaweb che permette all’utente di cercare le proprie informazioni nei maggiori motori di ricerca italiani tramite un semplice modulo che rimanda ai motori di ricerca Google, Yahoo, Virgilio, Il modulo per la ricerca nel Web Altavista e Lycos; la pagina chi_siamo che contiene sia una breve descrizione dei servizi e dei contenuti di VirtuaPoint sia tutte le informazioni principali di - 60 - Virtuacom, con un logo che permette di accedere al loro sito web; la pagina servizi che contiene un elenco dei servizi che una persona può avere diventando cliente Virtuacom; la pagina contatti contenente un modulo da compilare per contattare gli amministratori del portale; la pagina download che presenta tutti quei programmi (utili e gratuiti) che possono interessare coloro che navigano nel web e la pagina privacy che presenta tutti i termini e le condizioni che un utente deve accettare per poter usufruire dei servizi presenti sul sito VirtuaPoint. 3.4.2 IL MOTORE DI RICERCA INTERNO Prima di realizzare il motore di ricerca vero e proprio mi sono concentrato sulla visualizzazione per categorie commerciali nella pagina denominata categoria. Costruita con lo stesso layout grafico della pagina ristoranti_e_pub, riceve dalla pagina che la richiama un parametro, il codice della categoria, e da questo inizia l’elenco di tutte le ditte che ne fanno parte, visualizzando prima le ditte degli utenti del terzo livello, poi del secondo ed infine del primo. Esempio di risultato di una ricerca per categoria La differenziazione è stata fatta perché gli utenti del terzo livello, quelli che usufruiscono del servizio a pagamento, devono essere avvantaggiati rispetto agli utenti di secondo livello, che pagano un prezzo minore, e quelli di primo livello che usufruiscono dei servizi offerti gratuitamente. Oltre a essere avvantaggiati nella - 61 - visualizzazione hanno dei benefici maggiori perché agli utenti gratuiti è possibile inserire solamente i dati anagrafici della ditta, per quelli di secondo livello è possibile inserire anche un piccolo logo, un indirizzo web della loro homepage, un indirizzo email e una breve descrizione della ditta, mentre quelli del terzo hanno in più una piccola pagina web, all’interno del portale, dove possono inserire fino a due foto e una descrizione dei servizi che offrono e viene attivata la possibilità, per i visitatori, di inviarsi al proprio indirizzo di posta elettronica il biglietto da visita dell’azienda. Divisione logica degli utenti del portale VirtuaPoint Facendo click sul nome delle aziende dei clienti di terzo livello si accede alla loro pagina personale, denominata ditta, nella quale vengono riproposti tutti i dati già visualizzati nell’elenco precedente ed è qui che si dà ampio spazio alla ditta con una lunga descrizione dell’attività svolta e le foto che sono state memorizzate nel database. Per inserire le foto in questa pagina e i loghi nella pagina categoria ho dovuto creare altre due pagine dinamiche poiché, immagini riguardanti essendo gli le utenti salvate all’interno di un record di una tabella, non era possibile creare un link al file che fisicamente non esiste. Queste due pagine, che ricevono dei parametri quando vengono richiamate, sono in grado di Esempio di pagina dedicata a ditta di terzo livello - 62 - andare a prendere nel database i bit che compongono l’immagine, il mimetype e ricostruirla “trasformandosi” in essa. Questi due file sono stati chiamati rispettivamente foto e logo. Il motore di ricerca interno permette la ricerca tramite parola chiave, nome, città e provincia, sia contemporaneamente sia con affinamenti successivi. Per questo motivo è stato inserito, nelle pagine realizzate in precedenza, un piccolo menù posto superiormente a quello che elenca le categorie commerciali del sito, che permette di inserire le parole con cui effettuare la ricerca e vederne i risultati in una pagina chiamata ricerca che ha lo stesso layout grafico della pagina categoria. E’ stato deciso, inoltre, che le parole chiave riguardante ogni singola ditta verranno scelte all’atto della registrazione e se ne potranno inserire fino ad un massimo di venti. La Il menù di ricerca ricerca potrà essere fatta per affinamenti successivi inserendo, ad esempio, prima una parola chiave indicante un oggetto di nostro interesse, poi diminuire l’elenco dei risultati visualizzati inserendo la provincia che ci interessa, e, se non bastasse, addirittura la città. Onde evitare il problema di incompatibilità tra singolare e plurale, quando viene avviata una ricerca per parola chiave viene automaticamente troncata dell’ultima lettera, in un modo completamente invisibile all’utente, e la ricerca viene effettuata sulla parola risultante. La visualizzazione dei risultati è stata fatta con lo stesso codice utilizzato per la ricerca per categorie, memorizzato in un file nella cartella include denominato visualizza. Gli utenti che usufruiranno di questo portale saranno tutte quelle persone che stanno cercando un bene o servizio nella zona delle Marche-Abruzzo, ed una volta trovata la ditta che ne dispone dovranno stampare o scrivere a Il biglietto da visita della Virtuacom - 63 - mano i suoi dati. Per questo è stato deciso di inserire la possibilità per gli utenti di inviarsi il biglietto da visita delle ditte di terzo livello direttamente al proprio indirizzo di posta elettronica. Cliccando sulla bustina che appare durante la ricerca o sull’apposito link nella pagina relativa all’azienda e inserendo il proprio indirizzo, nel giro di pochi secondi, si riceve una mail contenente tutti i dati fondamentali per contattare la ditta alla quale siamo interessati. In questo modo, oltre a non aver bisogno di scrivere i dati se ne avrà a disposizione sempre una copia memorizzata nella propria casella di posta. 3.4.3 L’AREA UTENTE Per accedere all’area riservata agli utenti registrati e all’area dello staff, è stato creato un piccolo menù posto nella parte alta a destra della homepage, dove si deve inserire il proprio username identificativo e la password scelta al momento della registrazione. Questi dati vengono passati alla pagina login che ne controlla la correttezza secondo una procedura che cerca di evitare ogni accesso non autorizzato. Quando un utente si registra al portale inserisce una Il menù dell’area riservata parola identificativa, che non deve già essere stata usata da nessun altro visitatore registrato al portale, ed una password che, per motivi di sicurezza non viene direttamente memorizzata nel database, ma se ne memorizza il valore MD5 prodotto dall’unione dello username e della password. MD5 (specificato nella RFC 1321) è l’acronimo di Message Digest 5 ed è un algoritmo in grado di associare un valore esadecimale di 32 caratteri ad una stringa di testo con le seguenti caratteristiche: • ha una lunghezza fissa di 128bit, • è praticamente impossibile trovare due messaggi m1 ed m2 che restituiscono lo stesso codice, • non è possibile, partendo dal valore ottenuto, risalire all’originale. - 64 - In pratica è una funzione di hash, cioè una funzione univoca che non può essere invertita, atta alla trasformazione di un testo in chiaro e di lunghezza arbitraria in una stringa di lunghezza limitata che rappresenta una sorta di “impronta digitale” del testo di partenza. In questo modo, per accedere ai propri dati, visto che è impossibile decriptare la password, è criptare con la stessa funzione i dati immessi al momento del login. Se i due valori coincidono allora l’utente è autorizzato, senza che la password sia visibile nemmeno ad un eventuale pirata informatico che riesca a visualizzare i record del database. Ed è questa la procedura che ho deciso di utilizzare per l’accesso all’area riservata del portale. In caso un utente dovesse dimenticare la propria password è stato inserito un link che permette di richiedere in maniera automatica i propri dati di accesso. Questo collegamento richiama la pagina mail e gli passa il codice del cliente che sta cercando di entrare nell’area riservata senza riuscirci, valore che prende dallo username che identifica ogni utente in maniera univoca. Non potendo decriptare il valore della password originale ne viene assegnata un’altra d’ufficio calcolata in maniera casuale e composta da sei caratteri alfanumerici. Questa nuova password, insieme allo username vanno a formare il nuovo valore MD5 memorizzato nel database. L’utente riceve l’e-mail nel giro di pochi secondi all’indirizzo inserito al momento dell’iscrizione potendo così nuovamente accedere all’area personale dove, se lo desidera, potrà cambiare il valore della password casuale con una più facile da ricordare mnemonicamente. Mail generata in maniera automatica alla richiesta dei dati di accesso da parte di un utente Quando l’identificazione avviene in maniera corretta la pagina login crea due variabili di sessione, la prima permette all’utente di visualizzare le pagine riservate, - 65 - la seconda memorizza il codice dell’utente che servirà per poter risalire ai suoi dati all’interno del database e permettergli di visualizzarli, modificarli e integrarli. Il supporto delle sessioni del php ci permette di stabilire un “dialogo” con l’utente del nostro sito, superando uno dei limiti del protocollo http, che è quello di “non avere stato”. Infatti, per questo protocollo, ogni richiesta è unica ed indistinguibile dalle altre. Quando un utente fa più richieste in successione, il server web non ha possibilità di rendersi conto che si tratta sempre della stessa persona e se questo non crea problemi nella maggior parte delle situazioni, ci sono dei casi in cui è importante stabilire questa specie di dialogo tra l’utente e il server, in quanto ogni operazione che l’utente compie può influenzare le successive ed essere influenzata dalle precedenti. Basti pensare all’utilizzo che ne viene fatto anche in questo sito: un utente registrato e autorizzato può accedere a determinate pagine che altrimenti non potrebbe visitare e si aspetta di poterle visitare tutte senza dover ogni volta reinserire i propri dati, cosa che sarebbe impossibile se il server non riuscisse a registrare in qualche modo il fatto che l’utente si è già fatto riconoscere e che quindi ha il permesso di visitare quelle pagine. Ed è proprio questo ciò che le sessioni ci permettono di fare. Sempre dal menù dell’area riservata è possibile accedere, attraverso un link, alla pagina registrazione che permette ad un nuovo utente di registrarsi al portale e inserire i dati della propria attività. La registrazione si articola in tre fasi: • inserimento dei dati da parte dell’utente, • riepilogo dei dati e successiva conferma, • inserimento parole chiave e fine registrazione. Il form per la registrazione di un nuovo utente - 66 - Nella prima pagina è presente un form che, dopo aver letto una breve nota informativa, l’utente deve compilare almeno nei suoi campi obbligatori (quelli contrassegnati dal classico asterisco). Il form è suddiviso in due parti, la prima, che possiamo chiamare di “anagrafica”, richiede di inserire tutti quei dati che verranno visualizzati nella scheda dell’azienda di primo livello, mentre la seconda richiede i dati necessari all’utente per poter entrare nella propria area riservata e l’indirizzo email al quale verranno riepilogati tutti i dati memorizzati. Sempre in questa parte è possibile scegliere di ricevere, una volta che l’iscrizione è avvenuta, tutte le informazioni sulle diverse modalità di inserimento (utenti di livello due e tre) e dei relativi prezzi. Quando l’utente ha terminato l’inserimento e conferma il tutto premendo il relativo pulsante, dopo aver controllato che nel database non esista un altro username identico, si apre una seconda pagina, conferma, che mostra tutti i dati inseriti, di modo che colui che sta effettuando la registrazione possa controllare che non ci siano errori di battitura ed eventualmente tornare alla schermata precedente per poterli correggere. Se tutti i dati inseriti risultano corretti, dopo la conferma da parte dell’utente, inizia l’ultima fase, nella pagina fine_registrazione, che consiste in quattro fasi: 1. memorizzazione di tutti i dati inseriti dall’utente nel database; 2. richiesta all’utente se desidera inserire adesso le parole chiave per la ricerca della propria ditta; 3. invio della mail con il riepilogo dei dati di accesso all’indirizzo e-mail inserito dall’utente all’inizio della registrazione; 4. invio di una mail ai gestori del sito con la segnalazione della registrazione di un nuovo utente. Per quanto riguarda la seconda fase se l’utente non desidera farla al momento della registrazione può rimandare il tutto a quando accederà nell’area riservata. In caso contrario gli basterà compilare il modulo presente nell’ultima pagina della registrazione con le parole chiave che desidera associare alla propria ditta, il quale passerà tutti i dati ad una nuova pagina denominata salva_parole che li memorizzerà all’interno del database. La mail che viene inviata automaticamente all’utente contiene il riepilogo dei propri dati di accesso e, se durante la registrazione ha - 67 - segnalato di essere interessato alle altre modalità di inserimento, anche una parte contenente le informazioni richieste ed il relativo listino prezzi. Ogni e-mail inviata dal portale ad un utente contiene un’informativa sulla privacy in base al Decreto legislativo 196/2003 a cui ogni azienda italiana deve adempiere se non vuole ricorrere in sanzioni amministrative e penali. L’altra e-mail, quella che viene inviata ai gestori del sito, segnala che un nuovo utente si è registrato e ne segnala la denominazione sociale e tutti i dati, comprese le parole chiave inserite. La pagina riservata ad ogni utente registrato, chiamata area_utente, prima di tutto controlla che la variabile di sessione sia stata creata ed abbia il giusto valore, e se così è, significa che l’utente ha effettuato il login con un username e una password validi, altrimenti non permette la visualizzazione della pagina ma visualizza un messaggio di allerta e rimanda alla pagina principale del sito. Fondamentalmente, la pagina riservata contiene un piccolo menù e la spiegazione di ciò che l’utente può fare in quest’area: visualizzare ed eventualmente modificare i propri dati, vedere le informazioni riguardanti le altre modalità di inserimento e il listino Il menù dell’area utente prezzi, contattare gli amministratori del portale ed uscire dall’area riservata. Quanto un utente esce dall’area a lui riservata, richiamando la pagina chiamata logout, vengono “distrutte” tutte le variabili di sessione e viene ricaricata la pagina principale del portale. In questo modo anche se l’utente cercherà di rientrare in quelle pagine manualmente, inserendo l’url completo nella barra degli indirizzi, riceverà un messaggio di errore se non avrà di nuovo effettuato il login. Nella pagina area_utente_dati vengono visualizzati tutti i dati, a seconda del livello e da qui, ma anche dalla pagina di modifica, è possibile richiamare una piccola finestra da dove è possibile modificare la password del proprio account. La modifica avviene allo stesso modo della richiesta della password, con l’unica differenza che in questo caso la password è scelta dall’utente. Se un utente, dopo aver visualizzati i propri dati, desidera anche modificarli, può farlo premendo l’apposito bottone che apre la pagina area_utente_modifica in tutto e per tutto identica alla precedente, ma con i propri dati visualizzati in campi di testo che è possibile modificare. Da qui, e dalla - 68 - pagina precedente, facendo click sull’apposito link si accede alla pagina area_utenet_pc che permette la modifica delle parole chiave. E’ sempre in questa pagina che accede l’utente al quale è stato aumentato il livello, a lui saranno visualizzati i campi aggiuntivi vuoti da compilare. Poiché, per rispettare il layout grafico, il logo e le foto devono avere delle dimensioni prestabilite, al momento dell’inserimento verrà fatto un controllo che segnalerà, in caso di misure non conformi, il problema all’utente e non salverà i dati all’interno del database. Se tutto è corretto, invece, vengono memorizzati i dati e richiamata la pagina di visualizzazione in modo da far vedere all’utente le modifiche effettuate. In ogni caso, prima della visualizzazione, viene inviata automaticamente una mail ai gestori del portale con tutti i nuovi dati dell’azienda. Sempre in quest’area è possibile vedere tutte le informazioni riguardo le varie modalità di inserimento e i relativi prezzi nella pagina area_utente_listino, e contattare gli amministratori del portale tramite un form presente nella pagina area_utente_contatti. Dopo aver scelto il motivo della comunicazione (richiedere informazioni, cancellare i propri dati, usufruire di una modalità a pagamento o segnalare un malfunzionamento) l’utente compila l’area di testo con la comunicazione vera e propria e segnala se vuole la risposta all’indirizzo e-mail con quale ha effettuato la registrazione oppure un altro indirizzo inserito sul momento e la invia tramite una mail generata dalla pagina agli amministratori del portale con tutte le informazioni inserite. Esempio di e-mail di richiesta informazioni 3.4.4 LA GESTIONE DEI BANNER I banner pubblicitari presenti nelle pagine della ricerca per categoria vanno visualizzati a destra dell’elenco delle ditte presenti, hanno dimensione prefissata e possono essere visualizzati con un ordine prestabilito (deciso dagli amministratori del portale) o in un ordine casuale. Sono sempre gli amministratori ad inserirli - 69 - all’interno del database dall’area a loro riservata. La visualizzazione funziona in questo modo: quando un utente apre la pagina di ricerca per categoria viene controllato nel database se sono presenti dei banner associati a quella categoria. Se non sono presenti viene visualizzata un’immagine che segnala che lo spazio è disponibile per chiunque voglia farsi pubblicità, altrimenti vengono selezionati in un ordine casuale. Poi si controlla che non sia già stato prestabilito un ordine e se così non è vengono visualizzati in ordine casuale, altrimenti si visualizzano prima quelli ordinati, poi i rimanenti in ordine casuale. Tutti i banner fanno riferimento al sito web memorizzato nell’apposito campo all’interno del database. Se l’utente è interessato ad Banner visualizzati in ordine casuale inserire un banner lo può fare cliccando sull’immagine relativa che apre la pagina infbanner che, dopo aver presentato i prezzi all’utente, gli permette di compilare un form che crea in automatico una mail con tutti i dati inseriti dall’utente e li invia automaticamente agli amministratori del portale. In questo form, come in tutti gli altri presenti all’interno del portale viene fatto un controllo sull’indirizzo e-mail per controllare che non ci siano scritti caratteri a caso. Lo script ricerca all’interno dell’indirizzo inserito il carattere “@” e controlla anche che alla fine ci sia un “.” seguito da it, com, biz, ecc. Se non trova errori di sorta permette l’invio della mail, altrimenti segnala l’errore all’utente e blocca l’invio. 3.4.5 LE VETRINE DELLE OFFERTE E DELL’USATO Le vetrine delle offerte e dell’usato devono contenere tutte le inserzioni che chiunque, privato o ditta che sia, può inserire nel nostro portale per vendere beni e/o servizi. Le due pagine si chiamano rispettivamente vetrina_offerte e vetrina_usato e sono identiche tranne per il fatto che si riferiscono a due tabelle diverse sul database. Quando una pagina viene aperta la prima cosa che viene fatta è il controllo sulle scadenze delle inserzioni, se la data di scadenza è antecedente alla data odierna viene modificato un campo della tabella contente l’annuncio in modo che questo non verrà - 70 - visualizzato, poi vengono visualizzate tutte le inserzioni, rigorosamente in ordine di inserimento. In fondo alla pagina è possibile accedere a tutte le informazioni e i prezzi per inserire il proprio annuncio e per modificare o cancellare il proprio se già lo si ha. L’inserzione consta dei seguenti elementi: un’immagine di dimensione massima 150x150 pixel, una descrizione di massimo 350 caratteri, il nome dell’inserzionista, l’indirizzo e-mail e il telefono (facoltativo), come è facile intuire dall’immagine sottostante. Esempio di layout grafico di un’inserzione nella pagina Vetrina Offerte Per entrambe le pagine ho dovuto creare altri due file chiamati fotovetr e fotovetrus per visualizzare le foto che sono sempre memorizzate all’interno del database. I clienti registrati al portale, di secondo e terzo livello, possono inserire e modificare le proprio inserzioni gratuite direttamente dall’area pagina utente. Aprendo la area_utente_inserz la prima volta, viene visualizzato un messaggio che informa l’utente che le proprie inserzioni non sono attive e tramite un pulsante gli permette di attivarle. Se l’utente attiva i propri spazi gli vengono visualizzate le due inserzioni con tutti i campi vuoti La gestione delle inserzioni per un cliente del portale - 71 - che può modificare tramite la pagina area_utente_modins dove gli appaiono tutti i campi di testo vuoti da compilare. Una volta inseriti, cliccando sull’apposito pulsante, può salvare tutti i dati nel database e da quel momento la propria inserzione è attiva e visibile nella vetrina corrispondente. Sempre da questa pagina può decidere di cancellare la propria inserzione se, ad esempio, l’offerta è scaduta e non ha altro con cui rimpiazzarlo. Per gli utenti che, invece, non sono clienti del portale, ma desiderano acquistare solamente uno spazio a tempo ho creato altre tre pagine, la prima vetrina_informazioni contiene tutte le informazioni riguardo a come poter effettuare le inserzioni e i relativi prezzi, la seconda vetrina_acquisti permette all’utente di compilare il modulo per acquistare uno spazio e la terza vetrina_login permette all’utente di identificarsi e modificare o cancellare la propria inserzione. Quando un utente desidera acquistare uno spazio, come prima cosa deve identificarsi come un utente già registrato o un nuovo utente, questo perché per coloro che sono già registrati non sarà necessario reinserire tutti i dati di identificazione, bensì solamente il nome utente. Per tutti gli altri sarà invece necessario inserire tutti i propri dati. In questa pagina, il form permette anche di calcolare il prezzo da pagare per la propria inserzione in base al valore del bene e alla durata. Cliccando sull’apposito bottone verrà visualizzata una scritta che segnala il prezzo da pagare. Lo script che in base ai dati inseriti calcola il prezzo da pagare. Una volta terminata la registrazione, e controllato che lo username inserito non sia già presente nel database (per gli utenti non registrati in precedenza) oppure che esista già (per quelli già registrati) vengono salvati tutti i dati nel database e vengono inviate due e-mail, una all’utente che contiene, tra l’altro, le informazioni riguardo alle possibili modalità di pagamento (carta di credito o bonifico bancario) e una ai gestori del portale per informarli della richiesta da parte dell’utente. Una volta che sarà stato effettuato il pagamento, gli amministratori, nella loro area riservata, - 72 - attiveranno lo spazio all’utente che, informato tramite e-mail dell’avvenuta attivazione e messo a conoscenza della password dell’inserzione, da quel momento potrà inserire la propria inserzione. Nella pagina vetrina_login l’utente deve inserire la vetrina (offerte o usato) e lo username scelti al momento della registrazione e la password ricevuta via e-mail, se tutti i dati sono corretti può accedere alla pagina vetrina_modifica altrimenti viene rimandato un messaggio all’utente che segnala che i dati inseriti non sono corretti. Quando l’identificazione avviene in maniera corretta si apre una pagina nel quale viene visualizzata la propria inserzione. Da qui è possibile inserirla, modificarla o cancellarla. La prima volta che l’utente entra in questa pagina può modificare tutti i campi dell’inserzione (tranne il prezzo) e memorizzare tutti i dati. Al momento in cui l’utente decide di salvare il tutto, viene calcolata la data di scadenza in base alla durata scelta al momento dell’iscrizione. Da questo momento l’utente potrà continuare a modificare la propria iscrizione ma non gli sarà possibile, in alcun modo, modificarne la scadenza. Il giorno dopo la data di scadenza l’inserzione verrà rimossa logicamente dal database, cioè non sarà più visibile nella vetrina corrispondente, ma rimarrà sempre memorizzata nel database. In questo modo gli amministratori potranno continuare a vederla ed eventualmente, dopo un ulteriore pagamento, ripristinarla inserendo una nuova data di scadenza, come accade quando un utente decide di cancellarla manualmente. 3.4.6 L’AREA AMMINISTRATORE In quest’area gli amministratori di VirtuaPoint devono poter fare tutto quello che gli utenti riescono a fare dal sito, in più poter controllare tutti i loro dati, poterli modificare, ecc. Per questo ho creato la pagina admin divisa in cinque macro settori: 1. gestione clienti; 2. gestione categorie; 3. gestione banner; 4. gestione inserzionisti; 5. gestione vetrine. In ogni area è poi possibile svolgere delle operazioni particolari come si può facilmente vedere dalla schermata della pagina. - 73 - Layout grafico dell’area amministrazione Come per accedere all’area riservata all’utente, anche in questa si deve effettuare il login dal piccolo menù presente nella homepage e, anche in questo caso, ho inserito un controllo su tutte le pagine dell’area tramite le sessioni per far sì che nessuna persona non autorizzata vi possa accedere. L’area “gestione clienti” l’ho realizzata con due pagine chiamate admin_clienti e admin_clienti_modins, nella prima è possibile visualizzare tutti i clienti, in ordine alfabetico, divisi per tipo (livello 3, livello 2 e livello 1) oppure effettuare una ricerca per nome. Sempre da questa pagina è possibile cancellare completamente tutti i dati dei clienti dal database, aumentare o diminuire i livelli dei clienti oppure scegliere i clienti da modificare. Quando un utente viene cancellato o gli viene cambiato il livello viene informato via e-mail all’indirizzo inserito al momento della registrazione. La visualizzazione dei clienti La modifica dei clienti La cancellazione dei clienti Menù per aumentare o diminuire il livello dei clienti (in questo caso di livello due) Alla seconda pagina vi si può accedere in due modi: o scegliendo di inserire un nuovo cliente e in questo caso sarà visualizzato un form vuoto dove sarà possibile - 74 - inserire tutti i dati di un cliente e scegliere il tipo di servizio del quale usufruirà, se livello uno, due o tre, permettendo inoltre di controllare che lo username non sia già utilizzato, oppure scegliendo il cliente da modificare dall’elenco che può essere visualizzato nella pagina precedente, in questo caso il form non sarà vuoto bensì conterrà tutti i dati del cliente, permettendo in questo modo di ampliare o modificare gli stessi. Da questa pagina sarà possibile modificare tutti i dati, compresi le password, le foto e le parole chiave. La schermata di inserimento-modifica clienti La gestione delle categorie è stata realizzata con una sola pagina, denominata admin_categorie, nella quale è possibile inserire una nuova categoria, visualizzare le esistenti, modificarne una o tutte insieme, o cancellare quelle in disuso. - 75 - Per quanto riguarda la gestione dei banner da inserire nelle varie categorie, anche in questo caso è stata necessaria una sola pagina, admin_banner, che permette di inserire un nuovo banner in una qualsiasi categoria esistente, visualizzare tutti quelli presenti nelle varie categorie, cancellare quelli che non devono essere più visualizzati e sceglierne la disposizione, se preordinata inserire o un casuale. Per ordine di visualizzazione dei banner basta numerarli a partire dal numero uno in successione, altrimenti, inserendo come valore lo zero, si La pagina per gestire l’ordinamento dei banner otterrà una disposizione dei banner all’interno della categoria completamente casuale. L’area degli inserzionisti, ovvero coloro che comprano uno spazio nelle vetrine offerte o usato, l’ho realizzata in tutto e per tutto identica alla gestione dei clienti. E’ formata da due pagine, admin_inserzionisti e admin_inserzionisti_modins. Nella prima è possibile visualizzare tutti coloro che hanno acquistato uno spazio, con i loro dati, il numero totale di spazi acquistati e le inserzioni in corso, scegliere un utente da modificare, oppure da cancellare. Come per la gestione dei clienti, anche in questo caso è possibile fare la ricerca sul nome, cognome o nome della società. Nella seconda pagina c’è un form vuoto da compilare con tutti i dati di un nuovo inserzionista, oppure se si accede a questa pagina dall’elenco degli utenti da modificare, già riempito di tutti i dati dell’utente prescelto. Visualizzazione dei dati degli inserzionisti L’ultima area, quella della gestione delle inserzioni, è anch’essa formata da due pagine, admin_vetrine e admin_vetrine_modins. Nella prima è possibile visualizzare tutte le inserzioni in attesa di attivazione, con i dati di coloro che l’hanno acquistata. Al momento dell’arrivo del pagamento, sia esso tramite bonifico bancario o carta di credito, gli amministratori semplicemente entrando in questa pagina e cliccando sul - 76 - pulsante di attivazione avvisano via e-mail l’utente e gli inviano la password per poter inserire la sua inserzione. Naturalmente il calcolo della scadenza dell’inserzione non inizia da questo momento, ma dal momento in cui l’utente inserirà i dati. Layout della pagina per attivare le inserzioni in attesa Sempre in questa pagina è possibile visualizzare tutte le inserzioni presenti nelle vetrine, con la relativa data di attivazione e scadenza, oppure scegliere quale di queste modificare o cancellare. Scegliendo l’inserzione da modificare, oppure decidendo di inserirne una nuova, si apre la seconda delle pagine di questa sezione che permette di inserire (o modificare) tutti i dati. Quando si inserisce un annuncio da quest’area, l’inserzione non presenterà data di scadenza e rimarrà attiva fino a quando non verrà disattivata da uno degli amministratori. Le ultime opzioni possibili nella gestione delle inserzioni è la visualizzazione, il ripristino o la cancellazione definitiva delle inserzioni scadute. - 77 - Provando e riprovando. Dante – Paradiso, III, 3. 3.5 LA FASE DI TEST Uno dei momenti più importanti nella realizzazione di un portale è la fase di test. Questa è indispensabile e deve essere svolta necessariamente prima della pubblicazione affinché non ci si accorga di eventuali problemi presenti una volta che gli utenti hanno già iniziato ad utilizzare il nostro servizio. Nel mio caso questa fase è stata svolta in tre tempi: 1. durante la realizzazione della pagina, per controllare che tutto funzionasse; 2. un test di tutto il portale offline; 3. un test di tutto il portale online prima di pubblicizzarlo. La prima fase è stata svolta durante tutto il tempo della realizzazione fisica delle pagine, ogni parte di codice scritto veniva testato in locale per controllare che funzionasse e che fosse compatibile e congruente con il codice presente nelle altre pagine. Il database era tenuto costantemente sotto controllo per verificare che non vi fosse una perdita di dati o un salvataggio errato. Questo test è stato sicuramente il più importante perché ha permesso di correggere gli errori che inevitabilmente si presentano durante la stesura del codice e la realizzazione del database. La seconda fase è stata svolta quando il portale era oramai quasi del tutto terminato, ed è stata fatta nel seguente modo: per una giornata intera si è testato il funzionamento di VirtuaPoint, in locale, in tutte le sue parti, per controllare che qualcosa non fosse sfuggito durante la prima fase di test che, realizzata pagina per pagina, poteva presentare delle incongruenze nell’insieme. Sono stati inseriti moltissimi dati di fantasia e sono state controllate che tutte le e-mail inviate dal portale agli utenti e agli amministratori funzionassero correttamente. In più è stato fatto testare ad una persona estranea alla sua realizzazione per valutare l’efficacia dell’interfaccia e correggere eventuali problemi di utilizzo. La terza e ultima fase è stata svolta come la seconda, con l’unica piccola, ma importante, differenza che il portale era stato caricato sul server ma non era, in ogni caso, disponibile agli utenti. Questa fase è stata svolta per controllare che non ci fossero stati problemi nel caricamento delle pagine e nell’assegnazione dei permessi per l’utilizzo del database remoto. - 78 - Terminata la fase di test è stato possibile pubblicarlo in modo che chiunque volesse potesse utilizzarlo. 3.6 LA PUBBLICAZIONE La pubblicazione del portale è stata svolta in due fasi, nella prima è stato pubblicato solo una parte del portale con una breve panoramica e introduzione ai servizi offerti per cercare di creare una piccola aspettativa e curiosità intorno a VirtuaPoint. Nella seconda è stato pubblicato l’intero portale e inseriti tutti i dati dei clienti ai quali è stato offerto il servizio gratuitamente, seguendoli ed aiutandoli, nei primi giorni di vita del portale, nel suo utilizzo. In questo modo il portale ha iniziato immediatamente a prendere vita e ad essere utilizzato. Con una corretta pubblicità e il probabile passaparola tra gli utenti che già l’utilizzano, speriamo che il portale possa iniziare a prendere piede e diventare un punto di riferimento per tutte le attività commerciali delle Marche e dell’Abruzzo e dei loro clienti. - 79 - Consummatum est. (Tutto è compiuto.) Giovanni 19,30 4. CONCLUSIONI 4.1 PUBBLICITÀ DEL PORTALE Una volta terminato il portale non possiamo lasciarlo da solo al suo destino sperando che prenda piede senza una corretta pubblicità. E oltre il già citato passaparola degli utenti che usufruiscono dei servizi gratuitamente, perché clienti Virtuacom, e lo scambio di banner con alcuni siti, è importante inserire il nostro sito nei motori di ricerca principali e cercare di farlo visualizzare nelle prime posizioni. Questo è importante perché la maggior parte di coloro che utilizzano i motori per la ricerca dei siti web normalmente non si spingono più in là della terza pagina dei risultati. La maggior parte dei motori di ricerca, nazionali ed internazionali, sono basati su agenti di indicizzazione automatica denominata “spider”, per questo è importante, e necessario, inserire i META TAGS all’interno della pagina principale del nostro portale. Questi non sono altro che informazioni contenute all’interno di un documento web ed invisibili agli utenti, a meno che non vogliano visualizzarne il codice Html, come: il programma che è stato utilizzato per realizzare la pagina, la tipologia dei contenuti del sito, la lingua in cui è scritto, in nome del webmaster e altro ancora. Ai fini della ricerca sono tre i Meta Tags importanti: description, keywords e robots. Il primo deve contenere una descrizione concisa e comprensibile degli argomenti trattati dal sito web, il secondo contiene le parole che riteniamo meglio descrivano il sito, mentre l’ultimo da l’istruzione allo spider del motore di ricerca, che viene a visitare il sito, relativamente alle pagine da indicizzare. Una giusta e accurata scelta delle parole chiave è necessaria per avere un buon posizionamento all’interno di un motore di ricerca, per questo è necessario stabilire l’argomento più attinente a ciò che il nostro sito offre e iniziare a scrivere ogni parola immaginabile che un utente potrebbe utilizzare in un motore di ricerca per trovare siti analoghi al nostro. E’ sempre bene scegliere piccole frasi di due/tre parole, magari componendo tra loro singole parole che abbiamo scritto nella lista, in quanto è - 80 - statisticamente provato che gli utenti ormai utilizzano più di una parola per le loro ricerche. Nella scelta di queste parole dobbiamo tenere conto che tutti i motori di ricerca, nel processo di valutazione delle parole chiave, tengono conto di alcuni fattori che sono: • prominenza della parola chiave; • frequenza della parola chiave; • peso della parola chiave; • posizionamento della parola chiave; • variante della parola chiave; • link popularity. Esaminiamo quindi in dettaglio ciascuno di questi fattori. La prominenza di una parola chiave rappresenta quanto questa è vicina all’inizio di una qualsiasi sezione di una pagina web. La frequenza consiste in quante volte viene ripetuta la parola chiave all’interno della pagina. Questo fattore è importante ma è da ricordare che va combinato insieme a tutti gli altri e non bisogna abusarne perché i motori di ricerca penalizzano pesantemente chi utilizza questa tecnica in maniera scorretta. Il peso di una parola all’interno di una sezione è determinato dalle volte che questa compare rispetto alla totalità delle presenti. Il posizionamento è uno degli elementi che uno spider tiene in maggiore considerazione e consiste nel dove e come una parola chiave è posizionata all’interno di una pagina web. Le parole presenti nel titolo della pagina, nelle intestazioni, nei collegamenti ipertestuali, all’inizio del documento sono tenute in maggiore considerazione rispetto a tutte le altre. La variante di una parola chiave è una sua naturale e possibile estensione (ad esempio sportivo è una variante di sport) e, ove possibile, è sempre bene utilizzare almeno una variante della parola chiave nelle varie aree che costituiscono una pagina web. La link popularity si basa sui siti che hanno inserito un collegamento al nostro sito web. I fattori che la determinano sono la qualità e il numero di siti che hanno inserito links alle pagine del nostro sito. Per raggiungere un buon valore bisogna innanzitutto indicizzare il nostro sito web sui motori di ricerca basati su directories, questi, a - 81 - differenza di quelli basati sugli spider, hanno un personale addetto che, dopo aver visionato un sito segnalato dall’utente, decidono se inserirlo o meno all’interno dei propri indici. Poi è necessario creare una rete di collegamento con altri siti, possibilmente con quelli che, per i contenuti affini al nostro, si trovano già in una buona posizione nei motori di ricerca. Come ultima caratteristica, ma non la meno importante, è necessario inserire contenuti di qualità. Tutti i consigli scritto fino ad adesso, per ottenere un buon posizionamento all’interno dei vari motori di ricerca, possono essere riassunti in 10 semplici, ma importantissime, regole: 1. NON segnalare il sito o sue pagine interne più volte. Questo perché la segnalazione continua di una stessa pagina può far sì che il sito venga “bannato” per SPAM, ovvero escluso dagli indici, che effettivamente indicizzato nei motori di ricerca. Una volta che un sito è entrato negli indici, non è necessario segnalarlo di nuovo ogni qual volta se ne modifica il contenuto perché sono gli spider che automaticamente rivisiteranno la pagina ogni intervallo prefissato di tempo. 2. Includere in ogni pagina i Meta Tags. 3. NON riempire il Meta Tag “keywords” di decine e decine di parole chiave, che magari non sono neanche attinenti ai contenuti del sito. E’ importante inserire poche, ma mirate, parole. 4. Scegliere con attenzione le parole chiave per le quali ottimizzare il posizionamento ai primi posti dei motori di ricerca, focalizzando l’attenzione su quelle più attinenti ai servizi o prodotti che il sito offre. 5. NON utilizzare tecniche per nascondere testo, perché ormai molti spider sono in grado di rilevare questa tecnica che viene considerata SPAM. 6. Scrivere sempre un testo che descriva le attività svolte dal sito, che sia comprensivo e contenga le parole chiave scelte per l’ottimizzazione. 7. In qualsiasi parte della pagina, nel testo visibile o nei Meta Tags, non inserire ripetizioni consecutive della stessa parola chiave e comunque non ripeterla più di due volte in ciascuna sezione. - 82 - 8. Cercare di stabilire scambi di URL reciproci con altri siti web, meglio ancora se della stessa categoria di appartenenza, al fine di aumentare la Link Popularity. 9. NON utilizzare lo stesso titolo in ogni pagina da indicizzare, ma variarlo in ciascuno di essi alternando le parole chiave scelte per l’ottimizzazione. 10. Essere pazienti! Non è possibile ottenere ottimi posizionamenti dall’oggi al domani, soprattutto se le parole chiave sono anche molto competitive. Tutto questo è ciò a cui mi sono attenuto per cercare di pubblicizzare al meglio possibile il nostro portale, sperando così di riuscire ad aumentare il traffico, il numero degli utenti iscritti e rendere Virtuapoint un punto di riferimento per tutti coloro che desiderano pubblicizzare la propria azienda e per coloro che invece hanno bisogno di beni e servizi vicini alla loro zona di residenza. Il saper per esperienza è maggior certezza che il sapere per ragione, né mai ragione alcuna può giungere a tanto di uguagliar l’esperienza. Paolo Sarpi – Istoria del Concilio Tridentino 4.2 CONSIDERAZIONI FINALI Arrivare al termine di un lavoro lungo e impegnativo come quello che mi è stato affidato è sicuramente confortante, ma nel contempo gratificante e soddisfacente. I mesi passati nel realizzare il portale VirtuaPoint e a redigere questa tesi sono fuggiti via in una rapidità quasi innaturale, portandosi via con sé ore di faticoso e duro lavoro ma lasciandomi un bagaglio di esperienze nel mondo lavorativo indispensabili a chiunque lo voglia affrontare a testa alta. Integrandomi in un’azienda avviata come Virtuacom ho scoperto i piaceri e le fatiche del lavoro nel campo informatico ed ho potuto notare, come già mi era stato detto all’inizio di questo corso di studi, come un esperto in questo settore sia ricercato e quindi sia molto facile trovare un lavoro gratificante e ben retribuito. Ho capito che in un mondo in continua crescita ed evoluzione, come lo è quello dell’informatica e delle tecnologie, solo chi saprà evolversi e, affamato di conoscenze, continuerà a divorare nozioni su tutto ciò che continua a nascere ed a svilupparsi potrà svolgere un ruolo di primo piano nella vita lavorativa. - 83 - Realizzare questo portale mi ha insegnato a gestire il tempo lavorativo, a sottoporre e confrontare idee e a realizzare le proposte che mi venivano fatte. Ho imparato che, almeno nel mondo dell’informatica, un aiuto importante può venire dai forum di discussione specifici dove una comunità di esperti aiuta, gratuitamente, tutti coloro che ne fanno richiesta. Ho capito che non è necessario avere una conoscenza dettagliata dei linguaggi di programmazione che si utilizzano, ma è importante capire il procedimento logico che permette il loro corretto funzionamento, per le parole specifiche o i costrutti ci sono sempre i manuali che vengono in aiuto. Ma l’insegnamento che mi è rimasto più impresso è sicuramente che è meglio impiegare più tempo a realizzare una cosa ma farla fatta bene che realizzarla in fretta ma superficialmente. Entrare in contatto con un team come quello che mi ha affiancato durante questo progetto ha aumentato il già grande desiderio che avevo di completare gli studi ed iniziare così a lavorare in un settore che mi permetterà di conoscere e affrontare persone che hanno le mie stesse passioni e i miei stessi interessi ma ha fatto anche nascere in me il desiderio di diffondere queste conoscenze a coloro che desiderano imparare. Preparandomi ad affrontare altri due anni di studi universitari, sono sicuro che il bagaglio accumulato con questa esperienza mi affiancherà aiutandomi giorno dopo giorno sia nella preparazione degli esami, sia in prospettiva del futuro lavoro che svolgerò dopo il conseguimento della laurea specialistica. - 84 - 5. ALLEGATI 5.1 LE SCHERMATE PRINCIPALI DEL PORTALE La pagina principale: index - 85 - La vetrina dell’usato con due inserzioni in corso - 86 - La pagina per la registrazione gratuita - 87 - La categoria “Alimentari e Bevande” con sei vetrine di livello 3 e due di livello 1 - 88 - La categoria “Assistenze” con un banner pubblicitario in alto a destra - 89 - Ricerca per parola chiave “edilizia” - 90 - La pagina personale della ditta di livello 3: “La cantina di Epicuro” - 91 - La pagina di visualizzazione dei propri dati della ditta di livello 3: “Edizioni Nautiche Guglielmi”… - 92 - … e la relativa pagina di modifica dei dati - 93 - L’area amministratore La pagina per aumentare i livelli degli utenti registrati gratuitamente - 94 - La pagina per cancellare logicamente le inserzioni in corso La pagina per modificare le inserzioni in corso - 95 - 6. BIBLIOGRAFIA Adobe System Incorporated [http://www.adobe.it/] AMD Planet [http://www.amdplanet.it/] Ansa [http://www.ansa.it/] Architetture dei calcolatori elettronici, Giacomo Bucci – McGraw Hill Audiweb [http://www.audiweb.it/index.php] AZPoint – MySQL per tutti [http://www.azpoint.net/articoli.asp?id=709] Basi di dati. Modelli e linguaggi di interrogazione, Paolo Atzeni & Stefano Ceri & Stefano Paraboschi & Riccardo Torlone – McGraw Hill 8. Encarta 9. Freephp.it – Guida base al Php, Gianluca Gillini 1. 2. 3. 4. 5. 6. 7. [http://freephp.html.it/guide/lezioni.asp?idguida=10] 10. Freephp.it – Guida pratica al Php, Alberto Mucignat [http://freephp.html.it/guide/lezioni.asp?idguida=2] 11. Freephp.it – Guida pratica Php/MySql, Francesco Bonetto [http://freephp.html.it/guide/lezioni.asp?idguida=8] 12. Google [http://www.google.it] 13. Glossario informatico [http://glossario.freeonline.it/glossario.php] 14. Histoire de l’Informatique – L’Enic 1946 [http://histoire.info.online.fr/eniac.html] 15. Html 4 flash, Tiziano Daniotti – Apogeo 16. Html.it – Guida Html, Wolfgang Cecchin [http://www.html.it/guida/] 17. Html.it – Guida Javascript, Ilario Valdelli [http://www.html.it/javascript/corso/index.html] 18. Html.it – Guida Javascript per esempi, Wolfgang Cecchin [http://www.html.it/javascript/javascript_esempi/index.html] 19. Html.it – Guida SQL, Lucio Benfante [http://www.html.it/sql/] 20. I dossier di html.it: portali, Guerino Scialli [http://www.html.it/06_portali/index.htm] 21. Il grande dizionario Garzanti della lingua italiana 22. Il software – Linguaggi di scripting lato client: alla scoperta di Javascript [http://www.ilsoftware.it/articoli.asp?ID=1730&pag=0] 23. Internet e Reti di Calcolatori, James F. Kurose & Keith W. Ross – McGraw 24. 25. 26. 27. 28. 29. Hill Internet 2 [http://www.internet2.edu] Internet 2004, Marco Calvo & Fabio Ciotti & Gino Roncaglia & Marco A. Zela – Laterza Introduzione a Macromedia Studio MX – Macromedia Le interfacce uomo-macchina, M. P. Penna & E. Pessa – Di Renzo Editore Lemma – Navigare nelle parole [http://www.educational.rai.it/lemma/lemma.htm] LevySoft [http://www.levysoft.it/archivio/2005/02/02/oops-ho-dimenticato-la-password-di- admin-di-wordpress/] 30. Libero [http://www.libero.it] 31. Linux & Open Source [http://www.nosoftwarepatents.com/it/m/dangers/linux.html] 32. L’Universale. Citazioni. 33. Macromedia Italia [http://www.macromedia.com/it/] 34. Manuale PHP [http://www.php.net/] 35. Manuali.net – Corso PHP, Domenico Nappo 36. Mytech [http://www.mytech.it/home/index.hp] - 96 - 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. Mytarg.org [http://www.mytag.org/] Newton n° 7 Luglio 2005 – Che Giove ci protegga!, Cristina Valsecchi Notepad++ [http://notepad-plus.sourceforge.net/it/site.htm] Pagine Web dinamiche con PHP e MySQL, David Tansley – AddisonWesley PHP Free – Guida base al PHP [http://freephp.html.it/guide/index.asp] PHP Free – Script PHP [http://freephp.html.it/script/index.asp] ProHtml.it – Web design: Usabilità [http://pro.html.it/lista_articoli.asp/idcat_37/] Quotidiano.net [http://www.quotidiano.net] RDS [http://www.rds.it/] RFC 1321 [http://www.faqs.org/rfcs/rfc1321] Sitebylara – Guida all’indicizzazione e posizionamento sui motori di ricerca [http://www.sitebylara.it/guida-indicizzazione.html] 48. Software Zone – Adeguarsi alla legge 196/2003: guida pratica [http://www.swzone.it/articoli/docprogsic/] 49. Tgcom – Il web raddoppia, nasce Internet 2 [http://www.tgcom.it/tgtech/articoli/articolo201699.shtml] 50. Tiscali [http://www.tiscali.it] 51. Trading on-line – Silvio Porcellana [http://www.portalino.it/banks/tesi/porcellana/trading.html] 52. TuxJornal – PHP: guida alla programmazione, Massimo Mirra [http://www.tuxjournal.net/php1.html] 53. VersionTracker – Webmin 1.121 [http://www.versiontracker.com/dyn/moreinfo/macosx/15800&vid=122083] 54. Virgilio [http://www.virgilio.it] 55. Virgilio Community [http://c6.community.virgilio.it/home/index.html] 56. Vodafone [http://www.190.it] 57. W3C – HTML 4.01 Specification [http://www.w3.org/TR/html401/] 58. Wikipedia, l’enciclopedia libera [http://it.wikipedia.org/wiki/Pagina_principale] - 97 - Cercando le parole si trovano i pensieri. Joseph Joubert – Pensieri. 7. GLOSSARIO Banner: immagine fissa, o in movimento, atta a reclamizzare un prodotto o un servizio, collocata in punti strategici della pagina web e collegata direttamente al sito dell’azienda inserzionista. Blog: contrazione di weblog (vedi). C: linguaggio di programmazione sviluppato nel 1972 da Dennis Ritchie dei Bell laboratories, è un linguaggio compilato di programmazione strutturata di alto livello che contiene istruzioni di basso livello per il controllo diretto dell'elaboratore. Comprende un piccolo set di funzioni già realizzate, dipendenti dal tipo di macchina, e un gran numero di funzioni indipendenti dalla macchina, contenute in librerie accessibili attraverso i programmi. C++: un'estensione object-oriented (orientata agli oggetti) del linguaggio di programmazione C, sviluppata da Bjorne Stroustrup nei primi anni Ottanta, presso i Bell Laboratories. Il C++ mantiene tutte le caratteristiche del linguaggio C, integrandole con la gestione degli oggetti. C6: C6 Messenger è un programma gratuito che ti permette di chattare in tempo reale con altri utenti. Si può chattare in privato, nelle stanze di sistema o nelle stanze create dagli utenti. CGI: acronimo di Common Gateway Interface, è una tecnologia standard usata dai web server per interfacciarsi con applicazioni esterne. Ogni volta che un client richiede al web server un url corrispondente ad un programma CGI, il server lo esegue in tempo reale, generando dinamicamente informazioni. CMS: Content Management System. Sistema per la gestione dei contenuti di un sito Web, permette di separare i contenuti (gestiti attraverso database) dall'impaginazione grafica del sito, e offre specifici ambienti - utilizzabili di norma anche via Web - per la scrittura e la pubblicazione dei contenuti stessi. Feedback: messaggi e valutazioni, sia positive che negative, lasciate dagli utenti a determinati venditori e a disposizione di tutti, in genere ai nuovi acquirenti. Fibra ottica: linee di trasmissione della radiazione elettromagnetica, costituite da materiali dielettrici con alto indice di rifrazione, ad esempio vetro. Il segnale da trasmettere, immesso a un'estremità della fibra, si propaga al suo interno con perdite di intensità molto ridotte. File sharing: è la condivisione di file all'interno di una rete comune. Può avvenire attraverso una rete con struttura client-server oppure peer-to-peer. GPRS: General Packet Radio Services. Standard per la trasmissione dati attraverso sistemi di telefonia cellulare di seconda generazione, consente - nelle sue implementazioni da parte dei principali operatori italiani - il raggiungimento di velocità di connessione attorno ai 28.800 bps (sono comunque teoricamente possibili velocità anche maggiori). Hash: nella sua accezione più comune, si riferisce ad una funzione univoca operante in un solo senso (ossia, che non può essere invertita) atta alla trasformazione di un testo in chiaro e di lunghezza arbitraria in una stringa di lunghezza relativamente limitata. IMP: acronimo di Interface Message Processors (processore di interfaccia messaggi) furono i primi commutatori di pacchetto costruiti con la nascita della rete. - 98 - Instant messaging: sistema che permette, una volta definita una lista di corrispondenti, di essere informati della loro eventuale presenza in rete, e - volendo - di interagire con loro in tempo reale, scambiando file, avviando una sezione chat e utilizzando altri servizi di interazione sincrona e asincrona. Internet banking: servizi bancari offerti tramite internet come, ad esempio, visualizzare l’importo del proprio conto corrente, richiedere l’estratto conto, ecc. Java: un linguaggio di programmazione per applicazioni distribuite in Internet, sviluppato a partire dal 1995 dalla Sun Microsystems. È un linguaggio orientato agli oggetti, simile al C++, ma più semplice, interpretato, indipendente dall'architettura e quindi multipiattaforma. I programmi scritti in Java possono essere eseguiti su personal computer e accedere a oggetti per mezzo di indirizzi URL (Uniform Resource Locator) come se fossero sul personal computer stesso. Java permette di distribuire codice privo di virus e sicuro, utilizzabile su qualsiasi macchina che possieda l'appropriato interprete; consente di realizzare siti Internet dalle prestazioni elevate, caratterizzati da un alto livello di interattività. Layout: schema dell’organizzazione di un elemento hardware o software. Macro: insieme di indicazioni, azioni o istruzioni memorizzate e richiamabili per mezzo di una parola chiave o di una singola istruzione. Ciò elimina la ribattitura frequente, riduce le possibilità di errore nella battitura stessa e permette agli utenti che non hanno familiarità con un programma di richiamare gruppi di istruzioni preregistrate da persone più esperte. Mailing list: lista di utenti interessati allo scambio di informazioni su un argomento comune, utilizzando la posta elettronica. Ogni messaggio spedito alla lista viene distribuito automaticamente a tutti gli utenti che ne fanno parte. Message digest 5 (MD5): è un algoritmo in grado di associare un valore esadecimale di 32 caratteri ad una stringa di testo con le seguenti caratteristiche: • ha una lunghezza fissa di 128bit, • è praticamente impossibile trovare due messaggi m1 ed m2 che restituiscono lo stesso codice, • non è possibile, partendo dal valore ottenuto, risalire all’originale. MIME: il Multipurpose Internet Mail Extensions è un protocollo internet che permette ai dati, come ai video, suoni o file, di essere trasmessi tramite la posta elettronica senza dover prima essere convertita in formato ASCII; questa operazione viene compiuta mediante l’uso di vari tipi di MIME, che descrivono il contenuto del documento (i MIME TYPE). Multitasking: modalità di funzionamento offerta da un sistema operativo capace di svolgere più compiti contemporaneamente. Netscape Communications Corporation: azienda produttrice di software con sede a Mountain View, in California, nota soprattutto per Navigator, il programma di navigazione in Internet che permette l'esplorazione del World Wide Web tramite un'interfaccia grafica utente. Newsgroup: gruppo di discussione tematico accessibile attraverso Internet. La partecipazione a questo tipo di conferenze è aperta a tutti e avviene attraverso specifici programmi (detti newsreader). Open source: (termine inglese che significa sorgente aperto) indica un software rilasciato con un tipo di licenza per la quale il codice sorgente è lasciato alla disponibilità di eventuali sviluppatori, in modo che con la collaborazione (in genere libera e spontanea) il prodotto finale possa raggiungere una complessità maggiore di quanto potrebbe ottenere un singolo gruppo di programmazione. L'open source ha ovviamente tratto grande beneficio da internet, e spesso si lega a principi ideali di gratuità. - 99 - Pacchetto: nelle reti di calcolatori, i dati da trasmettere sono suddivisi in segmenti chiamati pacchetti. Normalmente, i pacchetti hanno una dimensione massima. Nel caso il messaggio da trasmettere sia più lungo, viene segmentato in più pacchetti. Peer to peer (P2P): categoria di strumenti che consentono lo scambio diretto di file e informazioni fra due utenti, senza la mediazione di un server centrale. Strumenti P2P sono molto utilizzati, ad esempio, per lo scambio di file musicali in rete. Pop-up: i banner pop-up sono una forma di pubblicità presente in Internet con lo scopo di aumentare la visibilità di alcuni prodotti o notizie. Si ha un popup quando alcuni siti aprono una nuova finestra del browser contenente il messaggio pubblicitario. La finestra pop-up viene spesso generata da un JavaScript, ma esistono altri mezzi per ottenere lo stesso risultato. Portale: sito Internet che offre una 'porta d'ingresso' alla rete ricca di servizi per gli utenti, link, notizie di attualità, strumenti di ricerca, proponendosi come guida e pagina di partenza per la navigazione sul Web. RFC: un Request for Comments è un documento che riporta specifiche o informazioni della comunità Internet. Gli RFC furono inizialmente pubblicati nel 1969 come parte del progetto Arpanet. RFC Editor è il manutentore degli RFC ed è responsabile della loro edizione e ciclo di vita. Rete neurale: è un modello matematico di processamento delle informazioni, che cerca di simulare il funzionamento dei neuroni all'interno di un sistema informatico. Può essere composta sia da programmi che da hardware dedicato. Router: nella tecnologia delle reti informatiche, un router in inglese letteralmente instradatore, è un dispositivo di rete che si occupa di instradare pacchetti tra reti diverse ed eterogenee. Scripting: descrizione delle azioni richieste mediante opportuni linguaggi di programmazione, detti appunto linguaggi di scripting. Il programma, detto script, definisce il controllo delle operazioni richieste al calcolatore. Spesso progettati per l'uso interattivo, e con molti comandi eseguibili individualmente di complessità anche elevata, gli script vengono spesso usati per compiti a singola passata, tipicamente di tipo amministrativo o di utilità. Il codice degli script è tipicamente contenuto in file di testo e vengono interpretati. In alcuni casi vengono compilati ad ogni esecuzione. Spider: conosciuto anche come Web Spider o Web Crawler è un programma che passa in rassegna il World Wide Web in un modo metodico e automatizzato. E’ un tipo di bot (programma o script che automatizza delle operazioni tipicamente eseguite da umani) che non mantengono solamente una copia di tutte le pagine visitate per poi successivamente analizzarle – per esempio come un motore di ricerca – ma le indicizzano per rendere la ricerca più veloce e precisa. Standard Generalized Markup Language (SGML): standard internazionale per la creazione di documenti testuali in formato elettronico. Messo a punto nel 1986 dall’ISO (International Organization for Standards), non è un vero e proprio linguaggio, ma un metalinguaggio, un sistema di regole e criteri formali per la rappresentazione di un testo. Diversi linguaggi specifici si ispirano ai criteri SGML, primo fra tutti l’HTML, largamente impiegato per la creazione di documenti pubblicati nella rete Internet. Structured Query Language (SQL): è un linguaggio di programmazione per database usato per interrogare, aggiornare e gestire database relazionali, standardizzato dall'American National Standards Institute (ANSI). Può essere usato per la formulazione di domande interattive o per l'inserimento di specifiche istruzioni per la manipolazione dei dati all'interno di un programma applicativo. Lo standard SQL contiene anche componenti per definire, modificare, controllare e proteggere dati. Esso si presta all'uso sia da parte di tecnici, sia di utenti comuni. - 100 - Ticker: oggetti grafici realizzati in Java da inserire nelle pagine web nelle quali scorrono i titoli delle ultime notizie. Sono sempre collegati ad un sito di riferimento. UMTS: Universal Mobile Telephone System. Standard per la comunicazione dati capace di integrare, in maniera trasparente per l'utente, infrastrutture di comunicazione via etere, sia cellulari sia satellitari, e via cavo. Permette velocità di trasferimento dati fino a 2 Mbps, sia in ricezione sia in trasmissione, e costituisce la tecnologia utilizzata per la telefonia mobile di terza generazione. Web economy: con il termine "Web Economy" si indica il mondo economico, e il business correlato, legato alle nuove tecnologie informatiche e telematiche su Internet. I punti cardine su cui si basa la Web Economy non sono tanto i beni materiali quanto immateriali: idee innovatrici, bene/informazione. Weblog: tipologia particolare di siti, in genere - ma non necessariamente - personali, costruiti a partire da messaggi (post) organizzati cronologicamente, con i più recenti in testa, e gestiti di norma attraverso un apposito sistema di Content Management (CMS) che semplifica la scrittura e la pubblicazione dei messaggi stessi. Webmail: siti che offrono la possibilità di accedere alle proprie e-mail e scriverne di nuove via web, tramite browser, e senza il bisogno di programmi dedicati. World Wide Web Consortium: Nell'ottobre del 1994 il papà del Web Tim-Berners Lee fondò al MIT (Massachusset Instutute of Technlogy), in collaborazione con il CERN, il laboratorio dal quale proveniva, un'associazione di nome World Wide Web Consortium (abbreviato W3C o W3), con lo scopo di migliorare gli esistenti protocolli e linguaggi per il WWW e di aiutare il Web a sviluppare tutte le sue potenzialità. XHTML: (acronimo per Extensible HyperText Markup Language) nasce ufficialmente il 26 gennaio 2000 come raccomandazione W3C, e può essere definito sostanzialmente una riformulazione di HTML 4 come applicazione XML 1.0, ovvero come linguaggio definito a partire dalle specifiche XML. Il linguaggio prevede un uso più restrittivo dei tag HTML; solo la struttura della pagina è scritta in XHTML, mentre il layout è imposto dai cosiddetti CSS (Cascading Style Sheets, ovvero fogli di stile gerarchici). HTML è, a sua volta, un'applicazione particolare di SGML, linguaggio di markup esistente da tempo ed estremamente flessibile. XML: formato per documenti ipertestuali derivato dall’SGML, ideato specificamente per le pagine Web. Sviluppato dal W3C (World Wide Web Consortium, associazione internazionale di aziende che operano nella rete Internet), ha la caratteristica di consentire ai propri programmatori la creazione di tag personalizzati. - 101 -