Web applications (WA)



Похожие документы
Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Siti web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications)

Protocolli e architetture per WIS

Siti interattivi e dinamici. in poche pagine

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Componenti Web: client-side e server-side

Corso basi di dati Introduzione alle ASP

Implementazione di MVC. Gabriele Pellegrinetti

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Architetture Web: un ripasso

Esercizi di JavaScript

Corso di Informatica Modulo T3 B1 Programmazione web

Flavio De Paoli

Database e reti. Piero Gallo Pasquale Sirsi

extensible Markup Language

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Introduzione all elaborazione di database nel Web

Come funziona internet

Sito web parrocchiale: STRUMENTI E PROGRAMMI

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Simple & Efficient.

DBMS e Linguaggi di programmazione nell'era di Internet

19. LA PROGRAMMAZIONE LATO SERVER

sito web sito Internet

venerdì 31 gennaio 2014 Programmazione Web

Protezione delle informazioni in SMart esolutions

Capitolo 4 Pianificazione e Sviluppo di Web Part

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi

Sicurezza dei file Le protezioni nei programmi

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione" - lezione 13 -

Corso di PHP. Prerequisiti. 1 - Introduzione

Volumi di riferimento

ISTITUTO TECNICO ECONOMICO MOSSOTTI

1) GESTIONE DELLE POSTAZIONI REMOTE

Ipertesto. Reti e Web. Ipertesto. Ipertesto. Ipertestualità e multimedialità

Architetture Web I Server Web e gli Standard della Comunicazione

I.T.C. Mario Pagano Napoli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Corso Creare Siti WEB

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Il seguente Syllabus è relativo al Modulo 7, Reti informatiche, e fornisce i fondamenti per il test di tipo pratico relativo a questo modulo

Cosa è un foglio elettronico

Allegato 3 Sistema per l interscambio dei dati (SID)

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Indice PARTE PRIMA L INIZIO 1

Lezione 9. Applicazioni tradizionali

Protocolli applicativi: FTP

Concetti base. Impianti Informatici. Web application

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

La realizzazione di WebGis con strumenti "Open Source".

EXPLOit Content Management Data Base per documenti SGML/XML

Corso Web programming

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Modulo 1: Posta elettronica

Corso di Web Programming

la tua presenza e il tuo BUSINESS ON-LINE

Estensioni e modelli. Ancora poco conosciuti, consentono di estendere la suite per l ufficio. Ecco come servirsene

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

L evoluzione delle Applicazioni Distribuite

Manuali.net. Nevio Martini

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

InterNet: rete di reti

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

Architetture Web I Server Web e gli Standard della Comunicazione

Linee guida per lo sviluppo di applicazioni web

EyesDGTV. Your digital terrestrial television. Soluzioni Informatiche

ESERCITAZIONE Semplice creazione di un sito Internet

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Access. P a r t e p r i m a

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Corso di Informatica Modulo T3 B2 - Database in rete

Lezione II: Web server e ambiente di lavoro

Reti di Telecomunicazione Lezione 6

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1

Linguaggi per il web oltre HTML: XML

La sicurezza nel Web

DESY è un prodotto ideato e sviluppato da

Транскрипт:

Web applications (WA) Web application workflow Tutte le WA fanno all incirca le stesse cose Trasmettono al web server i dati Eseguono l elaborazione dei dati sul lato server (server-side processing) Formattano i risultati per il client Trasmettono al client i risultati 2

Web application workflow L utente L utentedefinisce una unaquery tramite tramite la la query query interface interface La La query query e e inviata inviataal al lato lato server server L agente L agenterisponde alla allaquery utilizzando utilizzandola la sorgente sorgentedei deidati dati Utente Utente Browser (clien-side itf) itf) Server-side processing Data Data source source I I risultati risultativengono mostrati mostrati I I risultati risultatisono sono formattati formattatie e inviati inviati al al client client La La sorgente sorgente dei dei dati dati restituisce restituisce il il risultato risultato della della query query 3 Web application technologies Browser (IE, Mozilla) Javascript, Java VBScript,ActiveX HTML forms Image MAP Cookies HTTP post/get Utente Utente Browser (clien-side itf) itf) Server-side processing Data Data source source Web server (Apache) Server-side script (PHP, Perl, ASP, JSP) Application server (Servlet/EJB container) CGI SQL ODBC driver DB 4

