La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 1 Tecnologie per applicazioni Web.

Presentazioni simili


Presentazione sul tema: "Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 1 Tecnologie per applicazioni Web."— Transcript della presentazione:

1 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 1 Tecnologie per applicazioni Web

2 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 2 Tecnologie per applicazioni Web Parte I: i protocolli di Internet e del Web

3 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 3 Internet: una definizione collegato da un unico spazio di indirizzi basato sul protocollo IP consente di comunicare mediante protocollo TCP/IP o sue estensioni rende accessibili, pubblicamente o privatamente, servizi basati sulla infrastruttura descritta Federal Networking Council, 24/10/1995 Sistema globale di informazione che:

4 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 4 Nella comunicazione punto a punto esiste un canale fisico dedicato Prima di Internet: comunicazione punto a punto

5 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 5 Lera di Internet: la commutazione di pacchetto Nella commutazione di pacchetto il messaggio viene diviso in atomi instradati lungo una rete di nodi

6 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 6 Ipertesti multimediali Ipertesto multimediale: un documento a lettura non sequenziale con inserti multimediale

7 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 7 Definizione di WWW Web: un sistema client-server su Internet per laccesso a ipertesti multimedialirichiesta risposta client server

8 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 8 Il protocollo TCP/IP Transfer Control Protocol / Internet Protocol Insieme di protocolli (suite) strutturati in maniera gerarchica Ogni livello della gerarchia usa i servizi forniti dal livello inferiore e offre servizi al livello superiore

9 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 9 TCP e IP Internet Protocol – –si occupa della spedizione in rete di unita di informazione (datagram) – –definisce il meccanismo di indirizzamento dei nodi di Internet (IP address) Transfer Control Protocol – –converte il flusso dati proveniente dalla applicazione in pacchetti (segment) trasmissibili in rete – –verifica integrità e correttezza dei dati trasmessi (recupero pacchetti persi, rimozione duplicati...)

10 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 10 Il protocollo HTTP HyperText Transfer Protocol Protocollo a livello di applicazione per lo scambio di ipertesti multimediali Prescrive il formato di – –nomi delle risorse (URL) – –domande – –risposte Versioni: HTTP/0.9, 1.0, 1.1 Riferimento: Tim Berners Lee, Request for Comment 1945, HTTP/1.0

11 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 11 Gli attori di HTTP cliente (browser): genera richieste di risorsecliente (browser): genera richieste di risorse (origin) server: depositario della risorsa richiesta(origin) server: depositario della risorsa richiesta

12 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 12 proxy: nodo intermedio che può fungere sia da client che da server.proxy: nodo intermedio che può fungere sia da client che da server. Intercetta le richieste e verifica se può soddisfarle da solo, altrimenti le inoltra al server. Scopi: Migliorare le performanceMigliorare le performance Filtrare le richiesteFiltrare le richieste Gli attori di HTTP

13 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 13 gateway: nodo intermedio che può agire solo da server. Intercetta le richieste, verifica se sono ammesse e le traduce $%##~^&^&$$=@@@%4$$$-]]Scopi: Traduzione tra protocolliTraduzione tra protocolli ProtezioneProtezione Gli attori di HTTP

14 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 14 Uniform Resource Locator (URL) È una stringa strutturata, ad esempio: http://www.elet.polimi.it/people/fraterna.html Protocollo: http, ma anche ftp e gopher Indirizzo della macchina: – –simbolico: www.elet.polimi.it – –numerico (IP): 131.175.21.1 – –puo includere il numero di porta (es. :8080) Path: sequenza di direttori Nome risorsa: identificativo di un file – –se la risorsa e un file html, può includere un indirizzo interno(es. fraterna.html#curriculum)

15 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 15 Formato dei documenti I documenti risiedono sul server come file e vengono inviati al client usando il campo entity-body della risposta ES: Ipertesto = file ASCII scritto secondo la sintassi HyperText Markup Language (HTML) Estensioni tipiche del file: *.html *.htm Il documento puo contenere inserti multimediali (immagini, audio, video) – –il programma client carica e visualizza il testo – –poi richiede al server i file corrispondenti agli inserti multimediali (con richieste separate)

