Sei sulla pagina 1di 7

SISTEMA DISTRIBUITO

1) Organizzazione
Obiettivo: offrire una visione unica del sistema che in realtà è composto da computer
e reti eterogenei.
Soluzione: organizzazione a strati (layer)

Livello superiore: utenti e applicazioni


Livello intermedio: strato software
Livello basso: sistema operativo

Il livello intermedio è spesso chiamato middleware (software che risiede tra un


sistema operativo e le applicazioni eseguite in esso. Funziona come un livello di
traduzione nascosto, consente la comunicazione e la gestione dei dati per le
applicazioni distribuite. Può essere considerato come un raccordo, in quanto connette
due applicazioni per trasmettere dati e database dall'una all'altra. L’ uso del
middleware consente agli utenti di effettuare richieste, ad esempio inviare moduli in
un Web browser o consentire al server Web di restituire pagine Web dinamiche in
base al profilo dell'utente).
I servizi che esso offre sono:
 Servizi di comunicazione: nascondono il passaggio di messaggi a basso livello
Naming: permette alle componenti di essere condivise e consultabili come in un
elenco telefonico
 Salvataggi “persistenti”: middleware avanzati sono integrati con database
 Transazioni distribuite: garantisce l’atomicità delle operazioni
 Sicurezza

2) Caratteristiche

 Deve consentire facilmente la CONNESSIONE TRA UTENTI E RISORSE


 Deve essere TRASPARENTE*, cioè nascondere che le risorse sono distribuite
 Deve essere APERTO**
 Deve essere FLESSIBILE, cioè deve rendere semplice la configurazione del
sistema e l’aggiunta di nuove componenti. Quindi un sistema distribuito aperto
deve essere estensibile
 Deve essere SCALABILE, ovvero si possono aggiungere utenti e risorse anche
fisicamente molto distanti e facile da gestire anche in presenza di organizzazioni
amministrative indipendenti

*Sistema trasparente
Deve nascondere che processi e risorse sono fisicamente distribuite.
Ci sono diversi tipi di trasparenza:
1. Trasparenza di Accesso: nascondere le differenze di rappresentazione dei dati e
del modo in cui gli utenti accedono alle risorse
2. Trasparenza di Locazione: nascondere la locazione fisica di una risorsa
3. Trasparenza di Migrazione: permettere il continuo accesso a risorse che
possono essere spostate (trasparenza di rilocazione se avviene mentre una risorsa è
in uso)
4. Trasparenza di Duplicazione: nascondere la duplicazione di delle risorse (es. per
migliorare le prestazioni)
5. Trasparenza di Concorrenza: nascondere agli utenti che competono per le
medesime risorse
6. Trasparenza ai Fallimenti: nascondere all’utente eventuali guasti di risorse
Trasparenza alla Persistenza: nascondere il tipo di memoria su cui si trova la
risorsa (es. volatile o fissa)

**Sistema aperto
Offre servizi secondo regole standard di solito specificate attraverso interfacce, che
specificano i nomi delle funzioni disponibili e la loro intestazione.
Un’interfaccia dovrebbe essere:
Completa: specifica tutto quello che è necessario per implementarla
Neutra: non dà informazioni su come deve apparire un’implementazione
Particolari sistemi distribuiti:
1) Sistemi MULTICAST ed UNICAST
Nelle reti di computer, l’unicasting si riferisce alla trasmissione di informazioni da
un singolo mittente a un singolo destinatario. Unicasting utilizza protocolli di
consegna IP basati sulla sessione come il protocollo TCP (Transmission Control
Protocol) e UDP (User Datagram Protocol). Viene utilizzato quando una risorsa
privata o univoca viene richiesta da un client. Ma l’unicasting non è adatto quando si
trasmettono informazioni a molti client poiché il mittente deve effettuare connessioni
separate con ogni destinatario.
Il multicasting si riferisce alla trasmissione di informazioni a un gruppo di ricevitori
in una singola trasmissione. Nel multicasting, la sorgente deve trasmettere un
pacchetto di dati solo una volta. I nodi della rete, come i router, fanno le copie
necessarie del pacchetto di dati trasmesso, in modo che possa essere ricevuto da più
ricevitori. I router intermedi inviano i pacchetti ai destinatari che si sono registrati
presso di loro indicando l’interesse a ricevere dati da quel particolare mittente.

