70
ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA FACOLTA’ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di laurea in Scienze di Internet Laboratorio di Tecnologie Web Conversione Automatica di Specifiche Pagine web in Immagini Tramite Ambienti virtuali Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo Prof. Fabio Vitali Anno Accademico 2004/2005 Sessione II

ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Embed Size (px)

Citation preview

Page 1: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA

FACOLTA’ DI SCIENZE MATEMATICHE, FISICHE E NATURALI

Corso di laurea in Scienze di Internet

Laboratorio di Tecnologie Web

Conversione Automatica di Specifiche Pagine web in Immagini Tramite Ambienti virtuali

Tesi di laurea di: Paolo Pancaldi

RelatoreChiar.mo Prof.

Fabio Vitali

Anno Accademico 2004/2005 Sessione II

Page 2: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Ringrazio Familiari, Amici, Compagni di corso. Ognuno di loro, in questi anni, mi ha sostenuto a suo modo con

frasi, gesti, sguardi, lacrime e silenzio.

Ringrazio il Professore Fabio Vitali per il prezioso aiuto.

2

Page 3: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Indice

CAPITOLO 1: Introduzione 5 CAPITOLO 2: Standard & Accessibilità 13

2.1. Accessibilità 13

2.2. La nascita del problema: Browser War 14

2.3. Esigenza di accessibilità 19 2.4. Principali bug di progettazione 20

2.5. Le soluzioni attuali 21

2.5.1. Movimenti ed organizzazioni 212.5.2. Software di testing 23

2.6. Confronti con StarBrowser 26

2.6.1. Browsershots.org 262.6.2. Browser Photo 27

CAPITOLO 3: Il Progetto CASPITA 29

3.1. Introduzione 29

3.2. StarBrowser 33

3.3. Virtual Server 38

3.4. GoBrowser 40

3

Page 4: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

3.5. Cosa rende differente la visualizzazione di una pagina 44

CAPITOLO 4: Architettura di CASPITA 45

4.1. Introduzione 45 4.2. Linguaggi di programmazione 46 4.3. Installazione 47

4.3.1. Ottimizzare il risulato finale 49 4.4. Perché Virtual Server? 50 4.5. Funzionamento generale 50 4.6. StarBrowser nel dettaglio 51 4.7. Problemi incontrati durante lo sviluppo di StarBrowser 53

4.7.1. Login automatico 534.7.2. Salvataggio psw di rete 534.7.3. Compatibilità tra SO e applicazioni 554.7.4. Shutdown 55

4.8. Subroutine e Funzioni principali 56 4.9. File batch e GoBrowser 59

CAPITOLO 5: Conclusione 63 Bibliografia 67

4

Page 5: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

CAPITOLO 1

Introduzione

Scopo del progetto CASPITA (Conversione Automatica di Specifiche Pagine web in Immagini Tramite Ambienti virtuali) è di rendere più semplice la vita agli sviluppatori di pagine web, creando un tool che, senza sforzo alcuno, mostri il risultato finale del loro lavoro su ogni tipo di browser. Il livello attuale di compatibilità dei browser con gli standard web è alquanto scadente, i loro sviluppatori hanno sempre cercato di realizzare prodotti primi sul mercato non tanto migliorandone le qualità tecniche come affidabilità e stabilità nel tempo, ma piuttosto potenziandone le feature e arricchendone l’aspetto grafico. Attualmente il divario tra i browser esistenti è notevolmente diminuito, questo purtroppo non è ancora sufficiente in quanto le linee guida scritte negli ultimi anni sono ancora poco specifiche e non permettono una perfetta visualizzazione su tutti i browser. Il risultato è adesso visibile agli occhi di tutti, i webmaster oggi sono costretti a realizzare pagine web con punti di riferimento insufficienti, il loro lavoro non è più scrivere semplicemente codice HTML, ma inizia dapprima con l’analisi delle necessità e del target futuro che visiterà il sito

5

Page 6: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

internet in questione, continua con la scrittura, e finisce in test ricorrenti, verifiche di compatibilità, controlli a schermo sulla resa grafica finale del sito. Il problema non si limita alle varietà di browser disponibili sul mercato, ma si estende alle diverse versioni rilasciate nel tempo per ognuno di essi. Se è vero infatti che oggi sono disponibili sul mercato un numero davvero notevole di browser, è bene tenere presente che ognuno è cresciuto nel corso degli anni attraverso lo sviluppo di molteplici sottoversioni. Come se non bastasse, i browser più famosi vengono rilasciati per diverse piattaforme come Windows, Linux, Solaris,… e ognuna di esse potrebbe mostrare potenzialmente a schermo un risultato diverso. Il web, pertanto, oggi è disseminato di utenti che utilizzano browser diversi con versioni diverse, su sistemi operativi diversi. Il problema, in realtà, non è tanto il rilascio di aggiornamenti continui per i browser presenti sul mercato, che oltretutto giova ogni volta agli sviluppatori portando miglioramenti e maggior stabilità nel tempo. La vera questione risiede nel fatto che i primi browser a essere stati diffusi non avevano alcuna linea guida comune; essi venivano sviluppati indipendentemente uno dall’altro, senza cercare un punto d’accordo su quelle che sarebbero poi diventate le linee guida da seguire per ogni sviluppatore. È importante considerare, infatti, che il supporto a molti standard che utilizziamo quotidianamente come ad esempio per la scrittura di codice HTML o CSS, nelle versioni di browser più obsolete non era nemmeno preso in considerazione. Molti sviluppatori hanno dovuto risolvere il problema lavorando per esempio soltanto sui browser di punta, altri hanno cercato di limitare le tecnologie contenute nelle pagina per renderle il più possibile compatibili con la maggior parte dei browser, altri ancora non conoscono nemmeno il problema, infine alcuni utilizzano software di terze parti (totalmente incompatibile) perché esaltano la loro creatività. Le disuguaglianze più sconcertanti fra le pagine web si vedono maggiormente nei browser ormai superati, ma è bene ricordare che essi vengono usati da decine di milioni di utenti.

6

Page 7: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

La richiesta di avere uno standard comune non arriva soltanto dagli sviluppatori affinché possano creare più agevolmente le loro pagine web, ma viene reclamata in particolar modo anche dalle persone disabili o coloro che possiedono disturbi visivi. È qui che nasce il grande desiderio di accessibilità. L’accessibilità è intesa come l'insieme delle tecnologie che permettono ad un contenuto software di essere accessibile. Ad esempio un sito web accessibile ha la possibilità di ingrandire i caratteri senza perdere struttura e chiarezza, di avere un contrasto molto alto, o ancora di essere letto con specifiche apparecchiature come gli screenreader. Il non adattarsi a questi standard, fa sì che tutti questi potenziali utenti vengano automaticamente tagliati fuori dal mercato. Realizzare pagine web che rispettano queste normative, pertanto, rende il lavoro più semplice, contiene i costi, e consente la visione a un maggior numero di utenti, indipendentemente dal dispositivo utilizzato per navigare. Questi siti saranno visibili perfettamente anche in futuro quando i browser attuali si saranno evoluti. Il problema dell’accessibilità nasce nel 91 assieme al WWW. All’epoca il browser più diffuso era Mosaic, il primo in assoluto a supportare le immagini. Col tempo ne vennero sviluppati molti altri, che ben presto lo superarono e lo soppiantarono: fu il caso di Netscape. Esso, in quegli anni, fu il browser di punta, fino alla 4 versione ebbe il monopolio dell’intero mercato. Ben presto però, Microsoft si accorse delle enormi potenzialità di internet, e da lì inizio la “Browser War”, e con lei l’abbandono a ogni tipo di standard. Tale era l’ardore dei due di superare l’avversario, che si combattevano a forza di udpate e nuove versioni. Il problema è che, nella foga generale, non valutarono la necessità di adeguarsi a standard comuni, anzi, decisero di prendere due strade nettamente diverse nello sviluppo di entrambi i browser. Da parte dei loro sviluppatori c’è sempre stato l’interesse a farli esplodere sul mercato piuttosto che a realizzare un prodotto affidabile, competitivo e soprattutto compatibile con gli standard. Tanto per incrementare il fenomeno, molti programmatori iniziarono oltretutto a inserire nelle loro pagine “Best Viewed With …” facendo

7

Page 8: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

seguire il nome del browser principalmente testato per la visualizzazione corretta della pagina. Questo ha fatto sì che moltissime pagine web venissero ottimizzate per un solo browser e non per tutti gli altri. Attualmente succede la stessa cosa con il browser più famoso della Microsoft, Internet Explorer; molti sviluppatori si limitano a testare le loro pagine con questo browser, che è sicuramente il più usato sul mercato, ma non per questo compatibile con gli altri: IE supporta di fatto gli standard del web abbastanza bene, ma le pagine web compatibili con esso potrebbero utilizzare linee guida proprietarie. Questo fa sì che moltissime pagine web oggi perfettamente visualizzabili con i browser di punta sul mercato, non siano nemmeno riconoscibili sui browser più vecchi; browser ancora oggi disponibili. Questi errori di visualizzazione sono dovuti a diversi fattori, primo in assoluto il codice con cui vengono scritte: javascript, overlapping dei tag, css, frame sono tutte caratteristiche supportate dagli ultimi browser e comunque non sempre visualizzabili allo stesso modo. Anche software di terze parti come Flash, ma anche plug-in e cookies, sono tutti servizi per il potenziamento delle capacità del browser, ma non garantiscono assolutamente la compatibilità all’indietro con i browser più vecchi o meno famosi. Per rimediare a tutto questo, il comportamento degli sviluppatori è il più disparato: alcuni creano pagine alternative e compatibili, impiegando così il doppio del capitale necessario; altri considerano solo i browser di punta, perdendo così parte di clienti. Per fortuna, intorno a tutto questa confusione, alcune organizzazioni stanno muovendosi nella direzione opposta, cercando di promuovere l’uso degli standard per garantire a chiunque completa accessibilità. Fra queste la più importante è il W3C, ma a seguire sono nate EIAO (l’European Internet Accessibility Observatory), UWEM (Unified Web Evaluation Methodology), e moltissime altre strutture per la realizzazione di software che aiutino l’utente a sviluppare secondo i migliori standard e nel pieno dell’accessibilità. Questa problematica è trattate in maniera più approfondita all’intero capitolo 2.

8

Page 9: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

La mia applicazione nasce per l’appunto dall’esigenza di universabilità, e si prefigge l’obiettivo di rendere più facile il lavoro a tutti gli sviluppatori che desiderano controllare la visualizzazione del loro sito sui diversi browser. È stato stimato [REF05] infatti che nell’ottobre 2005 la percentuale degli utenti che navigano con applicazioni diverse da Internet Explorer (il più famoso per eccellenza), sono addirittura il 25%. Questo vuole dire che sviluppare le proprie pagine basandosi interamente su questo browser, preclude automaticamente l’utilizzo delle stesse a milioni di navigatori. Senza contare che moltissimi utenti appartenenti al rimanente 75% potrebbero utilizzare comunque sistemi operativi e risoluzioni di schermo differenti fra loro. Attualmente, il modo più intuitivo per controllare la visualizzazione a schermo della pagina è installarsi manualmente tutti i browser nella propria macchina, e quindi navigare nella pagina web desiderata usandone uno per volta. Altrimenti, oggigiorno sono disponibili dei tool, per la maggior parte on line, che permettono di visualizzare la pagina in modi differenti ricostruendola secondo le esigenze dell’utente. È possibile per esempio richiedere come si presenta senza immagini (per i browser testuali), oppure senza supporto css (per le versioni di IE e Netscape inferiori alla 4), o ancora come apparirà secondo le specifiche XHTML. Il fatto è che tutto questo è possibile attraverso l’utilizzo di particolari algoritmi che generano una pagina simile a quella originale, una simulazione. Quello che invece realizza la mia applicazione è l’immagine della pagina richiesta esattamente come nella realtà. Sostanzialmente, attraverso CASPITA è possibile realizzare un file JPEG che rappresenta la una pagina in questione, effettuando lo screenshot della stessa aperta sul browser corrispondente, a sua volta installato all’interno del sistema operativo esatto. Per fare tutto questo, la mia applicazione sfrutta le potenzialità di Virtual Server. VS è un software di emulazione Microsoft, il cui scopo principale è simulare l'hardware di computer fisici, così da poter eseguire più sistemi operativi contemporaneamente. Ogni macchina virtuale è indipendente dall’altra, e ognuna può contenere qualunque sistema operativo basato su

9

Page 10: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