16 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 16 Il browser HTTP Applicazione in grado di: – –accedere alla rete secondo il protocollo HTTP – –richiedere risorse identificate da un URL a un server – –interpretare e rendere a video la risposta del server

17 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 17 Il browser HTTP I diversi prodotti differenziano per: – –La versione di HTML trattata – –La capacità di trattare estensioni non standard di HTML (ad es. JavaScript, VBscript) – –La capacità di eseguire programmi (es. Java)

18 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 18 Il server HTTP Funzioni base: – –accesso alla rete secondo il protocollo HTTP – –invio di risorse identificate da un URL a un client – –controllo degli accessi – –lancio di programmi in risposta a richieste – –registrazione degli accessi (logging) Funzioni avanzate: – –monitoraggio e amministrazione – –connessione a basi di dati – –esecuzione efficiente di applicazioni esterne

19 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 19 Server HTTP: architettura base clientclient WEB server Applicazioni interfaccia di rete interfaccia applicazioni interfaccia file system Risorse

20 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 20 Tecnologie per applicazioni Web Parte II : HTML e linguaggi client- side

21 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 21Sommario Definizione di markup Breve storia di HTML HTML 3 – –Tag di formattazione del testo – –Tag di formattazione del paragrafo e del layout – –Ipertestualità e multimedialità Revisione critica di HTML 3 HTML 4 e CSS Scripting e componenti client-side

22 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 22 HyperText Markup Language Linguaggio di descrizione di testi secondo lo schema SGML (Standard General Markup Language) Marcatura:Marcatura: + marcatura <HTML><Title></Title><Body></HTML> contenuto Home Page diPieroFraternali = risultato finale

23 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 23 Concetti generali di HTML La marcatura prevede luso di etichette, dette TAGS I tag viaggiano (quasi) sempre in coppia testo Il significato di un tag può essere modificato tramite attributi testo

24 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 24 Struttura del documento File ASCII, struttura generale: intestazione + corpo Intestazione:.. contiene informazioni sul documento: titolo.. Corpo:.. contiene il testo del documento e i tag per la resa visiva

25 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 25 Formattazione del testo grassetto prova corsivo prova sottolineato prova Prova prova

26 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 26 Formattazione del testo Dimensioni: prova prova Colore: prova prova

27 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 27 Titoli titolo 1 Titolo livello 1 titolo 2 Titolo livello 2 titolo 3 Titolo livello 3 Titolo di livello1 Titolo di livello2 Titolo di livello 3

28 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 28 Paragrafi, allineamenti : paragrafi: testo vai a capo testo vai a capo prova testo formattato: prova prova

29 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 29 Collegamenti ipertestuali Esempio di collegamento : Visita la pagina di Piero Visita la pagina di Piero

30 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 30 Collegamenti ipertestuali Uso della posta: Scrivi a Piero Fraternali Scrivi a Piero Fraternali

31 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 31 Immagini Ecco la mia foto: Ecco la mia foto Foto di Piero

32 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 32 Tabelle cella 1 cella 2 cella 3 cella 4 cella 1cella 2 cella 3cella 4

33 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 33 Revisione critica Situazione – –Tag predefiniti insufficienti per le necessità grafiche e di strutturazione dei documenti – –Introduzione di nuove caratteristiche richiede lunga standardizzazione Obiettivi – –Rendere HTML estensibile in modo consistente – –Produrre documenti autodescrittivi Due linee evolutive: – –HTML: CSSL, HTML 4.0 – –XML: XSL, XLL, RDF,....

34 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 34 HTML 4 Una major revision del linguaggio Separa gli aspetti grafici dal markup strutturale Probabilmente è lultima versione di HTML Il concetto nuovo: Cascading Style Sheet (CSS)

35 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 35 Cascading Style Sheet (CSS) http://w3c.org/Style Specifica della presentazione separata dal contenuto Style Sheet: specifica testuale di regole di formattazione da applicare al testo Regola: when do Pattern: configurazione di elementi del testo Azione: produzione di sezioni di testo contenenti oggetti grafici (control flow obj.s) Migliora la resa dei documenti grazie alla presenza di oltre 60 proprietà grafiche

