Sistemi centralizzati e sistemi distribuiti

Sistemi centralizzati e sistemi distribuiti

Introduzione

Le architetture dei sistemi informativi si sono sviluppate ed evolute nel corso degli anni passando da schemi centralizzati a modelli distribuiti e diffusi, maggiormente rispondenti alle necessità di decentralizzazione e cooperazione delle moderne organizzazioni. In questa tendenza alla distribuzione svolgono un ruolo importante le tecnologie a oggetti distribuiti e il Distributed Object Computing (DOC).

Questo contributo vuole fornire un quadro d’assieme dello stato dell’arte  delle tecnologie per la realizzazione di sistemi distribuiti e permettere la comprensione delle loro potenzialità nel breve e medio periodo. In particolare:

  • sono introdotti i concetti di architettura centralizzata ed architettura distribuita e, dall’analisi critica dei vantaggi e degli svantaggi offerti dai due tipi di architettura, è presentato e descritto nelle sue caratteristiche principali il concetto di Distributed Object Computing (DOC);
  • sono descritte le metodologie e i modelli adottati per la progettazione di sistemi ad oggetti distribuiti;
  • sono illustrate le tecnologie principali disponibili per realizzare sistemi ad oggetti distribuiti;
  • è fornita una trattazione dei possibili contesti applicativi nei quali il D.O.C. può trovare fertile campo di applicazione;
  • sono svolte alcune considerazioni finali riguardo alle criticità attuali e alle linee evolutive future.

Sistemi centralizzati e sistemi distribuiti

Si parla di sistema informatico centralizzato quando i dati e le applicazioni risiedono in un unico nodo elaborativo, si veda a tal proposito la figura seguente.

Sistema informatico centralizzato
Sistema informatico centralizzato

Viceversa, si parla di sistema informatico distribuito quando almeno una delle seguenti due condizioni è verificata:

  • le applicazioni, fra loro cooperanti, risiedono su più nodi elaborativi (elaborazione distribuita);
  • il patrimonio informativo, unitario, è ospitato su più nodi elaborativi (base di dati distribuita).

In termini generali, quindi, un sistema distribuito è costituito da un insieme di applicazioni logicamente indipendenti che collaborano per il perseguimento di obiettivi comuni attraverso una infrastruttura di comunicazione hardware e software, si veda dunque la figura seguente.

Sistema informatico distribuito
Sistema informatico distribuito

Sistemi distribuiti: I sistemi client-server

Un tipo particolare di sistema distribuito è quello client-server, caratterizzato dalla relazione di servizio secondo la quale più processi client avviano un dialogo richiedendo servizi che sono soddisfatti da corrispondenti processi server. Il dialogo fra processi client e processi server è di tipo sincrono, ovvero:

  • il processo server è in generale inattivo, in attesa che gli pervenga una richiesta di servizio;
  • il processo client, quando invia una richiesta di servizio, rimane bloccato, in attesa del ricevimento della corrispondente risposta, come rappresentato nella figura seguente.

La relazione client/server in generale implica l’uso di protocolli asimmetrici, in quanto tipicamente un server può servire più client; per questo motivo il server gestisce risorse condivise (dagli n client che a lui si riferiscono) e deve essere progettato con molta cura, in quanto deve operare in condizioni di carico elevato (molte richieste contemporanee), deve preoccuparsi di realizzare meccanismi per salvaguardare la consistenza nell’accesso alle risorse condivise (tipicamente la base informativa a cui si appoggia) e deve essere scalabile, cioè deve poter aumentare le proprie dimensioni e capacità di servizio per soddisfare un numero crescente di client.

Le applicazioni che costituiscono un sistema distribuito sono caratterizzate dal ruolo che svolgono nel sistema stesso:

  • Cliente (Client): una applicazione assume il ruolo di Cliente quando è utilizzatore di servizi messi a disposizione da altre applicazioni;
  • Servente (Server). una applicazione assume il ruolo di Servente quando è fornitore di servizi usati da altre applicazioni;
  • Attore (Actor). una applicazione assume il ruolo di Attore quando assume in diverse situazioni nel contesto del sistema sia il ruolo di Cliente che quello di Servente.
Relazione fra processo client e processo server
Relazione fra processo client e processo server

 

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 *