| Index | Next |Prev. |

    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
Il World Wide Web fu originariamente sviluppato per poter permettere lo scambio di informazioni necessarie per i ricercatori della comunità di fisica. Oggi il World Wide Web è un sistema di distribuzione delle informazioni globale. Alla base c’è l’ipertesto, termine usato per descrivere testi che non sono costretti ad essere sequenziali; l’ipertesto collega documenti per formare un sistema di relazioni e fa uso della possibilità di estendere e di accrescere il significato di un "singolo" testo per mezzo di collegamenti ad altri testi. 

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:

  • Un’interfaccia utente che potesse andar bene per tutte le piattaforme e che avrebbe permesso agli utenti di accedere alle informazioni da computer differenti.
  • Uno schema per questa interfaccia in modo da accedere a diversi tipi di documento e a protocolli di informazione.
  • Una norma per l’accesso universale, che avrebbe permesso ad ogni utente di network di accedere a qualunque informazione.
Verso la fine del 1990, un prototipo del World Wide Web era operativo e fu completata un’interfaccia per l’utente (chiamata "WWW"). Successivamente l’interfaccia World Wide Web fu resa disponibile pubblicamente dal CERN. 

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

Figura 3.1 Organizzazione tecnica del Web
 
  Java trasforma il World Wide Web Java cambia il Web fornendo più "intelligenza" ai browser. I browser che supportano Java hanno interfacce per gli utenti simili a quelle di molti altri browser del Web. La differenza è che hanno caratteristiche tecniche che permettono loro di interpretare i contenuti eseguibili (codice Java). 

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.
  Java elimina la necessità delle applicazioni d’aiuto
Le applicazioni d’aiuto (helper) comprendono il software che un browser del Web utilizza per visualizzare all’utente informazioni multimediali. Per esempio, per permettere all’utente di visualizzare immagini video, i browser del Web devono avere disponibile ed installato un visualizzatore software di movimenti. 

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:

  • Distribuzione di informazioni: un browser del Web fornisce all’utente un "visualizzatore" per le informazioni dell’ipertesto del Web. La struttura a ipertesto fornisce all’utente una certa selettività, in quanto l’utente può seguire più percorsi all’interno dell’ipertesto. Java aggiunge potenzialità con la possibilità di creare nuovi handler di protocolli e di contenuti.
  • Comunicazione: le persone possono usare l’ipertesto del Web per creare centri per la discussione di informazioni e che permettano ad altri di entrare in contatto con loro. I contenuti eseguibili di Java introducono nuove forme di comunicazione.
  • Interazione: un grado di interattività più elevato si può raggiungere utilizzando Java, grazie ai contenuti eseguibili.
  • Calcolo: utilizzando la programmazione Java, il Web può essere usato per fornire un’interfaccia al altre applicazioni e a programmi per l’elaborazione di informazioni.
Quando un utente accede ad un server del Web, il contenuto è presentato per mezzo di un ipertesto. Tuttavia nessuna informazione è personalizzata in base agli input dell’utente. Benché il server del Web offra all’utente una grande flessibilità nel reperimento di informazioni, grazie all’ipertesto, esso non è interattivo (o lo è in minima parte). 

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. 
 
  3.2 Java e il World Wide Web Nell’ottobre del 1994 l’esperimento di utilizzare il Web per l’ordinazione delle pizze voluto dalla Pizza Hut suscitò molta attenzione e interesse, utilizzando un’interfaccia rassomigliante a un biglietto di ordinazione, tramite l’indirizzo del Web gli utenti della piccola area geografica di Santa Cruz (California) potevano ordinare la pizza attraverso il Web, l’esperimento fu fatto per un tempo limitato. 

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)

  • L’utente si collega a un pagina HTML sul server del Web;
  • La pagina HTML viene caricata e visualizzata dal browser dell’utente. La pagina contiene il tag <APPLET> con il nome del file che identifica l’applet sul server;
  • L’applet, in formato bytecode, viene caricato dal browser;
  • Il browser interpreta i bytecode e visualizza l’output sul terminale dell’utente;
  • L’utente può avere interazioni con l’applet ma, in genere non ulteriori caricamenti da parte del server del Web, in quanto l’applet è interamente caricato e in esecuzione nel browser dell’utente;
  • Figura 3.3 Operazioni Java all'interno di una pagina Web
     

    Java arricchisce il Web
    Appare chiaro a questo punto che quando si naviga nel Web, si possono trovare non solo tutti i contenuti di ipertesto che il Web offriva negli anni antecedenti alla nascita di Java, ma anche animazioni, contenuti eseguibili, nuove forme di media, così come nuovi protocolli d’informazione. 

    In questo modo Java cambia profondamente la struttura del Web:

    • Java crea luoghi per fermarsi sul Web. Non più soltanto testo suoni o immagini da osservare, un pagina Java può offrire un luogo dove imparare, comunicare e interagire con altri utenti.
    • Java incrementa il dinamismo del Web. Così come nuove tecnologie per i browser hanno spinto gli sviluppatori del Web a creare nuove pagine per sfruttare queste caratteristiche, così anche la tecnologia Java promette una nuova fase di sviluppo dei contenuti del Web.
    • Java arricchisce il livello di interattività del Web. L’interattività che Java porta è immediata e trasparente rispetto al modello pre-Java.
    • Java trasforma il Web in un sistema di distribuzione software. La caratteristica di Java di rendere possibile la distribuzione dei contenuti dà ai programmatori la possibilità di creare nuovo software e di renderlo immediatamente utilizzabile attraverso il Web.
    3.3 Nuovi protocolli e formati Abbiamo visto che con il linguaggio Java un programmatore può sviluppare :
    • Applicazioni: programmi a se stanti scritti in Java ed eseguibili indipendentemente dal browser, grazie all’utilizzo dell’interprete Java.
    • Applet: programmi che sono inclusi nelle pagine HTML attraverso il tag <APPLET>.
    Il linguaggio Java inoltre rende possibile:
    • Handler di protocolli: programmi che comunicano a un browser che supporta Java come gestire un nuovo metodo di elaborazione di informazione.
    • Handler dei contenuti: programmi che danno ad un browser che supporta Java la possibilità di interpretare nuovi tipi di dati.
    Un piccolo esempio, che vale la pena citare, si trova sul Web all’indirizzo http://www.rpi.edu, qui il browser carica semplicemente una pagina contenente delle immagini e l’applet Magic che permette di disegnare sulle immagini, le relazioni con il network contenute in questa pagina sono abbastanza significative. 

    La Figura3.4 mostra le relazioni tra la distribuzione, recupero e visualizzazione dei contenuti esistenti in quella pagina. 

    Le operazioni descritte in figura sono:

  • Il server del Web www.rpi.edu manda il file dell’ipertesto al browser dell’utente;
  • I tag <IMG> e <APPLET> contenuti nel file comportano la richiesta da parte del browser di un’immagine e di un applet rispettivamente dai server Web www.paris.org e www.rosedud.com;
  • La pagina, l’immagine e l’applet vengono assemblati nel browser dell’utente e l’applet viene eseguito sul computer dell’utente;
  •   Figura 3.4 Riassunto delle informazioni trasferite nella dimostrazione dell'applet Magic.

      Questa interazione all’interno del network coinvolge tre server del Web e il computer dell’utente, oltre al network Internet; come client del Web, un browser che supporta Java è un integratore di informazioni e Java permette il recupero e l’integrazione delle informazioni. 

    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
    La capacità di dinamismo che hanno i browser che supportano Java rivoluziona anche il modo di vedere il World Wide Web . 

    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.


     | Index | Next |Prev. |