Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW ©...

47
1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web Information Systems

Transcript of Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW ©...

Page 1: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

1

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Basi di dati e WWW

WISWeb Information Systems

Page 2: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

2

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Obiettivi

Con l'avvento di Internet e' nata la necessita' di sviluppare sistemi informatici accessibili via Web.Gli utenti che utilizzano la rete hanno solitamente a disposizione un browser.Vedremo diversi modi per estrarre informazioni da una base di dati attraversoun browser.

Page 3: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

3

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Connessione Browser/DBMS via Web

Browser

Come attuare la comunicazione?

? ?

INTERNET

DBMS

DB

Page 4: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

4

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Scenario 1: Client Side

DBMS

DB

INTERNET

Browser

ProgrammaOspite API

Page 5: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

5

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Scenario 1: Client Side

Il browser utilizza un programma che permettela connessione alla base di dati.Questa soluzione e' consigliabile solo quando:

Esiste un controllo sui client (ad esempio lapossibilita' di installare programmi adeguati su tutti i computer che accedono alla BD), oppureil carico di lavoro dell'applicazione e' di piccola entita'.

Page 6: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

6

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Scenario 2: Server Side (ISAPI/NSAPI)

HTTPWeb

Server

INTERNET

Browser

DBMS

DB

API

Page 7: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

7

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Scenario 2: Server Side (ISAPI/NSAPI)

E' possibile estendere il server Web, in modo che esso comunichi direttamente con il DBMS.Non esiste uno standard.Le estensioni sono difficili da programmare(gestione della concorrenza).I moduli "girano" insieme al Web server. Se iprimi hanno dei problemi, il secondo ne puo' risentire (devono essere sicuri e stabili).

Page 8: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

8

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Scenario 2: Server Side (Application Server)

HTTPWeb

Server

INTERNET

Browser

APPLICATIONSERVER

DBMS

DB

Page 9: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

9

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Scenario 2: Server Side (Application Server)

La parte dell'applicazione che comunica con ildatabase viene implementata al di fuori del server Web, con il quale comunica.Questo rende il sistema scalabile e sicuro.In teoria, questa soluzione puo' essere meno efficiente dell'utilizzo di ISAPI, in cui la DLL con l'estensione viene caricata una volta pertutte.Esistono comunque implementazioni molto efficienti di questa strategia, che vedremo.

Page 10: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

10

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Basi di dati e WWW

Scenario 1:Client Side

Page 11: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

11

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

JavaScript e Java

Una Applet Java puo' comunicare con un DBMS, direttamente o tramite altri programmi(ad esempio una servlet).Uno script JavaScript puo' accedere ai metodi dell'applet tramite DOM.

Browser

Applet Java

Script JS

connessione con DBMS

Page 12: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

12

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Applet Java

E' possibile far comunicare Java e DBMStramite un'API (Application Programming Interface) chiamata JDBC.JDBC e' attualmente alle versioni 3.0 (gia' disponibile) e 4.0 (in preparazione).JDBC serve per connettersi e interrogare basi di dati indipendentemente dal DBMS e dalla piattaforma utilizzata dal client.

Page 13: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

13

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Esempio di utilizzo di JDBC

DBMS

DB

INTERNET

Browser

Applet JavaJDBC API

Page 14: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

14

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Applet JavaJDBC API

Class.forName("COM.cloudscape.core.RmiJdbcDriver");

DBMS

DB

INTERNET

Browser

Driver JDBC

Il driver specifico peril DBMS utilizzato viene

caricato.

Page 15: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

15

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Connection con = DriverManager.getConnection(url,"","");

Applet JavaJDBC API

DBMS

DB

INTERNET

Browser

Driver JDBC

Attraverso l'interfacciaJDBC viene chiesto al

driver di aprire una connessione.

Page 16: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

16

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Statement stmt = con.createStatement();

Applet JavaJDBC API

DBMS

DB

INTERNET

Browser

Driver JDBC SQL

Tramite la connessione,vengono eseguiti comandi SQL.

Page 17: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

17

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

ResultSet rs = stmt.executeQuery("SELECT a FROM T");

Applet JavaJDBC API

DBMS

DB

INTERNET

Browser

Driver JDBC

In questo modo sono ottenutioggetti rappresentantii risultati delle query.

Page 18: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

18

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

while (rs.next()) { System.out.println(rs.getString(1)); }

Applet JavaJDBC API

DBMS

DB

INTERNET

Browser

Driver JDBC

Dall'oggetto vengono estratte leinformazioni necessarie.

