slide fornite dal docente
Transcript
slide fornite dal docente
Impianti di Elaborazione Applicazioni e Servizi M.G. Fugini COMO IMPIANTI 08-09 Indice dei contenuti Servizi e risorse Internet (Telnet, FTP, Posta elettronica, News, Chat, Videoconferenza,…) World Wide Web Tecnologie per lo sviluppo di applicazioni sul WWW Web Service Fugini Impianti Como 08-09 2 1 Alcune fra le applicazioni più diffuse WWW - Browser (MS Internet Explorer, Netscape Navigator, Mozilla,..) - Web Server (MS IIS Server, Apache) Email - Mail Client (MS Outlook, Eudora) - Mail Server (MS Exchange Server) File transfer - FTP Server - FTP Client Peer to Peer - Server (Napster, Gnutella) - Client (Napster, Gnutella) Multimedia applications - Streaming video server - Multimedia Client (Real Player, Real One, MS Windows Media Player) Fugini Impianti Como 08-09 3 Posta elettronica (E-Mail) E-mail: scambio di messaggi tra computer I messaggi E-mail sono solitamente codificati come testo ASCII, ma possono essere inviati anche file non di testo, ad esempio immagini grafiche e suoni, come allegati inviati in flussi binari La posta elettronica è stata una delle prime applicazioni su Internet ed è ancora quella più popolare tra gli utenti. Una larga percentuale del traffico totale circolante su Internet è costituita da e-mail. E-mail possono anche essere scambiate tra utenti di servizi on line e in reti diverse da Internet, sia pubbliche sia private Le e-mail possono essere inviate a liste di persone o a singoli individui. Una lista di distribuzione può essere gestita utilizzando un e-mail reflector. Alcune mailing list permettono la sottoscrizione della lista mediante l’invio di una richiesta all’amministratore Indirizzo di posta elettronica: Struttura Casellapostale@calcolatore Fugini Impianti Como 08-09 4 2 Formato dei messaggi E-Mail Il formato dei messaggi di posta elettronica consiste in un file ASCII diviso in due parti: Intestazione (header) che riporta mittente, destinatari, data, formato del contenuto Corpo (body) che riporta il testo del messaggio Il corpo di un messaggio non deve sottostare ad alcuna regola di strutturazione L’intestazione è strutturata rigidamente: è costituita da una sequenza di parole chiave seguite da due punti e dai valori corrispondenti Alcune parole chiave sono obbligatorie, altre sono facoltative Esempi di parole chiave sono: From:, To: Cc:, Date:, Subject:, Replay-to:, X-Charset: (codifica dei caratteri adottata, solitamente ASCII), X-Mailer: (programma di posta usato per trasmettere il messaggio), X-Sender: (copia dell’indirizzo del mittente) Fugini Impianti Como 08-09 5 Estensioni Polifunzionali (MIME, Multipurpose Internet Mail Extension) Con la diffusione della posta elettronica, è stata introdotta la possibilità di spedire in insieme di informazioni arbitrarie: testo, immagini, programmi, ecc. Queste informazioni, codificate in codice binario, vengono tradotte in formato testo e spedite mediante posta elettronica Dato che esistono molti standard di codifica, IETF ha proposto lo standard MIME al fine di coordinare e unificare gli standard di conversione Con MIME il mittente e il destinatario scelgono lo schema di codifica ritenuto più conveniente Il mittente include nell’intestazione una riga che indica l’uso di MIME (MIMEVersion:) e nel corpo alcune informazioni che specificano il tipo di dati inviati e lo schema di codifica adottato (MIME ammette anche che le parti di uno stesso messaggio siano codificate in modo diverso: viene usato per codificare file binari associati a mail di testo) Il vantaggio principale introdotto dall’utilizzo di MIME è la flessibilità concessa ai Client di posta elettronica Fugini Impianti Como 08-09 6 3 Trasferimento della posta I messaggi di posta elettronica vengono scritti mediante un’interfaccia e-mail (email interface) e poi spediti mediante un programma di trasferimento della posta (e-mail transfer program) Il programma di trasferimento opera ciclicamente, attendendo di avere un messaggio di posta nella coda dei messaggi in uscita e verificando la presenza di messaggi nella coda di posta in arrivo Fugini Impianti Como 08-09 7 Protocollo SMTP (Simple Mail Transfer Protocol) Il programma di trasferimento, per contattare un Server che risiede su di un’altra macchina, richiede una connessione TCP Stabilita la connessione, i due programmi utilizzano il protocollo SMTP che permette al mittente di qualificarsi specificare il destinatario trasferire il messaggio SMTP deve garantire una consegna affidabile: Il mittente deve trattenere copia del messaggio fino a che il destinatario non abbia memorizzato su disco il messaggio ricevuto Deve garantire la verifica preventiva dell’esistenza di una data casella postale … Fugini Impianti Como 08-09 8 4 Protocollo SMTP (Simple Mail Transfer Protocol) Il programma di trasferimento, per contattare un Server che risiede su di un’altra macchina, richiede una connessione TCP Stabilita la connessione, i due programmi utilizzano il protocollo SMTP che permette al mittente di Qualificarsi Specificare il destinatario Trasferire il messaggio Fugini Impianti Como 08-09 9 Protocollo POP (Post Office Protocol) La casella postale è un “deposito” presso il quale il programma di trasferimento della posta accede per consegnare un dato messaggio email La casella postale deve quindi essere sempre reperibile sulla rete e deve poter essere contattata da più Client in modo concorrente Per questo motivo, si è scelto di installare su delle macchine specifiche: i Server postali () Mail Server: devono essere macchine con sistema operativo concorrente ed essere in esercizio sempre La famiglia dei protocolli TCP/IP mette a disposizione il protocollo POP (Post Office Protocol) per permettere l’accesso a distanza alle caselle postali (e richiede l’esecuzione di un Mail Server sul calcolatore che le ospita) Fugini Impianti Como 08-09 10 5 Indice dei contenuti Servizi e risorse Internet (Telnet, FTP, Posta elettronica, News, Chat, Videoconferenza World Wide Web Web Service Fugini Impianti Como 08-09 11 La rappresentazione dei documenti I documenti che compongono l’archivio WWW sono detti pagine La pagina principale dell’archivio di un ente (Sito Web) è detta homepage e l’archivio è organizzato in modo reticolare (ipertesto) In genere l’esplorazione dei documenti di un Sito Web parte dalla sua homepage I documenti web sono scritti nel linguaggio HTML (HyperText Markup Language) HTML fornisce indicazioni generali per la visualizzazione dei documenti, anche se la scelta dei dettagli dell’impaginazione è lasciata ai browser Quindi browser diversi possono mostrare lo stesso documento HTML in modi differenti I browser più diffusi sono stati negli anni (a partire dal 1992) Gopher, Mosaic, Netscape Navigator e Internet Explorer Fugini Impianti Como 08-09 12 6 HTML: modello di funzionamento client Web browser Documento HTML <HTML> <HEAD> <TITLE> Esempio </TITLE> </HEAD> <BODY> Testo del documento <BR> <A HREF="http://www.cp i.polimi.it/it/EBLa b/"> Visita il Centro EBLab</A> </BODY> </HTML> server Connessione HTTP Web server Richiesta doc. HTML Risposta doc. HTML HTML Chiusura HTTP Fugini Impianti Como 08-09 13 Hypertext Markup Language Un file HTML è composto da un insieme di informazioni e di simboli di "markup“ (o marcatori) che specificano al Browser come visualizzare le informazioni I marcatori indicano al Browser come visualizzare il testo e le immagini di una pagina Web I singoli marcatori sono chiamati più comunemente tag HTML è uno standard raccomandato dal World Wide Web Consortium (W3C) e a cui aderiscono i principali produttori di Browser La versione corrente dell’HTML è l’ HTML 4. Sia Internet Explorer che Netscape Navigator implementano alcune caratteristiche in modo differente e forniscono delle estensioni non standard Gli sviluppatori Web che usano le caratteristiche più avanzate dell’HTML 4 dovrebbero progettare le pagine per entrambi i browser ed inviare la versione più appropriata in base al singolo utente Le caratteristiche avanzate dell’HTML 4 sono a volte indicate in generale come Dynamic HTML. Quello che a volte è indicato come HTML 5 è una forma estensibile di HTML chiamata XHTML Fugini Impianti Como 08-09 14 7 Descrizione HTML dei contenuti <TITLE>Laptop Computer</TITLE> <BODY> <UL> <LI>DELL INSPIRON 7500 <LI>650 Mhz <LI>256 Mb <LI>23 Gb <LI>4.1 pounds <LI>$3200 </UL></BODY> Fugini Impianti Como 08-09 15 Descrizione XML dei contenuti <COMPUTER TYPE=“LAPTOP”> <MANUFACTURER>DELL</MANUFACTURER> <LINE>INSPIRON</LINE> <MODEL>7500</MODEL> <SPEED>650 Mhz</SPEED> <MEMORY>256 Mb</MEMORY> <DISK>23 Gb</DISK> <WEIGHT UNIT=“POUND”>4.1 </WEIGHT> <PRICE CURRENCY=“USD”>3200</PRICE> </COMPUTER> Fugini Impianti Como 08-09 16 8 Alle origini di XML L’eXtensible Markup Language (XML) nasce nel febbraio del 1998 come raccomandazione del W3C E’ una tecnologia che permette di rappresentare informazioni in formato testuale e strutturato ed è derivato dall’SGML (Standard Generalized Markup Language) La sua definizione prescinde dal campo di applicazione e dall’ambiente di lavoro di utilizzo XML è un metalinguaggio che permette di rappresentare contenuti testuali organizzati in una gerarchia E’ oggi lo standard di riferimento per: La definizione di contenuti semantici per il Web La gestione di scambi informativi fra applicazioni software La rappresentazione semantica di basi di dati La definizione di linguaggi … Fugini Impianti Como 08-09 17 XML I file XML sono caratterizzati da: Sono basati su marcatori (TAG), come nell’HTML: <nome> </nome>. I TAG permettono di leggere le informazioni contenute e le qualificano come elementi logici (senza preoccuparsi di come questi elementi appariranno in fase di visualizzazione) Permettono di separare i dati puri dalla loro rappresentazione grafica Sono accomunati da un insieme di regole di sintassi che permettono di leggere e scrivere, nello stesso modo e con strumenti analoghi, i contenuti rappresentati A ogni documento XML è possibile associare la descrizione della struttura dei dati utilizzata al suo interno, al fine non solo di renderla facilmente comprensibile anche da parte di chi non la conosce, ma anche per rendere rapido il processo di verifica e controllo che tale struttura sia rispettata nel documento Le modalità di rappresentazione grafica sono definite da altri linguaggi, chiamati fogli di stile (XSL, eXtensible Stylesheet Language o CSS, Cascading Style Sheet) Fugini Impianti Como 08-09 18 9 Validazione Un documento XML che rispetta le regole “grammaticali” è well-formatted. Questo non implica che abbia anche senso dal punto di vista semantico Chi definisce la struttura corretta dei contenuti dei file XML? Ai documenti è possibile associare le definizioni di struttura che descrivono il nome e la posizione dei TAG e degli attributi nel documento Il meccanismo che permette di verificare che un documento XML oltre ad essere leggibile rappresenta dei contenuti sensati dal punto di vista semantico, per chi lo deve utilizzare, è detto validazione Le tecniche di validazione sono: DTD (Document Type Definition): è una tecnologia diffusa. Si tratta del primo meccanismo utilizzato e non era nato per descrivere XML XRD (Xml Data Reduced): è una proposta di Microsoft che ha promosso e utilizzato XRD come alternativa più completa alle DTD, in attesa che il W3C rilasciasse una raccomandazione in merito XSD (Xml Schema Definition): è una raccomandazione del W3C (2 maggio 2001) ed è lo standard della validazione. Tutti i produttori di parser (IBM, Microsoft, Sun, ecc.) lo supportano Fugini Impianti Como 08-09 19 Limiti delle DTD Le DTD rappresentano un adattamento all’XML di qualcosa nato per descrivere altro Il limite principale delle DTD consiste nel fatto che XML e DTD non adottano lo stesso linguaggio Le DTD sono carenti di tipi di dati elementari (insieme dei valori che possono assumere gli elementi e gli attributi): Quando si definisce una struttura dati è necessario lo stesso repertorio di tipi di dati presente nei linguaggi di programmazione; invece con le DTD si devono definire manualmente anche tipi comuni come le date Devono essere definite manualmente tutte le strutture dati, anche se hanno variazione minima (attività svolta in modo semplice dai meccanismi di ereditarietà e specializzazione dei linguaggi orientati agli oggetti) Fugini Impianti Como 08-09 20 10 XML Schema Definition (XSD) Il W3C ha elaborato una soluzione ai problemi delle DTD rilasciando una raccomandazione che specifica la “grammatica” di XSD Il concetto di base è che essendo XML un metalinguaggio può essere utilizzato per rappresentare altri linguaggi XSD utilizza quindi il linguaggio XML per descrivere la struttura dei dati Attraverso XSD è possibile definire qualunque struttura dati per mezzo di: Definizione di TAG e attributi Caratterizzazione del contenuto di TAG e attributi tramite tipi di dati noti Controllo del valore di eventuali nodi di tipo testo o attributo tramite espressioni regolari Fugini Impianti Como 08-09 21 Validazione e visualizzazione 4a Se il documento XML non rispetta la sintassi definita dalla DTD associata, il parser restituisce un errore ERRORI Il modulo software parser XML verifica in modo automatico la validità del documento XML 4b Documento non valido 3 Se il documento rispetta la sintassi, viene dichiarato valido 6 Il documento XML validato viene passato al processore XML/XSL che genera l’output adatto al supporto specifico Si crea un nuovo documento XML 2 Documento XML Parser XML Documento XML validato Processore XML/XSL Output per un supporto specifico 7 1 Struttura DTD Il documento XML fa riferimento ad una o più strutture DTD che ne definiscono la sintassi… Fugini Impianti Como 08-09 XML Schema … oppure ad una o più XML Schema XSL 5 XSL: linguaggio per rappresentare l’output di XML. XSL adatta il contenuto del documento XML ai diversi canali (Web, wireless, sintesi vocale, ecc.) 22 11 XML e XSL: modello di funzionamento client side server client Web browser XML XSL Connessione HTTP Web server Richiesta di doc XML Schema Documento HTML <HTML> <HEAD> </HEAD> <BODY> </BODY> </HTML> risposta XML XSL ------------------------------------------------------------------------------------------- Chiusura HTTP Fugini Impianti Como 08-09 23 XML e XSL: modello di funzionamento server side server client Web browser Documento HTML <HTML> <HEAD> <TITLE> Esempio </TITLE> </HEAD> <BODY> Testo del documento <BR> <A HREF="http://www.cp i.polimi.it/it/EBLa b/"> Visita il Centro EBLab</A> </BODY> </HTML> Connessione HTTP Web server Documento HTML richiesta <HTML> <HEAD> -------------</HEAD> <BODY> -------------------------</BODY> </HTML> risposta XML XSL Chiusura HTTP XML Schema Fugini Impianti Como 08-09 24 12 HTTP: Hypertext Transfer Protocol (1/2) La navigazione del Web segue il modello client/server. Quando l’utente specifica la stringa URL che identifica il documento, il browser diventa client di un server residente sulla macchina specificata dalla stringa L’interazione tra browser e server Web è regolata dal protocollo HTTP (Hyper Text Transport Protocol), un semplice protocollo che permette ai browser di richiedere uno specifico documento e al server web di trasmetterlo attraverso la connessione Rispetto alla suite di protocolli TCP/IP, HTTP è un protocollo applicativo Nelle versioni non recenti dell’HTTP (fino alla 1.1), la connessione fra client e server rimaneva attiva per il solo tempo necessario al trasferimento di una specifica informazione. Ogni visualizzazione di un’immagine o click su un collegamento comportava l’apertura e la chiusura di una connessione (HTTP è un protocollo “stateless”) A partire dalla versione 1.1, HTTP prevede di mantenere la connessione attiva fra Client e Server. Se il server non riceve più richieste dal browser, un timer gli ordinerà di chiudere la connessione Fugini Impianti Como 08-09 25 HTTP: Hypertext Transfer Protocol (2/2) Ogni macchina Web Server contiene, oltre all’HTML e agli altri file dei contenuti, un componente software detto HTTP daemon, progettato per aspettare le richieste HTTP e gestirle quando arrivano. Un Web Browser è un client HTTP che invia richieste alle macchine server. Quando l’utente del browser inserisce una richiesta di file, sia “aprendo” un file Web (indicando URL) sia cliccando su un collegamento ipertestuale, il browser costruisce una richiesta HTTP e la invia all’indirizzo IP specificato dall’URL L’HTTP daemon della macchina server di destinazione riceve la richiesta e, dopo averla elaborata, restituisce il file richiesto. Fugini Impianti Como 08-09 26 13 Modello del protocollo HTTP Il modello di lavoro collaborativo client/server dell’HTTP consiste nel seguire i quattro passi seguenti Connessione: il client stabilisce una connessione con il server Richiesta: il client manda un messaggio di richiesta al server Risposta: il server risponde al client con un risultato Chiusura: il client o il server chiude la connessione Connessione Web Client (Browser) Richiesta Risposta Chiusura Web Server (Server) Fugini Impianti Como 08-09 27 I cookies Tecnicamente un cookie è, nell’architettura client/server, un’informazione relativa al client, che il server colloca e conserva (attraverso un file di testo) sul client stesso per poterla recuperare durante le successive connessioni I cookies sono nati per automatizzare il login ad un sito da parte degli utenti registrati: quando un utente naviga uno di questi siti, il browser controlla che sull’hard disk sia presente il cookie relativo ad esso; in caso affermativo, lo invia al server insieme ad ogni richiesta di una pagina Web I cookies possono anche essere utilizzati per tenere traccia dei prodotti di un ordine, mentre l’utente sta inserendo oggetti nel proprio shopping basket e non ha ancora completato l’ordine; in aggiunta il cookie può contenere le informazioni relative al pagamento, facilitando la transazione I cookies possono essere usati dal server anche per tenere traccia dei movimenti dell’utente all’interno del sito, arrivando anche a delineare tutto il percorso di navigazione seguito Queste informazioni possono essere utilizzate per migliorare la struttura e la navigabilità di un sito, per ruotare i banner pubblicitari collocati nelle pagine Web inviate all’utente, per personalizzare la pubblicità stessa in base ad informazioni fornite dall’utente al sito In generale è l’utente che deve autorizzare il salvataggio di un cookie sul suo computer, anche se ciò dipende dalle impostazioni che ha scelto nel proprio browser Fugini Impianti Como 08-09 28 14 Indice dei contenuti Servizi e risorse Internet (Telnet, FTP, Posta elettronica, News, Chat, Videoconferenza World Wide Web Tecnologie per lo sviluppo di applicazioni sul WWW Web Service Fugini Impianti Como 08-09 29 Classificazione delle tecnologie per Applicazioni WEB Interattività client-side Interattività server-side • HTML • CGI • XML • Java Servlet • Applet Java • Java Server Pages (JSP) • Java Script • Active Server Pages • ActiveX • Plug-in Fugini Impianti Como 08-09 30 15 Common Gateway Interface (CGI) La Common Gateway Interface (CGI) è un sistema standard che un Web Server utilizza per passare la richiesta di un utente ad un programma e per riceverne la risposta da trasferire poi all’utente stesso Per esempio, quando una form in una pagina Web viene compilata dall’utente e inviata al Web Server, deve essere solitamente processata da un’applicazione Tipicamente, il Web Server passa le informazioni contenute nella form ad un piccolo HTML Pages CGI CGI Gateway http Web Server Web Browser programma, che ne processa i dati e che restituisce un messaggio di conferma Web Site Application CGI script Il metodo (o convenzione) per passare i dati avanti e indietro tra il Server e l’applicazione è chiamato CGI (Common Gateway Interface) ed è parte del protocollo HTTP del Web I programmi sono chiamati CGI script: ricevono l’input dal server Web, lo passano all’applicazione e restituiscono l’output Fugini Impianti Como 08-09 31 CGI: modello di funzionamento server client Web browser richiesta Documento HTML Web server <HTML> <HEAD> Documento HTML <HTML> <HEAD> <TITLE> Esempio </TITLE> </HEAD> <BODY> Testo del documento <BR> <A HREF="http://www.cp i.polimi.it/it/EBLa b/"> Visita il Centro EBLab</A> </BODY> </HTML> html risposta CGI script Write ( -------------</HEAD> <BODY> -------------------------</BODY> </HTML> CGI Gateway ) Perl Database html Fugini Impianti Como 08-09 32 16