Sistemi distribuiti: Differenza tra architettura peer-to-peer ed orientata a servizi

Sistemi distribuiti: Differenza tra architettura peer-to-peer ed orientata a servizi

Dopo aver visto, nell’articolo precedente, l’architettura Client-Server, passiamo ora ai modelli di calcolo distribuito inter-organizzativo, considerando i due seguenti modelli di calcolo:

  • Architettura orientata ai servizi;
  • Architettura peer-to-peer (P2P);

Sistemi distribuiti: Differenza tra architettura peer-to-peer ed orientata a servizi

Architettura orientata ai servizi

Si chiama inter-organizzativo perché, a differenza delle architetture a oggetti distribuiti che solitamente vengono utilizzate per realizzare applicativi nel contesto aziendale, dove tutti i nodi è come se fossero circoscritti a livello organizzativo e non c’è un’accessibilità dall’esterno, questi due modelli sono i modelli più aperti sulla rete, come ad esempio i sistemi che permettono la prenotazione di un viaggio, in cui servizi diversi, forniti da applicativi diversi che non hanno nessuna affinità tra di loro, vengono collegati dinamicamente quando l’utente fa la sua richiesta. Non c’è uno schema predefinito dell’architettura, ma c’è il vincolo che ogni servizio deve trascrivere le proprie funzionalità in un formato dati conosciuto anche dagli altri, essere recuperabile da un elenco di tutti i servizi possibili ed esporre un interfaccia facilmente integrabile negli applicativi che si dovranno ad esso connettere. Queste sono le differenze sostanziali tra un architettura a oggetti distribuiti e un’architettura a servizi distribuiti.

Vantaggi:

  • I servizi possono essere forniti da fornitori che sono sia dentro che fuori del sistema. Esiste infatti una sorta di catalogo pubblico di servizi. Ciò comporta un’elevata affidabilità,perché se in quel momento richiedo un servizio da un applicativo che non è in funzione posso immediatamente rimpiazzarlo con un altro, e quindi risulterà sempre minore la situazione in cui una funzionalità non posso essere fornita, perché il sistema è in grado di individuare subito un altro applicativo che fornisce la stessa funzionalità.
  • Il fornitore può riconoscere nuovi servizi, quindi alta adattabilità, scalabilità, riconfigurabilità.
  • Vincolo del pagamento, talvolta i servizi sono a pagamento.
  • Le applicazioni sono reattive, quindi si adattano al contesto.

Architettura Peer-to-Peer (P2P)

Nell’architettura peer-to-peer (P2P) abbiamo invece una struttura decentralizzata, dove tutte le elaborazioni possono essere svolte dai singoli nodi della rete, e lo scopo è quello di condividere le risorse di calcolo tra diversi computer presenti su una rete anche di dimensioni notevolmente ampie. I sistemi p2p sono utilizzati principalmente per sistemi personali, in cui si vogliono condividere file, messaggeria istantanea o comunicazione diretta con gli utenti. L’architettura logica della rete è la stessa del sistema. L’applicazione in genere è comunque basata su componenti che possono essere distribuiti sui singoli elementi dell’architettura hardware sottostante. L’architettura logica(software) può essere decentralizzata o semi-centralizzata.

Nell’architettura decentralizzata ogni nodo può essere a conoscenza degli altri nodi e scambiare direttamente informazioni, i nodi sono organizzati in località e pertanto alcuni nodi fungono da ponte tra un nodo e un altro. Non solo perciò dei singoli elementi funzionanti ma sono anche dei commutatori nella comunicazione. Ovviamente si ha ridondanza, che può essere sia un vantaggio che uno svantaggio, poiché essa protegge il sistema dal verificarsi degli errori, e over-head del sistema perché la stessa ricerca può essere elaborata da diversi nodi e quindi si ha maggiore comunicazione e sovraccarico del sistema (Svantaggio).

Nell’architettura semi-centralizzata invece, uno o più nodi svolgono funzioni tipo Server, che indirizzano la comunicazione verso altri nodi, quindi si ha un minimo di gerarchia ma l’applicazione funge sempre come se non ci fosse un server.

Rispetto all’architettura a servizi distribuiti il P2P è più efficiente, però essendo in connessione 1 a 1 si ha una maggiore esposizione ai rischi di protezione. E’ preferibile non utilizzarli in ambienti lavorativi.

Abbiamo quindi categorizzato i sistemi distribuiti da un punto di vista software con questi quattro modelli, che ci definiscono le caratteristiche generali secondo cui i componenti dell’architettura del sistema interagiscono.

Conoscere i modelli base delle architetture, dei sistemi distribuiti, però non ci basta perché le architetture e i sistemi software da realizzare sono molto complessi e quindi ci occorre fornire ulteriori linee guida per integrare i diversi componenti. Per questo motivo passiamo allìutilizzo dei Pattern architetturali.

 

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 *