36 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 36 Lelemento Un elemento per descrivere regole di stile nei documenti –Esempio (nella parte head del documento): body { color: black; background: white; } Significato: una regola di formattazione: quando trovi body -> metti colore=nero e sfondo=bianco Effetto: determina lapparenza dellintero documento

37 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 37 File di stile esterni: uso di Le regole di stile possono essere applicate a più documenti Conviene definire un file separato che le contenga Tale file deve essere referenziato dal file HTML, come segue: (Sempre nella parte head del documento)

38 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 38 Esempi di proprietà definibili Margini, rientri: body { margin-left: 10%; margin-right: 10%; } body { margin-left: 10%; margin-right: 10%; } h1 { margin-left: -8%;} h2,h3,h4,h5,h6 { margin-left: -4%; } NB: il secondo esempio ha 3 regole

39 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 39 Attributo class Consente di classificare più finemente i tag HTML per applicare formati in modo selettivo Esempio di testo HTML: Getting started Regola di stile applicata solo alle occorrenze di h2 con class=subsection: h2.subsection { margin-top: 8em; margin-bottom: 3em; }

40 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 40 Formattazione di sezioni Il tag HTML può essere usato per delimitare sezioni di testo La sezione può essere classificata con lattributo class Si può così scrivere una regola che si applica solo alle sezioni volute div.box { border: solid; border-width: thin; } Si applica ad esempio a: testo da contornare con un bordo fine MORALE: ognuno può definirsi il proprio HTML!

41 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 41 Client-side scripting Obiettivo: rendere le pagine più interattive Soluzione: inserire nella pagina HTML piccoli programmi detti script Uno script reagisce a un evento prodotto dallutente e modifica il documento Due principali linguaggi di scripting client-side –VBScript (Microsoft) –Jscript (Netscape) NB: E Il browser che interpreta le istruzioni Capacità non standard fonte di incompatibilità

42 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 42 Esempio VBscript Esempio VBscript Textbox <INPUT type=textbox name=TextBox1 language=VBS size=20> Bottone <INPUT type=button value=Ciao!" language=VBS name="HelloButton" onClick="OnClick_Button"> <!-- Sub OnClick_Button TextBox1.Value=Ciao a tutti" End Sub -->

