



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
- Sistemi distribuiti; - Classificazione dei SD; - Sistemi di calcolo distribuiti (Cluster Computing e Grid Computing); - Sistemi informativi distribuiti; - Sistemi distribuiti pervasivi (Wireless, Wearable computing); - Benefici della distribuzione; - Svantaggi della distribuzione; - Architetture distribuite hardware (Flynn: SISD, SIMD, MISD, MIMD); - Il modello Client-Server; - Livelli e strati (Architettura a 1,2,3) - ISO/OSI e TCP/IP; - Architetture Client-Server, P2P, P2P Ibride; - Socket.
Tipologia: Appunti
1 / 6
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Elaborazione teorica di Francesco Pantalena
A partire dalla metà degli anni Ottanta, a seguito dell’avvento dei microprocessori e la realizzazione di reti di elaborazione, le architetture dei sistemi informativi si sono sviluppate ed evolute passando da schemi centralizzati a modelli distribuiti più aderenti alla necessità di decentralizzazione e cooperazione delle moderne organizzazioni.
Un sistema informatico è centralizzato quando dati e applicazioni risiedono in un unico nodo elaborativo.
Un sistema informatico si dice distribuito se almeno una delle seguenti due condizioni è verificata:
In un sistema distribuito vengono eseguiti programmi differenti in base al compito che svolgono:
È possibile classificare i sistemi distribuiti in tre grandi famiglie:
Sistemi di calcolo distribuiti. Generalmente sono configurati per il calcolo ad alte prestazioni; nel seguito ne descriveremo due configurazioni:
- Cluster computing: sistema distribuito costituito da un insieme di nodi ad alte prestazioni interconnessi tramite una rete locale ad alta velocità: devono essere omogenei, cioè i singoli nodi hanno lo stesso sistema operativo, hardware molto simile, e sono connessi attraverso la stessa rete. L’enorme vantaggio dei cluster di PC è quello di affrontare calcoli particolarmente onerosi che sarebbero molto lunghi o impossibili con un solo computer. - Grid computing: sistema distribuito di calcolo altamente decentralizzato, composto da un gran numero di nodi disposti a griglia (grid) e caratterizzati da un grado elevato di eterogeneità sia per hardware, per il software, la tecnologia di rete, le politiche di sicurezza ecc.
Sistemi informativi distribuiti. Tra questi sistemi, oltre al Web che risulta essere il più grande sistema distribuito, vi sono anche le nuove tecnologie mobile che hanno permesso di rendere più moderni i sistemi legacy, ossia sistemi solitamente presenti in azienda e realizzati su architetture basate su mainframe al quale si collegano terminali con interfaccia a caratteri.
Sistemi distribuiti pervasivi. Una nuova generazione di sistemi che hanno tipicamente connessioni di rete wireless. In questi, rientrano i sistemi domestici, le personal area network (PAN), le wearable
computing e le reti di sensori. - Wearable computing: sistemi utilizzati per l’assistenza sanitaria ed effettuano il monitoraggio dei parametri biometrici (ECG sensor).
Affidabilità. Il principale vantaggio di un sistema distribuito è l’affidabilità perché è in grado di “sopravvivere” a un guasto di un suo componente implementando algoritmi che permettono alle entità non guaste di “sostituire” quella danneggiata e continuare l’elaborazione.
Integrazione. Capacità di integrare componenti spesso eterogenei tra loro, sia per tipologia hardware (da PC a mainframe, da smartphone a tablet), sia per sistema operativo.
Trasparenza. Con il termine trasparenza si intende il concetto di “vedere” il sistema distribuito non come un insieme di componenti ma come un unico sistema di elaborazione: l’utente non deve accorgersi che sta interagendo con un sistema distribuito ma deve avere la percezione di utilizzare un singolo elaboratore.
Economicità. Generalmente un sistema distribuito offre un miglior rapporto prezzo/qualità di un sistema centralizzato basato su mainframe. Inoltre, introduce la possibilità di connettere i sistemi legacy con un costo molto basso in modo da non dover abbandonare una tecnologia su cui è stato realizzato un certo investimento e poter convivere con la tecnologia più recente.
Produzione di software. I programmatori del “secolo scorso” hanno dovuto modificare il proprio stile di programmazione e aggiornarsi con lo studio dei nuovi linguaggi e dei nuovi strumenti di sviluppo per poter realizzare applicazioni distribuite.
Complessità. Proprio per la struttura hardware, i sistemi distribuiti, sono più complessi di quelli centralizzati: richiedono strumenti per l’interconnessione degli host e tecniche per l’instradamento corretto dei messaggi e dei dati.
Sicurezza. Con la connessione di più host tra loro si crea la possibilità di accedere a dati e risorse anche a chi non ne ha il diritto: nascono nuove problematiche connesse alla sicurezza che nel caso di sistemi centralizzati erano inesistenti.
Comunicazione. Il trasferimento a distanza delle informazioni richiede nuove tipologie di sistemi di telecomunicazione, sia cablati sia wireless.
Esistono diverse possibilità per classificare le architetture hardware a seconda dei fattori che si prendono come riferimento. Noi ricordiamo quella di Flynn (1972) che si basa su un flusso delle istruzioni e un flusso dei dati.
SISD (Single Instruction Single Data): macchina di Von Neumann o in generale tutte le macchine che hanno una singola CPU come i Personal Computer, le workstation e i mainframe.
SIMD (Single Instruction Multiple Data): macchine a vector processor utilizzate generalmente per realizzare calcoli vettoriali e matriciali soprattutto in ambiente grafico.
Architettura a due livelli -2 tier. Con l’avvento delle reti locali, a partire dagli anni Ottanta, sono nate le architetture client-server dove le funzionalità e le responsabilità erano suddivise su due livelli:
Possiamo individuare due sottocategorie di architetture a due livelli:
Architettura a tre livelli - 3 tier. A partire dagli anni Novanta l’architettura client-server è a tre livelli e a ogni livello corrisponde uno strato architetturale. I vantaggi dell’introduzione del middle- ware sono notevoli, soprattutto in termini di prestazioni, in quanto in questo modo si favorisce la distribuzione della quantità di elaborazione a scapito. Inoltre, il sistema è facilmente scalabile in quanto all’aumentare delle richieste di un servizio è possibile aggiungere qualche server in grado di compensare il carico di lavoro ed è inoltre più tollerante ai guasti.
TCP/IP e ISO/OSI sono i due modelli di rete più utilizzati per la comunicazione. Ci sono alcune somiglianze e differenze tra di loro. Una delle principali differenze è che OSI è un modello concet- tuale, quindi di riferimento, che non viene utilizzato per la comunicazione, mentre TCP/IP è un vero e proprio protocollo che viene utilizzato per stabilire una connessione e comunicare attraverso la rete.
Il modello OSI è formato da 7 livelli, mentre il modello TCP/IP è formato da 4:
Il livello applicazione implementa i vari protocolli, tra cui: FTP (File Transfer Protocol); HTTP (HyperText Transfer Protocol); DNS (Domain Name Server); POP3 (Post Office Protocol).
Il livello di trasporto dispone dei protocolli di trasporto come TCP e UDP. Entrambi svolgono funzioni diverse, cioè offrono servizi diversi allo strato applicativo: ogni processo, prima di trasmettere messaggi sulla rete, sceglie il protocollo da usare per realizzare la comunicazione. Il protocollo TCP è orientato alla connessione (connection-oriented), ed è affidabile dato che consente il controllo dell’integrità dell’informazione contenuta nei pacchetti e dispone di un sistema
per segnalare l’errore al mittente. I pacchetti sono tracciati in modo che nessun dato venga perso o danneggiato durante il transito.
Il protocollo UDP è senza connessione (connectionless) e quindi non affidabile. I pacchetti vengono inviati al destinatario velocemente senza attendere e senza assicurarsi che il destinatario li abbia ricevuti, continuando a inviare pacchetti. Se il destinatario perdesse alcuni pacchetti UDP, non ha alcun modo per richiederli di nuovo. In pratica una comunicazione UDP non dà alcuna garanzia di ricezione dei dati. UDP è spesso utilizzato per i video in streaming e per i giochi online.
Il primo passo che il programmatore deve effettuare per progettare una applicazione di rete è la scelta della architettura dell’applicazione:
4.2.1 Architettura client-server Nella architettura client-server la caratteristica principale è che deve sempre esserci un server attivo che offre un servizio, restando in attesa che uno o più client si connettano a esso per poter rispondere alle richieste che gli vengono effettuate. Esempio: WWW.
4.2.2 Architettura peer-to-peer (P2P) Nelle architetture peer-to-peer (P2P) abbiamo coppie di host chiamati “peer” dialogano direttamente tra loro. Ogni peer fornisce una risorsa e ottiene in cambio altre risorse. Esempio: Emule, Torrent.
P2P decentralizzato. Nella architettura completamente decentralizzata un peer ha sia funzionalità di client che di server. Le risorse che i peer condividono sono i dati, la memoria, la banda, ecc…
P2P centralizzato. Ha un server centrale (directory server) che conserva informazioni sui peer e risponde alle richieste. I peer sono responsabili di conservare i dati e le informazioni, di informare il server del contenuto dei file che intendono condividere e di permettere ai peer che lo richiedono di scaricare le risorse condivise.
4.2.3 Architettura P2P ibrido. Il P2P ibrido è un P2P parzialmente centralizzato dove sono presenti peer semplici chiamati “leaf peer” e altri peer detti supernodi o super-peer determinati dinamicamente che hanno anche la funzione di indicizzazione.
Affinché un processo, presente su un determinato host, invii un messaggio a un qualsiasi altro host, il processo mittente deve identificare il processo destinatario in modo univoco.
Generalmente ogni PC ha una sola porta fisica di connessione al network: se più applicazioni necessitano di utilizzare la rete, devono essere riconosciute tramite le cosiddette porte logiche identificate da un numero detto port address specificato su 2 byte e identifica un particolare canale utilizzabile per la comunicazione. 3