Page 19: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

19

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

finally { if (con != null) con.close();}

Applet JavaJDBC API

DBMS

DB

Browser

Driver JDBC

Infine, la connessioneviene chiusa.

INTERNET

Page 20: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

20

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Connessione verso altri host

ATTENZIONE. Un'applet (non autenticata e suinternet) puo' connettersi solo con l'host da cui e' stata scaricata.Nel caso di un DBMS installato su una macchina diversa, e' necessario un middleware sull'host di origine.

Host DBMS

DBAppletServlet

Web Server

Page 21: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

21

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Snapshot: Applet connessa a Postgresql

Page 22: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

22

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Basi di dati e WWW

Scenario 2:Server Side (con Application Server)

Page 23: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

23

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Server Side in generale

Un interfaccia browser/DB lato server puo' essere realizzata tramite metodi e linguaggi diversi (ricordiamo CGI, Servlet, pagine PHP, ASP, JSP).Tutti questi metodi agiscono in generale nello stesso modo.

Page 24: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

24

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Richiesta del browser

HTTPWeb

Server

INTERNET

Browser

Viene richiesta una pagina chenecessita di una connessione auna base di dati.

Queste pagine sono caratterizzateda un URL speciale, che puo'essere riconosciuto dal web server.Ad esempio, http://host/cgi-bin/

Page 25: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

25

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Forward a un modulo specifico

HTTPWeb

Server

INTERNET

Browser

Modulo

Il web server riconosce che si trattadi una pagina speciale, e passa

la richiesta a un programma/moduloprecedentemente registrato.

Page 26: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

26

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Elaborazione della richiesta

HTTPWeb

Server

INTERNET

Browser

Modulo

DBMS

DB

Il modulo processa la richiesta,connettendosi a una base di dati.

Page 27: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

27

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Restituzione del risultato

HTTPWeb

Server

INTERNET

Browser

Modulo

DBMS

DB

Il risultato, solitamente scrittonello standard output del modulo,

viene inviato dal web serveral browser richiedente.

Page 28: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

28

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

CGI

Un esempio ben noto e' quello delle CGI (Common Gateway Interface).Una CGI viene implementata tramite unprogramma esterno al Web server, scritto tipicamente in Perl, residente solitamente inuna directory virtuale /cgi-bin.

Page 29: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

29

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

CGI

Esempio di invocazione di una CGI.<HTML><BODY><FORM action="cgi-bin/find.cgi" method="post">

Scrivi il nome dell'autore desiderato:<INPUT type="text" name="authorName" size="30"maxlength="50"><INPUT type="submit" value="Invia la richiesta"><INPUT type="reset" value="Nuova richiesta">

</FORM></BODY></HTML>

Page 30: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

30

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

CGI

INTERNET

Browser find.cgi<1>

find.cgi<2>

find.cgi<3>

find.cgi<4>

find.cgi<5>

DBMS

DBHTTPWeb

Server

Page 31: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

31

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Problemi delle CGI

Per ogni richiesta viene inizializzato un nuovo processo. Le performance di una CGI sono il vero punto debole di questa soluzione.Una CGI scritta male presenta rischi di sicurezza.E' necessario un interprete esterno (nel caso di CGI scritte in perl).Alcune CGI non sono portabili (ad esempio sescritte in C).

Page 32: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

32

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Java Servlet

Una soluzione alle basse performance delleCGI sono le Servlet, applicazioni Java lato-server.Una servlet viene inizializzata solo una volta, poi resta disponibile (al prezzo di un utilizzo costante di risorse del sistema).Nel caso di piu' richieste contemporanee, nonvengono creati nuovi processi, ma esse vengono gestite tramite thread.

Page 33: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

33

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Invocazione di Servlet

L'invocazione, come detto, e' sempre uguale.<HTML><BODY><FORM action="servlet/find" method="post">

Scrivi il nome dell'autore desiderato:<INPUT type="text" name="authorName" size="30"

maxlength="50"><INPUT type="submit" value="Invia la richiesta"><INPUT type="reset" value="Nuova richiesta">

</FORM></BODY></HTML>

Page 34: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

34

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Application Server e Servlet

HTTPWeb

Server

INTERNET

Browser

Container

DBMS

DB

Ogni nuova richiesta vieneprocessata internamente tramite

un processo leggero (thread)

Page 35: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

35

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Servlet

Una servlet viene gestita da un applicazione,detta “contenitore”, che ne controlla il ciclo divita e la interfaccia con l'esterno, utilizzando tutte le potenzialita' di java.Il metodo principale di una servlet e' service(),che mette a disposizione i parametri di ingresso e lo stream di output.

