View
1
Download
0
Category
Preview:
Citation preview
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
1
Corso di Laurea in Informatica
Università degli Studi di Salerno
3: Modelli Architetturali
Vittorio Scarano
Algoritmi e Strutture Dati: Sistemi Distribuiti
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
2
Struttura della lezione
• Struttura a livelli: il middleware• Crescita dei servizi e del valore di un sistema
distribuito• Una presentazione di architetture distribuite• Elementi architetturali e componenti logiche
– Valutazione delle componenti logiche:– Una analisi delle architetture
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
2
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
3
Gli strati di software
• La piattaforma– eterogenea
– Es. Wintel, Intelx86/Linux, Sparc/Solaris, PowerPc/MaxOS
• Middleware– nasconde l’eterogeneità
– offre un modello di programmazione
– offre servizi ad alto livello (building-blocks)
applications &services
middleware
sistema operativo
computer &network
hardware
piattaforma
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
4
I limiti del middleware
• In generale, ci sono aspetti del sistema distribuito che vanno trattati a livello application
• End-to-End argument (Saltzer, Reed, Clarke)“Alcune funzioni legate alla comunicazione possono essere implementate completamente ed affidabilmente solo con la conoscenza e l’aiuto delle applicazioni che si trovano agli
end-point del sistema di comunicazione”
• La conseguenza:– fornire le funzioni da parte del sistema di comunicazione
• non è buona pratica introdurre completamente la funzione nello strato di comunicazione
• anche se può essere parzialmente implementata per ragioni di efficienza
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
3
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
5
Il problema dell’End-to-end negli oggetti distribuiti
• La differenza tra – oggetti nello stesso processo
– oggetti in processi differenti
• Il principio dell’End-to-End viene espanso (e confermato) dagli ambienti ad oggetti distribuiti– una “nota” di Waldo (ed altri)
nel campo del calcolo distribuito (vedremo in seguito)
oggetto
processo
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
6
Un esempio: file-transfer da A verso B
• I passi coinvolti:– A: il programma di FT usa il file system per leggere il file
– A: il programma di FT chiede al sistema di comunicazione di trasmettere il file, dividendolo in pacchetti
– La rete muove i pacchetti da A a B
– B: il sistema di comunicazione rimuove i pacchetti e li passa al programma di file transfer
– B: il programma di FT scrive i dati ricevuti sul proprio file system
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
4
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
7
I possibili problemi
1. il file originariamente scritto correttamente viene letto in maniera errata da A
2. il software del file system, il programma di FT, o il sistema di comunicazione può fare un errore nel copiare dati sul buffer (sia su A che su B)
3. il processore o la memoria possono avere un errore (transiente) sia su A che su B
4. il sistema di comunicazione può perdere bit/pacchetti
5. gli host possono andare in crash
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
8
Le possibili contromisure
• Rinforzare tutti i passi – il passo 2 equivale a scrivere programmi corretti
• riconducibile al problema della fermata della Macchina di Turing
• Rendere bassa la probabilità di errore (in ogni passo) e reiterare (forza bruta)– costoso
• “End-to-End check and retry” – checksum calcolata dalle applicazioni
– eventuale retry
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
5
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
9
Un esempio reale all’ MIT
• Reti locali connesse da gateway – che usavano checksum sulla trasmissione
• I programmatori assumevano trasmissioni affidabili– ma i dati non erano protetti durante la memorizzazione
temporanea nei gateway
• Un errore di copia da un input buffer ad un output buffer in un gateway:– relativamente poco frequente: 1 byte su 1 milione di byte
– ha corrotto diversi file nell’intero sistema
– richiedendo un check manuale (end-to-end!)
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
10
Una linea-guida .. ma con “buon senso”
• E’ semplicistico affermare che gli strati bassi della rete non devono avere alcun ruolo nella affidabilità– sono in grado di migliorare notevolmente la efficienza
• Nel caso del File Transfer – limitano le ritrasmissioni richieste dagli end-points
• Comunque non realizzano la perfetta affidabilità di un sistema distribuito
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
6
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
11
Altre linee-guida simili…
• Architetture RISC– ridurre le istruzioni fornite dall’hardware e spostarne la
“responsabilità” verso gli strati superiori
• Il successo di Internet (TCP/IP)– fosse stato progettato per circuiti virtuali (come lo erano
SNA e TYMNET, altre reti degli anni 80)
– non avrebbe potuto supportare • i protocolli request-response (tipo HTTP..!)
• i milioni di Internet Service Providers.
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
12
Struttura della lezione
• Struttura a livelli: il middleware• Crescita dei servizi e del valore di un sistema
distribuito• Una presentazione di architetture distribuite• Elementi architetturali e componenti logiche
– Valutazione delle componenti logiche:– Una analisi delle architetture
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
7
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
13
Le opzioni offerte dalle reti
• Ricevere informazioni
• Permettere delle transazioni
• Affiliare: stabilire e mantenere gruppi
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
14
Il valore aggiunto di una rete di N utenti
• Legge di Sarnoff: il valore aggiunto di una rete è:– la connettività potenziale offerta al singolo utente che cresce
con il numero di offerte possibili
– crescita lineare in N
• Legge di Metcalfe: il valore aggiunto di una rete è:– il numero di transazioni potenziali che vengono permesse
agli N utenti
– quadratico in N
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
8
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
15
• Www.OnSale.com: prima host per aste online
• Numero fissato di prodotti
• Numero variabile di utenti
• Totale del “Valore” ~ N
www.OnSale.com
La legge di Sarnoff: aste online
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
16
La legge di Metcalfe: aste online
• Annunci messi a disposizione dagli utenti– classifieds.yahoo.com
• Sia la offerta che la domanda dipendono dal numero di utenti
• Valore ~ N2
Classifieds.yahoo.com
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
9
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
17
La collaborazione su sistemi distribuiti: la legge di Reed
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
18
www.eBay.com
Pez
Beanies
Un esempio della legge di Reed
• Www.eBay.com: un mercato per aste online
• Ogni sottoinsieme di utenti può formare una asta
• Valore totale ~ 2N
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
10
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
19
Le leggi di crescita dei sistemi distribuiti
Sarnoff
Broadcast
Metcalfe
Network
Reed
Community
Valore N N2 2
N
Esempi Wire service,
OnSale
Email,
Classifieds
AOL Chat,
eBay
Connessione N+M N2+M
2+2NM 2
NX2
M
Sarnoff
Broadcast
Metcalfe
Network
Reed
Community
Valore N N2 2
N
Esempi Wire service,
OnSale
Email,
Classifieds
AOL Chat,
eBay
Connessione N+M N2+M
2+2NM 2
NX2
M
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
20
Valore aggiunto
N
Valo
re T
ota
le
a N + b N2 + c 2N
a N + b N2
a N
Valore totale = a N + b N2 + c 2N
Tipicamente a >> b >> c
La combinazione delle leggi
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
11
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
21
Regioni di valore dominante
N
Valore
N N2 2N
Miglior contenuto
MiglioriTransazioni
Migliorifacilities per gruppi
Una conseguenza
• All’aumentare della dimensione, si entra in nuovi mercati con nuove possibilità e nuove richieste di servizi per i sistemi distribuiti
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
22
Struttura della lezione
• Struttura a livelli: il middleware• Crescita dei servizi e del valore di un sistema
distribuito• Una presentazione di architetture distribuite• Elementi architetturali e componenti logiche
– Valutazione delle componenti logiche:– Una analisi delle architetture
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
12
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
23
Modello Client Server
• Modello più comune
• Il Client effettua una richiesta– invocazione
• Il server invia la risposta– risultato
• Un server può agire anche da client
server
clientclient
request
response
servercomputer
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
24
service
Variazioni al Client-Server
serverclient
clientserver
server
Servizi replicati
client
server
client
proxy
server
Proxy server
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
13
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
25
Il modello Peer Process
• Tutti i processi hanno un ruolo simmetrico
• Riduce ritardo dovuto a colli di bottiglia sul server
application
coordinationcode
application
coordinationcode
application
coordinationcode
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
26
Oggetti mobili
• Tra i più comuni– Applet
• Gli applet vengono– scaricati
– effettuano servizi localmente
• Agenti mobili– hanno una propria politica di
gestione, che seguono indipendentemente
• Problemi di sicurezza
client
server
applet
applet
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
14
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
27
NOMAD Le applicazioni future
• Servizi implementati da diversi oggetti mobili
• Risorse fornite da una federazione di “depositi”– necessario un protocollo di
negoziazione delle risorse
• Servizi di location forniscono la localizzazione della applicazione
• Trasparenza della mobilità
depot
service
locationservice
depot
service depot
service
federation
client
service
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
28
Un esempio di Spontaneous Network
Internet
gateway
PDA
service
Music service
serviceDiscovery
Alarm
Camera
Guestsdevices
LaptopTV/PC
Hotel wirelessnetwork
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
15
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
29
Struttura della lezione
• Struttura a livelli: il middleware• Crescita dei servizi e del valore di un sistema
distribuito• Una presentazione di architetture distribuite• Elementi architetturali e componenti logiche
– Valutazione delle componenti logiche:– Una analisi delle architetture
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
30
La architettura di un sistema informativo
• La architettura di un Sistema Informativo:– descrive come componenti hardware e software vengono
usati per rispondere ai requisiti organizzativi
• Architettura (standard IEEE 1471):– La organizzazione di un sistema rappresentato
• dai suoi componenti,
• dalle relazioni tra loro e l’ambiente,
• dai principi che guidano il progetto e la evoluzione del sistema
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
16
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
31
Una architettura di base
• Client– utilizzata direttamente dall’utente, genera la richiesta
• Server– contiene le risorse da accedere (dati/programmi)
• Network– assicura la connessione
Client ServerNetwork
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
32
Alcuni commenti
• Client/Server sono spesso ruoli dinamici– all’interno dello stesso sistema, possono scambiarsi i ruoli
• Esempi:– una connessione telefonica/chat 1-to-1
– concatenazione di sistemi client/server
Client ServerNetwork
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
17
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
33
Componenti logiche di una architettura
• Caratterizzate dagli aspetti funzionali rispetto alla localizzazione fisica– centrali per la progettazione e manutenzione
• Componenti di particolare rilievo:– la interfaccia utente
– la gestione dei dati
– la computazione
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
34
Le componenti: (1) Interfaccia utente
• Direttamente acceduta dall’utente (front-end)– per l’utente l’interfaccia è il sistema
• La evoluzione:– Terminali “stupidi” (dumb)
• tastiera, video, alfanumerico
– X-terminal• grafica
– Personal Computers
– Network Computer• boot e S.O. caricato da rete, potenzialità da PC
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
18
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
35
Valutazione della interfacce utente
Costo HW Addestr. Input Output AltroTerminali
stupidibasso alto tastiera testo
PC medio-alto bassotastiera e mouse
grafico Standard SW
X-terminals medio mediotastiera e mouse
grafico
Network Computers
medio bassotastiera e mouse
graficoStandard SW(con server)
Costo HW Addestr. Input Output AltroTerminali
stupidibasso alto tastiera testo
PC medio-alto bassotastiera e mouse
grafico Standard SW
X-terminals medio mediotastiera e mouse
grafico
Network Computers
medio bassotastiera e mouse
graficoStandard SW(con server)
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
36
Le componenti: (2) Gestione dei dati
• Memorizzazione e reperimento di dati (back-end)
• La evoluzione:– flat file
• non permette l’uso di meta-dati(per la descrizione)
• non permette di correlare dati in un file ad altri dati
– database relazionali• organizzati in tabelle• accesso concorrente efficiente (lock al record)• Standard Query Language• memorizzazione di oggetti come BLOB (binary Large Objects)
ma non di classi
– database ad oggetti
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
19
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
37
Valutazione della gestione dei dati
Indipendenzadei dati
Condivisionedei dati
Standard language
Flat File No No No
Databaserelazionali
Si Si SQL
DatabaseObj. Orient.
Si Si SQL-3 (?)
Indipendenzadei dati
Condivisionedei dati
Standard language
Flat File No No No
Databaserelazionali
Si Si SQL
DatabaseObj. Orient.
Si Si SQL-3 (?)
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
38
Le componenti: (3) Computazione
• Elaborazione dei dati
• 3 parametri:– allocazione di una o più CPU
• possibile un uso limitato della CPU del client/terminale
– linguaggio portabile/non portabile• facilita la migrazione e l’upgrade
– allocazione processi statica/dinamica• agenti: codice che può migrare operando laddove risulta più
efficiente
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
20
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
39
Architetture tradizionali
• Modelli di computazione assestati
• Due architetture:– architettura basata su mainframe
• anni 60-70
– architetturafile-server• anni 80
• La architettura file-server ancora in uso
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
40
Architettura basata su mainframe
Componenti:• gestione dati• computazione• interfaccia utente
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
21
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
41
Architettura basata su mainframe
• Modello:– smart server / dumb terminal
• Componenti logiche (interfaccia utente, gestione dei dati, computazione) – localizzate totalmente sul server
• Alto costo di investimento/gestione
• Scalabilità possibile all’interno delle famiglie di sistemi (IBM 360, Digital VAX)
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
42
Architettura a mainframe: valutazione
Componente Caratteristica
Server HWMainframe/
minicomputer
Client HWTerminali
stupidiInterf. Utente Tastiera, alfanumericoGestione dei dati Flat filesComputazione COBOL (non portabile)Costo medio-altoAffidabilità altaSicurezza altaScalabilità altaFlessibilità bassa
Componente Caratteristica
Server HWMainframe/
minicomputer
Client HWTerminali
stupidiInterf. Utente Tastiera, alfanumericoGestione dei dati Flat filesComputazione COBOL (non portabile)Costo medio-altoAffidabilità altaSicurezza altaScalabilità altaFlessibilità bassa
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
22
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
43
Architettura file-server
Componenti:• interfaccia utente• gestione dati• computazione
Dati
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
44
Architettura file-server
• Con postazioni client potenti (PC) il server offre solamente un repository centralizzato di dati
• Modello: dumb server / smart terminal
• Componenti logiche (interfaccia utente, gestione dei dati, computazione) – localizzate totalmente sul client
• Accesso a file remoti come file locali (S.O.)
• Problemi di sicurezza ed affidabilità
• Efficienza limitata: – computazione lato client, dati presenti sul server
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
23
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
45
Architettura file-server: valutazione
Componente CaratteristicaServer HW PCClient HW PCsInterf. Utente Tastiera, alfanumericoGestione dei dati Flat files
ComputazioneBasic/DBASE
su clientCosto bassoAffidabilità bassaSicurezza bassaScalabilità bassaFlessibilità medio-alta
Componente CaratteristicaServer HW PCClient HW PCsInterf. Utente Tastiera, alfanumericoGestione dei dati Flat files
ComputazioneBasic/DBASE
su clientCosto bassoAffidabilità bassaSicurezza bassaScalabilità bassaFlessibilità medio-alta
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
46
Architettura Client-Server
Componenti:• gestione dati• computazione
Componenti:• interfaccia utente• computazione
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
24
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
47
Architettura client-server
• Modello: smart server / smart terminal
• Componenti logiche (interfaccia utente, gestione dei dati, computazione) – equamente divise tra client e server
• Basata sullo sviluppo DB relazionali– motore sul server
– query in SQL dal client
– facile programmazione (SQL)
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
48
Architettura client-server: valutazione
Componente CaratteristicaServer HW PC, mini o mainframeClient HW PCsInterf. Utente GraficaGestione dei dati DB relazionali
ComputazioneC/Visual Basicsu client/server
Costo medio-bassoAffidabilità altaSicurezza altaScalabilità altaFlessibilità alta
Componente CaratteristicaServer HW PC, mini o mainframeClient HW PCsInterf. Utente GraficaGestione dei dati DB relazionali
ComputazioneC/Visual Basicsu client/server
Costo medio-bassoAffidabilità altaSicurezza altaScalabilità altaFlessibilità alta
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
25
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
49
Client-Server basata su Web Server
Componenti:• gestione dati• computazione
Componenti:• interfaccia utente• computazione
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
50
Client-Server three-tier
Componenti:• gestione dati
Componenti:• interfaccia utente
Componenti:• computazione
Middleware
Servers
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
26
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
51
Client-server three-tier
• Un livello intermedio (middleware) che:– standardizza la interfaccia verso i server
• upgrade dei server influenzano solamente il middleware
• clients equipaggiati con un thin driver
• unico protocollo di comunicazione
– implementa la logica della applicazione verso i server
• Architettura spesso basata su Web:– middleware = server Web
– clients = browsers
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
52
Client-server three-tier basata su Web
Componenti:• gestione dati• multimedia
Componenti:• interfaccia utente
Componenti:• computazione
Web server
ServersDati
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
27
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
53
Architettura distribuite ( peer-to-peer)
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
54
Architettura distribuita ( peer-to-peer)
• Ogni host è sia client che server:– obiettivo è porre computazione e dati nella locazione più
adatta sulla rete
• Per facilitare la gestione del sistema:– servizi di directory
• per facilitare la gestione/rilocazione di servizi
– rilocazione di programmi • agenti
ASD: Sistemi Distribuiti (Prof. Scarano) 22/03/2002
28
AS
D: S
iste
mi D
istr
ibui
ti.
Vi.t
tori
o S
cara
no
55
Architettura peer-to-peer: valutazione
Componente CaratteristicaServer HW PC, mini o mainframeClient HW PCsInterf. Utente GraficaGestione dei dati DB relazionali
ComputazioneVari linguaggi su
client/serverCosto medioAffidabilità altaSicurezza altaScalabilità altaFlessibilità alta
Componente CaratteristicaServer HW PC, mini o mainframeClient HW PCsInterf. Utente GraficaGestione dei dati DB relazionali
ComputazioneVari linguaggi su
client/serverCosto medioAffidabilità altaSicurezza altaScalabilità altaFlessibilità alta
Recommended