Caratteristiche distribuite, architettura, tipi, obiettivi, applicazioni

Caratteristiche distribuite, architettura, tipi, obiettivi, applicazioni

IL Sistemi distribuiti Sono pezzi di software che servono a coordinare le azioni di diversi computer. Questo coordinamento è ottenuto dallo scambio di messaggi, cioè con pezzi di dati che trasmettono informazioni.

I sistemi distribuiti richiedono componenti simultanei, una rete di comunicazione e un meccanismo di sincronizzazione. Consentono di condividere risorse, incluso il software, per sistemi connessi a una rete. Pertanto, il sistema si basa su una rete che collega i computer e gestisce i messaggi.

A e B (sistemi distribuiti). B (sistema parallelo). Miym/CC BY-SA (https: // creativeCommons.Org/licenze/by-sa/3.0)

Il calcolo distribuito è un'area di informatica responsabile dell'analisi dei sistemi distribuiti. Il programma per computer eseguito in un sistema distribuito è chiamato programma distribuito.

In un contesto in cui possano esistere centinaia o migliaia di computer, il che è una proporzione comune nelle grandi aziende Internet, è molto comune che ci siano guasti dei componenti, sia hardware, rete, dischi, ecc., E il sistema deve essere pronto ad affrontarli in ogni momento.

[TOC]

Distribuzione dei dati

La distribuzione è la chiave per gestire i conglomerati di dati molto grandi. È necessario ottenere la scalabilità, che sono i mezzi per mantenere prestazioni stabili quando i cluster di dati crescono aggiungendo nuove risorse al sistema.

D'altra parte, la distribuzione presenta una serie di problemi tecnici che rendono la progettazione e l'implementazione di una memoria e di calcolo distribuiti. Un punto da tenere in considerazione è il rischio di possibili guasti.

Caratteristiche dei sistemi distribuiti

A e B (sistemi distribuiti). B (sistema parallelo). Miym/CC BY-SA (https: // creativeCommons.Org/licenze/by-sa/3.0)

Compatibilità

I dispositivi possono funzionare con diversi sistemi operativi. Ciò non impedisce loro di offrire sempre gli stessi servizi agli utenti. Per questo motivo, tutti i dispositivi connessi sono compatibili tra loro.

Un altro problema fondamentale è la progettazione del software, perché questo è anche compatibile con tutti i sistemi e gli utenti che si trovano su ciascun computer.

Tolleranza agli errori

Essendo un'unica rete con molti computer, se uno qualsiasi dei suoi componenti fallisce, altri possono continuare a svolgere completamente la loro funzione, evitando rapidamente errori.

Per questo motivo, i sistemi distribuiti di solito forniscono molta fiducia quando si lavora con loro, perché è abbastanza raro che il sistema fallisca completamente, perché le attività non risiedono in un singolo dispositivo, ma in diverse apparecchiature.

Middleware e API

Diversi processori utilizzano un middleware di distribuzione, contribuendo a condividere diverse risorse e capacità per fornire agli utenti una rete coerente e integrata. Offre inoltre alle applicazioni una serie di servizi, come il recupero della sicurezza e dei fallimenti.

Attualmente, vengono ascoltati di più sulle interfacce di programmazione delle applicazioni (API), che funzionano come porta di collegamento in cui le applicazioni possono comunicare. Le applicazioni non hanno bisogno di sapere nulla su altre applicazioni, tranne la loro API.

Può servirti: vantaggi e svantaggi di Internet

Architettura

Architettura cliente-server

Un particolare computer chiamato server può eseguire determinate attività, che sono chiamate servizi. Ad esempio, offrire file tramite la rete, capacità di eseguire determinati comandi o lanciare dati su una stampante. Il client è il computer che richiede i servizi.

Il computer noto principalmente per il servizio che fornisce può essere chiamato stampa server, file server, ecc.

Architettura da uguale a uguale (peer-to-peer)

Presuppone che ogni computer abbia funzionalità simili e che nessuna macchina sia dedicata a servire gli altri. Un esempio di questo è un insieme di microcomputer in un piccolo ufficio.

La rete consente alle persone di accedere ai file degli altri e di inviare e -mail, ma nessun computer fornisce un set specifico di servizi.

Varie architetture di livello

Per alcuni servizi può avere senso fare connettività gerarchica. Per esempio:

  • Un server durante l'esecuzione delle attività può contattare un altro server di diversi tipi
  • L'architettura cliente-server è un'architettura a due livelli.

Architettura del gruppo di processori

Un sistema operativo potrebbe avviare automaticamente i processi di computer inattivi e persino migrare i processi in sistemi con un numero maggiore di cicli disponibili per la CPU. In altri casi, un utente può avviare o spostare manualmente i processi nei sistemi disponibili.

Tipi di sistemi distribuiti

Calcolo in cluster

È un insieme di computer simili collegati attraverso una rete locale ad alta velocità. Viene frequentemente utilizzato per la programmazione parallela, in cui un singolo programma per computer intensivo viene eseguito in parallelo su diversi computer.

Ogni cluster è costituito da una serie di nodi computer monitorati e gestiti da uno o più nodi chiamati insegnanti.

Calcolo di rete

È costituito da nodi con differenze marcate nell'hardware e nella tecnologia rossa. L'attuale tendenza ad avere una configurazione specifica di nodi per determinate attività ha portato a una maggiore diversità, che è la più frequente nel calcolo della rete.

Cloud computing

È un insieme di risorse virtualizzate ospitate nel data center di un fornitore cloud. I clienti possono stabilire infrastrutture virtualizzate per sfruttare una varietà di servizi cloud.

Per l'utente, sembra che stia affittando il proprio computer esclusivo. Tuttavia, in realtà è probabile che lo condivida con altri clienti. Lo stesso vale per l'archiviazione virtuale.

Queste risorse virtualizzate possono essere configurate in modo dinamico, consentendo così la scalabilità. Se sono necessarie più risorse per computer, il sistema può acquisire di più.

Può servirti: sistemi esperti: storia, caratteristiche, vantaggi, svantaggi

Obiettivi

Condividi risorse

Che si tratti di strutture di archiviazione, file di dati, servizi o reti, è possibile che tu possa condividere queste risorse tra le applicazioni, per semplice economia.

È molto più economico avere un'installazione di archiviazione condivisa tra più applicazioni, piuttosto che dover acquistare e mantenere l'archiviazione per ognuno separatamente.

Astrazione

Per nascondere che i processi e le risorse siano distribuiti in diversi computer, possibilmente diffusi geograficamente. Cioè, i processi e le risorse sono astratti dall'utente.

Apertura

Fondamentalmente indica che viene eretto un sistema distribuito con elementi che possono essere facilmente integrati in altri sistemi. Soddisfando le regole normalizzate, qualsiasi processo con tale interfaccia può comunicare con un altro processo con la stessa interfaccia.

Interoperabilità e portabilità

Si riferisce quando due sistemi di diversi produttori possono lavorare insieme. La portabilità determina fino a che punto un'applicazione fatta per il sistema A può funzionare nel sistema B senza modifiche.

Scalabilità

È necessario quando c'è un aumento degli utenti che hanno bisogno di più risorse. Un buon esempio è l'aumento del pubblico di Netflix ogni venerdì sera.

Significa aggiungere dinamicamente più risorse, come aumentare la capacità della rete consentendo una maggiore trasmissione video e riducendola una volta che il consumo si è normalizzato.

Applicazioni

Erlag Virtual Machine

Il pacchetto software Lyme si basa su Erlang e offre un'alternativa alla lampada. Shmuel Csaba Otto Tranian/CC BY-SA (https: // creativeCommons.Org/licenze/by-sa/3.0)

Erlang è un linguaggio funzionale che ha una grande semantica per la concorrenza, la distribuzione e la tolleranza dei guasti. Una macchina virtuale Erlang gestisce la distribuzione di un'applicazione ERLAG.

Questo modello funziona con molti processi isolati, tutti con la capacità di comunicare tra loro attraverso un messaggio incorporato di messaggi.

La macchina virtuale di Erlang può essere collegata ad altre macchine virtuali che si trovano in luoghi diversi. Questo sciame di macchine virtuali esegue un'unica applicazione, gestendo i guasti di una macchina che programmano la sua esecuzione in un altro nodo.

Bittorrent

Funzionamento della rete BitTorrent. Mrjavi/CC BY-SA (https: // creativeCommons.Org/licenze/by-sa/4.0)

È uno dei protocolli più utilizzati per trasferire file di grandi dimensioni sul Web. L'idea principale è quella di facilitare il trasferimento di file tra diverse coppie sulla rete senza dover passare attraverso un server principale.

Quando si utilizza un cliente BitTorrent, è possibile connettersi a più computer in tutto il mondo per scaricare un file. Un computer che funge da coordinatore aiuta a mostrare i nodi sulla rete che hanno il file desiderato.

BitTorrent ti consente di ospitare i file volontariamente e caricarli su altri utenti che li desiderano. È così popolare perché è stato il primo del suo genere a offrire incentivi a contribuire alla rete.

Può servirti: Central termoelettrico

Vantaggi

- Più nodi possono essere facilmente aggiunti al sistema distribuito, ovvero può essere scalato se necessario.

- Tutti i nodi nel sistema distribuito sono collegati tra loro. Pertanto, ciascuno dei nodi può facilmente condividere i dati con gli altri nodi.

- Risorse come le stampanti possono essere condivise con più nodi invece di limitarne uno.

- L'errore di un nodo non porta al guasto dell'intero sistema distribuito. Gli altri nodi possono ancora comunicare tra loro.

Svantaggi

- Alcuni messaggi e dati possono essere persi nella rete quando si passa da un nodo all'altro.

- È difficile fornire un'adeguata sicurezza nei sistemi distribuiti perché sia ​​i nodi che le connessioni devono essere garantiti.

- Un sovraccarico sulla rete può verificarsi se tutti i nodi del sistema distribuito provano a inviare i dati contemporaneamente.

- Il database collegato ai sistemi distribuiti è piuttosto complicato e difficile da gestire rispetto a un singolo sistema di utenti.

Esempi di sistemi distribuiti

I sistemi distribuiti possono essere utilizzati in un gran numero di casi, come sistemi bancari elettronici, giochi multiplayer di massa e reti di sensori.

STACKPATH

Utilizzare un sistema distribuito particolarmente grande per aumentare il servizio di rete di consegna dei contenuti. Ognuno dei suoi punti di presenza (POP) ha nodi, che forma un sistema distribuito in tutto il mondo.

StackPath memorizza il contenuto richiesto più recentemente e più frequentemente nelle posizioni più vicine al sito utilizzato.

Quando si interconnevano i computer virtuali, oltre a sfruttare la velocità e l'agilità dell'informatica della punta, il sistema può gestire migliaia di applicazioni simultanee molto rapidamente.

Internet

È il più grande sistema distribuito del mondo. Qualsiasi utente si sente come se fosse un singolo sistema, sebbene sia costituito da milioni di computer.

Attraverso il concetto di astrazione non c'è idea di dove vengano archiviati i dati, quanti server sono coinvolti o come arrivano le informazioni sul browser. Il browser dissolve la complessità di Internet.

Questo vale anche per applicazioni come Gmail Email o qualsiasi altra applicazione che può essere utilizzata. Tutte le persone interagiscono quotidianamente con le applicazioni distribuite.

Riferimenti

  1. Paul Krzyzanowski (2018). Sistemi distribuiti. Preso da: CS.Rutgers.Edu.
  2. Catherine Paganini (2019). Primo: sistemi distribuiti e calcolo nativo cloud. Il nuovo stack. Preso da: therewstack.Io.
  3. Università internazionale di Valencia (2020). Sistemi distribuiti, caratteristiche e classificazione. Tratto da: Universityviu.com.
  4. David Meador (2018). Sistemi distribuiti. Tutorial Punto. Tratto da: Tutorialspoint.com.
  5. Robert Gibb (2019). Cos'è un sistema distribuito? Tratto da: blog.STACKPATH.com.
  6. Stanislav Kozlovski (2018). Per approfondire l'introduzione ai sistemi distribuiti. Campo di codice gratuito. Tratto da: freecodecamp.org.