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.