architettura intel (X86) anche se viene rilasciato il supporto ufficiale solo per ambienti Windows. Può essere utilizzato per fornire supporto a più sistemi operativi in uno stesso computer, consentire l’utilizzo di applicazioni meno recenti, e infine per testare il comportamento di applicazioni software su diversi ambienti. L’ultimo punto è esattamente il motivo per cui VS viene adoperato all’interno del mio progetto. Esso è composto da una diverse applicazioni: la prima, StarBrowser, è l’interfaccia nella quale vengono inserite le richieste da parte dell’utente, fra le quali l’URL su cui navigare; esso ha il compito di dialogare con Virtual Server il quale avvia le macchine virtuali che ospitano i browser. Al loro avvio, ogni sistema operativo carica un file batch che a sua volta esegue un’altra applicazione: GoBrowser. Esso ha il compito di aprire i differenti browser e caricare la pagina web indicata dall’utente. Al termine del caricamento esegue uno screenshot, salva l’immagine in una cartella condivisa e chiude il sistema operativo. L’utilizzo di StarBrowser è alquanto semplice: si inserisce l’URL designato per il test, e si selezionano i browser con cui verrà aperto. A questo punto basta cliccare su “Start”. Per una spiegazione dettagliata sul funzionamento di StarBrowser si rimanda al capitolo 3. In quello successivo, invece, si entrerà nel merito di StarBrowser, verranno affrontate più da vicino i temi principali relativi al suo sviluppo in un quadro più ampio e approfondito: verranno discussi i linguaggi di programmazione utilizzati per le diverse applicazioni, i passaggi da seguire per una corretta installazione, e come gestire le macchine virtuali al fine di ottimizzare il risultato finale. Si andrà inoltre a spiegare i motivi alla base che hanno indirizzato verso l’utilizzo di Microsoft Virtual Server, i suoi pregi e difetti, dopodiché verrà analizzato StarBrowser nel dettaglio, andando a discutere i problemi incontrati durante il suo sviluppo. Nella parte finale sarà presente un breve scorcio sulle subroutine e funzioni principali, l’analisi dell’architettura, che gestiscono e fanno funzionare l’intero progetto. Nell’ultimo capitolo tratterò invece le conclusioni, illustrando gli obiettivi raggiunti, i risultati ottenuti, e indicando infine i possibili scenari di

10

Page 11: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

sviluppo per un ipotetico proseguimento e miglioramento del progetto CASPITA.

11

Page 12: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

12

Page 13: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

CAPITOLO 2

Standard & Accessibilità

2.1. Accessibilità L’accessibilità è la possibilità di rendere accessibile i contenuti dei siti web ad utenti disabili o con attrezzature tecnologiche diverse da quelle tradizionali. In tutto il mondo esistono alcuni standard ed alcune linee guida per l'accessibilità. Le linee guida più importanti, per quanto riguarda il web, sono quelle emanate dal W3C, il consorzio internazionale per il web diretto da Tim Berners-Lee, che ha dato vita al WAI, Web Accessibility Initiative. Il WAI ha emesso le Web Content Accessibility Guidelines 1.0 [WCA99], un insieme di 14 linee guida per rendere accessibili i siti. Esse prevedono dello specifico lavoro sul codice html e css, ma anche un preciso lavoro sulla chiarezza del linguaggio, l'indipendenza dal dispositivo e la navigabilità. Negli Stati Uniti esiste una legge denominata "Section 508". Qui l’accessibilità è considerata un vero e proprio diritto civile (come di fatto è) dalle associazioni dei disabili, che dopo varie battaglie hanno ottenuto che,

13

Page 14: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

con questa normativa, tutti i siti e le intranet della governative siano conformi alle norme sull'accessibilità. Finalmente anche in Italia, il 17 dicembre 2003 è uscito il disegno di legge sull’Accessibilità delle applicazioni telematiche proposto dal Ministro Lucio Stanca, pubblicato sulla G.U. n. 13 del 17 gennaio 2004 come legge 4/2004 (“Legge Stanca”) [CIA04]. Questo significa che tutti i siti della Pubblica Amministrazione italiana e i siti che godono di finanziamento pubblico, saranno obbligati al rispetto delle linee guida sull’Accessibilità. Il motivo per cui si parla tanto di accessibilità, è il suo pregio: la possibilità di realizzare siti ed applicazioni Web in grado di essere utilizzate da tutti gli utenti indipendentemente sia dalle caratteristiche degli utenti stessi - in questo caso ci si riferisce tendenzialmente ad utenti disabili ed anziani con poca dimestichezza con le nuove tecnologie - ma anche e soprattutto indipendentemente dai media di accesso degli utenti [BB05]. Questo secondo caso include potenzialmente tutti gli utenti della Rete che accedono ai servizi e alle informazioni da postazioni non tradizionali, intendendo per postazioni tradizionali un pc con un modem di media velocità, uno schermo con una risoluzione minima di 800x600 pixel, browser maggiormente utilizzato e tutti i plug-in installati correttamente. Progettare e costruire secondo gli standard è più semplice, riduce i costi di produzione e consente di realizzare siti accessibili ad un maggior numero di persone e dispositivi per il collegamento a Internet. I siti sviluppati seguendo queste linee guida continueranno a funzionare correttamente anche quando i browser tradizionali si evolveranno e nuovi dispositivi per Internet entreranno nel mercato. 2.2. La nascita del problema: Browser War Quando nel 91 nacque il WWW, nel mercato dei browser regnava Mosaic. Esso era l’unico che aveva il supporto per le immagini, e ben presto molte organizzazioni comprarono la sua licenza per fondare altri browser. Attraverso questo codice Marc Andreesen creò Mozilla, poco dopo rinominato “Netscape Navigator” per problemi legali con la NCSA.

14

Page 15: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Netscape migliora l'utilizzo di Mosaic: supporta più connessioni tcp ip, utilizza i cookies e gestisce il tag <center>. Ben presto domina il mercato (questo dovuto anche al fatto che le sue copie di valutazione erano scaricabili direttamente on line). Nel ‘96 (vedi figura sottostante) esce Netscape 2 con supporto per javascript e frame, e con l'uscita della versione 3.0 viene aggiunto anche il supporto al "mouse-over".

Browser Timelines

Windows IE 1.0 Aug. 1995

2.0 Nov. 1995

3.0 Aug. 1996

4.0 Oct. 1997

5.0 Mar. 1999

5.5 Jul. 2000

6.0 Oct. 2001

Macintosh IE 2.0 Apr. 1996

2.1 Sep. 1996

3.0 Jan. 1997

4.0 Jan. 1998

4.5 Jan. 1999

5.0 Mar. 2000

Mosaic 1.0 Nov 1993

2.0 Nov. 1995

2.1 Jan. 1996

3.0 Jan. 1997

Mosaic Ends

Netscape 1.0 Dec 1994

1.1 Apr. 1995

2.0 Mar. 1996

3.0 Aug. 1996

4.0 Jun. 1997

4.5 Oct. 1998

6.0 Nov. 2000

7.0 Aug. 2002

Opera 2.1 Dec. 1996

3.0 Dec. 1997

3.5 Nov. 1998

4.0 Jun. 2000

5.0 Dec. 2000

6.0 Nov. 2001

7.0 Jan. 2003

Fonte: http://www.blooberry.com/indexdot/history/browsers.htm

Netscape 3 fu considerato una pietra miliare nel mercato dei browser, qualsiasi altro browser che veniva creato in quell’epoca doveva supportare ogni sua caratteristica per essere almeno preso seriamente. A questo punto esplode internet. Microsoft non si era mai fino ad allora interessato all'argomento. Bill Gates ben presto nota l'enorme potenza di internet, e si rende conto che deve recuperare il tempo perso: acquista la licenza per sfruttare Mosaic e crea Internet Explorer 1.0. IE viene rilasciato come pacchetto aggiuntivo di Windows 95. Le prime 2 versioni vengono realizzate in pochissimo tempo, piene di errori e di ridondanza nel codice: un vero pasticcio.

15

Page 16: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Con l'arrivo di IE 3, invece, Microsoft dà alla luce un browser molto buono, ma sempre non ai livelli di Netscape 3: supporta per primo i css (tecnica fino ad allora sconosciuta) ma ha ancora parecchie lacune con il mouse-over. Microsoft rende IE gratuito a chiunque; Netscape viene venduto per una somma alquanto modesta: inizia il vero conflitto. Tale è la foga di superare l’avversario, che gli update rilasciati da IE non cercano di sistemare bug e problemi importanti, bensì di aumentare le specifiche tecniche e la qualità grafica del browser. IE iniziò pian piano ad aumentare sempre più la sua quota di mercato, ma mai fino a quella dell'avversario. Questo perché internet era ancora popolata da persone che sapevano apprezzare il vero valore del browser, l'utente medio conosceva il nome "Netscape", pertanto usava quello. Fino al 96 continua quindi il dominio di Netscape (vedi figura seguente).

Fonte: http://upload.wikimedia.org/wikipedia/en/d/d9/Browser_Wars.png

Nell'ottobre del 97 esce IE4. IE cambia il flusso della guerra dei browser: è più veloce e adotta le specifiche del w3c in modo più fedele rispetto a Netscape. IE è finalmente superiore. È di questi anni l'idea di molti sviluppatori di scrivere nei loro siti “Best Viewed With Internet Explorer” o “Best Viewed With Netscape Navigator”, indicando in questo modo quale browser era stato utilizzato per testare la resa grafica del proprio sito.

16

Page 17: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Nascono così movimenti che favoriscono un browser piuttosto che un altro, e allo stesso tempo organizzazioni a favore del "Best Viewed With Any Browser". Così la guerra tra i due fornitori continua; la supremazia assoluta è un traguardo importante perché permette lo sviluppo di un nuovo mercato: le compagnie dei motori di ricerca, infatti, pagano per essere inserite come predefinite all'interno dei browser, e lo stesso accade per le home page caricate di default. Alla fine del 96 il W3C rilascia le specifiche per il CSS 1.0. I 2 fornitori lo implementano e presto decidono di estenderlo con dhtml per poterlo modificare tramite javascript. Il problema è che, fino ad allora, gli standard di javascript erano quelli implementati da Netscape 3.0, e la sua estensione non era ancora uno standard. Nasce così una scalata separata. I 2 browser vengono sviluppati con due sistemi javascript alternativi; ognuno non ha nulla ha che vedere con quello dell’altro. Passa un po’ di tempo, e Microsoft riscrive il browser da zero, lo ripulisce da codice ripetitivo, errori… e migliora notevolmente il supporto al CSS 1 rispetto all’antagonista Netscape. Anche la differenza tra i due dhtml è netta, infatti IE è rivolto principalmente a programmatori alle prime armi, più intuitivo e facile da usare, mentre quello di Netscape è specificatamente per sviluppatori esperti. A questo punto IE è nettamente superiore, ma inizialmente sono in pochi ad accorgersene, questo dovuto anche al fatto che Netscape 4 viene rilasciato (nel giugno 97) appena prima di esso e la sua documentazione è sicuramente migliore rispetto a quella rilasciata dalla Microsoft. Per tagliare il problema alla radice, Microsoft decide di installare di default IE dentro Windows; da qui inizia la sua ascesa. L’unica risposta di Netscape è quella di rimuovere il costo del proprio browser; purtroppo questa mossa le si ritorce contro in quanto la sua vendita è la principale fonte di introito. Microsoft decide di rendere IE maggiormente tollerante all'html mal scritto; questo rende i web designer più inclini a utilizzarlo come predefinito,

17

Page 18: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

trovandolo più facile per scrivere le pagine web. L'effetto fu tagliare fuori Netscape. Microsoft fu accusata di usare il suo monopolio per manipolare il mercato, ma ormai Netscape era sconfitta. La compagnia fu acquistata da AOL. Questo ha portato alla fine di una rapida innovazione nello sviluppo dei browser. Dal 2001 non sono più state rilasciate nuove versioni. IE manca ancora oggi del completo supporto per css, png e xhtml. [KOC04] Oltre a Internet Explorer, moltissimi altri browser necessitano del supporto completo ad alcuni formati di immagini; ecco di seguito una tabella che mostra come vengono supportati quelli più famosi:

Browser JPEG GIF PNG MNG TIFF SVG PDF

Amaya Si Si Si No Si Parziale No

Camino Si Si Si No No No No Dillo Si Si Si No No No No ELinks No No No No No No No Epiphany Si Si Si No No No No Galeon Si Si Si No No No No iCab Si Si Si No No No Si I.E. Parziale Si Parziale No No No No I.E. for Mac Si Si Si No No No No K-Meleon Si Si Si No No No No Konqueror Si Si Si Si Si No Si Links Si Si Si No No No No Lynx No No No No No No No Mosaic Si Si No No No No No Mozilla Si Si Si Dropped No No No

Mozilla Firefox Si Si Si No No Parziale (Gecko 1.8b5) No

Netscape Si Si Si No No No No Netscape Browser Si Si Dipende No No No No Netscape Navigator Si Si Parziale No No No No Off By One Si Si Si No No No No OmniWeb Si Si Si No Si No No

Opera Si Si Si No No Parziale (SVGT) No

Safari Si Si Si No Si No Si

SeaMonkey Si Si Si No No Parziale (Gecko 1.8b3) No

WorldWideWeb Si Si No No No No No Browser JPEG GIF PNG MNG TIFF SVG PDF

Fonte: http://en.wikipedia.org/wiki/Comparison_of_web_browsers

18

Page 19: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

