• Non ci sono risultati.

Database e Web

N/A
N/A
Protected

Academic year: 2021

Condividi "Database e Web"

Copied!
29
0
0

Testo completo

(1)

Da tab ase e W eb

Maggini, ScarselliSistemi per basi di dati2

Ap plic azio ni e D BM S

Un’applicazione (per l’accesso a database) contiene tre elementi

unun

’’interfaccia utenteinterfaccia utente

i dati i dati

una logicauna logica Si Si

puopuo

’’usare unusare un

’’architetturaarchitettura

aadue strati (2due strati (2--tier)tier)

uno strato contiene launo strato contiene lalogica e llogica e l

’’interfacciainterfaccia

uno strato contiene i uno strato contiene i

datidati



aatre strati (3tre strati (3

--tier) o tier) o piupiu

’’((

nn-- tiertier ))

uno uno strato diverso per ciascun elementostrato diverso per ciascun elemento

(2)

Maggini, ScarselliSistemi per basi di dati3

Arc hit ett ura a du e s tra ti

Il client: Il client:

interfaccia utente e logica di interfaccia utente e logica di

comtrollocomtrollo



UnUn’’

applicazione sviluppata conapplicazione sviluppata con

un un comune linguaggiocomune linguaggiodi programmazionedi programmazione

browserbrowser+ + client sideclient sidescriptingscripting(Javascript, Applet Java, (Javascript, Applet Java, ActiveActiveX)X)Il server: Il server: i datii dati



un DBMS e il file systemun DBMS e il file system



eventualmente un Web server (se eeventualmente un Web server (se e

’’unun

utente rfacintecia ’’applicazione Web)applicazione Web)

logica DatiJavascriptJavascriptApplet Java +Applet Java +ActiveActiveXXbrowserbrowser DBMSDBMSFile systemFile systemWeb serverWeb server

Maggini, ScarselliSistemi per basi di dati4

Arc hit ett ura a du e s tra ti I I

Il client accede ai dati attraverso Il client accede ai dati attraverso

API proprietarieAPI proprietariedel DBMSdel DBMS

connettori standardconnettori standard(JDBC, ODBC, (JDBC, ODBC,

……)) OsservazioniOsservazioni



puopuo

’’ relato serveranche accad sul ataalizziagica sa loelle dart che perealiervlato s sul atazz che p reiagica sa loelle dartereanche accader



ll’’

architettura 2architettura 2

--tiertier

èè semplice da realizzaresemplice da realizzare

difficile da espanderedifficile da espandere

tipica delle applicazioni tradizionalitipica delle applicazioni tradizionali

(3)

Maggini, ScarselliSistemi per basi di dati5

Arc hit ett ura a tre str ati

PresentationPresentation tiertier

un browserun browserBusinessBusiness logiclogic tiertier (middle (middle tiertier ))

un server Web, un un server Web, un transactiontransactionserver, un server, un

applicationapplication serverserver

……....

server sideserver side

logiclogic (CGI, PHP, (CGI, PHP,

servletservlet , JSP,..), JSP,..)

DataDatatiertier



DBMS + file systemDBMS + file systemlogicainterfacciautente Dati

browserbrowser DBMSDBMSFile systemFile system Server Web…..Script CGI ServletPHP….

Maggini, ScarselliSistemi per basi di dati6

Arc hit ett ura a tre str ati II

Osservazioni

si possono avere architetture n-tier

non èsempre semplice distinguere cosa deve essere messo su uncerto livelloVantaggi

separazionelogica di controllo da problematiche di presentazione

Si puo’cambiare la logica di controllo senza cambiare l’interfaccia

Si possono riusare gli stessi oggetti di controllo per applicazioni diverse

la gestione dell’applicazione ècentralizzata

(4)

Maggini, ScarselliSistemi per basi di dati7

Arc hit ett ura a tre str ati III

Vantaggi

thinclient(clientleggeri)

semplificata amministrazionedei client (.. solo un browser)

bassi costidell’hardware per il client

carico di lavorofacile da bilanciareSvantaggi

architettura piu’complessa

si usano molti strumenti per realizzare la logica di controllo

Maggini, ScarselliSistemi per basi di dati8

W eb In for m atio n S ys tem s

Web Information Systems(WIS)

sistemi informativi accessibili attraverso unbrowser

permettono un accesso “universale”all’informazione

nati per il Web, sono usati anche

in Intranet

per realizzareapplicazioni di ogni tipo

strettamente legati ai DBMS

permettono di accederel’enorme quantita’di informazione preesistente nei database

man mano che diventano piu’complessi, parte dell’informazione originariamente memorizzata in pagine HTML vienespostata in database

(5)

Maggini, ScarselliSistemi per basi di dati9

