Beatrice Domenico - Università degli Studi di Siena

Introduzione
UNIVERSITÀ DEGLI STUDI DI SIENA
FACOLTÀ DI INGEGNERIA
Corso di Laurea in Ingegneria delle Telecomunicazioni
GATEWAY APPLICATIVO PER IL
PORTING DI CONTENUTI E-LEARNING
WEB BASED SU PIATTAFORMA DIGITALE
TERRESTRE
Relatore:
Chiar.mo Prof. Giuliano Benelli
Correlatore:
Ing. Alessandro Nieto
Tesi di Laurea di
Domenico Beatrice
Anno Accademico 2004 - 2005
Introduzione
Introduzione
La televisione è il mezzo di diffusione dell’informazione di uso più familiare per
qualsiasi fascia di utenza grazie soprattutto al basso costo ed al carattere “user-friendly”
degli apparati disponibili sul mercato. La nascita della televisione digitale terrestre
rappresenta un ulteriore svolta sia per il tipo di contenuti che possono essere forniti che per
il modo in cui essi vengono erogati. Grazie alla possibilità di utilizzare il canale di ritorno
bidirezionale viene introdotta poi quella componente di interattività indispensabile alla
diffusione di servizi più sicuri e con contenuti personalizzati. Il bacino di utenza dei servizi
riesce in tal modo a raggiungere quella parte della popolazione poco familiare con l’utilizzo
del computer e quindi ancora lontana dal prendere dimestichezza con Internet come mezzo
di apprendimento.
L’obiettivo di questo lavoro di tesi è quello di mostrare come sia possibile
diffondere con maggiore penetrazione attraverso il mezzo televisivo, utilizzando la
piattaforma DVB-MHP, contenuti informativi originariamente disponibili unicamente
attraverso il Web.
A questo scopo si è utilizzato il corso “ECDL-2000 La patente europea del
computer” disponibile sulla piattaforma di formazione a distanza dell’Università degli Studi
di Siena riuscendo a riproporlo, in modo opportunamente adattato, sul terminale televisivo.
L’ E-Learning passa così dal computer alla televisione, diventando T-Learning.
Il ‘porting’, cioè il trasporto di contenuti e funzionalità, di servizi dal mondo Web
alla Tv digitale interattiva è un’operazione piuttosto elaborata, in quanto richiede uno
studio di fattibilità molto accurato in grado di soddisfare i giusti compromessi tra la
complessità del servizio ed i limiti imposti dallo standard alla base delle applicazioni client.
Buona parte del lavoro si è infatti concentrata sull’analisi dei contenuti, in modo da
produrre un modello XML in grado di mantenere intatto tutto il contenuto informativo del
corso nonché le informazioni per la navigazione dell’utente tra i vari moduli e unità
elementari. Inoltre, nella prospettiva di erogazione del servizio in multicanalità è stato
scelto il linguaggio XHTML come standard per la rappresentazione dei contenuti, visto che
ad oggi molti dispositivi integrano microbrowser a supporto di tale formato. Tale modalità
di formattazione dei contenuti rende inoltre compatibile il servizio con le successive
Introduzione
implementazioni dello standard MHP che dalla versione 1.1 includerà un browser XHTML
parallelo alla Virtual Machine per l’esecuzione di Xlet Java.
Il servizio è caratterizzato da un’interfaccia TV che permette l’autenticazione
dell’utente a mezzo username e password e l’accesso al servizio. Tramite i tasti del
telecomando previsti dallo standard è possibile navigare tra i vari corsi e singoli moduli, i
cui contenuti vengono prelevati direttamente dalla piattaforma FAD originale attraverso il
gateway applicativo realizzato in tecnologia servlet JAVA che gestisce la navigazione
dell’utente e si occupa del filtraggio delle informazioni e della loro traduzione dal formato
HTML a XHTML. L’applicativo MHP è stato sviluppato utilizzando l’authoring tool
Cardinal Studio Professional 4.0 esteso con opportuni componenti sviluppati in tecnologia
JavaBean. Il gateway applicativo invece è costituito da una servlet Java caricata su server
Apache Tomcat. I dati necessari alla gestione della sessione, della cache e della navigazione
vengono immagazzinati in un database MySQL. Per la fase di test della messa on-air si è
fatto uso degli apparati di simulazione presenti in laboratorio: Cardinal Playout Compact,
modulatore DVB-T, Up Converter, Set Top Box e Tv.
L’applicazione client eseguita sul Set Top Box comunica attraverso richieste HTTP
di tipo POST con il gateway applicativo, che sulla base delle interrogazioni dell’utente
identifica la sua posizione nella logica del corso (profili, corsi, sezioni, moduli, lezione),
quindi restituisce le corrispondenti informazioni XHTML ottenute prelevando e filtrando i
contenuti direttamente dalla piattaforma FAD. L’operazione di filtraggio consiste di una
prima fase di ‘pulizia’ del codice HTML il cui risultato well-formed viene sottoposto ad una
trasformazione XSLT per generare l’output corretto XHTML. L’estensione JavaBean
sviluppata per l’applicazione client utilizza istruzioni in sintassi XPath per recuperare i
contenuti e restituirli ai componenti grafici che si occupano della loro presentazione.
Ringraziamenti
Si sta come d’autunno
sugli alberi le foglie
(Giuseppe Ungaretti)
A mio padre Bruno, ucciso da un male tanto
malvagio quanto l’indifferenza che l’accompagna:
la Sclerosi Laterale Amiotrofica.
Ringraziamenti
A mia madre Assunta e mio fratello Luigi.
I miei più profondi ringraziamenti vanno a tutti
coloro che mi sono stati vicino in questo
travagliato periodo della mia vita.
Un ringraziamento particolare va al prof.
Giuliano Benelli che, nonostante le mie
incertezze, ha creduto in me.
Indice
Indice
Indice
6
Indice delle figure
1
Capitolo 1
1
La Tv Digitale: Gli standard DVB ed MHP
1
1.1
Una svolta importante: la Tv digitale
1.1.1 Background storico e tendenze future per la DTV
1.1.2 Sviluppi Globali della Televisione Digitale Terrestre
1.1.2.1 DTV negli Stati Uniti d’America
1.1.2.2 DTV in Europa
1.1.2.3 DTV in Giappone
1
2
3
3
4
4
1.2
Lo standard DVB
1.2.1 Specifiche
1.2.2 MPEG-2: Codifica audio-video e multiplazione
1.2.3 La compressione del segnale video
1.2.4 La codifica audio
1.2.5 Elementary Stream
1.2.6 Concetti e terminologia DVB
1.2.7 Gli standard di livello fisico
5
6
6
8
10
10
13
15
1.3
Lo standard MHP
1.3.1 Architettura di base
1.3.2 Profili MHP
1.3.3 Protocollo di trasporto
1.3.4 Protocolli del canale interattivo MHP
1.3.5 Tipi di contenuti MHP
1.3.6 Ciclo di vita di un’applicazione
1.3.7 Broadcast di applicazioni e dati: DSM-CC Object Carousel
1.3.8 Architettura di fruizione di un servizio interattivo MHP
17
18
19
20
21
21
22
24
26
Capitolo 2
28
La formazione a distanza
28
2.1
L’e-learning come fenomeno sociale e di mercato
2.1.1 La storia della formazione a distanza
2.1.2 Cenni di storia
2.1.3 Campi di applicazione
2.1.4 I Modelli e le Teorie Cognitive
28
29
30
31
31
2.2
Gli standard dell’e-learning
2.2.1 SCORM: Advanced Distributed Learning (ADL) Iniziative
2.2.2 IEEE Learning Technology Standards Committee (LTSC)
34
35
36
Indice
2.2.3
2.2.4
2.2.5
2.2.6
IMS (Instructional Management System) Global Learning Consortium
AICC – Aviation Industry CBT Committee
Prometeus
The Dublin Core Metadata Iniziative
36
37
37
38
2.3
Contenuti universalmente riutilizzabili
2.3.1 SCORM
2.3.2 Da dove deriva
2.3.3 Com’è organizzato
2.3.4 Content Aggregation Model (Modello di aggregazione dei contenuti)
2.3.5 Il “Run Time Environment” (ambiente di erogazione)
2.3.6 Gli elementi minimi di contenuto
2.3.6.1 Gli Asset
2.3.6.2 Lo SCO(Shereable Content Object)
2.3.7 Il courseware
39
39
40
41
41
42
43
43
43
44
2.4
DVB-MHP e FAD: le potenzialità
2.4.1 Risultati temporanei
2.4.1.1 Conclusioni chiave
2.4.1.2 Problemi di strategia di Learning
2.4.1.3 Il ruolo della Tv interattiva nel Learning
2.4.1.4 Problemi tecnici
2.4.1.5 Tv personalizzata
2.4.1.6 Problemi di mercato inerenti allo sviluppo di servizi di Learning
2.4.1.7 Tv in modo personalizzato
2.4.1.8 I costi di accesso al learning attraverso la Tv digitale
2.4.1.9 Apprendimento e problemi pedagogici
2.4.2 Raccomandazioni
2.4.2.1 Raccomandazioni strategiche
2.4.2.2 Ricerca sulle tecnologie del learning
45
47
47
47
48
49
49
50
51
51
51
52
52
53
Capitolo 3
54
Le scelte progettuali
54
3.1
Fase di specifica di un’applicazione per la Tv interattiva
3.1.1 Il nostro approccio
54
55
3.2
Studio della piattaforma di e-learning dell’Università degli Studi di Siena
3.2.1 Il sito FAD.UNISI.IT
3.2.2 Architettura del sito
3.2.3 Organizzazione dei contenuti
3.2.4 Strategie di interfacciamento
3.2.4.1 Il gateway applicativo di interfaccia
3.2.4.2 Vantaggi e svantaggi dell’approccio
3.2.5 Pianificazione dell’iter di sviluppo
3.2.6 Tecnologie utilizzate
3.2.7 Cardinal Studio Professional 4.0
3.2.8 Le librerie utilizzate lato client
3.2.8.1 Caratteristiche generali
56
56
57
59
61
62
63
64
66
68
69
70
Indice
3.2.8.2 XPath
3.2.9 Le librerie utilizzate la server
71
72
Capitolo 4
73
Sviluppo dell’applicazione client
73
4.1
La scelta dei contenuti
4.1.1 L’area d’interesse
73
74
4.2
75
Realizzazione dello scheletro di interfaccia
4.3
Scelta del formato di scambio dati
4.3.1 Formato di scambio dati XML
4.3.2 La sintassi scelta
76
76
77
4.4
Sperimentazione con file XML residenti
4.4.1 I componenti DataSet
79
82
4.5
Il componente T-Learning
4.5.1 Proprietà e funzionamento
83
83
4.6
Organizzazione dell’applicazione Client
4.6.1 Suddivisione in stati logici
87
87
4.7
Realizzazione dell’interfaccia grafica
88
4.8
Sistemazione dei contenuti nell’interfaccia
89
4.9
Il funzionamento in generale dell’applicazione
93
4.10 Dettagli di funzionamento
4.10.1
La procedura di autenticazione
4.10.2
I profili
4.10.3
La selezione di un profilo
4.10.4
Corsi attivi
4.10.5
La selezione di un corso
4.10.6
Sezioni, moduli e modulo
4.10.7
La selezione di una sezione, di un modulo e di una lezione
4.10.8
Il corso
4.10.8.1 Il componente imageDisplay
4.10.8.2 La visualizzazione di una lezione
4.10.8.3 La prima lezione
4.10.8.4 La selezione di un approfondimento
4.10.8.5 La gestione della visualizzazione di più immagini contestuali
94
96
97
98
99
100
101
102
103
104
106
106
108
110
Capitolo 5
113
Sviluppo dell’applicazione server
113
5.1
Logica Client-Server
5.1.1 Interazione Browser Web-FAD
113
115
5.2
117
Considerazioni pre-sviluppo
Indice
5.3
Le librerie utilizzate
118
5.4
Il dialetto XSL
118
5.5
Lo sviluppo e le strategie di sviluppo
5.5.1 La tecnologia Java Servlet
119
120
5.6
Il funzionamento della Servlet
5.6.1 Il TASK di Login
5.6.1.1 Le operazioni del TASK = Login
5.6.2 Il TASK profilicorsiattivi
5.6.2.1 Le operazioni del TASK profilicorsiattivi
5.6.3 I TASK sezioni, moduli e modulo
5.6.4 Il TASK Lezione
5.6.4.1 Le operazioni per il recupero della pagina precedente
5.6.4.2 Le operazioni del TASK Lezione
120
121
121
125
125
126
127
127
127
5.7
La scrittura dei fogli di stile
5.7.1 L’elenco dei corsi
5.7.2 Le sezioni
5.7.3 I moduli
5.7.4 L’elenco delle lezioni
5.7.5 La singola lezione
130
130
130
131
132
132
5.8
133
134
5.9
L’interfacciamento finale
5.8.1.1 Esempio di modifica post-produzione dell’applicazione finale
Conclusioni e sviluppi futuri
Bibliografia
135
137
Indice delle figure
Indice delle figure
Figura 1.Gli attori del mondo DVB ............................................................................................... 5
Figura 2.Combinazioni di profili e livelli nello standard MPEG-2[2] ....................................... 7
Figura 3.Schema del GOP standard per l'MPEG-2..................................................................... 9
Figura 4.Flusso dati Transport Stream......................................................................................... 13
Figura 5.Singolo Transport Stream Packet.................................................................................. 13
Figura 6. Architettura di fruizione di un servizio interattivo per la Tv digitale...................... 27
Figura 7. L'organizzazione dello standard SCORM................................................................... 41
Figura 8. La visione di un sapere globalmente distribuibile ed accessibile ............................. 45
Figura 9. L'uomo al vertice del mondo informativo .................................................................. 50
Figura 10. Logica della FAD.......................................................................................................... 57
Figura 11. La pagina di benvenuto della FAD ............................................................................ 57
Figura 12. Architettura della piattaforma di formazione a distanza dell'Università di Siena 58
Figura 13. Area (rettangolo) contente la parte di informazione più significativa ................. 59
Figura 14. Area (rettangolo) contenente la parte di informazione più significativa ............. 60
Figura 15. Schematica rappresentazione del funzionamento della soluzione scelta.............. 62
Figura 16. Implementazione della soluzione proxy-server........................................................ 64
Figura 17. L'ambiente di testing presente in laboratorio di TLC ............................................. 67
Figura 18. Le potenzialità del tool di authoring Cardinal Studio Professional....................... 69
Figura 19. L'area di interesse.......................................................................................................... 73
Figura 20. Scheletro di interfaccia................................................................................................. 75
Figura 21. Albero logico rappresentante la suddivisione in sottosezioni dell'area d'interesse
.................................................................................................................................................. 77
Figura 22. Modello di scambio dati definito da noi ................................................................... 78
Figura 23. Logica di funzionamento del componente T-Learning nel test di
interfacciamento ..................................................................................................................... 80
Figura 24. Esempio di un generico file nel formato DSML ..................................................... 81
Figura 25. Il framework DataSet................................................................................................... 82
Figura 26. Logica di funzionamento del componente T-Learning .......................................... 86
Figura 27. Architettura del servizio .............................................................................................. 88
Figura 28. Specifiche per la trasformazione JPEG -> I-Frame................................................ 89
Figura 29. Screenshot dell'interfaccia dei profili attivati con confronto pagina del sito del
corso......................................................................................................................................... 90
Figura 30. Screenshot dei corsi attivati relativamente al profilo selezionato con confronto
pagina del sito del corso. ....................................................................................................... 90
Figura 31. Screenshot delle sezioni del corso scelto con confronto pagina del sito del corso
.................................................................................................................................................. 91
Figura 32. Screenshot dell'interfaccia dei moduli relativi alla sezione del corso scelta con
confronto con la pagina del sito del corso. ........................................................................ 91
Figura 33. Screenshot delle lezioni disponibili relativamente al modulo scelto con confronto
con la pagina del sito del corso. ........................................................................................... 92
Figura 34. Screenshot dell'interfaccia della lezione appartenente al modulo scelto con
confronto con la pagina del sito del corso ......................................................................... 92
Figura 35. Screenshot del TASK = LOGIN............................................................................... 95
Figura 36. Screenshot del TASK Profili ...................................................................................... 98
Indice delle figure
Figura 37. Screenshot TASK Corsi Attivi .................................................................................100
Figura 38. Screenshot TASK Sezioni .........................................................................................102
Figura 39. Screenshot del template in cui vengono incastonati i contenuti della lezione...103
Figura 40. Il funzionamento del componente imageDisplay..................................................105
Figura 41. Screenshot di una lezione del corso.........................................................................107
Figura 42. Screenshot di un approfondimento .........................................................................109
Figura 43. Screenshot di approfondimento con la presenza di più immagini contestuali..111
Figura 44. Finestra di visualizzazione dei log registrati dallo sniffer: header della richiesta e
della risposta Http ................................................................................................................114
Figura 45. Lo scambio di informazioni browser-FAD al primo accesso alla piattaforma .116
Figura 46. Lo scambio di informazioni browser-FAD nella fase di login dell’utente .........116
Figura 47. Lo scambio di informazioni browser-FAD nella fase di abbandono sessione..116
Figura 48. Output del TASK Login ...........................................................................................123
Figura 49. Le operazioni portate a termine nell'esecuzione del TASK Login......................124
Figura 50. Le operazioni portate a termine nell'esecuzione del TASK sezioni, moduli e
modulo...................................................................................................................................126
Figura 51. Struttura del foglio di stile per i TASK profili e corsi attivi .................................130
Figura 52. Struttura del foglio di stile per il TASK Sezioni.....................................................131
Figura 53. Struttura del foglio di stile associato al TASK moduli..........................................132
Figura 54. Struttura del foglio di stile associato al TASK modulo.........................................132
Figura 55. Struttura foglio di stile associato al TASK Lezione...............................................133
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
Capitolo 1
La Tv Digitale: Gli standard DVB ed
MHP
1.1 Una svolta importante: la Tv digitale
Attualmente la televisione digitale, o DTV (Digital Television), suscita un enorme
interesse. Possiamo senza dubbio affermare che agli albori del ventunesimo secolo essa può
essere considerata come una parte integrante dell’autostrada dell’informazione che si sta
costruendo per il nuovo millennio. Le ragioni di tanto interesse sono dovute al fatto che la
televisione digitale può elargire grandi quantità di informazioni ad un costo molto basso e
ad un grandissimo numero di spettatori (utenti). Essa può essere integrata a pieno in reti di
trasmissioni completamente digitali, e gode della caratteristica di permettere compressioni
di dati che fino ad ora, con la Tv analogica erano assolutamente impensabili .
La DTV ha il vantaggio di permettere la trasmissione di un numero superiore di
programmi televisivi rispetto a quello trasmesso dalla televisione analogica e per di più
utilizzando qualunque tipo di canale (si parla infatti di multicanalità ). Si riesce a sfruttare
l’enorme vantaggio dell’informazione digitale, quello cioè di poter essere manipolata e
trattata in una maniera impossibile altrimenti utilizzando la televisione analogica. È
piuttosto facile salvare immagini digitali all’interno delle memorie di massa dei computer o
sui dischi e utilizzarle di continuo su reti digitali senza degradazione del segnale. Le
immagini possono essere ritoccate e ingrandite, compresse e salvate, trasmesse e stampate.
Sfruttando la rappresentazione delle immagini sotto forma di zeri ed uni (si parla di
rappresentazione binaria delle immagini) la televisione digitale acquisisce una grande
flessibilità nel trattare l’informazione. Il segnale televisivo, che nella forma analogica
richiede circuiti dedicati, nella forma digitale può essere mescolato o addirittura integrato
con le conversazioni telefoniche e/o i dati dei computer e quindi trasmesso su reti di
telecomunicazioni a distanti luoghi di radiodiffusione ( o di broadcasting). I programmi
televisivi possono essere immagazzinati negli hard disk dei computer e recuperati all’istante
1
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
per permettere al singolo spettatore un personale video on demand. La distribuzione di
materiale multimediale (audio, video e dati) al consumatore in formato digitale crea i
presupposti per una gestione dei contenuti interamente basata sui personal computer.
Utilizzando l’hard disk di un computer è possibile salvare (quello che prima era registrare
un film con il video registratore), richiederlo, modificarlo e richiederlo nuovamente in modi
fino ad ora mai visti. Logicamente questi sviluppi costituiscono una vera e propria
rivoluzione nei confronti del broadcasting analogico.
Con lo scopo di provare e sperimentate le problematiche imposte dal nuovo
scenario che si stava prospettando per il mondo della comunicazione, molte organizzazioni
internazionali si sono messe a lavoro per risolvere problemi ingegneristici e fissare ambienti
di lavoro e standard per l’implementazione della televisione digitale[1].
1.1.1 Background storico e tendenze future per la DTV
I correnti sistemi per la televisione analogica sono basati sullo standard NTSC
(National Television Systems Committee), nato negli Stati Uniti d’America nel 1953.
Questo sistema viene utilizzato in America, Canada, Mexico, e Giappone e in molti stati del
Sud America e in Corea sin dal 1954.
Il sistema PAL (Phase Alternation Line) è una variante del NTSC ed è usato
essenzialmente in Europa, Australia e nel lontano Est in formati differenti. Ci sono altri
sistemi in uso includendo lo standard SECAM e quello basato sui satelliti, il MAC.
L’esistenza di più standard ha da sempre costituito una barriera per la trasmissione
internazionale dei servizi televisivi. Ad ogni modo tutti questi standard analogici hanno
come destino comune quello di essere sostituiti dalla nascita di standard per la televisione
digitale terrestre, dotati di meno restrizioni per la trasmissione e che permettono la
diffusione di nuovi servizi: basti pensare a canali informativi contenenti servizi internet e
sottoscrizioni a programmi.
La maggior parte dei televisori a colori usa un rapporto di rappresentazione di 4:3,
mentre alcuni ricevitori a grande schermo usano un rapporto di rappresentazione di 16:9.
Comunque la maggior parte dei broadcasters considera come univoco il rapporto di
rappresentazione adattabile ai 16:9 . È possibile offrire anche una via di mezzo di rapporto
di rappresentazione il 14:9 definito “half letterbox”. Tutti i nuovi chips digitali si trovano a
2
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
bordo di unità di ricezione a basso costo che demodulano e decodificano i segnali digitali
terrestri.
Nell’era del broadcasting della TV analogica coloro che acquistavano le strutture di
trasmissione della rete terrestre erano spesso delle organizzazioni. Per ragioni
principalmente storiche, e visto il costo ingente dell’apparecchiature di rete, molti networks
sono lo stato o i capi di governo. Questa limitazione di accesso alle onde elettromagnetiche
per nuovi gestori, proteggeva dalla competizione gli operatori di rete esistenti. Proprio a
causa di questi ostacoli per molti anni i broadcasters coinvolti nelle trasmissioni terrestri
sono stati molto pochi. Ad ogni modo grazie all’avvento delle tecnologie digitali saranno
rese disponibili quantità abbondanti di banda cosi da creare grandi opportunità sia per i
fornitori di programmi e sia per coloro che realizzano i programmi. Ci sarà una divisione
ancora più marcata tra coloro che producono i programmi e coloro che li forniscono e le
pratiche tradizionali di broadcasting saranno rimpiazzate da un metodo di operare più
flessibile e competitivo[1].
1.1.2 Sviluppi Globali della Televisione Digitale Terrestre
Lo sviluppo della televisione digitale terrestre in Europa, Stati Uniti d’America, e
Giappone avviene in tempi e modi leggermente differenti. Gli organismi di
standardizzazione di questi tre paesi sono state influenzati in maniera più sostanziosa dal
lavoro portato avanti dal Moving Pictures Expert Group (MPEG) nei confronti degli
standard di codifica audio e video, informazioni di sistema, e standard di multiplexaggio.
Queste organizzazioni di standardizzazione hanno lavorato per sviluppare standard di
modulazione broadcast adattabili per il tipo di media e banda di canale già in uso all’interno
della particolare regione.
Come risultato ci sono differenze tra le modulazioni usate , per esempio in Europa
e negli Stati Uniti[1].
1.1.2.1 DTV negli Stati Uniti d’America
Nel 1987 la Federal Communication Commissions (FCC) iniziò la definizione di
uno standard adatto per la High Definition Television (HDTV) che fosse compatibile con
l’esistente standard della televisione analogica, NTSC. Nel 1992 furono proposti quattro
3
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
progetti, e nel 1993 venne raggiunto un accordo tra i quattro consorzi proponenti allo
scopo di formare una Grand Alliance (GA) per completare lo sviluppo dello standard.
La GA ha specificato:
•
uno standard Dolby chiamato AC-3 per la codifica multicanale di sorgenti audio, ed
ha specificato inoltre lo standard MPEG conosciuto come MPEG-2 per la codifica delle
sorgenti audio, informazioni di sistema ed il multiplexaggio;
•
una modulazione vestigiale ad 8-livelli per il broadcasting terrestre con un payload di
19.28 Mbps per un canale broadcast con una banda di 6 Mhz.
•
un sistema per la televisione via cavo.[1]
1.1.2.2 DTV in Europa
I primi anni ’90 in Europa rappresentarono il periodo della nascita di molti progetti
per la definizione di uno standard per la regolamentazione della HDTV e con l’aiuto del
governo tedesco nel 1992 venne costituito l’European Lauching Group (ELG) che
funzionò da luogo di ritrovo per le organizzazioni interessate e presenti in Europa. Grazie
al successo dell’ELG, nel 1993 approssimativamente 80 tra broadcasters, corpi di standard,
compagnie di telecomunicazioni, industriali, ed altre organizzazioni formarono il Digital
Video Broadcasting project (DVB) siglando un memorandum di intesa.
Scelto come quartier generale l’European Broadcasting Union (EBU) e con il
supporto della European Commission, il progetto DVB ha sviluppato gli standard per il
broadcasting attraverso differenti canali come cavo, satellite e terrestre. Il progetto DVB ha
definito l’MPEG-2 come lo standard per la codifica delle sorgenti audio, video, così come
per le informazioni di sistema e per il multiplexaggio. Il progetto DVB ha specificato la
Coded Orthogonal Frequency Division Multiplexing (COFDM) come lo standard per
la modulazione del segnale digitale terrestre che è andato sotto il nome di standard DVBT[1].
1.1.2.3 DTV in Giappone
Il Giappone iniziò ufficialmente lo sviluppo della DTV nel 1994, il tutto sotto il
ministero delle poste e telecomunicazioni giapponese con la funzione di coordinatore dei
lavori. Venne adottato l’MPEG-2 per la codifica delle sorgenti e le informazioni di sistema
e fu istituito il Japanese Digital Broadcasting Expert Group (DiBEG) per formulare
4
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
una strategia per il broadcasting attraverso vari mezzi. I giapponesi hanno elaborato una
variante alla COFDM per il broadcasting terrestre conosciuto come Integrated Services
Digital Broadcasting-Terrestrial, (ISDB-T)[1].
1.2 Lo standard DVB
Figura 1.Gli attori del mondo DVB
Con lo scopo di realizzare lo standard per il broadcasting di TV digitale e servizi
dati, nel 1993 è stato costituito in Europa il consorzio DVB (Digital Video Broadcasting) a
cui aderiscono più di trecento partners tra broadcasters, operatori di rete e costruttori in 35
paesi differenti. Il primo standard ratificato è proprio DVB: un sistema basato sulle
specifiche MPEG-2. Lo standard DVB definisce tutte le caratteristiche di un sistema per il
broadcasting di video digitale e dati[4].
5
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
1.2.1 Specifiche
•
Specifiche a livello logico:
o Formati di compressione Audio/Video;
o Costruzione dei flussi digitali ( Transport Stream );
o Formato dei pacchetti;
o Segnalazione dei servizi;
o Incapsulamento di dati generici non A/V e di protocolli non DVB;
•
Specifiche di livello fisico:
o Specifiche sul segnale fisico (modulazione, codifica ecc…) nei vari mezzi
trasmissivi (cavo,satellite,ripetitori terrestri)[4]
1.2.2 MPEG-2: Codifica audio-video e multiplazione
MPEG-2 (acronimo di Motion Picture Experts Group) è un sistema di codifica
digitale di immagini in movimento, che permette di comprimere i dati mantenendo una
buona qualità. MPEG-2 è stato destinato al broadcast televisivo, fin dalla sua introduzione
nel 1994. Una efficiente codifica per il video interlacciato e la scalabilità sono state le
caratteristiche che hanno permesso di digitalizzare efficacemente i segnali televisivi. Grazie
all’MPEG-2 si ottengono immagini televisive di buona qualità con bit rate compresi tra 4 e
9 Megabit al secondo.
MPEG-2 è costituito da “profili” e “livelli”. I profili definiscono la modalità di
compressione utilizzata e stabiliscono di fatto il compromesso tra tasso di compressione e
costo del decodificatore. I livelli definiscono la risoluzione di immagine ed il bitrate
massimo da associare ad ogni profilo. Ci sono complessivamente 4 livelli e 5 profili le cui
caratteristiche sono riassunte nella Figura 2 alla pagina successiva. La combinazione
attualmente utilizzata dalle trasmissioni digitali per ricezione diretta impiega il cosiddetto
“main level @ main profile” MP@ML.
Descriviamo sinteticamente le caratteristiche dei livelli e dei profili dell’MPEG-2
che rappresentano la forza del sistema in quanto a flessibilità e adattabilità a varie
applicazioni. E’ sorprendente come MPEG-2 riesca a spaziare tra la più bassa risoluzione di
immagine SIF fino all’alta definizione HDTV semplicemente variando le associazioni tra
livelli e profili. I livelli previsti sono: low (basso), main (principale), high-1440 (alto-
6
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
1440), high (alto). Il livello “low” corrisponde alla risoluzione più bassa come la SIF
utilizzata nell’MPEG-1; il livello “main” corrisponde alla struttura 4:2:0 fino ad una
risoluzione di 720 x 576 pixel; il livello “high-1440” è dedicato alla tv ad alta definizione
HDTV mentre il livello “high” è ottimizzato per il formato di schermo 16/9 in alta
definizione.
La descrizione dei profili è invece un po’ meno semplice di quella dei livelli in
quanto implica la conoscenza delle metodologie di base con cui opera il sistema MPEG;
tuttavia azzardiamo una sintesi riferendoci agli effetti dell’applicazione dei vari profili.
Figura 2.Combinazioni di profili e livelli nello standard MPEG-2[2]
•
Il profilo “simple” permette di semplificare notevolmente sia il codificatore di
stazione che il decodificatore di utente in quanto non utilizza la predizione di tipo
B(Bidirectional-Frame).
•
Il profilo “main” è quello che offre il miglior compromesso tra qualità e tasso di
compressione, impiega le immagini relative alle predizioni I(Intra-Frame), P(PredictedFrame), B(Bidirectional-Frame) a svantaggio dei dispositivi di codifica e decodifica che
sono più complessi.
•
Il profilo “scalable” è destinato ad applicazioni particolari dove sia necessario ad
esempio mantenere la compatibilità tra alta definizione e definizione standard oppure,
7
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
riuscire ad ottenere una qualità accettabile in condizioni di ricezione difficile come potrebbe
accadere ad esempio nella televisione digitale terrestre.
•
Il profilo più elevato “high” è destinato all’alta definizione con le strutture 4:2:0 e
4:2:2.
Un ultima nota: i profili mantengono una certa compatibilità verso l’alto nel senso
che, nella fase di ricezione, i profili più alti possono decodificare i profili inferiori[2].
1.2.3 La compressione del segnale video
Per la diminuzione del segnale di ridondanza, spaziale e statistica, `e previsto l’uso
congiunto della trasformata discreta coseno (DCT), di una matrice di quantizzazione, di
uno zig-zag scan, di un codificatore RLC e di un codificatore di Huffman. L’utilizzo di tali
mezzi porta alla creazione di quello che viene chiamato I-Frame, Intra-Frame. Tale frame
conserva dimensioni ragguardevoli, e quindi risulta oneroso in termini di banda.
La ridondanza spaziale `e diminuita applicando la DCT all’immagine. Questa
tecnica viene attuata dividendo l’immagine in blocchi ai quali viene applicata la DCT in
modo da ottenere una matrice di 64 elementi ogni blocco. Questi elementi rappresentano le
frequenze delle componenti spaziali.
La ridondanza statistica viene eliminata applicando alla matrice ottenuta tramite la
DCT una matrice di quantizzazione che toglie le componenti ad alta frequenza,
impercettibili all’occhio umano. Questo tipo di quantizzazione produce una perdita di dati
irreversibile, che altera la qualità dell’immagine definitivamente. Il risultato `e una nuova
matrice che viene passata per uno zig-zag scan in modo da mettere in fila il maggior
numero possibile di 0, mentre si forma la sequenza di bit da trasmettere. La sequenza cosı
ottenuta viene poi codificata con un RLC e compressa ulteriormente da un codificatore di
Huffman.
Questo tipo di compressione porta di fatto ad un problema di non poco conto. Se
durante la trasmissione si verifica un errore la decodifica dell’immagine non `e più possibile
e questa si perde completamente. Per ovviare a questo problema, e rendere lo standard più
flessibile, è stato inserito un sistema di scalabilità del rapporto segnale rumore (SNR). E’
possibile scegliere quali bit decodificare, ad esempio solo quelli ad alta priorità, in modo da
8
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
ottenere indipendentemente dal rumore sul canale un’immagine visibile anche se affetta da
rumore.
Genericamente in un flusso video molta dell’informazione trasmessa risulta essere
contenuta nel segnale precedentemente processato. E’ quindi possibile pensare di ricavare
parte del contenuto informativo dai dati già in possesso. Questo permette di trasmettere un
quantitativo di informazioni minore che sommate a quelle ottenute dal segnale gi`a
decodificato compongono l’informazione corretta o comunque non distinguibile
dall’occhio umano rispetto all’originale. Applicando questo concetto si riesce a ridurre la
ridondanza di informazione in termini temporali.
Un flusso MPEG-2 `e composto da tre tipi diversi di frame: I-frame, P-frame e Bframe.I frame di tipo I, Intra-Frame sono immagini alle quali `e stato applicato il processo
di compressione spaziale e statistico. I frame di tipo P Predicted frame sono immagini
parziali nelle quali vengono riportate solo le differenze con l’I-frame precedente. Questo
tipo di frame `e molto povero di contenuto informativo e quindi ha un onere trasmissivo in
termini di banda molto ridotto. L’immagine reale viene ricostruita a partire dall’I-frame
precedente. I frame di tipo B, Bidirectional Frame sono molto simili ai P-Frame ma
permettono la ricostruzione sia dall’I-frame precedente che da quello successivo e lo
scorrimento dei video in entrambi i sensi.
Una serie di frame indipendente dalla loro disposizione viene chiamata GOP,
Group Of Pictures.
Figura 3.Schema del GOP standard per l'MPEG-2
9
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
Il GOP rappresenta l’ordine in cui i frame vengono trasportati. Come si nota dalla
Figura 3 un solo I-frame, ad alto contenuto informativo e quindi occupante molta banda in
fase di trasmissione del segnale, `e presente in un GOP standard. Questo rende la banda
necessaria alla trasmissione di un video molto minore rispetto all’invio di soli I-frame.
Tutti questi accorgimenti riescono a portare un flusso video di 270Mbps a 45Mbps.
Le alterazioni che questo forte processo di compressione porta sullo stream video sono
pressoché impercettibili all’occhio umano.
1.2.4 La codifica audio
Il bitrate caratteristico di due canali audio con una qualità CD è pari a 1,4 Mbps,
valore non elevato, ma che può arrivare a 200 Kbps senza pregiudicare la qualità, con
opportune tecniche di compressione. Queste ultime sono basate sulle caratteristiche
psicoacustiche dell’orecchio umano che percepisce meglio i toni a potenza elevata a
discapito dei toni adiacenti a potenza minore. Il criterio alla base della compressione audio
è riassumibile nel principio: “se non lo posso udire non lo codifico”. Il segnale audio
sottoposto al processo di compressione è quello con frequenze comprese tra 0Hz e 22
Khz. Ognuna delle 32 sottobande in cui viene suddiviso lo spettro viene filtrata,
quantizzata e codificata secondo le caratteristiche dell’orecchio umano. La compressione
audio relativa agli standard MPEG-2 non risulta migliorata rispetto al precedente MPEG-1,
ma permette ad esempio di inviare fino a cinque canali audio per la riproduzione di un
suono avvolgente e fino a sette canali monofonici per le applicazioni multi-lingua. Esistono
due tipi di codifica, una compatibile con l’MPEG-1 Audio e una non compatibile (AC3).
Dalla codifica risulta prodotto un segnale impacchettato insieme a tutte le informazioni
riguardanti il processo di codifica utilizzato. Tale pacchetto prende il nome di Elementary
Stream(ES).
1.2.5 Elementary Stream
Nello standard MPEG-2 Video, l’Elementary Stream nasce con lo scopo di
strutturare i dati secondo un’unica sintassi e fornire le informazioni necessarie al
decodificatore per ricostruire i frame in maniera corretta. All’interno di una sequenza va
stabilita una gerarchia di livelli:
10
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
•
Sequenza;
•
Gruppo di immagini(GOP);
•
Immagini di tipo I,P,B;
•
Slice;
•
Macroblocchi;
•
Blocchi.
Tutti questi strati opportunamente organizzati formano un Elementary Stream
Video, che può essere anche considerato come uno stream continuo composto da frame
compressi e codificati insieme alle informazioni necessarie alla loro ricostruzione. L’ES
rappresenta in definitiva un flusso di bit che trasporta le informazioni destinate al decoder
audio o video per la ricostruzione fedele del segnale. L’ES costituisce l’output di ciascuno
dei due blocchi di codifica, anche se non contiene informazioni relative né alla
temporizzazione, né al sincronismo, impedendo così di fatto una ricostruzione
correttamente temporizzata. Per questo motivo l’MPEG-2 System definisce, a partire
dall’Elementary
Stream,
nuove
strutture
più
adatte
alla
trasmissione
e
all’immagazzinamento. Il primo passo è suddividere la struttura continua dell’ES in
pacchetti. Questi pacchetti prendo il nome di PES (Packetized Elementary Stream) packet.
Sono composti da una intestazione e da un campo dati, la loro dimensione è variabile e
dipende dalla particolare applicazione. Le informazioni riguardanti la temporizzazione si
trovano nel campo Header del PES visto che nel ES non sono presenti informazioni
riguardanti il tempo in cui esso viene trasmesso. In tale header si trova PTS (Presentation
Time Stamp), DTS(Decoding Time Stamp), trick time ecc… Il modello di temporizzazione
viene stabilito nell’MPEG-2 con lo scopo di sincronizzare correttamente il codificatore ed
il decodificatore, presentare in modo sincronizzato gli ES, riordinare le immagini I,P e B e
annullare i ritardi aleatori introdotti dai canali di comunicazione. Questi obiettivi vengono
raggiunti per mezzo dell’inserimento di timestamp nell’intestazione dei pacchetti PES e di
clock reference nell’intestazione dei pacchetti TS e PS ottenuti attraverso il multiplexaggio
di ogni programma. MPEG-2 ci dice che tipo di temporizzazione adottare ma non come
generare tali segnali lasciando campo libero in materia ai produttori di servizi. Per poter
generare dei programmi , MPEG-2 stabilisce come si combinano uno o più programmi ES
video e/o audio e altri dati, in uno o più stream appropriati per la memorizzazione su
11
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
supporto o la trasmissione. Lo standard stabilisce pertanto un metodo di multiplexing e la
sintassi dello stream risultante. Tale metodo è chiamato “multiplexing per pacchetti”.
Questo tipo di multiplexing permette un bitrate variabile ed un bitrate costante
semplicemente variando appropriatamente la lunghezza o la frequenza dei pacchetti. Come
risultato del multiplexaggio si ottengono due tipi differenti di stream: il Transport Stream
(TS) ed il Program Stream(PS) ciascuno ottimizzato per un preciso contesto:
•
Il Transport Stream può contenere uno o più programmi TV e ognuno con la
propria base temporale indipendente.
•
Il Program Stream è simile al flusso MPEG-1, ma utilizza una nuova sintassi in
modo da fornire nuove funzionalità mantenendo però la compatibilità con il precedente.
Contiene l’equivalente di un solo programma TV e può multiplexare uno o più Elementary
Stream con una base di tempo comune.
Le strutture del PS e del TS non seguono strettamente un modello a livelli, così è
ragionevolmente possibile convertire l’uno nell’altro e viceversa grazie all’utilizzo comune
dei pacchetti PES. Per la natura del canale da noi utilizzato in questo lavoro di tesi,
parleremo essenzialmente di TS visto che rappresenta l’unità fondamentale del trasporto
informativo nel DVB. Con un multiplexaggio vengono combinati tutti i TS ottenendo
come unico risultato un unico flusso TS. L’unica restrizione imposta dallo standard per
l’ordine di ricombinazione è che sia preservato l’ordine sequenziale tra pacchetti di uno
stesso ES.
12
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
Figura 4.Flusso dati Transport Stream
Figura 5.Singolo Transport Stream Packet
1.2.6 Concetti e terminologia DVB
Nella terminologia propria DVB o MPEG-2, ogni transport stream è anche
chiamato multiplex, per il fatto che consiste di un certo numero di servizi multiplexati
13
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
assieme. Ogni multiplex, o flusso TS, viene trasmesso in broadcast su una singola
frequenza e solamente un multiplex può essere trasmesso su ogni frequenza. Ogni
multiplex tipicamente ha un data rate di circa 40 Mbps. I motivi di questa scelta riguardano
principalmente le limitazioni in termini di banda del canale di trasmissione. All’interno di
un multiplex, ogni gruppo di elementary stream che costituisce un singolo canale tv è
chiamato servizio o programma. Il numero di elementary stream all’interno di un servizio
non deve necessariamente essere costante; tale numero infatti può variare tra i singoli Tv
shows trasmessi all’interno di quel servizio (alcuni potrebbero essere trasmessi anche in
multilingua o in multiangolo) oppure all’interno di uno stesso evento Tv. Questi
cambiamenti , anche se non molto comuni, sono perfettamente consentiti dallo standard
MPEG. In termini DVB, ogni TV show è chiamato evento; quindi da un certo punto di
vista ogni servizio consiste di un certo numero di elementary stream trasmessi
simultaneamente, ma da un altro punto di vista il servizio consiste di una serie di eventi
individuali trasmessi uno dopo l’altro[5].
Fisicamente il Transport stream riunisce un set di servizi, ma tali servizi possono
essere anche raggruppati seguendo uno schema logico; un gruppo logico è chiamato
bouquet. Solitamente tale termine sta ad indicare i pacchetti di servizi offerti dallo stesso
broadcaster (es. pacchetto basic, pacchetto sport, pacchetto cinema ecc…), usato per
riunire logicamente servizi che fisicamente appartengono a TS diversi.
La Tv digitale inoltre introduce il concetto di network, ma non nell’uso
computeristico che ne facciamo abitualmente.
Il network coincide con il singolo broadcaster, che è per questo anche network
operator, e può o non può essere anche proprietario del mezzo trasmissivo. Nel caso di un
sistema di TV via cavo, solitamente , il proprietario dell’infrastruttura di rete è anche
network operator. Ma ciò non avviene per la TV via satellite o terrestre. Quindi
ricapitolando:
•
Un network è una singola entità che trasmette in broadcast uno o più transport
stream;
•
Un transport stream è uno stream MPEG-2 contenente vari servizi;
•
Ogni servizio è un canale TV e consiste di un certo numero di eventi che si
susseguono temporalmente uno dopo l’altro;
14
Capitolo 1
•
La Tv digitale:gli standard DVB ed MHP
Ogni evento è un singolo TV show (programma televisivo) e consiste di un certo
numero di elementary stream;
•
Ogni elementary stream è un flusso di pacchetti MPEG-2, contenenti audio,video o
dati binari codificati MPEG-2;
•
Vari servizi(anche appartenenti a transport stream diversi) possono essere
raggruppati insieme logicamente in un bouquet.
•
Ogni servizio può essere identificato univocamente da tre valori:
•
Original network ID: è l’identificativo del network che originariamente trasmette il
servizio;
•
Transport stream ID: per identificare un transport stream particolare all’interno di
quel network;
•
Service ID: per identificare il servizio all’interno di quel transport stream.
1.2.7 Gli standard di livello fisico
Lo standard principale è completato da altre specifiche che definiscono i parametri
fisici della trasmissione (frequenza,modulazioni,codifiche,ecc…). é stato definito uno
standard per ogni possibile canale trasmissivo:
•
DVB-S per la diffusione satellitare(ETSI EN 300 421 e TR 101 198): è lo
standard per le trasmissioni digitali satellitari(non solo TV, ma anche Internet via satellite).
Per la ricezione richiede antenne paraboliche e Set Top Box (o anche satellitari per PC); la
ricezione avviene da postazione fissa. La tecnica di modulazione usata è la QPSK in banda
Ku (11-14,5 GHz) e la copertura geografica delle trasmissioni è a livello continentale.
Tipicamente un canale satellitare presenta un BER pari a 10-7; è un valore indicativo in
quanto esistono numerose variabili quali condizioni atmosferiche, precisione del
puntamento, tecnologia del satellite o interferenze elettromagnetiche. Lo standard DVB
con l’aggiunta di FEC (Forward Error Correction) può portare il canale satellitare ad un
BER di 10-11 (Quasi Error Free). È in via di definizione lo standard DVB-S 2 con nuove
modulazioni, codifiche più potenti e maggiore adattabilità del canale[5].
15
Capitolo 1
•
La Tv digitale:gli standard DVB ed MHP
DVB-T per la diffusione terrestre (ETSI EN 300 744 e TR 101 190): è lo
standard per le trasmissioni digitali terrestri, utilizza le frequenze nelle bande VHF/UHF.
Permette di trasmettere fino a 4-5 canali digitali dove oggi può transitare un solo canale
analogico (ampiezza di canale pari a 8 Mhz). Non richiede nuove antenne ma gli utenti
dovranno munirsi di nuovi Set Top Box o nuovi televisori dotati di ricevitore digitale
interattivo integrato. Consente di circoscrivere le trasmissioni a livello regionale e permette
la ricezione anche a dispositivi mobili. La tecnica di modulazione utilizzata è quella
numerica COFDM multiportante (Coded Ortogonal Frequency Division Multiplex); è
una tecnica particolarmente robusta rispetto alle riflessioni del segnale o più in generale alle
interferenze e per questo indicata per ricezione mobile. Combinando i vari schemi di
modulazione e codifica si possono ottenere bit rate che vanno da 4,98 Mbps a 31,67 Mbps.
I parametri di modulazione sono:
•
Banda occupata del segnale COFDM: 6 Mhz, 7 Mhz e 8 Mhz;
•
Numero di sottoportanti irradiate: 8K (6817) o 2K (1705); i dati sono
riparti in un numero elevato di portanti ortogonali tra di loro;
•
costellazione per singole portanti: QPSK, 16-QAM, 64-QAM;
•
Inner Code Rate : ½,2/3,3/4,5/6,7/8;
•
Intervallo di guardia:1/4,1/8,1/16,1/32. Per evitare interferenze dovute agli
echi generati dallo stesso trasmettitore, oppure provenienti da altri trasmettitori
appartenenti alla stessa rete, deve essere inserito un intervallo di guardia tra due
simboli consecutivi COFDM[5].
•
DVB-C per la diffusione via cavo (ETSI EN 300 429): è lo standard per
trasmissioni digitali via cavo e utilizza canali di 8 Mhz all’interno della banda di downstream
(tipicamente 70-130 Mhz e 300-862 Mhz). La modulazione utilizzata è la QAM con 16, 32,
64, 128 o 256 punti nel diagramma della costellazione. La possibilità di spingersi fino ad un
così alto livello di modulazione QAM è permessa dal basso tasso di BER del mezzo
16
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
trasmissivo. Lo standard è dedicato ad una realtà cablata come ad esempio a quella HFC e
il vantaggio immediato è quello di poter disporre di un canale di ritorno ad alta velocità
sullo stesso mezzo. Per la ricezione lato utente è richiesto un Set Top Box con
eventualmente anteposto un cable modem per la separazione dei dati dal video e per la
gestione del canale di ritorno. Grazie a tali livelli di modulazione si può arrivare fino ad un
bit rate di 53 Mbps in un canale di 8 Mhz[5].
1.3 Lo standard MHP
Attualmente tutti i principali sevizi interattivi sono già stati implementati tramite
tecnologie proprietarie (salvo alcune eccezioni) e sono attivi su diverse emittenti digitali,
soprattutto Pay-Tv satellitari. Il consorzio DVB ha standardizzato l’infrastruttura per il
trasporto dati in ambiente televisivo, ma non ha inizialmente fornito alcuna specifica per la
realizzazione di una qualunque piattaforma applicativa. Sono nate negli anni ’90 alcune
aziende che hanno sviluppato la loro tecnologia proprietaria per utilizzare i sistemi DVB
per la distribuzione ed esecuzione di applicazioni sui ricevitori DVB; in questo panorama,
un operatore di TV digitale intenzionato a fornire servizi interattivi si affida ad una
tecnologia proprietaria per realizzare il proprio set di applicazioni supportate
esclusivamente da un set top box realizzato secondo questa tecnologia. Si parla di un
mercato verticale, in cui sono presenti molteplici piattaforme per la fruizione dei servizi
interattivi, quasi sempre incompatibili tra loro. In questa selva di soluzioni proprietarie si è
avvertita la necessità di definire una piattaforma standard per la tv interattiva; questo
soprattutto in vista della fine delle trasmissioni televisive analogiche terrestri dove i canali
vengono offerti come servizio pubblico in chiaro e gli eventuali servizi interattivi devono
essere fruibili da tutti gli utenti senza problemi di compatibilità sul ricevitore. Il consorzio
DVB ha quindi provveduto ad un’architettura completa grazie alla definizione e
standardizzazione di:
•
Un sistema di trasporto per le applicazioni;
•
Un ambiente di esecuzione;
•
Un set di API (Application Programming Interface)
Da un mercato verticale si è quindi passati ad un mercato orizzontale: un’unica
piattaforma standardizzata con cui poter accedere ai servizi offerti da molteplici
17
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
broadcaster senza problemi di compatibilità. Le specifiche MHP, quindi, coprono tutte le
questioni relative alla realizzazione, alla trasmissione e all’utilizzo di applicazioni iTV
(interactive TV), nonché le caratteristiche peculiari del loro ambiente di esecuzione; MHP
risponde alla necessità di avere una soluzione open che vada oltre la rigidezza e
incompatibilità tra i sistemi proprietari attualmente già in uso. Oltre all’iniziale
interoperabilità, i principali obiettivi dello sviluppo di MHP sono stati la capacità di
evolvere , la compatibilità con il passato, la modularità e la stabilità. È stata presa in
considerazione anche Internet così come l’integrazione con la rete locale domestica
costituita da vari terminali (PC, telefoni, apparecchi domestici, ecc…) MHP è uno standard
molto giovane; la prima release è stata creata dal DVB Project e standardizzata dall’ETSI
Institute nell’anno 2000. L’MHP definisce un interfaccia software generica (API) tra le
applicazioni interattive provenienti dai vari fornitori di servizi e i terminali sui quali esso
sarà eseguito, indipendentemente dalla loro implementazione hardware e software. Il livello
delle prestazioni di questi terminali può variare notevolmente. L’MHP può supportare varie
applicazioni(in ordine crescente di interattività):
•
EPG: Electronic Program Guide;
•
Servizi informativi paragonabili a un “super teletext”;
•
Applicazioni relative ai programmi attuali(scommesse sugli incontri, giochi, telefoto
ecc…);
•
Applicazioni di T-Learning(diffusione di contenuti per apprendimento attraverso i
mezzo televisivo)
•
Applicazioni di T-Government;
•
Commercio Elettronico con transazioni bancarie sicure.
1.3.1 Architettura di base
L’architettura è definita da tre livelli:
•
Risorse: comprende tutte le parti essenziali del Set Top Box : decodifica MPEG,
dispositivi di input/output, processore dell’host, sottosistema grafico, ecc…;
•
Software di sistema: consente la presentazione di una visione astratta della
piattaforma delle applicazioni. Comprende un navigatore (Application Manager) che
prende il controllo della piattaforma e delle applicazioni in esecuzione. Il nucleo software
18
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
dell’MHP è chiamato DVB-J (DVB-Java): infatti si basa sulla Java Virtual Machine della
Sun Microsystems.
•
Applicazioni : le applicazioni MHP accedono alla piattaforma attraverso le API di
MHP. Le diverse interfacce software necessarie per l’uso di risorse specifiche sono
implementate come estensioni o plug-in. Il compito di qualunque implementazione pratica
dell’MHP è quella di assicurare la corrispondenza tra le API e le diverse risorse hardware
della piattaforma. Alcuni esempi di applicazioni sono: EPG (Electronic Program Guide),
servizi informativi, giochi, T-Commerce, T-Government ecc….
1.3.2 Profili MHP
Il sistema MHP ha fornito il concetto di profilo per dare una mano
nell’implementazione dello standard. Ogni profilo si riferisce ad una specifica area di
applicazioni e conseguentemente definisce i requisiti dei Set Top Box necessari a
supportarlo. Attualmente esistono tre profili MHP, definiti in due set di specifiche. Infatti
dato che i primi due sono molto simili tra di loro, il consorzio ha deciso di includerli nella
stessa release di specifiche. I tre profili attorno alla quale ruota tutta la piattaforma sono:
•
Enhanced Broadcast Profile : definito nelle specifiche MHP 1.0 (ES 201 812) e
designato a rispecchiare i vari modi e le funzionalità dei sistemi middleware esistenti e le
applicazioni che girano su di essi. Come evince dal nome, questo profilo richiede un Set
Top Box con nessuna o limitate capacità di gestione del canale di ritorno; è il profilo base e
permette solamente l’arricchimento del contenuto audio video con informazioni e
immagini visualizzabili e navigabili sullo schermo. Per questo motivo non sono richieste
performance particolari da parte dei Set Top Box.
•
Interactive Tv Profile : definito nelle specifiche MHP 1.0 (ES 201 812), è il profilo
intermedio
che
permette
di
utilizzare
il
canale
di
ritorno
(di
tipo
PSTN,ADSL,GPRS,Ethernet, ecc…) per fornire servizi con interattività superiore rispetto
al profilo base. Questo profilo, infatti, supporta anche il caricamento di applicazioni MHP
tramite il canale di ritorno (ma solo dalla versione 1.1), caratteristica che nel profile
Enhanced è possibile solo attraverso il canale broadcast;
•
Internet Access Profile : definito dalle specifiche MHP 1.1 (TS 102 812), richiede
in STB molto più sofisticato, con potenza di calcolo e memoria interna maggiori che nei
19
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
primi due profili sopra descritti; permette tramite il canale di ritorno un’interattività totale e
un completo accesso ai contenuti di Internet. Il profilo Internet Access contiene un
elemento HTML opzionale chiamato DVB-HTML, permettendo il supporto di
XHTML,CSS,DOM,ECMA Script. Questo profilo necessita di performance di alto livello
essendo obbligatoria l’adozione di un browser internet e di un client di e-mail embedded
nel set top box. In aggiunta alla definizione dei profili, le specifiche MHP caratterizzano
anche altri aspetti, come la piattaforma DVB-J, i meccanismi di sicurezza MHP, i protocolli
per il download delle applicazioni ecc…[6]
1.3.3 Protocollo di trasporto
Affinché sia in grado di comunicare con il mondo esterno, è necessario che il
terminale utente supporti vari tipi di rete; per questo le specifiche MHP introducono il
supporto a diversi protocolli, così come definiti nelle specifiche DVB, a cui la piattaforma
fa riferimento. I protocolli definiti in questi standard forniscono il supporto generico a una
varietà di servizi sia di tipo broadcast che interactive ; le specifiche infatti supportano i
protocolli DSM-CC data carousel e object carousel e tutti i protocolli basati su IP. Risulta
interessante che i protocolli IP, intrinsecamente usabili sul canale interactive, possono
essere usati anche sul canale broadcast grazie al supporto della Multiprotocol Encapsulation
(MPE). Le varie configurazioni di rete supportate sono raggruppate in due classi:
•
I servizi broadcast sono implementati su sistemi che consistono di un canale di
downstream dal Service Provider all’utente finale;
•
I servizi interattivi invece si riferiscono a sistemi che consistono di un canale di
downstream associato ad un canale di ritorno.
I file dati sono trasmessi utilizzando i protocolli DSM-CC o IP incapsulato in
MPEG-2 così come definito nelle specifiche DVB relativamente alla MPE. Le applicazioni
MHP vengono trasportate all’utente finale attraverso il protocollo DVB Object Carousel
(appartenente sempre alla stessa famiglia dei protocolli DSM-CC), di cui si parlerà in
seguito.
20
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
1.3.4 Protocolli del canale interattivo MHP
DVB prevede il supporto ad un folto set di protocolli per la gestione del canale di
ritorno. Le specifiche MHP richiedono il supporto ai protocolli HTTP 1.0 e HTTPS; il
supporto all’HTTP 1.1 è opzionale ma deve essere compatibile con la definizione di
connessioni persistenti della versione 1.0; infatti, senza il supporto alle connessioni
persistenti , deve essere stabilita una connessione TCP separata per ogni richiesta o URL,
aumentando in tal modo il carico del server HTTP. Infatti spesso si richiede al client di
effettuare richieste multiple allo stesso server in un breve intervallo di tempo e questo
causerebbe facilmente la congestione del server in un panorama multiutente. Per questo le
specifiche
MHP richiedono la compatibilità con la formulazione originale delle
connessioni persistenti così come definite da HTTP 1.0. Durante la connessione al server, il
terminale MHP invia il token cosiddetto “keep-alive” per richiedere una connessione
persistente; il server HTTP (1.0 o 1.1) quindi risponderà con un altro token “keep-alive”,
permettendo al client di procedere con una connessione HTTP persistente.
1.3.5 Tipi di contenuti MHP
La piattaforma MHP offre il supporto a formati di file immagine, fila audio e video
non streaming, sottotitoli, teletext e file caratteri sia residenti che prelevabili dal flusso
broadcast.
•
Formati file immagini : la piattaforma ignora ogni indicazione sul file immagine
trasmesso per quello che riguarda lo scaling dei pixel, lo spazio o la gamma dei colori; ogni
pixel dell’immagine originale viene mappato in un pixel grafico, a meno che non sia
modificato direttamente dall’applicazione che ha richiesto l’immagine. Viene fornito il
supporto ai formati JPEG, GIF, PNG: tra le ultime due è fortemente consigliato l’uso del
formato PNG il cui standard è pienamente supportato.
•
Formati file audio : la piattaforma supporta una versione ristretta dello standard
MPEG-1 audio Layer 1&2 elementary stream codificato ad un bit rate costante.
•
Formati file video : il video cosi come le immagini MPEG possono essere
visualizzati unicamente a pieno schermo oppure a ¼ di schermo. Sono supportati gli IFrame MPEG come sequenze video valide costituite solo da un frame di tipo I. La
piattaforma supporta inoltre i “video drips”, ovvero la possibilità di costruire l’interfaccia
21
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
dell’applicazione processando progressivamente parti di uno stream MPEG-2, ma richiede
che il decoder sia nella modalità di basso ritardo, in cui gestisce unicamente frame di tipo I
o P.
•
Formati streaming audio/video : sono supportati l’audio e video MPEG in
definizione standard alla frequenza di 25 Hz, mentre il supporto all’alta definizione è
opzionale.
•
Formati streaming dati : sono supportati sia i sottotitoli DVB che il teletext; nel
caso in cui siano entrambi disponibili nello stream MPEG, la precedenza viene data ai
sottotitoli DVB.
•
Set di caratteri : almeno il set di font Tiresias deve essere fornito in ogni
implementazione MHP e come minimo deve essere in grado di visualizzare il testo alle
dimensioni di 36,31,26 e 24 punti. Oltre ai set di font di tipo residente , è possibile anche il
download di set di caratteri aggiuntivi nel formato PFR (Portable Font Resource).
Un’applicazione MHP è sostanzialmente una directory di files di programma associate a file
dati. Esistono due tipi di applicazioni MHP: DVB-J e DVB-HTML. Le applicazioni DVBHTML, sono simili ad applicazioni web che accedono alle risorse di sistema tramite
interfaccia DOM e fanno capo a linguaggi XHTML,Ecmascript, DOM. Questo tipo di
applicazione verrà introdotto solo con l’avvento delle specifiche MHP 1.1, pertanto in
questo lavoro di tesi si farà riferimento solamente alle applicazioni di tipo DVB-J.
Un’applicazione DVB-J è composta da file di programma in linguaggio Java[27] (è molto
simile alle classiche applet Java[27] ed infatti va sotto il nome di Xlet) e file di dati utilizzati
al suo interno. L’applicazione viene multiplata nel transport stream assieme ai flussi audio e
video ed eseguita dalla Java Virtual Machine del ricevitore che implementa un sottoinsieme
delle Java API.
1.3.6 Ciclo di vita di un’applicazione
L’esecuzione di un’applicazione MHP può avvenire sia in automatico che sotto
richiesta dell’utente. Fintanto che l’applicazione resta attiva, può essere visualizzata
graficamente sullo schermo e chi la visualizza può interagire con essa. L’applicazione può
anche essere messa in pausa e rimanere cosi attiva, ma in background. In questo caso la si
può riavviare più velocemente. Il ciclo di vita di un’applicazione termina molto spesso
22
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
quando viene cambiato canale. Come visto in precedenza, è anche possibile segnalare la
stessa applicazione su più canali, cosi facendo la si può far rimanere attiva anche dopo che
è avvenuto il cambio di canale. Dopo che l’applicazione viene terminata, le uniche
informazioni che restano memorizzate sul ricevitore sono i dati che l’applicazione
eventualmente scrive sulla memoria fissa. Non è possibile memorizzare l’intera
applicazione sulla memoria fissa, possibilità questa, contemplata per i ricevitori di prossima
generazione, nella versione 1.1 della specifiche MHP. Alcuni ricevitori MHP danno la
possibilità di visualizzare un menù separato con cui controllare le applicazioni. Tale menù
di visualizzazione permette di vedere lo stato delle applicazioni e di inizializzarle, metterle
in pausa oppure terminarle. Un ricevitore MHP può mettere in pausa un’applicazione e
richiamarla nello stato attivo. Nello stato di pausa l’applicazione deve rilasciare quante più
risorse possibili. La cosa più importante, comunque, è che l’applicazione viene nascosta alla
vista. Riassumendo, gli stati del ciclo di vita di un’applicazione sono:
•
Loading: l’application manager decodifica le segnalazioni dell’applicazione e carica
le risorse nella cache, senza però allocare la memoria richiesta per l’esecuzione fino alla
ricezione del segnale di trigger che porta l’applicazione nello stato attivo;
•
Active: l’application manager alloca tutte le risorse richieste dall’applicazione, crea
un actor che gestirà quella particolare applicazione e gli concede il pieno accesso a tutte le
risorse del sistema MHP, nel rispetto della gestione delle risorse e dei vincoli sulla sicurezza;
•
Paused: questo è uno stato di operatività ridotta e l’actor associato all’applicazione
può non avere più pieno accesso alle risorse di sistema che comunque gli verrà concesso
nuovamente appena l’applicazione ritornerà attiva;
•
Destroyed: un actor è in questo stato quando perde le risorse di sistema o i
contenuti di cui necessita. L’actor può ancora essere in grado di eseguire l’applicazione
grazie ai dati nella cache, ma il caricamento di alcuni file potrà fallire;
•
Killed : questo stato è caratterizzato dalla perdita di tutte le risorse. Quando un
actor viene terminato il sistema MHP recupera tutte le risorse e la gestione dei dati rimasti
nella cache dipende dalle varie implementazioni.
23
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
1.3.7 Broadcast di applicazioni e dati: DSM-CC Object Carousel
Il protocollo DSM-CC è stato originariamente progettato per l’uso con macchine di
rete VTR (Video Tape Recorder – Registrazione di video in rete). Da allora si è sviluppato
molto e adesso include il controllo di server video MPEG in rete (con funzioni di play, stop
e pausa del video e dell’audio), il supporto per la trasmissione di dati utilizzando MPEG-2,
timecode per il video MPEG, il broadcasting di dati semplici e interi file system. I sistemi
broadcast sono per loro natura unidirezionali. I dati vengono inviati da un trasmettitore e il
ricevitore non può richiedere dati specifici. Questo significa che un ricevitore non può
accedere ad uno specifico file su un server come avviene per i normali PC. Per questo è
necessaria un’altra soluzione che permetta al ricevitore MHP di accedere ai dati sul flusso
broadcast. L’approccio è quello di trasmettere periodicamente ogni file del file-system e il
ricevitore non deve far altro che attendere il file di cui ha bisogno. Il miglior esempio di
questa soluzione è il sistema di teletext digitale: ad ogni pagina è associato un numero
univoco e le pagine vengono trasmesse una dopo l’altra ciclicamente. Quando l’utente
digita il numero della pagina da ricevere, il ricevitore deve attendere che la pagina venga
trasmessa prima di poterla decodificare e presentare al display. Questo tipo di soluzione va
sotto il nome di carosello (ogni pagina trasmessa a turno periodicamente e il ricevitore deve
attendere il ritorno di quella pagina nel flusso broadcast per poterla prelevare ed usarla).
Certamente, questa soluzione non è molto efficiente, ed infatti si sono nel tempo sviluppate
tecniche per migliorarne le prestazioni. Nel DSM-CC, i dati vengono trasmessi in blocchi
chiamati “moduli” invece che in pagine, ma il principio è lo stesso del sistema di teletext. I
dati da trasmettere vengono suddivisi in moduli, vengono aggiunte informazioni a ciascun
modulo, quindi ogni modulo viene trasmesso a turno. Il DSM-CC supporta due tipi di
carosello. Il più semplice dei due è il data carousel, che fornisce al broadcaster un modo
per trasmettere blocchi di dati al ricevitore. Non sono però presenti dati aggiuntivi che
informano sul tipo di dati e su cosa si sta trasmettendo ed è quindi compito del ricevitore
rielaborare i dati in una forma sensata. In situazioni più complesse il data carousel non
risulta molto utile e in questi casi l’object carousel costituisce una soluzione migliore.
L’object carousel è costruito come protocollo direttamente sopra il data carousel e
fornisce funzionalità vicine a quelle di un file-system standard. Ogni object carousel
consiste di un albero di directory suddiviso in una serie di moduli, che possono contenere
24
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
uno o più file o directory. Ogni modulo può contenere molteplici file con una dimensione
totale minore di 64 Kb, l’inserimento di più file in un modulo di dimensione maggiore di 64
Kb non è permesso, così come suddividere un unico file su più moduli, quindi un file più
grande di 64 Kb andrà a riempire il suo proprio modulo che conterrà solamente quel file.
Questi moduli vengono trasmessi in broadcast l’uno dopo l’altro fino alla fine. A questo
punto la trasmissione comincia da capo con il primo modulo. Per l’accesso ad un preciso
file, il ricevitore deve attendere fino a che non riceve il modulo contenente quel file; a
questo punto può elaborare il modulo ed avere accesso al file desiderato. Questo metodo
può non essere molto efficiente quando le dimensioni totali dei dati da trasmettere sono
considerevoli, ma la maggior parte dei ricevitori sono in grado di mantenere memorizzati
nella cache parte dei dati e questo velocizza notevolmente le operazioni. La
memorizzazione dei dati nella cache può avvenire sia a livello di modulo che di singolo file.
Alcuni moduli possono essere trasmessi più di una volta all’interno dell’object carousel.
Infatti, trasmettendo alcuni moduli più spesso di altri, il tempo di accesso ai file più
comunemente usati viene ridotti notevolmente. D’altro canto però agendo in questo modo
cresce la dimensione totale del carosello, causando un aumento del tempo di accesso ai dati
meno usati. Nel progetto del layout di un carosello si deve considerare attentamente questo
compromesso che, se ottimizzato, può portare ad una riduzione notevole del tempo di
caricamento di un’applicazione. Nello stesso carosello è possibile inserire più applicazioni
che verranno così trasmesse contemporaneamente dando all’utente la possibilità di scegliere
ad esempio se sfogliare la guida EPG piuttosto che navigare in internato misurarsi in un
gioco interattivo. Ovviamente spetta all’object carousel generator il compito di condividere
tra le varie applicazioni la banda destinata al carosello. All’interno di un transport stream
DVB possono essere trasportati uno o più Object Carousel, nello stesso modo in cui
vengono gestiti gli stream del video, dell’audio e della service information. Ad ogni stream
Object Carousel viene allocato un PID univoco che viene referenziato nelle tabelle DVBSI. Uno stream Object Carousel tipicamente occupa una banda di payload di circa 1 Mbps
ma nelle applicazioni reali questo valore può essere limitato dall’abilità del ricevitore di
decodificare ed elaborare le applicazioni[7].
25
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
1.3.8 Architettura di fruizione di un servizio interattivo MHP
Nella Figura 6, a pagina seguente, viene illustrato in maniera molto schematica
l’ambiente coinvolto nell’esecuzione di un’applicazione MHP. Nel momento in cui si
fruisce della Tv digitale entrano in gioco due gestori dei contenuti: il primo è quello che
fornisce i contenuti sottoforma di programmi televisivi, il broadcaster; il secondo è quello
che fornisce i contenuti sottoforma di dati (estratti conto, certificazioni anagrafiche,
informazioni pubblicitarie ecc…). Il primo distribuisce i propri servizi broadcast,
sfruttando un canale dedicato (unidirezionale) che dipende dallo standard utilizzato (etere
per il DVB-T, cavo coassiale per DVB-T, satellite per DBT-S) mentre il secondo
distribuisce i propri servizi utilizzando Internet come luogo di scambio.
Durante un programma televisivo è possibile, attraverso la pressione di un apposito
tasto del telecomando, richiedere l’esecuzione di un’applicazione, ove essa sia disponibile.
Di solito il fornitore informa l’utente della presenza di un’applicazione nel carosello per
mezzo di un segnale visivo, un’etichetta lampeggiante o un’icona corrispondente ad un
tasto colorato del telecomando. Nel momento in cui l’applicazione si trova nella fase di
Active l’utente può iniziare ad usufruire del servizio che, a seconda del tipo, è dotato di un
maggiore o minore grado di interattività. Abbiamo visto che questa può essere locale o
remota. La prima sfrutta soprattutto le risorse presenti all’interno dei moduli del carosello
mentre la seconda utilizza il canale di ritorno, la componente innovativa della Tv digitale.
L’utente effettua delle richieste interagendo con l’applicazione che le inoltra, per mezzo del
canale di ritorno (dial-up, xDSL, GPRS, UMTS, Cable Modem), al centro servizi il quale
restituisce i contenuti voluti al lato client che li ripropone all’interno dello schermo
televisivo[3].
26
Capitolo 1
La Tv digitale:gli standard DVB ed MHP
Canale trasmissivo
opportuno
DSM-CC
Object-Carousel
Programmi Tv
Fornitori di
contenuti
multiplazione
modulazione
TV
RETE TLC
dial-up, xSDL,
GPRS, UMTS,
Cable Modem
DECODER MHP
CANALE DI RITORNO
BIDIREZIONALE
Fornitore dei
servizi
- Server bancario
- SED
- Centro di calcolo
- Ecc..
Internet
L’utente interagisce con
l’applicazione per mezzo
della pressione dei tasti
del telecomando
Figura 6. Architettura di fruizione di un servizio interattivo per la Tv digitale
27
Capitolo 2
La formazione a distanza
2
Capitolo 2
La formazione a distanza
2.1 L’e-learning come fenomeno sociale e di mercato
Lo sviluppo e la diffusione delle nuove tecnologie della comunicazione stanno
mutando in modo sempre più rapido e incisivo la società in cui viviamo: l’evoluzione e il
cambiamento interessano non solo gli strumenti e le tecniche di comunicazione, le strutture
economiche e produttive dei nostri paesi, ma l’intera società e le forme in cui essa si
esprime, a partire dalla cultura, i costumi ed il modo di pensare.
Le funzionalità di base offerte dalla telematica (accesso a risorse, comunicazione in
tempo reale o/e differita, ecc….) possono essere utilizzate direttamente come risorse
nell'ambito di processi didattici di tipo tradizionale o possono servire a dare vita a modelli
di insegnamento/apprendimento innovativi basati su processi di comunicazione
collaborativi e bidirezionali, che si sono delineati negli ultimi anni nell’istruzione a distanza.
L’oggetto di interesse di questa discussione è proprio quello di focalizzare l’attenzione sulle
dinamiche di “e-learning” promosse e valorizzate dal ricorso a tecnologie sempre più
sofisticate; queste ultime costituiscono la risposta concreta alle esigenze più disparate di
coloro che intendono intraprendere un percorso di apprendimento flessibile e che facilita la
gestione integrata di tutti gli aspetti della vita di ciascuno. L’innovazione tecnologica avvia il
passaggio dalla “società dell’informazione” caratterizzata da un’informazione di massa e
fondata sulla distribuzione di dati predefiniti e standardizzati, ad una “società della
conoscenza” che sollecita la partecipazione cognitiva di ogni singolo individuo ed in cui
l’accesso è permesso dal patrimonio di conoscenze e competenze posseduto.
L'accrescimento e il cambiamento continuo sia dei sistemi informatici che delle
infrastrutture di comunicazione consentono la sperimentazione e la concretizzazione di
modelli comunicativi sempre più sofisticati, capaci di offrire nuove opportunità di
apprendimento sia in termini economici che qualitativi. L'aumento incessante dell'utilizzo
di Internet non produce semplicemente la corsa alla realizzazione di diverse tecnologie ma
modifica in maniera rapida e assidua il modo di lavorare delle persone. Per questo motivo il
28
Capitolo 2
La formazione a distanza
concetto di e-learning non si limita a quello di trasferimento di contenuti formativi attraverso
la rete, ma è un modo di concepire la didattica che accresce il valore dell’insegnamento
tradizionale con l'integrazione delle tecnologie della comunicazione. Un esempio dello
sviluppo dei nuovi strumenti resi possibili grazie ai progressi della tecnica negli ultimi anni è
l'impiego del satellite per la formazione a distanza. L'uso della parabola per il broadcasting
televisivo è ormai all'ordine del giorno, ma la sua collocazione all'interno di un sistema di
apprendimento a distanza può rivelarsi un mezzo davvero importante. In particolare la
parabola viene adoperata per la diffusione dei contenuti e per la connettività, con protocolli
impostati sulla trasformazione dei dati a pacchetto proprio come nella rete. Grazie al
continuo miglioramento della qualità delle trasmissioni si ha la possibilità di amministrare
applicazioni interattive mettendo in comunicazione l'insegnante con le aule virtuali. Le
difficoltà più grandi si sono riscontrate nella ricezione dei dati dal satellite via modem
terrestre, infatti questo processo si è rivelato ancora troppo lento considerate le aspettative
iniziali. L'opportunità di utilizzare l'e-learning via satellite attraverso la teledidattica e la
teleformazione ha attirato l'attenzione di molte aziende in tutta Europa, Italia compresa, anche
se la maggior parte di questi progetti è ancora in fase sperimentale[8].
2.1.1 La storia della formazione a distanza
Come è noto, nella cultura anglosassone la formazione a distanza (FAD) ha una
lunghissima tradizione. Fin dal secolo scorso varie università e istituzioni “vendevano”
formazione veicolata grazie ai servizi postali dell’epoca. Con il passare del tempo, questa
metodologia si è diffusa anche in altri ambiti culturali (Francia, America Latina, Italia) e ha
utilizzato di volta in volta nuovi strumenti di comunicazione. Così si è passati dalla posta, al
telefono, al fax e, più recentemente, alla distribuzione via TV (sia etere che satellitare).
Infine si è approdati a Internet . Comunque tutti questi mezzi di comunicazione vengono
utilizzati come semplici veicoli di materiali didattici che possono assumere la forma di libri,
audio cassette, video cassette, cd-rom ecc. In sostanza, però, il metodo didattico è rimasto
sempre il medesimo: un individuo (allievo) viene raggiunto dal materiale didattico che
studia grazie all’assistenza a distanza di un tutor . Al termine del processo formativo ci sarà
una sessione di valutazione che permetterà all’allievo di ottenere un titolo di studio. In
questa cornice, possiamo ragionevolmente affermare che tutte le organizzazioni di FAD
29
Capitolo 2
La formazione a distanza
usano ampiamente Internet o qualche forma di collegamento telematico. È questo il caso
della Open University, antica istituzione britannica di formazione a distanza che offre corsi
universitari di Bachelor, Master Degree e Ph.D. per molte discipline sia umanistiche che
scientifiche. Analogamente, la George Washington University distribuisce programmi di
studio di livello universitario. Una specificità di questa organizzazione è l’attivazione di un
programma di FAD in Health Sciences (medicina). La metodologia didattica della Nova
Southestearn University e la Penn University si allinea a quanto detto sopra: usano la rete
telematica come integrazione di altri mezzi di distribuzione telematica. La didattica ha
comunque un impianto tradizionale. Infatti, come già affermato sopra, le metodologie di
FAD tradizionali sono ben consolidate e la valutazione della qualità dei programmi di
studio offerti dalle varie organizzazioni deve necessariamente entrare nell’analisi della
qualità dei contenuti e dei docenti coinvolti nell’attività formativa che non è possibile solo
dall’ispezione di vetrine pubblicitarie quali sono i siti Web aziendali (o universitari)[8].
2.1.2 Cenni di storia
Ciò che oggi chiamiamo e-learning nasce dall'integrazione di due diversi campi di
sperimentazione nelle tecnologie didattiche: la formazione a distanza e il Computer Based
Training. La storia della formazione a distanza (FAD) segue l'evoluzione delle tecnologie di
comunicazione, partendo dai corsi per corrispondenza, passando per l'emissione televisiva
e arrivando alle più recenti strutture di teleconferenza satellitare. Il Computer Based Training,
ossia lo studio basato sull’uso del computer come tecnologia didattica di autoistruzione
trova la sua strada soprattutto sulle discipline informatiche e sull'addestramento a
determinati software e, come strumento di supporto, nella didattica delle lingue straniere. La
distribuzione di Cd-Rom in sostituzione delle tradizionali dispense cartacee può essere
considerato un approccio all'integrazione di FAD e CBT, ma è solo con lo sviluppo di
Internet e del World Wide Web, con la diffusione del suo utilizzo, che può nascere l'online
learning, ossia il punto d'incontro tra le due metodologie. La capacità della rete di diffondere
e distribuire informazione, gestire dati, tracciare l'utenza unita alle esperienze della
formazione a distanza e delle sue caratteristiche emotive e cognitive e agli esperimenti di
didattica interattiva compiuti dal CBT hanno permesso di spostare in avanti le frontiere
dell'e-learning, inventando nuovi orizzonti per la didattica e la formazione aziendale. Di e-
30
Capitolo 2
La formazione a distanza
learning si parla ormai da diverso tempo nel mondo della formazione aziendale, e da diversi
anni nel campo della ricerca didattica universitaria. L'esigenza di nuovi strumenti per
l'apprendimento e il training si fa sempre più pressante, seguendo un costante movimento
verso la formazione permanente e forme di aggiornamento sempre più costanti che
riguardano tutte le professionalità. In realtà, con un deciso ritardo nei confronti dell'area
anglosassone, l'Italia sta muovendo solo da poco i suoi primi passi con esperimenti pratici
di formazione on line. Le società di formazione tradizionale stanno rivolgendo i loro
investimenti e la loro attenzione ai fornitori internazionali e nazionali di piattaforme,
strumenti e know-how sulle tecnologie didattiche legate a Internet. Le università italiane hanno
mosso i loro primi passi a metà degli anni '90, senza un coordinamento centrale e
delegando gli sforzi di sviluppo a istituti interni di ricerca (Università degli Studi di Milano,
Trento e Firenze in prima linea)[8].
2.1.3 Campi di applicazione
Al momento sono principalmente due gli ambiti di applicazione dell’e -learning: da
una parte vi sono le scuole e le università, che stanno sperimentando queste forme di
insegnamento soprattutto per venire incontro agli studenti fuori sede e a quelli svantaggiati;
dall’altra vi sono le aziende, che costituiscono la fetta più ricca di questo mercato. Al
momento occupa un ruolo marginale la formazione elettronica nella pubblica
amministrazione (anche se si parla spesso di e-government ed e-procurement come delle attuali
frontiere della P.A.), ma ben presto anche il pubblico dovrà dirigersi verso l’e-learning per
formare le nuove figure professionali richieste dal mercato. Molte aziende lo percepiscono
come un modo per risparmiare tempo, spazi e soldi; altre invece, puntano a
patrimonializzare la conoscenza interna per riutilizzarla e comunicarla ai dipendenti,
puntando ad un processo di condivisione circolare. Sono due modelli che si avvicineranno
ma la tendenza dominante si spera sia quest’ultima, in modo da utilizzare le tecnologie al
meglio, gradualizzando gli accessi a seconda della struttura interna e delle professionalità[8].
2.1.4 I Modelli e le Teorie Cognitive
In quest’ultimo secolo, la progressiva evoluzione delle tecnologie della
comunicazione
(mezzi
di
trasporto,
telecomunicazioni,
ecc.)
ha
condizionato
31
Capitolo 2
La formazione a distanza
costantemente l’altrettanto progressiva evoluzione dei sistemi per la Formazione a
Distanza. (Nipper, 1989). Le prime applicazioni di una certa significatività delle
metodologie di formazione a distanza si ebbero alla fine del diciannovesimo secolo, quando
le nuove tecniche di stampa e lo sviluppo del trasporto ferroviario resero possibile la
produzione e la distribuzione estensiva di materiale didattico a favore di gruppi di studenti
distribuiti su vaste aree geografiche. Si trattava di interventi basati principalmente sulla
corrispondenza, in cui il medium era rappresentato dal materiale a stampa e l’interazione
studente – docente, estremamente lenta nella sua dinamica, era in genere circoscritta allo
scambio di elaborati ( per es. questionari di valutazione) e a rarissimi incontri in presenza. A
questi sistemi FAD, detti di prima generazione (o per corrispondenza), negli anni dal 1960 al 1990
succedono i cosiddetti sistemi FAD multimediali o di seconda generazione, caratterizzati da un
uso integrato di materiale a stampa, trasmissioni televisive, registrazioni sonore e in alcuni
casi software didattico (courseware).
Il processo di “interazione” tra docente e studente continua ad essere molto simile
a quello della prima generazione, anche se include l’assistenza telefonica, le attività tutoriali
in presenza è più recentemente i collegamenti via fax e posta elettronica. Gli approcci dei
sistemi FAD di prima e seconda generazione si basano quindi prevalentemente sulla
produzione e distribuzione di materiali didattici destinati alla popolazione da formare. La
comunicazione con gli studenti, vista in un ottica di bidirezionalità, rimane marginale e la
comunicazione tra gli studenti è quasi del tutto inesistente o comunque non organizzata.
Nei sistemi di prima e seconda generazione il problema principale è la copertura di distanze
geografiche e/o il raggiungimento di vaste popolazioni di utenza, problema che viene
risolto principalmente attraverso metodi efficaci di presentazione e distribuzione. La
conseguenza è che l’apprendimento non è più un processo sociale in cui privilegiare le
interazioni tra docenti e studenti quanto piuttosto un fatto prevalentemente individuale. Le
“classi virtuali” che si vanno così a formare mancano di quell’apertura socio-cognitiva tipica
di una classe tradizionale. Il riproporre anche a distanza, seppur con l’inevitabile mediazione
della tecnologia, l’apprendimento come un processo sociale è l’idea chiave che sta guidando
lo sviluppo dei sistemi FAD di terza generazione. Nella terminologia FAD i sistemi di terza
generazione sono anche detti di online education o formazione in rete, proprio a significare
come la maggior parte del processo formativo avvenga via Internet, attraverso l’interazione
dei partecipanti in una vera e propria “comunità di apprendimento” che favorisca sia il
32
Capitolo 2
La formazione a distanza
superamento dell’isolamento del singolo sia la valorizzazione dei suoi rapporti con il
gruppo. L’online education o formazione in rete si inserisce,dunque, nella storia della
formazione a distanza costituendone la cosiddetta” terza generazione”, (Garrison,1995;
Nipper, 1989; Trentin, 1998), ma una collocazione puramente “evolutiva” in questo
contesto di origine fornirebbe una comprensione non adeguata. Essa da un lato deve molto
all’evoluzione stessa degli strumenti legati alle Tecnologie dell’Informazione e della
Comunicazione (TIC, o solitamente ICT - Information and Communication Technologies – in
inglese) e a spinte che provengono dall’ambito economico, oltre al fatto che la ricerca sulle
nuove tecnologie si è intrecciata con nuovi paradigmi teorici che investono alla radice la
filosofia stessa della formazione; si appropria così di un corredo di atteggiamenti,
orientamenti, concezioni e modelli educativi che le forniscono un taglio peculiare. Di
particolare importanza è l’evoluzione interna all’educazione a distanza verso modelli di open
learning, la trasformazione della tecnologia multimediale verso il Web based training, la
progressiva acquisizione di modelli teorici ed epistemologici relativi alla formazione che
valorizzano l’autonomia e una costruzione negoziale dei saperi quali la “psicologia
umanistica” e il “costruttivismo”. A partire dal 1970 nell’educazione degli adulti prendono
maggiore spazio orientamenti volti a valorizzare complessivamente l’autonomia e la
responsabilizzazione del discente che apprende; si rivolge più attenzione alle esigenze degli
individui, orientando gli allievi a un’assunzione di responsabilità e iniziativa decisionale. Si
ha una rivalutazione dello studio autonomo, già praticato in una tradizione secolare,
chiamato di volta in volta studio “autodidatta”, “autocontrollato”, “autoorganizzato”,
ricollocato al centro di nuove filosofie dell’apprendimento. Ci si rende conto che per lo più
si è banalizzato questo concetto, identificandolo con lo svincolo tecnico da luoghi, tempi e
docenti, laddove il materiale di studio rimane tuttavia assai costruttivo, strutturato in tempi
rigidi, e il programma didattico fondamentalmente eterodiretto ( Peters 1998). Si avverte la
necessità di affrontare il problema dell’autonomia ancorandolo alle nostre tradizioni di
pensiero. Si può parlare di reale autonomia quando sono gli studenti a individuare le
proprie esigenze di approfondimento, a formulare gli obiettivi didattici, a scegliere i
contenuti, a sviluppare strategie di apprendimento, a procurarsi materiali e media, a
identificare ulteriormente risorse umane e materiali, nonché a organizzare, controllare e
valutare da soli l’apprendimento, (Moore,1994) aspetti questi che complessivamente fanno
preferire il termine di “personalizzazione” dell’apprendimento, rispetto a quello più
33
Capitolo 2
La formazione a distanza
tradizionale di “individualizzazione”. Uno degli apporti più interessanti proviene dalla
cosiddetta “psicologia umanistica”(Fromm, Maslow, Rogers), secondo cui gli uomini
aspirano a una continua autorealizzazione; ciò si accompagna a un cambiamento radicale
nell’atteggiamento dell’insegnante, che si trasforma in “facilitatore”, secondo le idee che
sono state apportate soprattutto da Rogers, e riprese in particolare nell’educazione degli
adulti. L’educatore può solo cercare di “facilitare” l’apprendimento, non “insegnare”. In
che modo? Creando intorno a chi apprende una offerta articolata e uno scaffolding di
assistenza e aiuto, a cui l’allievo possa variamente attingere secondo le sue necessità.
Fondamentali sono i momenti di negoziazione; in qualche modo occorre fare il punto,
valutare dove andare; la pedagogia del contratto e della negoziazione con il tutor è posta
nuovamente al centro[8].
2.2 Gli standard dell’e-learning
Nel mondo dell'e-learning, per alcuni aspetti ancora giovane, ed in continua
evoluzione, diverse organizzazioni sono al lavoro per definire standard tecnici e didattici
complementari.
Standard
accreditati
sono
necessari
per
sviluppare
contenuti
interscambiabili che possano essere riusati, assemblati e scorporati in modo facile e veloce.
In questo modo è possibile avere una piena interoperabilità tra i contenuti di piattaforme elearning diverse. Nella lista che segue sono elencate le principali organizzazioni che al
momento stanno portando avanti il lavoro di definizione degli standard:
•
SCORM : Advanced Distribuited Learning (ADL) Iniziative[9];
•
IEEE Learning Technology Standards Committee (LTSC)[10];
•
IMS (Instructional Management System) Global Learning Consortium[11];
•
AICC - Aviation Industry CBT Committee[12];
•
PROMETEUS[13];
•
The Dublin Core Metadata Initiative[14].
34
Capitolo 2
La formazione a distanza
2.2.1 SCORM: Advanced Distributed Learning (ADL) Iniziative
La "Advanced Distributed Learning" (Apprendimento distribuito avanzato) è una
iniziativa sponsorizzata dal Dipartimento della Difesa statunitense in coordinamento con
l'Office of Science and Technology Policy (Ufficio per le Politiche Scientifiche e
Tecnologiche) della Casa Bianca. Nasce da una visione di un futuro in cui elementi
condivisibili di software didattico, o oggetti didattici (shareable courseware objects)
possono essere assemblati in tempo reale per creare sul momento un'offerta didattica che
risponda alle specifiche esigenze di un utente. Questi oggetti didattici devono avere,
secondo il progetto dell'ADL, quattro caratteristiche principali:
•
devono essere accessibili, cioè ci devono essere degli standard accettati da tutti per
archiviarli e quindi ritrovarli quando serve;
•
una volta trovati, questi oggetti devono essere usabili, cioè devono poter funzionare
(interoperabilità) su diverse (se non tutte) piattaforme, sistemi operativi, browsers;
•
una volta implementati, gli oggetti didattici devono essere affidabili, cioè se la
piattaforma o sistema operativo o browser sottostante viene modificato, devono continuare
a funzionare come prima;
•
devono essere riusabili, cioè poter funzionare ed anche essere modificati da altre
piattaforme, sistemi operativi e browser.
Per raggiungere questi obiettivi, il governo federale americano sta coordinando
quindi lo sviluppo di un modello di riferimento per gli elementi condivisibili di software
didattico (SCORM: Shareable Courseware Object Reference Model). Si tratta di linee guida
per definire un formato di software didattico trasportabile attraverso piattaforme Learning
Management System differenti. SCORM vuole definire le interrelazioni dei componenti di
un corso e il modello secondo cui il contenuto didattico (inteso nel senso più ampio,
includendo anche obiettivi didattici, requisiti ecc) deve organizzarsi. In questo senso, ADL
SCORM non è un insieme di standard né di specifiche tecniche, ma un modello di
riferimento che sta cercando di mettere insieme i vari standard prodotti dai diversi gruppi.
Dal sito www.adlnet.org è sempre possibile scaricare la versione di SCORM più recente[9].
35
Capitolo 2
La formazione a distanza
2.2.2 IEEE Learning Technology Standards Committee (LTSC)
IEEE sta per Institute of Electrical and Electronic Engineers. Ha costituito al suo
interno una task force chiamata Learning Technology Standards Committee (LTSC), che si
occupa di creare specifiche per ognuna delle aree connesse all'apprendimento, come i
metadata, il profilo studenti, la sequenzialità dei corsi, la definizione delle competenze, la
localizzazione e lo sviluppo dei contenuti. L'IEEE LTSC è uno degli enti di
standardizzazione a livello mondiale, e i suoi standard sono accettati e usati su base molto
ampia. Recentemente ha anche iniziato a far accreditare la sua opera dalla International
Standards Organization (ISO), fondando l'ISO Joint Technical Committee 1 (JTC1) Sub
Committee 36 (SC36) sulla Learning Technology. L'IEEE LTSC opera attraverso più di 20
gruppi di lavoro che creano ciascuno i propri standard, correlati tra loro. Questo processo è
aperto a chiunque voglia partecipare, che può accedervi tramite e-mail discussion list o
partecipando agli incontri che si tengono tre o quattro volte l'anno in diversi luoghi per
ognuno dei gruppi di lavoro[10].
2.2.3 IMS (Instructional Management System) Global Learning
Consortium
L'IMS Global Learning Consortium è un'organizzazione americana che sta
promuovendo delle specifiche aperte per facilitare le attività didattiche on line, come
localizzare e usare contenuto didattico, tener traccia dei progressi dello studente, produrre
report sulla sua performance e scambiare questi report tra diversi sistemi amministrativi.
L'IMS ha due obiettivi principali:
•
definire gli standard tecnici per l'interoperabilità delle applicazioni e dei servizi per la
formazione in rete;
•
supportare l'incorporazione a livello mondiale delle specifiche IMS in prodotti e
servizi. Pertanto l'IMS promuove l'adozione più ampia possibile delle sue specifiche.
36
Capitolo 2
La formazione a distanza
L'IMS è un consorzio i cui membri provengono da organizzazioni didattiche,
commerciali e governative[11].
2.2.4 AICC – Aviation Industry CBT Committee
L'Aviation Industry CBT Committee è un'associazione internazionale di
professionisti della formazione per mezzo di tecnologie didattiche. La AICC sviluppa linee
guida per l'industria aeronautica riguardo lo sviluppo e la valutazione di computer-based
training e tecnologie didattiche correlate.
Anche se l'AICC si rivolge in primo luogo all'industria aeronautica, la sua
esperienza pluriennale ha portato allo sviluppo di specifiche molto efficaci nel campo
dell'istruzione supportata da computer in genere. Di conseguenza moltissimi consorzi e enti
di standardizzazione accreditati stanno adottando e adattando le linee guida dell'AICC alle
loro specifiche industrie.
L'AICC sta anche coordinando i suoi sforzi con quelli di altre grandi organizzazioni
che si occupano di standard per le tecnologie didattiche, come la IEEE LTSC, l'ADL e
l'IMS[12].
2.2.5 Prometeus
Vari programmi di ricerca e sviluppo finanziati dall'Unione Europea intendono
promuovere le tecnologie telematiche e multimediali, con l'esplicito obiettivo di favorire e
facilitare l'accesso alla conoscenza, all'istruzione e alla formazione per tutti i cittadini
europei.
In questo ambito, il progetto europeo PROMETEUS, sotto forma di un forum
aperto permanente, ha messo insieme centinaia di organizzazioni del settore pubblico e
privato, con lo scopo di affrontare diversi temi, per costruire un consenso ampio e
un'azione di pressione sui vari governi europei.
37
Capitolo 2
La formazione a distanza
Tra i temi trattati, si occupa anche di piattaforme didattiche basate su standard
aperti. PROMETEUS sta cercando non solo di applicare gli standard dell'IEEE LTSC, ma
attraverso i suoi vari Special Interest Groups (SIG) sta cercando anche di integrare questi
standard nel contesto europeo. PROMETEUS svilupperà linee guida e raccomandazioni da
inviare a enti internazionali di standardizzazione. Al momento sta collaborando con il
nuovo
Learning
Technologies
Standards
Workshop
dell'Information
Society
Standardization System dell'European Committee for Standardization (CEN/ISSS)[13].
2.2.6 The Dublin Core Metadata Iniziative
Il Dublin Core è un insieme di metadata che intendono facilitare il reperimento di
risorse elettroniche. Concepito originariamente come un modello per una descrizione di
risorse Web da parte dell'autore, ha attirato l'attenzione di organizzazioni che si occupano
di descrizione di risorse, come musei, biblioteche, enti governativi, ed anche organizzazioni
commerciali, interessate ad un metodo più facile per trovare le risorse elettroniche di cui
hanno bisogno.
Le caratteristiche del Dublin Core, che lo distinguono da altri descrittori di risorse
elettroniche, sono queste:
•
Semplicità: la maggior parte degli elementi non sono più difficili da capire di un
catalogo di una biblioteca.
•
Interoperabilità semantica: l'insieme dei descrittori usati aumenta la possibilità di
ritrovare quello che si cerca anche attraverso varie discipline.
•
Consenso internazionale: il Dublin Core è promosso in più di 20 paesi in Nord
America, Europa, Australia e Asia.
•
Estensibilità: è flessibile e può essere esteso fino a incorporare strutture semantiche
che si trovano si solito solo in standard descrittivi molto ricchi.
Attualmente il World Wide Web Consortium (W3C) ha cominciato a implementare
un'architettura per i metadata sul Web. Il Dublin Core Resource Description Framework
(RDF = Quadro di riferimento per la descrizione delle risorse) è progettato per supportare
38
Capitolo 2
La formazione a distanza
diversi metadata. Rappresentanti del Dublin Core sono attivamente coinvolti nello sviluppo
di questa architettura[14].
2.3 Contenuti universalmente riutilizzabili
Lo SCORM è il modello di riferimento per la condivisione dei contenuti didattici o
courseware. Qualche tempo fa SCORM, nella sua versione 1.0, corrispondeva a "Sharable
Courseware Object Reference Model" (modello di riferimento per oggetti di courseware
condivisibili), poi sostituito con "Sharable Content Object Reference Model" nella
versione 1.1, ma il significato rimane lo stesso: sempre di courseware stiamo parlando,
anche se in una accezione forse più generale.
2.3.1 SCORM
SCORM è un modello tecnico di condivisione dei contenuti per renderli
"interoperabili". Quindi prima di tutto SCORM nasce come una raccolta di indicazioni per
gli sviluppatori di piattaforme LMS ( Learning Management System) e per i produttori di
courseware affinché i loro rispettivi prodotti siano facilmente interfacciabili gli uni con gli
altri.
Molte attività di e-learning oggi prevedono che i servizi per ottimizzare la fruizione
di corsi siano raccolti su un'unica piattaforma software operante via web, l'LMS (learning
management system), che si occupa anche di "lanciare" i contenuti didattici (appunto il
courseware), di fare un'analisi dei bisogni di apprendimento, di stabilire in quale misura e
ordine i singoli elementi di contenuto (learning object) devono essere organizzati, si occupa
quindi di tenere traccia della loro fruizione da parte degli allievi e riporta i risultati
dell'acquisizione delle competenze o quanto meno dell'attività di studio.
In genere le pagine di un courseware sono pagine web, costruite con criteri specifici
per facilitare lo studio, la comprensione e l'apprendimento, ma tecnicamente, dal punto di
vista informatico, sono normali pagine web, che utilizzano la stessa tecnologia dei siti web,
testi, immagini, animazioni e così via. Le pagine sono collegate fra loro da normali
"iperlink" o collegamenti ipertestuali che permettono di percorrere il camino tracciato
lungo la struttura dei contenuti.
39
Capitolo 2
La formazione a distanza
Ma il parallelo forse finisce qui. Costruire un oggetto per apprendere è
concettualmente cosa del tutto diversa dal costruirne uno per informare o semplicemente
per documentare. I processi attentivi, le attività "cognitive" che vengono svolte in fase di
studio, sono assai diversi da quelli che applichiamo al sito di un quotidiano, ad un motore
di ricerca, ad un sito comunque informativo. Anche tra un LMS ed un normale sito web ci
sono molte differenze. La differenza maggiore forse è che l'LMS in genere sa cosa deve
inviare all'utente al verificarsi di certi eventi (risposta ad una certa domanda,
completamento di un certo percorso, punteggio riportato in una certa azione, ecc.) e sa
documentare in modo assai dettagliato il comportamento di chi studia, elaborando anche
dei report che traggono conclusioni sull'efficacia dello studio concluso. In una parola il
processo formativo, per flessibile ed aperto che sia, deve subire una progettazione
dettagliata del processo che lo accompagna, forse tanto più dettagliata quanto più aperto e
flessibile vogliamo possa essere lo studio. I normali siti web invece non hanno bisogno di
trarre conclusioni sulla comprensione o apprendimento dei contenuti dei loro visitatori. I
rilevamenti a cui, facoltativamente si ispirano, sono di natura assai più genericamente
statistica.
2.3.2 Da dove deriva
La ADL (advanced distributed learning) Iniziative, sponsorizzato dal Dipartimento
della Difesa USA (DoD), "… è un programma collaborativo tra governo, industria e
università per definire un nuovo ambiente distribuito di apprendimento che permetta
l'interoperabilità degli strumenti per l'apprendimento e dei contenuti dei corsi su scala
globale. La missione dell'ADL è quella di favorire l'accesso ai servizi migliori di educazione
e formazione, personalizzati sui bisogni individuali, distribuiti con efficienza economica in
ogni luogo e momento ".(http://www.adlnet.org/index.cfm?fuseaction=home)
Ma la ADL non ha operato da zero. Anzi ha promosso il recupero di procedure e
standard già esistenti, ha creato gruppi di lavoro coinvolgendo altre organizzazioni e
mutuando da queste semilavorati per la costruzione dello standard. Il suo obiettivo è quello
di arrivare ad uno standard "de jure" oltre che "de facto"[9].
40
Capitolo 2
La formazione a distanza
2.3.3 Com’è organizzato
Le specifiche del modello SCORM sono organizzate in una libreria. Il volume 1
(Overvue) è dedicato ad una descrizione dello scenario, il volume 2 (Content Aggregation
Model) definisce i vari aspetti dell'aggregazione dei contenuti, il volume 3 (Run Time
Environment) si occupa dell'ambiente di erogazione del corso, detto spesso "piattaforma"
o "LMS".
Figura 7. L'organizzazione dello standard SCORM
Tralasciando il primo, del quale in sostanza abbiamo già parlato, occupiamoci ora
degli altri due volumi: i contenuti e l'erogazione dei corsi.
2.3.4 Content Aggregation Model (Modello di aggregazione dei
contenuti)
Questo modello di aggregazione dei contenuti e diviso in tre parti:
41
Capitolo 2
•
La formazione a distanza
Il contributo di IMS per la definizione dei metadata dei contenuti, le correlazioni dei
tag in XML, l'analisi di best practices.
•
Il dizionario dei metadata prodotto da IEEE
•
L'impacchettamento dei contenuti in XML dovuto ancora a IMS.
Vediamo brevemente di cosa si occupano questa tre sezioni.
Consideriamo per primo il dizionario dei metadata, cioè i "Learning Object
Metadata" (metadati degli oggetti di apprendimento). Se ricordiamo cosa sono i metadati,
capiremo perché ADL ha organizzato qui un "dizionario" di "tag" [2] che possono essere
usate per descrivere i contenuti per l'apprendimento in una varietà di modi, prendendo
soprattutto sia da IEEE (ma anche da ARIADNE, Public Core e IMS). I metadata infatti
servono a descrivere di quale contenuto stiamo trattando, chi lo ha prodotto o lo
distribuisce, per quale scopo formativo, quali i prerequisiti tecnici, quali i costi, ecc.
Quindi abbiamo le correlazioni fra i tag dei metadati in linguaggio XML, cioè l'
"XML binding".
Infine abbiamo le specifiche di impacchettamento dei file dovute a IMS (IMS
Content Packaging). Il problema dell'impacchettamento lo conosce bene chi ha mai avuto
necessità di spedire file HTML. Infatti questi sono interpretati dal browser che collega
automaticamente fra loro risorse diverse (pagina HTML puramente detta, immagini di vario
genere e formato, ecc.). Se si spedisce solo il file HTML si perderanno le altre risorse. La
modalità più comune è quindi quella di "zippare" assieme tutti i file relativi alla stessa
pagina web o addirittura a più pagine che costituiscono un intero documento ipertestuale,
con le relative cartelle. Queste specifiche di impacchettamento assolvono ad un funzione
analoga anche se più sofisticata, come vedremo in seguito.
2.3.5 Il “Run Time Environment” (ambiente di erogazione)
Questa definizione della piattaforma o ambiente di erogazione è divisa in due parti,
entrambe derivanti dalla collaborazione con AICC:
•
Il modello dei dati (data model);
•
Le modalità di lancio e interfaccia di comunicazione con la piattaforma (Launch,
communication API).
42
Capitolo 2
La formazione a distanza
Il modello dei dati serva a stabilire quali dati scambiare tra Learning Object e LMS.
Tempi e percentuali di fruizione dei contenuti, punteggi, competenze acquisite, ecc. Questo
modello quindi serve a stabilire come "tracciare" l'attività dell'allievo all'interno del
courseware.
Quindi è stata definita una modalità di lancio del contenuto e soprattutto una
interfaccia di comunicazione tra il contenuto (e quindi chi lo sta studiando) ed il sistema
LMS. Le specifiche sviluppate da ADL in collaborazione con AICC si basano su un
approccio user-friendly che utilizza Javascript. È stata definita un' API - Application
Program Interface (interfaccia del programma di applicazione) che stabilisce una modalità
standard di comunicazione con il LMS, indipendentemente da come sono stati sviluppati i
contenuti stessi.
2.3.6 Gli elementi minimi di contenuto
Come abbiamo capito la gran parte della problematica dello SCORM ruota attorno
alla costruzione degli oggetti di contenuto. Vediamoli quindi in dettaglio.
2.3.6.1 Gli Asset
Le risorse che possono essere condivise all'interno di un corso e costituiscono i
"beni" di un corso, sono dette appunto "asset". Queste sono genericamente costituite da
pagine web in HTML, documenti XML, immagini jpeg, file audio, video mpeg, file di vario
tipo. L'asset o shareable resource, è una risorsa che può essere condivisa, un risorsa che si
può ricercare e trovare all'interno di archivi on-line e quindi riutilizzabile in altre sequenze
rispetto a quelle originali per cui era stata pensata e creata. Per SCORM un asset è un
insieme di risorse che sono prodotte per essere condivise anche da più parti di un corso.
Quando viene composto un asset dovrebbe contenere i dati appropriati che lo descrivono
per far si che possa essere ritrovato in archivi on-line. L'asset quindi può essere considerato
l'elemento minimo di comunicazione che la tecnologia permette di produrre.
2.3.6.2 Lo SCO(Shereable Content Object)
Lo SCO è un insieme di risorse o asset progettato in modo da rispondere al
raggiungimento di un obiettivo didattico, all'acquisizione di una competenza e rappresenta
l'unità didattica minima in cui il corso è suddiviso.
43
Capitolo 2
La formazione a distanza
Lo SCO inoltre è stato progettato in modo che implementi anche lo scambio di dati
del sistema LMS, secondo le specifiche del "run time" dello SCORM.
Della necessità di strutturare il percorso di apprendimento in unità didattiche
minime ne abbiamo parlato già all'inizio di questo articolo. Possiamo quindi dire che lo
SCO è il "learning object" minimo del modello SCORM, che risponde a tutti i requisiti
definiti fin qui.
Un asset quindi è un elemento comunicativo minimo, mentre uno SCO è
quell'elemento minimo che ha significato dal punto di vista didattico ed in genere
raggruppa più asset.
2.3.7 Il courseware
Il courseware infine è un insieme di SCO organizzati secondo sequenze definite dai
fabbisogni formativi, attorno ad un unico elemento di gestione, il "manifest".
Il manifest è un file XML che spiega come sono aggregati gli SCO e fornisce anche
il riferimento per la navigazione tra uno SCO e gli altri.
Le linee guida dell'ADL forniscono un'articolazione delle modalità di navigazione
tra uno SCO e l'altro che può essere riassunto nei punti seguenti:
•
Lineare
•
Gerarchica
•
A griglia
•
Con modalità web
•
Con modalità empirica
La navigazione tra gli SCO è sola responsabilità del sistema LMS. Uno SCO non
può mai lanciare un altro SCO, mentre si è liberi di definire qualsiasi tipo di navigazione
all'interno dello SCO stesso. Occorre creare uno schema di navigazione tra gli SCO
mediante le opzioni seguenti:
•
javascript e frame
•
java applet
•
plugin
44
Capitolo 2
La formazione a distanza
2.4 DVB-MHP e FAD: le potenzialità
Nel corso dei paragrafi precedenti si è tentato di dare un rapido sguardo
all’immenso mondo della formazione a distanza. Il suo evolvere va di pari passo con lo
sviluppo tecnologico e culturale della società. Il carattere stesso del mondo moderno porta i
singoli individui ad essere “costretti” ad un aggiornamento costante delle proprie
competenze o ad acquisirne di nuove. Per rendere questo bisogno di conoscenza il più
piacevole ed efficace possibile è utile, oltre che necessario avvalersi delle nuove tecnologie,
che da sempre stuzzicano la curiosità delle persone a prescindere dal loro ceto sociale.
L’avvento di Internet ha favorito la nascita di numerose iniziative : piattaforme a distanza di
tipo proprietario e non, nascita di vari standard con il compito di dare un carattere di
universalità al sapere depositato. Uno su tutti lo standard SCORM con lo scopo di tentare
di dare potenzialità universalmente indipendente dalle varie piattaforme utilizzate per
accedere
ai
contenuti.
Questi
possono
essere
raggiunti
da
tutto
il
mondo
indipendentemente sia dal mezzo di comunicazione che dalla piattaforma che si sta
utilizzando .
Figura 8. La visione di un sapere globalmente distribuibile ed accessibile
45
Capitolo 2
La formazione a distanza
Proprio il tentativo di rendere il sapere disponibile a tutti in tutto il mondo ha dato
il via ad una serie di studi per l’utilizzo di altre tecnologie (oltre ad internet) come quella dei
dispositivi mobili e per ultima, non certo per importanza, la Tv digitale terrestre. Grazie
infatti alla possibilità di sfruttare il canale di ritorno per la fruizione dei servizi applicativi
DVB-MHP il mezzo televisivo acquisisce una nuova veste innovativa, diventa cioè il punto
di incontro dei media. Integra la sua funzione di mezzo di informazione e di
intrattenimento con quella di mezzo per la fruizione di servizi che fino ad ora erano
prerogativa del mondo Web. Il carattere “user-friendly” della Tv unito alla ricchezza dei
contenuti Web rende il sapere di più facile ed efficace accesso.
In base a queste considerazioni in Gran Bretagna sono in atto numerosi studi sulla
possibilità e l’efficacia dell’utilizzo della Tv digitale e della banda larga per la formazione a
distanza.
Nel corso dell’ anno 2003 la pjb Associates ha portato a termine una serie di
indagini globali che vanno sotto il nome di “T-Learning study ” un progetto finanziato
dalla Commissione Europea. Un ulteriore incentivo che ha spinto vero uno studio di
questo tipo è il grado di penetrazione della TV (95-99%) confrontato con quello del PC
(40-60%). Ciò ha fatto ipotizzare “T-Learning” - che vuol dire per l'appunto
apprendimento attraverso la televisione digitale interattiva –
potesse creare nuove
opportunità per l’apprendimento nel contesto domestico.
Pjb Associates ha tenuto ben delineata la traccia del lavoro fatto per seguire gli
sviluppi di tale studio.
Nel 1999 è stato completato uno studio per conto della Commissione Europea Tv
Interattiva e Servizi per l’apprendimento a distanza ed il “T-Learning study” può
considerarsi la prosecuzione di tale studio. Sono stati prodotti un certo numero di studi del
caso e di scenari futuri come facenti parte del t-learning study. Sono state organizzate
risorse on-line ed effettuati dei servizi a cadenza regolare. Ci sono anche degli utili links ad
altre newsletter e giornali e persino ad altre organizzazioni che si occupano dello studio
dello stesso problema[15].
46
Capitolo 2
La formazione a distanza
Nel 2002 la Learning and Skills Development Agency commissionò alla Pjb
Associates uno studio sull’ apprendimento
sfruttando la televisione interattiva. Tutto
questo è risultato in una pubblicazione dal nome: “A learning platform with potential”.
Nel 2004 la pjb Associates ha continuato l’opera di monitoraggio della fruizione di
servizi per l’apprendimento e per il perfezionamento attraverso la Tv digitale interattiva[15].
2.4.1 Risultati temporanei
2.4.1.1 Conclusioni chiave
Nel complesso è emerso che c’è un grande interesse riguardo all’utilizzo dei vari tipi
di Tv interattiva per l’incremento delle opportunità di imparare a casa, in particolare come
valida alternativa ad un computer dotato di una connessione ad internet. Un interesse di
questo tipo è suscitato anche a livello politico perché i capi di governo vedono, nell’utilizzo
delle varie televisioni interattive, un’arma vincente per abbattere il cosiddetto “digitaldivide”. Sfortunatamente in oltre 25 anni di broadcasting educativo manca ancora uno
studio adeguato a livello pedagogico. Cioè ci si è interessati poco a studiare l’efficacia di un
corso diffuso attraverso la televisione. La ricerca che è stata condotta ha identificato molte
soluzioni di Tv interattiva sia esistenti che emergenti. Sono stati anche identificati numerosi
modelli per lo sviluppo di servizi di learning, anche se sembra essere necessaria un
approfondita indagine di mercato[15].
2.4.1.2 Problemi di strategia di Learning
Nell’era emergente del “LifeLongLearning”(dell’apprendimento che interessa
tutta la vita), la formazione a distanza prenderà posto in un enorme varietà di contesti e di
localizzazioni, cosi che il learning formale ed informale assumeranno la stessa importanza
del learning convenzionale.
Sembra che un terzo degli adulti in certe regioni non abbia voluto prendere parte
alla sperimentazione perché erano troppo disabituati all’apprendere sin dall’età della scuola
dell’obbligo. La politica dei vari governi sembra essere orientata all’utilizzo delle tecnologie
di informazione e comunicazione per incrementare le opportunità di imparare, sebbene con
un maggior focus sull’uso dei computer collegati ad internet. Muovendosi in questa
47
Capitolo 2
La formazione a distanza
direzione si è aumentato l’interesse di chi già era indirizzato a tale modo di imparare ma si è
fiduciosi di coinvolgere anche coloro che fanno parte della schiera dei non interessati.
La penetrazione dei computer collegati ad internet nell’ambiente domestico
europeo sembra essere livellata intorno al 40-60 %. Iniziative commerciali per la diffusione
di computer a basso costo hanno dimostrato che la soglia non si alzava mai al di sopra del
70%. Erano pertanto necessarie altre strategie per incoraggiare la gente a diventare più
attiva nell’imparare cosi da abbattere il cosiddetto “digital-divide”. Quindi era necessario
avvicinarsi a delle soluzioni o a dei dispositivi che la gente sentiva più vicina a se perché
facente parte della propria vita quotidiana e soprattutto facile ed intuitivo da usare. La
televisione, più altri dispositivi sviluppatisi direttamente dalla telefonia mobile; le console
per giocare sono tutti degli strumenti che possono essere usati per incrementare la
possibilità di imparare in questo modo. L’ambiente domestico viene considerato come
ideale per apprendere tanto da supporre che possa aumentare le prestazioni di coloro che
vogliono studiare.
La televisione è un dispositivo familiare con circa il 90-95% di penetrazione nelle
case Europee e, nonostante l’uso passivo che se ne faccia a discapito di un uso attivointerattivo, viene sentito come ciò che potrebbe incrementare l’apprendimento[15].
2.4.1.3 Il ruolo della Tv interattiva nel Learning
La Tv interattiva, laddove sia disponibile riesce a proporre delle limitate offerte di
learning ed a volte addirittura costose. La tendenza è quella di “edutainment”(mix tra
intrattenimento ed educazione) piuttosto che incoraggiare una vera e propria televisione
interattiva. I vari broadcasters stanno tutt’ora sperimentando servizi per il learning su
televisione. Una grande pecca della Tv digitale è la limitatezza grafica che la rende meno
accattivante del mezzo televisivo odierno. Il video on demand è senza dubbio un valore
aggiunto che quando sarà disponibile dovrà essere sfruttato. A meno che non ci siano delle
importanti innovazioni tecnologiche le opportunità del learning attraverso la Tv broadcast
o la Tv a programmi sembra che saranno sempre limitate.
Quello che si evince è che è necessario un utilizzo della tv attivo piuttosto che
passivo. Focalizzarsi sulla tv dai contenuti personalizzati vuol dire creare nuove opportunità
per un apprendimento personalizzato che arriva nell’ambiente domestico[15].
48
Capitolo 2
La formazione a distanza
2.4.1.4 Problemi tecnici
Complessivamente, molti problemi tecnici risultano essere più dei veri e propri
problemi di mercato. Molte soluzioni tecniche esistono e sono disponibili ma non vengono
adottate per ragioni di mercato. Molti modelli potrebbero essere sviluppati ma non
vengono portati a termine perché le tendenze di mercato non ne favoriscono lo sviluppo.
Sta venendo fuori un ampio standard Europeo per i stb che utilizzano la
piattaforma DVB-MHP. Comunque, la maggior parte delle regioni interessate hanno dei set
top box proprietari ed i service provider potrebbero impiegare molti anni prima di adottare
l’MHP o addirittura non adottarlo mai. In tale direzione c’è una certa resistenza ad
intervenire da parte delle autorità.
Le decisioni prese in termini di standard sono quelle che determinano il modo in
cui devono essere veicolate le trasmissioni televisive. Qualcosa è venuto fuori durante i
lavori del “TV Anytime Forum del 2003”.
Le decisioni concernenti un’adeguata provvigione della rete a banda larga alle
abitazioni sono guidate primariamente da ragioni di mercato piuttosto che da motivi di
natura prettamente tecnica dettate dalle aree urbane.
Sebbene ci siano dei problemi per la provvigione di una banda adeguata alle singole
abitazioni si stanno trovando molte soluzioni. Ovviamente è necessario l’intervento del
governo per assicurare un accesso universale.
L’industria del broadcast sta aggiungendo metadata ai propri contenuti affinché essi
siano reperibili più facilmente. C’è anche una lavoro parallelo di standardizzazione dei
learning objects. Entrambi questi sviluppi necessitano di lavorare molto strettamente l’uno
con l’altro con lo scopo di far si che i contenuti dell’apprendimento a distanza siano più
facilmente accessibili attraverso le soluzioni offerte dalla Tv interattiva[15].
2.4.1.5 Tv personalizzata
Si sta lavorando affinché la Tv diventi una televisione personalizzata, cioè con
contenuti disponibili su misura per l’utente. Questo sicuramente spingerà ancora di più la
curiosità e quindi lo sviluppo di servizi che richiedono una partecipazione attiva dello
spettatore quali sono appunto quelli per l’apprendimento a distanza. A lungo andare la
personalizzazione che verrà fatta della televisione sarà cosi all’ordine del giorno da risultare
impercettibile.
49
Capitolo 2
La formazione a distanza
A breve termine è prevista l’integrazione della tecnologia ADSL con quella
satellitare per la provvigione della larga banda anche in zone urbanizzate non raggiunte dal
servizio della larga banda. Il learning è solo una parte di un progetto più vasto che riguarda
lo sviluppo di servizi per l’ambiente domestico[15].
Figura 9. L'uomo al vertice del mondo informativo
2.4.1.6 Problemi di mercato inerenti allo sviluppo di servizi di Learning
La Tv interattiva fa parte di un mercato che si trova in ascesa nonostante un lungo
periodo di recessione. L’affare educazione e insegnamento ha uno scarso controllo di questi
sviluppi e dipende da uno scarso numero di fornitori della televisione interattiva.
Le barriere per entrare nel mercato della Tv interattiva digitale sono alte per il
business del learning se comparato a quello dell’utilizzo del web. Sono richiesti un gran
numero di passi avanti prima che ogni tipo di mercato di learning emerga. Tutti questi passi
avanti possono costituire allo stesso tempo delle barriere potenziali a questo tipo di
evoluzione.
È altamente probabile che lo sviluppo dell’apprendimento interattivo collegato alla
televisione broadcast sarà limitato. È più probabile che la situazione sarà presa
completamente in mano dai broadcaster per offrire “edutainment” in concomitanza con i
programmi broadcast. La più grossa occasione verrà dall’introduzione del video-ondemand. Le previsioni lasciano intravedere che da qui a 10 anni gli spettatori useranno la tv
50
Capitolo 2
La formazione a distanza
in maniera personalizzata. Si stima che sarà circa il 60% del numero degli spettatori
totali[15].
2.4.1.7 Tv in modo personalizzato
Si è visto che uno scenario probabile è quello di istituire un tutor remoto via TV
nella casa considerando che possa essere realistico e realizzabile.
Altri scenari considerati come probabili sono :
•
Continuo sviluppo professionale degli insegnanti;
•
Esami per la scuola statale;
•
Un canale virtuale professionale;
•
Imparare da solo.
Mentre scenari per la televisione interattiva digitale personalizzata sono:
•
scuola a casa;
•
corsi di lingua per le vacanze.
2.4.1.8 I costi di accesso al learning attraverso la Tv digitale
Dato il carattere prematuro del mercato del learning non è possibile prevedere il
costo di accesso ad un servizio del genere attraverso le varie forme di Tv interattiva per gli
individui e le famiglie. Ovviamente ci si aspetta un servizio senza costi da parte dei
broadcasters pubblici. Dove ci sarà l’interesse dello stato o delle regioni sarà possibile
sperimentare anche il servizio fornito già dalle istituzioni statali in merito alla diffusione
dell’informazione.
In alcuni casi la Tv interattiva sarà una vera e propria esca per attrarre lo studente
all’interno di centri per l’apprendimento o di veri e propri campus per l’apprendimento a
distanza.
Una parte notevole della sperimentazione consiste nel recupero di servizi già
esistenti, come l’adattamento di piattaforme esistenti per il Web da trasportare su DTT[15].
2.4.1.9 Apprendimento e problemi pedagogici
Sebbene sia probabilmente accettato che la televisione nel suo formato tradizionale
è un mezzo veramente potente, la ricerca per stabilire quale sia il suo ruolo nel campo del
51
Capitolo 2
La formazione a distanza
learning è piuttosto limitata. La ricerca tende a focalizzarsi sull’impatto che la Tv ha sugli
individui.
A discapito del fatto che si spera che molte persone in futuro impareranno da casa,
rimane da studiare come e quali possano essere le condizioni ed i requisiti per i quali
l’ambiente domestico possa diventare un ottimo veicolo formativo.
La comprensione del ruolo dell’interattività è un processo molto complesso, e
purtroppo gli studi sull’apprendimento a distanza sono poco sostenuti.
La ricerca ha mostrato che l’inaspettato potenziale della televisione interattiva per
l’apprendimento evolve poco verso un tipo di educazione tecnologica.
Comunque, coloro che prendono le decisioni e coloro che le attuano una volta
resisi conto del range di possibilità che adesso stavano emergendo sono diventati più
positivi verso i potenziali che la TV digitale può offrire[15].
2.4.2 Raccomandazioni
2.4.2.1 Raccomandazioni strategiche
Generalmente il focus deve essere improntato a stabilire una serie di progetti pilota
utilizzando video registrati e servizi del tipo con contenuti di video-on-demand per
incrementare le opportunità di learning nell’ambiente domestico.
Incoraggiare lo sviluppo di contenuti che possano essere controllati nel rispetto
della multicanalità, cioè ad ampio raggio con tutti i tipi di dispositivi di diffusione
tecnologici.
C’è bisogno di uno studio per capire come veramente apprendono le persone
nell’ambiente domestico e quali siano i vantaggi di apprendere a casa rispetto ad apprendere
in altri luoghi. Sono necessari degli studi di tipo sociopedagogico per capire quale sia il vero
impatto dell’apprendimento attraverso un utilizzo attivo della televisione.
C’è inoltre bisogno di uno studio relativo a quale tipo di interattività sia necessaria
per il learning. Cioè quale tipo sia il più adatto per suscitare nell’utente la curiosità e lo
stimolo che favoriscano l’utilizzo del servizio.
La disponibilità della larga banda è un fattore molto influente, deve diventare un
bene primario, quasi come l’acqua. Si è visto che una scarsa diffusione della larga banda è
52
Capitolo 2
La formazione a distanza
più dovuta alla politica che a delle vere e proprie limitazioni tecniche e fisiche dei luoghi
dove vivono le persone[15].
2.4.2.2 Ricerca sulle tecnologie del learning
Si dovrebbe dar vita a dei progetti pilota per capire meglio come utilizzare nel
modo più proficuo l’interattività limitata della Tv broadcast. L’obiettivo è quello di
ingaggiare un gruppo di persone che sono difficili da raggiungere con i mezzi informativi di
istruzione tradizionali, per farli passare da un modo passivo ad un modo attivo di usare il
mezzo televisivo.
È necessario sviluppare sistemi di personalizzazione appropriati e tool che rendano
i contenuti del learning più facili da essere recepiti attraverso i sistemi di TV Personalizzata
e di studiare l’apprendimento che viene distribuito attraverso il gioco televisivo.
Le ricerche future non vedono il learning nell’ambiente domestico come isolato
rispetto agli altri tipi di learning. Gli studi futuri riguardo al learning devono prevedere
l’utilizzo di qualsiasi dispositivo di comunicazione come può essere un PDA, telefoni 2.5 e
3G, console per giochi, PC portatili e desktop, dispositivi di immagazzinamento locale,
accesso a dispositivi di immagazzinamento remoto, comunicazioni senza fili, server
casalinghi[15].
53
Capitolo 3
Le scelte progettuali
3
Capitolo 3
Le scelte progettuali
Dalla lettura di questo capitolo si potrà evincere quali sono state le problematiche
che ci siamo trovati a dover affrontare. Dapprima si passano in rassegna le metodologie da
adottare per lo sviluppo di un’applicazione per la Tv interattiva digitale ed in particolare su
piattaforma DVB-MHP ed a seguire, da uno studio approfondito della piattaforma di
formazione a distanza dell’Università degli Studi di Siena, scaturisce la pianificazione di una
strategia di sviluppo. Il lavoro viene suddiviso in fasi per ottenere quanto prima dei risultati
concreti a supporto delle ipotesi e per evitare di tornare a risolvere lo stesso problema più
volte.
3.1 Fase di specifica di un’applicazione per la Tv interattiva
La specifica di un’applicazione interattiva per il mondo DTT (Digital Terrestrial
Television) richiede, alla stregua delle specifiche per un’applicazione Web Based, la
definizione di un albero di navigazione di contenuti informativi (testo ed immagini) nonché
di tecnologie specifiche che possono essere associate al comportamento dell’applicazione
stessa durante il run-time e che l’utente fruitore del servizio può attivare a seconda del
contesto.
La navigazione dei contenuti messi a disposizione dello spettatore necessita quindi
di un’organizzazione logica, definendo una serie di layer grafici corrispondenti ai diversi
livelli che il telespettatore può raggiungere attraverso l’interazione del telecomando sul STB
(Set Top Box) e specificando dettagliatamente le condizioni di passaggio da un layer logico
all’altro. Il tutto deve essere pensato non solo nel rispetto delle limitazioni imposte dagli
standard ma anche della facilità di utilizzo intrinseca del mezzo televisivo, basata
sull’utilizzo dei tasti del telecomando (nello specifico i quattro tasti colorati e/o le quattro
frecce di scroll).
Si possono pensare 3 livelli diversi di astrazione per avvicinarsi alla fase di specifica:
•
Si può pensare di sviluppare i vari layer grafici con un adeguato editor grafico e di
affidare il compito di tradurre le specifiche in codice MHP eseguibile su STB allo
54
Capitolo 3
Le scelte progettuali
sviluppatore. Lo svantaggio di questo tipo di approccio è quello di ricordarsi che lo
standard MHP impone molte limitazione sull’uso di font grafici, colori, immagini fisse e in
movimento. Pertanto colui che curerà la parte grafica dovrà sempre tener presente tali
limitazioni per evitare di produrre specifiche non completamente implementabili nel
mondo MHP.
•
Un secondo livello di astrazione, che si fa carico sin dall’inizio delle limitazioni
imposte dallo standard MHP, è quello di utilizzare sin da questa fase un tool di sviluppo
specifico del mondo MHP, in grado di introdurre già nel processo di specifica i vincoli di
cui sopra. In questa accezione l’editor grafico non è più da intendersi come un generico
tool di supporto allo sviluppo grafico, ma come primo passo nello sviluppo del codice
MHP. Esistono molti tipi di authoring tool di questo tipo, uno su tutti Cardinal (tool
disponibile in laboratorio) che permettono di realizzare interfacce grafiche sfruttando un
approccio simbolico limitato alle specifiche MHP, sfruttando come sistema operativo
Windows. Questo tipo di tool appartengono alla categoria dello sviluppo perché partendo
dalla definizione di un’interfaccia grafica sono in grado di generare un codice scritto in
JAVA-MHP e quindi eseguibile su un STB.
•
Un terzo livello di astrazione, che può essere considerato una sorta di compromesso
tra i primi due, è quello di utilizzare, per la specifica del layout e del contenuto delle pagine
linguaggi di descrizione come DVB-HTML oppure un opportuno dialetto XML. Per poter
operare a questo livello sarà necessario, all’interno della catena che rappresenta
l’applicazione MHP, introdurre un anello con la funzione interpretativa del linguaggio
utilizzato. Sfruttando questo tipo di approccio è possibile vincolarci strettamente allo
standard MHP perché il dialetto definito è univoco e quindi non può portare a specifiche
non implementabili e per di più è possibile utilizzare un qualsiasi editor grafico
opportunamente customizzato alle specifiche supportate grazie all’approccio alla
“browser”[3].
3.1.1 Il nostro approccio
Basandoci sulle considerazioni precedenti, sulle tecnologie software ed hardware
messeci a disposizione e soprattutto data la complessità del lavoro che dovevamo
affrontare si è optato per un approccio alla browser che comprendesse però anche l’utilizzo
55
Capitolo 3
Le scelte progettuali
di un authoring tool di sviluppo. Ciò ci ha permesso di facilitare il lavoro lato client e di
concentrare lato server la maggior parte della logica di gestione della navigazione e della
manipolazione dei contenuti. Cosi facendo siamo riusciti ad ottenere un’applicazione MHP
leggera in termini di dimensioni e a far eseguire tutte le operazioni più onerose al browser
lato server. Si è così riusciti a creare una struttura software in Java[27] riutilizzabili in
contesti che esulano dal learning, adattabile ad estrarre contenuti organizzati in maniera
omogenea, cioè schematizzabili con un albero XML.
3.2 Studio della piattaforma di e-learning dell’Università degli
Studi di Siena
3.2.1 Il sito FAD.UNISI.IT
Una parte fondamentale del lavoro è consistita nell’analisi dell’output della
piattaforma di formazione a distanza dell’Università di Siena localizzabile all’indirizzo web
“http://fad.unisi.it”. Ne è stata analizzata l’architettura e l’organizzazione dei contenuti con
l’intento di trovare una possibile strategia per interfacciarvi un’applicazione MHP caricata
su STB (Set Top Box).
Ci siamo trovati di fronte alla seguente situazione:
•
L’accesso alla piattaforma di apprendimento a distanza viene effettuato tramite un
browser Web. Il che è possibile sfruttando un qualunque computer dotato di una
connessione ad Internet (V 90, xDSL, ecc…);
•
La ricezione dei contenuti avviene sottoforma di risposta alle richieste Http
effettuate utilizzando l’interfaccia grafica del browser Web alla piattaforma, la quale
restituisce pagine HTML attraverso tecnologia ASP.NET.
La piattaforma (che costituisce il nostro lato server) gestisce la sessione multiutente
e contiene l’intelligenza che serve per la navigazione delle pagine e la fruizione dei
contenuti[16].
56
Capitolo 3
Le scelte progettuali
SITUAZIONE PIATTAFORMA FAD UNISI
Sessioni
Richieste
HTTP
Browser
Web
Piattaforma
FAD
(ASP)
HTML RICCO
(HTML + Java Script)
Contenuti
Intelligenza
Figura 10. Logica della FAD
3.2.2 Architettura del sito
Quando viene richiamato l’URL: http://fad.unisi.it il server interpreta la richiesta e
restituisce al browser (o al client Http) di prelevare la prima pagina del sito con i relativi
contenuti. Vengono fornite informazioni riguardo ai servizi erogati dalla piattaforma di
apprendimento a distanza dell’Università di Siena, ai corsi di laurea, di lingue e di
informatica (ECDL) attivi. È presente un’area dedicata all’autenticazione dell’utente per
mezzo di username e password, dati che vengono forniti dal Q.it attraverso un’opportuna
registrazione.
Figura 11. La pagina di benvenuto della FAD
57
Capitolo 3
Le scelte progettuali
L’utente inserisce username e password e se la procedura di autenticazione va a
buon fine per mezzo di un pop-up viene visualizzata un’altra finestra all’interno della quale
l’utente fruirà del servizio. La prima pagina è quella dei profili che possono variare in tipo e
numero a seconda dell’utente.
L’utente che fruisce del servizio è vincolato a scorrere i nodi di un albero che ha
come nodo radice la pagina dei profili attivi:
•
Scelta profilo;
•
Scelta corso;
•
Scelta sezione;
•
Scelta modulo;
•
Scelta lezione.
Una visione generalizzata dell’albero che si trova a percorrere l’utente durante la
navigazione delle pagine del sito può essere resa dal seguente grafo(Figura 12):
Utente 1
Utente 2
Utente n-esimo
Profilo 1
Profilo 2
Profilo n-esimo
Corso 1
Corso 2
Corso n-esimo
Sezione 1
Sezione 2
Sezione n-esima
Modulo 1
Modulo 2
Modulo n-esimo
Lezione 1
Lezione 2
Lezione n-esima
Figura 12. Architettura della piattaforma di formazione a distanza dell'Università di Siena
Ciascun utente registrato può avere più profili attivati, ciascun profilo può
comprendere più corsi, ciascun corso è costituito di più sezioni, ciascuna sezione ha a
58
Capitolo 3
Le scelte progettuali
disposizione più moduli, ciascun modulo contiene una o più lezione e così via… il tutto è
regolato dalla presenza di opportuni link che permettono di spostarsi in avanti e indietro
nella navigazione e dal JAVASCRIPT che regola il ritorno alle pagine precedenti, la fase di
login, di logout, la possibilità di accedere al supporto di un tutor online ecc….
3.2.3 Organizzazione dei contenuti
Dall’analisi della struttura del sito siamo passati allo studio delle singole pagine con
lo scopo di identificare i contenuti che potessero essere riproposti sullo schermo televisivo
tramite la piattaforma DVB-MHP. Analizzando il layout di ciascuna pagina si può notare
come questa possa essere vista come una grossa area (rettangolo) con all’interno tante
sottoaree (rettangoli più piccoli) contenenti ciascuna una parte del contenuto informativo di
tutta la pagina.
Figura 13. Area (rettangolo) contente la parte di informazione più significativa
59
Capitolo 3
Le scelte progettuali
Dalla pagina dei profili in poi il contenuto è organizzato in :
•
Area di Localizzazione – recante il nome del nodo dell’albero in cui ci troviamo
(Sezioni, Moduli, Lezione ecc…);
•
Area di Benvenuto - recante nome, cognome, tempo di durata della connessione,
link per poter cambiare la password e link per potersi scollegare;
•
Area Catalogo Corsi – recante i corsi che non sono attivi ma che l’utente può
attivare nel profilo in cui si trova;
•
Area Legenda – recante una sorta di piccolo help in linea in cui viene spiegato il
significato delle icone utilizzate;
•
Area Supporto – recante link al Q.it e link all’indirizzo e-mail di supporto agli utenti
FAD;
•
Area Principale – recante, a seconda dei casi, le informazioni per la navigazione e
per la lezione del corso vero e proprio.
Le Figura 13 e Figura 14 sono tratte dal sito nel contesto delle lezioni, e si nota
come già specificato, che la parte essenziale dei contenuti è racchiusa nell’area (rettangolo)
evidenziata.
Figura 14. Area (rettangolo) contenente la parte di informazione più significativa
60
Capitolo 3
Le scelte progettuali
3.2.4 Strategie di interfacciamento
Attraverso l’analisi del sito (che corrisponde all’output della piattaforma FAD) e
dallo studio dello standard MHP, di cui si è discusso in maniera dettagliata nel primo
capitolo, ci siamo resi conto che la parte che pone più vincoli al nostro progetto è senza
dubbio il lato client, cioè la parte dell’applicazione attraverso la quale l’utente interagisce
con il lato server (in questo caso la piattaforma di apprendimento a distanza) .
Il fatto che l’applicazione lato client sia di tipo MHP impone molti vincoli sulla
quantità ed il tipo di contenuti che possono essere visualizzati sullo schermo televisivo.
Anche la navigabilità risulta limitata, in quanto gestita tramite un numero minimo di
pulsanti del telecomando. L’ambiente web è senza dubbio meno restrittivo perchè dispone
di potenza di calcolo elevata e di mezzi di interfaccia molto più efficienti quali tastiera e
mouse. Il nostro scopo è stato quello di pensare ad una possibile soluzione che rendesse
realizzabile la fruizione di contenuti nati e residenti sul Web in modo facile ed intuitivo nel
pieno rispetto del carattere “user-friendly” del mezzo televisivo riuscendo ad introdurre
innovazione sottoforma di interattività. Per fare questo abbiamo puntato sull’utilizzo
massiccio del canale di ritorno, la vera componente innovativa introdotta dalla Tv digitale
terrestre.
Sono state esaminate varie strategie di interfacciamento tra le quali le più accreditate
sono state:
•
Realizzazione di un micro-browser di contenuti HTML;
•
Realizzazione di un proxy-server con la funzione di gateway applicativo tra FAD e
piattaforma DVB-MHP.
Di entrambe le soluzioni sono stati vagliati i pro e i contro. I parametri che hanno
influenzato la scelta della soluzione da implementare sono stati: la ridotta potenza di
calcolo messa a disposizione dai STB in commercio e la versatilità in termini di utilizzo
dell’applicazione futura. Dopo un’accurata analisi, la soluzione che si è deciso di
implementare è stata la seconda. Lo sviluppo di un micro-browser di contenuti HTML
sarebbe stata una soluzione troppo dedicata e vincolata dalle scarse risorse hardware in
termini di memoria e di potenza di calcolo. Ne avrebbe risentito il funzionamento
dell’applicazione in termini prestazionali proprio per questioni di banda a causa dello spazio
occupato dai contenuti all’interno della cache del STB. Invece lo sviluppo di un proxy-
61
Capitolo 3
Le scelte progettuali
server ci ha permesso di alleggerire quanto più possibile l’applicazione client e di sfruttare
delle tecnologie il cui funzionamento è ben consolidato nel mondo di internet. Il grosso del
lavoro viene effettuato lato server permettendo l’utilizzo dell’applicazione per
l’interfacciamento con altre piattaforme, ovviamente apportando delle opportune
modifiche. Una soluzione certamente indirizzata alla multicanalità.
3.2.4.1 Il gateway applicativo di interfaccia
Alla luce delle limitazioni sia hardware che software imposte lato client si è scelto di
seguire la soluzione prospettata dal proxy-server. Si è ipotizzato di poter sviluppare lato
server (in cui si suppone di avere a disposizione tutta la potenza di calcolo di cui si
abbisogna) un applicativo java[27] in grado di gestire le richieste effettuate lato client
attraverso il telecomando. La Figura 15 mostra il funzionamento generale del sistema con la
soluzione adottata.
SOLUZIONE SCELTA = PROXY-SERVER
L’applicazione client MHP effettua delle
richieste HTTP al proxy-server. Tali richieste
vanno definite sintatticamente
1
Richiesta HTTP
Il proxy-server inoltra le richieste
necessarie alla FAD con le
informazioni aggiuntive necessarie
2
Inoltro richiesta
PROXYSERVER
CLIENT
MHP
Contenuti XHTML
5
Parsing dello
streaming XHTML
FAD
Output HTML ricco
4
Parsing della pagina HTML ricevuta.
Estrapolazione dei contenuti e
costruzione dello streaming XHTML
3
La piattaforma risponde con
il corrispondente output
HTML
Figura 15. Schematica rappresentazione del funzionamento della soluzione scelta
L’utente interagisce con la piattaforma per mezzo del lato client MHP che accoglie
ed inoltra le richieste effettuate per mezzo della pressione del telecomando. Il client effettua
le opportune richieste Http al proxy-server che le interpreta e le smista alla FAD
aggiungendo, se necessario, delle informazioni aggiuntive. A questo punto il sito restituisce
62
Capitolo 3
Le scelte progettuali
in output pagine HTML prodotte con tecnologia ASP.NET. Il proxy-server legge ed
elabora l’output della piattaforma di apprendimento a distanza effettuando in successione:
•
Parsing dell’HTML;
•
Estrapolazione dei contenuti da visualizzare;
•
Costruzione del file XHTML.
Svolte queste operazioni, il proxy-server restituisce al client MHP i contenuti (testo
e link ad immagine e approfondimenti) risultanti dal filtraggio sotto forma di file XHTML.
L’applicazione MHP incorpora un parser XHTML in grado di estrarre i contenuti di
interesse e di restituirli ai componenti grafici per la loro presentazione.
3.2.4.2 Vantaggi e svantaggi dell’approccio
La decisione di sviluppare un proxy-server rappresenta una soluzione vantaggiosa
sotto il profilo della disponibilità di risorse hardware e della potenza di calcolo, almeno a
livello teorico, necessaria all’opera di interfacciamento.
La scelta dell’XHTML come linguaggio di output favorisce la fruizione del servizio
in un contesto di multicanalità in quanto molti dispositivi disponibili sul mercato sono
dotati di micro-browser XHTML “embedded”: mobile UMTS, PDA, ecc… Per non
dimenticare il fatto che in questo modo si garantisce la piena compatibilità con le
implementazioni delle specifiche MHP 1.1 che prevedono di affiancare alla JVM (Java
Virtual Machine) un micro-browser di contenuti XHTML.
Oltre agli aspetti positivi che ci hanno permesso di optare per questo tipo di
soluzione al posto di un’altra, sono presenti anche dei lati negativi, diretta conseguenza
delle limitazioni tecnologiche in cui ci siamo trovati ad operare. Una fra tutte, il fatto che il
canale di ritorno viene realizzato sfruttando una connessione telefonica a 56 Kbps con tutti
gli svantaggi del caso (lentezza nello stabilire una connessione e limitatezza di banda).
Come abbiamo visto, prima che l’interfaccia client possa sistemare i contenuti all’interno
dello schermo televisivo sono necessari diversi passaggi che sommati alla lentezza del
collegamento telefonico rallentano molto l’esecuzione dell’applicazione. Inoltre, pesando ad
un utilizzo dell’applicazione in un contesto multiutente la situazione si appesantisce
ulteriormente visto che la probabilità di trovare il proxy-server occupato dalle richieste di
un altro utente è più alta e ciò obbliga le richieste degli altri utenti a rimanere in coda
facendo rallentare notevolmente le prestazioni del servizio nel suo complesso. Proprio
63
Capitolo 3
Le scelte progettuali
questa latenza intrinseca ci ha portato all’adozione di una cache all’interno del proxy-server
in maniera tale da velocizzare il processo di acquisizione dei contenuti lato client per mezzo
di pagine XHTML già pronte per essere indirizzate all’applicazione MHP.
3.2.5 Pianificazione dell’iter di sviluppo
Vista la complessità del lavoro si è deciso di pianificare con cura l’implementazione
al fine di evitare di tornare troppe volte sugli stessi passi. Ci è sembrato per questo
opportuno suddividere il lavoro in 3 fasi:
•
Fase 1: studio e sviluppo del lato client MHP- realizzazione di un prototipo di
applicazione per Tv digitale terrestre;
•
Fase 2: studio e sviluppo del lato server – realizzazione della servlet che funge da
proxy-server (gateway applicativo);
•
Fase 3:
unione fase 1 e fase 2 – realizzazione dell’applicazione definitiva con
perfezionamento e rifinitura grafica;
MHP
CLIENT
Proxy-server
(java servlet)
Gestione
cookie e
sessioni
FAD
Figura 16. Implementazione della soluzione proxy-server
Si è deciso di iniziare lo sviluppo dalla sezione che prevede più vincoli, ossia dalla
realizzazione dell’applicazione client MHP. Il lato server, come già accennato non
comporta particolari vincoli e si suppone di avere a disposizione tutte le librerie ed (almeno
in teoria) della potenza di calcolo di cui si necessita.
Durante la prima fase viene effettuato un recupero veloce dei contenuti per
effettuare subito un test di presentazione lato MHP, dando per scontato la presenza del
proxy-server.
Si è pensato di suddividere questa fase nei seguenti passi:
64
Capitolo 3
•
Le scelte progettuali
Analisi output dell’html delle pagine della FAD : individuazione dei contenuti
da tenere/eliminare sulla base dell’interfaccia scelta;
•
Scrittura manuale files XHTML per il corso di prova “ECDL-2000-La patente
Europea del Computer”;
•
Scelta librerie JAVA per il parsing XHTML lato client;
•
Scrittura codice componente JavaBean per il parsing e la presentazione dei
contenuti;
•
Organizzazioni immagini e files XHTML in web server di test;
•
Test del funzionamento di un modulo del corso : accesso al web server
dall’applicazione MHP;
Ultimata la fase 1 si è passati alla fase 2 :
In questa fase vengono utilizzati i risultati della fase precedente per lo sviluppo del
proxy-server per un interfacciamento completo alla piattaforma FAD.
La fase 2 è stata suddivisa nei seguenti steps:
•
Studio approfondito della logica di funzionamento della FAD (sintassi delle
richieste – gestione dei cookie e delle sessioni);
•
Scelta delle metodologie di estrapolazione dei contenuti;
•
Scelta libreria per il parsing HTML (lato server);
•
Sviluppo
della/e
servlet
necessaria/e
alla
gestione
utente
e
alla
trasformazione HTML Æ XHTML sulla base della logica del client MHP;
•
Unione fase 1 e fase 2 - modifica componente Cardinal (predisposizione del
componente di richieste POST HTTP ) per comunicazione con il proxy-server (Servlet
Java);
•
Rifiniture - ritocco fogli di stile per riuscire a catturare la quantità maggiore di
contenuti;
•
Completamento grafico – abbellimento grafico dell’interfaccia client con lo scopo
di renderla accattivante all’occhio dell’utente;
65
Capitolo 3
Le scelte progettuali
3.2.6 Tecnologie utilizzate
Di seguito vengono schematicamente presentati i vari tool di sviluppo hardware w
software e le tecnologie utilizzate per la realizzazione del servizio:
•
Cardinal Studio Professional 4.0 – un potentissimo authoring tool per lo sviluppo
di applicazioni MHP adatte per essere messe realmente in onda[];
•
Cardinal Studio Component Pack – set di componenti aggiuntivi importati
nell’authoring tool[];
•
Cardinal Playout – software necessario a gestire l’immissione dell’applicazione
nella catena di distribuzione broadcast[];
•
Oracle JDeveloper 10g Versione 10.1.3.0.2 – editor completo codice Java[27];
software utilizzato per la scrittura del codice Java[27]; lato client per lo sviluppo di
componenti (Java Beans) per Cardinal Professional e lato server per lo sviluppo della
servlet (proxy-server)[];
•
Internet Explorer – il browser Web utilizzato in fase di sviluppo del lato server per
testare durante le varie fasi il funzionamento della servlet (proxy-server) con la creazione di
opportuni FORM HTML[];
•
HTTP Analyzer Std Versione 1.6.2.156 – uno sniffer http che ci è servito per
capire la logica delle richieste effettuate browser-FAD e per individuare le informazioni che
in tali richieste venivano scambiate[];
•
Altova XmlSpy Enterprise Editino Version 2005 release 3 – ambiente di editing
di codice per linguaggi di markup o di scripting. Ci è servito per scrivere le pagine di prova
in XHTML e successivamente i fogli di stile, come si vedrà nel capitolo 5 in cui verrà
spiegata dettagliatamente la realizzazione finale dell’applicazione[];
•
Apache Tomcat 5.5.9 – The Apache Jakarta Project – web server per il deploying e
l’housing di scripting Java come la nostra servlet[];
•
MySQL – per la gestione dei databases utilizzati lato server per la gestione della
sessione, della cache e della navigazione[];
•
Questi componenti hardware servono per gestire tutta la catena di simulazione
presente in laboratorio:
•
Server Cardinal Playout Compact;
66
Capitolo 3
Le scelte progettuali
•
Modulatore DVB-T;
•
Up-converter per portare il segnale alla frequenza di utilizzo;
•
Riduttore di potenza del segnale;
•
Set Top Box commerciale[22];
•
Televisore a colori;
L’AMBIENTE DI TESTING PRESENTE IN
LABORATORIO DI TELECOMUNICAZIONI
Cardinal Playout
Compact:
•
Object
Carousel
Generator
•
Generazione
tabelle PS/SI
•
Scheduler
•
Transport
Stream
Multiplexer 90
Mbps
•
Output DVB
ASI-IP
Multicast
Modulatore
DVB-C
Tv Color
Modulatore
DVB-T
Set Top Box
Canale di ritorno
Web Server
Apache
Tomcat
Dial-Up V 90
Ethernet
xDSL
Figura 17. L'ambiente di testing presente in laboratorio di TLC
Il server Cardinal Playout ha come compito quello di riversare l’applicazione e i
contenuti ad essa collegati all’interno del carosello. Il segnale parte dal server Cardinal e
viene indirizzato al modulatore DVB-T e da qui all’ Up-converter che porta il segnale a
frequenza intermedia e da lì, una volta depotenziato, viene convogliato tramite cavo
coassiale nel Set Top Box. Il STB è collegato al televisore a colori tramite presa SCART ed
ad Internet tramite linea telefonica.
67
Capitolo 3
Le scelte progettuali
3.2.7 Cardinal Studio Professional 4.0
Cardinal Studio è un ambiente di authoring tool visuale pensato appositamente per
la realizzazione di applicazioni per la piattaforma DVB-MHP. Grazie all’utilizzo di questo
software è possibile la realizzazione di Xlet senza aver bisogno della conoscenza del
Java[27], linguaggio di programmazione in cui viene di solito scritto il codice di una Xlet.
Si possono sviluppare applicazioni semplici per interfacciarsi a database di prova o
ricevere dati tramite una connessione HTTP. Per creare degli applicativi con delle
funzionalità più complicate è necessario lo sviluppo di componenti aggiuntivi, scritti in
Java[27] da importare all’interno di Cardinal oppure modificare quelli già esistenti
introducendo parti di codice Java[27], ricompilarli e importarli nuovamente. Infatti Cardinal
prevede la possibilità di importare nuovi componenti scritti in Java[27] con la tecnologia
Java Bean: sono un modo di accorpare applicativi Java[27] che li rende indipendenti dal
contesto in cui si trovano rendendoli autonomi e facilmente adattabili. Grande punto di
forza di Cardinal è il fatto di disporre di un emulatore incorporato che permette di simulare
letteralmente la fruizione da parte dell’utente tramite telecomando dell’applicazione creata.
L’applicazione viene creata mettendo logicamente insieme tra di loro componenti
preesistenti e componenti creati. Si creano cioè le dipendenze tra l’uno e l’altro
relazionandoli ad eventi; quest’ultimi rappresentati dalla pressione dei tasti del telecomando,
dal passaggio da un ACT all’altro, dalla visualizzazione di un layer grafico ecc… Al termine
della creazione o, per testarne il funzionamento, ad una certa fase dello sviluppo è possibile
compilare dando origine cosi alla Xlet. L’applicazione così compilata viene fatta girare
all’interno dell’emulatore che è dotato di un telecomando virtuale del tutto simile a quello
dei Set Top Box che si trovano in commercio.
68
Capitolo 3
Le scelte progettuali
Ambiente di sviluppo:potenzialità
Authoring Tool
Emulatore
Componenti “embedded”
Cardinal Studio Professional 4.0
JVM (Java Virtual Machine)
v1.4.05
Componenti
importabili:
Java Beans
Figura 18. Le potenzialità del tool di authoring Cardinal Studio Professional
3.2.8 Le librerie utilizzate lato client
Sparta
Sparta[17] è un pacchetto Java XML di dimensioni inferiori alla media che include
un parser XML, un DOM (Document Object Model), l’interfaccia standard per mezzo
della quale vengono definiti metodi ed attributi che permettono la gestione dei contenuti di
un albero XML in una visione orientata agli oggetti (Object Oriented) e un interprete
XPath[18][21]. Le dimensioni del codice sono piccole, il parser è veloce, la memoria per gli
oggetti è piccola, le API DOM sono semplici e pulite.
Thermopylae è un wrapper per Sparta che permette ad essa di essere usata al posto
di Xerces, uno dei più diffusi parser che fa uso di DOM. Essa presenta un parser W3Cstandard e una interfaccia DOM.
Sparta è stato scritto originariamente nei laboratori della Hewlett-Packard perchè
servisse da supporto ad un progetto per la gestione della distribuzione di applicazioni in
Internet e l’unione di applicazioni locali. Successivamente il codice e la documentazione
sono passati al sito della SourceForge.
69
Capitolo 3
Le scelte progettuali
I punti di forza di questa libreria sono l’utilizzo di un’interfaccia DOM per la
gestione dell’albero XML e del linguaggio XPath[18][21] per l’accesso ai nodi del suddetto
albero[ ].
3.2.8.1 Caratteristiche generali
•
Sparta è dotato di un parser semplice e veloce
•
Il parser non valida gli schemi DTD
•
Il parser non supporta entità esterne
•
Sparta ignora i namespaces. <a:Foo> e <b:Foo> vengono trattati come se “:” fosse
un carattere normale di un tag. Questi saranno considerati tags differenti sebbene parlando
strettamente c’è una possibilità che a: e b: namespace abbiano lo stesso URI.
•
Il DOM è una semplificazione della w3c DOM API. Il DOM utilizza gli stessi nomi
delle classi e dei metodi del w3c DOM dove è possibile, ma risulta essere indipendente da
quest’ultimo ed inoltre non implementa la sua interfaccia. Il DOM di Sparta non usa
interfacce e factorie , invece utilizza poche ma semplici e concrete classi.
Sparta può essere implementata soltanto usando la Java Virtual Machine JDK 1.x
pertanto può girare su dispositivi J2ME. Questo significa per
esempio che essa utilizza le vecchie classi java.util (Vector, Hashtable,
Enumeration) al posto delle nuove (List,Map,Iterator).
Per permettere al codice di Sparta di lavorare con altro codice XML esiste anche
ThermopylaeXml che è un DOM standard intorno a Sparta.
Le espressioni del linguaggio SpartaXpath sono un sottoinsieme della grammatica
completa di XPath[18][21]. Viene fornito il supporto solo alla sintassi abbreviata, che in
pratica è ciò che la maggior parte delle persone usa. L’utilizzo di XPath[18][21] è integrato
nel DOM attraverso i metodi xpathSelect delle classi com.hp.hpl.sparta.Document e
com.hp.hpl.sparta.Element.
Il metodo toString dei nodi di DOM restituisce la concatenazione di tutta la
gerarchia in formato testuale di dei nodi che si trovano al di sotto del nodo dato. Ciò ci
fornisce una funzionalità molto simile ad una che viene data attraverso XSLT. In questo
modo se un documento contiene l’XML del tipo :
70
Capitolo 3
Le scelte progettuali
"<A>1<BB>2<ccc>3</ccc>4<ccc/>5</BB>6<BB>7</BB>8</A>"
allora l’espressione
"doc.xpathSelectElement("/A/BB").toString()"
Restituirà
"2345"[17]
3.2.8.2 XPath
XPath[18] è un linguaggio tramite il quale è possibile generare delle espressioni per
indirizzare parti di un documento XML. È ideato per operare all’interno di altre tecnologie
XML come XSL[21] ed XPointer, ed è caratterizzato dal fatto di avere una sintassi non
XML. In questo modo può essere meglio utilizzato all’interno dell’URI o come valori di
attributi di documenti XML. XPath[18] opera su una rappresentazione logica del
documento XML, che viene modellato con una struttura ad albero ed XPath[18][21]
definisce una sintassi per accedere ai nodi di tale albero. Oltre a questo, XPath[18][21]
mette a disposizione una serie di funzioni per la manipolazione delle stringhe, numeri e
booleani, da utilizzare per operare su valori o sugli attributi dei nodi.
Le espressioni definite da XPath[18][21] per accedere ai nodi dell’albero prendono il
nome di Location Path (percorsi di localizzazione).
La struttura di un location path è la seguente: “axis::node-test[predicate]”.
La componente axis esprime la relazione di parentela tra il nodo cercato ed il nodo
corrente; la componente node-test specifica il tipo o il nome del nodo cercare; mentre
predicate contiene zero o più filtri (espressi tra parentesi quadre) per specificare delle
condizioni più selettive da applicare alla ricerca.
In XPath[18][21] è possibile accedere ai nodi dell’albero utilizzando delle
espressioni abbreviate dei Location Path. Le espressioni abbreviate, come suggerisce il
nome stesso, sono una versione semplificata e compatta dei Location Path[18] ed offrono
un meccanismo più veloce, ma al tempo stesso meno potente per accedere ai nodi
dell’albero. Queste espressioni sono costituite da una lista di nomi di elementi del
documento XML, separati da uno slash(/), e tale lista descrive il percorso per accedere
all’elemento desiderato. È un meccanismo molto simile a quello usato per identificare i file
e le directory nel file-system.
71
Capitolo 3
Le scelte progettuali
3.2.9 Le librerie utilizzate la server
JTidy-r8-SNAPSHOT
Questa libreria è stata utilizzata lato server per permettere la manipolazione della
pagina HTML output della FAD. È la versione Java del più famoso validatore di codice
HTML[19].
MySQL-Connector-Java
Questa libreria è stata utilizzata perché il proxy-server potesse gestire
l’interfacciamento alle tabelle del database MySQL creato per la gestione della sessione
utente[20].
72
Capitolo 4
Sviluppo dell’applicazione client
4
Capitolo 4
Sviluppo dell’applicazione client
4.1 La scelta dei contenuti
Come più volte specificato l’intento è stato quello di riuscire a riproporre contenuti
nati e residenti nel mondo WEB su piattaforma digitale terrestre. È importante sottolineare
che non tutti i tipi di contenuti web sono adattabili ed adatti al contesto televisivo. Per
prima cosa quindi è stato necessario esaminare accuratamente il layout delle pagine del sito
FAD di riferimento per fare una scelta dei contenuti che potessero essere estratti e
riproposti. Come si è già accennato trattando le scelte progettuali, la pagina web del sito in
questione può essere considerata alla stregua di una grossa area all’interno della quale il
contenuto informativo è organizzato sottoforma di testo, immagini e collegamenti
ipertestuali. Tale area è a sua volta suddivisa in altre sottosezioni di dimensione più piccola
contenenti ciascuna una parte dell’informazione veicolata da tutta la pagina (l’area più
grande). Si è deciso di escludere le sottoaree contenenti collegamenti JavaScript per il login,
il logout, gli help in linea, i forum ecc… tutte funzionalità che non possono essere riportate
nell’applicazione MHP ma che saranno implementate attraverso lo sviluppo del lato server
(Java Servlet).
Ci siamo quindi concentrati sulla sottoarea evidenziata in Figura 19:
Area
di Interesse
Figura 19. L'area di interesse
73
Capitolo 4
Sviluppo dell’applicazione client
4.1.1 L’area d’interesse
In quest’area ha luogo la maggior parte della fruizione del servizio: la gestione del
corso e la navigazione tra le varie lezioni. È possibile passare dalla scelta del profilo ai corsi,
alle sezioni, ai moduli, al modulo scelto ed infine alla lezione vera e propria; il tutto grazie
ad un semplice click sui link relativi. Abbiamo analizzato le aree principali di ciascuna
pagina ad ogni livello della navigazione per riuscire ad individuare una possibile omogeneità
di contenuti necessaria a ricavare uno schema XML che fosse il più generale possibile. Tale
indice avrebbe assunto la veste di una specie di protocollo di comunicazione tra le due
piattaforme, la FAD e la Tv digitale terrestre. L’analisi si è concentrata su un numero
cospicuo di pagine al fine di considerare un’ampia casistica di contenuti focalizzando
l’attenzione sulle lezioni, la parte più ricca di contenuti. In base all’analisi fatta ci è sembrato
opportuno suddividere l’area di interesse in tante sottoaree :
•
La prima area è quella del testo che può presentarsi in semplici paragrafi oppure
organizzato in elenchi di tipo puntato. L’area di testo può includere al suo interno
collegamenti ipertestuali, icone e immagini
•
La seconda area è quella delle immagini contestuali all’argomento della lezione –
possono essere presenti oppure no e quando lo sono è possibile anche in numero maggiore
di uno.
•
La terza area è quella dei link cosiddetti di “approfondimento”, che permettono di
accedere a pagine di approfondimento all’argomento trattato nella lezione. Questi tipi di
link possono presentarsi organizzati in elenco semplice o puntato oppure all’interno di
tabelle o dei paragrafi di testo.
•
La quarta area è quella del link che permette di tornare alla pagina precedente. Tale
link non è sempre presente, ma quando c’è è rappresentato da un’icona blu a forma di
triangolo.
•
La quinta area individuata è quella dei link che permettono il passaggio da una
lezione all’altra di uno stesso modulo. La si può suddividere in ulteriori quattro sottoaree:
o
il link che permette di tornare alla prima lezione del modulo corrente;
o
il link che permette di tornare alla lezione precedente a quella che stiamo
trattando;
74
Capitolo 4
Sviluppo dell’applicazione client
o
il link che permette di passare alla lezione immediatamente successiva a
quella che stiamo trattando;
o
•
il link con il quale si può passare alla ultima lezione del modulo corrente.
La sesta area individuata esiste sempre e contiene il titolo della lezione del modulo
che si sta esaminando: pertanto è stata chiamata semplicemente “area titolo”.
4.2 Realizzazione dello scheletro di interfaccia
Lo studio accurato del tipo di contenuti e del layout delle singole pagine ci ha
permesso di compiere il primo passo avanti verso la realizzazione del nostro progetto.
In base soprattutto ai vincoli imposti dallo standard MHP e dai limiti fisici e
tecnologici nell’utilizzo ottimale dello schermo televisivo siamo stati in grado elaborare una
sorta di scheletro/schema di interfaccia. Si è pensato di organizzare l’interfaccia in aree
corrispondenti il più possibile a quelle dell’area di interessa della pagina del sito. In questo
modo all’informazione contenuta nella sottoarea della pagina web corrisponde
un’opportuna interfaccia Tv.
Area Titolo
Immagine contestuale
o generica per
l’argomento trattato
Testo semplice del
contenuto del corso
Elenco scrollabile e
selezionabile di
approfondimenti
Figura 20. Scheletro di interfaccia
75
Capitolo 4
Sviluppo dell’applicazione client
Come si può vedere dalla Figura 20 lo schermo televisivo è stato suddiviso in aree:
•
Area del titolo - dove verrà visualizzato il titolo della lezione;
•
Area dell’immagine – dove verrà visualizzata l’immagine contestuale o generica
all’argomento trattato;
•
Area del testo scrollabile – dove verrà visualizzato il testo del corso eventualmente
scrollabile;
•
Area degli approfondimenti – dove verranno visualizzati e sarà possibile
selezionare gli approfondimenti relativi alla lezione trattata;
•
Area della navigazione – dove verranno visualizzati i tasti relativi alla selezione del
link per passare da una lezione all’altra di uno stesso modulo.
4.3 Scelta del formato di scambio dati
Il fatto di avere a disposizione due piattaforme differenti ha reso necessario definire
un modello di dati esportabile a tutt’e due i lati della comunicazione ed il modo migliore
per farlo è stato utilizzare una sintassi XML.
4.3.1 Formato di scambio dati XML
L’acronimo XML sta per eXtensible Markup Language. Esso permette la creazione
di dialetti di linguaggi che seguono regole precise e rigorose per la struttura, la sintassi e la
semantica, come stabilito dal W3C. È possibile la memorizzazione dei dati in forma di testo
semplice: qualsiasi applicazione (o qualsiasi essere umano) che possa leggere un file di testo
può leggere un file XML. Non è necessario avere il programma di origine per accedere ai
dati. Per questo motivo per modificare un file XML è sufficiente un editor di testo, ma
esistono anche degli editor di testo dedicati con funzionalità aggiuntive. XML è un set di
regole per creare formati di testo facili da generare e facilmente elaborabili da un computer.
I file di testo risultanti sono strutturati, in modo tale da essere :
•
Privi di ambiguità;
•
Estendibili;
•
Indipendenti dalla piattaforma.
76
Capitolo 4
Sviluppo dell’applicazione client
È evidente la somiglianza con HTML (HyperText Markup Language), infatti tutt’e
due sono linguaggi di markup, cioè sfruttano una sintassi che permette la memorizzazione
di elementi (dati) racchiusi all’interno di tag. XML permette la creazione di un insieme di
marcatori autodescrittivi, specifici per la condizione di utilizzo a differenza di HTML che
possiede un insieme di marcatori predefiniti. Per questo leggendo il codice XML è possibile
capire il tipo dati e il modo in cui questi vengano immagazzinati. L’indipendenza dalla
piattaforma rende XML ideale per l’uso sul Web[].
4.3.2 La sintassi scelta
Per prima cosa abbiamo definito la struttura dell’albero logico che rappresenta la
suddivisione dell’area d’interesse in sottosezioni. Si è scelto come elemento radice la stessa
area principale, quella cioè in cui è contenuta tutta l’informazione che ci interessa. Come
nodi dell’albero si sono scelte le singole sottoaree in cui è divisa l’area di interesse. Una
rappresentazione schematica dei contenuti XML è mostrata nella Figura 21:
<?xml version="1.0" encoding="UTF-8"?>
<area_di_interesse>
<area tipo ="titolo"> . . . . . . . </area>
<area tipo ="testo"> . . . . . . . </area>
<area tipo ="immagine"> . . . . </area>
<area tipo ="link precedente"> . . . . . . </area>
<area tipo ="link_indietro_veloce"> . . . . . . </area>
<area tipo ="link_indietro"> . . . . . . . </area>
<area tipo ="link_avanti"> . . . . . . . . </area>
<area tipo ="link_avanti_veloce"> . . . . . . </area>
</area_di_interesse>
Figura 21. Albero logico rappresentante la suddivisione in sottosezioni dell'area d'interesse
77
Capitolo 4
Sviluppo dell’applicazione client
Si tratta di un modello molto semplice. Non ci è sembrato opportuno cominciare
direttamente con uno schema che comprendesse tutta la casistica dei contenuti del sito. Il
nostro proposito iniziale è stato quello di verificare le ipotesi progettuali con un modello
limitato per poi aumentare progressivamente la complessità in linea con gli sviluppi
applicativi.
<?xml version="1.0" encoding="iso-8859-1"?>
<contenuto>
<aree>
<area>
<testo tipo ="titolo"> . . . . . . . . . . </testo>
</area>
<area>
<testo tipo ="libero"> . . . . . . . . . </testo>
</area>
<area>
<immagine nome ="...nome dell'immagine..." didascalia ="...didascalia
immagine..." url="...indirizzo immagine..."/>
</area>
<area>
<testo tipo ="puntato"> . . . . . . . . </testo>
</area>
<area>
<link tipo ="precedente" url="...indirizzo pagina precedente..."/>
</area>
<area>
<link tipo ="indietro_veloce" url="...indirizzo per indietro veloce..."/>
<link tipo ="indietro" url="...indirizzo per link indietro..."/>
<link tipo ="avanti" url="...indirizzo per link avanti..."/>
<link tipo ="avanti_veloce" url="...indirizzo per link avanti veloce..."/>
</area>
</aree>
</contenuto>
Figura 22. Modello di scambio dati definito da noi
78
Capitolo 4
Sviluppo dell’applicazione client
4.4 Sperimentazione con file XML residenti
Seguendo lo schema che abbiamo elaborato siamo passati alla scrittura dei file XML
per costituire un database di prova al quale si sarebbe dovuto attingere quando saremo
andati a fare la prima prova del lato client. Per effettuare un primo test dell’applicazione
client, almeno nella fase iniziale si è scelto di scrivere i file XML corrispondenti alle pagine
appartenenti ad un modulo di un corso e quindi di lavorare su di un numero limitato di
pagine. Così facendo abbiamo ristretto la casistica dei contenuti ma nello stesso tempo
abbiamo considerato a pieno tutti i casi di navigabilità che si possono verificare.
Il passo successivo sarebbe stato quello di ampliare la varietà dei contenuti
considerati in modo tale da coprire completamente la casistica dei contenuti del corso.
Si è scelto il primo modulo della prima sezione del corso “ECDL – 2000- La
patente europea del computer”[] che contiene al suo interno 3 lezioni con o senza
approfondimenti contestuali.
I file corrispondenti ai contenuti delle pagine scelte sono stati quindi organizzati in
cartelle e sotto cartelle e memorizzati su un web server di prova tramite ftp. Spostandoci
quindi allo sviluppo dalla parte client, cioè dell’applicazione MHP, si è reso necessario lo
sviluppo di un componente sviluppato in tecnologia JavaBean da integrare nell’authoring
tool a disposizione, che effettuasse le operazioni di parsing dei file XML appena creati per
estrarre i contenuti e passarli quindi ai componenti grafici di presentazione. In sintesi le
operazioni che doveva fare il nostro componente sono :
•
Stabilire una connessione Http con il Web Server di prova recuperando i file
richiesti identificati da un apposito URL;
•
Leggere il file XML;
•
Estrarre i contenuti dai nodi dell’albero associato ai singoli files XML.
Da questo punto in poi si è trattato di manipolare i contenuti estratti in modo tale
da poterli riproporre secondo lo scheletro base dell’interfaccia Tv ipotizzato.
Sono stati utilizzati Label di testo per il titolo e per le varie forme testuali di
informazione. Il componente Image ci è servito per rendere possibile la visualizzazione
delle immagini ipotizzando di renderle disponibili, almeno per il momento all’interno del
carosello e di non prelevarle dal canale di ritorno.
79
Capitolo 4
Sviluppo dell’applicazione client
URL
T-LEARNING : INTERROGA WEB SERVER
FILE XML
XML
LINK AVANTI
T-LEARNING
COMPONENTE
CARDINAL
PARSER
XML
LINK INDIETRO
FILE DSML APPROFONDIMENTI
TESTO
IMMAGINE
TITOLO
Figura 23. Logica di funzionamento del componente T-Learning nel test di interfacciamento
Per la visualizzazione degli approfondimenti si è fatto uso dei componenti della
famiglia DataSet. Con il loro utilizzo è possibile manipolare file DSML caratterizzati da
una sintassi XML che in pratica è la traduzione in termini XML di una tabella di database.
80
Capitolo 4
Sviluppo dell’applicazione client
Questo tipo di struttura viene utilizzata come descrizione delle informazioni
veicolate e costituisce la fonte dati per il componente DSMLDataSource che effettua il
parsing e costruisce una struttura navigabile dai componenti grafici della stessa famiglia,
controllati dal gestore Dataset.
Il componente sviluppato per estendere le funzionalità dell’authoring tool produce
file DSML sia per gli approfondimenti che per le immagini; pertanto sono stati usati i
componenti della famiglia Dataset per gestire la presentazione dei contenuti.
La Figura 24 di seguito mostra un esempio di file DSML:
Figura 24. Esempio di un generico file nel formato DSML
Come si può vedere dalla Figura 24 il file DSML è organizzato in sezioni:
•
Data: qui è presente un attributo “name” con la funzione di specificare una sorta di
nome della raccolta di informazioni;
•
Header: qui vengono specificate le colonne ed i loro attributi “name” per il nome,
“type” per il tipo di dati, “index” per il numero di indice della relativa colonna;
•
Rows: le righe contengono l’informazione vera e propria che è organizzata sulla
base degli attributi specificati nelle sezione di header.
Il componente che abbiamo sviluppato viene quindi gravato da un altro compito,
cioè generare un file DSML contenente le stringhe che rappresentano gli approfondimenti
e i link delle immagini. Il componente dovrà inoltre poter stabilire una connessione al web
server di testing su protocollo http sfruttando il canale di ritorno che può essere gestito
attraverso il componente predefinito MHP Return Channel
81
Capitolo 4
Sviluppo dell’applicazione client
4.4.1 I componenti DataSet
Questa categoria di componenti è stata sviluppata con lo scopo di poter gestire i
dati informativi come se si trovassero immagazzinati all’interno di un database applicativo,
testo o immagini che siano.
Il framework Dataset è un potente strumento per creare applicazioni e componenti
per la visualizzazione di testo e immagini. Costituisce un tramite tra componenti grafici e
l’informazione vera e propria: è possibile che questo si interponga tra più componenti
grafici e più fonti informative che utilizzano lo stesso formato di dati DSML (è necessario
l’uso di molteplici componenti DSMLDataSource per gestire più file DSML
contemporaneamente).
Generico
DataAwareList
Generico
component
e Cardinal
Generico
DataLabel
Dataset
Fonte di file formato
DSML
Figura 25. Il framework DataSet
Come si può vedere dalla Figura 25 qui riportata, il componente DataSet ha la
funzione di colui che smista i contenuti prelevati dal componente DSMLDataSource ai
componenti DataAwareList o DataLabel deputati alla rappresentazione dell’informazione
(testo o immagini). Ciascun DataSet può essere associato a più componenti Data-Aware
Display mentre un DataSet può avere associato un solo dsmlDataSource[].
82
Capitolo 4
Sviluppo dell’applicazione client
4.5 Il componente T-Learning
Passiamo ad analizzare adesso il componente T-Learning, il fulcro della nostra
applicazione. Si tratta di un componente sviluppato in tecnologia JavaBean, la cui versatilità
di utilizzo intrinseca ne permette l’utilizzo anche con altre applicazioni.
Nel corso dell’evoluzione del progetto il componente ha subito varie modifiche in
vista dell’interfacciamento completo alla FAD: si è passati dalle funzionalità di connessione
ad un Web Server di prova a quelle di connessione ad un Web Server di Housing
applicativo (Apache Tomcat) con passaggio di parametri via Http Post e nell’header della
richiesta.
4.5.1 Proprietà e funzionamento
Il componente in fase di runtime prende in ingresso parametri passati
dall’applicativo. Tali valori possono corrispondere a precise azioni dell’utente o a dati
passati in input dall’utente ad esempio riempiendo form testuali. I parametri sono impostati
nel codice Java come variabili private ed appaiono all’utilizzatore dell’authoring tool come
proprietà del componente settabili dall’esterno.
Nella prima fase di sviluppo del componente sono state dunque considerate le
proprietà:
•
urlBase;
•
indirizzoFile.
La prima permette di impostare dall’esterno l’indirizzo di un Web Server di prova
mentre la seconda l’indirizzo del file relativo alla cartella in cui si trova. In questo modo si è
reso il componente ancora più versatile: lo si può utilizzare con Web Server diversi e diversi
database fittizi di prova senza mettere mano al codice Java[27].
Successivamente, per implementare l’interfacciamento completo alla piattaforma di
formazione a distanza attraverso la servlet Java, sono state considerate i seguenti parametri
esterni:
•
URL_servlet : indirizzo al quale il componente si connette via Http, rappresenta
l’indirizzo del contenitore della Servlet;
•
Username : nome utente che permette l’accesso al proprio profilo o profili della
FAD;
83
Capitolo 4
•
Sviluppo dell’applicazione client
Password : password da inserire insieme al nome utente per rendere effettivo
l’accesso alla FAD.
Il componente entra in gioco ogni volta che l’applicazione MHP fruisce del canale
di ritorno per prelevare i contenuti richiesti dall’utente, quindi alla pressione di ogni tasto
del telecomando scelto per l’inoltro di una richiesta.
La classe è organizzata in più metodi di cui il principale è il metodo parser che, come
dice il nome stesso è quello che, dopo essersi connesso al server con il relativo passaggio di
parametri recupera la stringa XHTML e ne effettua l’operazione vera e propria di parsing.
Mediante opportuni metodi di set presenti nella classe, possono essere settati dall’esterno
due parametri di tipo stringa:
•
Link Æ la stringa che rappresenta il link della pagina richiesta che sarà sfruttato dal
lato server;
•
TASK Æ stringa relativa alla parte della logica server che deve essere eseguita in
relazione alla richiesta effettuata.
I contenuti vengono estratti e memorizzati in rispettive variabili stringa e dove
richiesto vengono strutturati e memorizzati i file DSML dei link degli approfondimenti e
dei link delle immagini.
Al verificarsi dell’evento corrispondente alla pressione di un tasto il componente
stabilisce una connessione Http alla servlet passando nell’header della richiesta, ove
necessario un collegamento ipertestuale che sarà sfruttato poi lato server, e tramite POST le
tre stringhe corrispondenti a:
•
Username;
•
Password;
•
Cookie.
Ricevuta la stringa XHTML, questa viene letta e man mano immagazzinata in una variabile
stringa appositamente inizializzata che successivamente viene sottoposta all’operazione di
parsing con relativa estrazione dei contenuti richiesti. Per fare questo vengono sfruttate le
potenzialità della libreria Sparta. La stringa contente la pagina XHTML viene associata
all’interfaccia standard DOM creando un albero i cui nodi sono gli elementi con i relativi
tag di chiusura. La selezione dei nodi dell’albero viene effettuata sfruttando istruzioni
XPath[18][21]:
84
Capitolo 4
Sviluppo dell’applicazione client
•
//p[@class="titolo"] Æ per la selezione nodo contenente la stringa del titolo;
•
//img Æ per la selezione degli elementi contenenti le stringhe dei link relativi alle
immagini;
•
//a[@class="approfondimento"] Æ per la selezione dei nodi contenenti le stringhe
dei link relativi agli approfondimenti;
Per la selezione dei nodi contenenti le stringhe dei relativi link e della loro
descrizione:
•
//a[@class="indietro_veloce"];
•
//a[@class="indietro"];
•
//a[@class="avanti"];
•
//a[@class="avanti_veloce"];
•
//a[@class="precedente"] Æ per la selezione del nodo contenente la stringa del
link della pagina precedente;
•
//p[@class="testo”] Æ per la selezione dei nodi contenenti stringhe del testo delle
pagine;
•
//a[@class="immagine_precedente"] Æ per la selezione del nodo contenente la
stringa del link relativo all’icona collegata al link della pagina precedente.
La classe permette la restituzione dei contenuti all’esterno del componente
attraverso opportuni metodi di get. Quindi è possibile recuperare:
•
Titolo,
•
Testo,
•
File DSML degli approfondimenti,
•
File DSML delle immagini;
•
I link Indietro_veloce, Indietro, Avanti e Avanti_veloce e le rispettive descrizioni.
I contenuti così residenti in memoria possono essere passati a seconda delle
richieste effettuate ai componenti dell’interfaccia grafica che si occupa della loro
rappresentazione.
Affinché i parametri, i metodi e le proprietà di cui dispone il componente creato
siano visibili dall’esterno del package, è stato stilato un apposito file beanInfo[25]. Il file TLearningBeanInfo è organizzato in metodi con ciascuno il proprio compito:uno per le
85
Capitolo 4
Sviluppo dell’applicazione client
proprietà ed uno per i metodi che devono essere resi visibili all’esterno. È possibile
impostare il nome del componente, dei brevi commenti, la presenza o l’assenza di
un’immagine con la funzione di icona del componente.
Il codice Java[27] del componente e il file beanInfo[25] compilati, ossia i file con
estensione .class insieme all’immagine associata vengono impacchettati per formare un file
Jar[26] secondo le specifiche JavaBean. All’interno del file compresso è presente anche un
file di testo molto importante chiamato file manifest mediante il quale Cardinal è informato
sulle classi che vengono utilizzate dal componente T-Learning.
Il componente T-Learning :
Stringa XHTML
Link
Indietro_veloce
Indietro
Avanti
Avanti_veloce
Metodo Parser()
Metodi di get()
Titolo
Testo
Etichetta
Indietro_veloce
Indietro
Avanti
Avanti_veloce
File DSML per gli
File DSML per i link delle
Figura 26. Logica di funzionamento del componente T-Learning
86
Capitolo 4
Sviluppo dell’applicazione client
4.6 Organizzazione dell’applicazione Client
Nello sviluppare l’applicazione si è cercato in tutto e per tutto di riproporre
fedelmente all’interno dell’interfaccia televisiva i contenuti principali del corso WEB.
Pertanto si è pensato di organizzare l’applicazione seguendo l’architettura
strutturata ad albero di cui si è parlato nel capitolo precedente e mostrata in Figura 12.
In una prima fase di progettazione e test in locale del servizio e dei suoi contenuti,
la logica dell’applicazione è stata divisa in due act, marcando la distinzione tra
l’instradamento dell’utente nella scelta della lezione da fruire, che ha atto nel primo act, e la
fruizione della lezione vera e propria, che è possibile nel secondo act.
Successivamente, invece, l’applicazione client è stata adeguata all’interfacciamento
completo con il lato server sfruttando i risultati ottenuti nella fase precedente di testing con
Web Server. La logica dell’applicazione è stata suddivisa in un numero di act pari ai nodi
dell’albero rappresentante l’architettura del sito del corso (vedi Figura 12 Capitolo 3 - Le
scelte progettuali).
4.6.1 Suddivisione in stati logici
Il funzionamento dell’applicazione è molto semplice, tanto da non risultare
strettamente necessaria la presenza di una sorta di guida in linea per compiere le varie
operazioni. Quello che si trova a dover fare l’utente sono poche operazioni di selezione
degli approfondimenti e di gestione di contenuti tramite visualizzazione di testo ed
immagini che possono essere al più scrollati.
L’applicazione è suddivisa in un numero di act pari al numero di fasi in cui è
suddivisa la logica dell’applicativo server:
•
Login;
•
Profili;
•
Corsi Attivi;
•
Sezioni;
•
Moduli;
•
Modulo;
•
Corso.
87
Capitolo 4
Sviluppo dell’applicazione client
L’utente effettuata l’autenticazione, sceglie uno dei corsi che sono stati attivati
dall’amministratore nel profilo selezionato per poi selezionarne una delle sezioni. Scelto di
seguito un modulo, accede alla lezione desiderata. Viene data la possibilità di terminare la
sessione in ogni stato dell’applicazione richiamando la funzionalità di LOGOUT che riporta
l’applicazione allo stato di LOGIN.
Login
Profili
Logout
Corsi_Attivi
Sezioni
Moduli
Modulo
Corso
Figura 27. Architettura del servizio
4.7 Realizzazione dell’interfaccia grafica
La maggior parte dell’aspetto grafico dell’applicazione MHP è stato curato
sfruttando i vari componenti grafici messi a disposizione dall’ambiente di authoring tool:
Label, DataAwareList, DataLabel, Panel, Button ecc… Per lo sfondo si è prima creata
88
Capitolo 4
Sviluppo dell’applicazione client
un’immagine in formato JPEG e poi convertita in I-Frame adattandola a Cardinal secondo
le opportune specifiche.
Per la conversione JPEG Æ I-Frame stato usato un efficace programma di MPEG
Encoding TMPGENC con opportune impostazioni di codifica[].
Figura 28. Specifiche per la trasformazione JPEG -> I-Frame
4.8 Sistemazione dei contenuti nell’interfaccia
Di seguito vengono riportati degli screenshot di esempi di interfaccia in ogni stato
dell’applicazione. Dal confronto con le aree corrispondenti delle pagine del sito del corso è
possibile notare come si sia riusciti a riproporre, in maniera opportunamente adattata allo
schermo televisivo, tutti i contenuti informativi del corso.
89
Capitolo 4
Sviluppo dell’applicazione client
Lista scrollabile dei
profili selezionabili.
Figura 29. Screenshot dell'interfaccia dei profili attivati con confronto pagina del sito del corso.
Lista scrollabile dei corsi
attivati selezionabili
relativamente al profilo
scelto.
Figura 30. Screenshot dei corsi attivati relativamente al profilo selezionato con confronto pagina del
sito del corso.
90
Capitolo 4
Sviluppo dell’applicazione client
Lista scrollabile delle
sezioni selezionabili
relativamente al
corso scelto.
Descrizione del contenuto
delle singole sezioni
sottoforma di testo
scrollabile con i tasti 2 e 8.
Figura 31. Screenshot delle sezioni del corso scelto con confronto pagina del sito del corso
Lista scrollabile dei
moduli selezionabili
relativamente alla
sezione scelta
Descrizione del contenuto dei
singoli moduli sottoforma di
testo scrollabile con i tasti 2 e
8.
Figura 32. Screenshot dell'interfaccia dei moduli relativi alla sezione del corso scelta con confronto
con la pagina del sito del corso.
91
Capitolo 4
Sviluppo dell’applicazione client
Lista scrollabile delle
lezioni a disposizione
relativamente al
modulo selezionato.
Figura 33. Screenshot delle lezioni disponibili relativamente al modulo scelto con confronto con la
pagina del sito del corso.
Titolo della lezione
Area per la
visualizzazione del
contenuto della lezione in
forma testo scrollabile
Area per la
visualizzazione della o
delle immagini
contestuali
Etichetta visibile solo se
è possibile la
visualizzazione di più
immagini contestuali
Lista scrollabile di
eventuali
approfondimenti
selezionabili
Etichetta visibile solo se è
possibile tornare alla pagina
precedente
Area che permette all’utente di
navigare all’interno tra le varie lezioni
all’interno dello stesso modulo
Figura 34. Screenshot dell'interfaccia della lezione appartenente al modulo scelto con confronto con
la pagina del sito del corso
92
Capitolo 4
Sviluppo dell’applicazione client
4.9 Il funzionamento in generale dell’applicazione
Senza dubbio il modo migliore per capire a fondo il funzionamento
dell’applicazione MHP è quello di metterci nei panni dell’utente che fruisce del servizio.
Supponiamo di trovarci nel momento in cui l’applicazione client inizia ad essere eseguita
dal Set Top Box e sullo schermo televisivo appare la prima schermata (corrispondente al
primo act), che permette l’autenticazione dell’utente per mezzo di username e password ed
in cui è evidenziata la necessità della pressione del tasto 5 del telecomando per iniziare ad
usufruire del servizio. Per praticità e siccome per il momento disponevamo di un solo
account, si è deciso di immagazzinare questi dati in formato stringa direttamente su due
Label.
Alla pressione del tasto 5 del telecomando l’applicazione, attraverso il canale di
ritorno, si connette ad internet sfruttando le impostazioni predefinite dell’Internet Service
Provider quindi inoltra le opportune richieste al server remoto. Nel tempo necessario alla
connessione telefonica viene visualizzata un’apposita etichetta di testo che invita l’utente a
rimanere in attesa. A connessione avvenuta l’applicazione cambia act passando alla
visualizzazione del layer grafico dei profili attivi. A questo punto è possibile, attraverso le
frecce direzionali scorrere i profili e con la pressione del tasto OK del telecomando,
confermare il profilo desiderato. Effettuata la scelta, l’applicazione cambia di nuovo act
mostrando il layer grafico corrispondente ai corsi attivi per il profilo selezionato. Anche in
questo caso è possibile scorrere i nomi dei corsi con le frecce direzionali e selezionare
quello desiderato per mezzo della pressione del tasto OK. L’unico corso per ora attivo è
quello “ECDL – 2000 – La patente europea del computer”. La selezione del corso
induce un altro cambio di act con la visualizzazione del layer grafico delle sezioni in cui è
suddiviso il corso con all’interno un elenco selezionabile delle singole sezioni del corso. È
inoltre presente un’area di testo più piccola nella quale viene riportata la descrizione della
sezione evidenziata in quel momento dal cursore. Il testo di questa descrizione può essere
scrollato mediante la pressione dei tasti 2 ed 8. Si procede così fino alla scelta del modulo
del corso scelto. Qui, cambiando act, si entra nel layer grafico in cui vengono mostrati i
contenuti della lezione vera e propria. Come è possibile vedere dalla Figura 34, è presente
una zona riservata alla visualizzazione del testo, una per l’immagine, una dove è possibile
selezionare l’approfondimento desiderato ove presente. La parte inferiore del layer grafico è
93
Capitolo 4
Sviluppo dell’applicazione client
riservata ad indicare all’utente a quali altre lezioni del modulo implementato si può accedere
premendo uno dei quattro tasti colorati di navigazione veloce.
Per permettere di tornare indietro alla lezione corrispondente all’approfondimento
che si sta leggendo è possibile premere il tasto 1.
Invece, se sono presenti più immagini visualizzabili appare un’apposita etichetta che
informa l’utente che se vuole scorrere le immagini può farlo tramite la pressione delle
frecce destra e sinistra.
La pressione del tasto 6 del telecomando consente di terminare la sessione corrente
ritornando all’act di partenza.
4.10 Dettagli di funzionamento
Passiamo ad analizzare a fondo il funzionamento dell’applicazione, discutendo
approfonditamente l’interazione tra i componenti integrati in Cardinal e quelli sviluppati
“AD HOC”.
Esaminiamo ancora una volta l’evoluzione logica dell’applicazione ripercorrendo i
nodi dell’albero di cui si è trattato nel capitolo inerente alle scelte progettuali.
Partiamo dal momento in cui ci si trova davanti il layer grafico del primo act, quello
di login in cui, come è stato già detto nel paragrafo precedente, l’utente viene invitato
all’autenticazione mediante la pressione del tasto 5 del telecomando. La Username e la
Password sono memorizzate, sottoforma di stringhe, all’interno di due Label (Figura 35).
94
Capitolo 4
Sviluppo dell’applicazione client
Figura 35. Screenshot del TASK = LOGIN
Alla pressione del tasto 5 l’applicazione genera un evento che richiama il
componente IFLogic. A questo viene applicato il metodo Evaluate Boolean cui viene passato il
parametro ChannelConnected del componente MHPReturnChannel. In questo modo
l’applicazione valuta la presenza di una connessione ad internet già attiva e, in caso
affermativi, darà luogo alle azioni successive che competono all’autenticazione dell’utente.
In caso negativo invece:
•
Invocherà il metodo mHPReturn Channel.connect() per effettuare la connessione al
server remoto tramite canale di ritorno;
•
E cambierà la proprietà del componente Etichetta_di_partenza per renderla visibile
con la dicitura : ”Connessione in corso…”.
Al verificarsi dell’evento corrispondente alla connessione avvenuta (attraverso il
componente mHPReturn Channel) vengono cambiate le seguenti proprietà:
95
Capitolo 4
•
Sviluppo dell’applicazione client
Il testo della label che visualizza lo stato della connessione assume la dicitura
“Recupero dati…”
•
Il layer grafico condiviso diventa invisibile;
•
Viene dato il via alla fase di autenticazione.
Viene invocato il metodo Perform action() applicato al componente Action in cui
sono raggruppate tutte le azioni che si devono verificare per dare il via alla procedura di
autenticazione.
4.10.1 La procedura di autenticazione
All’evento actionPerformed per prima cosa vengono cambiate le proprietà del
componente T-Learning <nome utente per l’accesso alla FAD> e <password per l’accesso
alla FAD> passandogli i valori stringa rispettivamente delle etichette grafiche che
contengono memorizzate username e password. In un contesto di uso multiutente
l’applicazione sarà dotata di etichette e componenti che permettono l’inserimento di dati
per mezzo dei tasti del telecomando utilizzato a mò di tastiera di un cellulare sfruttando lo
stesso principio che permette la scrittura di un sms.
Viene quindi invocato il metodo Parser del componente T-Learning al quale viene
settato il solo parametro TASK = login mentre l’altro parametro link rimane vuoto visto che
il TASK login della logica lato server contiene in se stesso gli URL da utilizzare. Viene
modificata la proprietà <visible> del layer grafico login e posta a “false”. Infine, dopo che
tutte le altre azioni sono state effettuate viene imposto il cambio di act passando all’act
chiamato “Profili”. Quando viene invocato il metodo Parser il componente JavaBean,
sviluppato ed integrato in Cardinal, si connette via Http all’indirizzo del contenitore
Tomcat dove risiede la servlet :
http://localhost:8080/noproxydeploy/ciao
Alla servlet vengono passati attraverso il POST Http i parametri che definiscono il
tipo di TASK che in questo caso è login, la stringa dell’username e la stringa della
password. La servlet, prelevati parametri contenuti nella richiesta, esegue il TASK portando
a termine le opportune operazioni e restituisce la stringa XHTML che contiene la pagina
dei profili. Questa viene ricevuta e letta riga per riga dal componente T-Learning che ne
96
Capitolo 4
Sviluppo dell’applicazione client
effettua il parsing immagazzinando i valori degli elementi di interesse nelle variabili di tipo
stringa appositamente inizializzate.
4.10.2 I profili
Quando la procedura di autenticazione è terminata si cambia act passando dal login
all’act dei Profili. Alla visualizzazione di quest’ultimo, che rappresenta un evento, viene
invocato il metodo Request focus() applicato al componente Data Aware List chiamato
“Lista_profili” vincolando il focus all’area dello schermo in cui vengono visualizzati i profili
attivati all’utente autenticato in quel momento. Viene cambiata la proprietà <Data String>
del componente dsmlDataSource al quale viene passato come sorgente il file DSML che ci
fornisce il componente T-Learning per mezzo del metodo getDSML una volta che questo
ha effettuato il parsing. Viene cambiata la proprietà <Text> del Label chiamato
“Titolo_profili” passandogli il valore stringa ottenuto per mezzo del metodo getTitolo del
componente T-Learning. In questo modo viene visualizzato il titolo e, almeno nel nostro
caso, l’unico profilo attivo:
97
Capitolo 4
Sviluppo dell’applicazione client
Figura 36. Screenshot del TASK Profili
A questo punto, come si può vedere dalla Figura 36 è possibile selezionare l’unico
profilo attivo:“Studente”. Per fare questo è sufficiente la pressione del tasto OK del
telecomando, alla cui pressione corrisponde un altro evento.
4.10.3 La selezione di un profilo
Alla pressione del tasto OK del telecomando viene invocato il metodo Parser del
componente T-Learning passandogli come parametri il tipo di TASK = profilicorsiattivi ed
il link al quale la servlet si deve connettere. Questo gli viene passato prelevando la stringa
relativa dal componente Data Aware List chiamato link_profilo, reso invisibile per i nostri
scopi, per mezzo del metodo getString. A questo punto viene cambiato act passando all’act
chiamato Corsi_Attivi. Ancora una volta il componente T-Learning si connette a Tomcat
dove risiede la servlet passandogli via Http POST il tipo di TASK, la coppia username e
98
Capitolo 4
Sviluppo dell’applicazione client
password ed in un campo appositamente definito dell’header della richiesta il link della
pagina che dovrà prelevare dalla FAD. A questo punto la servlet esegue il TASK
specificato e restituisce la stringa XHTML contenente la pagina richiesta opportunamente
adattata. La stringa viene ricevuta dal componente che la legge e ne effettua il parsing
memorizzando gli elementi nelle variabili dedicate.
4.10.4 Corsi attivi
Come nel TASK precedente, la visualizzazione del layer grafico deputato a
contenete i corsi attivi costituisce un evento cui corrispondono delle azioni.
Viene cambiata la proprietà <text> del Label chiamato titolo_corsi_attivi
passandogli il valore stringa estratto per mezzo del metodo getTitolo del componente TLearning ed allo stesso tempo viene modificata la proprietà <Data String> del componente
dsmlDataSource passandogli come sorgente il file DSML restituito come risultato dal
metodo getDSML del componente T-Learning.
In questo modo vengono visualizzati il Titolo ed i Corsi attivi per il profilo
selezionato dall’utente.
99
Capitolo 4
Sviluppo dell’applicazione client
Figura 37. Screenshot TASK Corsi Attivi
A questo punto l’utente, come si vede dalla figura, per procedere con la navigazione
non deve far altro che scorrere la lista per mezzo dei tasti su e giù del telecomando e
selezionare il corso di cui vuole fruire per mezzo di una nuova pressione del tasto OK.
Come nei casi precedenti, ciò rappresenta un evento cui viene associato l’invocazione del
metodo Perform action() applicato al componente Action che raggruppa tutte le azioni che
devono essere effettuate in concomitanza della selezione di un corso.
4.10.5 La selezione di un corso
All’evento actionPerformed viene associata l’invocazione del metodo Parser del
componente T-Learning cui vengono passati come parametri il link del corso attivo
selezionato ed il TASK da eseguire lato server. Il primo prelevando la stringa con
l’indirizzo attraverso il metodo getString dal dataLabel deputato a contenere, ogni volta che
100
Capitolo 4
Sviluppo dell’applicazione client
si scorre la lista dei corsi, il collegamento ipertestuale corrispondente ed il secondo settato
direttamente per mezzo dell’interfaccia grafica. Di seguito viene invocato il metodo First()
del dataSet in maniera tale che il cursore del componente Data Aware List dell’act
successivo per la visualizzazione delle sezioni del corso occupa la prima posizione. Ed
infine viene fissato il cambio dell’act verso l’act chiamato Sezioni. Ancora una volta il
componente T-Learning si connette via Http alla servlet passandogli via POST TASK =
sezioni, username e password e nell’header della richiesta il link cui questa dovrà
connettersi. A questo punto la servlet esegue il TASK sezioni portando a termine le
operazioni in esso specificate e restituisce la stringa XHTML che contiene la pagina
richiesta opportunamente manipolata. Il componente T-Learning la legge riga per riga, ne
effettua il parsing e memorizza gli elementi estratti nelle variabili stringa deputate.
4.10.6 Sezioni, moduli e modulo
Al cambiamento di act viene visualizzato il layer grafico relativo alle sezioni. A
quest’evento viene invocato il metodo Request focus() applicato al componente Data
Aware List deputato alla visualizzazione delle sezioni vincolando la navigabilità alla sola
lista in questione. Viene cambiata la proprietà <Data string> del componente
dsmlDataSource passandogli come sorgente il file DSML risultato del metodo getDSML
del componente T-Learning ed in contemporanea viene cambiata la proprietà <text> del
Label chiamato Titolo_sezioni passandogli il valore restituito dal metodo getTitolo del
componente T-Learning.
In questo modo viene visualizzato il titolo, l’elenco delle sezioni del corso e questa
volta anche la descrizione del contenuto delle singole sezioni grazie all’utilizzo di un
componente dataLabel che fruisce dello stesso file DSML.
101
Capitolo 4
Sviluppo dell’applicazione client
Figura 38. Screenshot TASK Sezioni
A questo punto l’utente si trova di fronte alla schermata delle sezioni del corso.
Come si può vedere dalla Figura 38, l’utente può prendere visione del titolo della singola
sezione semplicemente muovendo il cursore che evidenzia le singole sezioni per mezzo
delle frecce su e giù. Ogni volta che il cursore si trova su di una sezione, nel campo
dedicato alla sua descrizione, viene visualizzato il testo che ne reca le caratteristiche. Questo
testo può essere scrollato mediante la pressione dei tasti 2 ed 8 del telecomando. Quando
l’utente ha deciso, può effettuare la selezione della sezione premendo ancora una volta il
tasto OK del telecomando così da accedere alla sezione desiderata.
4.10.7 La selezione di una sezione, di un modulo e di una lezione
La pressione del tasto OK, come si è più volte detto, rappresenta un evento che
determina l’esecuzione, per mezzo dell’invocazione del metodo Perform Action(), di tutte
102
Capitolo 4
Sviluppo dell’applicazione client
le azioni inglobate nel componente Action chiamato Azioni_sezioni. Viene invocato il
metodo Parser cui vengono passati come parametri il link prelevato dal dataLabel apposito
per mezzo del metodo getString ed il tipo di TASK settato direttamente attraverso
l’interfaccia grafica di Cardinal. Attraverso l’invocazione del metodo First() del dataSet il
cursore del componente Data Aware List sale nella prima posizione. Infine viene imposto il
cambio di act per passare a quello chiamato Moduli.
Ancora una volta il componente T-Learning si connette Http alla servlet passando
TASK, username e password via POST e il link della pagina voluta nell’header della
richiesta. La servlet esegue il TASK specificato restituendo al componente T-Learning la
stringa XHTML contente la pagina voluta. Questi la legge riga per riga e ne effettua il
parsing memorizzando i valori degli elementi estratti in variabili stringa apposite. Di seguito
l’utente attraversa altri due act: quello dei moduli che permette la scelta del modulo e quello
del modulo che permette la scelta della lezione. L’applicazione durante questi due passaggi
si comporta allo stesso modo del TASK delle sezioni con l’unica differenza riscontrabile
nell’act modulo in cui non è presente il componente con il testo della descrizione, come del
resto non è presente descrizione della lezione nella pagina relativa del sito Web del corso.
4.10.8 Il corso
Siamo arrivati alla parte più importante del servizio, qui si svolge l’attività più
intensa di comunicazione tra client e server recuperando da remoto, per mezzo del canale
di ritorno, la più ampia casistica di contenuti Web. In un certo senso è relativamente a
questo act che si verifica l’interfacciamento vero e proprio.
1
3
2
3
4
5
3
3
6
6
Figura 39. Screenshot del template in cui vengono incastonati i contenuti della lezione
103
Capitolo 4
Sviluppo dell’applicazione client
Come si può vedere dalla Figura 39 sono presenti:
•
Area del Titolo;
•
1
Area dell’immagine o immagini contestuali;
•
Area del testo (puntato e libero);
•
Area degli approfondimenti; 4
•
Area dei link per passare da una lezione all’altra di uno stesso modulo
•
Etichette di testo, una sorta di piccola guida on-line.
2
5
6
3
Con la selezione della lezione di cui si vuole fruire viene invocato il metodo Parser
del componente T-Learning passandogli il link e il TASK e si impone il passaggio dall’act
Modulo all’act Corso. La visualizzazione del relativo layer grafico (Figura 39), rappresenta
l’evento relativamente al quale viene invocato il metodo request Focus() applicato al
componente Data Aware List deputato alla visualizzazione della lista degli approfondimenti
selezionabili in modo da vincolarvi la navigazione. Di seguito viene dato il via ad una serie
di azioni raggruppate per comodità in un unico componente action chiamato
“azioni_lezione”.
Queste verranno richiamate ogni volta che in questo act l’utente interagirà con
l’applicazione per esaminare un approfondimento o per passare ad una lezione compresa
nello stesso modulo di quella corrente, ossia ogni volta che l’applicazione avrà bisogno di
recuperare contenuti utilizzato il canale di ritorno.
4.10.8.1 Il componente imageDisplay
Questo componente permette di caricare e di seguito mostrare le immagini dal
canale di ritorno. Si connette via http al server, riceve l’immagine e la visualizza adattandola
alle dimensioni che vengono date alla finestra di visualizzazione nell’applicazione, il canvas.
Ha integrate in sé due proprietà:
•
URL Immagine : che viene modificata ogni volta riempiendola con l’indirizzo
dell’immagine che deve essere caricata e visualizzata (immagine di default o immagine
contestuale che sia);
•
URL Immagine Default : che viene modificata solo con l’indirizzo dell’immagine di
default (quella che deve essere mostrata quando non è presente immagine contestuale);
104
Capitolo 4
Sviluppo dell’applicazione client
Da qui si capisce chiaramente che la prima delle due proprietà ha bisogno sempre di
un indirizzo valido al proprio interno per garantire il funzionamento corretto del
componente. Infine questo è dotato di un unico metodo chiamato Carica Immagine() che
permette appunto di eseguire le operazioni per il quale è stato realizzato.
Immagine prelevata
dal canale di ritorno
Richiesta
L’immagine
viene elaborata
ed
opportunamente
adattata.
Componente
imageDispla
L’immagine viene
visualizzata nell’apposito
Figura 40. Il funzionamento del componente imageDisplay
105
Capitolo 4
Sviluppo dell’applicazione client
4.10.8.2 La visualizzazione di una lezione
Per sistemare i contenuti all’interno dell’interfaccia televisiva, l’applicazione preleva
i valori stringa che il componente T-Learning ha memorizzato nelle apposite variabili
stringa. Con l’ausilio dei relativi metodi di get vengono modificate le proprietà testuali delle
etichette grafiche (Label) relative a:
•
Titolo della lezione;
•
I link: indietro_veloce, indietro, avanti e avanti_veloce (nel caso specifico con
etichette rese invisibili);
•
Le descrizioni delle funzioni associate ai 4 tasti colorati: rosso, verde, giallo e blu;
•
Il testo inerente alla lezione;
•
Il numero delle righe del file DSML che trasporta i link delle immagini.
Di seguito, ove presenti, viene riempita la lista selezionabile degli approfondimenti
attraverso il passaggio del relativo file DSML al componente dsmlDatasource1. Lo stesso
dicasi per la memorizzazione dei link delle immagini, che avviene grazie al passaggio del
relativo file DSML al componente dsmlDataSourceImmagini. Invocando il metodo First()
del componente dataSet1 si riposiziona il cursore della lista degli approfondimenti nella
prima posizione. L’applicazione inoltre effettua dei test che le servono per capire se è
presente il link della pagina precedente oppure se sono presenti nessuna,una o più
immagini. I primi due test sono effettuati sfruttando due componenti IFLogic distinti che
usano come parametro booleano di confronto i relativi valori forniti dal componente TLearning. Per quanto riguarda il terzo test, fa uso del componente Evaluator che usa come
parametro di confronto rispetto ad 1 il numero delle righe del file DSML contenente i link
delle immagini.
4.10.8.3 La prima lezione
Come risultato delle azioni descritte nei paragrafi precedenti si ottiene la
visualizzazione della lezione:
106
Capitolo 4
Sviluppo dell’applicazione client
Figura 41. Screenshot di una lezione del corso
Come è possibile vedere dalla Figura 41, tutti i campi elencati in precedenza
vengono riempiti con i contenuti estratti dalla pagina Web del sito della FAD. Viene
riportato il titolo della lezione, l’immagine contestuale, gli approfondimenti, il testo e le
indicazioni per la navigazione. Nello screenshot di Figura 41 è stata riportata una lezione in
cui non è presente nessuna immagine contestuale, ma come di può vedere è presente lo
stesso un’immagine. Infatti quando all’interno della pagina richiesta non è presente nessuna
immagine viene caricata da remoto un’immagine di default residente su un Web server. Ciò
è possibile effettuando un test sulla presenza di un’immagine o di immagini contestuali.
Questo è possibile, come si è accennato nel paragrafo precedente, grazie ad un componente
IFLogic che verifica la presenza di un’immagine. Ogni volta che quest’ultimo viene messo
in esecuzione viene effettuato un test sul valore booleano estratto dal metodo
getPresenza_immagine del componente T-Learning:
Se true Æ viene invocato il metodo Evaluate string applicato al componente IFlink.
Questo ha il compito di effettuare, utilizzando la stringa “nessuna immagine” per il
107
Capitolo 4
Sviluppo dell’applicazione client
confronto, il test sul link da passare al componente che carica e visualizza l’immagine da
remoto:
Se true Æ viene modificata la proprietà <URL Immagine> del componente
chiamato imageDisplay passandogli il valore stringa immagazzinato nel campo <URL
Immagine Default> dello stesso componente
Se false Æ viene modificata la proprietà <URL Immagine> del componente
imageDisplay passandogli il link ottenuto come risultato del metodo getCurrentString del
componente Data Aware List chiamato lista_link_immagini
Di seguito viene invocato il metodo Carica Immagine() del componente
imageDisplay.
Gli approfondimenti ed il testo possono essere scrollati utilizzando rispettivamente
le frecce su e giù ed i tasti 2 e 8 del telecomando, le cui azioni sono state raggruppate in
componenti action relativi per motivi di un’organizzazione più ordinata dell’applicazione.
La pressione del tasto OK, come in altri contesti, serve per selezionare l’elemento
evidenziato nella lista degli approfondimenti. La pressione dei tasti colorati ci permette di
spostarci, nell’ambito dello stesso modulo, da una lezione all’altra, il cui titolo è visualizzato
accanto al colore del tasto corrispondente. Se l’utente vuole abbandonare la sessione
corrente è sufficiente la pressione del tasto 6 per effettuare il logout e tornare alla
schermata principale, oppure quella del tasto zero per terminare l’applicazione tornando a
guardare il programma televisivo.
4.10.8.4 La selezione di un approfondimento
Come si è detto più volte la pressione del tasto OK permette di selezionare un
approfondimento. All’evento corrispondente viene invocato il metodo Evaluate string del
componente IFLogic deputato a verificare la presenza o l’assenza di approfondimenti.
Questo utilizza la stringa “nessun approfondimento” come parametro per effettuare il test
sulla stringa presente nel componente DataLabel destinato a memorizzare, via via che si
scorrono gli approfondimenti, il link di quello corrente.
Se true Æ la pressione del tasto OK non genera niente
Se false Æ viene invocato il metodo Parser del componente T-Learning cui
vengono passati il tipo di TASK = lezione e il link cui la servlet dovrà connettersi come
risultato del metodo getString del componente DataLabel dei link degli approfondimenti.
108
Capitolo 4
Sviluppo dell’applicazione client
Di seguito viene invocato il metodo Perform action() applicato al componente action che
raggruppa tutte le azioni che l’applicazione deve compiere per visualizzazione della lezione
(vedi paragrafo 4.10.8.2).
Al termine viene visualizzato l’approfondimento desiderato:
Figura 42. Screenshot di un approfondimento
Dalla Figura 42 si nota come anche in un approfondimento si possono effettuare le
stesse operazioni di una lezione. In più è possibile, pigiando il tasto 1 del telecomando,
tornare indietro, alla pagina di cui quella corrente è approfondimento.
Come si è visto nei paragrafi precedenti, una delle prime cose che fa l’applicazione è
di effettuare dei test tra i quali c’è anche quello sulla presenza o sull’assenza del link che
permette di tornare alla pagina precedente. Questo è possibile mediante l’invocazione del
metodo Evaluate boolean del relativo componente IFLogic cui viene passato come
109
Capitolo 4
parametro,
Sviluppo dell’applicazione client
per
effettuare
il
test,
il
valore
booleano
risultato
del
metodo
getPresenza_precedente del componente T-Learning.
Se true Æ
Mediante un opportuno metodo di get del componente T-Learning viene
memorizzato il link della pagina precedente in un’etichetta grafica resa invisibile.
Viene abilitato il componente csNumber che contiene specificata la gestione della
pressione del tasto 1 ed infine è resa visibile la Label recante la dicitura:“1 per tornare
indietro”
Se false Æ
Viene disabilitato il componente csNumber che contiene la gestione della pressione
del tasto 1 e resa invisibile l’etichetta grafica recante la dicitura”1 per tornare indietro”
La pressione del tasto 1 sfrutta il risultato del test appena descritto. Infatti l’evento
collegato invoca il metodo Parser del componente T-Learning cui vengono passati il link
immagazzinato nel Label chiamato indirizzo_indietro in cui sicuramente è presente
l’indirizzo della pagina precedente ed il TASK=lezione. Di seguito vengono eseguite tutte
le azioni necessarie alla visualizzazione di una lezione (vedi paragrafo 4.10.8.2).
4.10.8.5 La gestione della visualizzazione di più immagini contestuali
Nel corso della navigazione può capitare, come nel caso del sito Web, che
contestualmente alla lezione o agli approfondimenti siano presenti più immagini da
visualizzare. Visto che è presente una sola area per la visualizzazione delle immagini,
all’utente viene data la possibilità di visualizzarne una alla volta, informandolo con
un’apposita Label, visibile solo se c’è più di un’immagine, che “Usa le frecce destra e
sinistra per scorrere le immagini”.
Come abbiamo già accennato, l’applicazione effettua un test per verificare se nella
pagina richiesta sono presenti una o più immagini contestuali. Tale test viene effettuato
mediante il componente Evaluator che sfrutta come parametro il numero delle righe del file
DSML dei link delle immagini, ossia il numero delle immagini immagazzinato in forma di
stringa su un’apposita etichetta resa non visibile. Il componente, mediante un opportuno
metodo, effettua il confronto tra il numero memorizzato nell’etichetta ed il numero 1:
Se il numero delle immagini è <o = 1 Æ viene resa invisibile l’etichetta grafica che
reca la dicitura “Usa le frecce destra e sinistra per scorrere le immagini” e disabilitato il
110
Capitolo 4
Sviluppo dell’applicazione client
componente csNumber adibito alla gestione della pressione dei tasti per scorrere le
immagini, le frecce destra e sinistra.
Se il numero delle immagini è > 1 Æ viene resa visibile l’etichetta grafica che
informa l’utente della possibilità di visualizzare più immagini e viene abilitato il
componente che gestisce la pressione delle frecce destra e sinistra.
Figura 43. Screenshot di approfondimento con la presenza di più immagini contestuali
La pressione della freccia destra permette di spostare il cursore del componente,
reso non visibile, Data Aware List contenente le stringhe con i link delle immagini, nella
posizione successiva in modo tale che il cursore evidenzi il link successivo. Di seguito,
mediante un opportuno metodo, viene prelevato il link evidenziato e passato al
componente imageDisplay che carica e visualizza l’immagine relativa.
111
Capitolo 4
Sviluppo dell’applicazione client
Viceversa alla pressione della freccia sinistra il cursore si sposta nella posizione
precedente a quella del link corrente. Passato il link evidenziato al componente
imageDisplay, l’immagine, mediante un opportuno metodo, viene così visualizzata.
112
Capitolo 5
Sviluppo dell’applicazione server
5
Capitolo 5
Sviluppo dell’applicazione server
Come illustrato in precedenza, per permettere di contenere l’applicazione MHP in
dimensioni e complessità, molto del lavoro è stato svolto su un server dove i problemi di
spazio sono risolti e le potenzialità di calcolo sono molto superiori a quelle di un Set Top
Box.
Dato che il sito, che rappresenta la piattaforma di formazione a distanza
dell’Università di Siena è perfettamente funzionante, non c’è stato bisogno di modificarne
la struttura, è stato altresì necessario manipolarne le funzionalità e la struttura
rappresentativa dei contenuti per adattarli al contesto della televisione digitale. Le
applicazioni prodotte nell’ambito di questa tesi sono state progettate in modo da rendere i
contenuti normalmente fruibili a mezzo di un computer capace di navigare in internet e
mediante un decoder adibito ad uso domestico.
Il lavoro lato server è consistito in uno studio accurato della logica client-server
della FAD, nella scelta delle opportune librerie da utilizzare e dal relativo sviluppo
dell’applicativo servlet Java con conseguente interfacciamento lato client lato server.
5.1 Logica Client-Server
Per lo studio del tipo di informazioni e del loro flusso generato durante
l’interazione Browser Web-Server server remoto si è fatto uso di un programma che prende
il nome di “sniffer”.
Uno sniffer e' un qualsiasi strumento, sia esso un software o un apparato hardware,
che raccoglie le informazioni che viaggiano lungo una rete.
Questa rete può utilizzare un protocollo di comunicazione qualunque: Ethernet,
TCP/IP, IPX o altri. Il termine “sniffer” si riferisce a: “The Sniffer Network Analyzer”, il
nome del primo programma di questo tipo, sviluppato dalla Network Associates, Inc. e
protetto da trademark. Da allora la parola “sniffer” è diventata di uso comune, come ad
113
Capitolo 5
Sviluppo dell’applicazione server
esempio la parola “PC”, e con essa ci si riferisce a tutti i programmi che implementano
quelle stesse funzioni.
Le funzioni tipiche degli sniffer non differiscono di molto e possono essere
riassunte sinteticamente in:
•
Conversione e filtraggio dei dati e ei pacchetti in una forma leggibile dall’utente;
•
Analisi dei difetti di una rete, ad esempio il tentativo di capire come mai il computer
“A” non riesca a dialogare con il computer “B”;
•
Analisi di qualità e portata della rete, ad esempio per scoprire “colli di bottiglia”
lungo la rete;
•
Setacciatura automatizzata di password e username (in chiaro o, più spesso cifrati),
per una successiva analisi;
•
Creazione di “log”, lunghi elenchi che contengono la traccia, in questo caso, del
traffico sulla rete;
•
Scoperta di intrusioni in rete attraverso l’analisi dei log del traffico[].
La versione che abbiamo usato noi si chiama “Http Analyzer”[]. Grazie
all’esecuzione di questo software è stato possibile generare dei log in cui vengono riportati:
richieste Http e relative risposte, messaggi di errore o di esito positivo e contenuti
informativi veicolati.
Figura 44. Finestra di visualizzazione dei log registrati dallo sniffer: header della richiesta e della
risposta Http
114
Capitolo 5
Sviluppo dell’applicazione server
5.1.1 Interazione Browser Web-FAD
Il lavoro di sviluppo del lato server è consistito nell’elaborazione di un’architettura
software che fosse in grado di fare da tramite tra le richieste dell’utente e la piattaforma
Web. L’applicativo avrebbe dovuto ricevere le richieste, interpretarle e restituire, dopo
un’adeguata manipolazione, le informazioni che erano state richieste. Un lavoro non da
poco, che richiedeva uno studio molto accurato della dinamica delle informazioni passate
attraverso il protocollo http. Per questo è stato nuovamente necessario passare in rassegna
un po’ di pagine del sito tenendo, questa volta lo sniffer “in ascolto”. La navigazione si è
svolta attraversando ogni nodo dell’albero di cui si è già discusso (vedi paragrafo 3.2.2
Figura 12 pag. 58). In sostanza si è tentato di coprire tutti i casi in cui c’era effettivamente
passaggio di informazione tra browser ed server remoto.
Partiamo dalla pagina di benvenuto, quella che risponde al link http://fad.unisi.it,
nella quale abbiamo visto essere presenti, oltre alle varie informazioni per la fruizione dei
servizi disponibili, i form necessari all’autenticazione (vedi paragrafo 3.2.2 pag. 57 Figura
11). Tale pagina è il body della risposta del server remoto il cui header contiene, come
informazione di interesse, il campo Set-Cookie nel quale è contenuto appunto il Cookie.
Pertanto disponiamo già di un’informazione: al primo accesso alla FAD (mediante la
richiesta della pagina http://fad.unisi.it) viene settato il Cookie.
Digitiamo username e password, e cliccando sulla freccetta (vedi sempre paragrafo
3.2.2 pag. 57) diamo il via all’autenticazione. Così facendo il browser trasmette al server
remoto le stringhe del Cookie, della username e della password settando i campi dell’header
della richiesta dal nome:
•
Cookie;
•
Username;
•
Password.
Il server remoto restituisce al browser la pagina dei profili attivi all’interno del body
della risposta.
Da questo punto in poi ogni volta che il browser effettuerà una richiesta al server
remoto passerà sempre i tre parametri attraverso i campi dell’header della richiesta visti.
Queste saranno le tre stringhe che identificheranno l’utente nel corso della navigazione.
115
Capitolo 5
Sviluppo dell’applicazione server
Quando l’utente decide di non fruire più del servizio può decidere di abbandonare
la sessione corrente cliccando sull’apposito link e dando successivamente conferma
dell’abbandono. Nell’header della richiesta è presente oltre ai soliti campi del cookie, della
username e della password anche un campo “Referer” che contiene una stringa recante il
link relativo alla pagina in cui l’utente si trovava prima di abbandonare la sessione.
Primo accesso alla FAD
Host http://fad.unisi.it
Richiesta get http
browser
HTTP
Risposta:
campo
Cookie nell’header
contenente
la stringa del
Cookie
FAD
Figura 45. Lo scambio di informazioni browser-FAD al primo accesso alla piattaforma
Richiesta Http di tipo get
con passaggio dei
parametri Cookie,
Username e Password in
appositi campi dell’header
browser
Fase di login
HTTP
Risposta da parte
del server
remoto
FAD
Figura 46. Lo scambio di informazioni browser-FAD nella fase di login dell’utente
Richiesta Http con
l’aggiunta nell’header del
campo Referer recante il
link dell’ultima pagina
visitata
browser
Fase di logout
HTTP
Risposta da
parte del server
remoto
FAD
Figura 47. Lo scambio di informazioni browser-FAD nella fase di abbandono sessione
116
Capitolo 5
Sviluppo dell’applicazione server
5.2 Considerazioni pre-sviluppo
Data la natura della rappresentazione dell’informazione, è stato necessario pensare
bene alla strategia da adottare. L’output della piattaforma è costituito da pagine HTML
prodotte con tecnologia ASP, sicché codice html per la rappresentazione dei contenuti con
l’aggiunta di JavaScript per la gestione della navigazione all’intero e tra le pagine. Lo studio
di fattibilità iniziale (vedi capitolo 3 “Le scelte progettuali”) è stato fondamentale. Infatti ci
ha permesso, in base allo studio delle pagine del sito di fissare un ben preciso iter di
sviluppo e soprattutto di stabilire le operazioni che era necessario che effettuasse
l’applicativo servlet Java. Si è deciso di procedere seguendo ancora una volta l’andamento
dell’architettura ad albero rappresentante la logica di funzionamento del sito del corso.
Pertanto si è deciso di sviluppare l’applicativo un task alla volta, e solo dopo averne testato
il corretto funzionamento di passare allo sviluppo del task successivo e cosi via. La scelta
della libreria da utilizzare per rendere “well-formed” il codice delle pagine prelevate è stata
molto importante. Infatti è grazie ad essa che è stato possibile riuscire a manipolare i
contenuti e a creare un corrispondente file XML “well-formed”. La scrittura dei fogli stile
XSL[21] ci ha impegnato per tutta la durata dello sviluppo dell’applicazione. Infatti il loro
perfezionamento si è evoluto in concomitanza all’interfacciamento vero e proprio. Si è
tenuto conto infatti, sia del fatto che si doveva seguire modello dati XML da noi elaborato
(vedi paragrafo 4.3 pag. 76) sia del fatto che il lato client imponeva determinate esigenze
grafiche per la rappresentazione dei contenuti (un esempio sono gli spazi multipli…).
Seguendo questa strada è stato possibile realizzare un applicativo scritto in Java che riesce
ad interpretare a livello logico le richieste effettuate lato client e riesce a restituire i
contenuti richiesti opportunamente rielaborati, per mezzo di trasformazioni XSLT[21].
La scelta del linguaggio Java[27] per lo sviluppo della logica e del dialetto XSL[21]
per le trasformazioni XSLT[21] rende l’applicazione server assai versatile nel suo utilizzo.
Java[27] garantisce la ampia portabilità dell’applicazione grazie al fatto di essere un
linguaggio indipendente dalla piattaforma e le trasformazioni XSLT[21] permetto
l’interfacciamento con qualunque tipo di sito per il quale sia possibile elaborare un modello
di trasporto di dati omogeneo secondo le indicazioni dello standard W3C. In pratica,
avendo a disposizione un altro sito i cui contenuti siano organizzati in modo omogeneo, è
sufficiente modificare i fogli di stile per garantire l’interfacciamento anche a quel sito.
117
Capitolo 5
Sviluppo dell’applicazione server
5.3 Le librerie utilizzate
HTML Tidy[] è uno dei più antichi e noti validatori HTML sviluppati non solo per
Windows ma anche per Linux. Diffuso in decine di versioni e integrato in molti programmi
di editing (tra cui UltraEdit solo per fare un esempio…), è stato sviluppato per la prima
volta da Dave Ragget, grande divulgatore e membro del Consorzio WWW. Ora il progetto
è sostenuto da un team di sviluppatori ed è stato accolto nella comunità di SourceForge.
Tidy è in grado di verificare gli errori del codice HTML e di restituire il file
modificato e parzialmente corretto. Gli errori che esso corregge sono:
•
La mancata chiusura di un tag;
•
La ripetizione involontaria di un tag;
•
Errori di codifica;
•
Ecc…
JTidy[19] è il parente Java di Tidy. Si tratta di una libreria open source, dotata
quindi di tutti i vantaggi di tale tipo di software. Dispone di metodi ed attributi che
permettono il settaggio di parametri per la correzione del codice e assicura output
sottoforma di file XML o XTML del documento HTML esaminato. Infatti dispone di
un’interfaccia DOM che favorisce il suo utilizzo a mo di parser per il mondo HTML.
5.4 Il dialetto XSL
Molti dei vantaggi del modo in cui è stato implementato il proxy-server sono insiti
nella scelta di XSLT come linguaggio di programmazione per produrre le stringhe
XHTML. Infatti XSLT è un linguaggio di programmazione molto potente. Il fine per il
quale è stato realizzato è quello di manipolare i documenti XML per trasformarli in altri tipi
di documenti, HTML, XHTML, testo semplice e diversi altri tipi di documenti. Possiamo
utilizzarlo anche per trasformare un documento XML in un altro documento XML con
una struttura diversa. Quello che fa XSLT è dire al programma che opera la trasformazione
cosa fare quando trova un determinato elemento racchiuso in determinati tag. Il
procedimento di trasformazione di un documento XML viene effettuato da un processore,
che è un’applicazione (o componente software) che legge un documento XML e un
documento XSLT e applica XSLT a XML. I processori esistono sia come applicazioni
118
Capitolo 5
Sviluppo dell’applicazione server
eseguibili da riga di comando, sia come componenti software che possono essere utilizzati
in un’applicazione. I processori che si occupano di questa operazione si basano
sull’operazione di parsing del documento XML. Questo parser può caricare i documenti
XML e XSLT per mezzo di DOM e quindi applicare XSLT a XML. Un’altra opzione è un
processore basato su SAX. DOM e SAX sono ambedue standard per la creazione di oggetti
che si riferisco all’albero del documento XML. Il primo considera come evento il
documento XML stesso e lo associa all’albero, mentre il secondo legge il documento un
elemento alla volta. Ogni elemento che l’analizzatore sintattico incontra innesca un evento.
Un grande vantaggio è che praticamente non utilizza memoria, perché non è necessario
costruire l’intero documento in memoria.
Ciò ce costituisce un altro punto di forza di XSLT è senza dubbio il fatto che per
l’accesso ai nodi è possibile utilizzare XPath[18][21] (vedi paragrafo 3.2.8.2 pag. 71)[].
5.5 Lo sviluppo e le strategie di sviluppo
Per procedere in modo migliore allo sviluppo dell’applicativo Java[27] si è deciso di
procedere appoggiandosi dapprima ad una classe Java[27] dotata del solo metodo main per
fare delle prove; testando l’output generato con un editor XML dotato di processore
XSL[21] quale è XMLSPY[] di cui si è discusso nella sezione dedicata alle scelte progettuali
(vedi paragrafo 3.2.6 pag. 66).
In pratica non si è fatto altro che scrivere il codice java[27] che effettuava :
•
Pulizia del codice HTML
•
Messa a well-formed del codice pulito
•
Trasformazione in XML
•
Trasformazione XML Æ XHTML attraverso fogli di stile XSL[21]
E di testare se il file XML, output del metodo main, fosse well-formed e di seguito
lo stesso per il file XHTML tenendo aperto in contemporanea XMLSPY.
Questa è stata una fase cruciale del lavoro perché ci ha permesso di stabilire se
valeva veramente la pena di andare avanti con lo sviluppo del progetto seguendo la strada
intrapresa oppure di cambiare rotta. Trovare le espressioni in sintassi XPath[18][21] adatte
ad individuare i nodi con i contenuti che ci servivano è stata un’operazione molto
complicata data che non tutte le pagine erano uguali. Fortunatamente dopo vari tentativi si
119
Capitolo 5
Sviluppo dell’applicazione server
sono ottenuti risultati incoraggianti che ci hanno permesso di continuare con lo sviluppo
dell’applicativo Java Servlet.
5.5.1 La tecnologia Java Servlet
Le Servlet sono moduli software scritti in Java che vengono eseguiti in applicazioni
lato server per esaudire le richieste dei client. Esse non sono legate ad un particolare
protocollo per la comunicazione tra client e server, anche se più comunemente si utilizza il
protocollo HTTP ed infatti si parla di http Servlet. Per scrivere una Servlet si fa uso delle
classi del package javax.servlet che è il framework di base per la scrittura delle servlet e del
package javax.servlet.http che è l'estensione del framework di base, per la comunicazione
via http. Utilizzando un linguaggio portabile come Java, le Servlet consentono di realizzare
soluzioni per estendere le funzionalità dei server web, indipendenti dal sistema operativo su
cui esse vengono eseguite[].
5.6 Il funzionamento della Servlet
Come nel caso dello sviluppo lato client anche qui si è cercato di rispettare il più
possibile la dinamica del sito originale, ripristinando quelle funzionalità che erano andate
perse con l’opera di manipolazione del codice delle pagine per rendere possibile il porting
dei contenuti. Ancora una volta si è deciso di seguire passo passo l’architettura del sito del
corso. Il funzionamento della servlet è stato quindi suddiviso in opportuni TASK:
•
Login
•
Profilicorsiattivi
•
Sezioni
•
Moduli
•
Modulo
•
Lezione
•
Logout
Ogni TASK corrisponde, come si vede, ad ogni nodo dell’albero che percorre
l’utente nella navigazione.
120
Capitolo 5
Sviluppo dell’applicazione server
La prima cosa che fa la servlet è quella di ricevere dall’applicazione client e
memorizzare in variabili stringa opportune i parametri:
•
Username, Password e TASK (via Http POST);
•
Link da sfruttare per la connessione in un campo della richiesta appositamente
creato (vedi capitolo 4 paragrafo 4.10 pag. 94).
La servlet esegue un test verificando quale TASK è stato ricevuto e così lo esegue.
5.6.1 Il TASK di Login
La servlet imposta una connessione HTTP al sito “http://fad.unisi.it”, e dall’header
della risposta estrae il valore del campo chiamato Cookie e lo memorizza in una variabile
stringa. A questo punto il cookie, la username e la password vengono inseriti in opportuni
record della tabella del database che serve alla gestione della sessione utente.
Terminata con successo questa prima fase, l’applicativo si connette via Http
all’URL “http://fad.unisi.it/login-new.asp” settando nell’header della richiesta il campo
Cookie cui vengono concatenate la username e la password:
seconda_httpconn.setRequestProperty("Cookie",stringa_cookie+";"+username=
"+username+"; "+"password="+password+";");
Viene effettuato un test sull’andamento a buon fine della connessione:
Se il campo dell’header della risposta ResponseCode contiene il valore 200 allora
vengono eseguite tutte le operazioni del TASK login altrimenti viene stampato in output un
messaggio di errore, in questo caso un banale ma pertinente “errore di connessione” e la
servlet termina la sua esecuzione.
5.6.1.1 Le operazioni del TASK = Login
Se la connessione Http tra gateway e la FAD avviene con successo l’applicativo
Java legge la pagina del sito contenuta nel body della risposta. La pagina viene letta riga per
riga ed il contenuto testuale viene riversato tutto in una variabile di tipo stringa.
Adesso ha inizio la procedura di “pulizia” del codice da quegli elementi o quei tag
che non permettono la generazione, per mezzo di JTidy[19], del codice XML voluto.
L’operazione di “pulizia” viene eseguita mediante l’invocazione del metodo replaceAll()
121
Capitolo 5
Sviluppo dell’applicazione server
della classe String facendo uso soprattutto, di alcune espressioni regolari[23][24]. Si riesce
così ad eliminare parte di codice non voluto, tag o elementi con i relativi tag e a sostituirli
con altri pezzi di codice o semplicemente con spazi vuoti. L’utilizzo di questo tipo di
tecnica è risultato molto potente perchè ci ha permesso di risparmiare notevolmente sulla
complessità e sul numero delle righe di codice. Le operazioni di pulizia sono state due:
•
Una per eliminare errori che metteva in evidenza Tidy e che da solo non riusciva a
correggere (infatti lo stesso Tidy non riesce a correggere tutti gli errori ed inoltre si è tenuto
presente che la libreria usata è open source, quindi era possibile che non fosse
perfettamente funzionante), per permettere l’utilizzo di espressioni regolari[23][24] più
potenti che altrimenti non avrebbero funzionato;
•
Una seconda per eliminare quelle parti di codice che non ci interessavano
(JavaScript, commenti ecc….)
Durante la prima pulizia si sostituisce “</tr>” tutte le volte che si verifica una
doppia ripetizione dello stesso tag. Uno spazio bianco viene sostituito tutte le volte che si
trovano i tag: “</form>”, “<span class=”grassetto”>”, “</span>”, “&nbsp;” , “<br
/>”. La stringa risultante viene fatta processare dal validatore Tidy della libreria JTidy[19]
di cui si è parlato in precedenza (paragrafo 5.3 pag. 118), il quale viene precedentemente
impostato mediante opportuni metodi che gli passano i valori di settaggio.
Il file generato viene ripulito una seconda volta. Con quest’operazione viene
eliminata la parte JavaScript del codice utilizzando l’espressione regolare:
“<script[^>]*>[\\w|\\t|\\r|\\W]*</script>”
Questa espressione intercetta tutta la porzione di codice all’interno dei tag <script e
</script>, tag di apertura e chiusura compresi. Vengono eliminati inoltre tutti i commenti
per mezzo dell’espressione :
<!--((?!-->).)*-->
(tutto quello che si trova all’interno di <!-- --> estremi compresi)
Il file “ripulito” per la seconda volta viene ora riprocessato da Tidy e reso “wellformed” trasformandolo in un file XML. A questo file XML viene applicata una
122
Capitolo 5
Sviluppo dell’applicazione server
trasformazione XSL[21] per mezzo di un opportuno foglio di stile XSLT. In questo modo
si ottiene una prima stringa XHTML. Questa viene sottoposta ad un’altra opera di
rifinitura. Per esigenze di rappresentazione dell’informazione vengono eliminate tutte le
ripetizioni di spazi bianchi e tutte le stringhe della forma “../”
Alla fine di tutte queste operazioni, la servlet restituisce in output la stringa
XHTML della pagina dei profili secondo il formato dati XML fissato da noi nella fase
iniziale di sviluppo (vedi paragrafo 4.3.2 pag. 77).
Figura 48. Output del TASK Login
123
Capitolo 5
Sviluppo dell’applicazione server
TASK = LOGIN
Gateway
Applicativo
1. IF TASK = LOGIN
2.
RECUPERO
USERNAME
PASSWORD DALLA POST
E
3.
CONNESSIONE
FAD.UNISI.IT
A
HTTP
Interrogazione
database per
immissione dati
4.
RECUPERO
COOKIE
DALL’HEADER DELLA RISPOSTA
5. COSTRUZIONE STRINGA PR
COOKIE
DA
PASSARE
NELL’HEADER DELLE RICHIESTE
SUCCESSIVE
Database
MySQL
6.
STORE
SU
DATABSE
DI
USERNAME/PASSWORD, COOCKIE
E SCADENZA DELLA SESSIONE
7.
CONNESSIONE
A
FAD.UNISI.IT/LOGIN_NEW.ASP
PASSANDO LA STRINGA COOCKIE
NELL’HEADER
Connessione Http alla
FAD con stringa
Cookie,Username e
Password nell’header
della richiesta
8. CONTROLLO DELL’ “OK” DELLA
CONNESSIONE
(LOGIN
EFFETTUATO)
9.
SE
NO
OK
ALLORA
COSTRUZIONE DI UN MESSAGGIO
DI ERRORE DA MANDARE IN
OUTPUT
FAD
10. SE OK, RECUPERO DEL BODY
DELLA RISPOSTA, PULIZIA DELLA
PAGINA HTML CON JTIDY E
TRASFORMAZIONE CON APPOSITO
FILE XSLT
Restituzione
pagina nel
body della
11. RESTITUZIONE DELL’OUTPUT
Connessione Http
POST con
passaggio stringhe :
Cookie, Username e
Password e link
nell’header
Restituzione stringa
XHTML
CLIENT
Figura 49. Le operazioni portate a termine nell'esecuzione del TASK Login
124
Capitolo 5
Sviluppo dell’applicazione server
5.6.2 Il TASK profilicorsiattivi
La servlet si connette alla tabella del database per la gestione della sessione ed estrae
i tre parametri:
•
Cookie;
•
Username;
•
Password.
Per questo vengono selezionati i tre record relativi all’utente che fruisce della
sessione corrente ed i loro valori vengono memorizzati in altrettante variabili i tipo String.
Prima viene recuperato il link dal campo “indirizzo” dell’header della richiesta e poi
viene effettuata la connessione alla FAD settando nell’header Cookie, Username e
Password estratti in precedenza. Anche in questo caso viene effettuato un test
sull’andamento a buon fine della connessione:
Se il valore del campo ResponseCode dell’header della risposta è pari a 200 allora
vengono effettuate le operazioni del TASK altrimenti viene visualizzato in output la
dicitura “errore nella connessione”.
5.6.2.1 Le operazioni del TASK profilicorsiattivi
Se la connessione tra servlet e FAD va a buon fine la servlet legge la pagina
contenuta nel body della risposta e la memorizza riga per riga in una stringa. Questa stringa
viene sottoposta ad una prima procedura di pulizia simile alla prima pulizia compiuta nel
task di login (vedi paragrafo 5.6.1.1 pag. 121). Qui in più viene sostituita la lettera accentata
“è” con l’entità corrispondente “&#232;” e l’apice singolo “ ‘ ” con la relativa entità
“&#8242;”.
Segue la correzione con JTidy[19] e una seconda opera di pulizia con eliminazione
di codice JavaScript e commenti. Alla stringa XHTML prodotta, per esigenze di
visualizzazione lato client, vengono tolti gli spazi in eccesso come nel caso del login e poi
viene restituita in output.
125
Capitolo 5
Sviluppo dell’applicazione server
5.6.3 I TASK sezioni, moduli e modulo
Le operazioni in questione portano a termine le stesse azioni del TASK descritto
nel paragrafo precedente. La presenza ed il nome diverso sono dovuti al fatto che ognuno
di questi è associato ad un foglio di stile differente.
TASK = SEZIONI,MODULI,MODULO
Interrogazione
database per
recupero dati
Gateway
Applicativo
Database
MySQL
1.
IF
TASK
=
CORSI,SEZIONI,MODULI,MODULO
2. INTERROGAZIONE DATABASE
3.
RECUPERO
USERNAME,PASSWORD E COOCKIE
4.
RECUPERO
LINK
CORSO,SEZIONE,MODULO
DALL’HEADER DELLA RICHIESTA
5.
CONNESSIONE
A
CORSO,SEZIONE,MODULO
Connessione
Http alla FAD
con stringa
Cookie,Usernam
e e Password
nell’header della
richiesta
Restituzione
Cookie,Username
e Password
LINK
FAD
6. PASSAGGIO DELLA STRINGA
COOCKIE NELL’HEADER DELLA
RICHESTA
7. TEST CONNESSIONE
8. SE NON “OK” ,INVIO DI UN
MESSAGGIO DI ERRORE
9. SE “OK”, RECUPERO BODY
DELLA RISPOSTA,PULIZIA CON
JTIDY E TRASFORMAZIONE CON
FOGLIO DI STILE OPPORTUNO
Richiesta Http di
tipo POST
passando Cookie
Username e
Password e link
nell’header
Restituzione
pagina richiesta
nel body della
risposta
10. RESTIUTIZIONE DELL’OUTPUT
Restituzione
stringa XHTML
CLIENT
Figura 50. Le operazioni portate a termine nell'esecuzione del TASK sezioni, moduli e modulo
126
Capitolo 5
Sviluppo dell’applicazione server
5.6.4 Il TASK Lezione
Questo è il TASK più importante dell’applicativo server Java. Qui vengono ricreate
tutte quelle funzionalità che temporaneamente erano state eliminate con la pulizia del
codice delle pagine. Il TASK permette la fruizione della parte più importante del servizio: la
Lezione. Si riesce a recuperare la possibilità di tornare alla pagina precedente, ove ciò sia
possibile, rispettando il comportamento del sito.
La prima cosa che fa è recuperare il link della pagina della quale dovrà recuperare i
contenuti. Anche qui, come nei task descritti nel paragrafo precedente, il link della pagina
viene passato dal client MHP all’applicativo server attraverso l’header della richiesta
sfruttando il campo “indirizzo”, appositamente creato. La servlet effettua un test per
stabilire se prelevare la pagina precedente dall’apposita tabella del database oppure iniziare
con le operazioni del TASK in questione. Il test viene effettuando invocando il metodo
equals della classe string utilizzando come parametro la stringa:
javascript:history.back
Se il link passato dall’applicazione MHP combacia con il parametro allora vengono
effettuate le operazioni per il ritorno alla pagina precedente, altrimenti la servlet esegue le
operazioni del TASK Lezione.
5.6.4.1 Le operazioni per il recupero della pagina precedente
La servlet Java si connette al database creato per la gestione della sessione e quindi
alla tabella che contiene gli indirizzi delle pagine delle lezioni cancellandone l’ultimo inserito
in ordine di tempo. Dopodiché preleva l’ultimo rimasto dalla cancellazione in ordine di
tempo e lo memorizza in un’opportuna variabile “sito” di tipo String. In pratica ha
prelevato l’indirizzo della pagina precedente alla pagina correntemente fruita lato client. A
questo punto la servlet si connette al link prelevato e svolge tutte le operazioni proprie del
TASK lezione.
5.6.4.2 Le operazioni del TASK Lezione
La servlet immagazzina l’indirizzo prelevato dall’header della richiesta nella variabile
“sito”. Si connette al database e alla tabella dei link delle pagine per immagazzinare l’URL
in un apposito record. Questa operazione viene fatta tutte le volte che la condizione di
127
Capitolo 5
Sviluppo dell’applicazione server
verifica per la pagina precedente è falsa anche se quella pagina magari si era già stata
visitata prima. Così facendo si riesce a tener conto dell’iter della navigazione dell’utente. A
questo punto si interroga nuovamente il database ma connettendosi alla tabella delle pagine
del sito. Viene effettuato un test sfruttando sempre il link passato, per verificare se la
pagina richiesta dall’utente sia stata già visitata in precedenza:
Se il link è presente allora viene estratta la pagina che si trova nel record
corrispondente al record che contiene l’indirizzo e viene mandata come output della servlet
risostituendo l’apice singolo “ ‘ ” all’entità “&#8242;”(la sostituzione inversa era stata fatta
la prima volta che la pagina era stata richiesta) altrimenti si procede effettuando le seguenti
azioni:
La servlet si collega al database per recuperare i tre parametri Cookie, username e
password e memorizzarli in variabili apposite di tipo String.
Quest’ultimi vengono passati nel body della richiesta durante la connessione Http
POST alla FAD utilizzando il link contenuto nella variabile “sito”. La pagina contenuta nel
body della risposta viene letta riga per riga e memorizzata in una variabile di tipo stringa.
Questa stringa viene sottoposta ad una doppia pulizia. Una per eliminare i tag che generano
errori nel processamento Tidy ed una per eliminare la parte inutile del codice della pagina.
Viene sottoposta nuovamente a JTidy[19] per generare il file XML contente i contenuti di
nostro interesse. Questo file viene sottoposto a trasformazione XSLT per mezzo di un file
XSL[21] appositamente scritto. La stringa XHTML risultante rappresenta l’output della
servlet relativo a questo TASK.
La stessa stringa viene prima adattata(viene sostituito l’apice singolo “ ‘ ” con la
corrispondente entità “&#8242;”) e poi immagazzinata nella tabella che funge da cache
della servlet. L’indirizzo e la pagina vengono immagazzinati in due record appartenenti ad
una stessa riga.
128
Capitolo 5
Sviluppo dell’applicazione server
Gateway
Applicativo
Interrogazione per
recupero dati
1. IF TASK = LEZIONE
2. REUPERO LINK DELLA LEZIONE
DALL’HEADER DELLA RICHIESTA
3. TEST UTILIZZANDO LA STRINGA
“JAVASCRIPT:HISTORY.BACK”
Database
MySQL
4.
SE
“OK”
ALLORA
INTERROGAZIONE
TABELLA
INDIRIZZI DEL DATABASE
5. ELIMINAZIONE LINK PAGINA
CORRENTE
6.
RECUPERO
PRECEDENTE
CORRENTE
LINK
A
PAGINA
QUELLA
7.
SOTITUZIONE
LINK
RECUPERATO
DALL’HEADER
DELLA RICHIESTA CON QUELLO
ESTRATTO DAL DATABASE
8. SE NON “OK” ALLORA STORE
DEL
LINK
RECUPERATO
IN
OPPORTUNA VARIABILE STRINGA
9. STORE DEL LINK NELLA
TABELLA DEGLI INDIRIZZI
10. INTERROGAZIONE TABELLA
DELLE PAGINE (CACHE) PER
MEZZO
DEL
LINK
IMMAGAZZINATO, TEST SULLA
PRESENZA DI TALE LINK IN UN
RECORD DELLA TABELLA
11. SE “OK” ALLORA PRELEVA LA
PAGINA CORRISPONDENTE AL
LINK
Restituzione
dati a seconda
delle tabelle
interessate nei
vari punti del
TASK
Restituzione
stringa
XHTML
FAD
Connessione Http con
passaggio stringa
Cookie,Username e
password in un campo
dell’header
12. MANDA IN OUTPUT L’XHTML
GIA PRONTO
13.
SE
NON
“OK”
ALLORA
INTERROGAZIONE A DATABASE
14.
RECUPERO
USERNAME,
PASSWORD E COOKIE
11.
CONNESSIONE
AL
LINK
IMMAGAZZINATO CON PASSAGGIO
DELLA
STRINGA
COOCKIE
NELL’HEADER
12. TEST SULLA CONNESSIONE
13. SE NON “OK” INVIO IN OUTPUT
DI UN MESSAGGIO DI ERRORE
14. SE “OK” RECUPERO BODY
DELLA RISPOSTA,PULIZIA CON
JTIDY E TRASFORMAZIONE CON
FOGLIO DI STILE OPPORTUNO
15. RESTITUZIONE IN OUTPUT
DELL’XHTML OTTENUTO DALLA
TRASFORMAZIONE
16.
“STORE”
DELLA
STESSA
Restituzione stringa
XHTML
CLIENT
MHP
Connessione Http di
tipo POST passando
Cookie, Username e
Password e il link della
lezione nell’header
129
Capitolo 5
Sviluppo dell’applicazione server
5.7 La scrittura dei fogli di stile
Una parte fondamentale del nostro lavoro è stata senza dubbio la scrittura dei fogli
di stile da associare alle stringhe xml ripulite con Tidy. Il loro utilizzo ci ha permesso di
estrarre i contenuti dalle pagine ripulite e di inserirli all’interno dei relativi tag del modello di
trasporto di dati XML da noi definito per arrivare a generare le pagine XHTML richieste.
5.7.1 L’elenco dei corsi
In questo foglio di stile sono stati utilizzati due template, uno per il titolo ed uno
per l’approfondimento relativo al profilo o al corso attivo. I nodi vengono selezionati per
mezzo di istruzioni a sintassi abbreviata XPath[18][21]. Viene creato un primo template che
incornicia tag iniziale finale di una pagina XHTML, all’interno del quale vengono applicati i
template relativi ai nodi intercettati del titolo e dell’approfondimento.
Template XHTML
Template
Titolo
Template
approfondimento
Figura 51. Struttura del foglio di stile per i TASK profili e corsi attivi
5.7.2 Le sezioni
Questo è il foglio di stile che viene utilizzato quando viene eseguito il task sezioni.
Serve appunto a trasformare secondo il nostro modello XML la pagina relativa alle sezioni
del corso una volta che questa sia stata ripulita e resa well-formed per mezzo di Tidy. Il
livello di difficoltà cresce man mano che ci avviciniamo al nodo della lezione, proprio
perché cresce la complessità dei contenuti e della struttura della pagina relativa.
130
Capitolo 5
Sviluppo dell’applicazione server
È stato creato un primo template che incornicia i tag iniziale e finale di una pagina
XHTML. All’interno di questo vengono applicati un template per il titolo e due per
l’approfondimento. Questa volta l’intercettazione corretta dell’approfondimento è stata più
complicata, c’è stato bisogno di due istruzioni xsl diverse per riuscire ad intercettarli tutti.
Con una si riesce a prenderne n-1, e con la seconda l’n-esima; questo perché l’n-esima fa
parte della stessa tabella ma si trova in un altro nodo.
Template XHTML
Template
Titolo
Template
Approfondimento
Template
Approfondimento
Figura 52. Struttura del foglio di stile per il TASK Sezioni
5.7.3 I moduli
In questo caso il foglio di stile adotta sempre un template che incornicia i tag
iniziale e finale di una pagina XHTML con incastonati un template per il titolo della pagina
ed un template per l’approfondimento. Si è riusciti stavolta a selezionare tutti gli elementi
“approfondimento” che ci servivano con un solo template e facendo uso di una sola
istruzione abbreviata XSL[21].
131
Capitolo 5
Sviluppo dell’applicazione server
Template XHTML
Template
Titolo
Template
Approfondimento
Figura 53. Struttura del foglio di stile associato al TASK moduli
5.7.4 L’elenco delle lezioni
In questo caso come nel caso precedente viene utilizzato un template che racchiude
i tag iniziale e finale di una pagina XHTML con incastonati due template:
•
Template per il Titolo;
•
Template per gli approfondimenti.
Template XHTML
Template
Titolo
Template
Approfondimento
Figura 54. Struttura del foglio di stile associato al TASK modulo
5.7.5 La singola lezione
Si tratta del foglio di stile più elaborato. Infatti comprende la più ampia casistica di
costrutti presenti in tutte le pagine del corso. Si comincia dal template che incornicia i tag
iniziale e finale di una pagina XHTML. Questo contiene tutti gli altri template usati per
ricostruire la struttura della pagina secondo il nostro schema XML. Sono presenti:
132
Capitolo 5
Sviluppo dell’applicazione server
•
Un Template per il Titolo;
•
Due Template per il Testo Libero;
•
Un Template per il Testo Puntato;
•
Tre Template per le immagini contestuali e non;
•
Un Template per il link che permette di tornare alla pagina precedente;
•
Un Template per l’immagina che individua il link per tornare alla pagina precedente;
•
Otto Template per gli approfondimenti;
•
Un Template per il link indietro_veloce;
•
Un Template per il link indietro;
•
Un Template per il link avanti;
•
Un template per il link avanti_veloce.
Template XHTML
Template
Titolo
2 Template
Testo Libero
Template Testo
Puntato
Tre Template
Immagini
Template Link
Precedente
Template
Immagine Prec.
8 Template
Approfondimenti
Template
indietro veloce
Template
Indietro
Template
avanti
Template
avanti veloce
Figura 55. Struttura foglio di stile associato al TASK Lezione
5.8 L’interfacciamento finale
Questa è la fase in cui si è portato a termine il progetto dando vita al servizio vero e
proprio. Le due applicazioni vengono unite in una sola. Lato client e lato server vengono
modificati per garantire lo scambio reciproco di dati e nello stesso tempo il servizio riesce a
133
Capitolo 5
Sviluppo dell’applicazione server
riproporre i contenuti residenti su Web nell’ambito della Tv digitale ricostruendo a pieno
tutte le funzionalità di dinamica logica della navigazione del sito. Il risultato complessivo è
soddisfacente nonostante il numero e la complessità delle fasi di sviluppo.
In questa fase è stata portata a termine la scrittura dei fogli di stile e affinato il
funzionamento logico dell’applicazione MHP. A maggior ragione siamo andati ad
esaminare nuovamente le pagine del sito facendo uso però dell’applicazione totale
funzionante in modo tale da testarne il funzionamento e far venire a galla il maggior
numero di errori possibili. Così facendo sono emersi nuovi aspetti della logica del sito e
soprattutto si è riusciti a coprire tutta la casistica dei contenuti ampliando il modello di dati
XML iniziale. Per il funzionamento dell’applicazione si veda il capitolo 4 paragrafo 4.9 pag.
93.
5.8.1.1 Esempio di modifica post-produzione dell’applicazione finale
La gestione del passaggio da una lezione all’altra all’interno di uno stesso modulo è
affidata alla pressione dei tasti colorati del telecomando (vedi capitolo 4 paragrafo 4.10.8
Figura 39 pag. 103). In una fase iniziale gli eventi generati dalla pressione di questi tasti
portavano all’esecuzione delle stesse azioni necessarie alla visualizzazione della lezione (vedi
paragrafo 4.10.8.2 pag. 106) mentre nella fase finale tali eventi portano sempre
all’esecuzione delle stesse azioni ma preceduta da un test sull’effettiva presenza dei link
relativi all’interno della pagina richiesta. Infatti lo studio ha evidenziato che esistono anche
delle pagine del sito in cui i collegamenti ipertestuali alle altre lezioni appartenenti ad uno
stesso modulo non sono presenti.
Pertanto la pressione di un tasto colorato per prima cosa porta all’esecuzione di un
test volto a verificare la presenza del link necessario nella pagina XHTML ricevuta,
successivamente viene fatto un altro test sulla validità del link ricevuto utilizzando come
parametro la stringa:
http://fad.unisi.it#
Questa stringa rappresenta il link che punta alla pagina correntemente fruita e serve
come confronto in caso di presenza di link di navigazione veloce prima di effettuare tutte le
istruzioni successive per il recupero della pagina
134
Capitolo 5
Sviluppo dell’applicazione server
5.9 Conclusioni e sviluppi futuri
Il servizio sviluppato nell’ambito di questo lavoro di tesi ha ottenuto come suo fine
ultimo quello di riuscire a riproporre, in maniera opportunamente adattata, contenuti creati
per il Web nel contesto della televisione digitale terrestre secondo lo standard MHP.
Questa operazione ha comportato uno studio molto approfondito della formattazione e del
layout di tali contenuti nonché della logica e della dinamica della loro organizzazione.
Basandoci sui risultati ottenuti, elaborato un opportuno protocollo di comunicazione
client-server, si è riusciti ad interfacciare il mondo DVB-MHP con il WWW. L’applicazione
MHP è stata sviluppata con l’authoring tool Cardinal Studio Professional 4.0 ed estesa con
componenti sviluppati in tecnologia JavaBean, e scambia in maniera efficace dati con la
piattaforma di formazione a distanza dell’Università di Siena servendosi del gateway
applicativo. Il servizio ripropone in modo adeguatamente adattato i contenuti del corso
“ECDL2000-La patente Europea del Computer”. La Xlet Java ha il compito di inoltrare le
richieste effettuate dall’utente, per mezzo del telecomando del televisore, alla FAD. Il
compito di interpretarle e di restituire i contenuti richiesti spetta all’applicazione lato server
sviluppata in tecnologia Java servlet. Questo rappresenta il fulcro intorno al quale ruota
tutto il servizio; è grazie ad esso che è possibile l’interfacciamento completo. I contenuti
vengono prelevati dal sito attraverso richieste Http, ripuliti degli errori tramite JTidy e
immagazzinati mediante trasformazioni XSL in stringhe XHTML per essere recuperati e
riproposti, tramite parsing sul lato client.
Per fruire del servizio è necessaria l’autenticazione dell’utente con username e
password. È possibile quindi scegliere un profilo e di seguito un corso attivo e di qui,
passando per le sezioni ed i moduli, la lezione voluta. Attualmente il servizio mostra i
contenuti sottoforma di immagini e testo permettendo all’utente di navigare tra le varie
schermate seguendo fedelmente la logica delle pagine del sito, è dotato quindi di una basso
livello di interattività. Uno sviluppo sarà sicuramente quello di introdurre una sezione
relativa ai test dei livelli di conoscenze acquisite con relativa limitazione di accesso a sezioni
o moduli previo raggiungimento di crediti e/o punteggi, aumentando il grado di
apprendimento dei contenuti ma nello stesso tempo il livello di interattività del servizio. Un
ulteriore
sviluppo
dell’applicazione
prevede
l’automazione
del
meccanismo
di
riconoscimento dell’utente e di accesso ai profili o ai corsi, effettuata attraverso una smart
135
Capitolo 5
Sviluppo dell’applicazione server
card intelligente (CNS Carta Nazionale dei Servizi o CIE Carta di Identità Elettronica)
utilizzabile attraverso l’apposito alloggiamento di cui dispongono tutti i Set Top Box in
commercio. L’utilizzo di questi supporti permetterà all’utente di disporre in qualsiasi
momento del livello di formazione raggiunto.
Il servizio si presta inoltre come punto di partenza per lo sviluppo di ulteriori corsi
o addirittura di una piattaforma di T-Learning Open-Source, magari con la creazione di
contenuti adatti ad essere riproposti in televisione. L’architettura del servizio può essere
sfruttata per permettere l’interfacciamento della Tv Digitale con altri siti Web che
dispongano di una organizzazione di contenuti il più possibile omogenea. Il Gateway
Applicativo sviluppato offre quindi la possibilità di adattare al contesto televisivo anche
altre servizi Web che esulano dall’ambito prettamente Learning.
136
Bibliografia
Bibliografia
[1]
O’Leary, Seamus, Understanding digital terrestrial broadcasting: technology, standards and
regulations, Artech house Publishers, 2000
[2] Wilkipedia, L’enciclopedia multimediale on-line, http://www.wilkipedia.it
[3] Gian Paolo Balboni, Giovanni Venuti, DTT e servizi interattivi: Come e perchè della nuova
televisione, Telecom Italia LAB
[4] DVB(Digital Video Broadcasting), THE STANDARD OF DIGITAL WORLD,
www.dvb.org
[5] Nieto Alessandro, Sviluppo di un servizio di teleprenotazione eventi per TV digitale su
piattaforma DVB-MHP/Relatore: Giuliano Benelli; correlatore: Giovanni Luca Daino
[6]
MHP
Profiles,
Linking
functionality
to
the
MHP
specifications,
http://www.mhp.org/mhp_technology/mhp_profiles
[7] Interactive TV Web, Your source of MHP, OCAP, and JavaTV Information,
www.interactiveweb.org
[8] Studio Taf, Teorie, modelli e sviluppi del mercato, a livello nazionale e internazionale, riguardanti i
processi di e-learning, www.studiotaf.it
[9] Advanced Distribuited Learning, www.adlnet.org
137
Bibliografia
[10] LTSC, Learning Technology Standards Committee, http://ieeeltsc.org
[11] IMS, Global Learning Consortium, http://www.imsglobal.org
[12] AICC, Aviation Industry CBT Committee, http://www.aicc.org
[13] PROMETEUS, “PROMETEUS is a European Partnership for a Common Approach
to the Production of e-learning Technologies and Content”, http://www.prometeus.org
[14] Dublin Core, The Dublin Core Metadata Iniziative, http://dublincore.org
[15] pjb Associates, Personalisation and Personalised TV - in the home and on the move - helping to
create sustainable media-rich information and learning services through communities of interest,
http://www.pjb.co.uk
[16] FAD.UNISI.IT, La piattaforma di apprendimento a distanza dell’Università di Siena,
http://fad.unisi.it
[17] Sparta, Sparta is a lightweight Java XML package that includes an XML parser…,
http://sparta-xml.sourceforge.net/
[18] XPath, The XPath Tutorial, http://www.w3schools.com/xpath/default.asp
[19] JTidy- JTidy Home, http://jtidy.sourceforge.net
[20] MySQL AB : MySQL-Connector/J, http://www.mysql.com/products/connector/j
[21] XSL Tutorial, XSLT & XPath Tutorial, http://www.topxml.com/xsl/tutorials/default
138
Bibliografia
[22] ADB, Advanced Digital Broadcaster, http://www.adbglobal.com/home_page
[23]
RegExLib,
RegExLib.com
Regular
Expression
Cheat
Sheet
(.NET),
http://www.regexlib.com/CheatSheet.htm
[24]
Regular Expression, Regular Expressions and the Java Programming Language,
http://java.sun.com/developer/technicalArticles/releases/1.4regex
[25]Using-BeanInfo, http://www.imsc.res.in/
[26] Jar File Specification, http://java.sun.com/j2se/1.3/docs/guide/jar
[27] Java Programmers Source Book, http://www.codeguru.com/java/tij/tij0102.shtml
[28] Java Servlet Programming, Jason Hunter & William Crawford, O’Reilly
[29] Java 2 SDK Java 1.4, I fondamenti Sesta Edizione, Cay S.Horstmann & Gary Cornell,
McGrawHill
[30] Servlet Tutorial: Session Tracking, http://www.apl.jhu.edu/~hall/java/ServletTutorial/Servlet-Tutorial-Session-Tracking.html
[31] XML Guida completa, Devan Shepherd, Apogeo
[32] XSL Guida completa, Michiel van Otegen, Apogeo
[33] Location Path***12, eXtensible.it XML and beyond, http://www.extensible.it/articoli
[34] HTML.IT XML-DOM Tutorial, http://www.html.it/xml/tutorial
139
Bibliografia
[35] HTML.IT, HTML New Tutorial on-line, http://www.html.it
140