1 web information systems prof. barbara pernici politecnico di milano parte del materiale e’ stata...
Post on 02-May-2015
217 Views
Preview:
TRANSCRIPT
1
Web
Information Systems
Prof. Barbara Pernici
Politecnico di Milanoparte del materiale e’ stata gentilmente fornita dal Prof. Paraboschi
2
Sommario
• Servizi elettronici in rete
• Web Information Systems
• Architetture a tre livelli (3-tier)
• Interazione web-DB
3
Obiettivi (1)
• I sistemi informativi in rete: – Internet e i sistemi informativi: struttura di
un sistema informativo basato su Web, tipologie di sistemi informativi basati su Web, servizi offerti dai sistemi informativi in rete
– Introduzione alla tecnologia Web
4
Obiettivi (2)
• I sistemi informativi come impianti– Tecnologie utilizzate nelle reti– Tecnologie per lo scambio dei dati nei
sistemi distribuiti
Nella parte finale del corso:– Sicurezza: accessi autorizzati, integrita’ e
autenticita’ dei dati– Progettazione di sistemi informativi sicuri
5
Bibliografia
• Conallen: cap. 2
• Serie Sistemi Informativi Vol. V – Cap. 1: architetture
• Lucidi (in rete)
• Basi di Dati (Atzeni, Ceri, Paraboschi, Torlone)– Cap. 14
6
Introduzione
• Servizi elettronici in rete:– Classificazione UE– Livelli di interazione– Classificazione dei siti web
7
Dimensioni per la classificazione
• Servizi offerti
• A chi e’ rivolto – esterno/interno/altro– utente singolo (Customer)/impresa
(Business)/PA (Government)/…
• Come vengono presentati i servizi e le informazioni (aggregazione)
8
Tipologie di servizi elettronici(dal Libro verde UE)
• Servizi di informazione– per la fornitura su richiesta di informazioni
strutturate e classificate
• Servizi di comunicazione– per interagire con il pubblico ovvero gruppi di
individui
• Servizi transazionali– per acquistare prodotti o servizi on line o per
trasmettere dati
9
Tipologia dei servizi elettronici - informativi
• informazioni• link a altre risorse informative• Su web:
– accesso a pagine statiche (file) o pagine dinamiche ottenute tramite interrogazioni a basi di dati
– personalizzazioni: presentazione di informazioni personalizzata
• Tramite cookie• Accesso registrato
– l’utente non inserisce contenuto informativo nel sistema
10
Tipologia dei servizi elettronici - comunicazione
• Servizi di interazione– basati su e-mail, liste di discussione, chat,
form per inserimento richieste, ..
• L’utente e’ identificato (identita’ reale o fittizia)
• le comunicazioni dell’utente possono rimanere memorizzate
11
• Interazione con il sistema informativo• l’utente (identificato) ottiene servizi,
modicando dati nel sistema informativo• interazione con dati in DBMS e servizi
applicativi• server per DB e application server• criticita’: sicurezza• transazioni multicanale
Tipologia dei servizi elettronici - transazionali
12
Livelli di interazione UE
• Livello 1: disponibili on-line informazioni sulle procedure
• Livello 2: interazione in un senso (download modulistica)
• Livello 3: interazione in due sensi (possibilita’ di avviare on-line la procedura, con modulo elettronico e autenticazione utente)
• Livello 4: esecuzione on-line dell’intera procedura (incluso pagamento)
13
Altra classificazione: per accesso
• Sito Internet: accessibile da tutta la rete• Sito Intranet: accesso limitato dall’interno
dell’organizzazione– Knowledge management, gestione delle
conoscenze sui processi aziendali
• Sito Extranet: accessibile da un gruppo di utenti ben identificato (ad es. clienti e fornitori)– Scambio di informazioni concordate tramite accesso
a archivi (ad esempio rendere visibili I livelli delle scorte in magazzino)
14
Confronto tra Intranet e Internet
• Esempio: ComuneSito Internet Intranet del
Comune
Utenti Noti con approssimazione
Dipendenti del comune
Compiti Informativo, servizi ai cittadini
Uso quotidiano per il lavoro, gestione dei processi
Larghezza di banda bassa Alta, affidabile
Compatibilita’ diversi browser, accessibilita’
Scelta a priori del browser
Quantita’ informazioni
Poche e in tempi rapidissimi
Quantita’ elevate, per gestione processi operativi
15
Servizi di una Intranet
• Serve a distribuire informazioni all’interno dell’azienda:– News– Interfaccia di ricerca, su contenuti noti– Catalogo dei contenuti
• Sicurezza (riservatezza, accesso limitato)• Integrazione: accesso a informazioni (documenti e
dati da DB) e accesso a servizi• Collaborazione: tra reparti, partecipazione al
processo decisionale, visualizzazione documenti, dibattiti in linea
16
Classificazioni di servizi on line
• Business to Consumer B2C– varianti: G2C (Government to Citizen) etc.– servizi operativi per clienti
• Business to Business B2B– varianti: G2G (Government to Government)– servizi operativi tra aziende– evoluzione EDI
17
Sistema informativo distribuito
• Un sistema informativo in una organizzazione e’ un sistema complesso:– più sorgenti informative– più basi di dati– Collegamenti in rete con reti locali e
geografiche– processi interconnessi
18
RETE GEOGRAFICA
MF
DOGANE (420)UFFICI ENTRATE (430)
AGENZIE CENTRALI
INTERNETRUPA
Altri enti
MINISTERO DELLE FINANZE
firewall
19
Architettura di un sistema informativo distribuito
• Come scambiare i dati tra sistemi diversi:– Quali sono i principali problemi da
risolvere:• Separazione tra dati, logica applicativa e
presentazione• Sicurezza
20
Sviluppo a tre livelli
CLIENT CLIENT CLIENT
SERVER SERVER
DB
Presentazione (P)
Logica applicativa (A)
Dati (D)
21
Architetture multilivello
• Divide-and-conquer strategy– Separare in sottoproblemi
• Sistema complesso– Difficolta’ di gestione– Utilizzo risorse– Diverse piattaforme (SO, sw, hw)
22
B.I. Iva
presentazione dati
applicazione
ambiente Iva
presentazione dati
applicazione
presentazione dati
applicazione
ambiente IIDD ambiente Registro
B.I. IIDD B.I. Registro
Rete GeograficaMdF
uffici
MIDDLEWARE
MIDDLEWARE
Sistema Esterno
BD IVABD
DOGANE
BD REGISTRO E IMPOSTE
(sistemi centrali)
ESEMPIO (MF)
23
Tecnologie Web
• Pagine statiche e pagine dinamiche
• Architetture web:– CGI– Form– Progettazione con Form– Interazione con DB– Architetture complesse
24
Architettura di base
BROWSER WEB SERVER
LOCAL FILE
SYSTEM
25
GATEWAY
• I server Web possono richiamare programmi– trasmettendo anche eventuali parametri
• collegamento tra ambiente web e altri ambienti
• chiamata dei programmi: – http– URL (URI)– eventuali parametri
26
Web server e file
Web server
FILE SYSTEM - pagine statiche
A.html
B.html C.html
D.html
Cgi-bin
Xyz.exe abc.exe
Pagine eseguibili
CGICGI
HTTPWeb client
(browser)
27
CCommon ommon GGateway ateway IInterfacenterface
• Meccanismo che consente al Web Server Meccanismo che consente al Web Server di eseguire applicazioni esterne in grado di eseguire applicazioni esterne in grado di creare pagine di creare pagine dinamicamentedinamicamente
28
Caratteristiche di CGI Caratteristiche di CGI • Non e’: Non e’:
•un linguaggio di programmazioneun linguaggio di programmazione•un protocollo di comunicazioneun protocollo di comunicazione
• Definisce solo un insieme di Definisce solo un insieme di variabili di variabili di ambienteambiente utili alla applicazione (ad es. utili alla applicazione (ad es. parametri inviati dal client)parametri inviati dal client)
%&£$$pp*&£$
29
EsecuzioneEsecuzione
1.1. Il server riconosce dall’URl che la risorsa richiesta dal cliente e’ un eseguibile
http://mio.server.web/cgi-bin/xyz.exe
30
EsecuzioneEsecuzione2.2. Il server decodifica i parametri inviati dal cliente e riempie le variabili d’ambiente
es: request_method, query_string, content_length, content_type
http://mio.server.web/cgi-bin/xyz.exe?#^@@
#^@@
31
EsecuzioneEsecuzione
3.3. Il server lancia in esecuzione l’applicazione richiesta
#^@@
32
EsecuzioneEsecuzione
4.4. L L’applicazione stampa la sua risposta sullo standard output(la risposta puo’ essere una pagina web o di altro tipo - il tipo e’ dichiarato nella risposta)
33
EsecuzioneEsecuzione
5.5. Il server ridireziona lo standard output sulla rete e quindi verso il client
34
Invio di parametri a un programma Invio di parametri a un programma CGICGI
• Il client puo’ usare due metodi:•GET•POST
•GET: i parametri sono codificati nell’URLhttp://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 l’uso di un costrutto HTML chiamato FORM
35
Form (moduli)• Input dall’utente• Come:
con parametri (<INPUT type=“tipoparam”):– text boxes (text)– buttons (submit, reset)– radio buttons (radio)– password (password)– hidden (valore fisso, non visibile all’utente)
• i parametri hanno un nome a cui si associa un valore compilando la form
• submit: si invia il contenuto del modulo al server come parte di un’altra richiesta http di una pagina speciale (eseguibile)
36
FORM HTMLFORM HTMLEsempio: invio al server il nome dell’utente
<html><body> <form action=http://www.mysrvr.it/cgi-bin/xyz.exe method=post><p>Dimmi il tuo nome: <input type=“text” name=“chisei” ></p><input type="submit" value ="Invia query"> </form> </body> </html>
37
FORM HTMLFORM HTML
38
FORM HTML<HTML>
<BODY>
<form action=http://www.mysrvr.it/cgi-bin/xyz.exe
method=post>
<p>Dimmi il tuo nome:
<input type="text" name=“chisei” ></p>
<input type="hidden" name=“sessione” value="123" >
<p>Password:
<input type="password" name=“pwd” ></p>
<p>
<input type="radio" name="tipo" value="doc">docente</p>
<p>
<input type="radio" name="tipo" value="stud">studente</p><input type="submit" value="VAI">
<input type="reset">
</form>
</BODY>
</HTML>
39
40
Struttura di un programma CGIStruttura di un programma CGI
leggi le variabili d’ambiente
leggi le variabili d’ambiente
stampa codice HTML
stampa codice HTML
elaboraelabora
stampa intestazioneMIME
stampa intestazioneMIME
cout << “Content-type: text/html”<< endl << endl;
41
Decodifica dei parametriDecodifica dei parametri
leggi la variabileRequest_methodleggi la variabileRequest_method
leggi la variabileQuery_string
leggi la variabileQuery_string
GET
leggi la variabilecontent_length
leggi la variabilecontent_length
leggi content_lengthcaratteri da
standard input
leggi content_lengthcaratteri da
standard input
POST
Valore?
42
Programmi eseguibili
• per selezionare pagine
• Per accedere a pagine riservate
• per accedere a servizi– per accedere a basi di dati– Es: home page docenti
43
Tecnologie per l’integrazione Web/Basi di dati
44
Web & basi di datiWeb & basi di dati
Obiettivi::•ottenere la generazione dinamica di ottenere la generazione dinamica di pagine a partire da dati contenuti in una pagine a partire da dati contenuti in una base di datibase di dati•sfruttare i pregi di Web e basi di dati, sfruttare i pregi di Web e basi di dati, aggirandone i difettiaggirandone i difetti
45
Pregi e difetti di basi di dati e WebPregi e difetti di basi di dati e Web
pro contropro contro
•semplicesemplice•portabileportabile•a basso costoa basso costo•indipendente indipendente dalle interfaccedalle interfacce•ipermedialeipermediale
• basato su filebasato su file• statico statico
•modelli dei datimodelli dei dati•linguaggi di linguaggi di interrogazione interrogazione •funzioni di funzioni di amministazioneamministazione
• complessecomplesse• proprietarieproprietarie• navigazione e navigazione e
presentazione presentazione assentiassenti
WebWeb
basi basi di datidi dati
46
Programma CGIProgramma CGI((processi in esecuzione)processi in esecuzione)
Web serverWeb server
CGICGI
gatewaygateway gatewaygateway
DBMSDBMS
via DBMS API,via DBMS API,embedded SQL,embedded SQL,JDBC, ODBC ...JDBC, ODBC ...
47
Esempio di CGI per accesso a DBmain(char Cognome[]){ …. char Nome[20], Dipartimento[20], Citta[20]; char Indirizzo[60]; int Age, Stipendio;… OMESSO CODICE PER LEGGERE VARIABILIIL CUI SCOPO E’ INSERIRE NELLA VARIABILE :Cognome il COGNOME USATO NELL’INTERROGAZIONE …
$ open connection to NewCompanyDB $ select Nome, Dipart, Citta, Indirizzo, Stipendio into :Nome, :Dipart, :Citta, :Indirizzo, :Stipendio from Impiegato I, Sede S where I.Sede = S.Citta and Cognome = :Cognome ; $ close connection ...
48
if (sqlcode == 0){ printf("<html>\n<head><title> %s %s",Nome,Cognome, "</title></head>\n<body>\n"); printf("<H3> %s %s",Nome,Cognome,"</H3>\n"); printf("<table>\n"); printf("<tr><td><em>Dipartimento</em>:</td><td>%s", Dipartimento,"</td></tr>\n"); printf("<tr><td><em>Citta</em>:</td><td>%s",Citta,“ </td></tr>\n"); printf("<tr><td><em>Indirizzo</em>:</td><td>%s", Indirizzo,"</td></tr>\n"); printf("<tr><td><em>Stipendio</em>:</td><td>%u", Stipendio,"</td></tr>\n"); printf("<tr><td>
<a href=\"/cgi bin/ProjOfEmp?Cognome=%s", Cognome,"\">Progetti in corso</a></td><td> </td></tr>\n");
printf("</table>\n</body>\n</html>"); }
49
else {
printf("<html>\n<head><title>Error</title></head>\n<body>\n");
printf("niente impiegato %s\n",Cognome,"</body>\n</html>");
}
}
50
Programma CGI per l’accesso a DBProgramma CGI per l’accesso a DB
• PRO– portabilità: usa solo standard aperti: URL,
HTTP, CGI, HTML (attenzione però all’accesso al DB)
• CONTRO
– prestazioni: creazione di un sotto-processo per ogni richiesta
– aperture e chiusure ripetute della connessione con la base di dati
51
Form e CGI come interfacce di applicazioni
• Per applicazioni di qualsiasi tipo
• Problemi:– identificazione utente, sicurezza– affidabilita’, transazioni– sessioni– numero di processi attivati, operazioni di
apertura e chiusura
52
Architetture di servizi on linebasati su Web
• Architettura di base
• web applications
• soluzioni complesse
• clienti dinamici
53
Architettura di base
BROWSER WEB SERVER
LOCAL FILE
SYSTEM
54
Web server e file
Web server
FILE SYSTEM - pagine statiche
A.html
B.html C.html
D.html
Cgi-bin
Xyz.exe abc.exe
Pagine eseguibili
CGIHTTP
Web client (browser)
55
Applicazioni su web (server side)
BROWSER
WEB SERVER
DATABASEJAVA SERVLET, API propr.
ASP
JSP
PHPScripted page
HTML page
Scripting lato server
CGI
eseguibili
Richieste di pagine
56
Scripted page (lato server)
• Una scripted page è un file memorizzato nel file system del Web server che contiene degli script interpretabili
• Gli script interagiscono con oggetti sul server e alla fine producono un output HTML
• Una scripted page è molto simile ad una pagina HTML standard ma include dei tag/token speciali che sono interpretati dal server
• Esempi: Microsoft’s Active Server Pages (ASP), Java Server Pages (JSP), PHP
top related