Esempio: interfaccia con DB Le pagine Web sono create al volo da un programma che invia delle query al database e produce un documento HTML in base ai risultati della query 5 WA innovation Static web Web of hypertext files with static content and fixed connections (links) Customized web Il contenuto dipende dall utente e dalle sue preferenze (sessioni) Dynamic web Il contenuto fornito dipende dall interazione con l utente (forms) 6

WA benefits Standardized technologies Integration of heterogeneous platforms User-friendly Lots of tech to pick Choose the right one! 7 3 componenti dell architettura Interfaccia utente (User Interface) obiettivo: presentare le informazioni all utente Gestore della logica (Processing Management) obiettivo: controllare l esecuzione delle elaborazioni Gestore dei dati (Data Management) obiettivo: consentire l accesso ai dati 8

Componenti e livelli Tre componenti: presentazione, logica e dati Due livelli: client e server (anche di piu ) Qual è la corrispondenza? client server 9 Classificazione client presentazione logica dati server es: elaboratore locale sistema indipendente presentazione logica dati es: database distribuito dati sistema a dati distribuiti presentazione logica es: file system condiviso dati sistema a dati remoti 10

Classificazione client presentazione logica es: Web server logica dati sistema a transazioni distribuite presentazione es: emulazione di terminale logica dati sistema a presentazione remota presentazione es: GUI alternativa presentazione logica dati sistema a presentazione distribuita 11 Structure of WA systems Light client (presentation only) Web browser Few processing power Web interface Web server as the middle tier Server-side scripting engine Back end DBs, TPS, 12

Tecnologie e strumenti Centinaia di tecnologie e strumenti per lo sviluppo di applicazioni Web, che però ricadono in 4 categorie Display layer Communication layer Middleware layer Data layer 13 Tecnologie e strumenti Data Layer Middleware Layer Communication Layer Display Layer Utente 14

Quadro di riferimento 15 Display layer

Display layer Detto anche "font-end" Interfaccia fra l utente e il calcolatore Compito tradurre intenzioni, desideri, necessità, richieste dell'utente in istruzioni comprensibili dal calcolatore tradurre i dati generati dal calcolatore in informazioni comprensibili all utente 17 Display layer Creazione e modifica di UI widgets, o controlli bottoni, menu, finestre di dialogo, immagini cliccabili,... Parole chiave: intuitività e facilità d uso fondamentali per la qualità percepita dall utente 18

Tecnologie Quelle che consentono di creare interfacce basate su widgets 19 Form I form HTML sono un esempio di widget consentono di definire formati standard di input (test box, bottoni, menu, quiz,...) 20

Cookie I cookie sono dei piccoli file di testo che servono per memorizzare piccole quantità di informazioni sul computer dell utente possono essere letti soltanto dal sito di origine mantengono lo stato dell applicazione: HTTP è un protocollo stateless (che non conserva lo stato) Questo è quanto può fare il Web browser per andare oltre: plug-in 21 Plug-in Ai browser Web sono richieste sempre nuove caratteristiche supporto alla visualizzazione di audio, video, animazioni, interattività,... Browser più potenti? Meglio di no meglio leggeri perché siano veloci necessario un aggiornamento continuo Soluzione: plug-in aggiunta di nuove componenti, di dimensioni ridotte, solo quando richiesto 22

Java Linguaggio di programmazione sviluppato dalla Sun Microsystems nel 1991 Nasce come plug-in, ma è ben presto integrato nei browser Ritorna ad essere un plug-in Java Virtual Machine interpreta il codice Java (applet) scaricato dal Web server Libreria di widget estremamente completa 23 JavaScript Linguaggio di script sviluppato da Netscape Il codice JavaScript è parte integrante del documento HTML E interpretato dal browser (client), non richiede programmazione sul lato server Permette al client di intraprendere azioni direttamente senza passare dalla rete Consente la creazione di widgets Check dei forms 24

VBScript Risposta di Microsoft a JavaScript inizialmente Microsoft aveva sviluppato JScript, poi in gran parte abbandonato in favore di VBScript Linguaggio di script basato su Visual Basic 25 DHTML Dynamic HTML, consente di combinare l'html con i fogli stile (CSS, Cascading Style Sheets) e con i linguaggi di script I fogli di stile (Style Sheet) consentono di controllare la visualizzazione di un documento Web senza comprometterne la struttura font, colori, margini,... 26

