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