Differenza sostanziale tra Unicast e Multicast

- Modo in cui comunicano con il ricevitore.


In unicasting, le informazioni vengono trasmesse a un singolo destinatario da un
singolo mittente e il destinatario ha una relazione diretta con il mittente.
Nel multicasting, le informazioni vengono inviate a più destinatari in un’unica
trasmissione e non esiste una relazione diretta tra mittenti e destinatari.

2) Sistema CLIENT – SERVER


Le applicazioni sono caratterizzate dal ruolo che svolgono nel sistema
Cliente (Client): quando l’applicazione utilizza dei servizi messi a disposizione
da altre applicazioni
Servente (Server): quando l’applicazione fornisce servizi usati da altre
applicazioni
Attore (Actor): quando l’applicazione in contesti diversi assume sia il ruolo di
client sia il ruolo di server

Un client invia una richiesta ad un server per l’esecuzione di un compito (task)


Un task può consistere semplicemente nel richiedere delle informazioni, o
nell’eseguire elaborazioni complesse Il server può essere a sua volta il client di un
altro servizio.
Client e server non hanno senso senza un protocollo di comunicazione che:
- definisca le possibili interazioni fra client e server;
- specifichi i dettagli di ogni interazione definisca le condizioni di errore e le azioni
da svolgere in conseguenza.

Le architetture client-server sono normalmente organizzate a livelli, detti tier, dove


ogni livello risponde a un nodo o gruppo di nodi di calcolo su cui è distribuito il
sistema: ciascun livello funziona da server per i suoi client collocati nel tier
precedente e da client per quello successivo ed è organizzato in base a servizio che
fornisce.

In generale si individuano tre tipi di funzionalità che corrispondo a una struttura in tre
strati o livelli (modello three-tier):

1. Front-end o presentation tier: è l’interfaccia verso l’utente


2. Logica applicativa o middle tier;
3. Back-end con l’accesso alle risorse/ai dati, anche detto data tier.

Architettura a un livello – 1 tier

Architettura a un solo mainframe al quale sono collegati i cosiddetti terminali


“stupidi”, quindi tutta l’elaborazione è effettuata dall’elaboratore centrale e i
terminali servono solo per le fasi di input e output.
Architettura a due livelli – 2 tier

Le funzionalità e le responsabilità sono suddivise su due livelli:

1. Un livello server
2. Un livello client

Si Possono individuare due sottocategorie di architetture a due livelli:

- Il modello thin-client, dove il server è responsabile della logica applicativa e


gestione dei dati e il client è responsabile dell’esecuzione del software di
presentazione;

- Il modello thick-client dove il server é responsabile della gestione dei dati mentre il
client è responsabile di presentazione e logica applicativa.

Architettura a tre livelli – 3 tier

A ogni livello corrisponde uno strato architetturale

I vantaggi sono legati alla distribuzione della quantità di elaborazione a scapito dei
tempi di comunicazione. Inoltre il sistema è facilmente scalabile in quanto
all’aumentare delle richieste di un servizio è possibile aggiungere qualche server in
grado di compensare il carico di lavoro ed è inoltre più tollerante ai guasti. Anche in
termini di sicurezza il modello a tre livelli porta notevoli vantaggi in quanto rende
possibile l’introduzione di sicurezza a livello di servizio e quindi più facilmente
gestibile.

Vantaggi e svantaggi dell’architettura CLIENT – SERVER

Vantaggi:

- Prestazioni e carico di lavoro ridotto: l’elaborazione è ripartita tra il client e il


