ARCHITETTURE DI SISTEMA
L’architettura di sistema viene definita come il modo
in cui i componenti software sono posizionati e
interagiscono. Le architetture di sistema possono
essere centralizzate, decentralizzate, ibride.
ARCHITETTURE CENTRALIZZATE
La comunicazione tra client e server può essere
implementata tramite un protocollo senza
connessione quando la rete sottostante è affidabile. I
Client preparano un messaggio con i dati di input
necessari, identificano il servizio e lo inviano. I
Server invece restano in attesa della richiesta e
quando la ricevono confezionano i risultati in un
messaggio di risposta. In caso di malfunzionamenti
fra l’interazione del client e del server si può rinviare
il messaggio qualora non si riceva risposta, anche se
il client non può però sapere se il messaggio
originario è stato perso o meno.
QUANDO UNA OPERAZIONE È RIPETIBILE PIÙ
VOLTE SENZA DANNI SI DICE CHE È
IDEMPOTENTE.
In alternativa sono utilizzati protocolli orientati alla
connessione. In questo caso la qualità della rete può
influenzare il tipo di protocollo che vado a utilizzare.
All’interno di una rete LAN ho una alta affidabilità e
posso utilizzare protocolli senza connessione, nel
web invece meglio utilizzare protocolli con
connessione.
ARCHITETTURE A LIVELLI
I componenti sono organizzati a strati in cui un
componente di un livello può richiamare solo
componenti di livello sottostante. La stratificazione
consiste di:
- Livello dell’interfaccia utente: interazione tra
uomo e macchina.
- Livello applicativo: è di solito formato da una che
contiene le funzionalità centrali dell’applicativo e da
un’altra che opera su una base di dati.
- Livello dei dati: Contiene i programmi che
gestiscono i dati reali su cui le applicazioni si basano.
Per gestirli viene utilizzato un file system o un db.
ARCHITETTURE MULTI-LIVELLO
L’architettura multilivello più semplice prevede solo
una macchina client contenente solo i programmi
che implementano il livello di interfaccia utente e la
macchina server contenente programmi per
elaborazioni dei processi e dei dati. Altre architetture
multilivello potrebbero essere
ARCHITETTURA CLIENT/SERVER E LIVELLI
Nelle architetture C/S un livello (tier) corrisponde ad
un nodo o gruppo di nodi di calcolo su cui è
distribuito il sistema. Qui il sistema è organizzato
come una sequenza di livelli, organizzati in base al
tipo di servizio (responsabilità) che forniscono:
• ciascun livello funge da server per i suoi
chiamanti nel livello precedente
• ciascun livello funge da client per il livello
successivo PEER-TO-PEER
In una rete Peer-To-Peer gli elaborati condividono
risorse e servizi scambiandoli direttamente tra i
computer. Le applicazioni peer-to-peer hanno tre
caratteristiche:
le entità devono poter SCOPRIRE INTERROGARE
CONDIVIDERE le altre entità pari sulla rete.
3 TIPI: P2P Puro: non ha server centrale e tutti i
Peer hanno lo stesso ruolo. Ogni nodo si occupa di
individuare i Peer, le risorse e la condivisione di
queste. Ogni peer ha un compito complesso da
punto di vista di calcolo.
• P2P con Discovery Server: possiede un server
centrale chiamato Discovery, al quale il client
comunica la propria esistenza al momento dell'avvio
e riceve in risposta una lista con gli altri nomi della
rete che potrà poi interrogare per conoscerne i
contenuti. Quindi, quando l'utente necessita di un
contenuto, prima contatta il server individualmente,
poi inoltra la richiesta.
• P2P con Discovery e Lookup Server: in
questa architettura l'utente non solo si registra
presso il Discovery Server, ma spedisce anche una
lista dei propri contenuti ad intervalli regolari. Così,
quando la richiesta successiva viene mandata, il
server fornisce una lista dei partecipanti alla rete
insieme ai relativi contenuti, tagliando richieste
infruttuose e ottimizzando i tempi.
Per quanto riguarda un'architettura di tipo P2P Puro,
non essendoci un server centrale in grado di far
connettere tra di loro i diversi nodi, viene
solitamente integrata una OVERLAY NETWORK
VIRTUALE (rete sovrapposta) con la quale i nodi
formano una sottorete rispetto alla rete fisica
principale. A seconda di come i nodi sono collegati
tra loro e dalla loro distribuzione, è possibile dividere
le reti P2P in "strutturate" e "non strutturate":
Una rete strutturata è caratterizzata assicura che
ogni nodo possa efficientemente cercare e trovare
una risorsa o nodo. Per farlo la rete strutturata
integra una tavola Hash distribuita, all'interno della
quale a ogni risorsa corrisponde un codice
identificativo univoco.
Invece, una rete non strutturata è formata da
nodi che creano collegamenti casuali con altri nodi
della rete senza una struttura.
BIT TORRENT
è un protocollo di tipo peer-to-peer (P2P) finalizzato
alla distribuzione e condivisione di file nella Rete. Le
entità in bit torrent sono:
I Peers: Sono coloro che stanno scaricando un file
ma non lo hanno scaricato completamente, i peers
condividono i frammenti di quel file che per il
momento posseggono.
-
Stili d'interazione
-
Framework architetturali
-
Riassunto per l'esame di Sistemi tecniche e stili della moda. Testo consigliato Le arti della moda, vol. 3
-
Tipi di attacco nei sistemi distribuiti