|
3. Il World Wide Web 3.1 Introduzione al World Wide Web Il World Wide Web ha radicalmente cambiato il mondo online e la sua popolarità è in continua crescita. Come sistema di comunicazione, il World Wide Web è in grado di distribuire e collezionare informazioni globalmente e in modo istantaneo. Per gli utenti il Web rappresenta una visione dinamica dei lavori e delle idee di milioni di persone e di organizzazioni mondiali. Il Web è un "integratore" di informazioni su Internet. Quello che Java porta al Web è un nuovo modo di comunicare, invece di fare affidamento sui server del Web per fornire informazione e funzionalità, Java rende possibile l’esecuzione dei contenuti attraverso un browser che supporta Java. Il Web supporta un certo numero di comunicazioni, informazioni e interazioni
utilizzando l’ipertesto per organizzare le informazioni. Il linguaggio
Java può estendere le capacità del Web nel campo della comunicazione,
della distribuzione delle informazioni e dell’interattività.
Panoramica del Web
Accanto al termine ipertesto troviamo l’ipermedialità, che è un ipertesto non vincolato ad essere propriamente un testo. L’ipermedialità include espressioni grafiche, sonore, figure e immagini video. Nel 1989 un ricercatore del CERN di Ginevra, propose un sistema di ipertesto che permettesse un’efficiente distribuzione di informazioni per i membri della comunità di fisica. Il sistema proposto era costituito da:
L’interesse verso il Web crebbe molto rapidamente e una squadra del National Center for Supercomputing Applications (NCSA) sviluppò un browser per il Web chiamato Mosaic, con il suo aspetto "fresco" e con la sua interfaccia grafica che presentava il Web utilizzando il mouse, alimentò un grande interesse verso il Web e verso l’informazione online. Dal 1994 in poi altre compagnie hanno annunciato versioni commerciali del software del browser del Web, i server del Web sono cresciuti così rapidamente che i progettisti originali del Web al CERN hanno ritenuto opportuno creare un’organizzazione mondiale che facesse da guida per il futuro sviluppo del Web nasce così il World Wide Web Consortium o W3C. Oggi, il W3C guida gli sviluppatori tecnici e gli standard di evoluzione del Web tra cui Hypertext Markup Language (HTML), il linguaggio standard per creare pagine Web. A dispetto della sua rapida crescita e dei suoi miglioramenti tecnici, il Web conserva tutt’oggi i componenti funzionali essenziali che aveva nella sua forma del 1990. La sua popolarità come "visualizzatore" di Internet, ha portato ad un convincimento popolare su di esso: che il Web sia un equivalente di Internet e i browser a volte sono pensati come equivalenti al Web piuttosto che come uno strumento all’interno di esso. Il Web è un sistema realmente distinto da Internet e dai suoi browser, non è un network, ma un sistema di applicazioni, un set di programmi software. Inoltre il World Wide Web può essere sviluppato e usato su molti tipi diversi di network non necessariamente network di Internet. Il World Wide Web è un sistema di informazione e di comunicazione basato su un ipertesto. Viene utilizzato, in genere, su network di computer con comunicazioni di dati operanti secondo un modello client/server. I client del Web (browser) possono accedere a protocolli e a informazioni ipermediali.(Figura 3.1)
Figura 3.1 Organizzazione tecnica del Web
Un modello client/server per sistemi di computer in rete comprende tre componenti: il client, il server e il network. Un client è un’applicazione software che viene eseguita sulla macchina dell’utente. Un server è una applicazione software che viene sulla macchina del fornitore. Il software del client può essere personalizzato in base all’hardware del sistema e agisce come un’interfaccia verso il sistema di informazione che è fornito sul server. L’utente può inoltrare una richiesta di informazione agendo attraverso il client. La richiesta arriva al server attraverso il network, il server interpreta la richiesta e compie le azioni desiderate. I risultati delle operazioni (se ci sono) vengono rispediti al client che poi li visualizza per l’utente. Tutte le comunicazioni client/server seguono un set di regole, o protocolli, che sono definiti per il sistema client/server. La Figura 3.2 descrive queste relazioni, mostrando il flusso di una richiesta da un client verso il server e mostrando anche il ritorno delle informazioni dal server verso il client.
Figura 3.2 Un modello client/server per la comunicazione di dati La forma differente di attività di "richiesta" e di "servizio" del modello client/server permette grande efficienza. Poiché il software del client interagisce con il server secondo un protocollo predefinito, il software del client può essere adattato al particolare terminale dell’utente. Per esempio, un client del Web (browser) può essere sviluppato per i computer Macintosh , i quali possono accedere a un qualunque server del Web; può accadere che allo stesso server del Web possa accedere anche un browser scritto per PC IBM che sta utilizzando un altro sistema operativo. Questo rende più facile lo sviluppo delle informazioni perché c’è una netta divisione di compiti tra il client ed il server. Non è necessario sviluppare versioni differenti di informazioni per ogni hardware dei vari sistemi perché le personalizzazioni necessarie vengono realizzate nei software dei client di ogni sistema. Java, seguendo il modello di base, porta delle innovazioni al modello
client/server: un browser che supporta Java è un client che manda
richieste di informazioni ai server del Web, il browser che supporta Java
interpreta e visualizza l’informazione distribuita dal server, queste informazioni
includono sia l’ipertesto che i bytecode del linguaggio Java. I client
Java eseguono il contenuto distribuito dai server, questi bytecode, come
descritto in precedenza, sono ad architettura neutrale, così come
le altre informazioni mandate dai server del Web.
Invece di fare affidamento su applicazioni d’aiuto, con Java , in particolare con gli applet e con un browser che supporta Java, si possono creare handler di contenuti per gestire formati multimediali o qualunque altra nuova applicazione. I generi e i modi di comunicazione si sono evoluti con il Web, dimostratosi un sistema di comunicazione flessibile che può essere usato in molti contesti, a partire da comunicazioni individuali fino ad arrivare a comunicazioni di gruppo e di massa. Il linguaggio Java e i browser del Web si inseriscono nei seguenti contesti:
La chiave per avere l’interattività è che il server del Web, attraverso dei programmi eseguibili, accetti un input dagli utenti. Basato su questi input l’eseguibile può calcolare un risultato e fornirlo all’utente. Java aggiunge ancora un altro livello di interattività: invece
del server che calcola il risultato è il browser abilitato per Java
che lo fa.
Il metodo usato era tra i primi esempi di interfaccia che poteva accettare un input dall’utente che raggiungeva il server del Web per essere elaborata. Tutto ciò era comunque abbastanza statico e lontano da un certo livello di interattività. Java ha il merito di cambiare il modello statico di comunicazione sul Web, dà la possibilità agli utenti di fare qualcosa in quell’indirizzo: lavorare in modo creativo con l’informazione e interagire con i contenuti. La chiave delle capacità di Java sono i contenuti eseguibili . Contenuto eseguibile è un termine generale che identifica l’importante differenza tra il contenuto che può caricare un browser del Web che supporta Java e quello che può caricare un browser che non supporta Java. In un browser pre-Java (cioè che non supporta Java) il contenuto caricato dal Web è definito in termini di specificazioni Multipurpose Internet Mail Extensions (MIME), che includono una varietà di formati multimediali di documenti, questa specificazione di contenuto è realizzata in modo che il contenuto caricato dal Web possa essere visualizzato nel browser o in un’applicazione di aiuto. Anche un browser dell’era Java (cioè che supporta Java) carica i contenuti definiti nelle specificazioni MIME e li visualizza ma, la differenza chiave è che questo tipo di browser è in grado di riconoscere uno speciale oggetto dell’ipertesto che è il tag <APPLET>. Quando viene caricata una pagina Web che contiene questo tag, il browser riconosce che un tipo speciale di programma Java, chiamato applet, è associato a quella pagina, il browser quindi carica l’applet che è in formato bytecode lo interpreta e lo manda in esecuzione sul terminale dell’utente. Queste operazioni di caricamento e di esecuzione avvengono in maniera trasparente, senza che l’utente debba compiere operazioni. Riassumendo i processi che avvengono quando un utente, con un browser che supporta Java, richiede una pagina contenente un applet, sono i seguenti: (Figura 3.3)
Figura 3.3 Operazioni Java all'interno di una pagina Web
Java arricchisce il Web
In questo modo Java cambia profondamente la struttura del Web:
La Figura3.4 mostra le relazioni tra la distribuzione, recupero e visualizzazione dei contenuti esistenti in quella pagina. Le operazioni descritte in figura sono:
Figura 3.4 Riassunto delle informazioni trasferite nella dimostrazione dell'applet Magic. In pratica potrebbe non essere lontano il giorno in cui si può realizzare un programma software semplicemente "assemblando" vari blocchi di codice Java distribuiti nel Web. La caratteristica più significativa di un browser che supporta Java è che esso è dinamico; invece di fare affidamento su un set di codice fisso costruito per la gestione delle informazioni e dei protocolli e su un set fisso di applicazioni d’aiuto che gestiscono i formati media, può adattarsi dinamicamente a nuovi protocolli e formati in questo modo quindi i progettisti di software possono tranquillamente riferirsi a nuovi protocolli, che metteranno a disposizione sul network. Handler di protocolli Un handler di protocolli è una classe scritta in Java, compilata e posizionata in una directory del proprio browser o nel Web. Un programmatore crea un handler di protocolli per escogitare un nuovo modo per interpretare i contenuti. Un nuovo protocollo fa si che sia possibile avere una nuova parola chiave, per esempio all’inizio di un URL. Handler di contenuti Come gli handler di protocollo, gli handler di contenuti permettono a un browser che supporta Java di interpretare un nuovo formato per la distribuzione delle informazioni. Gli handler di contenuti fanno si che un browser non ha bisogno di applicazioni di aiuto per visualizzare un nuovo formato di informazione. I Browser dell’era Java
I primi browser del Web agivano come un filtro verso le informazioni su Internet, questi browser si basavano sulla conoscenza dei protocolli e dei formati di Internet (http, ftp, HTML, GIF ecc...), utilizzando questa conoscenza visualizzavano i risultati. La Figura 3.5 illustra come un browser pre-Java trova le informazioni sul network e le interpreta secondo la sua programmazione interna riguardante i protocolli o i formati media comuni. Questi browser utilizzano delle applicazioni d’aiuto per visualizzare formati speciali, come suoni o animazioni. Il browser pre-Java deve essere molto informato sui protocolli e sui formati media del network ed è quindi "ingombrante", non solo, non è in grado di gestire protocolli per i quali non è stato programmato, o formati per i quali non ha a disposizione applicazioni d’aiuto.
Figura 3.5 I browser pre-Java agiscono come filtri.
Un browser dell’era Java è molto "leggero" perché effettivamente non ha bisogno di protocolli predefiniti o formati programmati all’interno delle sue funzionalità; invece la funzionalità interna di un browser dell’era Java consiste nell’abilità di "imparare" come interpretare qualsiasi protocollo o qualsiasi formato. Il browser è "istruito" verso i più comuni protocolli e formati in aggiunta, però, è in grado di imparare qualsiasi formato o protocollo che un programmatore Java potrebbe realizzare. Come mostra la Figura 3.6, un browser dell’era Java è "leggero", non ha prefissata conoscenza del Web, ma ha l’abilità di poter apprendere.
Figura 3.6 Il browser dell'era Java può imparare.
|