Il Sistemi distribuiti sono pezzi di software che servono a coordinare le azioni di diversi computer. Questo coordinamento si ottiene attraverso lo scambio di messaggi, cioè con pezzi di dati che trasmettono informazioni.
I sistemi distribuiti richiedono componenti concorrenti, una rete di comunicazione e un meccanismo di sincronizzazione. Consentono la condivisione di risorse, compreso il software, da parte dei sistemi connessi a una rete. Pertanto, il sistema si basa su una rete che collega i computer e gestisce l'instradamento dei messaggi..
Il calcolo distribuito è un'area dell'informatica responsabile dell'analisi dei sistemi distribuiti. Il programma per computer che gira su un sistema distribuito è chiamato programma distribuito.
In un contesto in cui possono esserci centinaia o migliaia di computer, che è una proporzione comune nelle grandi società Internet, è molto comune che ci siano guasti ai componenti, siano essi hardware, rete, dischi, ecc., E il sistema deve essere preparato per affrontarli in ogni momento.
Indice articolo
La distribuzione è fondamentale per poter gestire cluster di dati di grandi dimensioni. Necessario per la scalabilità, che è il mezzo per mantenere prestazioni stabili quando i pool di dati crescono aggiungendo nuove risorse al sistema.
D'altra parte, la distribuzione presenta una serie di problemi tecnici che rendono importante considerare la progettazione e l'implementazione del calcolo e dell'archiviazione distribuiti. Un punto da tenere in considerazione è il rischio di possibili guasti.
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 collegati sono compatibili tra loro..
Un altro aspetto fondamentale è il design del software, perché è anche compatibile con tutti i sistemi e gli utenti che si trovano su ogni computer..
Essendo un'unica rete con molti computer, se uno qualsiasi dei suoi componenti si guasta, gli altri possono continuare a svolgere pienamente la loro funzione, evitando rapidamente errori.
Per questo motivo, i sistemi distribuiti tendono a fornire 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 computer diversi.
Processori differenti utilizzano middleware di distribuzione, aiutando a condividere risorse e capacità differenti per fornire agli utenti una rete coerente e integrata. Offre inoltre alle applicazioni una serie di servizi, come la sicurezza e il ripristino in caso di arresto anomalo.
Oggi si sente di più sulle interfacce di programmazione delle applicazioni (API), che funzionano come un gateway attraverso il quale le applicazioni possono comunicare. Le app non devono sapere nulla di altre app tranne la loro API.
Un particolare computer chiamato server può eseguire determinate attività, chiamate servizi. Ad esempio, la fornitura di file in rete, la capacità di eseguire determinati comandi o di instradare i dati a una stampante. Il client è il computer che richiede i servizi.
Il computer noto principalmente per il servizio che fornisce può essere chiamato server di stampa, file server, ecc..
Si presume che ogni computer abbia capacità simili e che nessuna macchina sia dedicata a servire gli altri. Un esempio di ciò è 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 insieme specifico di servizi.
Per alcuni servizi può avere senso avere una connettività gerarchica. Per esempio:
Un sistema operativo potrebbe avviare automaticamente i processi su computer inattivi e persino migrare i processi su sistemi con un numero maggiore di cicli CPU disponibili. In altri casi, un utente può avviare o spostare manualmente i processi sui sistemi disponibili.
È un insieme di computer simili collegati tramite una rete locale ad alta velocità. Viene spesso utilizzato per la programmazione parallela, in cui un singolo programma ad alta intensità di calcolo viene eseguito in parallelo su più computer.
Ogni cluster è costituito da un insieme di nodi di calcolo che vengono monitorati e gestiti da uno o più nodi chiamati master..
È costituito da nodi con marcate differenze nell'hardware e nella tecnologia di rete. L'attuale tendenza ad avere una configurazione specifica dei nodi per determinati compiti ha portato a una maggiore diversità, che è la più comune nel network computing.
È un insieme di risorse virtualizzate ospitate nel data center di un fornitore di servizi cloud. I clienti possono stabilire un'infrastruttura virtualizzata per sfruttare una varietà di servizi cloud.
All'utente sembra che stia noleggiando il proprio computer esclusivo. Tuttavia, è probabile che tu lo condivida con altri clienti. Lo stesso vale per l'archiviazione virtuale.
Queste risorse virtualizzate possono essere configurate dinamicamente, consentendo così la scalabilità. Se sono necessarie più risorse di elaborazione, il sistema può acquisirne di più.
Che si tratti di strutture di archiviazione, file di dati, servizi o reti, potresti voler condividere queste risorse tra le applicazioni, per una semplice economia.
È molto più economico disporre di una struttura di archiviazione condivisa tra più applicazioni piuttosto che acquistare e mantenere l'archiviazione per ciascuna di esse separatamente..
Per nascondere che i processi e le risorse sono distribuiti su più computer, possibilmente dispersi geograficamente. Cioè, i processi e le risorse sono astratti dall'utente.
Fondamentalmente indica che un sistema distribuito è costruito con elementi che possono essere facilmente integrati con altri sistemi. Conformemente alle regole standardizzate, qualsiasi processo con quell'interfaccia può comunicare con un altro processo con la stessa interfaccia.
Si riferisce a quando due sistemi di produttori diversi possono lavorare insieme. La portabilità determina la misura in cui un'applicazione realizzata per il sistema A può funzionare sul sistema B senza modifiche..
È necessario quando c'è un aumento degli utenti che necessitano di più risorse. Un buon esempio è l'aumento del pubblico di Netflix ogni venerdì sera.
Significa aggiungere dinamicamente più risorse, come aumentare la capacità di rete consentendo più trasmissione video e ridurla una volta che il consumo si è normalizzato.
Erlang è un linguaggio funzionale con un'ottima semantica per la concorrenza, la distribuzione e la tolleranza agli errori. Una macchina virtuale Erlang gestisce la distribuzione di un'applicazione Erlang.
Questo modello funziona avendo molti processi isolati, tutti con la capacità di comunicare tra loro attraverso un sistema di trasmissione di messaggi integrato..
La macchina virtuale Erlang può connettersi ad altre macchine virtuali che si trovano in luoghi diversi. Questo sciame di macchine virtuali esegue una singola applicazione, gestendo i guasti di una macchina pianificandone l'esecuzione su un altro nodo..
È uno dei protocolli più utilizzati per il trasferimento di file di grandi dimensioni sul web. L'idea principale è quella di facilitare il trasferimento di file tra diversi peer sulla rete senza dover passare attraverso un server principale.
Utilizzando un client BitTorrent, puoi connetterti 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 volontariamente file e caricarli per altri utenti che li desiderano. È così popolare perché è stato il primo del suo genere a offrire incentivi per contribuire alla rete..
- È possibile aggiungere facilmente più nodi al sistema distribuito, ovvero ridimensionare secondo necessità.
- Tutti i nodi nel sistema distribuito sono collegati tra loro. Pertanto, ciascuno dei nodi può condividere facilmente i dati con gli altri nodi..
- Risorse come le stampanti possono essere condivise con più nodi invece di essere limitate a uno solo.
- Il fallimento di un nodo non porta al fallimento dell'intero sistema distribuito. Gli altri nodi possono ancora comunicare tra loro.
- Alcuni messaggi e dati potrebbero andare persi sulla rete quando ci si sposta da un nodo a un altro.
- È difficile fornire una protezione adeguata nei sistemi distribuiti perché sia i nodi che le connessioni devono essere protetti.
- Può verificarsi un sovraccarico di rete se tutti i nodi del sistema distribuito tentano di inviare dati contemporaneamente.
- Il database connesso a sistemi distribuiti è piuttosto complicato e poco maneggevole rispetto al sistema a singolo utente.
I sistemi distribuiti possono essere utilizzati in un gran numero di casi, come i sistemi bancari elettronici, i giochi online multiplayer di massa e le reti di sensori..
Utilizza un sistema distribuito particolarmente ampio per alimentare il suo servizio di rete di distribuzione dei contenuti. Ciascuno dei suoi punti di presenza (PoP) ha nodi, formando un sistema distribuito in tutto il mondo.
StackPath archivia il contenuto più recentemente e frequentemente richiesto nelle posizioni più vicine al sito che viene utilizzato.
Collegando i computer virtuali, oltre a sfruttare la velocità e l'agilità di un computing all'avanguardia, il sistema può gestire molto rapidamente migliaia di richieste simultanee.
È il più grande sistema distribuito al mondo. Ogni utente si sente come un unico sistema, anche se è composto da milioni di computer.
Attraverso il concetto di astrazione, non hai idea di dove siano archiviati i dati, di quanti server siano coinvolti o di come le informazioni arrivino al browser. Il browser dissolve la complessità di Internet.
Questo vale anche per applicazioni come la posta elettronica di Gmail o qualsiasi altra applicazione che può essere utilizzata. Ogni persona interagisce quotidianamente con le applicazioni distribuite.
Nessun utente ha ancora commentato questo articolo.