43 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 43 Esempio JavaScript function pushS() { alert("Ciao!"); } <!-- oggi = new Date() document.write("L'ora attuale è:, oggi.getHours(),":",oggi.getMinutes(), ". ") document.write(" La data di oggi è: ", oggi.getDate(),"/",oggi.getMonth() + 1,"/",oggi.getYear());// -->

44 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 44 Esempio JavaScript

45 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 45 Componenti Client-side Ulteriori capacità sono ottenute inserendo nella pagina oggetti invece che semplici procedure (contenuti tra tag ) Vari formati di componenti –ActiveX (Microsoft) –Applets e JavaBeans (Sun) Il supporto varia di browser in browser

46 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 46 Tecnologie per applicazioni Web Parte III: XML, DTD, XSD

47 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 47 XML: eXtensible Markup Language Formato di file proposto dal W3C per distribuire documenti elettronici sul World Wide Web Evoluzione: 1986: Standard Generalized Markup Language (SGML) ISO 8879-1986 Agosto 1997: XML Working Draft Dicembre 1997: XML 1.0 Proposed Recommendation Febbraio 1998: Standard

48 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 48 XML vs HTML XML non rimpiazza HTML! HTML: insieme fisso di tag XML: standard per creare linguaggi di markup con tag personalizzati (erede di SGML); possono essere usati in qualunque dominio XML e HTML sono nati con scopi diversi: XML progettato per descrivere DATI cosa sono i dati HTML progettato per visualizzare i dati come appaiono i dati

49 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 49 Uso di XML Separare i dati dal modo con cui vengono visualizzatiSeparare i dati dal modo con cui vengono visualizzati Scambiare i dati tra sistemi incompatibiliScambiare i dati tra sistemi incompatibili Scambiare informazioni in sistemi B2BScambiare informazioni in sistemi B2B Condividere datiCondividere dati Memorizzare datiMemorizzare dati Creare nuovi linguaggi (WML, MathML…)Creare nuovi linguaggi (WML, MathML…)Accessibilità: Supporto nei moderni browsers per Visualizzazione, validazione, Embedding in documenti HTML,Trasformazione con XSL, Visualizzazione con CSS è un documento di testo il software che tratta documenti testuali tratta anche XMLè un documento di testo il software che tratta documenti testuali tratta anche XML

50 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 50 Esempio di documento XML Forno 1040000 Frigo Tag con contenuti Attributi

51 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 51 Sintassi XML Tutti gli elementi hanno un tag di chiusura I tag sono case sensitive I tag devono essere annidati correttamente Un documento XML deve avere un tag radice

52 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 52 Elementi Forno 1040000 Si possono estendere Hanno relazioni (padre-figlio) Hanno contenuto

53 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 53 Attributi Forno 1040000 Gli elementi possono avere degli attributi I valori vanno racchiusi tra Differiscono dagli elementi perchè non possono contenere elementi figli

54 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 54 Namespace Metodo per evitare conflitti di nomeMetodo per evitare conflitti di nome<table><tr>...</tr></table><table><product>...</product></table> Si introduce un prefissoSi introduce un prefisso<h:table><h:tr>...</h:tr></h:table><my:table><my:product>...</my:product></my:table> Un XML namespace è una collezione di nomi (attributi, elementi,…), identificata da un URI URL HTML diventa URI (Uniform Resource Identifier) XML un documento XML può far riferimento ad oggetti diversi (DTD, documenti XML, etc.) è più importante identificare un oggetto che localizzarlo

55 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 55 Tipi di marcature Elementi: Entità: < (sta per <), ℞ (Unicode) Commenti: Istruzioni: Sezioni CDATA (character data)

56 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 56 Document Type Definition (DTD) Detta il tipo di un documento, cioè: –i tag ammessi –le regole di annidamento dei tag Scopi: –Accordarsi su formato/struttura dei documenti –Validare documenti XML secondo certe regole Esempio di dichiarazione di un elemento: Lelemento prodotto contiene al suo interno un elemento descrizione seguito da un elemento prezzo

57 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 57 Validazione di un documento XML Un documento XML la cui sintassi è corretta(cioè soddisfa le regole di scrittura di documenti XML) è detto well-formed (ben formato) Un documento validato rispetto ad un DTD è detto valid (valido)

58 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 58 Modello di contenuto Elementi contenenti elementi figli – … Elementi con PCDATA (parsed character data = brano di testo qualunque) – testo Elementi vuoti –

59 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 59 Modello di contenuto Contenuto misto – testo –.. Qualsiasi contenuto –

60 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 60 Occorrenze di un elemento 1 volta 1 o più volte 0 o più volte 0 o 1 volta

61 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 61 Esempio di DTD Forno 1040000 Frigo NOTA: un DTD NON è un documento XML

62 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 62 Dichiarazioni di attributi Per ogni elemento dice: –quali attributi può avere il tag –che valori può assumere ciascun attributo –qual è il valore di default Esempio di dichiarazione di attributo: Il tag PRODOTTO può contenere 3 attributi

63 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 63 Documenti con DTD <!DOCTYPE capitolo SYSTEM libro.dtd" [ <!ATTLIST ulink xml:link CDATA #FIXED "SIMPLE" xml-attributes CDATA #FIXED "HREF URL" URL CDATA #REQUIRED> ]>... DTD esterno DTD interno

64 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 64 XML Schema Storia: - inizialmente proposto da Microsoft - divenuto W3C recommendation (maggio 01) Scopo: definire gli elementi e la composizione di un documento XML Un XML Schema definisce regole riguardanti: –Elementi –Attributi –Gerarchia degli elementi –Sequenza di elementi figli –Cardinalità di elementi figli –Tipi di dati per elementi e attributi –Valori di default per elementi e attributi

65 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 65 Vantaggi di XML Schema rispetto a DTD XML Schema (noti anche come XSchema o XSD= XML Schema Definition): Sono estendibili (per future aggiunte) Sono anchessi files XML Sono più ricchi e completi di DTD Supportano tipi di dati Gestiscono namespaces

66 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 66 Esempio: documento XML Tove Jani Reminder this weekend! Note: 1° attributo: URI che dichiara che si vuole la validazione del documento attraverso XSD 2° attributo: dichiara dove reperire il file XSD (sempre attraverso URI)

67 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 67 Esempio: XML Schema xs: namespace per XSchema (contiene tutti i tag XSD)

68 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 68 Elementi semplici (Simple elements) Possono contenere solo testo (no elem. o attributi) Definizione di elementi semplici: Esempi di definizione di elementi semplici in XSD Esempi di elementi semplici XML 65 Rossi

69 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 69 Attributi in XSD Definizione di attributi <xs:attribute … default|fixed=xyz use=required|optional/> Esempio di definizione di attribute Esempio di attributo qwerty Valore di default o fisso Obbligatorio o opzionale

70 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 70 Elementi complessi (Complex elements) 4 tipi di elementi complessi: Vuoti (empty) Contenenti solo altri elementi Contenenti solo testo Contenenti testo e/o altri elementi Sintassi di elementi complessi:.. element content..

71 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 71 Restrizioni Restrizioni sui valori(min&max) Sullenumerazione di insiemi (set) Su lunghezza, numero di spazi, ecc: lenght, blanks, … Indicatori (Indicators) Ordinamento: Any, All, Choice, Sequence Numero di occorrenze: maxOccurs, minOccurs – –Se non specificati: 1 e 1 sola occorrenza Raggruppamento: Per definire gruppi di elementi, tra loro correlati

72 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 72 Tecnologie per applicazioni Web Parte IV: Interrogare e trasformare documenti XML

73 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 73 XQuery Proposta W3C: 15 Febbraio 2001 Interrogazioni: –Path expressions Sintassi abbreviata di XPath –Espressioni FLWR Clausole FOR, LET, WHERE, RETURN

74 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 74 Path expressions.Nodo corrente..Nodo padre del nodo corrente / nodo radice, o figlio del nodo corrente //discendente del nodo corrente @attributo del nodo corrente *qualsiasi nodo [ ]predicato [n]posizione

75 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 75 Esempi di path expressions Una path expression può iniziare con document(stringa_documento) Restituisce la radice del documento specificato A partire dalla radice del documento si possono specificare delle espressioni per estrarre il contenuto desiderato Esempio: document(libri.xml)/Elenco/Libro Restituisce linsieme di tutti i libri contenuti nellelenco che si trovano nel documento libri.xml

76 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 76 Esempi di path expressions Esempio: document(libri.xml)/Elenco/Libro[Editore=Bo mpiani AND @disponibilità=S]/Titolo Restituisce linsieme di tutti i titoli dei libri delleditore Bompiani che sono disponibili e che si trovano nel documento libri.xml Il Signore degli Anelli

77 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 77 Espressioni FLWR FOR per literazione LET per collegare variabili WHERE per esprimere predicati RETURN per generare il risultato

78 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 78 Espressioni FOR Esempio: FOR $l IN document(libri.xml)//Libro RETURN $l La clausola FOR valuta lespressione sulla destra (//Libro) che è un insieme, e itera allinterno di questo set assegnando il nodo di turno alla variabile $l Linterrogazione restituisce linsieme di tutti i libri che si trovano nel documento libri.xml Le espressioni FOR possono essere annidate

79 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 79 Espressioni LET Esempio: LET $l := document(libri.xml)//Libro RETURN $l La clausola LET valuta lespressione (//Libro) e assegna lintero insieme di libri trovati alla variabile $l Il risultato di una clausola LET produce un singolo binding per la variabile: lintero set viene assegnato alla variabile

80 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 80 Clausola WHERE La clausola WHERE esprime una condizione: solamente le tuple che soddisfano tale condizione vengono utilizzate per invocare la clausola RETURN Le condizioni nella clausola WHERE possono contenere diversi predicati connessi da AND, OR, NOT Esempio: FOR $l IN document(libri.xml)//Libro WHERE $l/Editore=Bompiani AND $l/@disponibilità=S RETURN $l Restituisce tutti i libri pubblicati da Bompiani che sono disponibili

81 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 81 Clausola RETURN Genera loutput di unespressione FLWR che può essere: –Un nodo –Un foresta ordinata di nodi –Un valore Può contenere dei costruttori di elementi, riferimenti a variabili definite nelle parti FOR e LET ed espressioni annidate F. Dürrenmatt J.R.R. Tolkien Umberto Eco F. Dürrenmatt

82 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 82 Clausola RETURN Un costruttore di elemento consiste di un tag iniziale e di un tag finale racchiudenti una lista opzionale di espressioni che determinano il contenuto dellelemento Esempio: FOR $l IN document(libri.xml)//Libro WHERE $l/Editore=Bompiani RETURN $l/Titolo nuovo elemento Il Signore degli Anelli Il nome della rosa

83 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 83 XSL Standard W3C: 16 novembre 1999 XSL = eXtensible Stylesheet Language Un foglio di stile è un file in cui sono condensate le specifiche e modalità di presentazione si può quindi separare (più o meno nettamente) la definizione dei contenuti dalla loro resa grafica

84 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 84 XSL Linguaggio per rappresentare loutput di XML formattato e per convertire un documento XML in un altro documento XML, HTML etc. Usa la notazione XML

85 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 85 XSLT XSL = XSLT + XSL FO XSLT (XSL Transformation) Trasforma un documento XML in un altro documento XML o altro tipo di documento (HTML, ecc.) Può: –aggiungere nuovi elementi; –rimuovere elementi presenti; riorganizzare gli elementi; –decidere quali visualizzare, ecc. XSL FO (Formatting Object) contiene le istruzioni per formattare loutput di un documento XML

86 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 86 XSLT Trasforma un documento XML in un altro documento XML o altro tipo di documento (HTML, ecc.) Può aggiungere nuovi elementi, rimuovere elementi presenti; può riorganizzare gli elementi, decidere quali visualizzare, ecc.

87 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 87 XSLT Utilizza Xpath per definire le parti del documento sul quale effettuare le trasformazioni Per gli elementi sui quali devono essere applicate le trasformazioni vengono definiti dei template

88 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 88 Template Per assegnare uno stile ad un particolare elemento XML oppure per applicare delle trasformazioni si usa un template nel foglio di stile Il foglio di stile può essere eseguito da un processore XSLT che scandisce il documento XML sorgente, identifica gli elementi per i quali è stato definito un template nel foglio di stile, ed effettua le azioni specificate nel template.

89 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 89 Esempio di template La clausola match definisce su quali elementi si applica il template Per ogni elemento si possono specificare più template (si applica il più specifico oppure si assegna una priorità per lapplicazione) Un template può specificare lo stile per più elementi Allinterno del template si specifica come si devono processare gli elementi figli (xsl:apply-templates) Nellesempio: gli elementi paragrafo diventano oggetti di formattazione blocco che vengono visualizzati con 10 punti e 12 punti di spazio dopo ogni blocco

90 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 90 Match Si possono specificare gli elementi figli da processare utilizzando i seguenti simboli: | operatore or. Elemento corrente // discendenti / figlio.. Padre @ identifica un attributo first-of-any(), first-of-type(), last-of-any(), last-of- type()

91 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 91 Struttura di un documento XSL xsl:stylesheet template per il documento (template per un elemento figlio)* azione sul documento azione sullelemento figlio [azione] [azione] [azione]...

92 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 92 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> Elenco libri … Creare un documento HTML

93 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 93 Trasformazione Il Signore degli Anelli J.R.R. Tolkien 2002 88-452-9005-0 Bompiani Il nome della rosa Umberto Eco 1987 55-344-2345-1 Bompiani Il sospetto F. Dürrenmatt 1990 88-07-81133-2 Feltrinelli Book Catalogue Il Signore degli Anelli J.R.R. Tolkien 2002 88-452-9005-0 Bompiani Il nome della rosa Umberto Eco 1987 55-344-2345-1 Bompiani Il sospetto F. Dürrenmatt 1990 88-07-81133-2 Feltrinelli

94 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 94 Trasformazione XML-XML <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

95 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 95 Trasformazione XML-XML Il Signore degli Anelli J.R.R. Tolkien 2002 88-452-9005-0 Bompiani Il nome della rosa Umberto Eco 1987 55-344-2345-1 Bompiani Il sospetto F. Dürrenmatt 1990 88-07-81133-2 Feltrinelli Il Signore degli Anelli Bompiani Il nome della rosa Il sospetto Feltrinelli Il nuovo elenco per ogni libro contiene solo il loro titolo e, se questo è disponibile, anche la sua casa editrice.

96 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 96 Associare un foglio di stile ad un documento XML <?xml-stylesheet type=text/xsl href=file://localhost/EsempiXML-XSL/libri.xsl?> <!DOCTYPE Elenco SYSTEM "file://localhost/EsempiXML-XSL/libri.dtd"> Il Signore degli Anelli J.R.R. Tolkien 2002 88-452-9005-0 Bompiani …

97 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 97 Tecnologie per applicazioni Web Parte V: Architetture per la pubblicazione dinamica di contenuti

98 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 98 Motivazioni Produrre pagine al volo in base alle esigenze dellutente e da contenuti strutturati (p.e. database) Scripting & componenti client-side non bastano Soluzioni: –Architetture per produrre contenuti dinamici a lato-server

99 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 99 Common Gateway Interface Interfaccia che consente al Web Server di eseguire applicazioni esterne in grado di creare pagine dinamicamente

100 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 100 Caratteristiche di CGI Non è: un linguaggio di programmazione un protocollo di comunicazione Definisce solo un insieme di variabili di ambiente utili alla applicazione (ad es. parametri inviati dal client) %&£$$ pp*&£$

101 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 101Invocazione Il cliente specifica nellURL il nome del programma da eseguire Il programma deve stare in una posizione precisa (di solito il direttorio cgi-bin) http://mio.server.web/cgi-bin/xyz.exe root cgi-bin xyz.exe

102 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 102 Esecuzione 1. 1. Il server riconosce dallURl che la risorsa richiesta dal cliente e un eseguibile http://mio.server.web/cgi-bin/xyz.exe

103 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 103Esecuzione 2. 2. Il server decodifica i parametri inviati dal cliente e riempie le variabili dambiente es: request_method, query_string, content_length, content_type http://mio.server.web/cgi-bin/xyz.exe?#^@@ #^@@ P$&*£

104 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 104 Esecuzione 3. 3. Il server lancia in esecuzione lapplicazione richiesta #^@@ P$&*£

105 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 105 Esecuzione 4. 4. Lapplicazione stampa la sua risposta sullo standard output

106 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 106 Esecuzione 5. 5. Il server ridireziona lo standard output sulla rete e quindi verso il client

107 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 107 Invio di parametri a un programma CGI Il client può usare due metodi: GET POST GET: i parametri sono codificati nellURL http://www.mioserver.it/cgi-bin/xyz?par=val POST : i parametri sono spediti al server separatamente, usando il body del messaggio di richiesta HTTP NB: il metodo POST richiede luso di un costrutto HTML chiamato FORM

108 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 108 Form HTML Esempio: invio al server il nome dellutente <form action=http://www.mysrvr.it/cgi-bin/xyz.exe method=post> Dimmi il tuo nome:

109 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 109 Form HTML

110 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 110 Struttura di un programma CGI leggi le variabili dambiente leggi le variabili dambiente stampa codice HTML stampa codice HTML elabora stampa intestazione MIME stampa intestazione MIME Content-type: text/html

111 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 111 Decodifica dei parametri leggi la variabile Request_method leggi la variabile Request_method leggi la variabile Query_string leggi la variabile Query_string GET leggi la variabile content_length leggi la variabile content_length leggi content_length caratteri da standard input leggi content_length caratteri da standard input POST Valore?

112 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 112 Revisione critica di HTTP HTTP non prevede metodi per identificare lutente Ogni richiesta è trattata come un evento isolato: una nuova richiesta non ricorda nulla della precedente Non esiste il concetto di sessione interattiva dellutente: impossibile fare applicazioni personalizzate Il web server genera un nuovo processo cgi ad ogni richiesta: viene terminato alla fine del computo della risposta: no sessione utente e condivisione risorse Altissimo sovraccarico di esecuzione per la creazione e distruzione di processi Revisione critica di CGI

113 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 113 Obiettivi delle architetture server side Migliori prestazioni: creare processi solo in fase di inizializzazione del sistema e riusare un pool di processi pronti Mantenimento dello stato: sfruttare la persistenza del processo per mantenere informazioni sulla sessione dellutente (stateful application) Condivisione delle risorse: mantenere allocate le risorse condivise Scalabilità: aumentare il numero di processi applicativi allaumentare del traffico

114 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 114 Architetture application serverClient Webserver Applicationserver Applicazioni Base di dati App.Servers

115 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 115 Java Servlet http://java.sun.com/products/servlet/index.html Servlet container: un programma Java che fornisce un ambiente persistente di esecuzione per applicazioni Web ed espone le caratteristiche del Web server come oggetti Java Servlet: lanalogo di uno script CGI nel mondo Java HTTP Request HTTP Response Browser Servlet container Applicazioni (servlets) JVM parametri risposta

116 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 116 Valutazione Astrazione object-oriented delle proprietà di un server HTTP esteso (request, response, session ecc) Programmazione complessa perchè bisogna produrre sia il testo statico che i contenuti dinamici La presentazione HTML è mescolata al codice applicativo Esigenza: serve una soluzione più semplice per produrre pagine in modo dinamico a lato server

117 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 117 Server-side scripting Idea: inserire istruzioni per il calcolo dei contenuti dinamici allinterno della pagina HTML Il codice è interpretato dal server Il browser riceve HTML puro <HTML><BODY> …. ….</BODY></HTML> <HTML>….</HTML><%>…...</%> Template: testo+script da interpretare sul server Web server + Esecutore script

118 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 118 JSP è una architettura per server-side scripting proposta da Sun (come alternativa a ASP di Microsoft) Si fonda su tecnologia Java: linguaggio Java, Java Servlet, Java Beans Cronologia: Proposta presentata a JavaOne 98 Versione 0.92: revisione pubblica conclusa a Genn. 99 Versione 1.0 disponibile 1Q 99 Versione 1.1 disponibile 1Q 00 Versione 1.2 in uso da ottobre 2001 Java Server Pages (JSP)

119 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 119 l l Un file.asp contiene una combinazione di: o o Testo o o Tag HTML o o Istruzioni di server-side scripting l l E necessario disporre di un ambiente di compilazione apposito (ad es. Tomcat di Apache Jakarta) File JSP

120 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 120 Procedure ed espressioni lScriptlets l procedure racchiuse tra delimitatori ( ) scritte in Java l Espressioni l Unespressione ha la forma: La variabile viene valutata e il valore risultante, convertito in stringa, viene inserito nella pagina al posto dellespressione

121 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 121 l l Direttive: l l il tipo di linguaggio da utilizzare allinterno del file JSP ( ) l l il file.jsp o.html che viene ritornato al client se lesecuzione della pagina JSP restituisce un errore ( ) l l i moduli (packages) importati dagli oggetti usati nella pagina ( ) Direttive

122 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 122 Esempio Request Information Example Request Information Example Method: Request URI: User Agent: Risultato: la stessa pagina computata dal servlet mostrato in precedenza

123 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 123 Il file JSP viene prima tradotto in un servlet Il servlet viene compilato in bytecode La versione compilata viene tenuta in memoria per rendere più veloce una successiva richiesta della pagina NB: La versione originaria di Microsoft ASP (non ASP.NET) non compilava i template Compilazione

124 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 124 l l Indipendenza dal tipo di browser utilizzato o o Il browser vede solamente pagine HTML o o Allutente non sono necessari programmi proprietari o estensioni del browser l l Maggior facilità di apprendimento e utilizzo rispetto a servlet l l Oggetti di utilità l l Nasconde la presenza di programmi script agli utenti e ad eventuali hacker l l Resta però codice (anche se poco) frammisto a markup HTML Valutazione

125 Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 125 l l Obiettivo: togliere il codice dai template di pagina l l Soluzione: nascondere il codice dietro tag magici, eseguiti dal server Tag eseguiti a lato server Esempio di tag iteratore


Scaricare ppt "Corso ICT: SI per la multimedialità Ceri et alii: Dati ed Applicazioni per il Web Mc Graw Hill 1 Tecnologie per applicazioni Web."

Presentazioni simili


Annunci Google