GLOSSARIO
GUI
|
Fyle System
|
Database
|
Rete geografica
|
Rete locale
|
Internet
|
SQL
|
Modem
|
Applicazione
|
JAVA
|
Ipermedia
|
TCP/IP
|
|
|
|
|
|
|
Il modello client/server è una tecnica di
programmazione che prevede la separazione delle attività di elaborazione in
modo da dedicare una parte all’interfaccia utente e l’altra allo svolgimento
della parte centrale dell’applicazione (gestione delle risorse, dati, immagini,
programmi, ecc.). La separazione delle attività consente una localizzazione
diversa, cosicché il client e il server possono risiedere su due
elaboratori differenti, separati da una linea o una rete di comunicazione.
La programmazione client/server offre un ambiente aperto e flessibile: aperto, perché
una nuova entità client può essere
inserita agevolmente nell’ambiente; flessibile perché la modifica di uno dei client (espansione, modifiche software)
non sconvolge l’intera architettura.
Il modello client/server prevede due entità separate logicamente o spesso
anche fisicamente e collegate tra loro attraverso una rete per svolgere e
portare a compimento un lavoro o attività.
Le applicazioni client/server sono quindi suddivise in due parti: il client si incarica della gestione
dell’interfaccia utente (GUI), utilizzando gli strumenti di interfaccia
grafica; il server si incarica della
gestione della risorsa e interfaccia ad esempio il sistema operativo, il File
System, un Database, una risorsa hardware (stampante, modem, disco, ecc.).
Processo
client:
gestisce da un lato l’interfaccia utente (o un altro processo client) che emette la richiesta,
dall’altro gestisce la comunicazione (protocollo) verso il server;
Processo
server:
gestisce da un lato la comunicazione proveniente dal client (interpretazione della richiesta) e dall’altro la risorsa
(es. Database, File System, Sistema Operativo, ecc.).
La comunicazione tra client e server avviene attraverso un mezzo di comunicazione o una rete,
quindi esiste la necessità di definire un protocollo di comunicazione a pari
livello, che comunque è indipendente dalla struttura della rete sottostante
(linea diretta, rete locale, rete geografica, Internet).
Le caratteristiche fondamentali del modello client/server sono le seguenti:
SERVIZIO: Il processo server è il
fornitore del servizio; il client è
l’utilizzatore del servizio. Il servizio richiesto dal client (file, record di Database, documento, elaborazione) non è
normalmente residente sullo stesso elaboratore del client ma è sul server.
RISORSE CONDIVISE: un server può offrire
risorse a più client, nello stesso
tempo: gestisce quindi l’accesso a risorse condivise.
PROTOCOLLI ASIMMETRICI: la relazione tra client e server è
molti-a-uno: quindi più client
possono accedere allo stesso server. Il client
inizia sempre il dialogo e richiede un servizio; il server attende passivamente la richiesta del client e quando la riceve elabora la richiesta e invia al client il risultato dell’elaborazione.
TRASPARENZA DELLA LOCAZIONE: il server
è un processo che normalmente risiede su un elaboratore differente da quello
del client; l’applicazione client o l’applicazione server non hanno la visibilità fisica
della locazione dell’entità corrispondente attraverso la rete. Sarà il software
di comunicazione che provvederà a indirizzare correttamente lungo la rete i
messaggi client/server.
INDIPENDENZA HW/SW: il software client/server è indipendente dalla
piattaforma hardware e dai sistemi operativi adottati, cosicché macchine con
hardware differenti e sistemi operativi differenti possono comunicare fra loro
se aderiscono allo stesso modello client/server
in termini di primitive e protocolli adottati.
SCAMBIO DI MESSAGGI: il colloquio tra client e server avviene tramite lo scambio di messaggi con una struttura e una semantica
definita.
SCALABILITA’: i sistemi client/server sono espandibili (scalabili)
in orizzontale: l’aggiunta o la rimozione di una workstation client è semplice
e ha solo un leggero impatto nelle prestazioni. Sono espandibili anche in
verticale, quindi potenziando la macchina server o distribuendo il processo di
elaborazione su più server.
Il modello client/server ha una funzione importante: consente una separazione
dell’elaborazione verso l’utente e verso la macchina o le risorse. Consente
quindi una gestione dell’interfaccia utente su una molteplicità di macchine con
piattaforme hardware e software differenti e una gestione più centralizzata
delle risorse al fine di assicurare
maggior sicurezza e integrità dei dati, oltre a permettere la condivisione di
risorse e lo scambio di informazioni fra i vari client.
Negli anni sessanta
l’elaborazione era fortemente centralizzata su grandi calcolatori (Mainframe),
ai quali si collegavano un elevato numero di terminali. Successivamente con la
riduzione del costo dei processori si è passati all’informatica distribuita,
con uno scambio di dati (risultati), ma senza una cooperazione tra i processi.
L’evoluzione dell’interfaccia utente (grafica, a finestre e ad ipertesto) e
l’evoluzione della tecnologia delle comunicazioni (da reti geografiche a banda
stretta alle reti locali e alle reti geografiche a larga banda) e
successivamente l’evoluzione della programmazione (da programmazione
strutturata a programmazione ad oggetti), ha portato al modello client/server.
Il modello client/server ha
attualmente svariati utilizzi :
FILE SERVER: un file server gestisce un
insieme di file (documenti, immagini, disegni, archivi, ecc.) al servizio dei
vari client attraverso la rete.
DATABASE
SERVER: il client emette una richiesta SQL a un database server che gestisce fisicamente
il database. La risposta è inviata indietro al client attraverso la rete.
TRANSACTION
SERVER: il client invoca una procedura remota che
risiede sul server; la procedura
consiste in un gruppo di comandi SQL con una propria unitarietà che costituisce
la transazione. Il risultato della transazione è inviato indietro al client attraverso la rete.
GROUPWARE
SERVER: gli
utenti possono entrare in contatto con altri utenti attraverso un server che
gestisce la comunicazione tra loro, ad esempio come nella posta elettronica.
WEB SERVER: consente un’applicazione client/server a livello globale tramite
Internet. Nell’accezione più semplice il Web
server restituisce un documento (file) sulla base di una richiesta fatta
dal client (nome del documento).
Il modello client/server del Web è in evoluzione: il Web potrà restituire un oggetto, quindi
si avrà un Object Web. Anche i
browser di conseguenza gestiscono gli oggetti. In parallelo si sviluppano dei Web Application Server, simili a Object Web, in cui all’oggetto
corrisponde un’applicazione.