Ac ce sso a da tab ase tra m ite W eb

Vantaggi

indipendenza dalla piattaforma

dei client e parzialmente dei server

supporto per l’accesso contemporaneo da piattaforme diverse

visibilita’world wide

interfaccia grafica

facile da realizzare

standard

accesso alla retetrasparente

applicazionifacilmente aggiornabilie scalabili

Maggini, ScarselliSistemi per basi di dati10

Ac ce sso a da tab ase tra m ite W eb II

Svantaggi

basso livello di

affidabilita’

sicurezza

alto costodi sviluppo di un’applicazione

l’HTML e HTTP sono poveri di funzionalita

es. connessioni statless, difficolta’nell’interagire con l’utente,

Lentezza

Internet èlenta

Gli interpreti dei linguaggi usati sono lenti

scalare un sito non èbanale, se un solo server Web non èsufficiente

(6)

Maggini, ScarselliSistemi per basi di dati11

Fu nz ion am en to di u n s erve r W eb

Quando si clicca sul linkhttp://www.ing.unisi.it/eventi.htmlPrima fase: il browser

prepara una richiesta secondo il protocollo HTTP

apre una connessione con il serverwww.ing.unisi.ited invia la richiesta per avere il documento /eventi.htmlSeconda fase: il server

prepara una risposta nel formato HTTP che contiene

il documento HTML in /eventi.htmlse esiste

oppure contiene un messaggio di errore

invia la risposta e chiudela connessiones

BrowserServer Rispostahttp Richiesta HTTP

BrowserServer Documenti Fase 1Fase 2

Maggini, ScarselliSistemi per basi di dati12

Fu nz ion am en to di u n s erve r W eb II

Terza fase: il browser

legge la risposta estraendo il documento inviato dal server

mostra a videoil documento secondo regole che dipendono dallo specifico browser

Osservazioni

il server Web èsolo un passa carte”:

non fa altro che inviare i documenti richiesti

non conosce il contenuto dei documenti

le connessioni sono stateless

per mantenere memoria dello stato occorre usare dei cookie

I documenti HTML sono statici

occorre estendere HTML e/o i server Web se si vuole connettersi ad un DBMS

(7)

Maggini, ScarselliSistemi per basi di dati13

Es ten de re HT M L e i se rve r W eb

Estensioni dei server Web

Common Gateway Interface (CGI), Java Servlets

i documenti (HTML o altro) sono prodotti da (l’output) di programmi

Estensioni proprietarie dei Web server (Netscape API, IIS API)

CGI e Servletspossono accedere a funzionalita’messe direttamente a disposizione dal server Web

linguaggi di scriptinglato server (PHP, ASP, JSP)

si inserisce all’interno di HTML degli script che verranno eseguiti dal server Web (o da un’applicationserver) producendo documenti HTML puriEstensioni di HTML

linguaggi di scriptinglato client (JavaScript, VBScript)

si inserisce all’interno di HTML degli script che verranno eseguiti dal browser

Java applet

vere e proprie applicazioni che possono essere scaricate ed eseguite dal browser

Maggini, ScarselliSistemi per basi di dati14

Co m m on G ate w ay In ter fac e ( CG I)

èun protocollo

consente al Web Server di eseguire programmi esterniin grado di produrrepagine dinamicamente

definisce un insieme di variabili di ambienteutili alla applicazione (es., i parametri inviati dal client)

l’applicazione

può essere scritta in un qualsiasi linguaggio(C, Java, linguaggi per script)

gli eseguibili devono essere inseriti in una directory gestita dal Web Administrator(/cgi-bin)

(8)

Maggini, ScarselliSistemi per basi di dati15

Co m m on G ate w ay In ter fac e I I

Il funzionamento

il browser invia al server una richiesta in cui si fa riferimento ad un cgies.www.search.com/search.cgi?Picasso

il server chiama il programmasearch.cgi

il parametro Picasso”èpassato attraverso lo standard input (metodo POST nel form) o settando una variabile d’ambiente (metodo GET)

Il programmasearch.cgiproduce in uscita un documentoHTMLe termina

Il server Web invia il documento al browser

Esecuzioneprogramma

server Richiestae parametri chiamatapaginapaginaBrowser nucleo

Maggini, ScarselliSistemi per basi di dati16

Co m m on G ate w ay In ter fac e I II

connessione ad un DBMS

attraverso qualsiasi meccanismo disponibilenel linguaggio di programmazione prescelto

ODBC, JDBC, API proprietarie

ODBCAPI ProprietarieJDBC script CGI Web server Browser

DBMS DB connector

(9)

Maggini, ScarselliSistemi per basi di dati17

DB co nn ect ors

API propretarie

