CLIENT WEB Strumento di interfaccia tra l utente ed il sistema Web (browser). Funzioni svolte: Riceve ed esegue i comandi dell utente Richiede ad un server (web server) i documenti Interpreta i formati di codifica (HTML, GIF, JPEG; MP3..) che costituiscono ogni singolo documento e li presenta all utente WEB Si occupa della gestione, del reperimento e dell invio dei documenti (ovvero dei vari oggetti digitali che li compongono) richiesti dai client. Quando l utente attiva un collegamento (agendo su un link) o specifica esplicitamente l indirizzo di un documento, il client invia una richiesta ad un determinato server con l indicazione del documento richiesto. Il server web interpreta la richiesta, reperisce il documento richiesto e lo invia al client usando e specificando il tipo di documento. Ogni pagina gestita dal server è identificata univocamente tramite una forma sintattica convenzionale detta URL (Uniform Resource Locator) che ha la forma: protocollo://nome_calcolatore/nome_documento protocollo rappresenta l insieme di regole che browser e server web devono seguire per inviare la richiesta di una pagina (browser) e per inviare la pagina richiesta (server web). Il protocollo usato è (HyperText Transfer Protocol). nome del calcolatore rappresenta il nome del server che contiene le pagine cercate. Esempio: http: // www.unibo.it/portale/master/default.htm Richiesta della pagina Master (che contiene tutti i master attivati presso l Università di Bologna) situata sul server www.unibo.it che rappresenta la home page del portale dell Università di Bologna. Alla ricezione della richiesta indicata, il server compie una ricerca nell archivio delle pagine che gestisce e quindi produce un messaggio di risposta che contiene la pagina richiesta. Protocollo di applicazione: nome del documento rappresenta il nome della pagina cercata. 1
UTENTE INVIA DOCUMENTO //WWW.FOO.IT Nell ipotesi che la pagina sia un semplice documento esso è memorizzato come una sequenza di caratteri. BROWSER INTERPRETAZIONE FILE E VISUALIZZAZIONE BROWSER UTENTE REQUEST REPERIMENTO FILE SUL FILE SYSTEM RESPONSE INDEX.HTM FIG.GIF STYLE:CSS Per consentire che, quando riprodotto sul video del client, il documento abbia la struttura voluta(suddivisione in paragrafi, presenza di titoli e sottotitoli, particolare evidenziazione ad alcune parti etc..), occorre descriverne tale struttura tramite i comandi di un linguaggio di marcatura (mark up language). Il più noto di questi linguaggi è HTML (HyperText Markup Language). Una volta arrivata la pagina, il browser provvede a visualizzarla, utilizzando un particolare programma in grado di interpretare i comandi HTML(interprete HTML).. Il documento richiesto può essere statico o dinamico Documento web statico : costituito da una serie di oggetti digitali memorizzati in file che vengono prodotti una volta per tutte e contenuti nel File System (fino a quando il gestore di sistema non decide di modificarli o di rimuoverli). Documento web dinamico: i componenti del documento vengono elaborati e composti sul lato server solo nel momento in cui arriva una richiesta eplicita. (es. risultati di una ricerca su data base). Documenti dinamici (documenti i cui contenuti vengono elaborati e composti sul lato server al momento dell arrivo di una richiesta), il server mette in esecuzione un programma che interrogando il database compone il documento da inviare al browser. In questo caso la URL inviata dal browser identifica un file corrispondente ad un programma: http://www.unibo.it/dida/calendario.exe 2
Comportamento del server. Più in generale, la richiesta avrebbe potuto contenere dei parametri, per esempio: http://www.unibo.it/dida/calendario.exe? giorno=010901&corso=c50 specificati in uno standard noto come Common Gateway Interface, CGI. In coda ad una URL e separata da questa con il carattere? può essere posta una lista di coppie: nome parametro=valore ognuna separata dalla successiva dal carattere &. 1) Individua nel suo file system il file richiesto e stabilisce che esso corrisponde ad un programma. Mette in esecuzione il programma mettendosi in attesa del risultato. 2) Alla conclusione della sua esecuzione, il programma produce un risultato e lo rende disponibile al server web (testo, immagine..). 3) Il server acquisisce i dati, antepone un opportuna intestazione ed invia il risultato come risposta al browser. 4) Il browser riceve il messaggio di risposta, legge l intestazione, ottenendo l informazione sul tipo e la lunghezza del file contenuto nel corpo del messaggio, legge il corpo del messaggio e lo visualizza. Per elaborare un documento dinamico un server web può: - utilizzare appositi programmi (backend) o librerie di funzioni tramite il protocollo Common Gateway Interface (CGI), con cui, nella richiesta, si specifica il nome del programma e i parametri necessari; - utilizzare nel web server linguaggi di scripting (es.asp e PHP) per la realizzazione dei programmi richiesti; - con l introduzione di un application server che realizza le funzioni richieste utilizzando un ambiente di programmazione evoluto. CGI (Common Gateway Interface) Tecnologia ampiamente diffusa per la composizione dei documenti dinamici. Sviluppata da NCSA (National Center Supercomputer Applications). Stabilisce le modalità di interazione tra server web e applicazioni dedicate alla generazione di documenti dinamici (programmi CGI). Le applicazioni possono essere scritte in diversi linguaggi a seconda del tipo di documento da generare (C,C++, Perl..) Il browser specifica nella URL - indirizzo del server - nome del programma da eseguire - eventuali parametri 3
Il server CGI (Common Gateway Interface) - riceve la richiesta - utilizza lo standard CGI per richiamare il programma e ritornare i risultati Il programma CGI deve specificare di quale documento si tratta (testo, immagine). Il server utilizza l opportuno formato (HTML, JPEG..) per preparare il documento da inviare al browser via. Linguaggi di script server side. intepretati ed eseguiti dal server web o da un modulo software (application server) contenuto nel server web. Linguaggi più diffusi: - ASP (Active Server Pages) utilizzato nei server Web della Microsoft. - PHP (PHP: Hypertext Prepocessor) legato al server web open source Apache. - Cold Fusion (Macromedia) - JSP (Java ServerPages). Applet Java. - programmi Java scaricati dal server ed eseguiti sul client. Possono essere anche complessi. Vengono interpretati dal browser tramite l inteprete Java ed eseguiti tramite la Java virtual machine che utilizza il S.O. del client - usati per aggiungere effetti multimediali ed interattivi alle pagine web (musica, animazioni, giochi interattivi, video, etc.). - possono interagire con il server ed il database. - problema della sicurezza In generale, questi linguaggi consentano di inserire segmenti di codice (es.asp: scritti in Visual Basic per accessi ai database o per chiamate alle DLL)) dentro uno scheletro (template) in un documento HTML(con cui si costruisce ad esempio una tabella, si usano i colori) Quando la pagina viene richiesta viene eseguito il codice ed il documento risultante inoltrato al client. L esecuzione del codice richiede di norma l accesso ad un database. (es. catalogo on line: le informazioni relative ad ogni singolo prodotto sono contenute in un database) 4
Piattaforme di sviluppo (Application server). Piattaforma Java. Si basa sullo sviluppo delle applicazioni in linguaggio Java (dette servlet) o JSP su server applicativi basati sull architettura J2EE. (IBM Websphere, BEA Weblogic, Tomcat). La piattaforma offre servizi per la sicurezza, gestione e profilazione degli utenti che accedono alle applicazioni, per l accesso controllato ai database.. Piattaforma.Net Strettamente legata ai sistemi operativi Windows di classe server. Capacità di supportare numerosi linguaggi di programmazione e di poter integrare oggetti software preesistenti. Piattaforma Zope Open source. Si basa sul linguaggio di programmazione Python. Struttura a tre livelli Il programma messo in esecuzione dietro il server web prende il nome di back end ed implementa la logica applicatica (LA). Il server web ha il compito di gestoredella comunicazione con i browser e di controllore dei processi di back-end. Specializzazione. Ogni sottosistema è realizzato per svolgere compiti particolari e deve solo condividere un protocollo con gli altri sottosistemi (CGI : protocollo applicativo tra server web e back end) browser server web back end Struttura a quattro livelli Se la logica applicativa richiede una gestione di dati sofisticata, dietro al back end potrà essere messo un DBMS. Il back end diventa client nei confronti del DBMS tutte le volte che è necessario operare in termini di memorizzazione e reperimento dei dati. In generale, ogni volta che è necessario un componente che realizza la funzione applicativa richiesta si può fare in modo che il back end richiami tale componente invece di realizzare nuovamente la stessa funzione. (back- end come gestore di componenti distribuite). browser server web back end DBMS 5