Page 36: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

36

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Metodo principale

public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException {

res.setContentType("text/html");PrintWriter out = res.getWriter();String name = req.getParam("authorName");out.println("<h1>Risultato della richiesta</h1>");out.println("<table border='5'>");try { Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROMautori WHERE nome = " + name);

Page 37: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

37

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Metodo principalewhile (rs.next()) {out.print("<tr>");out.println("<td>" + rs.getString(1) + "</td>");out.println("<td>" + rs.getString(2) + "</td>");out.println("<td>" + rs.getString(3) + "</td>");out.print("</tr>");

}stmt.close();out.println("</table>");

} catch (SQLException e) {System.out.println(e);}ECCETERA

Page 38: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

38

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Snapshot: Servlet connessa a Postgresql

Page 39: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

39

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Separazione tra presentazione e contenuto

Una servlet e' una soluzione abbastanza soddisfacente, ma non del tutto.Istruzioni per produrre HTML sono immersenel codice java, rendendolo poco leggibile.Se si cambia l'aspetto della pagina (cosa che avolte cambia molto piu' velocemente delcodice) bisogna riscrivere la servlet.La soluzione consiste nel separare la parteHTML dal codice java.

Page 40: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

40

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Separazione tra presentazione e contenuto

Esistono diversi modi per realizzare laseparazione tra presentazione e contenuto.ASP, ASP.NET, PHP, JSPLe pagine JSP vengono compilate in servlet, per cui ne mantengono i vantaggi,guadagnando in leggibilita' e riusabilita' delcodice.

Page 41: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

41

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

JSP<%@ page import="java.io.*, java.sql.*"%>"<html><head><title>Hello</title></head><body bgcolor="white"><h1>Risultato della richiesta</h1><table border='5'><%try {

Class.forName("org.postgresql.Driver");String url = "jdbc:postgresql://localhost:8000/test";Connection con = DriverManager.getConnection(url,"magnani","");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM autori");while (rs.next()) {

%><tr><td> <%rs.getString(1);%> </td><td> <%rs.getString(2);%> </td><td> <%rs.getString(3);%> </td></tr><%

}stmt.close();

} catch (ClassNotFoundException nf) {System.out.println(nf);}catch (SQLException e) {System.out.println(e);}catch (Exception ex) {System.out.println(ex);} finally { try {if (con != null) con.close();}catch (Exception ex) {System.out.println(ex);}}%> </table></body></html>

HTML

Script

Page 42: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

42

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Snapshot: JSP con postgresql

Page 43: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

43

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Considerazioni finali

Soluzioni lato-client sono opportune perscenari in cui:

Esiste un controllo sui client.L'applicazione Web non e' molto “pesante”.

Attenzione: anche Java non e' portabile! Opera con le vecchie plug-in java si interrompe. Con lapiu' recente l'applet dell'esempio va in crash. ConMozilla/Netscape non si riescono a chiamare imetodi dell'applet tramite javascript. Oltre ad altri problemi che si scoprono solo dopo molte linee di codice.

Page 44: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

44

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Considerazioni finali

La soluzione lato-server deve essere scelta sulla base della complessita' dell'applicazione(per semplici task le CGI in perl vanno benissimo), il numero di utenti (idem), lariusabilita' e la manutenzione del codice, lapiattaforma di sviluppo e di utilizzo dell'applicazione.

Page 45: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

45

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Considerazioni finali

In casi reali, le tecnologie presentate si utilizzano in modo piu' sofisticato.Ad esempio, le connessioni in Java non si aprono tramite il DriverManager, le eccezioni ealtri parametri sono gestiti in modo piu’puntuale, si possono usare EnterpriseJavaBeans, risorse esterne di vario tipo, filtri.

Page 46: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

46

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Bibliografia

Atzeni, Ceri, Paraboschi, TorloneBasi di datiMcGraw-Hillcapitolo “Basi di dati e World Wide Web”

Page 47: Scienza e Ingegneria - WIS Web Information Systems · 2004. 1. 7. · 1 Basi di dati e WWW © Matteo Magnani, Danilo Montesi – Università di Bologna Basi di dati e WWW WIS Web

47

Basi di dati e WWW© Matteo Magnani, Danilo Montesi – Università di Bologna

Webliografia

Tutorial su vari argomenti trattati riguardantijava:http://developer.java.sun.com/developer/onlineTraining/