moduli che forniscono le funzionalita’necessarie a connettersi ed accedere ai dati di uno specifico DBMS

realizzati dai produttori dei DBMS per i principali linguaggiConnettori standard

moduli che forniscono le funzionalita’per connettersi amolti DBMS

JDBC(Java DataBase Connectivity)

Package di Java (usabile solo con Java)

disponibili driver su tutte le piattaforme per i principali DBMSSQL

ODBC (MicrosftOpen Database Connectivity)

scritto in C++

adatto per client Windows

disponibili driver per i principali DBMS SQL

Maggini, ScarselliSistemi per basi di dati18

Un es em pio : J DB C

Quattro tipi di driver JDBC

DBTipC pie Oridg: Bo 1Tipo 1: Bridge ODBC pi

CateDB a Oateiam chC inDBdi Jeto ai miam che levertCon drivCDBer OùùCDBer Odriv

lmTipava in Jente pirziar parive: Do 2Tipo 2: Driver parzialmente in Java pi

Sdi JBMl D dererie lib alleateiam chC inDBeto ai mateiam che levertCon APItive naùùtive naAPI

Tipo 3: Driver Java puro piTipo 3: Driver Java puro piùùmiddlewaremiddlewareComunica con un server intermedio attraverso un protocollo proprietario

MS prounica con un protocolloprietario direttamente con il DBCom Tiptarioprieo 4: Driver Java puro con protocollo pror Java pTipo 4: Dtarioprie procollorotorive couron p

(10)

Maggini, ScarselliSistemi per basi di dati19

Un es em pio : J DB C I I

Java application/applet JDBC-NetDriver JDBC-ODBCBridge Driver Driver A

ODBC driver Driver B JDBC API

DBMS Middlewareserver Varieversionidi driver

Protocollo proprietariodel DBMS Protocollo proprietariodel middleware Presentation/business logictierBusninesslogictier

Data tier

Maggini, ScarselliSistemi per basi di dati20

CG I: u n e se m pio

I CGI e form: un uso tipico

il formraccoglie logine passworddell’utente

e chiama la procedura/cgi-bin/listaStudenti.cgi

<HTML>

<BODY>

<FORMACTION=/cgi-bin/listaStudenti.cgi”METHOD="POST>

NOME:<INPUTTYPE="text"NAME=nome"VALUE=""><p>

COGNOME:<INPUTTYPE=text"NAME=cognome"VALUE="">

<INPUTTYPE="submit"VALUE=Cerca">.<P>

</FORM>

</BODY></HTML>i campi da leggere il metododi invio dei parametri

il cgida attivare

(11)

Maggini, ScarselliSistemi per basi di dati21

CG I: u n e se m pio II

Un CGI in Java

si crea una classe di nome listaStudenti

i parametri in ingresso

se il FORM usa il metodo POST, vengono letti dallo standard input

se il FORM usa il metodo GET, vengono lettida una variabile d’ambiente

importjava.cgi_lib.*;

