Programmazione Server Side e Database in rete

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