2.3. Esigenza di accessibilità Realizzando browser che non supportano perfettamente gli standard, i produttori ne hanno diviso il mercato danneggiando così designer, sviluppatori e utenti finali. Senza un medesimo supporto agli standard del W3C, gli utenti che utilizzano i browser attuali, rischiano di non riuscire ad accedere ad alcune pagine web, altri a non completare transazioni, altri ancora a non vedere i siti in modo corretto. Senza contare che gli utenti veramente penalizzati sono i disabili o coloro che necessitano di attrezzature particolari. Allo stesso tempo, gli sviluppatori e gestori di siti web sono stati costretti a prendere le decisioni più diverse per rendere compatibile il loro sito: fare una copia accessibile ma meno elaborata di ogni pagina, o trascurare i browser meno utilizzati rischiando di perdere grosse fette di mercato? Qualunque soluzione prevede costi sempre molto alti. Se già realizzare siti internet comportava parecchi costi di sviluppo, con la divisione dei browser si sono aggiunte ulteriori spese. Per questo motivo molti sviluppatori hanno deciso di creare pagine non accessibili a molti visitatori, altri che conoscevano gli standard hanno ritenuto che era inutile seguire standard supportati ancora da pochi browser; altri ancora non sanno tuttora cosa sia uno standard, a cosa serva un css e perché sia utile separare le informazioni dalla grafica del sito. Di fronte a questo problema, i rimedi adottati dagli sviluppatori sono davvero i più variegati, addirittura è possibile notare su alcuni siti internet che l’incompatibilità tra browser ha generato un avanzamento all’indietro: gli sviluppatori hanno appositamente scelto di escludere tutte le tecnologie più moderne e innovative dal proprio sito per renderlo compatibile con la maggior parte dei browser, a discapito della resa grafica. Altri hanno pensato di affidarsi a editor visuali o strumenti di pubblicazione (sviluppati nel momento culminante della guerra dei browser) per creare codice principalmente ottimizzato per i browser più noti (all’epoca 4.0) e quindi carico di difetti.

19

Page 20: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Il Web si è così sommerso di rottami di siti un tempo meravigliosi ma attualmente non più navigabili con i moderni browser. A rendere la questione ancor più grave è il fatto che molti siti del genere vengono ancora realizzati. Ad aggravare ulteriormente la situazione è stata la nascita di nuove applicazioni e software di terze parti come Flash. Molti designer hanno infatti deciso di sviluppare con queste nuove tecnologie, la maggior parte dei quali pur sapendo non essere adatte agli standard W3C. Nonostante la loro grande capacità di esaltare fantasia e creatività, infatti, questi ambienti proprietari sono penalizzati da mancanza di accessibilità e non rispondono a necessità fondamentali come la possibilità di inserire segnalibri, stampare, copiare, incollare ed eseguire tutte quelle operazioni che gli utenti devono potere compiere almeno su normali siti di informazione. In risposta a questi problemi sono sorte nel web molte organizzazioni, il W3C la più importante, con l’obiettivo di promuovere i principali standard e di incoraggiare i produttori di browser a fare lo stesso. Sebbene il loro messaggio ha inizialmente incontrato parecchie resistenze, dall’inizio del 2000 le principali compagnie si stanno impegnando per rendere compatibili i loro browser con HTML 4, XHTML 1, CSS, ECMAScript - la versione standard di JavaScript - [ECM99] e per il DOM. 2.4. Principali bug di progettazione Non sviluppando secondo gli standard, si rischia di commettere errori che non rendono soltanto meno funzionale l’utilizzo della pagina all’utente, ma restituiscono una diversa resa grafica a seconda del browser in uso. Qui di seguito riporto alcuni degli sbagli commessi più frequentemente durante lo sviluppo di pagine Best Viewed With Internet Explorer, e quali soluzioni sono necessarie per risolvere tali problemi:

- Il codice javascript usato per determinare con quale browser si sta navigando, esclude la visualizzazione della pagina a quelli non riconosciuti; fare attenzione a come viene usato.

20

Page 21: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

- “l’overlapping” dei tag è visibile solo con IE, altri browser possono generare errori nella pagina o non mostrarla affatto (<tag-a><tag-b><tag-c>text</tag-b></tag-a></tag-c>)