classlistaStudenti{

publicstaticvoidmain(Stringargs[]){

Hashtableform_data=cgi_lib.ReadParse(System.in);

Stringnome=(String)form_data.get(nome");

Stringcognome=(String)form_data.get(cognome"); si leggono i parametri dallo standard input

Maggini, ScarselliSistemi per basi di dati22

CG I: u n e se m pio III

Per connettersi ad un DBMS occorre

Caricare il driver JDBC che si intende usare

Stringdriver="COM.ibm.db2.jdbc.net.DB2Driver;

Class.forName(driver).newInstance();

Aprire una connessione con il DBMS

Stringurl="jdbc:db2://segreteria.ing.unisi.it/stud";

Stringuserid=pippo";

Stringpasswd=pippoPass";

Connectioncon=DriverManager.getConnection(url,userid,passwd); Driver, servere database

(12)

Maggini, ScarselliSistemi per basi di dati23

CG I: u n e se m pio IV

Per eseguire un’interrogazione occorre creare uno StatementStatemented eseguirlo

Statementstmt=con.createStatement();

ResultSetrs=stmt.executeQuery(selectcognome,nome,dataNascita+

fromstudenti+

wherenomelike%+nome+%and+

cognomelike%+cognome=%);

executeQueryexecuteQueryinvia il comando al DBMS e pone il risultato in unoggetto di tipoResultSetResultSet

Maggini, ScarselliSistemi per basi di dati24

CG I: u n e se m pio V

L’oggetto

ResultSetResultSet

consente di scorrere le righe e accedere agli attributi

I tipi di dati SQL sono trasformati in tipi di dati Java

System.out.println(<HTML><BODY><OL>);

while(rs.next()){

Stringcognome=rs.getString(cognome);

intnome=rs.getString(nome);

Datedn=rs.getDate(dataNascita);

System.out.println(<LI>"+cognome++nome+

+dn.toString());

}

System.out.println(</OL></BODY></HTML>);

Iterazione su tutte le tupledel risultato dell’interrogazione stampa dellalista dei nomi stampa inizio e fine della pagina

(13)

Maggini, ScarselliSistemi per basi di dati25

Alt ern ative a JD BC

Per Java esistono alternative a JDBC

SQLJ

una versione di embeddedSQLspecializzato per JAVA

il codice SQL èscritto direttamente all’interno di Java

un precompilatore trasforma l’SQL in chiamate al DBMS

JAVA Blend

crea una connessione diretta fra oggetti JAVA e oggetti del database: si opera sulle tabelle come se fossero oggetti

SQLJ e JAVA Blendsi appoggiano su JDBC

Maggini, ScarselliSistemi per basi di dati26

SQ LJ : u n e se m pio

I comandi SQLJ sono identificati da “#sql”

.

#sqliteratorstudentDetails(Stringnome,Stringcognome);

studentDetailsstudentIterator=null;

#sqlstudentIterator={selectcognome,nomefromstudenti};

System.out.println(<HTML><BODY><OL>);

while(studentIterator.next()){

System.out.println(<LI>"

+studentIterator.nome()+

+studentIterator.cognome()+);

}

System.out.println(</OL></BODY></HTML>);

(14)

Maggini, ScarselliSistemi per basi di dati27

SQ LJ vs JD BC

SQLJ facilita l’analisi statica

della sintassi

dei tipi

dello schema

SQLJ permette la generazione di strategie di accesso da parte del DBMSin modo trasparente

SQLJ richiede una fase precompilazione

Maggini, ScarselliSistemi per basi di dati28

Li m iti d ei C GI

CGI èmolto sempliceda usare ed èuno standarddiffuso, ma

ad ogni accessoallo script (programma) CGI,

si crea un nuovo processo

si apre e richiude una connessione con il DBMS

tutte le comunicazioni fra client e CGI passano dal Web server

ci sono problemi di sicurezzaPer ovviare a questi problemi

i server Web forniscono nuove API: Netscape Server API, IIS API

gli script CGI sono caricati come parte del server Web e rimangono attivifrauna transazione e l’altra

gli script possono accedere a funzionalita’per laconnesioneai DBMS, per l’autenticazionee lagestione delle connessioni

(15)

Maggini, ScarselliSistemi per basi di dati29

Se rvl ets

Cosa sono

sono applicazioni Javain esecuzionesu una JVM residentesul server

realizzate attraverso il package Java: java.servletCome CGI

il client invoca la servletnel contesto di una FORM HTML

la servletesegue le operazioni richieste

la servletridirige l’output al client in forma di pagina HTML A differenza di CGI

la servletcorrisponde ad un processo che viene caricato solo una volta e utilizzato per eseguire piùoperazioni distinte

il server Web deve essere esteso con un servletengine

Maggini, ScarselliSistemi per basi di dati30

Se rvl ets e D BM S

L’accesso a DBMS

avviene attraverso JDBC, SQLJ, JavaBlend

poiche’la servletrimane attiva, le connessioni con il DBMS sono aperte una sola volta, solo al momento del caricamentoOsservazioni

le servletsono indipendenti dalla piattaforma

permettono l’aggiunta di ulteriori stratiall’architettura

JDBC API Web server Browser

DBMS Servletengine

Riferimenti

Documenti correlati

Prima della fase di installazione e migrazione eseguire i seguenti passi di sicurezza sul PC/Mac dove risiedono gli archivi della versione corrente (PC/Mac con funzioni di server)..

  $name è il nome della variabile associata al cookie e può essere usata anche per specificare un elemento di array.   $value è il valore associato e viene inviato in

Infatti, a questo punto, si può scegliere l'ultima opzione per la configurazione automatica, quella centrale per quella manuale (in tal caso bisogna selezionare View per una

Se viene usato un tool di monitoring del server in grado di registrare alcuni dati statistici a livello di sistema, come l'utilizzo della CPU, l'I/O su disco e la cache di

Permettono la configurazione da remoto e la visualizzazione tramite browser web su PC, smartphone, visualizzatori web e tablet dei dati provenienti da: dispositivi di

Le transazioni read-only non possono modificare n´ e il contenuto n´ e lo schema della base di dati e vengono gestite coi soli lock condivisi (read lock)...

In this paper we show how the techniques of sheaf theory allow us to treat the Cauchy problem (in the language of D-modules) in various sheaves of ramified holomorphic

• stop() , che viene chiamato dal browser ogni volta che l'applet deve essere fermata (perché esce dall'area visibile della pagina). – tipicamente ferma un'animazione o