Communication layer Communication layer Trasferire i dati inseriti dall utente dal browser Web al Web server L informazione deve essere trasferita interamente, correttamente, e nella sequenza in cui è stata inserita In più l informazione può (o deve) essere trasferita in modo sicuro nessuno deve poterla leggere, modificare, o spacciarsi come autore 28

Communication layer Molte tecnologie Problema: la comunicazion e deve essere garantita fra tipi di calcolatori e di programmi diversi 29 I protocolli Standard di comunicazione estremamente rigorosi che garantiscono il dialogo fra calcolatori e programmi diversi Protocollo TCP/IP (Transmission Control Protocol / Internet Protocol) insieme (suite) di protocolli alla base di Internet gestisce la comunicazione fra i nodi di una rete 30

I protocolli Protocollo HTTP (Hypertext Protocol) protocollo utilizzato dai browser e dai server Web per scambiarsi informazioni protocollo privo di stato (stateless), di tipo richiesta/risposta che gestisce il trasporto ed il mantenimento dell integrità dei documenti multimediali Protocollo HTTPS (HTTP sicuro) versione di HTTP che utilizza la comunicazione criptata 31 La crittografia È il metodo più diffuso per proteggere i dati I dati vengono alterati tramite una formula matematica prima di essere trasmessi, in modo da essere illeggibili I dati originali possono essere recuperati applicando la formula matematica inversa 32

La crittografia Due tipi di crittografia Crittografia a chiave segreta simmetrica mittente e ricevente hanno la stessa chiave per codificare/decodificare i dati problema: trasmettere la chiave segreta Crittografia a chiave pubblica e privata asimmetrica due chiavi, una privata e una pubblica 33 Crittografia asimmetrica Coppia di chiavi, una privata (mai trasmessa) ed una pubblica (trasmessa a tutti) i testi codificati con la chiave pubblica possono essere decodificati con la chiave privata: messaggi protetti i testi codificati con la chiave privata possono essere decodificati con la chiave pubblica: certificazione del mittente, firma digitale 34

Crittografia asimmetrica A Chiave privata Chiave pubblica B Chiave privata Testo criptato Chiave pubblica + Testo originale 35 Crittografia asimmetrica A Chiave privata + Testo criptato = Testo originale B Chiave pubblica 36

Crittografia asimmetrica A Chiave privata + Testo originale Testo "certificato" B Chiave pubblica 37 Crittografia asimmetrica A Chiave privata B Chiave pubblica + Testo "certificato" = Testo originale che proviene da A 38

Middleware layer Middleware layer Nel 99,9% delle applicazioni Web, il browser Web si connette ad un Web server Il Web server è il punto di ingresso del Middleware Layer Scopo: accettare le richieste in arrivo ed elaborarle, utilizzando le risorse fornite dal Web server o dalla rete di server e di risorse a cui il Web server è connesso 40

Middleware layer SOAP 41 CGI Common Gateway Interface Strumento di base per accedere alle risorse del Web server Servizio fornito da tutti i Web server che consente di Creare uno script eseguibile che il Web server può richiamare su richiesta Trasferire dati allo script Ottenere il risultato dello script (e.g. pagina) 42

CGI CGI non è un linguaggio di programmazione, ma un interfaccia standard per accedere alle risorse Definisce un modo di far dialogare il Web server con le risorse Le applicazioni CGI possono essere scritte in un qualunque linguaggio di programmazione C, Perl, Python 43 HTML vs. CGI Differenza chiave: è possibile generare le informazioni dinamicamente documento HTML browser Web (client) server Web script CGI applicazione 44

CGI 45 SSI Problema degli script CGI e la velocità di esecuzione Ogni volta che il Web server riceve una richiesta deve eseguire lo script CGI Soluzione: estendere le funzionalità del Web server, aggiungendo capacità logiche e di elaborazione Server Side Includes La prima delle tecnologie sviluppate in questa direzione 46

SSI Tag particolari sono inseriti nel documento HTML Il server Web è in grado di interpretare questi tag, e di tradurli al volo mentre il documento HTML viene trasferito al browser 47 SSI Nel documento HTML vengono inserite delle direttive SSI 48

