Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Web Information Systems Prof
Web Information Systems Prof. Barbara Pernici Politecnico di Milano parte 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 , liste di discussione, chat, form per inserimento richieste, .. L’utente e’ identificato (identita’ reale o fittizia) le comunicazioni dell’utente possono rimanere memorizzate
11
Tipologia dei servizi elettronici - transazionali
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
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: Comune Sito 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 Altri enti MINISTERO DELLE FINANZE
UFFICI ENTRATE (430) DOGANE (420) RETE GEOGRAFICA MF AGENZIE CENTRALI firewall INTERNET RUPA Altri enti
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) SERVER SERVER DB 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
BD REGISTRO E IMPOSTE BD DOGANE BD IVA (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 LOCAL FILE SYSTEM WEB SERVER BROWSER
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 FILE SYSTEM - Web client (browser) Web server CGI
pagine statiche HTTP A.html D.html B.html C.html Web client (browser) Web server Cgi-bin CGI CGI Xyz.exe abc.exe Pagine eseguibili
27
Common Gateway Interface
Meccanismo che consente al Web Server di eseguire applicazioni esterne in grado di creare pagine dinamicamente ? ?
28
Caratteristiche di CGI
Non e’: 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*&£$
29
Esecuzione 1. Il server riconosce dall’URl che la risorsa richiesta dal cliente e’ un eseguibile ?
30
Esecuzione 2. Il server decodifica i parametri inviati dal cliente e riempie le variabili d’ambiente es: request_method, query_string, content_length, content_type ?
31
Esecuzione 3. Il server lancia in esecuzione l’applicazione richiesta
32
Esecuzione 4. 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
Esecuzione 5. Il server ridireziona lo standard output sulla rete e quindi verso il client
34
Invio di parametri a un programma CGI
Il client puo’ usare due metodi: GET POST GET: i parametri sono codificati nell’URL 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
Esempio: invio al server il nome dell’utente
FORM HTML Esempio: invio al server il nome dell’utente <html> <body> <form action= method=post> <p>Dimmi il tuo nome: <input type=“text” name=“chisei” ></p> <input type="submit" value ="Invia query"> </form> </body> </html>
37
FORM HTML
38
FORM HTML <HTML> <BODY>
<form action= 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> <input type="radio" name="tipo" value="stud">studente</p><input type="submit" value="VAI"> <input type="reset"> </form> </BODY> </HTML>
40
Struttura di un programma CGI
leggi le variabili d’ambiente stampa codice HTML elabora cout << “Content-type: text/html” << endl << endl; stampa intestazione MIME
41
Decodifica dei parametri
leggi la variabile Request_method Valore? leggi la variabile Query_string GET leggi la variabile content_length leggi content_length caratteri da standard input POST
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 dati Obiettivi:
ottenere la generazione dinamica di pagine a partire da dati contenuti in una base di dati sfruttare i pregi di Web e basi di dati, aggirandone i difetti
45
Pregi e difetti di basi di dati e Web
pro contro Web basi di dati semplice portabile a basso costo indipendente dalle interfacce ipermediale basato su file statico modelli dei dati linguaggi di interrogazione funzioni di amministazione complesse proprietarie navigazione e presentazione assenti
46
Programma CGI (processi in esecuzione)
Web server CGI gateway gateway DBMS via DBMS API, embedded SQL, JDBC, ODBC ...
47
Esempio di CGI per accesso a DB
main(char Cognome[]) { …. char Nome[20], Dipartimento[20], Citta[20]; char Indirizzo[60]; int Age, Stipendio; … OMESSO CODICE PER LEGGERE VARIABILI IL 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 DB
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 line basati su Web
Architettura di base web applications soluzioni complesse clienti dinamici
53
Architettura di base LOCAL FILE SYSTEM WEB SERVER BROWSER
54
Web server e file FILE SYSTEM - Web client HTTP (browser) Web server
pagine statiche A.html D.html B.html C.html Web client (browser) HTTP Web server CGI Cgi-bin Xyz.exe abc.exe Pagine eseguibili
55
Applicazioni su web (server side)
JAVA SERVLET, API propr. DATABASE Scripting lato server ASP JSP PHP BROWSER Scripted page Richieste di pagine WEB SERVER HTML page CGI eseguibili
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.