server; di conseguenza c’è anche l’effetto di riduzione del carico sulla rete che
collega la stazione di lavoro al server, che invece di inviare tutte le richieste del
client avanti e indietro, si limita a inviare solo le domande e le risposte dal server
dell’applicazione.
- Indipendenza dalla stazione di lavoro: gli utenti non sono limitati a un solo tipo
di sistema o piattaforma, in quanto è possibile avere sistemi compatibili con tutte
o quasi le stazioni di lavoro.
- Interoperabilità dei sistemi: il modello client-server, non permette solo di
cambiare in modo del tutto trasparente una componente, ma dà anche la possibilità
alle diverse componenti o sistemi (client, rete o server) di lavorare assieme.
- Scalabilità: la natura modulare del sistema client-server permette sostituzioni
senza danneggiare il resto del sistema. Per esempio, è possibile aggiornare il
server ad una macchina più potente, senza cambiamenti visibili all’utente.
- Integrità dei dati: in quanto il server pùo usufruire e fornire un numero di servizi
che proteggano i dati come, l’archiviazione crittografata dei file, il backup in
tempo reale, l’elaborazione delle transazioni che consente di tenere traccia delle
modifiche apportate ai dati e di correggere eventuali problemi che possono sorgere
- Accessibilità dei dati: il server detiene la maggior parte dei dati in una posizione
centralizzata, più utenti possono accedere e lavorare simultaneamente sui dati
garantendone una maggiore condivisione.
- Amministrazione del sistema: l’ambiente client-server è particolarmente
maneggevole, favorendo una gestione centralizzata del sistema.
- Servizi integrati: tutte le informazioni che il client ha il diritto di utilizzare sono
disponibili sulla propria stazione di lavoro, tramite l’interfaccia
- Mascheramento dell’accesso fisico ai dati: l’accesso ai dati memorizzati in un
punto qualsiasi della rete, dal PC locale, al server locale o anche al server su
WAN, avviene utilizzando lo stesso tipo di richiesta dei dati.
- Indipendenza dal luogo di trattamento dei dati: gli utenti accedono tramite una
stazione di lavoro senza nessuna preoccupazione riguardante l’ubicazione o la
tecnologia dei processori coinvolti.
- Costi operativi ridotti: il costo dell’hardware e del software è in continua
discesa, il che significa che il valore di calcolo è in continuo aumento. Il modello
client-server offre un modo per sfruttare questo andamento, sostituendo i sistemi
di grandi dimensioni spesso molto costosi, con quelli meno costosi e più piccoli
ma collegati in rete.
- Costo dell’hardware ridotto: il costo dell’hardware pùo essere ridotto, in quanto
è solo il server che richiede lo spazio e la potenza di elaborazione sufficiente per
memorizzare e gestire l’applicazione.
- Costi di comunicazione ridotti: l’applicazione svolge parte delle operazioni lato
client, inviando solo una richiesta per l’accesso ai servizi del server attraverso la
rete, quindi una minore quantità di dati passa attraverso la rete.

Svantaggi:

- Costi di manutenzione: il principale svantaggio di questo modello è dato


dall’aumento del costo del personale amministrativo e di sostegno per mantenere
il server; appena aumenta la quantità di informazioni gestite dal server stesso,
diviene necessario assumere un amministratore del server.
- Costo della formazione: il personale d’amministrazione deve acquisire
familiarità con il sistema operativo e l’applicazione, specialmente lato server.
- Costo dell’hardware: quando si vuole avere un server con delle buone
prestazioni e un’integrità dei dati ottima si verifica un aumento dei costi
dell’hardware, dovuto all’acquisto di hardware ad alta potenza
- Costo del software: il costo complessivo del software è generalmente superiore a
quello dei PC tradizionali.
- Complessità: le componenti che costituiscono l’intero sistema client-server
possono essere molte, e, più sono le componenti, più sono le cose che possono
andare storte, rendendo più difficile individuare la sorgente del problema quando
si verificano degli errori o, ancora peggio, quando il sistema si blocca.

Potrebbero piacerti anche