SSI e tag proprietari Partendo dall idea di SSI alcune aziende hanno sviluppato dei Web server dotati di moltissime funzionalità per rendere le pagine dinamiche es: Cold Fusion (la più conosciuta, oltre 70 tag custom definiti), Net Objects 49 ASP Active Server Pages La tecnologia SSI è limitata all insieme di comandi/tag offerti da chi ha implementato il Web server SSI-enabled Come inserire in una pagina HTML del codice che su richiesta venga interpretato dinamicamente dal Web Server? Per questo è nata la tecnologia ASP PHP JSP 50

ASP ASP è un estensione dell IIS Web server rilasciata da Microsoft Anche il Web server Apache ha un estensione che permette di utilizzare la tecnologia ASP Consente di inserire script in VBScript (o JavaScript) 51 ASP Un pagina ASP è semplicemente un file di testo con estensione.asp che contiene codice HTML e script Gli script sono interpretati dinamicamente prima che le pagine vengano trasmesse al browser per la visualizzazione Come tutte le tecnologie del lato server (server-side) le funzionalità sono compatibili con qualunque browser L'elaborazione è fatta dal server, e il risultato è visualizzato come semplice HTML 52

Java server-side Alternativa alle tecnologie CGI o ASP Si puo utilizzare la libreria Java Due tecnologie legate a Java Java Server Pages (JSP): simile ad ASP (scriptlet e expression) con script in Java Java Servlet: simile a CGI, ma scritti in Java e supporto per sessioni ad alto livello 53 Data layer

Data layer I dati sono un elemento fondamentale delle applicazioni Web Caratteristiche dei dati Valore (bit), un tipo (as int), una struttura (record) Presentazione Le tecnologie del Data layer hanno lo scopo di standardizzare queste caratteristiche 55 Data layer 56

XML extensible Markup Language Linguaggio estensibile realizzato per elaborare i documenti strutturati Pensato per il Web e per superare i limiti dell HTML HTML è un linguaggio predefinito XML è un meta-linguaggio Non ha tag predefiniti Consente di definire nuovi linguaggi 57 Le componenti di XML Tre parti fondamentali di un documento che dovrebbero essere gestite separatamente Il contenuto (XML) La specifiche della struttura Document Type Definition (DTD) XML Schema Definition (XSD) Le specifiche relative allo stile di visualizzazione XML Stilesheet Language (XSL) 58

Le componenti di XML Contenuto Struttura Stile 59 Esempio di struttura CarOwners Owner Owner Car Car Model Year 60

Esempio di struttura (DTD) <?xml version="1.0" encoding="utf-8"?> <!ELEMENT CarOwners (Owner)*> <!ELEMENT Owner (Car)+> <!ATTLIST Owner id CDATA #REQUIRED first CDATA #REQUIRED last CDATA #REQUIRED > <!ELEMENT Car (Model,Year)> <!ELEMENT Model (#PCDATA)> <!ELEMENT Year (#PCDATA)> 61 Esempio di struttura (XSD) <xsd:element name="carowners"> <xsd:complextype> <xsd:sequence minoccurs="0" maxoccurs="unbounded"> <xsd:element name="owner"> <xsd:complextype> <xsd:sequence maxoccurs="unbounded"> <xsd:element name="car /> </xsd:sequence> <xsd:attribute name="id" type="xsd:string use="required"/> </xsd:complextype> 62

Esempio di contenuto (XML) <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet href="table.xsl"?> <!DOCTYPE CarOwners SYSTEM "cars.dtd"> <CarOwners> <Owner id="1" first="pippo" last="baudo"> <Car> <Model>Audi 80</Model> <Year>1999</Year> </Car> </Owner> </CarOwners> 63 Esempio di stile (XSL) <?xml version="1.0" encoding="utf-8"?> <xsl:template match="/"> <html> <head><title>cars DB</title></head> <body> <h1>owners</h1> <table border="1"> <xsl:for-each select="carowners/owner"> <tr> <td><xsl:value-of select="@id"/></td> <td><xsl:value-of select="@first"/></td> <td><xsl:value-of select="@last"/></td> </tr> </xsl:for-each> </table> 64

Esempio XML DTD XSD Contenuto e Struttura XML Processor XSL Stile Visualizzazione HTML WML SQL 65