1 Web Information Systems Prof. Barbara Pernici Politecnico di Milano parte del materiale e’ stata...

Post on 02-May-2015

216 views 2 download

Transcript of 1 Web Information Systems Prof. Barbara Pernici Politecnico di Milano parte del materiale e’ stata...

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