Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano Programmazione Server Side e Database in rete La programmazione Stand-Alone consente di costruire applicazioni, più o meno complesse, ma utilizzabili esclusivamente sul computer che stiamo usando dopo che è stata installata sullo stesso. L'impiego dei linguaggi è molto vario e la scelta è fatta in base alle esigenze dell'applicazione, degli utenti che la devono utilizzare, il sistema operativo per cui è stata progettata. Non ultimo è da tenere in considerazione l'hardware su cui l'applicazione è in “run”, in quanto non tutti sono in grado di eseguire una determinata applicazione. La Programmazione Web cambia gli scenari: l'applicazione non è più eseguita sulla macchina locale ma su un computer remoto (server) al quale uno o più computer client si connettono tramite appositi programmi client, i più diffusi sono i browser web, al server e richiedono l'applicazione Web desiderata. L'esempio più diffuso di questa modalità di utilizzo delle applicazioni è la rete Internet in grado di fornire, ormai, applicazioni utilizzabili in qualsiasi campo. Queste applicazioni non hanno bisogno di configurazioni particolari né dell'hardware né del software presente sulla macchina che utilizzerà tali applicazioni. L'infrastruttura di un'applicazione Web richiede l'approfondimento di alcuni concetti: • architettura CLIENT/SERVER • programmazione lato server • database in rete 1/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano Architettura Client/server L'architettura client/server è lo standard de facto dei sistemi di rete, (oppure architetture di tipo Mainframe) in cui uno o più computer detti server e dotati di software server (anche daemon) forniscono servizi e uno o più computer detti clienti dotati di software client richiedono e utilizzano tali servizi. Questa architettura descrive la relazione che intercorre tra due programmi residenti generalmente su due computer diversi: Il client è il programma che fa le richieste il server quello che le soddisfa. Tale architettura è stata concepita per le reti, anche se nulla vieta che possa essere utilizzata anche su un singolo computer. In una rete, infatti, la modalità client/server permette di interfacciare differenti sistemi operativi su macchine della rete stessa. Esempio: per controllare il vostro conto corrente bancario dal PC utilizzate un client sul vostro pc (verosimilmente un browser) per inviare la vostra richiesta al programma server della banca. Questo programma server utilizza quindi un client dedicato per fare una richiesta al database server. In questo contesto il server svolge le operazioni necessarie per realizzare uno o più servizi (gestione di un database, un portale web, … ). Il client invece gestisce la porzione di interfaccia utente dell'applicazione, verifica i dati inseriti (tramite programmazione lato cliente) e provvede ad inviare al server la/e richieste formulate dall'utente. 2/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano Esempi di archietettura client/server • • • • • Database server: per la gestione di grandi moli di dati File server: per la condivisione dei file FTP server: per la gestione dell'upload/download dei file Print server: per la condivisione delle stampanti Web server: per la gestione dell'interazione via web tra server e client L'affermazione di questo modello è dovuta principalmente alla possibilità di progettare e realizzare reti locali a basso costo e alla diffusione dei servizi telematici offerti dalla rete Internet. L'architettura client/server usa i protocolli della famiglia TCP/IP (Trasmission Control Protocol/Internet Protocol) ormai considerati lo standard per l'internetworking, cioè per la comunicazione tra reti dIverse e in ambiente Internet. Useremo tali protocolli per lo sviluppo di applicazioni Web. I protocolli TCP/IP sono una famiglia di protocolli aperti cioè la descrizione tecnica dei detti protocolli sono documenti pubblici accessibli da tutti coloro che ne vogliono fare uso. Tutti i sistemi operativi moderni implementano al loro interno una suite di programmi che gestiscono la famiglia di protocolli TCP/IP. Di questa famiglia fa parte un importante protocollo: HTTP. Tale protocollo consente la realizzazione di reti di computer che per comunicare usano Internet/intranet anche se hanno sistemi operativi differenti. 3/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano HOST: APPLE HOST: WIN HOST: LINUX HTTP HTTP HTTP TCP / IP TCP / IP TCP / IP INTERNET / ETHERNET L'illustrazione chiarisce il concetto 4/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano MAPPA CONCETTUALE SULL'USO DI DATABASE IN RETE PROGRAMMAZIONE APPLICAZIONE WEB LATO SERVER LATO CLIENT - (X)HTML - JAVASCRIPT - VBScript - Apache - IIS - Tomcat LAMPP/XAMPP WAMPP MAMPP Linguaggio Sever Side Web Server Apache - Php - Asp - jsp .... Protocolli TCP/IP Database di rete - Server SQL - Client SQL PHP MySQL PphMySQL 5/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano 6/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano UTILIZZO DI UN AMBIENTE DI PROVA Prima di publicare su INTERNET un'applicazione Web o un portale/sito con contenuti dinamici è utile disporre di un ambiente di prova sul quale sperimentare/provare varie soluzioni. I vantaggi sono molteplici e vanno dal tempo di upload/download che necessitano le pagine che è nullo (o quasi), si può lavorare anche quando non si ha immediatamente una connessione a Internet.... Gli strumenti che ho scelto (ma potete liberamente sceglierne di altri, l'importante è raggiungere l'obiettivo) sono: • server Web: Apache (Open Source) • server/client Sql: MySQL (RDBMS Open Source) • linguaggio di scrpting: PHP (OpenSource) • frontend: PhpMyAdmin (strumento grafico per gestire i database scritto in PHP) potete installare sul vostro PC, separatamente tutti questi software e configurarli secondo le vostre esigenze, ma possiamo usare suite di programmi già pronti da utilizzare dopo l'installazione sul nostro PC. Scegliamo questa ultima soluzione se non altro è più immediata da usare. La suite scelta è: XAMPP che è open source che è disponibile per tutti i sistemi operativi desktop e anche server. 7/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano PROGRAMMAZIONE WEB La programmazione orientata al web è l'insieme delle tecniche e delle metodologie che si utilizzano con un'architettura client/server e i protocolli TCP/IP – HTTP -FTP consentono di far interagire programmi lato client e programmi lato server. La programmazione lato client consente di sviluppare applicazioni che sono eseguite sul computer client (il nostro PC). Utilizzeremo il brower web (quello che vi piace di più, usatene anche più di uno: è un consiglio! ) all'interno del quale le nostre applicazoioni funzioneranno, eventualmente tali applicazioni possono inviare richieste (HTTP/FTP) al server e gestire le eventuali risposte del server. La programmazione lato server consente di scrivere applicazioni che saranno eseguite dal server, dopo aver ricevuto una richiesta dal client, e fornendo a quest'ultimo un risultato sotto forma di di documenti HTML 8/9 Prof. Massimo PALOMBO -IIS “A. MEUCCI” Casarano Schema di comportamento del web server quando riceve una richiesta dal client CLIENT WEB SERVER 9/9