DBMS e Linguaggi di programmazione nell`era di Internet

Transcript

DBMS e Linguaggi di programmazione nell`era di Internet
DBMS e Linguaggi di programmazione
nell'era di Internet
Crippa Francesco
[email protected]
Crippa Francesco (GPL)
1
Programma del corso
"
"
DBMS nati per il WEB:
–
MySQL
–
Postgres
Il cuore del WWW, il web server:
–
"
Embedded scripting:
–
"
Apache
PHP
Piena portabilità:
–
JAVA
Crippa Francesco (GPL)
2
Materiale di riferimento
"
Home page del corso:
–
"
PHP:
–
"
http://www.mysql.org
Postgres SQL:
–
"
http://www.php.net
MySQL:
–
"
http://filibusta.crema.unimi.it/~franky/
http://www.postgres.org
Java:
–
http://java.sun.com
Crippa Francesco (GPL)
3
MySQL
"
"
MySQL si può trovare in due differenti versioni:
–
3.x: considerata la più stabile. Molto apprezzata per le
prestazioni ma estremamente limitata nelle caratteristiche
tecniche. E' attualmente la versione più diffusa
–
4.x: la più recente. Molto performante e con una adeguata
implementazione delle caratteristiche più comuni hai DBMS.
Essendo estremamente recente è ancora poco utilizzata in
via precauzionale.
MySQL nasce come software proprietario e diventa
OpenSource dopo pochissimo tempo.
"
E' considerato uno dei DBMS più performanti sul mercato.
"
Supporta SQL 92 con estensioni proprie
"
Non è adatto ad architetture di storage distribuite.
Crippa Francesco (GPL)
4
Postgres
"
"
Attualmente è disponibile la versione 7.2
E' il primo RDMBS ad avere successo in ambito
OpenSource
"
E' considerato tra i più affidabili
"
Non è orientato a massimizzare le prestazioni
"
"
"
Supporta SQL 92, più alcune estensioni quali basi di dati
attive
A differenza di MySQL (ver. 3.x) è in grado di supportare
molte più esigenze in ambito DB (es: integrità referenziale,
sub-select, ecc...)
Rilasciato sotto licenza GPL
Crippa Francesco (GPL)
5
Apache
"
"
"
E' il webserver più diffuso al mondo. Circa il 70% dei siti
internet è mantenuto su apache.
E' il webserver più esteso: permette di soddisfare tutte le
esigenze che si creano in ambito web (hosting/hausing), tra
cui:
–
Virtual server (name/IP)
–
Uso della crittografia (SSL)
–
Possibilità di aggiungere più moduli al sistema per
aumentarne le funzionalità
–
Proteggere directory con richiesta di autenticazione
–
E tante altre...
Il file di configurazione è generalmente /etc/httpd/httpd.conf
Crippa Francesco (GPL)
6
Apache (2)
"
"
"
Di fatto , essendo un webserver, garantisce solo la
trasmissione di streem di dati con un determinato
protocollo (generalmente file di testo trasmessi con il
protocollo HTTP)
Il crescere di Internet ha reso inadeguata la trasmissione di
testo senza interazione con l'utenza
Sono così nate diverse tecniche per permettere “dialogo”
con l'utente; in ordine cronologico:
–
CGI (Server Side)
–
Javascript (Client Side)
–
PHP (Server Side – embedded)
Crippa Francesco (GPL)
7
PHP
"
"
"
Nato come Pesonal Home Page è oggi diventato HyperText
PreProcessor a causa del vasto ed improvviso sviluppo che
il linguaggio ha subito.
La versione 3 ha stabilito il punto di svolta. Oggi è
disponibile la versione 4.1.x. Oggi il liguaggio permette di:
–
Connettersi ai principali DBMS
–
Usare costrutti tipici della programmazione strutturata
(selezione, iterazione, sequenza)
–
Usare il paradiga della programmazione ad oggetti
La grande diffusione si deve anche allo sviluppo di
numeroso software GPL che ha permesso di avere funzioni
di libreria che coprono una vastità di argomenti (string,
math, generazione di PDF, generazioni di immagini, ecc...)
Crippa Francesco (GPL)
8
PHP (2)
"
"
"
"
A dfferenza dei CGI il codice PHP si scrive direttamente
all'interno della pagina che il webserver trasmetterà al client
(linguaggio embedded)
Non deve essere allocato in memoria un processo
differente per ogni utente, garantendo così un notevole
incremento prestazionale
E' un sistema interpretato e quindi presenta tutti quegli
aspetti positivi e nagativi tipici dei linguaggi interpretati
(assenza di compilazione, minor ottimizzazione in fase di
esecuzione, ecc...)
Gli ultimi sviluppi del linguaggio lo rendono adatto anche
per applicazioni diverse da quelle “web-oriented”
Crippa Francesco (GPL)
9
Verso l'integrazione
"
"
"
L'uso adeguato ed integrato di webserver, DBMS e scripting
language permette di ottenere un “Application Server”,
ovvero un insieme di software in grado di far girare
un'applicazione su uno o più macchine in rete in manienra
centralizzata.
Poichè tutti i software trattati sono rilasciati sotto licenza
GPL o derivante, ed esistendo versioni ottimizzate per Linux
o BDS è possibile implementare applicazioni molto
complesse senza avere costi di software fornito da terze
parti.
Questo ha garantito e garantisce tutt'oggi una crescita ed
una diffusione non trascurabile delle application server.
Crippa Francesco (GPL)
10
Aspetti architetturali
User
Browser
TCP/IP Layer
Client Side
Server Side
TCP/IP Layer
WebServer
PHP
DBMS
DB
Crippa Francesco (GPL)
DB
DB
11