Definizione e caratteristiche di un sistema distribuito (distributed system)

Definizione e caratteristiche di un sistema distribuito (distributed system)

Definizione sistema distribuito

Un sistema distribuito (distributed system) è una collezione di computer che appare ai propri utenti come un singolo sistema coerente.

– Un sistema distribuito è costituito da componenti (computer) autonomi.
– Un sistema distribuito implementa la collaborazione fra le sue componenti.

Definizione e caratteristiche di un sistema distribuito (distributed system)

Caratteristiche ed obiettivi

Accessibilita’ alle risorse
– L’accesso alle risorse deve essere, per gli utenti, facile.
– La condivisione delle risorse deve essere efficiente e controllata.

Trasparenza

a. trasparenza all’accesso

Il concetto di trasparenza all’accesso si basa su due principi fondamentali:
1. nascondere le differenze architetturali fra le varie macchine
2. concordare il formato di rappresentazione dei dati sulle diverse macchine

b. trasparenza all’ubicazione

Si basa sul concetto di rendere trasparente agli utenti l’ubicazione delle risorse: un utente che condivide una risorsa deve utilizzare un nome logico che sia completamente disaccoppiato dalla reale ubicazione dalla risorsa stessa.

c. trasparenza alla migrazione

Con questo tipo di trasparenza si ottiene di poter facilmente spostare una risorsa, senza dover necessariamente modificare quello che è il suo nome logico, mediante il quale gli altri utenti hanno accesso alla risorsa stessa.

d. trasparenza al riposizionamento

E’ un tipo di trasparenza più restrittivo rispetto alla trasparenza alla migrazione, in quanto prevede la possibilità di spostare la risorsa quando ancora quest’ultima è in uso da parte di un utente o applicazione.

e. trasparenza alla replica

Si tratta di una trasparenza basata sul concetto di celare all’utente o all’applicazione il numero reale di copie di una risorsa .

f. trasparenza alla concorrenza

Si tratta di nascondere all’utente l’utilizzo condiviso di una stessa risorsa, insieme ad altri utenti.

g. trasparenza ai guasti

Si tratta di nascondere all’utente che una risorsa qualsiasi ha smesso di funzionare.

Apertura

Un sistema distribuito si dice aperto se i suoi servizi sono offerti nel rispetto di standard rules che ne descrivono la sintassi e la semantica.
I servizi nei sistemi distribuiti vengono organizzati in interfacce, spesso descritte in IDL (interface definition language).
Questo tipo di linguaggio permette di estrinsecare la descrizione sintattica, mentre per quanto riguarda l’aspetto semantico (ovvero ciò che realmente il servizio svolge) si ricorre all’utilizzo del linguaggio naturale.Questo tipo di accorgimento permette di ottenere, mediante la definizione delle interfacce, la realizzazione di diverse implementazioni delle stesse.
Alle diverse implementazioni corrisponderà un funzionamento differente a livello di meccanismi locali, ma identico a livello di servizio globale.
Per questo motivo una definizione di interfaccia deve mantenere le caratteristiche di completezza e neutralità.Completezza perché la definizione di interfaccia deve permettere al programmatore di capire cosa esattamente dovrà fornire il servizio.
Neutralità perché la definizione di interfaccia non deve vincolare eccessivamente il programmatore ad adottare un determinato tipo di implementazione.
Grazie a queste due caratteristiche è possibile soddisfare i requisiti di interoperabilità e portabilità del sistemi distribuiti.
Interoperabilità indica la capacità di sistemi o componenti eterogenei di coesistere e collaborare fra loro mediante utilizzo di servizi descritti e definiti mediante uno standard comune.
Portabilità indica che un’applicazione implementata su sistemi distribuiti A, può essere eseguita su un sistemi distribuiti B diverso, che implementa le stesse interfacce di A.
Infine un sistemi distribuiti aperto dovrebbe essere anche ampliabile.
In sintesi l’apertura di un sistema distribuito significa:
– estendibilità del sistema
– re-implementazione del sistema
Per ottenere ciò è necessario provvedere a:
– una documentazione estesa
– specifica dei servizi e delle relative interfacce
– formalizzazione dei protocolli utilizzati
– aderenza agli standard

Scalabilità

Un sistema può essere definito scalabile :
– rispetto alla propria dimensione, ovvero si possono aggiungere liberamente utenti e risorse al sistema
– dal punto di vista geografico, ovvero utenti e risorse possono anche essere molto lontani fra di loro
– dal punto di vista dell’amministrazione, cioè deve essere facilmente gestibile anche se copre differenti strutture.
Spesso la scalabilità, al crescere delle dimensioni del sistema, aumenta il deperimento delle prestazioni.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *