TPSIT
TPSIT
Un sistema distribuito è ottenuto dalla connessione di più pc. Esistono più tipi di architetture, divise da una
parte hardware e da una parte software.
per classificare le architetture utilizziamo: Flusso delle istruzioni, Flusso dei dati. A seconda di come si
combinano i flussi possiamo trovare 4 diverse possibilità:
Macchine SISD (Single Instruction Single Data): un solo flusso di istruzioni e un solo flusso di dati (macchina
di Von Neumann)
Macchine SIMD (Single Instruction Multiple Data): un solo flusso di istruzioni e più flussi di dati
Macchine MISD (Multiple Instruction Single Data): più flussi di istruzioni e un solo flusso di dati (sono
presenti più processori)
Macchine MIMD (Multiple Instruction Multiple Data): più flussi di istruzioni e più flussi di dati
Macchine MIMD a memoria condivisa: Vengono anche chiamati multiprocessori e sono sistemi con una
memoria condivisa
Macchine MIMD a memoria privata: scambio di informazioni tramite send, receive. Ogni computer ha la sua
memoria privata.
Cluster computing
Con questo termine si intende un sistema distribuito costituito da un insieme di computer omogenei ad alte
prestazioni interconnessi tramite una rete locale.
Grid computing
Questo tipo di sistema distribuito è altamente decentralizzato e non ha bisogno di macchine omogenee ma
possono esserci macchine eterogenee sia per il software che per l’hardware.
Sono dei sistemi solitamente privati che utilizzano rete privata PAN.
Wearable computing
Sono sistemi utilizzati per l’assistenza sanitaria, monitorano i parametri del paziente.
Architetture distribuite softwar
In questa architettura si ha un’unita centrale alla quale ci sono collegati terminali privi di cpu.
Architettura client-server
Formato da processi server che inviano le risorse e processi client che le richiedono.
Architettura web-centric
In opposizione all’architettura web-centric troviamo questo tipo di architettura che si usa nei sistemi
groupware che dialogano tra loro offrendo ciascuno i propri servizi. Le tecnologie più importanti sono:
OMG (Object Management Group): è un consorzio creato da varie aziende allo scopo di creare sistemi di
gestione di architetture distribuite.
RMI (Remote Method Invocation): è una tecnologia che consente a processi java distribuiti di comunicare
attraverso una rete.
DCOM (Distributed Component Object Model): è una tecnologia basata sull’estensione in rete della
precedente tecnologia COM.
Architettura a livelli
Per alleggerire il carico elaborativo dei server è stato introdotto un software di mezzo. Il suo scopo
principale è quello di garantire l’interoperabilità delle applicazioni sui diversi sistemi operativi. Le sue
funzionalità sono:
Il servizio di comunicazione
//////////////////////////////////////
Il protocollo http
HTTP (Hyper Text Transfer Protocol) è un protocollo di testo che permette l’invio e la ricezione di risorse
Web tra un server e un client. La comunicazione avviene stabilendo una connessione TCP al server
sulla porta 80. Dopo, il client invia una richiesta con un URL e il server risponde restituendo la risorsa
richiesta, chiudendo la connessione TCP al termine.
Nella versione HTTP 1.1, le connessioni sono di tipo permanente, quindi rimangono aperte anche dopo aver
inviato una risposta. Esistono due tipi di connessioni permanenti:
1. Connessione permanente non incanalata: il client invia una nuova richiesta solo dopo aver ricevuto la
risposta precedente.
2. Connessione permanente incanalata: il client invia più richieste consecutive anche senza aver ricevuto la
risposta precedente.
Messaggi HTTP
La prima riga della richiesta specifica la versione del protocollo HTTP. Le righe successive contengono
gli header, ciascun header è formato da un nome, seguito da due punti (:) e da un valore.
Gli header più comuni nelle richieste includono: o User-Agent: specifica la versione del browser. o Host:
indica l’host presente nell’URL. o Content-Length: specifica la dimensione del corpo del messaggio.
Dopo gli header, una riga vuota separa il corpo del messaggio che può contenere dati aggiuntivi inviati al
server.
la riga iniziale è una riga di stato che include la versione del protocollo HTTP e lo stato della risposta.
L’header contiene informazioni sul messaggio, organizzate in coppie nome-valore separate da due punti (:),
gli header possono includere informazioni generali sul messaggio, descrivere le caratteristiche del
contenuto o contenere informazioni sull’utente e sul server.
I metodi HTTP sono indicati nella prima riga di una richiesta HTTP e vengono scritti in maiuscolo.
Codifica URL
La codifica URL è utilizzata per trasmettere dati nei metodi GET o POST. Viene eseguita attraverso i seguenti
passaggi:
Questa codifica garantisce che i dati possano essere trasmessi in modo sicuro e correttamente interpretato
dal server.
Rappresentazioni HTTP
sono le modalità con cui scambiano informazioni su risorse identificate da un URL o URI. Le rappresentazioni
sono contenute sia nella richiesta che nella risposta http e includono:
- Header HTTP, contiene dati che descrivono le caratteristiche del messaggio e della risorsa richiesta o
restituita
- Body HTTP, contiene i dati veri e propri della risorsa in vari formati.
I codici di stato
I codici di stato HTTP (status code) sono utilizzati dai server per indicare al client l’esito di una richiesta. Gli
status code sono numeri a tre cifre, in cui la prima cifra indica la classe della risposta e le altre due
specificano il tipo di risposta.
È una suite di strumenti inclusi nel browser Google Chrome e consente di:
cURL
È un software usato per trasferire dati su vari dispositivi e supporta diversi protocolli, tra cui HTTP, FTP e
TELNET.
Le applicazioni web
Client-side: Sono strutture tecnologiche in cui l’elaborazione avviene sul client, tipicamente nel browser.
possiamo visualizzare la pagina utilizzando la tecnologia client-side anche senza l’ausilio di un web server,
ma semplicemente memorizzando la pagina web sul file system locale.
Server-side: Sono strutture tecnologiche in cui l’elaborazione avviene sul server, tipicamente nel web server.
Per visualizzare una pagina che utilizza la tecnologia server-side abbiamo bisogno di connetterci con un web
server e richiedere la pagina tramite URL.
Linguaggio web
Linguaggi Mark-up: sono linguaggi strutturati, formati da un documento testuale contenente dei tag che ne
definiscono la struttura come HTML.
Modello Client-Server
Inoltre un processo server può a sua volta diventare un processo client. Quindi come server o client non
Il modello client server è molto utilizzato poiché ha permesso di gestire applicazioni aventi logica applicativa
complessa, grandi archivi di dati, requisiti di sicurezza, sistemi transazionali.
Grazie alle sue ottime caratteristiche molti servizi come: Telnet, http, FTP, STMP, IMAP4; utilizzano il modello
client server.
5. Il client la riceve
La struttura Client-Server è generalmente organizzata a livelli. Ogni livello funziona da server per i suoi client
nel livello precedente e da client per il livello successivo. Nel modello Client-Server ogni strato viene definito
come “livello di astrazione”
Anche nelle applicazioni troviamo tre tipi di funzionalità che formano una struttura a livelli o strati:
Architettura a livelli
Architettura a 3 livelli: stesso funzionamento del precedente ma con l’aggiunta di un livello intermedio che
favorisce la distribuzione della quantità di elaborazione.