- la locazione di file “c:\html\img.jpg” è supportata solo da IE (usare invece “file:///C|/html/img.jpg”)

- Navigator 4 necessità che le applet vengano dichiarate public; IE le mostra anche senza definirne l’accesso.

- La maggior parte dei browser supporta esclusivamente immagini gif e jpg; solo IE legge i .bmp. [WOO04]

- Il font di default è diverso a seconda del browser utilizzato; impostarlo fin dall’inizio.

- La proprietà dei CSS “float” non riproduce fedelmente il comportamento “align” è può causare i comportamenti più disparati; il consiglio è non usarlo.

- Padding, margin e width hanno aspetti sempre distinti su ogni browser. L’unica soluzione è quella di controllare attentamente su ognuno di essi. [LOW02]

- Le immagini animate non sono supportate dai browser più obsoleti. Evitare di inserire informazioni importanti (ad esempio il nome di un link) all’interno di esse.

- <frame> e <javascript> non sono tag sempre riconosciuti. Utilizzare sempre i rispettivi <noframes> e <noscript> [LH02]

- Java e plug-in vari sono applicazioni di terze parti non per forza compatibili con ogni tipo di browser. Usare il testo alternativo.

- Non fare affidamento sui cookie: molti browser possono averli disabilitati o non essere compatibili

2.5. Le soluzioni attuali 2.5.1. Movimenti ed organizzazioni Già da alcuni anni, diverse organizzazioni si muovo per promuovere alle aziende e ai singoli sviluppatori l’importanza dell’accessibilità e il rispetto degli standard. Oltre al WAI, infatti, sono nate il

21

Page 22: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

The Web Standards Project (WaSP - http://www.webstandards.org), “una coalizione popolare che si batte per gli standard che garantiscono un accesso semplice e proficuo per tutti alle tecnologie Web”; l’European Internet Accessibility Observatory (EIAO - http://www.eiao.net), un osservatorio europeo dei siti accessibili, ovvero un progetto che ha lo scopo di creare uno strumento disponibile a tutti per verificare costantemente il livello di accessibilità dei siti web europei; Unified Web Evaluation Methodology (UWEM - http://www.wabcluster.org/uwem05), l’unione di 24 organizzazioni che lavorano assieme per promuovere una metodologia di valutazione dell'Accessibilità comune in Europa, basata sulle Web Content Accessibility Guidelines 1.0. Oltre a queste grandi organizzazioni, nel loro piccolo altri portali si stanno muovendo per aiutare gli sviluppatori a progettare pagine web sempre migliori e rispondenti agli standard del W3C. Il sito anybrowser.org, ad esempio, è stato inventato proprio con questo intento; come si può leggere sul sito [BUR04] : “So di non poter cambiare il web da solo, ma ogni piccolo sforzo qui conta, e questo è il mio voto per un world wide web indipendente da qualsiasi piattaforma o browser; per enfatizzare il fatto che io cerchi di creare i miei siti web in modo da essere visti e sfruttati a pieno con ogni browser ho creato il bottone Best Viewed With Any Browser. Alcune pagine potranno apparire meglio in certi browser piuttosto che in altri, ma tutte restano comunque leggibili da tutti; io cerco di usare tag per browser specifici nella maniera appropriata e solo se c'è una buona ragione per utilizzarli, nei casi in cui ho utilizzato tecniche particolari come mappe, frame, Java, eccetera, ho sempre scritto pagine alternative per browser che non supportano tali tecniche.” Il suo impegno non si limita soltanto alla creazione del sito in sé, bensì continua fornendo nelle pagine successive una ricca serie di linee guida con utili esempi per tutti gli sviluppatori in modo che possano anche loro rendere le proprie pagine Best Viewed With Any Browser. Le iniziative presenti nel web sono davvero innumerevoli, [COC05] per esempio, nelle sue pagine cerca di convincere le persone ad adeguarsi agli standard, dimostrando con alcuni brevi calcoli quanto sia vantaggioso, anche a livello di interesse puramente economico, per uno

22

Page 23: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

sviluppatore rendere accessibile il proprio sito agli utenti con browser diversi. 2.5.2. Software di testing Anche i progetti e le applicazioni create per favorire l’accessibilità in internet sono sempre in aumento, alcuni software sono simili al mio, altri vengono usati prettamente per testare le pagine sotto diversi proprietà e aspetti. Qui di seguito riporto una rassegna di alcuni di questi applicativi: AnyBrowser [ANY05] ha creato un semplice form nel quale è possibile inserire l’URL desiderato. A questo punto si hanno a disposizione 7 livelli di testing della pagina. La scelta comprende:

- AnyBrowser iii (HTML 3.2 specification + AnyBrowser options) - HTML 2.0 (RFC 1866) - HTML 2.0+Tables (RFC 1866+1942) - HTML 3.2 (Netscape and Explorer 3.x) - HTML 4.0 Transitional (Netscape and Explorer 4.x) - HTML 4.0 Strict - Webtv 1.1

A seconda della scelta effettuata, verrà visualizzata una pagina accuratamente modificata con una resa grafica uguale a quella che verrebbe mostrata su un browser rispondente alle specifiche selezionate. Interessante è la possibilità di farsi restituire la pagina con solo testo, così da poter sia analizzare come risulterebbe la pagina su un browser testuale, sia controllare l’inserimento dei tag alternativi corrispondenti. Sullo stesso sito, ma in un’altra pagina, è disponibile anche lo “Screen Size Tester”, attraverso il quale è possibile visualizzare le proprie pagine web con diverse risoluzione di schermo a scelta fra 544x384, 640x480, 800x600, oppure optando tra alcune “Default Netscape Browser sizes”. Nella stessa pagina è interessante anche notare l’indicazione delle dimensioni reali (massime e minime) di ogni pagina a seconda del sistema operativo utilizzato:

23

Page 24: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Live area in Internet Explorer 4 on Windows

Monitor Resolution Minimum Live Space Maximum Live Space 640 x 480 623 x 278 635 x 380 800 x 600 783 x 398 795 x 500 1024 x 768 1007 x 566 1019 x 668 1152 x 870 1135 x 668 1147 x 770

Fonte: http://www.anybrowser.com/ScreenSizeTest.html

Colorblind Web Page Filter Misura l'accessibilità dei colori dei siti. Andando alla pagina di [TER05], basta inserire l'indirizzo di un sito web nel tool disponibile e il gioco è fatto. Un motore interno, capace di lavorare su tonalità, colori e composizione, è in grado di misurare quanto è accessibile una pagina web per chi ha problemi di riconoscimento dei colori. Si può scegliere tra diversi tipi di filtri a seconda che si voglia eliminare i coni rossi, verdi, blu o ancora secondo diversi tipi di anomalie o limitazioni: - protanopia (red/green color blindness; no red cones) - deutanopia (red/green color blindness; no green cones) - tritanopia (blue/yellow color blindness; no blue cones) - grayscale/achromatopsia (quick check for all forms of colorblindness) - atypical achromatopsia (low cone function; cone monochromat) - protanomaly (anomalous red cones) - deutanomaly (anomalous green cones) - tritanomaly (anomalous blue cones) - coverage test in black (highlight filter limitations) - coverage test in white (highlight filter limitations) - coverage test in gray (highlight filter limitations) Al termine dell’elaborazione dei dati è possibile vedere la pagina esattamente come sarebbe agli occhi di quelle persone che hanno problemi di interpretazione dei colori (per esempio di un daltonico). Colorblind Web Page Filter è stato inserito nelle build di Mozilla; è senz'altro significativo che il suo autore abbia potuto mettere a disposizione

24

Page 25: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

uno strumento aperto a tutti, tool ancora in lavorazione ma per molti aspetti già operativo. Accessibility Designer: Visualizing Usability for the Blind Un lavoro molto interessante è stato effettuato da [HCK04]. Il progetto è stato pensato per le persone con lievi disturbi visivi e anche per ciechi. Il tool ha diverse funzioni; la prima è quella di prendere in input una qualunque pagina web restituirla in scala di grigi, indicando per le aree più chiare tempi di caricamento della pagina assai brevi (0 secondi) e per quelle scure tempi più lunghi.

Inoltre, un sistema di icone disposte sopra la pagina indica quali parti del documento sono accessibili e quali no; l’opzione “skip-to-main-content” link, permette di filtrare le informazioni e restituire la pagina depurata da immagini e scritte, mostrando soltanto i contenuti principali con i relativi link. Infine, uno strumento a parte chiamato “Accessibility Designer” (aDesigner) simula gli screen-reader dei ciechi leggendo il contenuto della pagina così da evidenziare quali parti sono da migliorare e quali invece accessibili. BrowserHawk Il sito di [CYS05] mostra quali features sono disponibili nel proprio browser, elencandole tutte all’interno di una tabella. Da notare, oltre alle classiche proprietà come supporto per frame, javascript, css, ecc… come

25

Page 26: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

sia disponibile anche il controllo per il supporto di VBScript, Blocco Popup e Plug-in vari (Flash, QuickTime, Acrobat). Web Page Backward Compatibility Viewer Lo strumento di [DEL04] serve a vedere le pagine web senza le funzionalità aggiuntive tipiche dei browser più recenti (scripts, frames, immagini, css, applet java). In un’altra pagina è disponibile il Lynx Viewer, che simula la visualizzazione di una pagina con Lynx. 2.6. Confronti con StarBrowser 2.6.1. Browsershots.org Leggendo la mission del sito di [JOH05] si legge: “This project is concerned with a favorite problem of web designers: websites look different in other browsers. Testing a new site in many browsers can be quite time-consuming. Not everybody has a farm of legacy machines with older OSes and browsers. There are online services that offer screenshots of websites in different browsers for considerable fees. For the hobbyist and for open source projects, these fees may be prohibitive.” A parte la caratteristica di essere accessibile direttamente on line, Browsershots funziona sostanzialmente come StarBrowser: non è un emulatore di pagine web, ma utilizza diversi sistemi operativi richiamati automaticamente da un’applicazione scritta su misura, per realizzare screenshot ai diversi browser. Rispetto a StarBrowser, la caratteristica più evidente è sicuramente la possibilità di scorrere la pagina e realizzare più screenshot della stessa. Questo permette un quadro generale del sito particolarmente ampio, in quanto potrebbe evidenziare errori nascosti in fondo alla pagina non visibili ad esempio attraverso l’uso del mio programma. È da apprezzare anche il modo in cui vengono restituiti i risultati delle pagine all’utente, attraverso

26

Page 27: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

cioè una serie thumbnails disposte ordinatamente all’interno di una pagina web, e la possibilità di scegliere la dimensione dello schermo. Il grosso problema di Browsershots, in compenso, è la totale incapacità da parte dell’utente di installare browser ulteriori a quelli disponibili, soprattutto evidenziato dal fatto che quelli presenti sono solamente ultime versioni dei browser più famosi (Epiphany 1.4.8, Firefox 1.0.4, Galeon 1.3.20, Konqueror 3.3, Mozilla 1.7.8, MSIE 6.0, Opera 8.50, Safari 2.0) e non adatti a paragoni con quelli più vecchi, compatibili soltanto con sistemi operativi ormai sorpassati. 2.6.2. Browser Photo Come si legge su [NET05], Browser Photo è stato sviluppato inizialmente da NetMechanics e successivamente acquisito e migliorato da Keynote. Anche questa applicazione gira solo on line (ma previo pagamento di un canone annuale): dalla home page della casa produttrice, seguendo una serie di link, si viene rimandati alla sezione dedicata agli utenti abbonati. A questo punto il suo funzionamento è pressoché simile a Browsershots, come pure il suo difetto: utilizza soltanto browser famosi senza dare spazio a quelli di minor successo (ma sempre di grande importanza) come Amaya o K-Meleon. D’altra parte, un vero pregio di questo software sta nel fatto che permette di scegliere quale dimensione dei font utilizzare (Medium, Larger, Normal) e quale risoluzione dello schermo adottare (800x600 o 1024x768).

27

Page 28: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

28

Page 29: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

CAPITOLO 3

Il Progetto CASPITA

3.1. Introduzione Attualmente sono presenti sul mercato innumerevoli tipi di browser. Microsoft Internet Explorer è il più famoso e il più usato dalla maggior parte dei navigatori, ma tantissime software house sono continuamente al lavoro per sviluppare browser alternativi sempre più funzionali, sicuri e affidabili. FireFox, Galeon, K-meleon, Konqueror, Mosaic, Mozilla, Netscape, Opera sono solo alcuni fra i moltissimi presenti oggigiorno sul mercato, ognuno dei quali disponibile in molteplici versioni, frutto di continue modifiche, correzioni e miglioramenti [ROS05]. Senza contare che, a loro volta, i vari browser sono rilasciati in varianti differenti a seconda del sistema operativo su cui verranno eseguiti. Quello che li rende differenti uno dall’altro, non è soltanto l’aspetto grafico, l’interfaccia utente o le features disponibili in ognuno di essi, bensì gli standard per cui sono stati scritti. Essi, infatti, provengono dalle fatiche di una dura battaglia iniziata nel 95 tra Microsoft e Netscape e prolungata per parecchi anni; per l’appunto, la “Browser War”.

29

Page 30: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Questa guerra, per entrambi gli avversari, aveva come obiettivo la conquista della posizione di monopolista nel mercato; il raggiungimento della supremazia assoluta per il proprio browser. Il problema è che i due contendenti non si limitarono a combattersi sul lato commerciale, ma anche su quello tecnico. Entrambi i browser, infatti, in pochi anni subirono un’evoluzione straordinaria, gli aggiornamenti e le versioni si rincorrevano una dopo l’altra; purtroppo le organizzazioni a favore degli standard sul web, all’epoca non erano ancora in grado di stare al loro passo e rilasciare in tempo le linee guida da seguire; fu così che Netscape e Microsoft iniziarono a lanciare nuove modifiche agli standard, la maggior parte delle volte incompatibili tra loro. Il finale è ormai agli occhi di tutti: la Microsoft decise di tagliare il problema alla radice distribuendo il proprio browser già installato nel sistema operativo, così che cambiarlo diventasse un costo e una fatica per gli utenti. Attualmente ci portiamo ancora il peso di questa aspra battaglia, molti browser sono compatibili solo secondo loro precisi standard, non seguono una direttiva comune (come invece dovrebbe essere), e progettare pagina web perfettamente funzionanti su ognuno di loro è oggi divenuto un compito davvero molto difficile. Il vero problema di un webmaster, infatti, non è conoscere nei minimi dettagli il codice html, creare pagine ricche di contenuti e immagini accattivanti, bensì anche riuscire a far vedere correttamente il proprio sito con le applicazioni e le piattaforme più svariate. Sfogliando le pagine della rete, è facile rendersi conto come, da qualche anno a ‘sta parte, tecnologie sempre nuove nascano e si affianchino in maniera indissolubile alle applicazioni web. Componenti oggi “di serie” all’interno dei nostri browser quali javascript, flash o css, un tempo erano una assoluta novità. Quando uscirono per la prima volta Internet Explorer e Netscape ancora non erano dotati di supporto a tutte queste tecnologie; oggi sono di fatto uno standard. Un attento webmaster deve conoscerne ogni aspetto e sfaccettatura per gestirle in maniera opportuna e creare siti efficienti e compatibili su ogni piattaforma. Un normale sito web che utilizzi javascript per generare in

30

Page 31: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

modo dinamico i propri contenuti risulterà totalmente spoglio su Internet Explorer 2 e le prime versioni di Netscape. Allo stesso modo, portali realizzati tramite flash non saranno visualizzabili da browser minori come Amaya o K-Meleon sui quali il player della Macromedia non è installabile. Qui di seguito riporto una tabella che riassume quali tecnologie e standard web sono effettivamente supportati dai maggiori browser:

Browser CSS2 Frames Java JavaScript XSLT XHTML MathML XForms RSSAmaya Si No No No No Si Si No NoCamino Si Si Si Si Si Si Si No NoDillo No Parziale No No No No No No NoELinks Parziale Si No Parziale ? No No No NoEpiphany Si Si Si Si Si Si Si No NoGaleon Si Si Si Si Si Si Si No NoiCab Parziale Si Si Si No No No No NoInternet Explorer Parziale Si Si Si Si No No No Si K-Meleon Si Si Si Si Si Si No No Si Konqueror Si Si Si Si No Si No No Si Links No Si No Parziale ? No No No NoLynx No No No No No No No No NoMosaic No No No No No No No No NoMozilla Si Si Si Si Si Si Si No NoMozilla Firefox Si Si Si Si Si Si Si No Si Netscape Si Si Si Si Si Si Si No NoNetscape Browser Dipende Si Si Si Si Dipende Dipende No Si Netscape Navigator No Si Si Si No No No No NoOmniWeb Si Si Si Si No Si No No Si Opera Si Si Si Si No Si No No Si Safari Si Si Si Si Si Si No No Si

Fonte: http://en.wikipedia.org/wiki/Comparison_of_web_browsers

È facile notare come ogni browser faccia caso a sé, ognuno possiede caratteristiche ben diverse dall’altro: come risulterà quindi il nostro sito web su ogni browser, terminato il lavoro di progettazione e realizzazione? È possibile trovarne le differenze di visualizzazione tra un dispositivo e un altro in modo semplice e veloce? Volgendo lo sguardo agli strumenti disponibili oggi sul mercato, non è facile trovare un sistema in grado di mostrare a priori il risultato finale di una pagina su più browser e il modo più ovvio che viene alla mente per farlo è sicuramente installarli tutti sulla propria macchina ed eseguirli uno per volta navigando manualmente all’indirizzo internet cercato. Ovviamente questo metodo è alquanto laborioso, scomodo, e soprattutto lungo nei tempi di esecuzione.

31

Page 32: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Oltretutto viene facile pensare che un qualunque sforzo rivolto alla compatibilità tra i vari browser, non venga comunque ripagato, in quanto la maggior parte degli utenti utilizza sempre lo stesso, cioè Internet Explorer. In realtà è stato stimato da [REF05] che la quota dei suoi utenti non raggiunge nemmeno il 75%. Resta pertanto una buona percentuale di navigatori che sfrutta le potenzialità di Firefox, Mozilla, Netscape e Opera, e una più piccola porzione che naviga con software minori.

2005 IE 6 IE 5 Ffox Moz NN 7 O 8 O 7 AltroOctober 68.9% 5.6% 18.8% 2.5% 0.5% 1.1% 0.2% 2.4%September 69.8% 5.7% 18.0% 2.5% 0.4% 1.0% 0.2% 2.4%August 68.4% 6.3% 18.9% 2.4% 0.4% 0.8% 0.3% 2.5%July 67.9% 5.9% 19.8% 2.6% 0.5% 0.8% 0.4% 2.1%June 65.0% 6.8% 20.7% 2.9% 0.6% 0.7% 0.5% 2.8%May 64.8% 6.8% 21.0% 3.1% 0.7% 0.7% 0.6% 2.3%April 63.5% 7.9% 20.9% 3.1% 0.9% 0.4% 1.0% 2.3%March 63.6% 8.9% 18.9% 3.3% 1.0% 0.3% 1.6% 2.4%February 63.9% 9.5% 17.9% 3.3% 1.0% 1.7%January 64.8% 9.7% 16.6% 3.4% 1.1% 1.9%

IE: Internet Explorer; Ffox: Firefox; Moz: Mozilla; O: Opera; NN: Netscape

Fonte: http://www.w3schools.com/browsers/browsers_stats.asp

Questa percentuale, anche se agli occhi potrebbe risultare irrisoria, è composta da decine di milioni di utenti; tutti possibili frequentatori che, se non considerati, potrebbero venire automaticamente tagliati fuori dal mercato. Senza contare che gli stessi utilizzatori dei browser più diffusi, potrebbero comunque utilizzare sia sistemi operativi che risoluzioni di schermo differenti, come si nota nelle successive tabelle:

2005 Win XP W2000 Win 98 Win NT Win .NET Linux Mac AltroOctober 70.2% 15.0% 2.8% 0.4% 1.6% 3.3% 3.2% 3.5September 69.2% 15.8% 3.2% 0.5% 1.7% 3.3% 3.1% 3.2August 66.3% 17.5% 3.2% 0.6% 1.7% 3.3% 2.9% 4.5July 65.3% 17.7% 3.9% 0.6% 1.6% 3.5% 3.0% 4.4June 64.9% 19.1% 3.6% 0.7% 1.5% 3.5% 3.0% 3.7May 64.5% 19.4% 3.9% 0.8% 1.4% 3.3% 2.9% 3.8April 64.0% 19.7% 4.1% 0.8% 1.4% 3.3% 2.9% 3.8March 63.1% 20.2% 4.7% 0.9% 1.4% 3.2% 3.0% 3.5February 62.0% 21.1% 5.1% 0.9% 1.3% 3.2% 2.9% 3.5January 61.3% 21.6% 5.3% 1.0% 1.2% 3.2% 2.8% 3.6

OS Platform Statistics; Fonte: http://www.w3schools.com/browsers/browsers_stats.asp

2005 16,777,216 65,536 Lower

32

Page 33: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

July 77% 20% 3%January 72% 25% 3%2004 16,777,216 65,536 LowerJuly 69% 28% 3%January 65% 31% 4%2003 July 55% 40% 5%January 51% 44% 5%2002 October 49% 46% 5%

Display Resolution; Fonte: http://www.w3schools.com/browsers/browsers_stats.asp

È per questo che si rende necessario, se non indispensabile, trovare un sistema che verifichi la compatibilità delle pagine web su diversi browser in modo facile e veloce. 3.2. StarBrowser StarBrowser è un tool per il testing automatico di pagine web creato apposta per mostrare agli sviluppatori come verrà visualizzato il loro sito sui diversi browser. L’applicazione, da me creata, permette di vedere come sarà visualizzato a schermo la pagina cercata. A seconda del browser scelto, StarBrowser crea una immagine (in formato jpg o bmp) che mostra non una semplice imitazione o simulazione del sito, bensì esattamente quello che un normale utente vedrebbe utilizzando un computer con installata l’applicazione richiesta. Questo tool, infatti, sfrutta Virtual Server per creare macchine virtuali (vmc) e avviare i browser installati su di esse. Quando lo si attiva, StarBrowser crea all’interno di una directory preconfigurata una sottocartella che prende il nome dell’indirizzo web desiderato, avvia le vmc, quindi i browser, salva le immagini dei diversi browser e termina. Il funzionamento è molto semplice: si inserisce l’URL nell’apposito campo, si selezionano i browser desiderati per la navigazione e si spinge “Start”. StarBrowser automaticamente crea un elenco con tutti i browser da aprire e di conseguenza tutte le macchine virtuali da avviare a rotazione. Seleziona la prima vmc dalla lista e l’accende tramite Virtual Server. Ogni macchina, a questo punto, è già predisposta per eseguire GoBrowser al termine del caricamento del sistema operativo. GoBrowser è

33

Page 34: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

un’ulteriore applicazione scritta da me, capace di leggere le istruzioni inviate da StarBrowser (quelle contenenti l’URL al quale navigare e i nomi dei browser selezionati) ed avviare in sequenza un browser dopo l’altro. Per ognuno esegue lo screenshot e salva l’immagine “catturata” nella cartella condivisa. Alla fine di tutto il processo lancia lo shutdown del sistema operativo; se sono presenti altre vmc nell’elenco generale StarBrowser ricomincia tutta la sequenza, altrimenti si arresta. Ecco come si presenta l’applicazione al suo avvio:

La maschera di attivazione presenta nella parte in alto una textbox in cui l’utente può inserire l’URL che desidera aprire. Subito sotto è disponibile invece un’area di colore più scuro in cui viene mostrato l’elenco dei browser predefiniti che verranno processati (Chosen Browser). Dal momento in cui si finisce di digitare l’indirizzo internet, è subito possibile avviare il la creazione delle immagini premendo semplicemente il pulsante “Start”. Se, invece, si desidera personalizzare la

34

Page 35: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

lista dei browser da caricare, è possibile farlo tramite l’apposita sezione nella parte inferiore della finestra. Tutte le opzioni, infatti, sono raccolte e organizzata all’interno di schede. La prima di queste, “Browser Select”, permette di gestire i browser da avviare all’interno del processo di creazione delle immagini.

Essenzialmente il contenuto della scheda è diviso in tre aree, ognuna identificata da una particolare ListBox: “Browser Available”, “Version” e “Operating System”. La listbox “Browser Available” mostra per l’appunto tutto il ventaglio di possibili applicazioni installate e disponibili per StarBrowser. Quando l’utente seleziona una qualunque voce dell’elenco, vengono mostrati nella listbox a fianco tutte le versioni disponibili per quel browser selezionato; facendo invece doppio-click saranno automaticamente aggiunte all’area Chosen Browser. Comportamento analogo ha la listbox di mezzo, soltanto che, nel caso di singolo click, mostra dentro Operating System i diversi sistemi operativi su cui è installata quella particolare versione, e in caso di doppio-click non agisce più su tutte le versioni, bensì soltanto su quella appena cliccata.

35

Page 36: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

L’ultima listbox, a differenza delle altre, ha un unico comportamento: in caso di click del mouse da parte dell’utente, aggiunge o elimina l’applicazione selezionata, residente sul sistema operativo specificato, dall’area Chosen Browser.

Infine tali preferenze possono essere salvate semplicemente usando il bottone “Save” e richiamate in ogni momento attraverso “Reset”, entrambi presenti in fondo alla finestra. Per quanto riguarda la successiva scheda, “VMC Manager” non è nient’altro che una piccola console in cui è possibile amministrare le proprie virtual machines attraverso i comandi “Turn On”, “Turn Off”, “Pause”, “Resume”, “Save State”, “Reset”, “Restore Saved State” e “Discard Saved State”. Nel caso si ritenga necessario impartire uno dei precedenti comandi a una determinata vmc, la si seleziona e si clicca il bottone relativo. Di fianco alla

36

Page 37: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

scritta “Status” è possibile controllare l’effettiva esecuzione dell’ordine assegnato.

Le schede rimanenti “Event Logs”, “Url History List” e “Other” mostrano rispettivamente l’elenco di tutti gli eventi che si verificano all’interno dell’applicazione (dal caricamento iniziale, alla ricerca dei file di configurazione, all’esecuzione di ogni processo), la lista degli URL digitati durante la sessione corrente e le informazioni relative al sistema in uso (nome del pc, dell’utente e del sistema operativo in uso, indirizzo ip …).

Inoltre, dato che tutti gli URL e gli eventi vengono automaticamente salvati dal programma in due file separati fin dalla sua prima esecuzione, nella scheda Other sono presenti due bottoni per la cancellazione di entrambi i

37

Page 38: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

file, nel caso per esempio si ritenga che la loro dimensione superi i limiti prefissati. La barra di stato visibile nell’estremità inferiore dell’applicazione è stata creata per avvertire l’utente, in tempo reale, sia di eventuali problemi quali errori di caricamento, operazioni scorrette, input mancanti, sia sullo stato di avanzamento del processo di creazione delle immagini. 3.3. Virtual Server Come precedentemente spiegato, la mia applicazione lavora in stretta connessione con Virtual Server. Andando a leggere sul sito della casa produttrice Microsoft si legge: “Microsoft Virtual Server 2005 è la più conveniente soluzione per la creazione di macchine virtuali per Microsoft Windows Server 2003, espressamente progettata per aumentare l'efficienza operativa negli scenari di sviluppo e testing del software, re-hosting delle applicazioni e consolidamento dei server.” [MIC05b] Virtual Server è una piattaforma per macchine virtuali, supporta per la maggior parte dei dispositivi Windows e Linux (sistemi operativi x86) e assicura la compatibilità con un'ampia gamma di componenti hardware. Inoltre una completa API COM assicura il massimo controllo delle macchine virtuali tramite script. Principalmente VS nasce per aiutare i programmatori a testare i propri software all’interno di un ambiente più flessibile, capace di gestire in maniera ottimale ed efficiente le risorse hardware disponibili. In sostanza, le macchine create vengono incapsulate in dischi rigidi virtuali salvati all’interno di due file, uno con estensione “vmc” (virtual machine) e l’altro “vhd” (virtual hard disk). Il primo ha dimensione assai ridotta e rappresenta esattamente l’immagine di un vero e proprio pc. Questo file è in formato xml, e contiene tutte le caratteristiche principali del sistema, quali la dimensione dell’hard disk, della memoria ram, la scheda di rete

38

Page 39: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

utilizzata e le relative configurazioni. Nell’altro file, invece, viene salvato il contenuto dell’hard disk virtuale. Esso contiene pertanto il sistema operativo installato e tutti i documenti dell’utente. Tramite l’apposita console, l’amministratore è in grado di gestire così tutte le macchine virtuali: aggiunta, eliminazione, avvio, spegnimento, sono solo alcune delle innumerevoli possibilità a disposizione dell’utente.

Ed è proprio grazie a queste funzioni che opera StarBrowser. Con la pressione del pulsante Start, infatti, l’utente connette il programma a Virtual Server, il quale impone l’accensione alla macchina virtuale desiderata. Allo stesso tempo un file batch è già predisposto per avviarsi automaticamente alla prima partenza del sistema operativo. Esso controlla l’esistenza del file di configurazione con le preferenze dell’utente e, in caso di successo, esegue GoBrowser.

39

Page 40: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

3.4. GoBrowser GoBrowser è un’applicazione creata da me che deve essere installata in ogni sistema operativo virtuale. Questa applicazione è importantissima, in quanto ha il compito di avviare i diversi browser e generare lo screenshot. Dovendo risiedere su sistemi operativi sempre diversi, inizialmente ho pensato di scrivere GoBrower in Java, che è per eccellenza il codice di programmazione indipendente da ogni piattaforma (questo vuol dire che l'esecuzione di questi programmi ha un comportamento simile su hardware diverso). Durante lo sviluppo dell’applicazione, però, è sorto il problema di farla funzionare anche sotto Windows 95 e Windows NT, ambienti nei quali la Java Virtual Machine non è compatibile. Ho deciso pertanto di creare un’altra versione del programma usando questa volta il linguaggio di programmazione Visual Basic 6. Il compito di StarBrowser è leggere il file condiviso ed eseguire le istruzioni in esso contenute. Più precisamente riceve in input l’URL scelto dall’utente leggendo la prima riga, e l’elenco di tutti i browser interpretando le linee successive. A questo punto, lanciando un browser alla volta, invia la pagina da visualizzare e fa lo screenshot; l’immagine ottenuta viene quindi prima rinominata con il nome del sistema operativo e del browser utilizzato, e successivamente salvata nella cartella condivisa. Terminata la creazione di tutte le immagini arresta il sistema operativo e passa il controllo a StarBrowser. Se rimangono altre vmc da avviare, prosegue il ciclo dall’inizio, altrimenti termina il processo. Alla fine tutte le immagini sono disponibili all’interno della stessa cartella:

40

Page 41: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Ecco qui di seguito come risulta l’home page di Msn.com aperta con: Microsoft Internet Explorer 3 su Windows 95

Opera 2.1.2 su Windows 95 :

41

Page 42: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Netscape 3 su Windows 95 :

Amaya 8.7.3 su Windows 98 :

42

Page 43: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Internet Explorer 4 su Windows 98 :

Internet Explorer 6 su Windows XP Professional:

43

Page 44: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

È facile notare come la pagina in questione non sia assolutamente compatibile con tutti i browser, i suoi sviluppatori devono essersi affidati al browser Internet Explorer per effettuare i principali test della pagina, e non hanno minimamente pensato a confrontarla con altri browser. Anche prendendo in considerazione soltanto le versioni 4 e 6 del suddetto browser, si vede chiaramente quanto le differenza tra i due siano abissali: nell’ultima versione la pagina è perfetta, nella 4 è tutto sottosopra. 3.5. Cosa rende differente la visualizzazione di una pagina Le cause che rendono così diversa una pagina da un browser all’altro, sono da ricercarsi principalmente nella scrittura del codice del sito stesso. Molti javascript e css, per esempio, non vengono interpretati nella medesima maniera da tutti i browser, e nondimeno le immagini (questo è il caso del formato png). A parte queste considerazioni di carattere tecnico, molte volte la diversità di visualizzazione può essere causata dai plug-in installati sul computer: molte pagine, infatti, richiedono l’utilizzo di software di terze parti che non per forza devono essere installati sul proprio computer. Caso simile è quello dei cookie: alcune pagine richiedono obbligatoriamente la loro attivazione, pena l’interruzione totale della navigazione all’interno del sito. Molti browser hanno, inoltre, impostazioni di default molto diverse rispetto agli altri: la dimensione predefinita dei caratteri, il font utilizzato, il colore, sono tutte caratteristiche che contraddistinguono un browser rispetto un altro.

44

Page 45: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

CAPITOLO 4

Architettura di CASPITA

4.1. Introduzione L’utente finale, a cui è destinata la mia applicazione, coordina l’intero processo di creazione delle immagini unicamente attraverso StarBrowser. Questo potrebbe orientarlo a pensare che tutta la mia attività di sviluppo sia stata concentrata essenzialmente su questo singolo programma. In realtà, esso sfrutta l’ausilio di 2 applicazioni ulteriori, che vengono installate su tutti i sistemi operativi che risiedono su macchine virtuali. Questo perché StarBrowser coordina le singole vmc e gestisce il loro avvio e spegnimento a seconda dei browser richiesti, ma non controlla l’effettiva creazione delle immagini. Tutto il processo di esecuzione dei browser, navigazione alla pagina web predefinita, screenshot e shutdown del sistema, sono in mano a due componenti altrettanto importanti: un file batch e GoBrowser. Il file batch gestisce l’avvio di GoBrowser e spegne il sistema operativo su cui risiede al termine degli screenshot, mentre GoBrowser avvia i browser richiesti dall’utente, fa in modo che raggiungano l’URL specificato, cattura lo schermo quando la pagina è finalmente caricata e salva l’immagine

45

Page 46: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

ottenuta nella cartella condivisa. Durante tutto questo, StarBrowser è completamente all’oscuro di quello che accade all’interno delle macchine virtuali, non sa né quali applicazioni sono avviate, né se GoBrowser riuscirà a inviargli le immagini. L’unica cosa di cui si rende conto in tempo reale è la situazione delle vmc. StarBrowser, infatti, è predisposto per eseguire nuove operazioni nel momento in cui riceve notifica di cambiamenti del loro stato. Per esempio, nel momento in cui si accorge che una macchina si è spenta, controlla la lista di esecuzione dei sistemi operativi: nel caso in cui ne siano presenti ancora, allora lancia la successiva; altrimenti termina il processo. 4.2. Linguaggi di programmazione Per un primo periodo, ho iniziato a scrivere StarBrowser in C#. Tuttavia, la maggior familiarità con Visual Basic .Net e la sua estrema semplicità di utilizzo per la creazione di interfacce utente, mi hanno spinto a passare definitivamente a questo linguaggio. Abituato a scrivere in VB6, non è stato difficile il cammino verso questo (per me) nuovo codice di programmazione, tuttavia ho incontrato alcune nette differenze con .Net, che mi hanno rallentato nello sviluppo iniziale. Con VB.Net, infatti, è cambiato l'utilizzo di form multipli rispetto alle sue versioni precedenti. In VB6 viene automaticamente creata un'istanza predefinita per ogni form e si accede all'istanza utilizzando il nome del form. Invece in .NET non ci sono istanze predefinite: un form si riferisce esclusivamente alla classe che lo rappresenta e tale classe non può essere utilizzata senza averne prima creato un'istanza. Secondo problema, inoltre, è che in VB6 queste istanze predefinite del form sono globali per l'intero progetto, mentre in .Net no, ed è pertanto stato necessario renderle pubbliche fin dall’inizio. [http://www.microsoft.com/italy/msdn/library/default.asp?url=/italy/msdn/library/net/vbnet/MultipleFormVBNET.asp?frame=true]. Per quanto riguarda la scrittura di GoBrowser, invece, è stato necessario ricorrere a due diversi linguaggi, VB6 e Java. Dovendo eseguire questa

46

Page 47: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

applicazione su diversi sistemi operativi, infatti, avevo un’assoluta esigenze di compatibilità e stabilità su qualunque piattaforma fosse necessaria la sua installazione. Fin da subito il primo linguaggio pensato da me fu pertanto java, compatibile con moltissime versioni di Windows (32 bit), e allo stesso tempo con tutte le distribuzioni Linux (32 bit) e alcune di Solaris (32/64 bit). [http://java.sun.com/j2se/1.4.2/jre/install.html] Il motivo per cui è stato necessario ricorrere anche all’utilizzo di VB6 sta nel fatto che Windows 95 e Windows NT non sono compatibili con la Java Virtual Machines: il primo in quanto non predisposto per il supporto a questa tecnologia; il secondo perché restituisce un errore al momento dell’installazione della jvm, dovuto al fatto che il browser presente, Internet Explorer 2 for NT, crea conflitti se non aggiornato alle versioni più moderne. Ovviamente, lo scopo del mio progetto mi vincola a possedere tutte le sue distribuzioni disponibili, e mi è pertanto sconveniente effettuare l’upgrade. Per ultimo, ma non per questo meno importante, il file batch. Questo file, se pur di poche righe, è parte integrante del sistema di creazione delle immagini ed è fondamentale per assicurare il buon funzionamento di tutto il progetto. Esso, infatti, non solo ha il compito di lanciare GoBrowser, bensì anche creare una connessione diretta con il sistema operativo dell’utente e di spegnere la macchina al termine dell’intero processo. Proprio a causa di queste operazioni, esiste un file batch scritto in modo diverso per ogni sistema operativo, in quanto i comandi Dos, e i loro relativi parametri, sono cambiati nel tempo con le diverse distribuzioni di Windows. 4.3. Installazione Affinchè il programma funzioni correttamente, prima della sua esecuzione è necessario predisporre il proprio computer effettuando alcuni settaggi. Innanzitutto bisogna aver già installato il Framework .Net e Virtual Server. Avviando Virtual Server tramite “Virtual Server Administration Website” è possibile aggiungere adesso tutte le macchine virtuali precedentemente

47

Page 48: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

create, semplicemente usando il comando “add” e specificando il path del file .vmc; per ogni vmc inserita è necessario successivamente aggiungere la scheda di rete installata sul proprio pc, in quanto VS è ancora preimpostato con le configurazioni relative alla scheda di default. Allo stesso modo, per concedere l’accesso a internet a ogni macchina, nelle configurazioni relative a “virtual networks”, bisogna indicare la stessa scheda sia nella sezione “Internal Network” sia in quella “External Network”, specificando inoltre i settaggi ip per il server dhcp. Nel caso si ritenga necessario creare una copia di una macchina già esistente, basta copiarne i file .vmc e .vhd all’interno della stessa cartella e aggiungere la vmc “clonata” (ovviamente con un altro nome) nell’elenco di quelle disponibili. Adesso bisogna decidere in quale cartella verranno memorizzate le immagini finali. Tale directory, infatti, dovrà essere condivisa con tutti i permessi in lettura e scrittura in modo da permettere la memorizzazione dei file all’interno di essa. Per questa operazione consiglio di utilizzare un path abbastanza corto e di rinominare la cartella senza spazi o altri caratteri particolari, in modo da poter semplificare le operazioni successive e rendere così l’ambiente compatibile con ogni sistema che dovrà accedere a questa risorsa (per esempio Linux). A questo punto possiamo modificare il file “Vmc_Browser.xml” salvato nella cartella “Config”. Questo è l’unico file di configurazione che viene utilizzato da StarBrowser. Dentro esso vengono memorizzate tutte le vmc a nostra disposizione con i relativi browser installati, sia le opzioni per il funzionamento del programma. In particolare bisogna indicare: il path appena scelto per la cartella condivisa all’interno del nodo “dir_print_screen”; la cartella in cui è contenuto il “Virtual Machine Remote Control Client” (vmrc); il nome che intendiamo assegnare al file, creato dinamicamente da StarBrowser, contenente tutte le scelte dell’utente (attualmente “Url_Brow.txt”); i minuti di attesa prima che si verifichi il “ForceShutdown”, di default impostati a 10. Anche se il nome potrebbe essere un poco forviante, ForceShutdown indica il tempo che StarBrowser lascerà trascorrere prima di imporre la pausa forzata (e non lo shutdown come inizialmente da me pensato) a una vmc. Per esempio, nel caso in cui

48

Page 49: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

un errore interno ad una macchina virtuale dovesse impedirne lo shutdown automatico, questo comando si rivelerebbe parecchio utile in quanto evita a StarBrowser di attendere all’infinito che tale macchina si spenga. Allo scadere del periodo, infatti, blocca la vmc nello stato di “Pausa” e riprende normalmente il processo avviando quella successiva. Al termine di tutto il lavoro basterà attivare tramite un “Restore” la macchina in causa e risolvere manualmente il problema. Pertanto, è bene fare attenzione durante la modifica di questo file, in quanto il formato xml è molto rigido e non concede mai all’utente il beneficio di venia in caso di errore (a differenza per esempio dell’html). Anche la scrittura dei dati richiede particolare scrupolo, in quanto un errore nell’indicazione del percorso di installazione di un browser, potrebbe generare errori a catena fino a causare il fallimento dell’intero processo. Per ultimare l’installazione è necessario infine avviare ogni macchina virtuale e andare a inserire nel file batch il nuovo percorso della cartella prima condivisa. 4.3.1 Ottimizzare il risulato finale Al momento dello screenshot è possibile che il sistema operativo mostri all’utente dei messaggi non previsti, ad esempio per avvertirlo riguardo il rilascio di nuovi update, oppure richiedendo il passaggio all’ora legale. Può anche succedere che vengano eseguiti processi prestabiliti come lo screensaver o controlli da parte di applicazioni già presenti sul computer: Internet Explorer può richiedere per esempio di essere impostato come browser predefinito, può mostrare errori javascript, finestre per l’installazione di software di terze parti, ecc… È quindi importante ricordarsi di eliminare tutti quei possibili "alert", di cui sistemi operativi come Windows sono particolarmente ben forniti, che pregiudicherebbero il risultato finale del lavoro. Da notare, inoltre, che alcuni browser non supportano la possibilità di ricevere input da linea di comando; è quindi bene informarsi, prima della loro installazione, sulla capacità o meno di acquisire la pagina web da aprire, per evitare spiacevoli imprevisti: è il caso di Mosaic.

49

Page 50: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

4.4. Perché Virtual Server? Attualmente tutto il progetto è implementato intorno a Virtual Server. In verità, l’idea di partenza, non era quella di adottare questa applicazione, bensì quella di sfruttare le potenzialità di Virtual PC. VPC è sostanzialmente il “fratello minore” di VS, infatti emula più sistemi operativi contemporaneamente, assicura la compatibilità delle applicazioni, ma, come si legge su [MEG05], VS ha alcuni importanti miglioramenti:

• Remote Management. You can administer Virtual Server remotely by using the Administration Web site.

• Scalability. Virtual Server scales across multiple processors (although in the current release each virtual machine can take advantage of only one CPU).

• COM API. You can manage Virtual Server and its virtual machines by using the COM API. For more information, see the Virtual Server SDK that ships with the product.

• SCSI support. Virtual Server provides SCSI support. • Multiple CD-ROM drives: Although Virtual Server allows for virtual machines with multiple

CD-ROM drives, Virtual PC supports virtual machines with only one CD-ROM drive.

Non tanto per il supporto cd-rom, piuttosto per quello alle COM API, ho quindi deciso di concentrarmi su questo nuovo software, in quanto VPC non può essere gestito tramite VB.Net perché privo di SDK; caratteristica che lo rendendo totalmente inutile all’interno del mio progetto. Attualmente Virtual Server viene rilasciato dalla Microsoft senza supporto ufficiale a BSD Unix, Linux, NetWare e Solaris x86: sebbene il software possa ancora essere utilizzato per far girare questi sistemi operativi, non viene rilasciato alcun supporto tecnico né documentazione; in futuro, comunque, è già stato annunciato [JEN05] che la versione Service Pack 1 di VS aggiungerà il supporto ufficiale alle distribuzioni Linux. 4.5. Funzionamento generale Completati tutti i passaggi dell’installazione, non resta che avviare finalmente l’applicazione, digitare l’URL nell’apposita textbox e cliccare

50

Page 51: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

su “Start”. StarBrowser esamina così tutte le scelte dell’utente, quali browser ha selezionato, e crea un array con l’elenco di tutte le macchine da avviare una dopo l’altra a seconda dei sistemi operativi che esse ospitano. A questo punto viene creato un file di configurazione con la lista dei browser da eseguire nella vmc che sta per essere avviata, e infine viene salvato dentro la cartella condivisa. Dopo aver avviato la macchina, a StarBrowser non resta che mettersi in attesa e aspettare che venga spenta o messa in pausa entro 10 minuti. Alla partenza del sistema operativo viene eseguito il file batch, preventivamente disposto all’interno della cartella “Esecuzione automatica”. Questo file per l’esattezza si occupa di portare a termine 3 operazioni differenti: connettere il pc alla cartella condivisa, lanciare GoBrowser, spegnere la macchina. Pur essendo davvero limitate le righe di codice che compongono questo file, per la sua scrittura ho dovuto impiegare abbastanza tempo perché la ricerca di informazioni sullo shutdown automatico e sulla connessione remota non sempre erano disponibili per sistemi molto vecchi, soprattutto quelli ormai obsoleti come Windows 95. Al suo avvio, GoBrowser riceve, attraverso il file batch, alcuni argomenti da riga di comando. I primi due gli consentono di raggiungere e leggere il file di configurazione con le preferenze dell’utente. Il terzo serve per impostare i secondi di attesa tra l’avvio di ogni browser e il suo relativo screenshot. Terminata l’esecuzione di GoBrowser, il file batch lancia uno script per lo shutdown del sistema e la scena ripassa a StarBrowser. 4.6. StarBrowser nel dettaglio L’ambiente di sviluppo che ho utilizzato per scrivere StarBrowser è Visual Studio .Net. A parte i file che esso genera automaticamente per rendere eseguibile l’intero progetto, in sostanza StarBrowser è organizzato in 7 file. Il principale è “Form1.vb”: si preoccupa di creare l’interfaccia utente e gestisce tutte gli input inviati dall’utente. E’ il file principale dell’applicazione, non tanto perché il più grosso di dimensioni, ma in

51

Page 52: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

quanto rappresenta il cuore di tutta la gestione e dell’organizzazione del processo finale. Il file “Config.vb”, invece, è un unico grande contenitore di variabili pubbliche, nulla di più. Tutte le variabili visibili all’interno del progetto sono inserite lì. Questa scelta è stata determinata da esigenze di carattere prettamente organizzativo, in quanto una collocazione random in tutto il progetto avrebbe causato notevoli perdite di tempo ogni volta fosse stata necessaria una loro istanza. “Dir_e_Browser.vb” si occupa di leggere i dati scritti dentro “Vmc_Browser.xml” e di riempire le 3 ListBox presenti nel form (per la precisione 2 ListBox e 1 CheckedListBox), con tutti i browser disponibili, versioni e relativi sistemi operativi. Questo file, inoltre, ha il compito di leggere le preferenze dell’utente dal file “choice_predef.txt”, controllare che il file xml abbia un formato corretto e sia riempito esattamente nei diversi nodi, e di scrivere i file “log.txt” e “url.txt” (contenenti rispettivamente l’elenco di tutte le operazioni eseguite dal programma e la lista di tutti gli URL visitati dall’utente dal primo giorno di utilizzo). “For_Guest.vb”, come intuibile dal nome, raccoglie tutta una serie di funzioni rivolte alla gestione delle macchine virtuali ospitate da Virtual Server. Per l’esattezza stabilisce l’elenco dei sistemi operativi da avviare, crea il file con le configurazioni relative, e controlla il loro stato attraverso funzioni che avvertono in caso di spegnimento o di pausa. “Print_e_manage.vb” è stato scritto in principio per sopperire alla necessità di effettuare il print dello schermo direttamente attraverso StarBrowser. L’idea iniziale, infatti, era quella di aprire le vmc attraverso il Virtual Machine Remote Control Client e catturare l’immagine sfruttando direttamente alcune librerie dll del sistema operativo principale (da qui la presenza del file “ScreenCapture.vb”). Successivamente mi sono accorto che lanciare il printscreen dai sistemi remoti e inviare le immagini in una cartella condivisa era molto più utile e semplice, e così attualmente questo file viene unicamente utilizzato per indicare a StarBrowser quali bottoni abilitare e quali no all’interno della sezione “VMC Manger”:

52

Page 53: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Rimane “Module1.vb”, ultimo come posizione nell’elenco, ma primo ad essere interpretato al momento dell’avvio di StarBrowser. Questo file ha l’unico compito principale di dialogare con Virtual Server per inizializzare e accedere al "Virtual Server COM object”; passaggio indispensabile affinché StarBrowser possa gestire e comandare le macchine virtuali. Per i dettagli si veda [MIC05a]. 4.7. Problemi incontrati durante lo sviluppo di StarBrowser 4.7.1 Login automatico Affinché il file batch possa avviarsi automaticamente e lanciare a sua volta GoBrowser, è necessario che il sistema operativo sia già preimpostato per avviarsi con Autologon. Le procedure indicate da [MIC02] per attivare questa modalità sono parecchio noiose e scomode in quanto diverse a seconda del sistema su cui si sta lavorando; nelle versioni più recenti, per esempio, è sufficiente modificare il registro di sistema; in quelle più vecchie come Windows 95 e Windows 98 bisogna cambiare i settaggi di accesso e cancellare i file *.pwl contenenti le password degli utenti. 4.7.2 Salvataggio psw di rete Risolto un problema, ne sorge un altro. L'autologon, infatti, è si indispensabile per il funzionamento di tutto il programma, ma dà vita purtroppo a un ulteriore questione assai delicata già affrontata da

53

Page 54: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

[MIC04a]. Nei sistemi operativi Windows 95/98/98SE, l'autologon non permette il salvataggio delle psw di rete in quanto il file *.pwl, nel quale verrebbero memorizzate, viene precedentemente cancellato. La soluzione più semplice che permetta al computer di accedere a una cartella remota senza richiedere il login, è quella di connetterlo a ogni avvio tramite il comando dos “net use”. Con questo metodo viene assegnata una lettera di unità alla connessione di rete, così da rendere più semplice la lettura del file e la memorizzazione delle immagini. Ovviamente questa soluzione non poteva che generare altri 2 problemi: 1) L’assegnazione di una specifica lettera all’unità connessa in rete, obbliga l’utente a prendere una decisione confrontando quelle ancora disponibili sul computer. Installando l’applicazione su un altro pc, non è detto che la stessa lettera sia sempre disponibile; in tal caso è meglio controllare perché potrebbe verificarsi la necessità di dover cambiare tutti i file batch uno per volta. 2) La connessione alla cartella remota attuata da Windows 95 e Windows 98 utilizza meccanicamente, come login per l'autentificazione, il nome del computer su cui sono installati. Questo problema è conosciuto anche come “IPC$ error”. Si veda a proposito [MIK03].

A questo punto, l’unico rimedio è creare sul pc principale un nuovo utente che prende il nome della macchina virtuale. Si potrebbe pensare di connettere la macchina con l’utente Amministrator dato che è l’unico presente in ogni pc; purtroppo, nel file batch, bisogna indicare anche la password affinché la connessione possa essere effettuata con successo; pertanto non prendo in considerazione questa possibilità.

54

Page 55: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

4.7.3. Compatibilità tra SO e applicazioni Come ricordato sopra, la JVM non è compatibile con Win 95, e genera un errore al momento della sua installazione su Windows NT perché entra in conflitto con la versione originale di Internet Explorer. Pertanto su queste piattaforme occorre eseguire sempre GoBrowser in versione VB6, accompagnato dalla libreria MSVBVM60.DLL; ricordo che per poter leggere le applicazioni scritte con questo codice di programmazione, Windows 95 necessità delle librerie DCOM, mentre in NT sono già presenti installando il Service Pack 6a. 4.7.4. Shutdown Ultimo problema che mi ha impegnato parecchio tempo è stato capire come lanciare lo shutdown automatico nei diversi sistemi operativi. Questa volta, oltretutto, il problema non si è presentato limitatamente ai sistemi meno moderni, bensì nella maggior parte. Effettivamente, a parte Windows XP e Windows 2003 per i quali basta digitare il semplice comando dos “shutdown”, per tutti gli altri ho dovuto adottare le soluzioni più diverse. Per Windows 98, ad esempio, [ROB05] suggerisce di richiamare la libreria rundll.exe. In Windows 95, invece, lo shutdown viene lanciato direttamente da GoBrowser perché ogni script che ho provato non dava esiti positivi. Inoltre, sono dovuto ricorrere a [MIC04b] per spegnere Windows Me. Nella versione 2000, bisogna avviare un file scritto in VBScript, in quanto l’unico modo per spegnere la macchina. Per finire, in Windows NT sono dovuto ricorrere a un software di terze parti, “psshutdown.exe” di [MAR05], in quanto la sola modifica del registro di sistema ne causava il riavvio e non lo spegnimento totale. L’utente veniva avvisando con il classico messaggio:

55

Page 56: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

4.8. Subroutine e Funzioni principali Il file “Form1.vb” contiene una parte di codice relativa alla creazione dell’interfaccia utente e una successiva per l’inizializzazione corretta del form. In particolare viene richiamata la funzione “Get_Dir_config”, che legge il file “Vmc_Browser.xml” e memorizza le impostazioni in esso contenute (cartella di salvataggio delle immagini, percorso vmrc, nome del file di configurazione, tempo di attesa per il ForceShutdown). Successivamente, la funzione “Controllo_integrita_xml_browser” fa un parsing dello stesso file xml analizzandone la struttura e verificando che tutti i nodi siano correttamente riempiti. Tutte le funzioni di controllo e di caricamento create all’interno dell’applicazione, quest’ultima compresa, richiamano la funzione “all_log”. Essa si comporta in modo differente a seconda che il test dia esito favorevole o contrario: nel primo caso restituisce il risultato nella maschera degli eventi “Event Logs”, e scrive il file “log.txt” contenuto nella directory di configurazione (richiamando a sua volta la funzione “write_log”). In caso negativo il risultato viene sempre aggiunto a entrambe le parti, ma viene imposta la variabile globale “error_gen = 1”. Questo passaggio è molto importante, perché da questo controllo dipende il caricamento dei dati successivi; nel caso in cui venga riscontrato il sorgere di un errore, infatti, StarBrowser termina le sue funzioni ed è impossibile riuscire a utilizzarlo. Nel caso invece la variabile error_gen valga 0, viene richiamata la funzione “Get_VmcBrowser” che cicla il file xml e inserisce uno alla volta tutti i browser in esso contenuti. Ecco di seguito il codice in questione:

Do While oXr.Read 'Nodo browser If oXr.IsStartElement(oXr.Name) And oXr.Name = "browser" Then If oXr.HasAttributes Then 'aggiungo i browser alla lista generale (attributo "name") temp = oXr.GetAttribute("name") If Not frm.CckListBox_brow_avail.Items.Contains(temp) And temp <> "" Then frm.CckListBox_brow_avail.Items.Add(temp) End If End If End If Loop oXr.Close()

56

Page 57: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

A questo punto tramite “load_predef_in_arrayList” vengono caricati nell’ ArrayList “choice_browser” i browser predefinite dell’utente. Questo array è dichiarato pubblico in quanto deve essere accessibile da ogni file del progetto; dentro esso per la precisione vengono inseriti gli id corrispondenti ai singoli browser e non i loro nomi. Questo per lasciare totale libertà all’utente di installare lo stesso browser con la stessa versione in 2 sistemi operativi differenti. L’inizializzazione del form termina quando Virtual Server ha comunicato la lista delle virtual machines esistenti, e StarBrowser le ha inserite all’interno del “VMC Manager”. All’interno di StarBrowser sono inseriti 3 timer: “Timer_RefreStatus”, “Timer_Total” e “Timer_VMC”. Il primo ha un’importanza marginale, serve soltanto a tenere sotto controllo lo stato delle vmc e, se il caso, a cambiare la scritta all’interno della label nel “VMC Manager”. Gli altri 2, invece, gestiscono tutto il processo di creazione delle immagini. Il Timer_Total viene avviato facendo click sul bottone “Start” e controlla ogni 4 secondi lo stato dell’ArrayList choice_browser. Nel caso in cui sia pieno esegue la funzione “Control_ArraySO”, altrimenti si ferma. Control_ArraySO è un’unica funzione che coordina e gestisce l’avvio e lo spegnimento delle vmc. Essa è composta da un IF principale che dirige l’esecuzione del codice in base al fatto che rimangano ancora dei browser da eseguire e le vmc siano tutte spente, oppure che la vmc un tempo in esecuzione ora sia spenta o in pausa. Nel primo caso trova la macchina virtuale da avviare, crea il file di configurazione per quella particolare vmc, lancia il comando di StartUp e abilita il Timer_VMC. Il file di configurazione è composto dall’URL digitato dall’utente nella prima riga, e dall’elenco dei browser (con relativo path) da eseguire in quelle successive. Il Timer_VMC ha invece il compito di imporre la pausa forzata alla vmc appena avviata nel caso in cui rimanga accesa per un tempo maggiore a quello impostato nella variabile globale forceShutDown. Di seguito mostro brevemente il codice principale:

57

Page 58: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

' Trovo il SO da processare Dim myEnumerator As System.Collections.IEnumerator = Proc_arraySO.GetEnumerator() myEnumerator.MoveNext() MySO = myEnumerator.Current() ' CREO il file di configurazione per quel SO System.IO.File.Delete(file_client) crea_file_config_x_ogni_so(MySO) UN_SO_STA_LAVORANDO = True 'Avvio SO client On Error Resume Next Dim objVS = CreateObject("VirtualServer.Application") Dim objVM = objVS.FindVirtualMachine(MySO) objVM.Startup() ' Mette in pausa la VMC se ci mette troppo a spegnersi AddHandler Timer_VMC.Elapsed, AddressOf Pause_VMC Timer_VMC.Interval = force hutDown * 60 * 1000 STimer_VMC.Enabled = True

Il secondo caso si verifica quando una macchina virtuale che fino a pochi secondi prima era accesa, cambia il suo stato e si spegne (o per shutdown automatico o per pausa forzata). A questo punto StarBrowser elimina dalla coda dei processi in attesa l’ultimo sistema operativo in memoria e controlla se ne sono rimasti altri: se l’ArrayList è vuoto o è stato precedentemente premuto il tasto “Stop”, allora si ferma; altrimenti continua il ciclo dall’inizio:

Proc_arraySO.Remove(MySO) pausa_forzata = False ' se l'arrya ora è vuoto o premo stop, allora spengo tutto If Proc_arraySO.Count = 0 Or stop_premuto Then Timer_Total.Enabled = False System.IO.File.Delete(file_client) stop_premuto = False Proc_arraySO.Clear() all_log("ok", "Processi finiti.") End If

UN_SO_STA_LAVORANDO = False Dentro a Form1.vb sono inoltre contenute le subroutine per la selezione dei browser nella sezione “Browser Select”. Il comportamento della prima listbox varia a seconda che l’utente esegua un click o un doppio-click; nel primo caso vengono mostrati nella listbox di mezzo tutte le versioni disponibili del browser selezionato; nel secondo caso vengono automaticamente aggiunte (o eliminate se già presenti) all’ArrayList choice_browser. Eseguendo un solo click viene parsato il file xml con la

58

Page 59: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

funzione “Get_brows_vers_list”; con il doppio-click si avviano le funzioni “get_allBROWcode_with_THISbrow” e “store_del_ALLcode”:

' singolo click Static iPrevIndex As Integer = -1 If CckListBox_brow_avail.SelectedIndex <> iPrevIndex Then iPrevIndex = CckListBox_brow_avail.SelectedIndex Get_brows_vers_list() End If show_prefer_CBLc() ' doppio click Dim array_AllCode As New ArrayList array_AllCode = get_allBROWcode_with_THISbrow(frm.CckListBox_brow_avail.SelectedItem) store_del_ALLcode("A", array_AllCode) show_prefer_CBLc()

Comportamento analogo ha la listbox “Version”, soltanto che, nel caso di singolo click, mostra (attraverso Get_so_list) dentro la checkedlistbox i diversi sistemi operativi su cui è installata quella particolare versione, e in caso di doppio-click li aggiunge tutti a choice_browser. Inoltre, ogni volta che l’utente fa click su una delle due listbox, viene richiamata la funzione show_prefer_CBLc che mostra all’interno della checkedlistbox le preferenze dell’utente segnando con una spunta i checkbox relativi ai browser selezionati. A differenza delle due listbox, la checkedlistbox “Operating System” ha un solo comportamento, cioè aggiungere o eliminare da choice_browser i browser selezionati. 4.9. File batch e GoBrowser Il file batch è di norma scritto con pochissime righe, il più delle volte corrispondono a questo esempio:

net use Z: /DELETE

net use Z: \\AREA\My_Temp gigi /SAVEPW:NO /YES

IF EXIST Z:\Url_Brow.txt java GoRead Z:\ Url_Brow.txt 30

IF EXIST Z:\Url_Brow.txt C:\WINDOWS\RUNDLL.EXE krnl386.exe,exitkernel

La prima riga viene inserita per sicurezza per evitare che la connessione non abbia effetto nel caso la lettera dell’unità fosse già occupata.

59

Page 60: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Con la seconda viene creata la connessione alla cartella remota su cui risiede il file di configurazione della vmc e nella quale verranno salvate le immagini creata da GoBrowser. La terza esegue GoBrowser (in questo caso la versione Java) passandogli alcuni parametri: “Z:\” corrisponde alla lettera dell’unità connessa alla cartella remota, “Url_Brow.txt” è il nome del file di configurazione da leggere; “30” sono i secondi di tempo che verranno lasciati trascorrere tra il caricamento del browser e il relativo screenshot. GoBrowser è composto da 2 funzioni principali: “read_file_host” e “manage_browser”:

public static void main(String[] args)

{

if (args.length < 3) { /* MsgBox("Nessuna istruzione inserita"); */ }

else if (args.length > 3) { /* MsgBox("Troppe istruzioni"); */ }

else

{

String my_dir = args[0]; // Cartella di salvataggio immagini

String my_file = args[1]; // File di configurazione da leggere

int my_time = (Integer.parseInt(args[2])); // sec tra avvio browser e screenshot

String[] array_tot = read_file_host(my_dir, my_file);

if (array_tot.length != 0) { manage_browser(array_tot, my_dir, my_time); }

}

}

La prima apre il file Url_Brow.txt, parsa il suo contenuto e memorizza ogni valore in un array. La seconda crea dapprima una sottocartella nell’unità connessa al pc remoto, usando come nome l’indirizzo URL inserito dall’utente (depurato da caratteri particolari come \ / : * ? " < > | NUL). Successivamente cicla l’array contenente i browser prescelti e ne avvia uno alla volta; per ognuno esegue lo screenshot attraverso la funzione “createScreenCapture” della classe “java.awt.Robot” e ne salva l’immagine rinominandola col nome del sistema operativo e del browser utilizzato. Terminata l’esecuzione di GoBrowser viene letta l’ultima riga del file batch che esegue lo shutdown del sistema. Da notare che le due righe finali sono precedute da “IF EXIST”; questa condizione ritorna utile nel caso in cui la vmc venga accesa manualmente e

60

Page 61: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

si voglia evitare l’esecuzione improvvisa sia dei browser che, ancor peggio, dello shutdown.

61

Page 62: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

62

Page 63: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

CAPITOLO 5

Conclusione

Nel corso di questa tesi abbiamo discusso i motivi che hanno portato a una crescente necessità di standard web e di accessibilità. Abbiamo visto come, sviluppando pagine internet basate su linee guida proprietarie, si ottengano siti perfetti su un solo browser ma totalmente non visualizzabili su molti altri. La richiesta di standard comuni per la creazione corretta di siti web è di fatto una necessità non più rinviabile; a questo proposito, numerose organizzazioni stanno muovendosi per dare vita alla filosofia di programmazione “Best Viewed With Any Browser”. Attualmente, le condizione sono insostenibili per qualunque sviluppatore, i rimedi adottati da molti di loro sono i più disparati e la maggior parte delle volte risultano purtroppo inutili e parecchio dispendiosi. Creare pagine rispettanti l’universabilità aiuta non solo gli sviluppatori ma permette anche agli utenti di accedere a internet con qualunque browser ottenendo sempre una visualizzazione ottimale con ognuno di essi. Abbiamo inoltre analizzato alcuni strumenti disponibili sul mercato creati per venire incontro ai problemi degli sviluppatori; essi si sono rivelati

63

Page 64: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

assolutamente utili e indispensabili per limitare alcuni errori, ma sostanzialmente dei rimedi parziali a un problema ben più grande. Quello che ci siamo prefissati, creando StarBrowser, non è di risolver loro ogni problema legato alla compatibilità tra i browser, ma di offrirgli un prodotto che sia in grado di aiutare a sviluppare in maniera più accessibili e rispondente ai bisogni di ogni utente. Di fatto, il progetto riesce nel suo intento, in quanto permette allo sviluppatore di avere un’analisi a 360° del proprio lavoro, così da renderlo pienamente cosciente e capace di prendere scelte ottimali per le implementazioni future del proprio sito. Sviluppi futuri del progetto avranno sicuramente come fine principale l’estensione a un numero ancora maggiore di sistemi operativi. Attualmente, tutti gli sforzi e le analisi che ne sono derivate si sono basati principalmente su un’unica piattaforma, ovvero Microsoft Windows. Virtual Server, infatti, pur non dando ufficialmente supporto a sistemi operativi “non Microsoft”, è in grado di emulare qualsiasi sistema operativo X86 come Linux o Solaris. Similmente, sarebbe interessante adottare un ulteriore programma di virtualizzazione col quale interfacciare StarBrowser, al fine di gestire sistemi operativi non X86, come per esempio Macintosh. Un’ulteriore direzione in cui orientarsi per lo sviluppo del progetto potrebbe essere quella di aumentare il numero degli URL da processare in una volta sola, così da controllare in tempi ancor più brevi la resa grafica di un intero sito. Prendendo esempio dal sito browsershots [JOH05], si potrebbe anche migliorare la presentazione del risultato finale, creando dinamicamente una pagina web con le thumbnails degli screenshot effettuati; questo renderebbe sia maggiormente gradevole l’analisi degli esiti finali, sia più ampia la visione generale dello stato di congruenza delle pagine. Altra features molto interessante presente sullo stesso sito, è la possibilità di scorrere verso il basso le pagina caricate, in modo da realizzare più screenshot ed avere così maggiori informazioni per ciascuna di esse. Infine, ho trovato molto interessante il lavoro effettuato da [MAD05]: egli spiega che uno dei maggiori problemi per gli sviluppatori di siti web è

64

Page 65: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

l’impossibilità di eseguire due o più versioni di Internet Explorer sullo stesso computer, se non installando più versioni di sistemi operativi all’interno di partizioni diverse o sfruttando emulatori software (come nel nostro caso). Ebbene, egli ha trovato il metodo di avviarne la maggior parte sulla stesso sistema operativo, cancellando alcune librerie dll di IE, aggiungendone e modificandone delle altre. Attualmente il mio studio riguardo questo progetto è alquanto superficiale, ma ritengo possa essere interessante approfondire l’argomento e applicare la stessa procedura sulle macchine virtuali gestite da StarBrowser, in modo da possedere più versioni di IE sulla stessa macchina e ottimizzare ulteriormente i tempi di restituzione degli screenshot. Tuttavia, è bene considerare la delicatezza di queste installazioni, frutto di manipolazioni ed esperimenti che non garantiscono assolutamente nessun tipo di stabilità.

65

Page 66: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

66

Page 67: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

Bibliografia

[ANY05] AnyBrowser.com, Screen Size Tester, 2005, http://www.anybrowser.com/ScreenSizeTest.html [BB05] Peter Bosher and Judy Brewer, Alternative Web Browsing, 18 ottobre 2005, http://www.w3.org/WAI/References/Browsing [BUR04] Cari D. Burstein, “Viewable With Any Browser”, 2004 http://www.anybrowser.org/campaign/ [COC05] Craig Cockburn, “Cross browser compatibility and website design”, 2005, http://www.siliconglen.com/usability/browsers.html [CYS05] cyScape, Browser Capabilities Test Page, 2005, http://www.cyscape.com/showbrow.asp [DEL04] DJ Delorie, Web Page Backward Compatibility Viewer, 2004, http://www.delorie.com/web/wpbcv.html

67

Page 68: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

[ECM99] Standard ECMA-262 - ECMAScript Language Specification, 1999, http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf [HCK04] Hironobu Takagi, Chieko Asakawa, Kentarou Fukuda, Junji Maeda, “Accessibility Designer: Visualizing Usability for the Blind”, in ACM SIGACCESS Conference on Assistive Technologies; Proceedings of the 6th international ACM SIGACCESS conference on Computers and accessibility; Atlanta, GA, USA; Pages: 177 – 184; 2004, http://doi.acm.org/10.1145/1028630.1028662 [JEN05] Jennifer LeClaire, “Microsoft To Support Linux in Virtual Server 2005 Pack 1”, ECT News Network, 21 aprile 2005, http://www.technewsworld.com/story/opensource/microsoft-linux-virtual-server-pack1-42508.html [JOH05] Johann C. Rocholl, Browsershots.org, ultima visita: 6 novembre 2005, http://browsershots.org/ [KOC04] Peter-Paul Koch, “A history of browsers”, 2004, http://www.quirksmode.org/browsers/history.html [LH02] Lynch and Horton, Web Style Guide, 2002 http://www.webstyleguide.com/index.html [LOW02] Charles T. Low, Cascading Style Sheets (Level One) Browser Intercompatibility, 2002, http://www.ctlow.ca/CSS1/CSS1Incompatibility.html [MAD05] Joe Maddalone, “Multiple IEs in Windows”, ultima visita: 10 novembre 2005, http://labs.insert-title.com/labs/article795.aspx [MAR05] Mark Russinovich, PsTools, 2005, http://www.sysinternals.com/Utilities/PsTools.html

68

Page 69: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

[MEG05] Megan Davis, “The Soul of a Virtual Machine”, ultima visita: 7 novembre 2005, http://blogs.technet.com/megand/articles/271852.aspx [MIC02] Microsoft Corp, “How to Enable Automatic Logon in Windows NT 3.x and 4.0”, 2002, http://support.microsoft.com/kb/q97597/ [MIC04a] Microsoft Corp, “Dial-Up Networking Password Is Not Saved”, 2004, http://support.microsoft.com/kb/q148925/ [MIC04b] Microsoft Corp, “How to Exit Windows 98/Me Automatically Using a Batch File”, 2004, http://support.microsoft.com/default.aspx?scid=kb;en-us;234216 [MIC05a] Microsoft Corp, “Connecting to the Virtual Server COM Object”, 2005, http://msdn.microsoft.com/library/en-us/msvs/msvs/connecting_to_the_virtual_server_com_object.asp [MIC05b] Microsoft Corp “Virtual Server 2005 - caratteristiche del prodotto”, ultima visita: 10 novembre 2005, http://www.microsoft.com/italy/windowsserversystem/virtualserver/default.mspx [MIK03] Mike Moniz, “IPC$ Problems Networking Nt/2k with Win9x”, 2003, http://www.halfdone.com/Articles/IPCProblem/ [NET05] Netmechanic, “Keynote Acquires NetMechanic”, 2005, http://www.netmechanic.com/comp/press/pr26.htm [REF05] Refsnes Data, Browser Statistics, 2005, http://www.w3schools.com/browsers/browsers_stats.asp

69

Page 70: ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA - Tesitesi.fabio.web.cs.unibo.it/twiki/pub/Tesi/LaboratorioWeb/La_Tesi.pdf · Tesi di laurea di: Paolo Pancaldi Relatore Chiar.mo

[ROB05] Rob van der Woude, Shutdown and Reboot, 2005, http://www.robvanderwoude.com/shutdown.html [ROS05] Adrian Roselli, “browser archive”, ultima visita: 4 novembre 2005, http://browsers.evolt.org/ [CIA04] Legge 9 gennaio 2004, n. 4, “Disposizioni per favorire l'accesso dei soggetti disabili agli strumenti informatici” (Legge Stanca), disponibile presso: http://www.pubbliaccesso.it/normative/legge_20040109_n4.htm [TER05] Terrace L. Waggoner, “Colorblind Web Page Filter”, ultima visita: 6 novembre 2005, http://colorfilter.wickline.org/ [WCA99] Web Content Accessibility Guidelines 1.0, 1999, http://www.w3.org/TR/WCAG10/ [WOO04] Woodger Computing Inc, “Cross-Browser Issues”, 2004, http://www.woodger.ca/xbrows.htm

70