Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni

TPSIT

Il documento tratta dei sistemi distribuiti e dei modelli architetturali, descrivendo vari tipi di architetture hardware e software, come MIMD e client-server. Viene inoltre discusso il protocollo HTTP, i metodi di richiesta e risposta, e le tecnologie web, evidenziando la differenza tra elaborazione client-side e server-side. Infine, si analizzano le architetture a livelli e il modello client-server, sottolineando la loro importanza nella gestione delle applicazioni e dei servizi.

Caricato da

matteomadarenaa
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
3 visualizzazioni

TPSIT

Il documento tratta dei sistemi distribuiti e dei modelli architetturali, descrivendo vari tipi di architetture hardware e software, come MIMD e client-server. Viene inoltre discusso il protocollo HTTP, i metodi di richiesta e risposta, e le tecnologie web, evidenziando la differenza tra elaborazione client-side e server-side. Infine, si analizzano le architetture a livelli e il modello client-server, sottolineando la loro importanza nella gestione delle applicazioni e dei servizi.

Caricato da

matteomadarenaa
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 6

TPSIT

sistemi distribuiti e dei modelli architetturali

Un sistema distribuito è ottenuto dalla connessione di più pc. Esistono più tipi di architetture, divise da una
parte hardware e da una parte software.

Architetture distribuite hardware

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

Memoria fisica delle macchine

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.

Le macchine lavorano in maniera centralizzata ma su un singolo pc troviamo un’applicazione di


management che permette di lanciare i processi su altri pc, questo favorisce ad alte prestazioni, grande
velocità del trasferimento dei dati.

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.

Sistemi distribuiti pervasivi

Sono dei sistemi solitamente privati che utilizzano rete privata PAN.

Reti domestiche e domotica

Sono caratterizzate dall’assenza di un amministratore e sono sistemi auto-configuranti.

Wearable computing

Sono sistemi utilizzati per l’assistenza sanitaria, monitorano i parametri del paziente.
Architetture distribuite softwar

Architettura a terminali remoti

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

ha un funzionamento simile a quello client-server ma completamente basato sul web

Architettura completamente distribuita

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:

I servizi di astrazione e cooperazione

I servizi per le applicazioni

I servizi di amministrazione del sistema

Il servizio di comunicazione

L’ambiente di sviluppo applicativo

//////////////////////////////////////
Il protocollo http

• URI: set generico di nomi o indirizzi che identificano risorse.

• URL: termine informale per identificare protocolli.

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

Ogni messaggio HTTP, sia di richiesta che di risposta, è composto da:

1. Una riga iniziale.

2. Un’ intestazione, che non è sempre presente.

3. Una riga vuota.

4. Un corpo del messaggio, che anch’esso può essere assente.

Messaggio di richiesta (HTTP Request)

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.

Messaggio di risposta (HTTP response)

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.

Il body ha il contenuto vero e proprio della risposta.


Metodi HTTP

I metodi HTTP sono indicati nella prima riga di una richiesta HTTP e vengono scritti in maiuscolo.

• GET: richiede dati dal server.

• POST: invia nuovi dati al server.

• PUT: modifica o sostituisce i dati presenti sul server.

• DELETE: elimina un oggetto o una risorsa sul server.

Codifica URL

La codifica URL è utilizzata per trasmettere dati nei metodi GET o POST. Viene eseguita attraverso i seguenti
passaggi:

1. Conversione dei caratteri non sicuri.

2. Eliminazione degli spazi vuoti.

3. Unione dei campi e valori.

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.

Chrome Developer Tools

È una suite di strumenti inclusi nel browser Google Chrome e consente di:

- Navigare all’interno del DOM delle pagine web.

- Analizzare e modificare HTML e CSS in tempo reale.

- Monitorare, fare debug e modificare il codice JavaScript in tempo reale.

cURL

È un software usato per trasferire dati su vari dispositivi e supporta diversi protocolli, tra cui HTTP, FTP e
TELNET.
Le applicazioni web

applicazione web è un software sviluppato attraverso le tecnologie Web e i linguaggi specifici.

Tecnologie del 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.

Linguaggi di programmazione: servono a scrivere programmi tramite istruzioni tipo Java

Modello Client-Server

È formato da server che forniscono e gestiscono le risorse, e client che le richiedono.

Inoltre un processo server può a sua volta diventare un processo client. Quindi come server o client non

indichiamo gli host ma i processi che sono in esecuzione.

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.

Servizi che utilizzano questa struttura:

Grazie alle sue ottime caratteristiche molti servizi come: Telnet, http, FTP, STMP, IMAP4; utilizzano il modello
client server.

Funzionamento del modello:

1. Client invia una richiesta al server

2. Server in attesa lo riceve

3. Il server esegue il servizio richiesto tramite un thread concorrente

4. Server invia la risposta

5. Il client la riceve

Differenza tra client e server


Il server rimane in ascolto tramite un socket, su una determinata porta in attesa di richieste. Il client invia
una richiesta di connessione TCP al server su quella porta, specificando indirizzo IP e numero di porta.

Comunicazione unicast e mutlicast

Unicast: il Server comunica con un singolo client.

Multicast: il Server comunica con più client contemporaneamente.

Struttura a livelli e strati

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:

Front-end: corrisponde all’interfaccia con l’utente

Logica applicativa o middle tier

Back-end: si occupa della gestione dei dati, risorse

Architettura a livelli

Architettura a un livello: tutta l’elaborazione viene effettuata dall’elaboratore centrale

Architettura a 2 livelli: Formata da un livello server e un livello client.

Architettura a 3 livelli: stesso funzionamento del precedente ma con l’aggiunta di un livello intermedio che
favorisce la distribuzione della quantità di elaborazione.

Architettura a n livelli: È un modello Client-Server ma con n livelli intermedi.

Potrebbero piacerti anche