Capitolo 10 Progettazione dell’architettura. INDICE. Indice. Introduzione Valutazione delle architetture Configurazioni architetturali Ottimizzazione delle prestazioni Web caching. INTERNET. Valutazione delle architetture. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Contenuto per concessione del Politecnico di Milano
Obiettivi (1)
INTERNET
• Prestazioni: garanzia di sopportazione del carico di lavoro previsto, in termini di:– N° utenti concorrenti– N° pagine servite/secondo– Tempo di risposta all’utente
• Scalabilità: possibilità di aggiungere potenza computazionale al crescere del carico di lavoro, per mantenere elevate prestazioni
Contenuto per concessione del Politecnico di Milano
Vincoli:limitazioni nella scelta
INTERNET
• Le scelte architetturale sono vincolate da limiti fisici, economici ed organizzativi:•Costi: il prezzo delle risorse tecnologiche richieste (macchine, reti, software)
•Complessità: difficoltà e costi di installazione, gestione e manutenzione
•Standard aziendali: risorse pre-esistenti, esperienza pregressa, integrazione con i sistemi aziendali
Contenuto per concessione del Politecnico di Milano
SEPARAZIONE DEL DB: valutazione
INTERNET
•Prestazioni: dimensionamento migliore delle due macchine
•Es.: potenziamento accesso/mirroring dei dischi del DB server
•Scalabilità: possibilità di intervenire separatamente su middle tier e data tier
•In genere è il middle tier che raggiunge per primo la saturazione; richiede potenziamento per appieno le potenzialità del data tier
•Disponibilità: un componente fermo blocca ancora il sistema
•Sicurezza: dati su macchina separata sono più sicuri; un firewall tra middle e data tier può bloccare le richieste HTTP (attacchi) e consentire solo le richieste al DB
Contenuto per concessione del Politecnico di Milano
Vantaggi della replicazione INTERNET
•Prestazioni consente LOAD-BALANCING: distribuzione del carico di lavoro sui server/ processi in modo bilanciato
•ScalabilitàSe necessario, è possibile aggiungere nuove istanze di processi (o macchine server, in cluster)
•Disponibilitàconsente FAIL-OVER: se cade uno dei processi, il suo carico di lavoro viene distribuito sui processi funzionanti e il sistema continua a fornire il servizio
Indipendenti dal tipo di replicazione (orizz. o vert.)
Contenuto per concessione del Politecnico di Milano
Router /firewall
HTTP
HTTP
HTTP
SHTTP
Il problema delle sessioni utente
INTERNET
•Bisogna garantire che lo stato dell’utente sia mantenuto
SUL LOAD-BALANCING:
•STICKY SESSION: Tutte le richieste dello stesso client devono essere inviate dal dispatcher allo stesso server (lo stato utente è memorizzato sul server!)
•Il dispatcher deve avere una certa “intelligenza” per riconoscere le richieste di uno stesso utente. Non basta l’IP del client: potrebbe essere usato da più utenti di una intranet
SUL FAIL-OVER:
•Le sessioni memorizzate dal Web server guasto devono essere recuperate ed usate dagli altri Web server (che riceveranno le richieste seguenti degli utenti connessi al server guasto)
•I dati di sessione devono essere memorizzati in modo duraturo (es. nel DB) [Soluzione costosa per le prestazioni]
Contenuto per concessione del Politecnico di Milano
Architetture software: il pattern MCV
• Come distribuire le funzionalità software tra web server e application server?
• Architettura Model View Contoller (MVC):
client controller model
view
richiede aggiorna
notificapresenta
• Scopo: separare le funzioni in moduli software ben disaccoppiati e rendere le logiche di business (model) riusabili in contesti diversi, sia Web che non
Contenuto per concessione del Politecnico di Milano
Prestazioni delle architetture Web
• Le prestazioni sono uno dei criteri più importanti per la scelta dell’architettura
• Buon esempio delle considerazioni progettuali necessarie durante il progetto di un’applicazione Web
• I requisiti di prestazione sono basati sul numero di utenti:– Semplice da stimare per siti Intranet/Extranet (B2B)– Difficilmente valutabile per siti Web pubblici (B2C)
Contenuto per concessione del Politecnico di Milano
Metriche di performance
• N° di richieste di pagine: valore medio e di picco di richieste inviate dai client [pagine/secondo]
• N° di utenti concorrenti: valore medio e di picco di utenti connessi al sito contemporaneamente
• Tempo di risposta: massimo intervallo di tempo di attesa di risposta del server da parte del client [time to first byte (TTFB) e time to last byte (TTLB)]
• Mix di richieste: per applicazioni con pagine complesse, si definisce il mix plausibile di accessi alle differenti pagine da parte dell’utente medio (assegnando una probabilità ad ogni pagina)
Contenuto per concessione del Politecnico di Milano
Ottimizzazione di prestazioni
di applicazioni Web Tre possibilità di intervento:• Ottimizzazione del codice applicativo
– Difficile
• Potenziamento dell’architettura– Costoso
• Web caching: memorizzazione temporanea di risorse in modo da garantire accesso veloce– Basso costo– Basso impatto sull’applicazione– Basse conoscenze tecniche richieste
Contenuto per concessione del Politecnico di Milano
Benefici del Web Caching
• Riduzione della latenza di rete: una cache vicina al client consente risposte più veloci perché non è necessario trasmettere informazioni su lunghi tratti di rete – Riduzione di uso della banda e tempo di risposta
• Riduzione dello sforzo computazionale: risorse dinamiche vengono recuperate immediatamente invece che ricalcolate
Contenuto per concessione del Politecnico di Milano
Cosa mettere in cache
• Tutto ciò che contribuisce a costruire la risposta del Web Server:– Pagine statiche– Files multimediali – Fammenti di pagine dinamiche computate– Dati intermedi consumati dallo scripting
per computare pagine– Risultati di queries a database o di altre
Contenuto per concessione del Politecnico di Milano
Cosa mettere in cache
• Tutto ciò che contribuisce a costruire la risposta del Web Server:– Pagine statiche– Files multimediali – Fammenti di pagine dinamiche computate– Dati intermedi consumati dallo scripting
per computare pagine– Risultati di queries a database o di altre
Contenuto per concessione del Politecnico di Milano
Dove mettere la cache 1:
browser caching
• E’ una directory dell’HD dell’utente• Memorizza pagine e risorse statiche• Annulla la latenza di rete• Non è affidabile in generale, il cliente o il fornitore di