Salta al contenuto principale

In questa appendice verranno considerate alcune architetture dei sistemi di elaborazione, in particolare verranno considerati alcuni sistemi distribuiti.


Si consideranno i sistemi stand-alone, i sistemi client-server a 2 livelli (2-tier) e i sistemi con Client-Application Server-Database Server a tre livelli (3-tier).
 

Sistemi Stand-alone

Nei sistemi Stand-alone un oggetto o di un software è capace di funzionare da solo o in maniera indipendente da altri oggetti o software, con cui potrebbe altrimenti interagire.

I primi sistemi stand-alone non avevano sistema operativo: invece, i programmi utente interagivano direttamente con le risorse hardware.

In un programma, indica il fatto che tale programma può funzionare senza che siano richiesti altri componenti o addirittura senza sistema operativo (è errato indicare con tale termine programmi che possono funzionare anche senza installazione: questi sono chiamati applicazioni portabili, dall'inglese portable applications).

Invece in una periferica significa che tale periferica può svolgere alcune delle proprie funzioni senza essere collegata ad un calcolatore.
 

Sistemi Client Server

Un'applicazione o un sistema client-server (cliente-servitore) è un tipo di applicazione di rete o un sistema nel quale un computer o una applicazione client effettua delle richieste ad una server application o ad un sistema di database.
Molte applicazione funzionano in un ambiente client/server, questo significa che dei terminali client (dei terminali che fanno parte della rete) contattano un server, un terminale solitamente molto potente in termini di capacità d'entrata-uscita, che fornisce loro dei servizi. Questi servizi sono dei programmi che forniscono dei dati.

Possiamo elencare qui alcuni esempi di sistemi client/server:

  • Database server: per la gestione di grandi quantità 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
 

Quasi tutti i sistemi operativi utilizzano, per il funzionamento dei vari processi, dei meccanismi basati sul modello client-server.

In un ambiente client/server, sul computer client e’ in esecuzione un software applicativo (programma client )
In generale è compito del programma client:

– Abilitare l’utente a spedire una richiesta di informazione al server.
– Formatta la richiesta in modo che il server possa capirla.
– Formatta la risposta del server in modo che l’utente possa leggerla


Invece sul computer server viene eseguito un software applicativo chiamato programma server.
Il programma server :

– Riceve una richiesta da un client e processa la richiesta
– Risponde, spedendo l’informazione richiesta, al client


L'architettura Client Server è descritta nella seguente figura:
Client-Server

Fonte: http://static.commentcamarche.net/it.kioskea.net/pictures/cs-images-cs.gif


Affinché l'interazione tra client e server possa essere effettuata, è necessario che entrambi utilizzino un linguaggio comune, ovvero un protocollo applicativo.
Possiamo definire il Protocollo come l'insieme di regole che devono essere rispettate affinché Client e Server si comprendano e funzionino bene.

Su Internet vengono utilizzati numerosi protocolli specifici delle applicazioni, uno per ogni servizio di rete:
Esempi di protocolli:

  • Simple Mail Transfer Protocol (SMTP) per la posta elettronica;
  • File Transfer Protocol (FTP) per il trasferimento di file tra host;
  • Il protocollo su cui si basa World Wide Web, denominato Hyper-Text Transfer Protocol (HTTP);


Il termine server è applicabile a qualsiasi programma che offra un servizio accessibile su una rete. Un server accetta una richiesta sulla rete, esegue il suo servizio e restituisce il
risultato al mittente.
Un programma in esecuzione diventa un client quando invia una richiesta a un server e aspetta una risposta.
Il server inizia l'esecuzione prima che cominci l'interazione e (di solito) continua ad accettare richieste e inviare risposte senza mai smettere.
Il client è un qualsiasi programma che invia una richiesta e aspetta una risposta; tipicamente termina dopo avere usato un server un numero finito di volte.
Il server aspetta le richieste dal client a una porta ben nota che è stata riservata per il servizio che offre.



Nei sistemi a due livelli (2-tier) si usa il paradigma client server.

2-tier

Fonte: http://static.commentcamarche.net/it.kioskea.net/pictures/cs-images-2-tier.gif

Sono in pratica dei sistemi client/server per i quali il cliente richiede una risorsa e il server gliela fornisce direttamente, utilizzando le proprio risorse. Questo significa che il server non fa appello ad un'altra applicazione per fornire una parte del servizio.

 

Sistemi 3-tier con Application Server


Si parla di sistemi a tre livelli (3-tier) quando:

  • Un client, cioè il computer che richiede la risorsa, dotata di un'interfaccia utente (generalmente un navigatore web) incaricato della presentazione ;
  • Il server d'applicazione (detto anche middleware), incaricato di fornire la risorsa ma facendo riferimento ad un altro server
  • Il server database (detto anche backoffice), che fornisce al server dell'applicazione i dati di cui ha bisogno.

3-tier

Fonte: http://static.commentcamarche.net/it.kioskea.net/pictures/cs-images-3-tier.gif

Nell'architettura a tre livelli (detta anche thin client) il client non comunica direttamente con il server del database ma con un server dell'applicazione. In questo modo il client svolge solo il compito di interfaccia utente e la logica dell'applicazione viene inserita nel server applicativo. Questa soluzione è sicuramente più modulare: se si modifica la base di dati sottostante, il server dell'applicazione richiede a sua volta delle modifiche, ma l'interfaccia utente può anche restare invariata. Server applicativo e server di database possono risiedere nella stessa macchina o su macchine diverse collegate in rete.

Molte applicazioni Web utilizzano questa architettura su piattaforma LAMP (Linux come sistema operativo, Apache come web server, PHP come linguaggio di programmazione e MySQL come database).

Con database, banca dati o base di dati, indica un insieme di archivi collegati secondo un particolare modello logico (relazionale, gerarchico o reticolare) e in modo tale da consentire la gestione dei dati stessi (inserimento, ricerca, cancellazione ed aggiornamento) da parte di particolari applicazioni software dedicate. Nei database i dati vengono suddivisi per argomenti (in tabelle) e poi tali argomenti vengono suddivisi per categorie (campi).

Nell'architettura a 3 livelli invece, rispetto a quella a due livelli, le applicazioni a livello del server sono delocalizzate, il che significa che ogni server è specializzato in un compito (server web/server database ad esempio).
L'architettura a tre livelli permette :

  • Una più grande flessibilità :
  • Una maggiore sicurezza dato che questa può essere definita in maniera indipendente per ogni servizio e ad ogni livello :
  • Delle performance migliori, dato che condivide dei compiti tra i differenti server.

 

 


Fonti di questa appendice:
http://it.kioskea.net/contents/cs/csintro.php3
http://it.wikipedia.org/wiki/Sistema_client/server